From e69dff6f129e6ea05c8a8dea77586f8941d7484b Mon Sep 17 00:00:00 2001 From: Andrew Haines Date: Mon, 6 Nov 2023 16:28:33 +0000 Subject: [PATCH] feat(server-runtime): support `Priority` `Set-Cookie` attribute (#6770) Signed-off-by: Andrew Haines Co-authored-by: Matt Brophy --- .changeset/friendly-insects-compete.md | 5 +++++ contributors.yml | 1 + .../remix-server-runtime/__tests__/cookies-test.ts | 14 ++++++++++++++ packages/remix-server-runtime/package.json | 4 ++-- yarn.lock | 7 ++++++- 5 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 .changeset/friendly-insects-compete.md diff --git a/.changeset/friendly-insects-compete.md b/.changeset/friendly-insects-compete.md new file mode 100644 index 00000000000..04ab8dbd709 --- /dev/null +++ b/.changeset/friendly-insects-compete.md @@ -0,0 +1,5 @@ +--- +"@remix-run/server-runtime": minor +--- + +Updated `cookie` dependency from `0.4.1` to [`0.5.0`](https://github.com/jshttp/cookie/blob/v0.5.0/HISTORY.md#050--2022-04-11) to inherit support for `Priority` attribute in Chrome diff --git a/contributors.yml b/contributors.yml index e563fb427d7..19f629b5b02 100644 --- a/contributors.yml +++ b/contributors.yml @@ -191,6 +191,7 @@ - gustavopch - gyx1000 - hadizz +- haines - hardingmatt - harmony7 - helderburato diff --git a/packages/remix-server-runtime/__tests__/cookies-test.ts b/packages/remix-server-runtime/__tests__/cookies-test.ts index e58a7f1332b..9cce2903978 100644 --- a/packages/remix-server-runtime/__tests__/cookies-test.ts +++ b/packages/remix-server-runtime/__tests__/cookies-test.ts @@ -168,6 +168,20 @@ describe("cookies", () => { expect(setCookie2).toContain("Path=/about"); }); + it("supports the Priority attribute", async () => { + let cookie = createCookie("my-cookie"); + + let setCookie = await cookie.serialize("hello world"); + expect(setCookie).not.toContain("Priority"); + + let cookie2 = createCookie("my-cookie2"); + + let setCookie2 = await cookie2.serialize("hello world", { + priority: "high", + }); + expect(setCookie2).toContain("Priority=High"); + }); + describe("warnings when providing options you may not want to", () => { let spy = spyConsole(); diff --git a/packages/remix-server-runtime/package.json b/packages/remix-server-runtime/package.json index 637770a8884..99709a09431 100644 --- a/packages/remix-server-runtime/package.json +++ b/packages/remix-server-runtime/package.json @@ -17,9 +17,9 @@ "module": "dist/esm/index.js", "dependencies": { "@remix-run/router": "1.11.0", - "@types/cookie": "^0.4.1", + "@types/cookie": "^0.5.3", "@web3-storage/multipart-parser": "^1.0.0", - "cookie": "^0.4.1", + "cookie": "^0.5.0", "set-cookie-parser": "^2.4.8", "source-map": "^0.7.3" }, diff --git a/yarn.lock b/yarn.lock index b0e6fdf0be2..72029dc36d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2499,6 +2499,11 @@ resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz" integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== +"@types/cookie@^0.5.3": + version "0.5.3" + resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.3.tgz#3f98076ede5e467783507284d3c19215327fff8f" + integrity sha512-SLg07AS9z1Ab2LU+QxzU8RCmzsja80ywjf/t5oqw+4NSH20gIGlhLOrBDm1L3PBWzPa4+wkgFQVZAjE6Ioj2ug== + "@types/cookiejar@*": version "2.1.2" resolved "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz" @@ -4502,7 +4507,7 @@ cookie-signature@^1.1.0, cookie-signature@^1.2.0: resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.0.tgz" integrity sha512-R0BOPfLGTitaKhgKROKZQN6iyq2iDQcH1DOF8nJoaWapguX5bC2w+Q/I9NmmM5lfcvEarnLZr+cCvmEYYSXvYA== -cookie@0.4.2, cookie@^0.4.1, cookie@^0.4.2: +cookie@0.4.2, cookie@^0.4.2: version "0.4.2" resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==