From 97bfe4f5d941b409214582d0c837bbf606f23e9f Mon Sep 17 00:00:00 2001 From: m3tasploit Date: Sat, 6 Apr 2024 18:08:20 +0530 Subject: [PATCH 1/3] fix: add content-type check --- packages/firebase-frameworks/src/sveltekit/index.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/firebase-frameworks/src/sveltekit/index.ts b/packages/firebase-frameworks/src/sveltekit/index.ts index c99765c5..18b15fcc 100644 --- a/packages/firebase-frameworks/src/sveltekit/index.ts +++ b/packages/firebase-frameworks/src/sveltekit/index.ts @@ -25,8 +25,14 @@ export const handle = async (req: Request, res: Response) => { if (!rendered) { return res.writeHead(404, "Not Found").end(); } + + let body; + if(rendered.headers.get("Content-Type").includes('text/')){ + body = await rendered.text(); + }else { + body = Buffer.from(await rendered.arrayBuffer()); + } - const body = await rendered.text(); return res.writeHead(rendered.status, Object.fromEntries(rendered.headers)).end(body); }; From fa49a3a49696c77e2275d720c492a6c907ed8619 Mon Sep 17 00:00:00 2001 From: m3tasploit Date: Fri, 19 Apr 2024 21:16:02 +0530 Subject: [PATCH 2/3] add check for commonly used text content types --- .../firebase-frameworks/src/sveltekit/index.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/firebase-frameworks/src/sveltekit/index.ts b/packages/firebase-frameworks/src/sveltekit/index.ts index 18b15fcc..b0d8edb9 100644 --- a/packages/firebase-frameworks/src/sveltekit/index.ts +++ b/packages/firebase-frameworks/src/sveltekit/index.ts @@ -25,11 +25,18 @@ export const handle = async (req: Request, res: Response) => { if (!rendered) { return res.writeHead(404, "Not Found").end(); } - + let body; - if(rendered.headers.get("Content-Type").includes('text/')){ - body = await rendered.text(); - }else { + let contentType = rendered.headers.get("Content-Type"); + if ( + contentType.startsWith("text/") || + contentType.startsWith("application/json") || + contentType.startsWith("application/xml") || + contentType.startsWith("application/javascript") || + contentType.startsWith("application/vnd.ms-excel") + ) { + body = await rendered.text(); + } else { body = Buffer.from(await rendered.arrayBuffer()); } From 417524b586e86e76fefb59b92d0b1f18d242bef1 Mon Sep 17 00:00:00 2001 From: m3tasploit Date: Fri, 19 Apr 2024 21:30:48 +0530 Subject: [PATCH 3/3] fix: lint errors --- packages/firebase-frameworks/src/sveltekit/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/firebase-frameworks/src/sveltekit/index.ts b/packages/firebase-frameworks/src/sveltekit/index.ts index b0d8edb9..c3b41e6b 100644 --- a/packages/firebase-frameworks/src/sveltekit/index.ts +++ b/packages/firebase-frameworks/src/sveltekit/index.ts @@ -27,13 +27,13 @@ export const handle = async (req: Request, res: Response) => { } let body; - let contentType = rendered.headers.get("Content-Type"); + const contentType = rendered.headers.get("Content-Type"); if ( contentType.startsWith("text/") || contentType.startsWith("application/json") || contentType.startsWith("application/xml") || contentType.startsWith("application/javascript") || - contentType.startsWith("application/vnd.ms-excel") + contentType.startsWith("application/vnd.ms-excel") ) { body = await rendered.text(); } else {