From e2c41d2ff2e6c24b4533427c87c82fa5d7505cf5 Mon Sep 17 00:00:00 2001 From: Emmanouela Date: Fri, 28 Jun 2024 11:09:24 +0300 Subject: [PATCH 1/4] fix(clerkjs): Fix bug on querystring --- packages/clerk-js/src/utils/__tests__/querystring.test.ts | 4 ++++ packages/clerk-js/src/utils/querystring.ts | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/clerk-js/src/utils/__tests__/querystring.test.ts b/packages/clerk-js/src/utils/__tests__/querystring.test.ts index 52744ac772f..5dbfa1ff0b7 100644 --- a/packages/clerk-js/src/utils/__tests__/querystring.test.ts +++ b/packages/clerk-js/src/utils/__tests__/querystring.test.ts @@ -65,6 +65,10 @@ describe('stringifyQueryParams(object)', () => { expect(stringifyQueryParams({ test: 'ena=duo' })).toBe('test=ena%3Dduo'); }); + it('handles false value', () => { + expect(stringifyQueryParams({ test: false, boo: true })).toBe('test=false&boo=true'); + }); + it('converts an object to querystring when key is camelCase', () => { expect(stringifyQueryParams({ barFoo: '1' }, { keyEncoder: camelToSnake })).toBe('bar_foo=1'); expect(stringifyQueryParams({ unsafeMetadata: { bar: '1' } }, { keyEncoder: camelToSnake })).toBe( diff --git a/packages/clerk-js/src/utils/querystring.ts b/packages/clerk-js/src/utils/querystring.ts index c63533d36a6..0195a2af23a 100644 --- a/packages/clerk-js/src/utils/querystring.ts +++ b/packages/clerk-js/src/utils/querystring.ts @@ -23,7 +23,7 @@ type StringifyQueryParamsOptions = { export const stringifyQueryParams = ( params: - | Record> + | Record> | null | undefined | string, @@ -48,7 +48,7 @@ export const stringifyQueryParams = ( } else if (typeof value === 'object' && value !== null) { queryParams.append(encodedKey, JSON.stringify(value)); } else { - queryParams.append(encodedKey, value || ''); + queryParams.append(encodedKey, value ?? ''); } }); From c9df108003a064333a0d687d32dc164b7a8c2ccd Mon Sep 17 00:00:00 2001 From: Emmanouela Pothitou <68468183+EmmanouelaPothitou@users.noreply.github.com> Date: Fri, 28 Jun 2024 11:25:15 +0300 Subject: [PATCH 2/4] Create violet-rocks-swim.md --- .changeset/violet-rocks-swim.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/violet-rocks-swim.md diff --git a/.changeset/violet-rocks-swim.md b/.changeset/violet-rocks-swim.md new file mode 100644 index 00000000000..8ec55e83bfe --- /dev/null +++ b/.changeset/violet-rocks-swim.md @@ -0,0 +1,5 @@ +--- +"@clerk/clerk-js": patch +--- + +Update querystring to properly handle false value From a8a30d1cc770bcf2934ad95a80aadbacc96283a3 Mon Sep 17 00:00:00 2001 From: Emmanouela Date: Fri, 28 Jun 2024 11:09:24 +0300 Subject: [PATCH 3/4] fix(clerkjs): Handle false value on querystring --- packages/clerk-js/src/utils/__tests__/querystring.test.ts | 4 ++++ packages/clerk-js/src/utils/querystring.ts | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/clerk-js/src/utils/__tests__/querystring.test.ts b/packages/clerk-js/src/utils/__tests__/querystring.test.ts index 52744ac772f..5dbfa1ff0b7 100644 --- a/packages/clerk-js/src/utils/__tests__/querystring.test.ts +++ b/packages/clerk-js/src/utils/__tests__/querystring.test.ts @@ -65,6 +65,10 @@ describe('stringifyQueryParams(object)', () => { expect(stringifyQueryParams({ test: 'ena=duo' })).toBe('test=ena%3Dduo'); }); + it('handles false value', () => { + expect(stringifyQueryParams({ test: false, boo: true })).toBe('test=false&boo=true'); + }); + it('converts an object to querystring when key is camelCase', () => { expect(stringifyQueryParams({ barFoo: '1' }, { keyEncoder: camelToSnake })).toBe('bar_foo=1'); expect(stringifyQueryParams({ unsafeMetadata: { bar: '1' } }, { keyEncoder: camelToSnake })).toBe( diff --git a/packages/clerk-js/src/utils/querystring.ts b/packages/clerk-js/src/utils/querystring.ts index c63533d36a6..5142b7f5f95 100644 --- a/packages/clerk-js/src/utils/querystring.ts +++ b/packages/clerk-js/src/utils/querystring.ts @@ -23,7 +23,7 @@ type StringifyQueryParamsOptions = { export const stringifyQueryParams = ( params: - | Record> + | Record> | null | undefined | string, @@ -48,7 +48,7 @@ export const stringifyQueryParams = ( } else if (typeof value === 'object' && value !== null) { queryParams.append(encodedKey, JSON.stringify(value)); } else { - queryParams.append(encodedKey, value || ''); + queryParams.append(encodedKey, String(value ?? '')); } }); From d318e9e2e84340d0cedb764a3b6b9e0b3f3fc2d9 Mon Sep 17 00:00:00 2001 From: Emmanouela Pothitou <68468183+EmmanouelaPothitou@users.noreply.github.com> Date: Fri, 28 Jun 2024 12:20:55 +0300 Subject: [PATCH 4/4] Update .changeset/violet-rocks-swim.md Co-authored-by: panteliselef --- .changeset/violet-rocks-swim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/violet-rocks-swim.md b/.changeset/violet-rocks-swim.md index 8ec55e83bfe..42f9605ae6d 100644 --- a/.changeset/violet-rocks-swim.md +++ b/.changeset/violet-rocks-swim.md @@ -2,4 +2,4 @@ "@clerk/clerk-js": patch --- -Update querystring to properly handle false value +Bug fix: Requests failing due to incorrect parsing of value `false` when content type is `x-www-form-urlencoded`