@supabase/supabase-js 2.105.5-beta.9 → 2.106.0-canary.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020 Supabase
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -269,10 +269,10 @@ For major changes or if you're unsure about something, please open an issue firs
269
269
 
270
270
  ```bash
271
271
  # From the monorepo root
272
- npx nx build supabase-js
272
+ pnpm nx build supabase-js
273
273
 
274
274
  # Or with watch mode for development
275
- npx nx build supabase-js --watch
275
+ pnpm nx build supabase-js --watch
276
276
  ```
277
277
 
278
278
  ### Testing
package/dist/index.cjs CHANGED
@@ -1,11 +1,11 @@
1
- let __supabase_functions_js = require("@supabase/functions-js");
2
- let __supabase_postgrest_js = require("@supabase/postgrest-js");
3
- let __supabase_realtime_js = require("@supabase/realtime-js");
4
- let __supabase_storage_js = require("@supabase/storage-js");
5
- let __supabase_auth_js = require("@supabase/auth-js");
1
+ let _supabase_functions_js = require("@supabase/functions-js");
2
+ let _supabase_postgrest_js = require("@supabase/postgrest-js");
3
+ let _supabase_realtime_js = require("@supabase/realtime-js");
4
+ let _supabase_storage_js = require("@supabase/storage-js");
5
+ let _supabase_auth_js = require("@supabase/auth-js");
6
6
 
7
7
  //#region src/lib/version.ts
8
- const version = "2.105.5-beta.9";
8
+ const version = "2.106.0-canary.2";
9
9
 
10
10
  //#endregion
11
11
  //#region src/lib/constants.ts
@@ -245,7 +245,7 @@ function getDefaultPropagationTargets(supabaseUrl) {
245
245
  }
246
246
 
247
247
  //#endregion
