From 217a0561e5aaf96cca6fed62d50860321a0b0cac Mon Sep 17 00:00:00 2001 From: Sarah Etter Date: Mon, 6 Mar 2023 15:41:42 -0500 Subject: [PATCH 1/4] feat: add multiple set-cookie headers in middleware --- packages/runtime/src/templates/edge-shared/utils.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/runtime/src/templates/edge-shared/utils.ts b/packages/runtime/src/templates/edge-shared/utils.ts index fb09b18aba..c4daafb69d 100644 --- a/packages/runtime/src/templates/edge-shared/utils.ts +++ b/packages/runtime/src/templates/edge-shared/utils.ts @@ -31,12 +31,12 @@ export const addMiddlewareHeaders = async ( // We need to await the response to get the origin headers, then we can add the ones from middleware. const res = await originResponse const response = new Response(res.body, res) - const originCookies = response.headers.get('set-cookie') middlewareResponse.headers.forEach((value, key) => { - response.headers.set(key, value) - // Append origin cookies after middleware cookies - if (key === 'set-cookie' && originCookies) { - response.headers.append(key, originCookies) + if (key === 'set-cookie') { + response.headers.append(key, value) + } + else { + response.headers.set(key, value) } }) return response From 3b247c45a6bbe56467091fc1f513988273e7822d Mon Sep 17 00:00:00 2001 From: Sarah Etter Date: Mon, 6 Mar 2023 15:59:00 -0500 Subject: [PATCH 2/4] chore: format --- packages/runtime/src/templates/edge-shared/utils.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/runtime/src/templates/edge-shared/utils.ts b/packages/runtime/src/templates/edge-shared/utils.ts index c4daafb69d..ce6772fb1a 100644 --- a/packages/runtime/src/templates/edge-shared/utils.ts +++ b/packages/runtime/src/templates/edge-shared/utils.ts @@ -34,8 +34,7 @@ export const addMiddlewareHeaders = async ( middlewareResponse.headers.forEach((value, key) => { if (key === 'set-cookie') { response.headers.append(key, value) - } - else { + } else { response.headers.set(key, value) } }) From 0a2d39e99ab80d41164892f5ee05cd73b8658c0c Mon Sep 17 00:00:00 2001 From: Sarah Etter Date: Tue, 7 Mar 2023 09:47:38 -0500 Subject: [PATCH 3/4] chore: change string order --- package-lock.json | 2 +- packages/runtime/package.json | 2 +- .../modified-tests/skip-trailing-slash-redirect/index.test.ts | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9bac945e91..7f2e7216cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24344,7 +24344,7 @@ }, "packages/runtime": { "name": "@netlify/plugin-nextjs", - "version": "4.30.4", + "version": "4.30.5-setcookie.0", "license": "MIT", "dependencies": { "@netlify/esbuild": "0.14.39", diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 0e258dbb0d..038381932f 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,6 +1,6 @@ { "name": "@netlify/plugin-nextjs", - "version": "4.30.4", + "version": "4.30.5-setcookie.0", "description": "Run Next.js seamlessly on Netlify", "main": "index.js", "files": [ diff --git a/test/e2e/modified-tests/skip-trailing-slash-redirect/index.test.ts b/test/e2e/modified-tests/skip-trailing-slash-redirect/index.test.ts index c9d60ce5a7..6f5ddf5f24 100644 --- a/test/e2e/modified-tests/skip-trailing-slash-redirect/index.test.ts +++ b/test/e2e/modified-tests/skip-trailing-slash-redirect/index.test.ts @@ -52,14 +52,14 @@ describe('skip-trailing-slash-redirect', () => { redirect: 'manual', }) expect(res.status).toBe(200) - expect(res.headers.get('set-cookie')).toEqual('from-middleware=1; Path=/, hello=From API') + expect(res.headers.get('set-cookie')).toEqual('hello=From API, from-middleware=1; Path=/') }) it('should merge cookies from middleware and edge API routes correctly', async () => { const res = await fetchViaHTTP(next.url, '/api/test-cookie-edge', undefined, { redirect: 'manual', }) expect(res.status).toBe(200) - expect(res.headers.get('set-cookie')).toEqual('from-middleware=1; Path=/, hello=From%20API; Path=/') + expect(res.headers.get('set-cookie')).toEqual('hello=From%20API; Path=/, from-middleware=1; Path=/') }) if ((global as any).isNextStart) { From 25be882a5c6f4eb4b3d6db19cff43b1459a89625 Mon Sep 17 00:00:00 2001 From: Sarah Etter Date: Tue, 7 Mar 2023 09:50:52 -0500 Subject: [PATCH 4/4] chore: version --- packages/runtime/package.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 49c8aabf15..2657812065 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,10 +1,6 @@ { "name": "@netlify/plugin-nextjs", -<<<<<<< HEAD - "version": "4.30.5-setcookie.0", -======= "version": "4.31.0", ->>>>>>> 1d77172b2162cae104cb3f6068ce930c2a27b7bd "description": "Run Next.js seamlessly on Netlify", "main": "index.js", "files": [