{"mappings":"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","names":["FunctionsClient","PostgrestClient","RealtimeClient","SupabaseStorageClient","version","JS_ENV","DEFAULT_HEADERS","version","DEFAULT_GLOBAL_OPTIONS","DEFAULT_DB_OPTIONS","DEFAULT_AUTH_OPTIONS","DEFAULT_REALTIME_OPTIONS","nodeFetch","NodeFetchHeaders","resolveFetch","customFetch","_fetch","args","resolveHeadersConstructor","fetchWithAuth","supabaseKey","getAccessToken","fetch","HeadersConstructor","input","init","__awaiter","accessToken","_a","headers","stripTrailingSlash","url","applySettingDefaults","options","defaults","dbOptions","authOptions","realtimeOptions","globalOptions","DEFAULT_DB_OPTIONS","DEFAULT_AUTH_OPTIONS","DEFAULT_REALTIME_OPTIONS","DEFAULT_GLOBAL_OPTIONS","result","__awaiter","AuthClient","SupabaseAuthClient","options","SupabaseClient","supabaseUrl","supabaseKey","options","_supabaseUrl","stripTrailingSlash","defaultStorageKey","DEFAULTS","DEFAULT_DB_OPTIONS","DEFAULT_REALTIME_OPTIONS","DEFAULT_AUTH_OPTIONS","DEFAULT_GLOBAL_OPTIONS","settings","applySettingDefaults","_a","_b","_","prop","_c","fetchWithAuth","PostgrestClient","FunctionsClient","SupabaseStorageClient","relation","schema","fn","args","name","opts","channel","data","autoRefreshToken","persistSession","detectSessionInUrl","storage","storageKey","flowType","lock","debug","headers","fetch","authHeaders","SupabaseAuthClient","RealtimeClient","event","session","source","token","FunctionsHttpError","FunctionsFetchError","FunctionsRelayError","FunctionsError","FunctionRegion","createClient","supabaseUrl","supabaseKey","options","SupabaseClient"],"sources":["../esm/npm/@supabase/supabase-js@2.45.4/node_modules/@supabase/supabase-js/src/SupabaseClient.ts","../esm/npm/@supabase/supabase-js@2.45.4/node_modules/@supabase/supabase-js/src/lib/version.ts","../esm/npm/@supabase/supabase-js@2.45.4/node_modules/@supabase/supabase-js/src/lib/constants.ts","../esm/npm/@supabase/supabase-js@2.45.4/node_modules/@supabase/supabase-js/src/lib/fetch.ts","../esm/npm/@supabase/supabase-js@2.45.4/node_modules/@supabase/supabase-js/src/lib/SupabaseAuthClient.ts","../esm/npm/@supabase/supabase-js@2.45.4/node_modules/@supabase/supabase-js/src/index.ts"],"sourcesContent":["import { FunctionsClient } from '@supabase/functions-js'\nimport { AuthChangeEvent } from '@supabase/auth-js'\nimport {\n  PostgrestClient,\n  PostgrestFilterBuilder,\n  PostgrestQueryBuilder,\n} from '@supabase/postgrest-js'\nimport {\n  RealtimeChannel,\n  RealtimeChannelOptions,\n  RealtimeClient,\n  RealtimeClientOptions,\n} from '@supabase/realtime-js'\nimport { StorageClient as SupabaseStorageClient } from '@supabase/storage-js'\nimport {\n  DEFAULT_GLOBAL_OPTIONS,\n  DEFAULT_DB_OPTIONS,\n  DEFAULT_AUTH_OPTIONS,\n  DEFAULT_REALTIME_OPTIONS,\n} from './lib/constants'\nimport { fetchWithAuth } from './lib/fetch'\nimport { stripTrailingSlash, applySettingDefaults } from './lib/helpers'\nimport { SupabaseAuthClient } from './lib/SupabaseAuthClient'\nimport { Fetch, GenericSchema, SupabaseClientOptions, SupabaseAuthClientOptions } from './lib/types'\n\n/**\n * Supabase Client.\n *\n * An isomorphic Javascript client for interacting with Postgres.\n */\nexport default class SupabaseClient\u003c\n  Database = any,\n  SchemaName extends string \u0026 keyof Database = 'public' extends keyof Database\n    ? 'public'\n    : string \u0026 keyof Database,\n  Schema extends GenericSchema = Database[SchemaName] extends GenericSchema\n    ? Database[SchemaName]\n    : any\n\u003e {\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  protected realtimeUrl: string\n  protected authUrl: string\n  protected storageUrl: string\n  protected functionsUrl: string\n  protected rest: PostgrestClient\u003cDatabase, SchemaName\u003e\n  protected storageKey: string\n  protected fetch?: Fetch\n  protected changedAccessToken?: string\n  protected accessToken?: () =\u003e Promise\u003cstring\u003e\n\n  protected headers: Record\u003cstring, string\u003e\n\n  /**\n   * Create a new client for use in the browser.\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.global.fetch A custom fetch implementation.\n   * @param options.global.headers Any additional headers to send with each network request.\n   */\n  constructor(\n    protected supabaseUrl: string,\n    protected supabaseKey: string,\n    options?: SupabaseClientOptions\u003cSchemaName\u003e\n  ) {\n    if (!supabaseUrl) throw new Error('supabaseUrl is required.')\n    if (!supabaseKey) throw new Error('supabaseKey is required.')\n\n    const _supabaseUrl = stripTrailingSlash(supabaseUrl)\n\n    this.realtimeUrl = `${_supabaseUrl}/realtime/v1`.replace(/^http/i, 'ws')\n    this.authUrl = `${_supabaseUrl}/auth/v1`\n    this.storageUrl = `${_supabaseUrl}/storage/v1`\n    this.functionsUrl = `${_supabaseUrl}/functions/v1`\n\n    // default storage key uses the supabase project ref as a namespace\n    const defaultStorageKey = `sb-${new URL(this.authUrl).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    }\n\n    const settings = applySettingDefaults(options ?? {}, DEFAULTS)\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\u003cSupabaseAuthClient\u003e({} as any, {\n        get: (_, prop) =\u003e {\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(supabaseKey, this._getAccessToken.bind(this), settings.global.fetch)\n\n    this.realtime = this._initRealtimeClient({ headers: this.headers, ...settings.realtime })\n    this.rest = new PostgrestClient(`${_supabaseUrl}/rest/v1`, {\n      headers: this.headers,\n      schema: settings.db.schema,\n      fetch: this.fetch,\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, {\n      headers: this.headers,\n      customFetch: this.fetch,\n    })\n  }\n\n  /**\n   * Supabase Storage allows you to manage user-generated content, such as photos or videos.\n   */\n  get storage(): SupabaseStorageClient {\n    return new SupabaseStorageClient(this.storageUrl, this.headers, this.fetch)\n  }\n\n  // NOTE: signatures must be kept in sync with PostgrestClient.from\n  from\u003c\n    TableName extends string \u0026 keyof Schema['Tables'],\n    Table extends Schema['Tables'][TableName]\n  \u003e(relation: TableName): PostgrestQueryBuilder\u003cSchema, Table, TableName\u003e\n  from\u003cViewName extends string \u0026 keyof Schema['Views'], View extends Schema['Views'][ViewName]\u003e(\n    relation: ViewName\n  ): PostgrestQueryBuilder\u003cSchema, View, ViewName\u003e\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\u003cSchema, any, any\u003e {\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\u003cDynamicSchema extends string \u0026 keyof Database\u003e(\n    schema: DynamicSchema\n  ): PostgrestClient\u003c\n    Database,\n    DynamicSchema,\n    Database[DynamicSchema] extends GenericSchema ? Database[DynamicSchema] : any\n  \u003e {\n    return this.rest.schema\u003cDynamicSchema\u003e(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\u003cFnName extends string \u0026 keyof Schema['Functions'], Fn extends Schema['Functions'][FnName]\u003e(\n    fn: FnName,\n    args: Fn['Args'] = {},\n    options: {\n      head?: boolean\n      get?: boolean\n      count?: 'exact' | 'planned' | 'estimated'\n    } = {}\n  ): PostgrestFilterBuilder\u003c\n    Schema,\n    Fn['Returns'] extends any[]\n      ? Fn['Returns'][number] extends Record\u003cstring, unknown\u003e\n        ? Fn['Returns'][number]\n        : never\n      : never,\n    Fn['Returns']\n  \u003e {\n    return this.rest.rpc(fn, args, options)\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   */\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  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  removeChannel(channel: RealtimeChannel): Promise\u003c'ok' | 'timed out' | 'error'\u003e {\n    return this.realtime.removeChannel(channel)\n  }\n\n  /**\n   * Unsubscribes and removes all Realtime channels from Realtime client.\n   */\n  removeAllChannels(): Promise\u003c('ok' | 'timed out' | 'error')[]\u003e {\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 ?? null\n  }\n\n  private _initSupabaseAuthClient(\n    {\n      autoRefreshToken,\n      persistSession,\n      detectSessionInUrl,\n      storage,\n      storageKey,\n      flowType,\n      lock,\n      debug,\n    }: SupabaseAuthClientOptions,\n    headers?: Record\u003cstring, string\u003e,\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,\n      headers: { ...authHeaders, ...headers },\n      storageKey: storageKey,\n      autoRefreshToken,\n      persistSession,\n      detectSessionInUrl,\n      storage,\n      flowType,\n      lock,\n      debug,\n      fetch,\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: 'Authorization' in this.headers ?? false,\n    })\n  }\n\n  private _initRealtimeClient(options: RealtimeClientOptions) {\n    return new RealtimeClient(this.realtimeUrl, {\n      ...options,\n      params: { ...{ apikey: this.supabaseKey }, ...options?.params },\n    })\n  }\n\n  private _listenForAuthEvents() {\n    let data = this.auth.onAuthStateChange((event, session) =\u003e {\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') \u0026\u0026\n      this.changedAccessToken !== token\n    ) {\n      // Token has changed\n      this.realtime.setAuth(token ?? null)\n\n      this.changedAccessToken = token\n    } else if (event === 'SIGNED_OUT') {\n      // Token is removed\n      this.realtime.setAuth(this.supabaseKey)\n      if (source == 'STORAGE') this.auth.signOut()\n      this.changedAccessToken = undefined\n    }\n  }\n}\n","export const version = '2.45.4'\n","// constants.ts\nimport { RealtimeClientOptions } from '@supabase/realtime-js'\nimport { SupabaseAuthClientOptions } 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' \u0026\u0026 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","// @ts-ignore\nimport nodeFetch, { Headers as NodeFetchHeaders } from '@supabase/node-fetch'\n\ntype Fetch = typeof fetch\n\nexport const resolveFetch = (customFetch?: Fetch): Fetch =\u003e {\n  let _fetch: Fetch\n  if (customFetch) {\n    _fetch = customFetch\n  } else if (typeof fetch === 'undefined') {\n    _fetch = nodeFetch as unknown as Fetch\n  } else {\n    _fetch = fetch\n  }\n  return (...args: Parameters\u003cFetch\u003e) =\u003e _fetch(...args)\n}\n\nexport const resolveHeadersConstructor = () =\u003e {\n  if (typeof Headers === 'undefined') {\n    return NodeFetchHeaders\n  }\n\n  return Headers\n}\n\nexport const fetchWithAuth = (\n  supabaseKey: string,\n  getAccessToken: () =\u003e Promise\u003cstring | null\u003e,\n  customFetch?: Fetch\n): Fetch =\u003e {\n  const fetch = resolveFetch(customFetch)\n  const HeadersConstructor = resolveHeadersConstructor()\n\n  return async (input, init) =\u003e {\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    return fetch(input, { ...init, headers })\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 SupabaseClient from './SupabaseClient'\nimport type { GenericSchema, 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  PostgrestError,\n} from '@supabase/postgrest-js'\nexport {\n  FunctionsHttpError,\n  FunctionsFetchError,\n  FunctionsRelayError,\n  FunctionsError,\n  type FunctionInvokeOptions,\n  FunctionRegion,\n} from '@supabase/functions-js'\nexport * from '@supabase/realtime-js'\nexport { default as SupabaseClient } from './SupabaseClient'\nexport type { SupabaseClientOptions, QueryResult, QueryData, QueryError } from './lib/types'\n\n/**\n * Creates a new Supabase Client.\n */\nexport const createClient = \u003c\n  Database = any,\n  SchemaName extends string \u0026 keyof Database = 'public' extends keyof Database\n    ? 'public'\n    : string \u0026 keyof Database,\n  Schema extends GenericSchema = Database[SchemaName] extends GenericSchema\n    ? Database[SchemaName]\n    : any\n\u003e(\n  supabaseUrl: string,\n  supabaseKey: string,\n  options?: SupabaseClientOptions\u003cSchemaName\u003e\n): SupabaseClient\u003cDatabase, SchemaName, Schema\u003e =\u003e {\n  return new SupabaseClient\u003cDatabase, SchemaName, Schema\u003e(supabaseUrl, supabaseKey, options)\n}\n"],"version":3}