248
- //#region \0@oxc-project+runtime@0.101.0/helpers/typeof.js
248
+ //#region \0@oxc-project+runtime@0.103.0/helpers/typeof.js
249
249
  function _typeof(o) {
250
250
  "@babel/helpers - typeof";
251
251
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o$1) {
@@ -256,7 +256,7 @@ function _typeof(o) {
256
256
  }
257
257
 
258
258
  //#endregion
259
- //#region \0@oxc-project+runtime@0.101.0/helpers/toPrimitive.js
259
+ //#region \0@oxc-project+runtime@0.103.0/helpers/toPrimitive.js
260
260
  function toPrimitive(t, r) {
261
261
  if ("object" != _typeof(t) || !t) return t;
262
262
  var e = t[Symbol.toPrimitive];
@@ -269,14 +269,14 @@ function toPrimitive(t, r) {
269
269
  }
270
270
 
271
271
  //#endregion
272
- //#region \0@oxc-project+runtime@0.101.0/helpers/toPropertyKey.js
272
+ //#region \0@oxc-project+runtime@0.103.0/helpers/toPropertyKey.js
273
273
  function toPropertyKey(t) {
274
274
  var i = toPrimitive(t, "string");
275
275
  return "symbol" == _typeof(i) ? i : i + "";
276
276
  }
277
277
 
278
278
  //#endregion
279
- //#region \0@oxc-project+runtime@0.101.0/helpers/defineProperty.js
279
+ //#region \0@oxc-project+runtime@0.103.0/helpers/defineProperty.js
280
280
  function _defineProperty(e, r, t) {
281
281
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
282
282
  value: t,
@@ -287,7 +287,7 @@ function _defineProperty(e, r, t) {
287
287
  }
288
288
 
289
289
  //#endregion
290
- //#region \0@oxc-project+runtime@0.101.0/helpers/objectSpread2.js
290
+ //#region \0@oxc-project+runtime@0.103.0/helpers/objectSpread2.js
291
291
  function ownKeys(e, r) {
292
292
  var t = Object.keys(e);
293
293
  if (Object.getOwnPropertySymbols) {
@@ -403,7 +403,7 @@ function validateSupabaseUrl(supabaseUrl) {
403
403
 
404
404
  //#endregion
405
405
  //#region src/lib/SupabaseAuthClient.ts
406
- var SupabaseAuthClient = class extends __supabase_auth_js.AuthClient {
406
+ var SupabaseAuthClient = class extends _supabase_auth_js.AuthClient {
407
407
  constructor(options) {
408
408
  super(options);
409
409
  }
@@ -643,21 +643,21 @@ var SupabaseClient = class {
643
643
  fetch: this.fetch
644
644
  }, settings.realtime));
645
645
  if (this.accessToken) Promise.resolve(this.accessToken()).then((token) => this.realtime.setAuth(token)).catch((e) => console.warn("Failed to set initial Realtime auth token:", e));
646
- this.rest = new __supabase_postgrest_js.PostgrestClient(new URL("rest/v1", baseUrl).href, {
646
+ this.rest = new _supabase_postgrest_js.PostgrestClient(new URL("rest/v1", baseUrl).href, {
647
647
  headers: this.headers,
648
648
  schema: settings.db.schema,
649
649
  fetch: this.fetch,
650
650
  timeout: settings.db.timeout,
651
651
  urlLengthLimit: settings.db.urlLengthLimit
652
652
  });
653
- this.storage = new __supabase_storage_js.StorageClient(this.storageUrl.href, this.headers, this.fetch, options === null || options === void 0 ? void 0 : options.storage);
653
+ this.storage = new _supabase_storage_js.StorageClient(this.storageUrl.href, this.headers, this.fetch, options === null || options === void 0 ? void 0 : options.storage);
654
654
  if (!settings.accessToken) this._listenForAuthEvents();
655
655
  }
656
656
  /**
657
657
  * Supabase Functions allows you to deploy and invoke edge functions.
658
658
  */
659
659
  get functions() {
660
- return new __supabase_functions_js.FunctionsClient(this.functionsUrl.href, {
660
+ return new _supabase_functions_js.FunctionsClient(this.functionsUrl.href, {
661
661
  headers: this.headers,
662
662
  customFetch: this.fetch
663
663
  });
@@ -802,7 +802,7 @@ var SupabaseClient = class {
802
802
  });
803
803
  }
804
804
  _initRealtimeClient(options) {
805
- return new __supabase_realtime_js.RealtimeClient(this.realtimeUrl.href, _objectSpread2(_objectSpread2({}, options), {}, { params: _objectSpread2(_objectSpread2({}, { apikey: this.supabaseKey }), options === null || options === void 0 ? void 0 : options.params) }));
805
+ return new _supabase_realtime_js.RealtimeClient(this.realtimeUrl.href, _objectSpread2(_objectSpread2({}, options), {}, { params: _objectSpread2(_objectSpread2({}, { apikey: this.supabaseKey }), options === null || options === void 0 ? void 0 : options.params) }));
806
806
  }
807
807
  _listenForAuthEvents() {
808
808
  return this.auth.onAuthStateChange((event, session) => {
@@ -853,58 +853,58 @@ if (shouldShowDeprecationWarning()) console.warn("⚠️ Node.js 18 and below a
853
853
  Object.defineProperty(exports, 'FunctionRegion', {
854
854
  enumerable: true,
855
855
  get: function () {
856
- return __supabase_functions_js.FunctionRegion;
856
+ return _supabase_functions_js.FunctionRegion;
857
857
  }
858
858
  });
859
859
  Object.defineProperty(exports, 'FunctionsError', {
860
860
  enumerable: true,
861
861
  get: function () {
862
- return __supabase_functions_js.FunctionsError;
862
+ return _supabase_functions_js.FunctionsError;
863
863
  }
864
864
  });
865
865
  Object.defineProperty(exports, 'FunctionsFetchError', {
866
866
  enumerable: true,
867
867
  get: function () {
868
- return __supabase_functions_js.FunctionsFetchError;
868
+ return _supabase_functions_js.FunctionsFetchError;
869
869
  }
870
870
  });
871
871
  Object.defineProperty(exports, 'FunctionsHttpError', {
872
872
  enumerable: true,
873
873
  get: function () {
874
- return __supabase_functions_js.FunctionsHttpError;
874
+ return _supabase_functions_js.FunctionsHttpError;
875
875
  }
876
876
  });
877
877
  Object.defineProperty(exports, 'FunctionsRelayError', {
878
878
  enumerable: true,
879
879
  get: function () {
880
- return __supabase_functions_js.FunctionsRelayError;
880
+ return _supabase_functions_js.FunctionsRelayError;
881
881
  }
882
882
  });
883
883
  Object.defineProperty(exports, 'PostgrestError', {
884
884
  enumerable: true,
885
885
  get: function () {
886
- return __supabase_postgrest_js.PostgrestError;
886
+ return _supabase_postgrest_js.PostgrestError;
887
887
  }
888
888
  });
889
889
  Object.defineProperty(exports, 'StorageApiError', {
890
890
  enumerable: true,
891
891
  get: function () {
892
- return __supabase_storage_js.StorageApiError;
892
+ return _supabase_storage_js.StorageApiError;
893
893
  }
894
894
  });
895
895
  exports.SupabaseClient = SupabaseClient;
896
896
  exports.createClient = createClient;
897
- Object.keys(__supabase_auth_js).forEach(function (k) {
897
+ Object.keys(_supabase_auth_js).forEach(function (k) {
898
898
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
899
899
  enumerable: true,
900
- get: function () { return __supabase_auth_js[k]; }
900
+ get: function () { return _supabase_auth_js[k]; }
901
901
  });
902
902
  });
903
903
 
904
- Object.keys(__supabase_realtime_js).forEach(function (k) {
904
+ Object.keys(_supabase_realtime_js).forEach(function (k) {
905
905
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
906
906
  enumerable: true,
907
- get: function () { return __supabase_realtime_js[k]; }
907
+ get: function () { return _supabase_realtime_js[k]; }
908
908
  });
909
909
  });
910
910
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["DEFAULT_AUTH_OPTIONS: SupabaseAuthClientOptions","DEFAULT_REALTIME_OPTIONS: RealtimeClientOptions","DEFAULT_TRACE_PROPAGATION_OPTIONS: TracePropagationOptions","version","fetch","traceTargets: TracePropagationTarget[] | null","DEFAULT_DB_OPTIONS","DEFAULT_AUTH_OPTIONS","DEFAULT_REALTIME_OPTIONS","DEFAULT_GLOBAL_OPTIONS","DEFAULT_TRACE_PROPAGATION_OPTIONS","result: ResolvedSupabaseClientOptions<SchemaName>","AuthClient","supabaseUrl: string","supabaseKey: string","PostgrestClient","SupabaseStorageClient","FunctionsClient","this","RealtimeClient"],"sources":["../src/lib/version.ts","../src/lib/constants.ts","../../../../node_modules/tslib/tslib.es6.mjs","../../../shared/tracing/dist/module/extract.js","../../../shared/tracing/dist/module/parse.js","../../../shared/tracing/dist/module/validate.js","../../../shared/tracing/dist/module/defaults.js","../src/lib/fetch.ts","../src/lib/helpers.ts","../src/lib/SupabaseAuthClient.ts","../src/SupabaseClient.ts","../src/index.ts"],"sourcesContent":["// Generated automatically during releases by scripts/update-version-files.ts\n// This file provides runtime access to the package version for:\n// - HTTP request headers (e.g., X-Client-Info header for API requests)\n// - Debugging and support (identifying which version is running)\n// - Telemetry and logging (version reporting in errors/analytics)\n// - Ensuring build artifacts match the published package version\nexport const version = '2.105.5-beta.9'\n","// constants.ts\nimport { RealtimeClientOptions } from '@supabase/realtime-js'\nimport { SupabaseAuthClientOptions, TracePropagationOptions } from './types'\nimport { version } from './version'\n\nlet JS_ENV = ''\n// @ts-ignore\nif (typeof Deno !== 'undefined') {\n JS_ENV = 'deno'\n} else if (typeof document !== 'undefined') {\n JS_ENV = 'web'\n} else if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n JS_ENV = 'react-native'\n} else {\n JS_ENV = 'node'\n}\n\nexport const DEFAULT_HEADERS = { 'X-Client-Info': `supabase-js-${JS_ENV}/${version}` }\n\nexport const DEFAULT_GLOBAL_OPTIONS = {\n headers: DEFAULT_HEADERS,\n}\n\nexport const DEFAULT_DB_OPTIONS = {\n schema: 'public',\n}\n\nexport const DEFAULT_AUTH_OPTIONS: SupabaseAuthClientOptions = {\n autoRefreshToken: true,\n persistSession: true,\n detectSessionInUrl: true,\n flowType: 'implicit',\n}\n\nexport const DEFAULT_REALTIME_OPTIONS: RealtimeClientOptions = {}\n\nexport const DEFAULT_TRACE_PROPAGATION_OPTIONS: TracePropagationOptions = {\n enabled: false,\n respectSamplingDecision: true,\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { __awaiter } from \"tslib\";\n// Cache the dynamic import across all calls. Resolved (or failed) once per\n// process; subsequent calls hit the resolved promise as a synchronous microtask\n// instead of re-entering the module resolver.\n//\n// `any` here intentionally avoids referencing @opentelemetry/api types at\n// compile time, since it's an optional peer dep that may not be installed.\nlet otelModulePromise = null;\n// Indirect the specifier through a variable so static bundlers\n// (webpack, turbopack, rollup, vite, esbuild) do not attempt to resolve\n// @opentelemetry/api at build time. It's an optional peer dep that may not\n// be installed in the consumer app; we look it up purely at runtime.\nconst OTEL_PKG = '@opentelemetry/api';\nfunction loadOtel() {\n if (otelModulePromise === null) {\n // The variable specifier + magic comments together cover every common\n // bundler. Webpack/Turbopack honor the ignore comments; bundlers that\n // ignore the comments still bail out on the non-literal specifier.\n otelModulePromise = import(\n /* webpackIgnore: true */ /* @vite-ignore */ /* turbopackIgnore: true */ OTEL_PKG).catch(() => null);\n }\n return otelModulePromise;\n}\n/**\n * For tests only. Resets the cached OpenTelemetry import.\n *\n * @internal\n */\nexport function _resetOtelCache() {\n otelModulePromise = null;\n}\n/**\n * Extract trace context from the OpenTelemetry API.\n *\n * Returns null if `@opentelemetry/api` is not installed or there is no active\n * trace context. The dynamic import is cached after the first call.\n *\n * @returns Trace context with traceparent, tracestate, and baggage headers, or null if unavailable\n */\nexport function extractTraceContext() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const otel = yield loadOtel();\n if (!otel || !otel.propagation || !otel.context) {\n return null;\n }\n const carrier = {};\n otel.propagation.inject(otel.context.active(), carrier);\n const traceparent = carrier['traceparent'];\n if (!traceparent) {\n return null;\n }\n return {\n traceparent,\n tracestate: carrier['tracestate'],\n baggage: carrier['baggage'],\n };\n }\n catch (_a) {\n return null;\n }\n });\n}\n//# sourceMappingURL=extract.js.map","/**\n * Parse W3C traceparent header according to the specification.\n *\n * The traceparent header format is: version-traceid-parentid-traceflags\n * - version: 2 hex digits (currently always \"00\")\n * - traceid: 32 hex digits (128-bit trace identifier)\n * - parentid: 16 hex digits (64-bit span/parent identifier)\n * - traceflags: 2 hex digits (8-bit flags, bit 0 is sampled flag)\n *\n * @param traceparent - The traceparent header value\n * @returns Parsed traceparent object, or null if invalid format\n *\n * @see https://www.w3.org/TR/trace-context/#traceparent-header\n *\n * @example\n * ```typescript\n * const parsed = parseTraceParent('00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01')\n *\n * console.log(parsed)\n * // {\n * // version: '00',\n * // traceId: '0af7651916cd43dd8448eb211c80319c',\n * // parentId: 'b7ad6b7169203331',\n * // traceFlags: '01',\n * // isSampled: true\n * // }\n * ```\n */\nexport function parseTraceParent(traceparent) {\n if (!traceparent || typeof traceparent !== 'string') {\n return null;\n }\n // Split by hyphen\n const parts = traceparent.split('-');\n // Must have exactly 4 parts\n if (parts.length !== 4) {\n return null;\n }\n const [version, traceId, parentId, traceFlags] = parts;\n // Validate field lengths according to W3C spec\n if (version.length !== 2 ||\n traceId.length !== 32 ||\n parentId.length !== 16 ||\n traceFlags.length !== 2) {\n return null;\n }\n // Validate that all fields are valid hexadecimal\n const hexRegex = /^[0-9a-f]+$/i;\n if (!hexRegex.test(version) ||\n !hexRegex.test(traceId) ||\n !hexRegex.test(parentId) ||\n !hexRegex.test(traceFlags)) {\n return null;\n }\n // Validate that trace-id and parent-id are not all zeros (invalid per spec)\n if (traceId === '00000000000000000000000000000000' || parentId === '0000000000000000') {\n return null;\n }\n // Parse sampling decision from trace-flags (bit 0)\n const flags = parseInt(traceFlags, 16);\n const isSampled = (flags & 0x01) === 0x01;\n return {\n version,\n traceId,\n parentId,\n traceFlags,\n isSampled,\n };\n}\n//# sourceMappingURL=parse.js.map","/**\n * Check if trace context should be propagated to the target URL.\n *\n * This function checks if the target URL matches any of the configured\n * propagation targets. Targets can be:\n * - String: Exact hostname match or wildcard domain (*.example.com)\n * - RegExp: Pattern matching hostname\n * - Function: Custom logic to determine if URL should receive trace context\n *\n * @param targetUrl - The URL to check\n * @param targets - Array of propagation targets\n * @returns True if trace context should be propagated, false otherwise\n *\n * @example\n * ```typescript\n * const targets = [\n * 'myproject.supabase.co', // Exact match\n * '*.supabase.co', // Wildcard domain\n * /.*\\.supabase\\.co$/, // Regex pattern\n * (url) => url.hostname === 'localhost' // Custom function\n * ]\n *\n * shouldPropagateToTarget('https://myproject.supabase.co/rest/v1/table', targets)\n * // true\n *\n * shouldPropagateToTarget('https://evil.com/api', targets)\n * // false\n * ```\n */\nexport function shouldPropagateToTarget(targetUrl, targets) {\n if (!targetUrl || !targets || targets.length === 0) {\n return false;\n }\n let url;\n if (targetUrl instanceof URL) {\n url = targetUrl;\n }\n else {\n try {\n url = new URL(targetUrl);\n }\n catch (error) {\n // Invalid URL\n return false;\n }\n }\n // Check each target\n for (const target of targets) {\n try {\n if (typeof target === 'string') {\n // String matcher: exact match or wildcard domain\n if (matchStringTarget(url.hostname, target)) {\n return true;\n }\n }\n else if (target instanceof RegExp) {\n // Regex matcher\n if (target.test(url.hostname)) {\n return true;\n }\n }\n else if (typeof target === 'function') {\n // Function matcher\n if (target(url)) {\n return true;\n }\n }\n }\n catch (error) {\n // Ignore errors from individual matchers and continue\n continue;\n }\n }\n return false;\n}\n/**\n * Match hostname against string target (exact match or wildcard)\n *\n * @param hostname - The hostname to check\n * @param target - The target pattern (exact or wildcard)\n * @returns True if hostname matches target\n */\nfunction matchStringTarget(hostname, target) {\n // Exact match\n if (target === hostname) {\n return true;\n }\n // Wildcard domain match (*.example.com)\n if (target.startsWith('*.')) {\n const domain = target.slice(2); // Remove \"*.\"\n // Check if hostname ends with the domain\n if (hostname.endsWith(domain)) {\n // Ensure it's either an exact match or has a subdomain\n // (prevents \"notexample.com\" from matching \"*.example.com\")\n if (hostname === domain || hostname.endsWith('.' + domain)) {\n return true;\n }\n }\n }\n return false;\n}\n//# sourceMappingURL=validate.js.map","/**\n * Generate default propagation targets based on the Supabase project URL.\n *\n * By default, trace context is only propagated to Supabase domains for\n * security. This prevents leaking trace context to potentially malicious\n * third-party services.\n *\n * Wildcard strings (e.g. `*.supabase.co`) are matched with linear string\n * operations rather than regex, avoiding ReDoS risk.\n *\n * @param supabaseUrl - The Supabase project URL\n * @returns Array of default propagation targets\n */\nexport function getDefaultPropagationTargets(supabaseUrl) {\n const targets = [];\n // Add exact project hostname\n try {\n const url = new URL(supabaseUrl);\n targets.push(url.hostname);\n }\n catch (error) {\n // Invalid URL, skip exact hostname\n }\n // Supabase cloud domains. Use wildcard strings (not regex) — these are\n // matched by linear hostname-suffix checks, so there is no ReDoS surface.\n targets.push('*.supabase.co', '*.supabase.in');\n // Localhost and loopback addresses for local development.\n targets.push('localhost', '127.0.0.1', '[::1]');\n return targets;\n}\n//# sourceMappingURL=defaults.js.map","import {\n extractTraceContext,\n parseTraceParent,\n shouldPropagateToTarget,\n getDefaultPropagationTargets,\n type TraceContext,\n type TracePropagationTarget,\n} from '@supabase/tracing'\nimport type { TracePropagationOptions } from './types'\n\ntype Fetch = typeof fetch\n\nexport const resolveFetch = (customFetch?: Fetch): Fetch => {\n if (customFetch) {\n return (...args: Parameters<Fetch>) => customFetch(...args)\n }\n return (...args: Parameters<Fetch>) => fetch(...args)\n}\n\nexport const resolveHeadersConstructor = () => {\n return Headers\n}\n\nexport const fetchWithAuth = (\n supabaseKey: string,\n supabaseUrl: string,\n getAccessToken: () => Promise<string | null>,\n customFetch?: Fetch,\n tracePropagationOptions?: TracePropagationOptions\n): Fetch => {\n const fetch = resolveFetch(customFetch)\n const HeadersConstructor = resolveHeadersConstructor()\n\n // Pre-compute trace propagation state once. When disabled, the per-request\n // path skips all tracing work with a single truthy check.\n const traceEnabled = tracePropagationOptions?.enabled === true\n const respectSampling = tracePropagationOptions?.respectSamplingDecision !== false\n const traceTargets: TracePropagationTarget[] | null = traceEnabled\n ? getDefaultPropagationTargets(supabaseUrl)\n : null\n\n return async (input, init) => {\n const accessToken = (await getAccessToken()) ?? supabaseKey\n let headers = new HeadersConstructor(init?.headers)\n\n if (!headers.has('apikey')) {\n headers.set('apikey', supabaseKey)\n }\n\n if (!headers.has('Authorization')) {\n headers.set('Authorization', `Bearer ${accessToken}`)\n }\n\n if (traceTargets) {\n const traceHeaders = await getTraceHeaders(input, traceTargets, respectSampling)\n\n if (traceHeaders) {\n if (traceHeaders.traceparent && !headers.has('traceparent')) {\n headers.set('traceparent', traceHeaders.traceparent)\n }\n if (traceHeaders.tracestate && !headers.has('tracestate')) {\n headers.set('tracestate', traceHeaders.tracestate)\n }\n if (traceHeaders.baggage && !headers.has('baggage')) {\n headers.set('baggage', traceHeaders.baggage)\n }\n }\n }\n\n return fetch(input, { ...init, headers })\n }\n}\n\nasync function getTraceHeaders(\n input: RequestInfo | URL,\n targets: TracePropagationTarget[],\n respectSampling: boolean\n): Promise<TraceContext | null> {\n const targetUrl: string | URL =\n typeof input === 'string' ? input : input instanceof URL ? input : input.url\n\n if (!shouldPropagateToTarget(targetUrl, targets)) {\n return null\n }\n\n const traceContext = await extractTraceContext()\n\n if (!traceContext || !traceContext.traceparent) {\n return null\n }\n\n if (respectSampling) {\n const parsed = parseTraceParent(traceContext.traceparent)\n if (parsed && !parsed.isSampled) {\n return null\n }\n }\n\n return traceContext\n}\n","// helpers.ts\nimport { SupabaseClientOptions, TracePropagationOptions } from './types'\n\nfunction normalizeTracePropagation(\n value: TracePropagationOptions | boolean | undefined\n): TracePropagationOptions | undefined {\n return typeof value === 'boolean' ? { enabled: value } : value\n}\n\nexport function uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = (Math.random() * 16) | 0,\n v = c == 'x' ? r : (r & 0x3) | 0x8\n return v.toString(16)\n })\n}\n\nexport function ensureTrailingSlash(url: string): string {\n return url.endsWith('/') ? url : url + '/'\n}\n\nexport const isBrowser = () => typeof window !== 'undefined'\n\nexport type ResolvedSupabaseClientOptions<SchemaName> = Omit<\n Required<SupabaseClientOptions<SchemaName>>,\n 'tracePropagation'\n> & {\n tracePropagation: TracePropagationOptions\n}\n\nexport function applySettingDefaults<\n Database = any,\n SchemaName extends string & keyof Database = 'public' extends keyof Database\n ? 'public'\n : string & keyof Database,\n>(\n options: SupabaseClientOptions<SchemaName>,\n defaults: SupabaseClientOptions<any>\n): ResolvedSupabaseClientOptions<SchemaName> {\n const {\n db: dbOptions,\n auth: authOptions,\n realtime: realtimeOptions,\n global: globalOptions,\n } = options\n const {\n db: DEFAULT_DB_OPTIONS,\n auth: DEFAULT_AUTH_OPTIONS,\n realtime: DEFAULT_REALTIME_OPTIONS,\n global: DEFAULT_GLOBAL_OPTIONS,\n } = defaults\n\n // Accept either a boolean shorthand or an options object on both sides.\n const tracePropagationOptions = normalizeTracePropagation(options.tracePropagation)\n const DEFAULT_TRACE_PROPAGATION_OPTIONS = normalizeTracePropagation(defaults.tracePropagation)\n\n const result: ResolvedSupabaseClientOptions<SchemaName> = {\n db: {\n ...DEFAULT_DB_OPTIONS,\n ...dbOptions,\n },\n auth: {\n ...DEFAULT_AUTH_OPTIONS,\n ...authOptions,\n },\n realtime: {\n ...DEFAULT_REALTIME_OPTIONS,\n ...realtimeOptions,\n },\n storage: {},\n global: {\n ...DEFAULT_GLOBAL_OPTIONS,\n ...globalOptions,\n headers: {\n ...(DEFAULT_GLOBAL_OPTIONS?.headers ?? {}),\n ...(globalOptions?.headers ?? {}),\n },\n },\n tracePropagation: {\n enabled:\n tracePropagationOptions?.enabled ?? DEFAULT_TRACE_PROPAGATION_OPTIONS?.enabled ?? false,\n respectSamplingDecision:\n tracePropagationOptions?.respectSamplingDecision ??\n DEFAULT_TRACE_PROPAGATION_OPTIONS?.respectSamplingDecision ??\n true,\n },\n accessToken: async () => '',\n }\n\n if (options.accessToken) {\n result.accessToken = options.accessToken\n } else {\n // hack around Required<>\n delete (result as any).accessToken\n }\n\n return result\n}\n\n/**\n * Validates a Supabase client URL\n *\n * @param {string} supabaseUrl - The Supabase client URL string.\n * @returns {URL} - The validated base URL.\n * @throws {Error}\n */\nexport function validateSupabaseUrl(supabaseUrl: string): URL {\n const trimmedUrl = supabaseUrl?.trim()\n\n if (!trimmedUrl) {\n throw new Error('supabaseUrl is required.')\n }\n\n if (!trimmedUrl.match(/^https?:\\/\\//i)) {\n throw new Error('Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.')\n }\n\n try {\n return new URL(ensureTrailingSlash(trimmedUrl))\n } catch {\n throw Error('Invalid supabaseUrl: Provided URL is malformed.')\n }\n}\n","import { AuthClient } from '@supabase/auth-js'\nimport { SupabaseAuthClientOptions } from './types'\n\nexport class SupabaseAuthClient extends AuthClient {\n constructor(options: SupabaseAuthClientOptions) {\n super(options)\n }\n}\n","import type { AuthChangeEvent } from '@supabase/auth-js'\nimport { FunctionsClient } from '@supabase/functions-js'\nimport {\n PostgrestClient,\n type PostgrestFilterBuilder,\n type PostgrestQueryBuilder,\n} from '@supabase/postgrest-js'\nimport {\n type RealtimeChannel,\n type RealtimeChannelOptions,\n RealtimeClient,\n type RealtimeClientOptions,\n type RealtimeRemoveChannelResponse,\n} from '@supabase/realtime-js'\nimport { StorageClient as SupabaseStorageClient } from '@supabase/storage-js'\nimport {\n DEFAULT_AUTH_OPTIONS,\n DEFAULT_DB_OPTIONS,\n DEFAULT_GLOBAL_OPTIONS,\n DEFAULT_REALTIME_OPTIONS,\n DEFAULT_TRACE_PROPAGATION_OPTIONS,\n} from './lib/constants'\nimport { fetchWithAuth } from './lib/fetch'\nimport {\n applySettingDefaults,\n validateSupabaseUrl,\n type ResolvedSupabaseClientOptions,\n} from './lib/helpers'\nimport { SupabaseAuthClient } from './lib/SupabaseAuthClient'\nimport type {\n Fetch,\n GenericSchema,\n SupabaseAuthClientOptions,\n SupabaseClientOptions,\n} from './lib/types'\nimport { GetRpcFunctionFilterBuilderByArgs } from './lib/rest/types/common/rpc'\n\n/**\n * Supabase Client.\n *\n * An isomorphic Javascript client for interacting with Postgres.\n */\nexport default class SupabaseClient<\n Database = any,\n // The second type parameter is also used for specifying db_schema, so we\n // support both cases.\n // TODO: Allow setting db_schema from ClientOptions.\n SchemaNameOrClientOptions extends\n | (string & keyof Omit<Database, '__InternalSupabase'>)\n | { PostgrestVersion: string } = 'public' extends keyof Omit<Database, '__InternalSupabase'>\n ? 'public'\n : string & keyof Omit<Database, '__InternalSupabase'>,\n SchemaName extends string &\n keyof Omit<Database, '__InternalSupabase'> = SchemaNameOrClientOptions extends string &\n keyof Omit<Database, '__InternalSupabase'>\n ? SchemaNameOrClientOptions\n : 'public' extends keyof Omit<Database, '__InternalSupabase'>\n ? 'public'\n : string & keyof Omit<Omit<Database, '__InternalSupabase'>, '__InternalSupabase'>,\n Schema extends Omit<Database, '__InternalSupabase'>[SchemaName] extends GenericSchema\n ? Omit<Database, '__InternalSupabase'>[SchemaName]\n : never = Omit<Database, '__InternalSupabase'>[SchemaName] extends GenericSchema\n ? Omit<Database, '__InternalSupabase'>[SchemaName]\n : never,\n ClientOptions extends { PostgrestVersion: string } = SchemaNameOrClientOptions extends string &\n keyof Omit<Database, '__InternalSupabase'>\n ? // If the version isn't explicitly set, look for it in the __InternalSupabase object to infer the right version\n Database extends { __InternalSupabase: { PostgrestVersion: string } }\n ? Database['__InternalSupabase']\n : // otherwise default to 12\n { PostgrestVersion: '12' }\n : SchemaNameOrClientOptions extends { PostgrestVersion: string }\n ? SchemaNameOrClientOptions\n : never,\n> {\n /**\n * Supabase Auth allows you to create and manage user sessions for access to data that is secured by access policies.\n */\n auth: SupabaseAuthClient\n realtime: RealtimeClient\n /**\n * Supabase Storage allows you to manage user-generated content, such as photos or videos.\n */\n storage: SupabaseStorageClient\n\n protected realtimeUrl: URL\n protected authUrl: URL\n protected storageUrl: URL\n protected functionsUrl: URL\n protected rest: PostgrestClient<Database, ClientOptions, SchemaName>\n protected storageKey: string\n protected fetch?: Fetch\n protected changedAccessToken?: string\n protected accessToken?: () => Promise<string | null>\n\n protected headers: Record<string, string>\n protected settings?: ResolvedSupabaseClientOptions<SchemaName>\n\n /**\n * Create a new client for use in the browser.\n *\n * @category Initializing\n *\n * @param supabaseUrl The unique Supabase URL which is supplied when you create a new project in your project dashboard.\n * @param supabaseKey The unique Supabase Key which is supplied when you create a new project in your project dashboard.\n * @param options.db.schema You can switch in between schemas. The schema needs to be on the list of exposed schemas inside Supabase.\n * @param options.auth.autoRefreshToken Set to \"true\" if you want to automatically refresh the token before expiring.\n * @param options.auth.persistSession Set to \"true\" if you want to automatically save the user session into local storage.\n * @param options.auth.detectSessionInUrl Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user.\n * @param options.realtime Options passed along to realtime-js constructor.\n * @param options.storage Options passed along to the storage-js constructor.\n * @param options.global.fetch A custom fetch implementation.\n * @param options.global.headers Any additional headers to send with each network request.\n *\n * @example Creating a client\n * ```js\n * import { createClient } from '@supabase/supabase-js'\n *\n * // Create a single supabase client for interacting with your database\n * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')\n * ```\n *\n * @example With a custom domain\n * ```js\n * import { createClient } from '@supabase/supabase-js'\n *\n * // Use a custom domain as the supabase URL\n * const supabase = createClient('https://my-custom-domain.com', 'your-publishable-key')\n * ```\n *\n * @example With additional parameters\n * ```js\n * import { createClient } from '@supabase/supabase-js'\n *\n * const options = {\n * db: {\n * schema: 'public',\n * },\n * auth: {\n * autoRefreshToken: true,\n * persistSession: true,\n * detectSessionInUrl: true\n * },\n * global: {\n * headers: { 'x-my-custom-header': 'my-app-name' },\n * },\n * }\n * const supabase = createClient(\"https://xyzcompany.supabase.co\", \"your-publishable-key\", options)\n * ```\n *\n * @exampleDescription With custom schemas\n * By default the API server points to the `public` schema. You can enable other database schemas within the Dashboard.\n * Go to [Settings > API > Exposed schemas](/dashboard/project/_/settings/api) and add the schema which you want to expose to the API.\n *\n * Note: each client connection can only access a single schema, so the code above can access the `other_schema` schema but cannot access the `public` schema.\n *\n * @example With custom schemas\n * ```js\n * import { createClient } from '@supabase/supabase-js'\n *\n * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key', {\n * // Provide a custom schema. Defaults to \"public\".\n * db: { schema: 'other_schema' }\n * })\n * ```\n *\n * @exampleDescription Custom fetch implementation\n * `supabase-js` uses the [`cross-fetch`](https://www.npmjs.com/package/cross-fetch) library to make HTTP requests,\n * but an alternative `fetch` implementation can be provided as an option.\n * This is most useful in environments where `cross-fetch` is not compatible (for instance Cloudflare Workers).\n *\n * @example Custom fetch implementation\n * ```js\n * import { createClient } from '@supabase/supabase-js'\n *\n * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key', {\n * global: { fetch: fetch.bind(globalThis) }\n * })\n * ```\n *\n * @exampleDescription React Native options with AsyncStorage\n * For React Native we recommend using `AsyncStorage` as the storage implementation for Supabase Auth.\n *\n * @example React Native options with AsyncStorage\n * ```js\n * import 'react-native-url-polyfill/auto'\n * import { createClient } from '@supabase/supabase-js'\n * import AsyncStorage from \"@react-native-async-storage/async-storage\";\n *\n * const supabase = createClient(\"https://xyzcompany.supabase.co\", \"your-publishable-key\", {\n * auth: {\n * storage: AsyncStorage,\n * autoRefreshToken: true,\n * persistSession: true,\n * detectSessionInUrl: false,\n * },\n * });\n * ```\n *\n * @exampleDescription React Native options with Expo SecureStore\n * If you wish to encrypt the user's session information, you can use `aes-js` and store the encryption key in Expo SecureStore.\n * The `aes-js` library, a reputable JavaScript-only implementation of the AES encryption algorithm in CTR mode.\n * A new 256-bit encryption key is generated using the `react-native-get-random-values` library.\n * This key is stored inside Expo's SecureStore, while the value is encrypted and placed inside AsyncStorage.\n *\n * Please make sure that:\n * - You keep the `expo-secure-store`, `aes-js` and `react-native-get-random-values` libraries up-to-date.\n * - Choose the correct [`SecureStoreOptions`](https://docs.expo.dev/versions/latest/sdk/securestore/#securestoreoptions) for your app's needs.\n * E.g. [`SecureStore.WHEN_UNLOCKED`](https://docs.expo.dev/versions/latest/sdk/securestore/#securestorewhen_unlocked) regulates when the data can be accessed.\n * - Carefully consider optimizations or other modifications to the above example, as those can lead to introducing subtle security vulnerabilities.\n *\n * @example React Native options with Expo SecureStore\n * ```ts\n * import 'react-native-url-polyfill/auto'\n * import { createClient } from '@supabase/supabase-js'\n * import AsyncStorage from '@react-native-async-storage/async-storage';\n * import * as SecureStore from 'expo-secure-store';\n * import * as aesjs from 'aes-js';\n * import 'react-native-get-random-values';\n *\n * // As Expo's SecureStore does not support values larger than 2048\n * // bytes, an AES-256 key is generated and stored in SecureStore, while\n * // it is used to encrypt/decrypt values stored in AsyncStorage.\n * class LargeSecureStore {\n * private async _encrypt(key: string, value: string) {\n * const encryptionKey = crypto.getRandomValues(new Uint8Array(256 / 8));\n *\n * const cipher = new aesjs.ModeOfOperation.ctr(encryptionKey, new aesjs.Counter(1));\n * const encryptedBytes = cipher.encrypt(aesjs.utils.utf8.toBytes(value));\n *\n * await SecureStore.setItemAsync(key, aesjs.utils.hex.fromBytes(encryptionKey));\n *\n * return aesjs.utils.hex.fromBytes(encryptedBytes);\n * }\n *\n * private async _decrypt(key: string, value: string) {\n * const encryptionKeyHex = await SecureStore.getItemAsync(key);\n * if (!encryptionKeyHex) {\n * return encryptionKeyHex;\n * }\n *\n * const cipher = new aesjs.ModeOfOperation.ctr(aesjs.utils.hex.toBytes(encryptionKeyHex), new aesjs.Counter(1));\n * const decryptedBytes = cipher.decrypt(aesjs.utils.hex.toBytes(value));\n *\n * return aesjs.utils.utf8.fromBytes(decryptedBytes);\n * }\n *\n * async getItem(key: string) {\n * const encrypted = await AsyncStorage.getItem(key);\n * if (!encrypted) { return encrypted; }\n *\n * return await this._decrypt(key, encrypted);\n * }\n *\n * async removeItem(key: string) {\n * await AsyncStorage.removeItem(key);\n * await SecureStore.deleteItemAsync(key);\n * }\n *\n * async setItem(key: string, value: string) {\n * const encrypted = await this._encrypt(key, value);\n *\n * await AsyncStorage.setItem(key, encrypted);\n * }\n * }\n *\n * const supabase = createClient(\"https://xyzcompany.supabase.co\", \"your-publishable-key\", {\n * auth: {\n * storage: new LargeSecureStore(),\n * autoRefreshToken: true,\n * persistSession: true,\n * detectSessionInUrl: false,\n * },\n * });\n * ```\n *\n * @example With a database query\n * ```ts\n * import { createClient } from '@supabase/supabase-js'\n *\n * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')\n *\n * const { data } = await supabase.from('profiles').select('*')\n * ```\n */\n constructor(\n protected supabaseUrl: string,\n protected supabaseKey: string,\n options?: SupabaseClientOptions<SchemaName>\n ) {\n const baseUrl = validateSupabaseUrl(supabaseUrl)\n if (!supabaseKey) throw new Error('supabaseKey is required.')\n\n this.realtimeUrl = new URL('realtime/v1', baseUrl)\n this.realtimeUrl.protocol = this.realtimeUrl.protocol.replace('http', 'ws')\n this.authUrl = new URL('auth/v1', baseUrl)\n this.storageUrl = new URL('storage/v1', baseUrl)\n this.functionsUrl = new URL('functions/v1', baseUrl)\n\n // default storage key uses the supabase project ref as a namespace\n const defaultStorageKey = `sb-${baseUrl.hostname.split('.')[0]}-auth-token`\n const DEFAULTS = {\n db: DEFAULT_DB_OPTIONS,\n realtime: DEFAULT_REALTIME_OPTIONS,\n auth: { ...DEFAULT_AUTH_OPTIONS, storageKey: defaultStorageKey },\n global: DEFAULT_GLOBAL_OPTIONS,\n tracePropagation: DEFAULT_TRACE_PROPAGATION_OPTIONS,\n }\n\n const settings = applySettingDefaults(options ?? {}, DEFAULTS)\n this.settings = settings\n\n this.storageKey = settings.auth.storageKey ?? ''\n this.headers = settings.global.headers ?? {}\n\n if (!settings.accessToken) {\n this.auth = this._initSupabaseAuthClient(\n settings.auth ?? {},\n this.headers,\n settings.global.fetch\n )\n } else {\n this.accessToken = settings.accessToken\n\n this.auth = new Proxy<SupabaseAuthClient>({} as any, {\n get: (_, prop) => {\n throw new Error(\n `@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(\n prop\n )} is not possible`\n )\n },\n })\n }\n\n this.fetch = fetchWithAuth(\n supabaseKey,\n supabaseUrl,\n this._getAccessToken.bind(this),\n settings.global.fetch,\n settings.tracePropagation\n )\n this.realtime = this._initRealtimeClient({\n headers: this.headers,\n accessToken: this._getAccessToken.bind(this),\n fetch: this.fetch,\n ...settings.realtime,\n })\n if (this.accessToken) {\n // Start auth immediately to avoid race condition with channel subscriptions\n // Wrap Promise to avoid Firefox extension cross-context Promise access errors\n Promise.resolve(this.accessToken())\n .then((token) => this.realtime.setAuth(token))\n .catch((e) => console.warn('Failed to set initial Realtime auth token:', e))\n }\n\n this.rest = new PostgrestClient(new URL('rest/v1', baseUrl).href, {\n headers: this.headers,\n schema: settings.db.schema,\n fetch: this.fetch,\n timeout: settings.db.timeout,\n urlLengthLimit: settings.db.urlLengthLimit,\n })\n\n this.storage = new SupabaseStorageClient(\n this.storageUrl.href,\n this.headers,\n this.fetch,\n options?.storage\n )\n\n if (!settings.accessToken) {\n this._listenForAuthEvents()\n }\n }\n\n /**\n * Supabase Functions allows you to deploy and invoke edge functions.\n */\n get functions(): FunctionsClient {\n return new FunctionsClient(this.functionsUrl.href, {\n headers: this.headers,\n customFetch: this.fetch,\n })\n }\n\n // NOTE: signatures must be kept in sync with PostgrestClient.from\n from<\n TableName extends string & keyof Schema['Tables'],\n Table extends Schema['Tables'][TableName],\n >(relation: TableName): PostgrestQueryBuilder<ClientOptions, Schema, Table, TableName>\n from<ViewName extends string & keyof Schema['Views'], View extends Schema['Views'][ViewName]>(\n relation: ViewName\n ): PostgrestQueryBuilder<ClientOptions, Schema, View, ViewName>\n /**\n * Perform a query on a table or a view.\n *\n * @param relation - The table or view name to query\n */\n from(relation: string): PostgrestQueryBuilder<ClientOptions, Schema, any> {\n return this.rest.from(relation)\n }\n\n // NOTE: signatures must be kept in sync with PostgrestClient.schema\n /**\n * Select a schema to query or perform an function (rpc) call.\n *\n * The schema needs to be on the list of exposed schemas inside Supabase.\n *\n * @param schema - The schema to query\n */\n schema<DynamicSchema extends string & keyof Omit<Database, '__InternalSupabase'>>(\n schema: DynamicSchema\n ): PostgrestClient<\n Database,\n ClientOptions,\n DynamicSchema,\n Database[DynamicSchema] extends GenericSchema ? Database[DynamicSchema] : any\n > {\n return this.rest.schema<DynamicSchema>(schema)\n }\n\n // NOTE: signatures must be kept in sync with PostgrestClient.rpc\n /**\n * Perform a function call.\n *\n * @param fn - The function name to call\n * @param args - The arguments to pass to the function call\n * @param options - Named parameters\n * @param options.head - When set to `true`, `data` will not be returned.\n * Useful if you only need the count.\n * @param options.get - When set to `true`, the function will be called with\n * read-only access mode.\n * @param options.count - Count algorithm to use to count rows returned by the\n * function. Only applicable for [set-returning\n * functions](https://www.postgresql.org/docs/current/functions-srf.html).\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */\n rpc<\n FnName extends string & keyof Schema['Functions'],\n Args extends Schema['Functions'][FnName]['Args'] = never,\n FilterBuilder extends GetRpcFunctionFilterBuilderByArgs<\n Schema,\n FnName,\n Args\n > = GetRpcFunctionFilterBuilderByArgs<Schema, FnName, Args>,\n >(\n fn: FnName,\n args: Args = {} as Args,\n options: {\n head?: boolean\n get?: boolean\n count?: 'exact' | 'planned' | 'estimated'\n } = {\n head: false,\n get: false,\n count: undefined,\n }\n ): PostgrestFilterBuilder<\n ClientOptions,\n Schema,\n FilterBuilder['Row'],\n FilterBuilder['Result'],\n FilterBuilder['RelationName'],\n FilterBuilder['Relationships'],\n 'RPC'\n > {\n return this.rest.rpc(fn, args, options) as unknown as PostgrestFilterBuilder<\n ClientOptions,\n Schema,\n FilterBuilder['Row'],\n FilterBuilder['Result'],\n FilterBuilder['RelationName'],\n FilterBuilder['Relationships'],\n 'RPC'\n >\n }\n\n /**\n * Creates a Realtime channel with Broadcast, Presence, and Postgres Changes.\n *\n * @param {string} name - The name of the Realtime channel.\n * @param {Object} opts - The options to pass to the Realtime channel.\n *\n * @category Realtime\n */\n channel(name: string, opts: RealtimeChannelOptions = { config: {} }): RealtimeChannel {\n return this.realtime.channel(name, opts)\n }\n\n /**\n * Returns all Realtime channels.\n *\n * @category Realtime\n *\n * @example Get all channels\n * ```js\n * const channels = supabase.getChannels()\n * ```\n */\n getChannels(): RealtimeChannel[] {\n return this.realtime.getChannels()\n }\n\n /**\n * Unsubscribes and removes Realtime channel from Realtime client.\n *\n * @param {RealtimeChannel} channel - The name of the Realtime channel.\n *\n *\n * @category Realtime\n *\n * @remarks\n * - Removing a channel is a great way to maintain the performance of your project's Realtime service as well as your database if you're listening to Postgres changes. Supabase will automatically handle cleanup 30 seconds after a client is disconnected, but unused channels may cause degradation as more clients are simultaneously subscribed.\n *\n * @example Removes a channel\n * ```js\n * supabase.removeChannel(myChannel)\n * ```\n */\n removeChannel(channel: RealtimeChannel): Promise<RealtimeRemoveChannelResponse> {\n return this.realtime.removeChannel(channel)\n }\n\n /**\n * Unsubscribes and removes all Realtime channels from Realtime client.\n *\n * @category Realtime\n *\n * @remarks\n * - Removing channels is a great way to maintain the performance of your project's Realtime service as well as your database if you're listening to Postgres changes. Supabase will automatically handle cleanup 30 seconds after a client is disconnected, but unused channels may cause degradation as more clients are simultaneously subscribed.\n *\n * @example Remove all channels\n * ```js\n * supabase.removeAllChannels()\n * ```\n */\n removeAllChannels(): Promise<RealtimeRemoveChannelResponse[]> {\n return this.realtime.removeAllChannels()\n }\n\n private async _getAccessToken() {\n if (this.accessToken) {\n return await this.accessToken()\n }\n\n const { data } = await this.auth.getSession()\n\n return data.session?.access_token ?? this.supabaseKey\n }\n\n private _initSupabaseAuthClient(\n {\n autoRefreshToken,\n persistSession,\n detectSessionInUrl,\n storage,\n userStorage,\n storageKey,\n flowType,\n lock,\n debug,\n throwOnError,\n experimental,\n lockAcquireTimeout,\n skipAutoInitialize,\n }: SupabaseAuthClientOptions,\n headers?: Record<string, string>,\n fetch?: Fetch\n ) {\n const authHeaders = {\n Authorization: `Bearer ${this.supabaseKey}`,\n apikey: `${this.supabaseKey}`,\n }\n return new SupabaseAuthClient({\n url: this.authUrl.href,\n headers: { ...authHeaders, ...headers },\n storageKey: storageKey,\n autoRefreshToken,\n persistSession,\n detectSessionInUrl,\n storage,\n userStorage,\n flowType,\n lock,\n debug,\n throwOnError,\n experimental,\n fetch,\n lockAcquireTimeout,\n skipAutoInitialize,\n // auth checks if there is a custom authorizaiton header using this flag\n // so it knows whether to return an error when getUser is called with no session\n hasCustomAuthorizationHeader: Object.keys(this.headers).some(\n (key) => key.toLowerCase() === 'authorization'\n ),\n })\n }\n\n private _initRealtimeClient(options: RealtimeClientOptions) {\n return new RealtimeClient(this.realtimeUrl.href, {\n ...options,\n params: { ...{ apikey: this.supabaseKey }, ...options?.params },\n })\n }\n\n private _listenForAuthEvents() {\n const data = this.auth.onAuthStateChange((event, session) => {\n this._handleTokenChanged(event, 'CLIENT', session?.access_token)\n })\n return data\n }\n\n private _handleTokenChanged(\n event: AuthChangeEvent,\n source: 'CLIENT' | 'STORAGE',\n token?: string\n ) {\n if (\n (event === 'TOKEN_REFRESHED' || event === 'SIGNED_IN') &&\n this.changedAccessToken !== token\n ) {\n this.changedAccessToken = token\n this.realtime.setAuth(token)\n } else if (event === 'SIGNED_OUT') {\n this.realtime.setAuth()\n if (source == 'STORAGE') this.auth.signOut()\n this.changedAccessToken = undefined\n }\n }\n}\n","import SupabaseClient from './SupabaseClient'\nimport type { SupabaseClientOptions } from './lib/types'\n\nexport * from '@supabase/auth-js'\nexport type { User as AuthUser, Session as AuthSession } from '@supabase/auth-js'\nexport type {\n PostgrestResponse,\n PostgrestSingleResponse,\n PostgrestMaybeSingleResponse,\n PostgrestBuilder,\n PostgrestFilterBuilder,\n PostgrestTransformBuilder,\n PostgrestQueryBuilder,\n} from '@supabase/postgrest-js'\nexport { PostgrestError } from '@supabase/postgrest-js'\nexport { StorageApiError } from '@supabase/storage-js'\nexport type { FunctionInvokeOptions } from '@supabase/functions-js'\nexport {\n FunctionsHttpError,\n FunctionsFetchError,\n FunctionsRelayError,\n FunctionsError,\n FunctionRegion,\n} from '@supabase/functions-js'\nexport * from '@supabase/realtime-js'\nexport { default as SupabaseClient } from './SupabaseClient'\nexport type {\n SupabaseClientOptions,\n QueryResult,\n QueryData,\n QueryError,\n DatabaseWithoutInternals,\n} from './lib/types'\n\n/**\n * Creates a new Supabase Client.\n *\n * @example Creating a Supabase client\n * ```ts\n * import { createClient } from '@supabase/supabase-js'\n *\n * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')\n * const { data, error } = await supabase.from('profiles').select('*')\n * ```\n */\nexport const createClient = <\n Database = any,\n SchemaNameOrClientOptions extends\n | (string & keyof Omit<Database, '__InternalSupabase'>)\n | { PostgrestVersion: string } = 'public' extends keyof Omit<Database, '__InternalSupabase'>\n ? 'public'\n : string & keyof Omit<Database, '__InternalSupabase'>,\n SchemaName extends string &\n keyof Omit<Database, '__InternalSupabase'> = SchemaNameOrClientOptions extends string &\n keyof Omit<Database, '__InternalSupabase'>\n ? SchemaNameOrClientOptions\n : 'public' extends keyof Omit<Database, '__InternalSupabase'>\n ? 'public'\n : string & keyof Omit<Omit<Database, '__InternalSupabase'>, '__InternalSupabase'>,\n>(\n supabaseUrl: string,\n supabaseKey: string,\n options?: SupabaseClientOptions<SchemaName>\n): SupabaseClient<Database, SchemaNameOrClientOptions, SchemaName> => {\n return new SupabaseClient<Database, SchemaNameOrClientOptions, SchemaName>(\n supabaseUrl,\n supabaseKey,\n options\n )\n}\n\n// Check for Node.js <= 18 deprecation\nfunction shouldShowDeprecationWarning(): boolean {\n // Skip in browser environments\n if (typeof window !== 'undefined') {\n return false\n }\n\n // Skip if process is not available (e.g., Edge Runtime)\n // Use dynamic property access to avoid Next.js Edge Runtime static analysis warnings\n const _process = (globalThis as any)['process']\n if (!_process) {\n return false\n }\n\n const processVersion = _process['version']\n if (processVersion === undefined || processVersion === null) {\n return false\n }\n\n const versionMatch = processVersion.match(/^v(\\d+)\\./)\n if (!versionMatch) {\n return false\n }\n\n const majorVersion = parseInt(versionMatch[1], 10)\n return majorVersion <= 18\n}\n\nif (shouldShowDeprecationWarning()) {\n console.warn(\n `⚠️ Node.js 18 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. ` +\n `Please upgrade to Node.js 20 or later. ` +\n `For more information, visit: https://github.com/orgs/supabase/discussions/37217`\n )\n}\n"],"x_google_ignoreList":[2],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["DEFAULT_AUTH_OPTIONS: SupabaseAuthClientOptions","DEFAULT_REALTIME_OPTIONS: RealtimeClientOptions","DEFAULT_TRACE_PROPAGATION_OPTIONS: TracePropagationOptions","version","fetch","traceTargets: TracePropagationTarget[] | null","DEFAULT_DB_OPTIONS","DEFAULT_AUTH_OPTIONS","DEFAULT_REALTIME_OPTIONS","DEFAULT_GLOBAL_OPTIONS","DEFAULT_TRACE_PROPAGATION_OPTIONS","result: ResolvedSupabaseClientOptions<SchemaName>","AuthClient","supabaseUrl: string","supabaseKey: string","PostgrestClient","SupabaseStorageClient","FunctionsClient","this","RealtimeClient"],"sources":["../src/lib/version.ts","../src/lib/constants.ts","../../../../node_modules/tslib/tslib.es6.mjs","../../../shared/tracing/dist/module/extract.js","../../../shared/tracing/dist/module/parse.js","../../../shared/tracing/dist/module/validate.js","../../../shared/tracing/dist/module/defaults.js","../src/lib/fetch.ts","../src/lib/helpers.ts","../src/lib/SupabaseAuthClient.ts","../src/SupabaseClient.ts","../src/index.ts"],"sourcesContent":["// Generated automatically during releases by scripts/update-version-files.ts\n// This file provides runtime access to the package version for:\n// - HTTP request headers (e.g., X-Client-Info header for API requests)\n// - Debugging and support (identifying which version is running)\n// - Telemetry and logging (version reporting in errors/analytics)\n// - Ensuring build artifacts match the published package version\nexport const version = '2.106.0-canary.2'\n","// constants.ts\nimport { RealtimeClientOptions } from '@supabase/realtime-js'\nimport { SupabaseAuthClientOptions, TracePropagationOptions } from './types'\nimport { version } from './version'\n\nlet JS_ENV = ''\n// @ts-ignore\nif (typeof Deno !== 'undefined') {\n JS_ENV = 'deno'\n} else if (typeof document !== 'undefined') {\n JS_ENV = 'web'\n} else if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n JS_ENV = 'react-native'\n} else {\n JS_ENV = 'node'\n}\n\nexport const DEFAULT_HEADERS = { 'X-Client-Info': `supabase-js-${JS_ENV}/${version}` }\n\nexport const DEFAULT_GLOBAL_OPTIONS = {\n headers: DEFAULT_HEADERS,\n}\n\nexport const DEFAULT_DB_OPTIONS = {\n schema: 'public',\n}\n\nexport const DEFAULT_AUTH_OPTIONS: SupabaseAuthClientOptions = {\n autoRefreshToken: true,\n persistSession: true,\n detectSessionInUrl: true,\n flowType: 'implicit',\n}\n\nexport const DEFAULT_REALTIME_OPTIONS: RealtimeClientOptions = {}\n\nexport const DEFAULT_TRACE_PROPAGATION_OPTIONS: TracePropagationOptions = {\n enabled: false,\n respectSamplingDecision: true,\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { __awaiter } from \"tslib\";\n// Cache the dynamic import across all calls. Resolved (or failed) once per\n// process; subsequent calls hit the resolved promise as a synchronous microtask\n// instead of re-entering the module resolver.\n//\n// `any` here intentionally avoids referencing @opentelemetry/api types at\n// compile time, since it's an optional peer dep that may not be installed.\nlet otelModulePromise = null;\n// Indirect the specifier through a variable so static bundlers\n// (webpack, turbopack, rollup, vite, esbuild) do not attempt to resolve\n// @opentelemetry/api at build time. It's an optional peer dep that may not\n// be installed in the consumer app; we look it up purely at runtime.\nconst OTEL_PKG = '@opentelemetry/api';\nfunction loadOtel() {\n if (otelModulePromise === null) {\n // The variable specifier + magic comments together cover every common\n // bundler. Webpack/Turbopack honor the ignore comments; bundlers that\n // ignore the comments still bail out on the non-literal specifier.\n otelModulePromise = import(\n /* webpackIgnore: true */ /* @vite-ignore */ /* turbopackIgnore: true */ OTEL_PKG).catch(() => null);\n }\n return otelModulePromise;\n}\n/**\n * For tests only. Resets the cached OpenTelemetry import.\n *\n * @internal\n */\nexport function _resetOtelCache() {\n otelModulePromise = null;\n}\n/**\n * Extract trace context from the OpenTelemetry API.\n *\n * Returns null if `@opentelemetry/api` is not installed or there is no active\n * trace context. The dynamic import is cached after the first call.\n *\n * @returns Trace context with traceparent, tracestate, and baggage headers, or null if unavailable\n */\nexport function extractTraceContext() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const otel = yield loadOtel();\n if (!otel || !otel.propagation || !otel.context) {\n return null;\n }\n const carrier = {};\n otel.propagation.inject(otel.context.active(), carrier);\n const traceparent = carrier['traceparent'];\n if (!traceparent) {\n return null;\n }\n return {\n traceparent,\n tracestate: carrier['tracestate'],\n baggage: carrier['baggage'],\n };\n }\n catch (_a) {\n return null;\n }\n });\n}\n//# sourceMappingURL=extract.js.map","/**\n * Parse W3C traceparent header according to the specification.\n *\n * The traceparent header format is: version-traceid-parentid-traceflags\n * - version: 2 hex digits (currently always \"00\")\n * - traceid: 32 hex digits (128-bit trace identifier)\n * - parentid: 16 hex digits (64-bit span/parent identifier)\n * - traceflags: 2 hex digits (8-bit flags, bit 0 is sampled flag)\n *\n * @param traceparent - The traceparent header value\n * @returns Parsed traceparent object, or null if invalid format\n *\n * @see https://www.w3.org/TR/trace-context/#traceparent-header\n *\n * @example\n * ```typescript\n * const parsed = parseTraceParent('00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01')\n *\n * console.log(parsed)\n * // {\n * // version: '00',\n * // traceId: '0af7651916cd43dd8448eb211c80319c',\n * // parentId: 'b7ad6b7169203331',\n * // traceFlags: '01',\n * // isSampled: true\n * // }\n * ```\n */\nexport function parseTraceParent(traceparent) {\n if (!traceparent || typeof traceparent !== 'string') {\n return null;\n }\n // Split by hyphen\n const parts = traceparent.split('-');\n // Must have exactly 4 parts\n if (parts.length !== 4) {\n return null;\n }\n const [version, traceId, parentId, traceFlags] = parts;\n // Validate field lengths according to W3C spec\n if (version.length !== 2 ||\n traceId.length !== 32 ||\n parentId.length !== 16 ||\n traceFlags.length !== 2) {\n return null;\n }\n // Validate that all fields are valid hexadecimal\n const hexRegex = /^[0-9a-f]+$/i;\n if (!hexRegex.test(version) ||\n !hexRegex.test(traceId) ||\n !hexRegex.test(parentId) ||\n !hexRegex.test(traceFlags)) {\n return null;\n }\n // Validate that trace-id and parent-id are not all zeros (invalid per spec)\n if (traceId === '00000000000000000000000000000000' || parentId === '0000000000000000') {\n return null;\n }\n // Parse sampling decision from trace-flags (bit 0)\n const flags = parseInt(traceFlags, 16);\n const isSampled = (flags & 0x01) === 0x01;\n return {\n version,\n traceId,\n parentId,\n traceFlags,\n isSampled,\n };\n}\n//# sourceMappingURL=parse.js.map","/**\n * Check if trace context should be propagated to the target URL.\n *\n * This function checks if the target URL matches any of the configured\n * propagation targets. Targets can be:\n * - String: Exact hostname match or wildcard domain (*.example.com)\n * - RegExp: Pattern matching hostname\n * - Function: Custom logic to determine if URL should receive trace context\n *\n * @param targetUrl - The URL to check\n * @param targets - Array of propagation targets\n * @returns True if trace context should be propagated, false otherwise\n *\n * @example\n * ```typescript\n * const targets = [\n * 'myproject.supabase.co', // Exact match\n * '*.supabase.co', // Wildcard domain\n * /.*\\.supabase\\.co$/, // Regex pattern\n * (url) => url.hostname === 'localhost' // Custom function\n * ]\n *\n * shouldPropagateToTarget('https://myproject.supabase.co/rest/v1/table', targets)\n * // true\n *\n * shouldPropagateToTarget('https://evil.com/api', targets)\n * // false\n * ```\n */\nexport function shouldPropagateToTarget(targetUrl, targets) {\n if (!targetUrl || !targets || targets.length === 0) {\n return false;\n }\n let url;\n if (targetUrl instanceof URL) {\n url = targetUrl;\n }\n else {\n try {\n url = new URL(targetUrl);\n }\n catch (error) {\n // Invalid URL\n return false;\n }\n }\n // Check each target\n for (const target of targets) {\n try {\n if (typeof target === 'string') {\n // String matcher: exact match or wildcard domain\n if (matchStringTarget(url.hostname, target)) {\n return true;\n }\n }\n else if (target instanceof RegExp) {\n // Regex matcher\n if (target.test(url.hostname)) {\n return true;\n }\n }\n else if (typeof target === 'function') {\n // Function matcher\n if (target(url)) {\n return true;\n }\n }\n }\n catch (error) {\n // Ignore errors from individual matchers and continue\n continue;\n }\n }\n return false;\n}\n/**\n * Match hostname against string target (exact match or wildcard)\n *\n * @param hostname - The hostname to check\n * @param target - The target pattern (exact or wildcard)\n * @returns True if hostname matches target\n */\nfunction matchStringTarget(hostname, target) {\n // Exact match\n if (target === hostname) {\n return true;\n }\n // Wildcard domain match (*.example.com)\n if (target.startsWith('*.')) {\n const domain = target.slice(2); // Remove \"*.\"\n // Check if hostname ends with the domain\n if (hostname.endsWith(domain)) {\n // Ensure it's either an exact match or has a subdomain\n // (prevents \"notexample.com\" from matching \"*.example.com\")\n if (hostname === domain || hostname.endsWith('.' + domain)) {\n return true;\n }\n }\n }\n return false;\n}\n//# sourceMappingURL=validate.js.map","/**\n * Generate default propagation targets based on the Supabase project URL.\n *\n * By default, trace context is only propagated to Supabase domains for\n * security. This prevents leaking trace context to potentially malicious\n * third-party services.\n *\n * Wildcard strings (e.g. `*.supabase.co`) are matched with linear string\n * operations rather than regex, avoiding ReDoS risk.\n *\n * @param supabaseUrl - The Supabase project URL\n * @returns Array of default propagation targets\n */\nexport function getDefaultPropagationTargets(supabaseUrl) {\n const targets = [];\n // Add exact project hostname\n try {\n const url = new URL(supabaseUrl);\n targets.push(url.hostname);\n }\n catch (error) {\n // Invalid URL, skip exact hostname\n }\n // Supabase cloud domains. Use wildcard strings (not regex) — these are\n // matched by linear hostname-suffix checks, so there is no ReDoS surface.\n targets.push('*.supabase.co', '*.supabase.in');\n // Localhost and loopback addresses for local development.\n targets.push('localhost', '127.0.0.1', '[::1]');\n return targets;\n}\n//# sourceMappingURL=defaults.js.map","import {\n extractTraceContext,\n parseTraceParent,\n shouldPropagateToTarget,\n getDefaultPropagationTargets,\n type TraceContext,\n type TracePropagationTarget,\n} from '@supabase/tracing'\nimport type { TracePropagationOptions } from './types'\n\ntype Fetch = typeof fetch\n\nexport const resolveFetch = (customFetch?: Fetch): Fetch => {\n if (customFetch) {\n return (...args: Parameters<Fetch>) => customFetch(...args)\n }\n return (...args: Parameters<Fetch>) => fetch(...args)\n}\n\nexport const resolveHeadersConstructor = () => {\n return Headers\n}\n\nexport const fetchWithAuth = (\n supabaseKey: string,\n supabaseUrl: string,\n getAccessToken: () => Promise<string | null>,\n customFetch?: Fetch,\n tracePropagationOptions?: TracePropagationOptions\n): Fetch => {\n const fetch = resolveFetch(customFetch)\n const HeadersConstructor = resolveHeadersConstructor()\n\n // Pre-compute trace propagation state once. When disabled, the per-request\n // path skips all tracing work with a single truthy check.\n const traceEnabled = tracePropagationOptions?.enabled === true\n const respectSampling = tracePropagationOptions?.respectSamplingDecision !== false\n const traceTargets: TracePropagationTarget[] | null = traceEnabled\n ? getDefaultPropagationTargets(supabaseUrl)\n : null\n\n return async (input, init) => {\n const accessToken = (await getAccessToken()) ?? supabaseKey\n let headers = new HeadersConstructor(init?.headers)\n\n if (!headers.has('apikey')) {\n headers.set('apikey', supabaseKey)\n }\n\n if (!headers.has('Authorization')) {\n headers.set('Authorization', `Bearer ${accessToken}`)\n }\n\n if (traceTargets) {\n const traceHeaders = await getTraceHeaders(input, traceTargets, respectSampling)\n\n if (traceHeaders) {\n if (traceHeaders.traceparent && !headers.has('traceparent')) {\n headers.set('traceparent', traceHeaders.traceparent)\n }\n if (traceHeaders.tracestate && !headers.has('tracestate')) {\n headers.set('tracestate', traceHeaders.tracestate)\n }\n if (traceHeaders.baggage && !headers.has('baggage')) {\n headers.set('baggage', traceHeaders.baggage)\n }\n }\n }\n\n return fetch(input, { ...init, headers })\n }\n}\n\nasync function getTraceHeaders(\n input: RequestInfo | URL,\n targets: TracePropagationTarget[],\n respectSampling: boolean\n): Promise<TraceContext | null> {\n const targetUrl: string | URL =\n typeof input === 'string' ? input : input instanceof URL ? input : input.url\n\n if (!shouldPropagateToTarget(targetUrl, targets)) {\n return null\n }\n\n const traceContext = await extractTraceContext()\n\n if (!traceContext || !traceContext.traceparent) {\n return null\n }\n\n if (respectSampling) {\n const parsed = parseTraceParent(traceContext.traceparent)\n if (parsed && !parsed.isSampled) {\n return null\n }\n }\n\n return traceContext\n}\n","// helpers.ts\nimport { SupabaseClientOptions, TracePropagationOptions } from './types'\n\nfunction normalizeTracePropagation(\n value: TracePropagationOptions | boolean | undefined\n): TracePropagationOptions | undefined {\n return typeof value === 'boolean' ? { enabled: value } : value\n}\n\nexport function uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = (Math.random() * 16) | 0,\n v = c == 'x' ? r : (r & 0x3) | 0x8\n return v.toString(16)\n })\n}\n\nexport function ensureTrailingSlash(url: string): string {\n return url.endsWith('/') ? url : url + '/'\n}\n\nexport const isBrowser = () => typeof window !== 'undefined'\n\nexport type ResolvedSupabaseClientOptions<SchemaName> = Omit<\n Required<SupabaseClientOptions<SchemaName>>,\n 'tracePropagation'\n> & {\n tracePropagation: TracePropagationOptions\n}\n\nexport function applySettingDefaults<\n Database = any,\n SchemaName extends string & keyof Database = 'public' extends keyof Database\n ? 'public'\n : string & keyof Database,\n>(\n options: SupabaseClientOptions<SchemaName>,\n defaults: SupabaseClientOptions<any>\n): ResolvedSupabaseClientOptions<SchemaName> {\n const {\n db: dbOptions,\n auth: authOptions,\n realtime: realtimeOptions,\n global: globalOptions,\n } = options\n const {\n db: DEFAULT_DB_OPTIONS,\n auth: DEFAULT_AUTH_OPTIONS,\n realtime: DEFAULT_REALTIME_OPTIONS,\n global: DEFAULT_GLOBAL_OPTIONS,\n } = defaults\n\n // Accept either a boolean shorthand or an options object on both sides.\n const tracePropagationOptions = normalizeTracePropagation(options.tracePropagation)\n const DEFAULT_TRACE_PROPAGATION_OPTIONS = normalizeTracePropagation(defaults.tracePropagation)\n\n const result: ResolvedSupabaseClientOptions<SchemaName> = {\n db: {\n ...DEFAULT_DB_OPTIONS,\n ...dbOptions,\n },\n auth: {\n ...DEFAULT_AUTH_OPTIONS,\n ...authOptions,\n },\n realtime: {\n ...DEFAULT_REALTIME_OPTIONS,\n ...realtimeOptions,\n },\n storage: {},\n global: {\n ...DEFAULT_GLOBAL_OPTIONS,\n ...globalOptions,\n headers: {\n ...(DEFAULT_GLOBAL_OPTIONS?.headers ?? {}),\n ...(globalOptions?.headers ?? {}),\n },\n },\n tracePropagation: {\n enabled:\n tracePropagationOptions?.enabled ?? DEFAULT_TRACE_PROPAGATION_OPTIONS?.enabled ?? false,\n respectSamplingDecision:\n tracePropagationOptions?.respectSamplingDecision ??\n DEFAULT_TRACE_PROPAGATION_OPTIONS?.respectSamplingDecision ??\n true,\n },\n accessToken: async () => '',\n }\n\n if (options.accessToken) {\n result.accessToken = options.accessToken\n } else {\n // hack around Required<>\n delete (result as any).accessToken\n }\n\n return result\n}\n\n/**\n * Validates a Supabase client URL\n *\n * @param {string} supabaseUrl - The Supabase client URL string.\n * @returns {URL} - The validated base URL.\n * @throws {Error}\n */\nexport function validateSupabaseUrl(supabaseUrl: string): URL {\n const trimmedUrl = supabaseUrl?.trim()\n\n if (!trimmedUrl) {\n throw new Error('supabaseUrl is required.')\n }\n\n if (!trimmedUrl.match(/^https?:\\/\\//i)) {\n throw new Error('Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.')\n }\n\n try {\n return new URL(ensureTrailingSlash(trimmedUrl))\n } catch {\n throw Error('Invalid supabaseUrl: Provided URL is malformed.')\n }\n}\n","import { AuthClient } from '@supabase/auth-js'\nimport { SupabaseAuthClientOptions } from './types'\n\nexport class SupabaseAuthClient extends AuthClient {\n constructor(options: SupabaseAuthClientOptions) {\n super(options)\n }\n}\n","import type { AuthChangeEvent } from '@supabase/auth-js'\nimport { FunctionsClient } from '@supabase/functions-js'\nimport {\n PostgrestClient,\n type PostgrestFilterBuilder,\n type PostgrestQueryBuilder,\n} from '@supabase/postgrest-js'\nimport {\n type RealtimeChannel,\n type RealtimeChannelOptions,\n RealtimeClient,\n type RealtimeClientOptions,\n type RealtimeRemoveChannelResponse,\n} from '@supabase/realtime-js'\nimport { StorageClient as SupabaseStorageClient } from '@supabase/storage-js'\nimport {\n DEFAULT_AUTH_OPTIONS,\n DEFAULT_DB_OPTIONS,\n DEFAULT_GLOBAL_OPTIONS,\n DEFAULT_REALTIME_OPTIONS,\n DEFAULT_TRACE_PROPAGATION_OPTIONS,\n} from './lib/constants'\nimport { fetchWithAuth } from './lib/fetch'\nimport {\n applySettingDefaults,\n validateSupabaseUrl,\n type ResolvedSupabaseClientOptions,\n} from './lib/helpers'\nimport { SupabaseAuthClient } from './lib/SupabaseAuthClient'\nimport type {\n Fetch,\n GenericSchema,\n SupabaseAuthClientOptions,\n SupabaseClientOptions,\n} from './lib/types'\nimport { GetRpcFunctionFilterBuilderByArgs } from './lib/rest/types/common/rpc'\n\n/**\n * Supabase Client.\n *\n * An isomorphic Javascript client for interacting with Postgres.\n */\nexport default class SupabaseClient<\n Database = any,\n // The second type parameter is also used for specifying db_schema, so we\n // support both cases.\n // TODO: Allow setting db_schema from ClientOptions.\n SchemaNameOrClientOptions extends\n | (string & keyof Omit<Database, '__InternalSupabase'>)\n | { PostgrestVersion: string } = 'public' extends keyof Omit<Database, '__InternalSupabase'>\n ? 'public'\n : string & keyof Omit<Database, '__InternalSupabase'>,\n SchemaName extends string &\n keyof Omit<Database, '__InternalSupabase'> = SchemaNameOrClientOptions extends string &\n keyof Omit<Database, '__InternalSupabase'>\n ? SchemaNameOrClientOptions\n : 'public' extends keyof Omit<Database, '__InternalSupabase'>\n ? 'public'\n : string & keyof Omit<Omit<Database, '__InternalSupabase'>, '__InternalSupabase'>,\n Schema extends Omit<Database, '__InternalSupabase'>[SchemaName] extends GenericSchema\n ? Omit<Database, '__InternalSupabase'>[SchemaName]\n : never = Omit<Database, '__InternalSupabase'>[SchemaName] extends GenericSchema\n ? Omit<Database, '__InternalSupabase'>[SchemaName]\n : never,\n ClientOptions extends { PostgrestVersion: string } = SchemaNameOrClientOptions extends string &\n keyof Omit<Database, '__InternalSupabase'>\n ? // If the version isn't explicitly set, look for it in the __InternalSupabase object to infer the right version\n Database extends { __InternalSupabase: { PostgrestVersion: string } }\n ? Database['__InternalSupabase']\n : // otherwise default to 12\n { PostgrestVersion: '12' }\n : SchemaNameOrClientOptions extends { PostgrestVersion: string }\n ? SchemaNameOrClientOptions\n : never,\n> {\n /**\n * Supabase Auth allows you to create and manage user sessions for access to data that is secured by access policies.\n */\n auth: SupabaseAuthClient\n realtime: RealtimeClient\n /**\n * Supabase Storage allows you to manage user-generated content, such as photos or videos.\n */\n storage: SupabaseStorageClient\n\n protected realtimeUrl: URL\n protected authUrl: URL\n protected storageUrl: URL\n protected functionsUrl: URL\n protected rest: PostgrestClient<Database, ClientOptions, SchemaName>\n protected storageKey: string\n protected fetch?: Fetch\n protected changedAccessToken?: string\n protected accessToken?: () => Promise<string | null>\n\n protected headers: Record<string, string>\n protected settings?: ResolvedSupabaseClientOptions<SchemaName>\n\n /**\n * Create a new client for use in the browser.\n *\n * @category Initializing\n *\n * @param supabaseUrl The unique Supabase URL which is supplied when you create a new project in your project dashboard.\n * @param supabaseKey The unique Supabase Key which is supplied when you create a new project in your project dashboard.\n * @param options.db.schema You can switch in between schemas. The schema needs to be on the list of exposed schemas inside Supabase.\n * @param options.auth.autoRefreshToken Set to \"true\" if you want to automatically refresh the token before expiring.\n * @param options.auth.persistSession Set to \"true\" if you want to automatically save the user session into local storage.\n * @param options.auth.detectSessionInUrl Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user.\n * @param options.realtime Options passed along to realtime-js constructor.\n * @param options.storage Options passed along to the storage-js constructor.\n * @param options.global.fetch A custom fetch implementation.\n * @param options.global.headers Any additional headers to send with each network request.\n *\n * @example Creating a client\n * ```js\n * import { createClient } from '@supabase/supabase-js'\n *\n * // Create a single supabase client for interacting with your database\n * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')\n * ```\n *\n * @example With a custom domain\n * ```js\n * import { createClient } from '@supabase/supabase-js'\n *\n * // Use a custom domain as the supabase URL\n * const supabase = createClient('https://my-custom-domain.com', 'your-publishable-key')\n * ```\n *\n * @example With additional parameters\n * ```js\n * import { createClient } from '@supabase/supabase-js'\n *\n * const options = {\n * db: {\n * schema: 'public',\n * },\n * auth: {\n * autoRefreshToken: true,\n * persistSession: true,\n * detectSessionInUrl: true\n * },\n * global: {\n * headers: { 'x-my-custom-header': 'my-app-name' },\n * },\n * }\n * const supabase = createClient(\"https://xyzcompany.supabase.co\", \"your-publishable-key\", options)\n * ```\n *\n * @exampleDescription With custom schemas\n * By default the API server points to the `public` schema. You can enable other database schemas within the Dashboard.\n * Go to [Settings > API > Exposed schemas](/dashboard/project/_/settings/api) and add the schema which you want to expose to the API.\n *\n * Note: each client connection can only access a single schema, so the code above can access the `other_schema` schema but cannot access the `public` schema.\n *\n * @example With custom schemas\n * ```js\n * import { createClient } from '@supabase/supabase-js'\n *\n * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key', {\n * // Provide a custom schema. Defaults to \"public\".\n * db: { schema: 'other_schema' }\n * })\n * ```\n *\n * @exampleDescription Custom fetch implementation\n * `supabase-js` uses the [`cross-fetch`](https://www.npmjs.com/package/cross-fetch) library to make HTTP requests,\n * but an alternative `fetch` implementation can be provided as an option.\n * This is most useful in environments where `cross-fetch` is not compatible (for instance Cloudflare Workers).\n *\n * @example Custom fetch implementation\n * ```js\n * import { createClient } from '@supabase/supabase-js'\n *\n * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key', {\n * global: { fetch: fetch.bind(globalThis) }\n * })\n * ```\n *\n * @exampleDescription React Native options with AsyncStorage\n * For React Native we recommend using `AsyncStorage` as the storage implementation for Supabase Auth.\n *\n * @example React Native options with AsyncStorage\n * ```js\n * import 'react-native-url-polyfill/auto'\n * import { createClient } from '@supabase/supabase-js'\n * import AsyncStorage from \"@react-native-async-storage/async-storage\";\n *\n * const supabase = createClient(\"https://xyzcompany.supabase.co\", \"your-publishable-key\", {\n * auth: {\n * storage: AsyncStorage,\n * autoRefreshToken: true,\n * persistSession: true,\n * detectSessionInUrl: false,\n * },\n * });\n * ```\n *\n * @exampleDescription React Native options with Expo SecureStore\n * If you wish to encrypt the user's session information, you can use `aes-js` and store the encryption key in Expo SecureStore.\n * The `aes-js` library, a reputable JavaScript-only implementation of the AES encryption algorithm in CTR mode.\n * A new 256-bit encryption key is generated using the `react-native-get-random-values` library.\n * This key is stored inside Expo's SecureStore, while the value is encrypted and placed inside AsyncStorage.\n *\n * Please make sure that:\n * - You keep the `expo-secure-store`, `aes-js` and `react-native-get-random-values` libraries up-to-date.\n * - Choose the correct [`SecureStoreOptions`](https://docs.expo.dev/versions/latest/sdk/securestore/#securestoreoptions) for your app's needs.\n * E.g. [`SecureStore.WHEN_UNLOCKED`](https://docs.expo.dev/versions/latest/sdk/securestore/#securestorewhen_unlocked) regulates when the data can be accessed.\n * - Carefully consider optimizations or other modifications to the above example, as those can lead to introducing subtle security vulnerabilities.\n *\n * @example React Native options with Expo SecureStore\n * ```ts\n * import 'react-native-url-polyfill/auto'\n * import { createClient } from '@supabase/supabase-js'\n * import AsyncStorage from '@react-native-async-storage/async-storage';\n * import * as SecureStore from 'expo-secure-store';\n * import * as aesjs from 'aes-js';\n * import 'react-native-get-random-values';\n *\n * // As Expo's SecureStore does not support values larger than 2048\n * // bytes, an AES-256 key is generated and stored in SecureStore, while\n * // it is used to encrypt/decrypt values stored in AsyncStorage.\n * class LargeSecureStore {\n * private async _encrypt(key: string, value: string) {\n * const encryptionKey = crypto.getRandomValues(new Uint8Array(256 / 8));\n *\n * const cipher = new aesjs.ModeOfOperation.ctr(encryptionKey, new aesjs.Counter(1));\n * const encryptedBytes = cipher.encrypt(aesjs.utils.utf8.toBytes(value));\n *\n * await SecureStore.setItemAsync(key, aesjs.utils.hex.fromBytes(encryptionKey));\n *\n * return aesjs.utils.hex.fromBytes(encryptedBytes);\n * }\n *\n * private async _decrypt(key: string, value: string) {\n * const encryptionKeyHex = await SecureStore.getItemAsync(key);\n * if (!encryptionKeyHex) {\n * return encryptionKeyHex;\n * }\n *\n * const cipher = new aesjs.ModeOfOperation.ctr(aesjs.utils.hex.toBytes(encryptionKeyHex), new aesjs.Counter(1));\n * const decryptedBytes = cipher.decrypt(aesjs.utils.hex.toBytes(value));\n *\n * return aesjs.utils.utf8.fromBytes(decryptedBytes);\n * }\n *\n * async getItem(key: string) {\n * const encrypted = await AsyncStorage.getItem(key);\n * if (!encrypted) { return encrypted; }\n *\n * return await this._decrypt(key, encrypted);\n * }\n *\n * async removeItem(key: string) {\n * await AsyncStorage.removeItem(key);\n * await SecureStore.deleteItemAsync(key);\n * }\n *\n * async setItem(key: string, value: string) {\n * const encrypted = await this._encrypt(key, value);\n *\n * await AsyncStorage.setItem(key, encrypted);\n * }\n * }\n *\n * const supabase = createClient(\"https://xyzcompany.supabase.co\", \"your-publishable-key\", {\n * auth: {\n * storage: new LargeSecureStore(),\n * autoRefreshToken: true,\n * persistSession: true,\n * detectSessionInUrl: false,\n * },\n * });\n * ```\n *\n * @example With a database query\n * ```ts\n * import { createClient } from '@supabase/supabase-js'\n *\n * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')\n *\n * const { data } = await supabase.from('profiles').select('*')\n * ```\n */\n constructor(\n protected supabaseUrl: string,\n protected supabaseKey: string,\n options?: SupabaseClientOptions<SchemaName>\n ) {\n const baseUrl = validateSupabaseUrl(supabaseUrl)\n if (!supabaseKey) throw new Error('supabaseKey is required.')\n\n this.realtimeUrl = new URL('realtime/v1', baseUrl)\n this.realtimeUrl.protocol = this.realtimeUrl.protocol.replace('http', 'ws')\n this.authUrl = new URL('auth/v1', baseUrl)\n this.storageUrl = new URL('storage/v1', baseUrl)\n this.functionsUrl = new URL('functions/v1', baseUrl)\n\n // default storage key uses the supabase project ref as a namespace\n const defaultStorageKey = `sb-${baseUrl.hostname.split('.')[0]}-auth-token`\n const DEFAULTS = {\n db: DEFAULT_DB_OPTIONS,\n realtime: DEFAULT_REALTIME_OPTIONS,\n auth: { ...DEFAULT_AUTH_OPTIONS, storageKey: defaultStorageKey },\n global: DEFAULT_GLOBAL_OPTIONS,\n tracePropagation: DEFAULT_TRACE_PROPAGATION_OPTIONS,\n }\n\n const settings = applySettingDefaults(options ?? {}, DEFAULTS)\n this.settings = settings\n\n this.storageKey = settings.auth.storageKey ?? ''\n this.headers = settings.global.headers ?? {}\n\n if (!settings.accessToken) {\n this.auth = this._initSupabaseAuthClient(\n settings.auth ?? {},\n this.headers,\n settings.global.fetch\n )\n } else {\n this.accessToken = settings.accessToken\n\n this.auth = new Proxy<SupabaseAuthClient>({} as any, {\n get: (_, prop) => {\n throw new Error(\n `@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(\n prop\n )} is not possible`\n )\n },\n })\n }\n\n this.fetch = fetchWithAuth(\n supabaseKey,\n supabaseUrl,\n this._getAccessToken.bind(this),\n settings.global.fetch,\n settings.tracePropagation\n )\n this.realtime = this._initRealtimeClient({\n headers: this.headers,\n accessToken: this._getAccessToken.bind(this),\n fetch: this.fetch,\n ...settings.realtime,\n })\n if (this.accessToken) {\n // Start auth immediately to avoid race condition with channel subscriptions\n // Wrap Promise to avoid Firefox extension cross-context Promise access errors\n Promise.resolve(this.accessToken())\n .then((token) => this.realtime.setAuth(token))\n .catch((e) => console.warn('Failed to set initial Realtime auth token:', e))\n }\n\n this.rest = new PostgrestClient(new URL('rest/v1', baseUrl).href, {\n headers: this.headers,\n schema: settings.db.schema,\n fetch: this.fetch,\n timeout: settings.db.timeout,\n urlLengthLimit: settings.db.urlLengthLimit,\n })\n\n this.storage = new SupabaseStorageClient(\n this.storageUrl.href,\n this.headers,\n this.fetch,\n options?.storage\n )\n\n if (!settings.accessToken) {\n this._listenForAuthEvents()\n }\n }\n\n /**\n * Supabase Functions allows you to deploy and invoke edge functions.\n */\n get functions(): FunctionsClient {\n return new FunctionsClient(this.functionsUrl.href, {\n headers: this.headers,\n customFetch: this.fetch,\n })\n }\n\n // NOTE: signatures must be kept in sync with PostgrestClient.from\n from<\n TableName extends string & keyof Schema['Tables'],\n Table extends Schema['Tables'][TableName],\n >(relation: TableName): PostgrestQueryBuilder<ClientOptions, Schema, Table, TableName>\n from<ViewName extends string & keyof Schema['Views'], View extends Schema['Views'][ViewName]>(\n relation: ViewName\n ): PostgrestQueryBuilder<ClientOptions, Schema, View, ViewName>\n /**\n * Perform a query on a table or a view.\n *\n * @param relation - The table or view name to query\n */\n from(relation: string): PostgrestQueryBuilder<ClientOptions, Schema, any> {\n return this.rest.from(relation)\n }\n\n // NOTE: signatures must be kept in sync with PostgrestClient.schema\n /**\n * Select a schema to query or perform an function (rpc) call.\n *\n * The schema needs to be on the list of exposed schemas inside Supabase.\n *\n * @param schema - The schema to query\n */\n schema<DynamicSchema extends string & keyof Omit<Database, '__InternalSupabase'>>(\n schema: DynamicSchema\n ): PostgrestClient<\n Database,\n ClientOptions,\n DynamicSchema,\n Database[DynamicSchema] extends GenericSchema ? Database[DynamicSchema] : any\n > {\n return this.rest.schema<DynamicSchema>(schema)\n }\n\n // NOTE: signatures must be kept in sync with PostgrestClient.rpc\n /**\n * Perform a function call.\n *\n * @param fn - The function name to call\n * @param args - The arguments to pass to the function call\n * @param options - Named parameters\n * @param options.head - When set to `true`, `data` will not be returned.\n * Useful if you only need the count.\n * @param options.get - When set to `true`, the function will be called with\n * read-only access mode.\n * @param options.count - Count algorithm to use to count rows returned by the\n * function. Only applicable for [set-returning\n * functions](https://www.postgresql.org/docs/current/functions-srf.html).\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */\n rpc<\n FnName extends string & keyof Schema['Functions'],\n Args extends Schema['Functions'][FnName]['Args'] = never,\n FilterBuilder extends GetRpcFunctionFilterBuilderByArgs<\n Schema,\n FnName,\n Args\n > = GetRpcFunctionFilterBuilderByArgs<Schema, FnName, Args>,\n >(\n fn: FnName,\n args: Args = {} as Args,\n options: {\n head?: boolean\n get?: boolean\n count?: 'exact' | 'planned' | 'estimated'\n } = {\n head: false,\n get: false,\n count: undefined,\n }\n ): PostgrestFilterBuilder<\n ClientOptions,\n Schema,\n FilterBuilder['Row'],\n FilterBuilder['Result'],\n FilterBuilder['RelationName'],\n FilterBuilder['Relationships'],\n 'RPC'\n > {\n return this.rest.rpc(fn, args, options) as unknown as PostgrestFilterBuilder<\n ClientOptions,\n Schema,\n FilterBuilder['Row'],\n FilterBuilder['Result'],\n FilterBuilder['RelationName'],\n FilterBuilder['Relationships'],\n 'RPC'\n >\n }\n\n /**\n * Creates a Realtime channel with Broadcast, Presence, and Postgres Changes.\n *\n * @param {string} name - The name of the Realtime channel.\n * @param {Object} opts - The options to pass to the Realtime channel.\n *\n * @category Realtime\n */\n channel(name: string, opts: RealtimeChannelOptions = { config: {} }): RealtimeChannel {\n return this.realtime.channel(name, opts)\n }\n\n /**\n * Returns all Realtime channels.\n *\n * @category Realtime\n *\n * @example Get all channels\n * ```js\n * const channels = supabase.getChannels()\n * ```\n */\n getChannels(): RealtimeChannel[] {\n return this.realtime.getChannels()\n }\n\n /**\n * Unsubscribes and removes Realtime channel from Realtime client.\n *\n * @param {RealtimeChannel} channel - The name of the Realtime channel.\n *\n *\n * @category Realtime\n *\n * @remarks\n * - Removing a channel is a great way to maintain the performance of your project's Realtime service as well as your database if you're listening to Postgres changes. Supabase will automatically handle cleanup 30 seconds after a client is disconnected, but unused channels may cause degradation as more clients are simultaneously subscribed.\n *\n * @example Removes a channel\n * ```js\n * supabase.removeChannel(myChannel)\n * ```\n */\n removeChannel(channel: RealtimeChannel): Promise<RealtimeRemoveChannelResponse> {\n return this.realtime.removeChannel(channel)\n }\n\n /**\n * Unsubscribes and removes all Realtime channels from Realtime client.\n *\n * @category Realtime\n *\n * @remarks\n * - Removing channels is a great way to maintain the performance of your project's Realtime service as well as your database if you're listening to Postgres changes. Supabase will automatically handle cleanup 30 seconds after a client is disconnected, but unused channels may cause degradation as more clients are simultaneously subscribed.\n *\n * @example Remove all channels\n * ```js\n * supabase.removeAllChannels()\n * ```\n */\n removeAllChannels(): Promise<RealtimeRemoveChannelResponse[]> {\n return this.realtime.removeAllChannels()\n }\n\n private async _getAccessToken() {\n if (this.accessToken) {\n return await this.accessToken()\n }\n\n const { data } = await this.auth.getSession()\n\n return data.session?.access_token ?? this.supabaseKey\n }\n\n private _initSupabaseAuthClient(\n {\n autoRefreshToken,\n persistSession,\n detectSessionInUrl,\n storage,\n userStorage,\n storageKey,\n flowType,\n lock,\n debug,\n throwOnError,\n experimental,\n lockAcquireTimeout,\n skipAutoInitialize,\n }: SupabaseAuthClientOptions,\n headers?: Record<string, string>,\n fetch?: Fetch\n ) {\n const authHeaders = {\n Authorization: `Bearer ${this.supabaseKey}`,\n apikey: `${this.supabaseKey}`,\n }\n return new SupabaseAuthClient({\n url: this.authUrl.href,\n headers: { ...authHeaders, ...headers },\n storageKey: storageKey,\n autoRefreshToken,\n persistSession,\n detectSessionInUrl,\n storage,\n userStorage,\n flowType,\n lock,\n debug,\n throwOnError,\n experimental,\n fetch,\n lockAcquireTimeout,\n skipAutoInitialize,\n // auth checks if there is a custom authorizaiton header using this flag\n // so it knows whether to return an error when getUser is called with no session\n hasCustomAuthorizationHeader: Object.keys(this.headers).some(\n (key) => key.toLowerCase() === 'authorization'\n ),\n })\n }\n\n private _initRealtimeClient(options: RealtimeClientOptions) {\n return new RealtimeClient(this.realtimeUrl.href, {\n ...options,\n params: { ...{ apikey: this.supabaseKey }, ...options?.params },\n })\n }\n\n private _listenForAuthEvents() {\n const data = this.auth.onAuthStateChange((event, session) => {\n this._handleTokenChanged(event, 'CLIENT', session?.access_token)\n })\n return data\n }\n\n private _handleTokenChanged(\n event: AuthChangeEvent,\n source: 'CLIENT' | 'STORAGE',\n token?: string\n ) {\n if (\n (event === 'TOKEN_REFRESHED' || event === 'SIGNED_IN') &&\n this.changedAccessToken !== token\n ) {\n this.changedAccessToken = token\n this.realtime.setAuth(token)\n } else if (event === 'SIGNED_OUT') {\n this.realtime.setAuth()\n if (source == 'STORAGE') this.auth.signOut()\n this.changedAccessToken = undefined\n }\n }\n}\n","import SupabaseClient from './SupabaseClient'\nimport type { SupabaseClientOptions } from './lib/types'\n\nexport * from '@supabase/auth-js'\nexport type { User as AuthUser, Session as AuthSession } from '@supabase/auth-js'\nexport type {\n PostgrestResponse,\n PostgrestSingleResponse,\n PostgrestMaybeSingleResponse,\n PostgrestBuilder,\n PostgrestFilterBuilder,\n PostgrestTransformBuilder,\n PostgrestQueryBuilder,\n} from '@supabase/postgrest-js'\nexport { PostgrestError } from '@supabase/postgrest-js'\nexport { StorageApiError } from '@supabase/storage-js'\nexport type { FunctionInvokeOptions } from '@supabase/functions-js'\nexport {\n FunctionsHttpError,\n FunctionsFetchError,\n FunctionsRelayError,\n FunctionsError,\n FunctionRegion,\n} from '@supabase/functions-js'\nexport * from '@supabase/realtime-js'\nexport { default as SupabaseClient } from './SupabaseClient'\nexport type {\n SupabaseClientOptions,\n QueryResult,\n QueryData,\n QueryError,\n DatabaseWithoutInternals,\n} from './lib/types'\n\n/**\n * Creates a new Supabase Client.\n *\n * @example Creating a Supabase client\n * ```ts\n * import { createClient } from '@supabase/supabase-js'\n *\n * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')\n * const { data, error } = await supabase.from('profiles').select('*')\n * ```\n */\nexport const createClient = <\n Database = any,\n SchemaNameOrClientOptions extends\n | (string & keyof Omit<Database, '__InternalSupabase'>)\n | { PostgrestVersion: string } = 'public' extends keyof Omit<Database, '__InternalSupabase'>\n ? 'public'\n : string & keyof Omit<Database, '__InternalSupabase'>,\n SchemaName extends string &\n keyof Omit<Database, '__InternalSupabase'> = SchemaNameOrClientOptions extends string &\n keyof Omit<Database, '__InternalSupabase'>\n ? SchemaNameOrClientOptions\n : 'public' extends keyof Omit<Database, '__InternalSupabase'>\n ? 'public'\n : string & keyof Omit<Omit<Database, '__InternalSupabase'>, '__InternalSupabase'>,\n>(\n supabaseUrl: string,\n supabaseKey: string,\n options?: SupabaseClientOptions<SchemaName>\n): SupabaseClient<Database, SchemaNameOrClientOptions, SchemaName> => {\n return new SupabaseClient<Database, SchemaNameOrClientOptions, SchemaName>(\n supabaseUrl,\n supabaseKey,\n options\n )\n}\n\n// Check for Node.js <= 18 deprecation\nfunction shouldShowDeprecationWarning(): boolean {\n // Skip in browser environments\n if (typeof window !== 'undefined') {\n return false\n }\n\n // Skip if process is not available (e.g., Edge Runtime)\n // Use dynamic property access to avoid Next.js Edge Runtime static analysis warnings\n const _process = (globalThis as any)['process']\n if (!_process) {\n return false\n }\n\n const processVersion = _process['version']\n if (processVersion === undefined || processVersion === null) {\n return false\n }\n\n const versionMatch = processVersion.match(/^v(\\d+)\\./)\n if (!versionMatch) {\n return false\n }\n\n const majorVersion = parseInt(versionMatch[1], 10)\n return majorVersion <= 18\n}\n\nif (shouldShowDeprecationWarning()) {\n console.warn(\n `⚠️ Node.js 18 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. ` +\n `Please upgrade to Node.js 20 or later. ` +\n `For more information, visit: https://github.com/orgs/supabase/discussions/37217`\n )\n}\n"],"x_google_ignoreList":[2],"mappings":"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"}