From eea0444d93b6463534f638fe035fbba2d26e1837 Mon Sep 17 00:00:00 2001 From: Lenny Date: Mon, 14 Jul 2025 13:19:51 -0400 Subject: [PATCH 1/2] feat: bump storage version, and expose StorageClientOptions --- src/SupabaseClient.ts | 19 ++++++++++++------- src/lib/helpers.ts | 1 + src/lib/types.ts | 2 ++ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/SupabaseClient.ts b/src/SupabaseClient.ts index 50053eb9..b9850445 100644 --- a/src/SupabaseClient.ts +++ b/src/SupabaseClient.ts @@ -42,6 +42,10 @@ export default class SupabaseClient< */ auth: SupabaseAuthClient realtime: RealtimeClient + /** + * Supabase Storage allows you to manage user-generated content, such as photos or videos. + */ + storage: SupabaseStorageClient protected realtimeUrl: URL protected authUrl: URL @@ -64,6 +68,7 @@ export default class SupabaseClient< * @param options.auth.persistSession Set to "true" if you want to automatically save the user session into local storage. * @param options.auth.detectSessionInUrl Set to "true" if you want to automatically detects OAuth grants in the URL and signs in the user. * @param options.realtime Options passed along to realtime-js constructor. + * @param options.storage Options passed along to the storage-js constructor. * @param options.global.fetch A custom fetch implementation. * @param options.global.headers Any additional headers to send with each network request. */ @@ -130,6 +135,13 @@ export default class SupabaseClient< fetch: this.fetch, }) + this.storage = new SupabaseStorageClient( + this.storageUrl.href, + this.headers, + this.fetch, + options?.storage + ) + if (!settings.accessToken) { this._listenForAuthEvents() } @@ -145,13 +157,6 @@ export default class SupabaseClient< }) } - /** - * Supabase Storage allows you to manage user-generated content, such as photos or videos. - */ - get storage(): SupabaseStorageClient { - return new SupabaseStorageClient(this.storageUrl.href, this.headers, this.fetch) - } - // NOTE: signatures must be kept in sync with PostgrestClient.from from< TableName extends string & keyof Schema['Tables'], diff --git a/src/lib/helpers.ts b/src/lib/helpers.ts index fafe919e..4e4c7fe9 100644 --- a/src/lib/helpers.ts +++ b/src/lib/helpers.ts @@ -50,6 +50,7 @@ export function applySettingDefaults< ...DEFAULT_REALTIME_OPTIONS, ...realtimeOptions, }, + storage: {}, global: { ...DEFAULT_GLOBAL_OPTIONS, ...globalOptions, diff --git a/src/lib/types.ts b/src/lib/types.ts index 523127dd..eaafd889 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -1,6 +1,7 @@ import { AuthClient } from '@supabase/auth-js' import { RealtimeClientOptions } from '@supabase/realtime-js' import { PostgrestError } from '@supabase/postgrest-js' +import { StorageClientOptions } from '@supabase/storage-js/dist/module/StorageClient' type AuthClientOptions = ConstructorParameters[0] @@ -56,6 +57,7 @@ export type SupabaseClientOptions = { * Options passed to the realtime-js instance */ realtime?: RealtimeClientOptions + storage?: StorageClientOptions global?: { /** * A custom `fetch` implementation. From 06314d71c81a191498507363b998ee02b7356c19 Mon Sep 17 00:00:00 2001 From: Lenny Date: Mon, 28 Jul 2025 09:39:41 -0400 Subject: [PATCH 2/2] bump storage-js to 2.10.4 --- package-lock.json | 9 +++++---- package.json | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 092364b4..42ff1d55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@supabase/node-fetch": "2.6.15", "@supabase/postgrest-js": "1.19.4", "@supabase/realtime-js": "2.11.15", - "@supabase/storage-js": "2.7.1" + "@supabase/storage-js": "^2.10.4" }, "devDependencies": { "@sebbo2002/semantic-release-jsr": "^1.0.0", @@ -1139,9 +1139,10 @@ } }, "node_modules/@supabase/storage-js": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.7.1.tgz", - "integrity": "sha512-asYHcyDR1fKqrMpytAS1zjyEfvxuOIp1CIXX7ji4lHHcJKqyk+sLl/Vxgm4sN6u8zvuUtae9e4kDxQP2qrwWBA==", + "version": "2.10.4", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.10.4.tgz", + "integrity": "sha512-cvL02GarJVFcNoWe36VBybQqTVRq6wQSOCvTS64C+eyuxOruFIm1utZAY0xi2qKtHJO3EjKaj8iWJKySusDmAQ==", + "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } diff --git a/package.json b/package.json index 5444a225..55aed3d2 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@supabase/node-fetch": "2.6.15", "@supabase/postgrest-js": "1.19.4", "@supabase/realtime-js": "2.11.15", - "@supabase/storage-js": "2.7.1" + "@supabase/storage-js": "^2.10.4" }, "devDependencies": { "@sebbo2002/semantic-release-jsr": "^1.0.0",