diff --git a/.changeset/four-humans-relax.md b/.changeset/four-humans-relax.md new file mode 100644 index 00000000..36d27882 --- /dev/null +++ b/.changeset/four-humans-relax.md @@ -0,0 +1,5 @@ +--- +'@supabase/auth-helpers-shared': patch +--- + +Reduce cookie chunk size diff --git a/.changeset/hip-lies-chew.md b/.changeset/hip-lies-chew.md new file mode 100644 index 00000000..23415d84 --- /dev/null +++ b/.changeset/hip-lies-chew.md @@ -0,0 +1,7 @@ +--- +'@supabase/auth-helpers-nextjs': patch +'@supabase/auth-helpers-remix': patch +'@supabase/auth-helpers-sveltekit': patch +--- + +Update storage key name with cookie name diff --git a/.changeset/tall-bulldogs-help.md b/.changeset/tall-bulldogs-help.md new file mode 100644 index 00000000..cba8f99f --- /dev/null +++ b/.changeset/tall-bulldogs-help.md @@ -0,0 +1,5 @@ +--- +'@supabase/ssr': patch +--- + +Update storage key name with cookie name diff --git a/packages/nextjs/src/clientComponentClient.ts b/packages/nextjs/src/clientComponentClient.ts index 4f89dc06..89cfd313 100644 --- a/packages/nextjs/src/clientComponentClient.ts +++ b/packages/nextjs/src/clientComponentClient.ts @@ -38,6 +38,9 @@ export function createClientComponentClient< ); } + const storageKey = cookieOptions?.name; + delete cookieOptions?.name; + const createNewClient = () => createSupabaseClient(supabaseUrl, supabaseKey, { ...options, @@ -49,7 +52,7 @@ export function createClientComponentClient< } }, auth: { - storageKey: cookieOptions?.name, + storageKey, storage: new BrowserCookieAuthStorageAdapter(cookieOptions) } }); diff --git a/packages/nextjs/src/middlewareClient.ts b/packages/nextjs/src/middlewareClient.ts index 36850a10..975ef67d 100644 --- a/packages/nextjs/src/middlewareClient.ts +++ b/packages/nextjs/src/middlewareClient.ts @@ -88,6 +88,9 @@ export function createMiddlewareClient< ); } + const storageKey = cookieOptions?.name; + delete cookieOptions?.name; + return createSupabaseClient(supabaseUrl, supabaseKey, { ...options, global: { @@ -98,7 +101,7 @@ export function createMiddlewareClient< } }, auth: { - storageKey: cookieOptions?.name, + storageKey, storage: new NextMiddlewareAuthStorageAdapter(context, cookieOptions) } }); diff --git a/packages/nextjs/src/pagesServerClient.ts b/packages/nextjs/src/pagesServerClient.ts index d2c49943..960027c1 100644 --- a/packages/nextjs/src/pagesServerClient.ts +++ b/packages/nextjs/src/pagesServerClient.ts @@ -87,6 +87,9 @@ export function createPagesServerClient< ); } + const storageKey = cookieOptions?.name; + delete cookieOptions?.name; + return createSupabaseClient(supabaseUrl, supabaseKey, { ...options, global: { @@ -97,7 +100,7 @@ export function createPagesServerClient< } }, auth: { - storageKey: cookieOptions?.name, + storageKey, storage: new NextServerAuthStorageAdapter(context, cookieOptions) } }); diff --git a/packages/nextjs/src/routeHandlerClient.ts b/packages/nextjs/src/routeHandlerClient.ts index 696ecab9..03793ebc 100644 --- a/packages/nextjs/src/routeHandlerClient.ts +++ b/packages/nextjs/src/routeHandlerClient.ts @@ -67,6 +67,9 @@ export function createRouteHandlerClient< ); } + const storageKey = cookieOptions?.name; + delete cookieOptions?.name; + return createSupabaseClient(supabaseUrl, supabaseKey, { ...options, global: { @@ -77,7 +80,7 @@ export function createRouteHandlerClient< } }, auth: { - storageKey: cookieOptions?.name, + storageKey, storage: new NextRouteHandlerAuthStorageAdapter(context, cookieOptions) } }); diff --git a/packages/nextjs/src/serverComponentClient.ts b/packages/nextjs/src/serverComponentClient.ts index f802ae5a..f661eb0f 100644 --- a/packages/nextjs/src/serverComponentClient.ts +++ b/packages/nextjs/src/serverComponentClient.ts @@ -64,6 +64,9 @@ export function createServerComponentClient< ); } + const storageKey = cookieOptions?.name; + delete cookieOptions?.name; + return createSupabaseClient(supabaseUrl, supabaseKey, { ...options, global: { @@ -74,7 +77,7 @@ export function createServerComponentClient< } }, auth: { - storageKey: cookieOptions?.name, + storageKey, storage: new NextServerComponentAuthStorageAdapter(context, cookieOptions) } }); diff --git a/packages/remix/src/createSupabaseClient.ts b/packages/remix/src/createSupabaseClient.ts index 41eb8c02..9fd54fc7 100644 --- a/packages/remix/src/createSupabaseClient.ts +++ b/packages/remix/src/createSupabaseClient.ts @@ -112,6 +112,9 @@ export function createBrowserClient< ); } + const storageKey = cookieOptions?.name; + delete cookieOptions?.name; + return createSupabaseClient(supabaseUrl, supabaseKey, { ...options, global: { @@ -122,7 +125,7 @@ export function createBrowserClient< } }, auth: { - storageKey: cookieOptions?.name, + storageKey, storage: new BrowserCookieAuthStorageAdapter(cookieOptions) } }); @@ -194,6 +197,9 @@ export function createServerClient< ); } + const storageKey = cookieOptions?.name; + delete cookieOptions?.name; + return createSupabaseClient(supabaseUrl, supabaseKey, { ...options, global: { @@ -204,7 +210,7 @@ export function createServerClient< } }, auth: { - storageKey: cookieOptions?.name, + storageKey, storage: new RemixServerAuthStorageAdapter(request, response, cookieOptions) } }); diff --git a/packages/shared/src/chunker.ts b/packages/shared/src/chunker.ts index 1032793a..791a2972 100644 --- a/packages/shared/src/chunker.ts +++ b/packages/shared/src/chunker.ts @@ -7,7 +7,7 @@ function createChunkRegExp(chunkSize: number) { return new RegExp('.{1,' + chunkSize + '}', 'g'); } -const MAX_CHUNK_SIZE = 3600; +const MAX_CHUNK_SIZE = 3180; const MAX_CHUNK_REGEXP = createChunkRegExp(MAX_CHUNK_SIZE); /** @@ -35,7 +35,7 @@ export function createChunks(key: string, value: string, chunkSize?: number): Ch } // Get fully constructed chunks -export function combineChunk( +export function combineChunks( key: string, retrieveChunk: (name: string) => string | null | undefined = () => { return null; diff --git a/packages/shared/src/cookieAuthStorageAdapter.ts b/packages/shared/src/cookieAuthStorageAdapter.ts index 9ecc5b7e..72c6e1de 100644 --- a/packages/shared/src/cookieAuthStorageAdapter.ts +++ b/packages/shared/src/cookieAuthStorageAdapter.ts @@ -1,7 +1,7 @@ import { GoTrueClientOptions, Session } from '@supabase/supabase-js'; import { DEFAULT_COOKIE_OPTIONS, parseSupabaseCookie, stringifySupabaseSession } from './utils'; import { CookieOptions, DefaultCookieOptions } from './types'; -import { combineChunk, createChunks } from './chunker'; +import { combineChunks, createChunks } from './chunker'; export interface StorageAdapter extends Exclude {} @@ -32,7 +32,7 @@ export abstract class CookieAuthStorageAdapter implements StorageAdapter { return JSON.stringify(parseSupabaseCookie(value)); } - const chunks = combineChunk(key, (chunkName) => { + const chunks = combineChunks(key, (chunkName) => { return this.getCookie(chunkName); }); diff --git a/packages/shared/tests/chunker.spec.ts b/packages/shared/tests/chunker.spec.ts index ec6d65ee..a8e2c929 100644 --- a/packages/shared/tests/chunker.spec.ts +++ b/packages/shared/tests/chunker.spec.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; -import { combineChunk, createChunks } from '../src/chunker'; -import { CHUNK_STRING } from './helper'; +import { combineChunks, createChunks } from '../src/chunker'; +import { CHUNK_STRING, DOUBLE_CHUNK_STRING, len } from './helper'; describe('chunker', () => { it('should not chunk and return one item', () => { @@ -10,7 +10,7 @@ describe('chunker', () => { it('should chunk and return two chunks', () => { const chunked = createChunks('my-chunks', CHUNK_STRING, 2000); - const combined = combineChunk('my-chunks', (name) => { + const combined = combineChunks('my-chunks', (name) => { let chunk = chunked.find((chunk) => { return chunk.name === name; }); @@ -22,7 +22,7 @@ describe('chunker', () => { it('should chunk and return twelve chunks', () => { const chunked = createChunks('my-chunks', CHUNK_STRING, 320); - const combined = combineChunk('my-chunks', (name) => { + const combined = combineChunks('my-chunks', (name) => { let chunk = chunked.find((chunk) => { return chunk.name === name; }); @@ -34,7 +34,7 @@ describe('chunker', () => { it('should chunk and return one hundred and one chunks', () => { const chunked = createChunks('my-chunks', CHUNK_STRING, 36); - const combined = combineChunk('my-chunks', (name) => { + const combined = combineChunks('my-chunks', (name) => { let chunk = chunked.find((chunk) => { return chunk.name === name; }); @@ -43,4 +43,24 @@ describe('chunker', () => { expect(chunked.length).toBe(101); expect(combined).toBe(CHUNK_STRING); }); + + it('should chunk and return correct size chunks', async () => { + const key = 'sb-xdbaubpgcisziicojymj-auth-token'; + const chunked = createChunks(key, DOUBLE_CHUNK_STRING); + const combined = await combineChunks(key, (name) => { + let chunk = chunked.find((chunk) => { + return chunk.name === name; + }); + return chunk?.value; + }); + + chunked.forEach((chunk, i) => { + expect(chunk.name).toBe(`${key}.${i}`); + expect([3217, 3217, 899]).toContain(len(`${chunk.name}=${chunk.value}`)); + }); + + expect(chunked.length).toBe(3); + expect(len(`${key}=${DOUBLE_CHUNK_STRING}`)).toBe(7257); + expect(combined).toBe(DOUBLE_CHUNK_STRING); + }); }); diff --git a/packages/shared/tests/helper.ts b/packages/shared/tests/helper.ts index a00365dc..dede7d6e 100644 --- a/packages/shared/tests/helper.ts +++ b/packages/shared/tests/helper.ts @@ -1,2 +1,9 @@ +export const len = (str) => { + let size = Buffer.from(str).length; + return size; +}; + export const CHUNK_STRING = 'zDq8KDAdv4PwF3UOp3mnEyx1xY71CaY4ZJdPTG8HpLHy3bCYs1x3vwPXdUqY75d0LYHL8KhxgrKqBEK531igiQNk1KqUKmMsabNlwcaF5E2gXA79vpwlxvi1wecwmKGVig4mJ0dzEEXKNsLgyQCsjKOpI7Nw2gnGAKKFdHle1SJeuFj9PyAHx9stMvQFpRQhoLRt3iI0uFA.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.lww9VHv5CCETYEFj9Q1emgiZI2nXZuvHbyJmIbYgMF9w533oG8ZEsdiKo81LAflQeUHYbbxOXTtroR2bdax0VYgjZ2qg5YeOnekqbgyDXwvmsOMktvg4x7JBJiHjzKK2kSPX0cCAhcU17ydRx19xq1gOUBup1j4kqEBbvKFKt67cfqZhT4kiERgbOt6mIyurSzUPgAhBNiqUJPM3872jVtweoum6mAfSgnG4H1qs2oNZjrbGi6Xv1H5WPALAdNzDwca0evrbbufUCKDX0XO27UTAFh9k4UFf0Dk1pPgKhomuWsfsJAJDvo2ZimmkXrlUo8OfihbpGCLMbEDRpxyIcIGTUQ30WeCyaHo2ds2hs2sh'; + +export const DOUBLE_CHUNK_STRING = `${CHUNK_STRING}${CHUNK_STRING}`; diff --git a/packages/ssr/src/createBrowserClient.ts b/packages/ssr/src/createBrowserClient.ts index 49c79495..fb8c4980 100644 --- a/packages/ssr/src/createBrowserClient.ts +++ b/packages/ssr/src/createBrowserClient.ts @@ -44,16 +44,19 @@ export function createBrowserClient< let cookies: CookieMethods = {}; let isSingleton = true; let cookieOptions: CookieOptionsWithName | undefined; + let storageKey: string | undefined = undefined; let userDefinedClientOptions; if (options) { ({ cookies, isSingleton = true, cookieOptions, ...userDefinedClientOptions } = options); + storageKey = cookieOptions?.name; + delete cookieOptions?.name; } const cookieClientOptions = { global: { headers: { - 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}` + 'X-Client-Info': `${PACKAGE_NAME}/${PACKAGE_VERSION}` } }, auth: { @@ -61,6 +64,7 @@ export function createBrowserClient< autoRefreshToken: isBrowser(), detectSessionInUrl: isBrowser(), persistSession: true, + storageKey, storage: { getItem: async (key: string) => { const chunkedCookie = await combineChunks(key, async (chunkName) => { diff --git a/packages/ssr/src/createServerClient.ts b/packages/ssr/src/createServerClient.ts index 413bf7b4..d3830a10 100644 --- a/packages/ssr/src/createServerClient.ts +++ b/packages/ssr/src/createServerClient.ts @@ -38,10 +38,13 @@ export function createServerClient< const { cookies, cookieOptions, ...userDefinedClientOptions } = options; + const storageKey = cookieOptions?.name; + delete cookieOptions?.name; + const cookieClientOptions = { global: { headers: { - 'X-Client-Info': `${PACKAGE_NAME}@${PACKAGE_VERSION}` + 'X-Client-Info': `${PACKAGE_NAME}/${PACKAGE_VERSION}` } }, auth: { @@ -49,6 +52,7 @@ export function createServerClient< autoRefreshToken: isBrowser(), detectSessionInUrl: isBrowser(), persistSession: true, + storageKey, storage: { getItem: async (key: string) => { const chunkedCookie = await combineChunks(key, async (chunkName: string) => { diff --git a/packages/ssr/tests/chunker.spec.ts b/packages/ssr/tests/chunker.spec.ts index 94ff2b50..a9038fd0 100644 --- a/packages/ssr/tests/chunker.spec.ts +++ b/packages/ssr/tests/chunker.spec.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; import { combineChunks, createChunks } from '../src/utils/chunker'; -import { CHUNK_STRING } from './helper'; +import { CHUNK_STRING, DOUBLE_CHUNK_STRING, len } from './helper'; describe('chunker', () => { it('should not chunk and return one item', () => { @@ -8,21 +8,22 @@ describe('chunker', () => { expect(chunked.length).toBe(1); }); - it('should chunk and return two chunks', () => { + it('should chunk and return two chunks', async () => { const chunked = createChunks('my-chunks', CHUNK_STRING, 2000); - const combined = combineChunks('my-chunks', (name) => { + const combined = await combineChunks('my-chunks', (name) => { let chunk = chunked.find((chunk) => { return chunk.name === name; }); return chunk?.value; }); + expect(len(`my-chunks=${CHUNK_STRING}`)).toBe(3621); expect(chunked.length).toBe(2); expect(combined).toBe(CHUNK_STRING); }); - it('should chunk and return twelve chunks', () => { + it('should chunk and return twelve chunks', async () => { const chunked = createChunks('my-chunks', CHUNK_STRING, 320); - const combined = combineChunks('my-chunks', (name) => { + const combined = await combineChunks('my-chunks', (name) => { let chunk = chunked.find((chunk) => { return chunk.name === name; }); @@ -32,9 +33,9 @@ describe('chunker', () => { expect(combined).toBe(CHUNK_STRING); }); - it('should chunk and return one hundred and one chunks', () => { + it('should chunk and return one hundred and one chunks', async () => { const chunked = createChunks('my-chunks', CHUNK_STRING, 36); - const combined = combineChunks('my-chunks', (name) => { + const combined = await combineChunks('my-chunks', (name) => { let chunk = chunked.find((chunk) => { return chunk.name === name; }); @@ -43,4 +44,24 @@ describe('chunker', () => { expect(chunked.length).toBe(101); expect(combined).toBe(CHUNK_STRING); }); + + it('should chunk and return correct size chunks', async () => { + const key = 'sb-xdbaubpgcisziicojymj-auth-token'; + const chunked = createChunks(key, DOUBLE_CHUNK_STRING); + const combined = await combineChunks(key, (name) => { + let chunk = chunked.find((chunk) => { + return chunk.name === name; + }); + return chunk?.value; + }); + + chunked.forEach((chunk, i) => { + expect(chunk.name).toBe(`${key}.${i}`); + expect([3217, 3217, 899]).toContain(len(`${chunk.name}=${chunk.value}`)); + }); + + expect(chunked.length).toBe(3); + expect(len(`${key}=${DOUBLE_CHUNK_STRING}`)).toBe(7257); + expect(combined).toBe(DOUBLE_CHUNK_STRING); + }); }); diff --git a/packages/ssr/tests/helper.ts b/packages/ssr/tests/helper.ts index a00365dc..dede7d6e 100644 --- a/packages/ssr/tests/helper.ts +++ b/packages/ssr/tests/helper.ts @@ -1,2 +1,9 @@ +export const len = (str) => { + let size = Buffer.from(str).length; + return size; +}; + export const CHUNK_STRING = 'zDq8KDAdv4PwF3UOp3mnEyx1xY71CaY4ZJdPTG8HpLHy3bCYs1x3vwPXdUqY75d0LYHL8KhxgrKqBEK531igiQNk1KqUKmMsabNlwcaF5E2gXA79vpwlxvi1wecwmKGVig4mJ0dzEEXKNsLgyQCsjKOpI7Nw2gnGAKKFdHle1SJeuFj9PyAHx9stMvQFpRQhoLRt3iI0uFA.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.lww9VHv5CCETYEFj9Q1emgiZI2nXZuvHbyJmIbYgMF9w533oG8ZEsdiKo81LAflQeUHYbbxOXTtroR2bdax0VYgjZ2qg5YeOnekqbgyDXwvmsOMktvg4x7JBJiHjzKK2kSPX0cCAhcU17ydRx19xq1gOUBup1j4kqEBbvKFKt67cfqZhT4kiERgbOt6mIyurSzUPgAhBNiqUJPM3872jVtweoum6mAfSgnG4H1qs2oNZjrbGi6Xv1H5WPALAdNzDwca0evrbbufUCKDX0XO27UTAFh9k4UFf0Dk1pPgKhomuWsfsJAJDvo2ZimmkXrlUo8OfihbpGCLMbEDRpxyIcIGTUQ30WeCyaHo2ds2hs2sh'; + +export const DOUBLE_CHUNK_STRING = `${CHUNK_STRING}${CHUNK_STRING}`; diff --git a/packages/ssr/tsup.config.ts b/packages/ssr/tsup.config.ts index 18731db5..80f18f7c 100644 --- a/packages/ssr/tsup.config.ts +++ b/packages/ssr/tsup.config.ts @@ -14,7 +14,7 @@ export const tsup: Options = { bundle: true, clean: true, define: { - PACKAGE_NAME: JSON.stringify(pkg.name), + PACKAGE_NAME: JSON.stringify(pkg.name.replace('@', '').replace('/', '-')), PACKAGE_VERSION: JSON.stringify(pkg.version) } }; diff --git a/packages/sveltekit/src/supabaseLoadClient.ts b/packages/sveltekit/src/supabaseLoadClient.ts index 22abf154..4c0d2fc0 100644 --- a/packages/sveltekit/src/supabaseLoadClient.ts +++ b/packages/sveltekit/src/supabaseLoadClient.ts @@ -83,6 +83,9 @@ export function createSupabaseLoadClient< return cachedBrowserClient as SupabaseClient; } + const storageKey = cookieOptions?.name; + delete cookieOptions?.name; + const client = createSupabaseClient(supabaseUrl, supabaseKey, { ...options, global: { @@ -94,7 +97,7 @@ export function createSupabaseLoadClient< } }, auth: { - storageKey: cookieOptions?.name, + storageKey, storage: new SvelteKitLoadAuthStorageAdapter(serverSession, cookieOptions) } }); diff --git a/packages/sveltekit/src/supabaseServerClient.ts b/packages/sveltekit/src/supabaseServerClient.ts index b5d6874a..95790f0b 100644 --- a/packages/sveltekit/src/supabaseServerClient.ts +++ b/packages/sveltekit/src/supabaseServerClient.ts @@ -82,6 +82,9 @@ export function createSupabaseServerClient< cookieOptions?: CookieOptionsWithName; expiryMargin?: number; }): SupabaseClient { + const storageKey = cookieOptions?.name; + delete cookieOptions?.name; + const client = createSupabaseClient(supabaseUrl, supabaseKey, { ...options, global: { @@ -92,7 +95,7 @@ export function createSupabaseServerClient< } }, auth: { - storageKey: cookieOptions?.name, + storageKey, storage: new SvelteKitServerAuthStorageAdapter(event, cookieOptions, expiryMargin) } });