vercel / edge-runtime

Developing, testing, and defining the runtime Web APIs for Edge infrastructure.
https://edge-runtime.vercel.app
MIT License
822 stars 79 forks source link

cookies: Decoding of spaces that are encoded as `+` #902

Open konomae opened 4 months ago

konomae commented 4 months ago

Bug Report

I'm not sure if this is a bug or a specification of @edge-runtime/cookies. If a cookie contains spaces, they may be encoded as a + sign. (e.g: Rails)

Current Behavior:

const headers = new Headers({ cookie: 'a=hello+world' })
const cookies = new RequestCookies(headers)
const cookie = cookies.get('a')
expect(cookie).toEqual({ name: 'a', value: 'hello+world' })

Expected behavior/code

const headers = new Headers({ cookie: 'a=hello+world' })
const cookies = new RequestCookies(headers)
const cookie = cookies.get('a')
expect(cookie).toEqual({ name: 'a', value: 'hello world' })

Possible solution

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#decoding_query_parameters_from_a_url

Additional context/screenshots

N/A

konomae commented 4 months ago

BTY, CookieStore API returns raw values?

screenshot