{
  "version": 3,
  "sources": ["ssg:https://cdn.skypack.dev/-/@supabase/functions-js@v2.4.5-VCUaMBIIyGfBAInQftVX/dist=es2019,mode=imports/optimized/@supabase/functions-js.js", "ssg:https://cdn.skypack.dev/-/@supabase/postgrest-js@v1.21.3-iEmGHhKWzW8MUMeJjMWW/dist=es2019,mode=imports/optimized/@supabase/postgrest-js.js", "ssg:https://cdn.skypack.dev/-/@supabase/realtime-js@v2.15.4-rMAdtyHclVoaNDBlTnst/dist=es2019,mode=imports/optimized/@supabase/realtime-js.js", "ssg:https://cdn.skypack.dev/-/@supabase/storage-js@v2.11.0-lNY5Fg6hPLXP5uT5O7Rx/dist=es2019,mode=imports/optimized/@supabase/storage-js.js", "ssg:https://cdn.skypack.dev/-/@supabase/auth-js@v2.71.1-AlHYteRyQCX9wKq1xinZ/dist=es2019,mode=imports/optimized/@supabase/auth-js.js", "ssg:https://cdn.skypack.dev/-/@supabase/supabase-js@v2.56.1-2W8ofWNN9Qfdxo9OCs9U/dist=es2019,mode=imports/optimized/@supabase/supabase-js.js", "ssg:https://framerusercontent.com/modules/WtF8YfWe2W27IUQLis9Q/SR9wJkJJbFyKqXr3VsWm/AuthSupabase.js"],
  "sourcesContent": ["const resolveFetch = (customFetch) => {\n  let _fetch;\n  if (customFetch) {\n    _fetch = customFetch;\n  } else if (typeof fetch === \"undefined\") {\n    _fetch = (...args) => import(\"/-/@supabase/node-fetch@v2.6.15-c5DrO8K0MoiPZxDi1V2L/dist=es2019,mode=imports/optimized/@supabase/node-fetch.js\").then(({default: fetch2}) => fetch2(...args));\n  } else {\n    _fetch = fetch;\n  }\n  return (...args) => _fetch(...args);\n};\nclass FunctionsError extends Error {\n  constructor(message, name = \"FunctionsError\", context) {\n    super(message);\n    this.name = name;\n    this.context = context;\n  }\n}\nclass FunctionsFetchError extends FunctionsError {\n  constructor(context) {\n    super(\"Failed to send a request to the Edge Function\", \"FunctionsFetchError\", context);\n  }\n}\nclass FunctionsRelayError extends FunctionsError {\n  constructor(context) {\n    super(\"Relay Error invoking the Edge Function\", \"FunctionsRelayError\", context);\n  }\n}\nclass FunctionsHttpError extends FunctionsError {\n  constructor(context) {\n    super(\"Edge Function returned a non-2xx status code\", \"FunctionsHttpError\", context);\n  }\n}\nvar FunctionRegion;\n(function(FunctionRegion2) {\n  FunctionRegion2[\"Any\"] = \"any\";\n  FunctionRegion2[\"ApNortheast1\"] = \"ap-northeast-1\";\n  FunctionRegion2[\"ApNortheast2\"] = \"ap-northeast-2\";\n  FunctionRegion2[\"ApSouth1\"] = \"ap-south-1\";\n  FunctionRegion2[\"ApSoutheast1\"] = \"ap-southeast-1\";\n  FunctionRegion2[\"ApSoutheast2\"] = \"ap-southeast-2\";\n  FunctionRegion2[\"CaCentral1\"] = \"ca-central-1\";\n  FunctionRegion2[\"EuCentral1\"] = \"eu-central-1\";\n  FunctionRegion2[\"EuWest1\"] = \"eu-west-1\";\n  FunctionRegion2[\"EuWest2\"] = \"eu-west-2\";\n  FunctionRegion2[\"EuWest3\"] = \"eu-west-3\";\n  FunctionRegion2[\"SaEast1\"] = \"sa-east-1\";\n  FunctionRegion2[\"UsEast1\"] = \"us-east-1\";\n  FunctionRegion2[\"UsWest1\"] = \"us-west-1\";\n  FunctionRegion2[\"UsWest2\"] = \"us-west-2\";\n})(FunctionRegion || (FunctionRegion = {}));\nvar __awaiter = function(thisArg, _arguments, P, generator) {\n  function adopt(value) {\n    return value instanceof P ? value : new P(function(resolve) {\n      resolve(value);\n    });\n  }\n  return new (P || (P = Promise))(function(resolve, reject) {\n    function fulfilled(value) {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n};\nclass FunctionsClient {\n  constructor(url, {headers = {}, customFetch, region = FunctionRegion.Any} = {}) {\n    this.url = url;\n    this.headers = headers;\n    this.region = region;\n    this.fetch = resolveFetch(customFetch);\n  }\n  setAuth(token) {\n    this.headers.Authorization = `Bearer ${token}`;\n  }\n  invoke(functionName, options = {}) {\n    var _a;\n    return __awaiter(this, void 0, void 0, function* () {\n      try {\n        const {headers, method, body: functionArgs} = options;\n        let _headers = {};\n        let {region} = options;\n        if (!region) {\n          region = this.region;\n        }\n        const url = new URL(`${this.url}/${functionName}`);\n        if (region && region !== \"any\") {\n          _headers[\"x-region\"] = region;\n          url.searchParams.set(\"forceFunctionRegion\", region);\n        }\n        let body;\n        if (functionArgs && (headers && !Object.prototype.hasOwnProperty.call(headers, \"Content-Type\") || !headers)) {\n          if (typeof Blob !== \"undefined\" && functionArgs instanceof Blob || functionArgs instanceof ArrayBuffer) {\n            _headers[\"Content-Type\"] = \"application/octet-stream\";\n            body = functionArgs;\n          } else if (typeof functionArgs === \"string\") {\n            _headers[\"Content-Type\"] = \"text/plain\";\n            body = functionArgs;\n          } else if (typeof FormData !== \"undefined\" && functionArgs instanceof FormData) {\n            body = functionArgs;\n          } else {\n            _headers[\"Content-Type\"] = \"application/json\";\n            body = JSON.stringify(functionArgs);\n          }\n        }\n        const response = yield this.fetch(url.toString(), {\n          method: method || \"POST\",\n          headers: Object.assign(Object.assign(Object.assign({}, _headers), this.headers), headers),\n          body\n        }).catch((fetchError) => {\n          throw new FunctionsFetchError(fetchError);\n        });\n        const isRelayError = response.headers.get(\"x-relay-error\");\n        if (isRelayError && isRelayError === \"true\") {\n          throw new FunctionsRelayError(response);\n        }\n        if (!response.ok) {\n          throw new FunctionsHttpError(response);\n        }\n        let responseType = ((_a = response.headers.get(\"Content-Type\")) !== null && _a !== void 0 ? _a : \"text/plain\").split(\";\")[0].trim();\n        let data;\n        if (responseType === \"application/json\") {\n          data = yield response.json();\n        } else if (responseType === \"application/octet-stream\") {\n          data = yield response.blob();\n        } else if (responseType === \"text/event-stream\") {\n          data = response;\n        } else if (responseType === \"multipart/form-data\") {\n          data = yield response.formData();\n        } else {\n          data = yield response.text();\n        }\n        return {data, error: null, response};\n      } catch (error) {\n        return {\n          data: null,\n          error,\n          response: error instanceof FunctionsHttpError || error instanceof FunctionsRelayError ? error.context : void 0\n        };\n      }\n    });\n  }\n}\nexport {FunctionRegion, FunctionsClient, FunctionsError, FunctionsFetchError, FunctionsHttpError, FunctionsRelayError};\nexport default null;\n", "import require$$0 from \"/-/@supabase/node-fetch@v2.6.15-c5DrO8K0MoiPZxDi1V2L/dist=es2019,mode=imports/optimized/@supabase/node-fetch.js\";\nvar commonjsGlobal = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nfunction getDefaultExportFromCjs(x) {\n  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nfunction createCommonjsModule(fn, basedir, module) {\n  return module = {\n    path: basedir,\n    exports: {},\n    require: function(path, base) {\n      return commonjsRequire(path, base === void 0 || base === null ? module.path : base);\n    }\n  }, fn(module, module.exports), module.exports;\n}\nfunction commonjsRequire() {\n  throw new Error(\"Dynamic requires are not currently supported by @rollup/plugin-commonjs\");\n}\nvar PostgrestError_1 = createCommonjsModule(function(module, exports) {\n  Object.defineProperty(exports, \"__esModule\", {value: true});\n  class PostgrestError2 extends Error {\n    constructor(context) {\n      super(context.message);\n      this.name = \"PostgrestError\";\n      this.details = context.details;\n      this.hint = context.hint;\n      this.code = context.code;\n    }\n  }\n  exports.default = PostgrestError2;\n});\nvar PostgrestBuilder_1 = createCommonjsModule(function(module, exports) {\n  var __importDefault = commonjsGlobal && commonjsGlobal.__importDefault || function(mod) {\n    return mod && mod.__esModule ? mod : {default: mod};\n  };\n  Object.defineProperty(exports, \"__esModule\", {value: true});\n  const node_fetch_1 = __importDefault(require$$0);\n  const PostgrestError_1$1 = __importDefault(PostgrestError_1);\n  class PostgrestBuilder2 {\n    constructor(builder) {\n      var _a, _b;\n      this.shouldThrowOnError = false;\n      this.method = builder.method;\n      this.url = builder.url;\n      this.headers = new Headers(builder.headers);\n      this.schema = builder.schema;\n      this.body = builder.body;\n      this.shouldThrowOnError = (_a = builder.shouldThrowOnError) !== null && _a !== void 0 ? _a : false;\n      this.signal = builder.signal;\n      this.isMaybeSingle = (_b = builder.isMaybeSingle) !== null && _b !== void 0 ? _b : false;\n      if (builder.fetch) {\n        this.fetch = builder.fetch;\n      } else if (typeof fetch === \"undefined\") {\n        this.fetch = node_fetch_1.default;\n      } else {\n        this.fetch = fetch;\n      }\n    }\n    throwOnError() {\n      this.shouldThrowOnError = true;\n      return this;\n    }\n    setHeader(name, value) {\n      this.headers = new Headers(this.headers);\n      this.headers.set(name, value);\n      return this;\n    }\n    then(onfulfilled, onrejected) {\n      if (this.schema === void 0)\n        ;\n      else if ([\"GET\", \"HEAD\"].includes(this.method)) {\n        this.headers.set(\"Accept-Profile\", this.schema);\n      } else {\n        this.headers.set(\"Content-Profile\", this.schema);\n      }\n      if (this.method !== \"GET\" && this.method !== \"HEAD\") {\n        this.headers.set(\"Content-Type\", \"application/json\");\n      }\n      const _fetch = this.fetch;\n      let res = _fetch(this.url.toString(), {\n        method: this.method,\n        headers: this.headers,\n        body: JSON.stringify(this.body),\n        signal: this.signal\n      }).then(async (res2) => {\n        var _a, _b, _c, _d;\n        let error = null;\n        let data = null;\n        let count = null;\n        let status = res2.status;\n        let statusText = res2.statusText;\n        if (res2.ok) {\n          if (this.method !== \"HEAD\") {\n            const body = await res2.text();\n            if (body === \"\")\n              ;\n            else if (this.headers.get(\"Accept\") === \"text/csv\") {\n              data = body;\n            } else if (this.headers.get(\"Accept\") && ((_a = this.headers.get(\"Accept\")) === null || _a === void 0 ? void 0 : _a.includes(\"application/vnd.pgrst.plan+text\"))) {\n              data = body;\n            } else {\n              data = JSON.parse(body);\n            }\n          }\n          const countHeader = (_b = this.headers.get(\"Prefer\")) === null || _b === void 0 ? void 0 : _b.match(/count=(exact|planned|estimated)/);\n          const contentRange = (_c = res2.headers.get(\"content-range\")) === null || _c === void 0 ? void 0 : _c.split(\"/\");\n          if (countHeader && contentRange && contentRange.length > 1) {\n            count = parseInt(contentRange[1]);\n          }\n          if (this.isMaybeSingle && this.method === \"GET\" && Array.isArray(data)) {\n            if (data.length > 1) {\n              error = {\n                code: \"PGRST116\",\n                details: `Results contain ${data.length} rows, application/vnd.pgrst.object+json requires 1 row`,\n                hint: null,\n                message: \"JSON object requested, multiple (or no) rows returned\"\n              };\n              data = null;\n              count = null;\n              status = 406;\n              statusText = \"Not Acceptable\";\n            } else if (data.length === 1) {\n              data = data[0];\n            } else {\n              data = null;\n            }\n          }\n        } else {\n          const body = await res2.text();\n          try {\n            error = JSON.parse(body);\n            if (Array.isArray(error) && res2.status === 404) {\n              data = [];\n              error = null;\n              status = 200;\n              statusText = \"OK\";\n            }\n          } catch (_e) {\n            if (res2.status === 404 && body === \"\") {\n              status = 204;\n              statusText = \"No Content\";\n            } else {\n              error = {\n                message: body\n              };\n            }\n          }\n          if (error && this.isMaybeSingle && ((_d = error === null || error === void 0 ? void 0 : error.details) === null || _d === void 0 ? void 0 : _d.includes(\"0 rows\"))) {\n            error = null;\n            status = 200;\n            statusText = \"OK\";\n          }\n          if (error && this.shouldThrowOnError) {\n            throw new PostgrestError_1$1.default(error);\n          }\n        }\n        const postgrestResponse = {\n          error,\n          data,\n          count,\n          status,\n          statusText\n        };\n        return postgrestResponse;\n      });\n      if (!this.shouldThrowOnError) {\n        res = res.catch((fetchError) => {\n          var _a, _b, _c;\n          return {\n            error: {\n              message: `${(_a = fetchError === null || fetchError === void 0 ? void 0 : fetchError.name) !== null && _a !== void 0 ? _a : \"FetchError\"}: ${fetchError === null || fetchError === void 0 ? void 0 : fetchError.message}`,\n              details: `${(_b = fetchError === null || fetchError === void 0 ? void 0 : fetchError.stack) !== null && _b !== void 0 ? _b : \"\"}`,\n              hint: \"\",\n              code: `${(_c = fetchError === null || fetchError === void 0 ? void 0 : fetchError.code) !== null && _c !== void 0 ? _c : \"\"}`\n            },\n            data: null,\n            count: null,\n            status: 0,\n            statusText: \"\"\n          };\n        });\n      }\n      return res.then(onfulfilled, onrejected);\n    }\n    returns() {\n      return this;\n    }\n    overrideTypes() {\n      return this;\n    }\n  }\n  exports.default = PostgrestBuilder2;\n});\nvar PostgrestTransformBuilder_1 = createCommonjsModule(function(module, exports) {\n  var __importDefault = commonjsGlobal && commonjsGlobal.__importDefault || function(mod) {\n    return mod && mod.__esModule ? mod : {default: mod};\n  };\n  Object.defineProperty(exports, \"__esModule\", {value: true});\n  const PostgrestBuilder_1$1 = __importDefault(PostgrestBuilder_1);\n  class PostgrestTransformBuilder2 extends PostgrestBuilder_1$1.default {\n    select(columns) {\n      let quoted = false;\n      const cleanedColumns = (columns !== null && columns !== void 0 ? columns : \"*\").split(\"\").map((c) => {\n        if (/\\s/.test(c) && !quoted) {\n          return \"\";\n        }\n        if (c === '\"') {\n          quoted = !quoted;\n        }\n        return c;\n      }).join(\"\");\n      this.url.searchParams.set(\"select\", cleanedColumns);\n      this.headers.append(\"Prefer\", \"return=representation\");\n      return this;\n    }\n    order(column, {ascending = true, nullsFirst, foreignTable, referencedTable = foreignTable} = {}) {\n      const key = referencedTable ? `${referencedTable}.order` : \"order\";\n      const existingOrder = this.url.searchParams.get(key);\n      this.url.searchParams.set(key, `${existingOrder ? `${existingOrder},` : \"\"}${column}.${ascending ? \"asc\" : \"desc\"}${nullsFirst === void 0 ? \"\" : nullsFirst ? \".nullsfirst\" : \".nullslast\"}`);\n      return this;\n    }\n    limit(count, {foreignTable, referencedTable = foreignTable} = {}) {\n      const key = typeof referencedTable === \"undefined\" ? \"limit\" : `${referencedTable}.limit`;\n      this.url.searchParams.set(key, `${count}`);\n      return this;\n    }\n    range(from, to, {foreignTable, referencedTable = foreignTable} = {}) {\n      const keyOffset = typeof referencedTable === \"undefined\" ? \"offset\" : `${referencedTable}.offset`;\n      const keyLimit = typeof referencedTable === \"undefined\" ? \"limit\" : `${referencedTable}.limit`;\n      this.url.searchParams.set(keyOffset, `${from}`);\n      this.url.searchParams.set(keyLimit, `${to - from + 1}`);\n      return this;\n    }\n    abortSignal(signal) {\n      this.signal = signal;\n      return this;\n    }\n    single() {\n      this.headers.set(\"Accept\", \"application/vnd.pgrst.object+json\");\n      return this;\n    }\n    maybeSingle() {\n      if (this.method === \"GET\") {\n        this.headers.set(\"Accept\", \"application/json\");\n      } else {\n        this.headers.set(\"Accept\", \"application/vnd.pgrst.object+json\");\n      }\n      this.isMaybeSingle = true;\n      return this;\n    }\n    csv() {\n      this.headers.set(\"Accept\", \"text/csv\");\n      return this;\n    }\n    geojson() {\n      this.headers.set(\"Accept\", \"application/geo+json\");\n      return this;\n    }\n    explain({analyze = false, verbose = false, settings = false, buffers = false, wal = false, format = \"text\"} = {}) {\n      var _a;\n      const options = [\n        analyze ? \"analyze\" : null,\n        verbose ? \"verbose\" : null,\n        settings ? \"settings\" : null,\n        buffers ? \"buffers\" : null,\n        wal ? \"wal\" : null\n      ].filter(Boolean).join(\"|\");\n      const forMediatype = (_a = this.headers.get(\"Accept\")) !== null && _a !== void 0 ? _a : \"application/json\";\n      this.headers.set(\"Accept\", `application/vnd.pgrst.plan+${format}; for=\"${forMediatype}\"; options=${options};`);\n      if (format === \"json\") {\n        return this;\n      } else {\n        return this;\n      }\n    }\n    rollback() {\n      this.headers.append(\"Prefer\", \"tx=rollback\");\n      return this;\n    }\n    returns() {\n      return this;\n    }\n    maxAffected(value) {\n      this.headers.append(\"Prefer\", \"handling=strict\");\n      this.headers.append(\"Prefer\", `max-affected=${value}`);\n      return this;\n    }\n  }\n  exports.default = PostgrestTransformBuilder2;\n});\nvar PostgrestFilterBuilder_1 = createCommonjsModule(function(module, exports) {\n  var __importDefault = commonjsGlobal && commonjsGlobal.__importDefault || function(mod) {\n    return mod && mod.__esModule ? mod : {default: mod};\n  };\n  Object.defineProperty(exports, \"__esModule\", {value: true});\n  const PostgrestTransformBuilder_1$1 = __importDefault(PostgrestTransformBuilder_1);\n  class PostgrestFilterBuilder2 extends PostgrestTransformBuilder_1$1.default {\n    eq(column, value) {\n      this.url.searchParams.append(column, `eq.${value}`);\n      return this;\n    }\n    neq(column, value) {\n      this.url.searchParams.append(column, `neq.${value}`);\n      return this;\n    }\n    gt(column, value) {\n      this.url.searchParams.append(column, `gt.${value}`);\n      return this;\n    }\n    gte(column, value) {\n      this.url.searchParams.append(column, `gte.${value}`);\n      return this;\n    }\n    lt(column, value) {\n      this.url.searchParams.append(column, `lt.${value}`);\n      return this;\n    }\n    lte(column, value) {\n      this.url.searchParams.append(column, `lte.${value}`);\n      return this;\n    }\n    like(column, pattern) {\n      this.url.searchParams.append(column, `like.${pattern}`);\n      return this;\n    }\n    likeAllOf(column, patterns) {\n      this.url.searchParams.append(column, `like(all).{${patterns.join(\",\")}}`);\n      return this;\n    }\n    likeAnyOf(column, patterns) {\n      this.url.searchParams.append(column, `like(any).{${patterns.join(\",\")}}`);\n      return this;\n    }\n    ilike(column, pattern) {\n      this.url.searchParams.append(column, `ilike.${pattern}`);\n      return this;\n    }\n    ilikeAllOf(column, patterns) {\n      this.url.searchParams.append(column, `ilike(all).{${patterns.join(\",\")}}`);\n      return this;\n    }\n    ilikeAnyOf(column, patterns) {\n      this.url.searchParams.append(column, `ilike(any).{${patterns.join(\",\")}}`);\n      return this;\n    }\n    is(column, value) {\n      this.url.searchParams.append(column, `is.${value}`);\n      return this;\n    }\n    in(column, values) {\n      const cleanedValues = Array.from(new Set(values)).map((s) => {\n        if (typeof s === \"string\" && new RegExp(\"[,()]\").test(s))\n          return `\"${s}\"`;\n        else\n          return `${s}`;\n      }).join(\",\");\n      this.url.searchParams.append(column, `in.(${cleanedValues})`);\n      return this;\n    }\n    contains(column, value) {\n      if (typeof value === \"string\") {\n        this.url.searchParams.append(column, `cs.${value}`);\n      } else if (Array.isArray(value)) {\n        this.url.searchParams.append(column, `cs.{${value.join(\",\")}}`);\n      } else {\n        this.url.searchParams.append(column, `cs.${JSON.stringify(value)}`);\n      }\n      return this;\n    }\n    containedBy(column, value) {\n      if (typeof value === \"string\") {\n        this.url.searchParams.append(column, `cd.${value}`);\n      } else if (Array.isArray(value)) {\n        this.url.searchParams.append(column, `cd.{${value.join(\",\")}}`);\n      } else {\n        this.url.searchParams.append(column, `cd.${JSON.stringify(value)}`);\n      }\n      return this;\n    }\n    rangeGt(column, range) {\n      this.url.searchParams.append(column, `sr.${range}`);\n      return this;\n    }\n    rangeGte(column, range) {\n      this.url.searchParams.append(column, `nxl.${range}`);\n      return this;\n    }\n    rangeLt(column, range) {\n      this.url.searchParams.append(column, `sl.${range}`);\n      return this;\n    }\n    rangeLte(column, range) {\n      this.url.searchParams.append(column, `nxr.${range}`);\n      return this;\n    }\n    rangeAdjacent(column, range) {\n      this.url.searchParams.append(column, `adj.${range}`);\n      return this;\n    }\n    overlaps(column, value) {\n      if (typeof value === \"string\") {\n        this.url.searchParams.append(column, `ov.${value}`);\n      } else {\n        this.url.searchParams.append(column, `ov.{${value.join(\",\")}}`);\n      }\n      return this;\n    }\n    textSearch(column, query, {config, type} = {}) {\n      let typePart = \"\";\n      if (type === \"plain\") {\n        typePart = \"pl\";\n      } else if (type === \"phrase\") {\n        typePart = \"ph\";\n      } else if (type === \"websearch\") {\n        typePart = \"w\";\n      }\n      const configPart = config === void 0 ? \"\" : `(${config})`;\n      this.url.searchParams.append(column, `${typePart}fts${configPart}.${query}`);\n      return this;\n    }\n    match(query) {\n      Object.entries(query).forEach(([column, value]) => {\n        this.url.searchParams.append(column, `eq.${value}`);\n      });\n      return this;\n    }\n    not(column, operator, value) {\n      this.url.searchParams.append(column, `not.${operator}.${value}`);\n      return this;\n    }\n    or(filters, {foreignTable, referencedTable = foreignTable} = {}) {\n      const key = referencedTable ? `${referencedTable}.or` : \"or\";\n      this.url.searchParams.append(key, `(${filters})`);\n      return this;\n    }\n    filter(column, operator, value) {\n      this.url.searchParams.append(column, `${operator}.${value}`);\n      return this;\n    }\n  }\n  exports.default = PostgrestFilterBuilder2;\n});\nvar PostgrestQueryBuilder_1 = createCommonjsModule(function(module, exports) {\n  var __importDefault = commonjsGlobal && commonjsGlobal.__importDefault || function(mod) {\n    return mod && mod.__esModule ? mod : {default: mod};\n  };\n  Object.defineProperty(exports, \"__esModule\", {value: true});\n  const PostgrestFilterBuilder_1$1 = __importDefault(PostgrestFilterBuilder_1);\n  class PostgrestQueryBuilder2 {\n    constructor(url, {headers = {}, schema, fetch: fetch2}) {\n      this.url = url;\n      this.headers = new Headers(headers);\n      this.schema = schema;\n      this.fetch = fetch2;\n    }\n    select(columns, {head = false, count} = {}) {\n      const method = head ? \"HEAD\" : \"GET\";\n      let quoted = false;\n      const cleanedColumns = (columns !== null && columns !== void 0 ? columns : \"*\").split(\"\").map((c) => {\n        if (/\\s/.test(c) && !quoted) {\n          return \"\";\n        }\n        if (c === '\"') {\n          quoted = !quoted;\n        }\n        return c;\n      }).join(\"\");\n      this.url.searchParams.set(\"select\", cleanedColumns);\n      if (count) {\n        this.headers.append(\"Prefer\", `count=${count}`);\n      }\n      return new PostgrestFilterBuilder_1$1.default({\n        method,\n        url: this.url,\n        headers: this.headers,\n        schema: this.schema,\n        fetch: this.fetch\n      });\n    }\n    insert(values, {count, defaultToNull = true} = {}) {\n      var _a;\n      const method = \"POST\";\n      if (count) {\n        this.headers.append(\"Prefer\", `count=${count}`);\n      }\n      if (!defaultToNull) {\n        this.headers.append(\"Prefer\", `missing=default`);\n      }\n      if (Array.isArray(values)) {\n        const columns = values.reduce((acc, x) => acc.concat(Object.keys(x)), []);\n        if (columns.length > 0) {\n          const uniqueColumns = [...new Set(columns)].map((column) => `\"${column}\"`);\n          this.url.searchParams.set(\"columns\", uniqueColumns.join(\",\"));\n        }\n      }\n      return new PostgrestFilterBuilder_1$1.default({\n        method,\n        url: this.url,\n        headers: this.headers,\n        schema: this.schema,\n        body: values,\n        fetch: (_a = this.fetch) !== null && _a !== void 0 ? _a : fetch\n      });\n    }\n    upsert(values, {onConflict, ignoreDuplicates = false, count, defaultToNull = true} = {}) {\n      var _a;\n      const method = \"POST\";\n      this.headers.append(\"Prefer\", `resolution=${ignoreDuplicates ? \"ignore\" : \"merge\"}-duplicates`);\n      if (onConflict !== void 0)\n        this.url.searchParams.set(\"on_conflict\", onConflict);\n      if (count) {\n        this.headers.append(\"Prefer\", `count=${count}`);\n      }\n      if (!defaultToNull) {\n        this.headers.append(\"Prefer\", \"missing=default\");\n      }\n      if (Array.isArray(values)) {\n        const columns = values.reduce((acc, x) => acc.concat(Object.keys(x)), []);\n        if (columns.length > 0) {\n          const uniqueColumns = [...new Set(columns)].map((column) => `\"${column}\"`);\n          this.url.searchParams.set(\"columns\", uniqueColumns.join(\",\"));\n        }\n      }\n      return new PostgrestFilterBuilder_1$1.default({\n        method,\n        url: this.url,\n        headers: this.headers,\n        schema: this.schema,\n        body: values,\n        fetch: (_a = this.fetch) !== null && _a !== void 0 ? _a : fetch\n      });\n    }\n    update(values, {count} = {}) {\n      var _a;\n      const method = \"PATCH\";\n      if (count) {\n        this.headers.append(\"Prefer\", `count=${count}`);\n      }\n      return new PostgrestFilterBuilder_1$1.default({\n        method,\n        url: this.url,\n        headers: this.headers,\n        schema: this.schema,\n        body: values,\n        fetch: (_a = this.fetch) !== null && _a !== void 0 ? _a : fetch\n      });\n    }\n    delete({count} = {}) {\n      var _a;\n      const method = \"DELETE\";\n      if (count) {\n        this.headers.append(\"Prefer\", `count=${count}`);\n      }\n      return new PostgrestFilterBuilder_1$1.default({\n        method,\n        url: this.url,\n        headers: this.headers,\n        schema: this.schema,\n        fetch: (_a = this.fetch) !== null && _a !== void 0 ? _a : fetch\n      });\n    }\n  }\n  exports.default = PostgrestQueryBuilder2;\n});\nvar PostgrestClient_1 = createCommonjsModule(function(module, exports) {\n  var __importDefault = commonjsGlobal && commonjsGlobal.__importDefault || function(mod) {\n    return mod && mod.__esModule ? mod : {default: mod};\n  };\n  Object.defineProperty(exports, \"__esModule\", {value: true});\n  const PostgrestQueryBuilder_1$1 = __importDefault(PostgrestQueryBuilder_1);\n  const PostgrestFilterBuilder_1$1 = __importDefault(PostgrestFilterBuilder_1);\n  class PostgrestClient2 {\n    constructor(url, {headers = {}, schema, fetch: fetch2} = {}) {\n      this.url = url;\n      this.headers = new Headers(headers);\n      this.schemaName = schema;\n      this.fetch = fetch2;\n    }\n    from(relation) {\n      const url = new URL(`${this.url}/${relation}`);\n      return new PostgrestQueryBuilder_1$1.default(url, {\n        headers: new Headers(this.headers),\n        schema: this.schemaName,\n        fetch: this.fetch\n      });\n    }\n    schema(schema) {\n      return new PostgrestClient2(this.url, {\n        headers: this.headers,\n        schema,\n        fetch: this.fetch\n      });\n    }\n    rpc(fn, args = {}, {head = false, get = false, count} = {}) {\n      var _a;\n      let method;\n      const url = new URL(`${this.url}/rpc/${fn}`);\n      let body;\n      if (head || get) {\n        method = head ? \"HEAD\" : \"GET\";\n        Object.entries(args).filter(([_, value]) => value !== void 0).map(([name, value]) => [name, Array.isArray(value) ? `{${value.join(\",\")}}` : `${value}`]).forEach(([name, value]) => {\n          url.searchParams.append(name, value);\n        });\n      } else {\n        method = \"POST\";\n        body = args;\n      }\n      const headers = new Headers(this.headers);\n      if (count) {\n        headers.set(\"Prefer\", `count=${count}`);\n      }\n      return new PostgrestFilterBuilder_1$1.default({\n        method,\n        url,\n        headers,\n        schema: this.schemaName,\n        body,\n        fetch: (_a = this.fetch) !== null && _a !== void 0 ? _a : fetch\n      });\n    }\n  }\n  exports.default = PostgrestClient2;\n});\nvar cjs = createCommonjsModule(function(module, exports) {\n  var __importDefault = commonjsGlobal && commonjsGlobal.__importDefault || function(mod) {\n    return mod && mod.__esModule ? mod : {default: mod};\n  };\n  Object.defineProperty(exports, \"__esModule\", {value: true});\n  exports.PostgrestError = exports.PostgrestBuilder = exports.PostgrestTransformBuilder = exports.PostgrestFilterBuilder = exports.PostgrestQueryBuilder = exports.PostgrestClient = void 0;\n  const PostgrestClient_1$1 = __importDefault(PostgrestClient_1);\n  exports.PostgrestClient = PostgrestClient_1$1.default;\n  const PostgrestQueryBuilder_1$1 = __importDefault(PostgrestQueryBuilder_1);\n  exports.PostgrestQueryBuilder = PostgrestQueryBuilder_1$1.default;\n  const PostgrestFilterBuilder_1$1 = __importDefault(PostgrestFilterBuilder_1);\n  exports.PostgrestFilterBuilder = PostgrestFilterBuilder_1$1.default;\n  const PostgrestTransformBuilder_1$1 = __importDefault(PostgrestTransformBuilder_1);\n  exports.PostgrestTransformBuilder = PostgrestTransformBuilder_1$1.default;\n  const PostgrestBuilder_1$1 = __importDefault(PostgrestBuilder_1);\n  exports.PostgrestBuilder = PostgrestBuilder_1$1.default;\n  const PostgrestError_1$1 = __importDefault(PostgrestError_1);\n  exports.PostgrestError = PostgrestError_1$1.default;\n  exports.default = {\n    PostgrestClient: PostgrestClient_1$1.default,\n    PostgrestQueryBuilder: PostgrestQueryBuilder_1$1.default,\n    PostgrestFilterBuilder: PostgrestFilterBuilder_1$1.default,\n    PostgrestTransformBuilder: PostgrestTransformBuilder_1$1.default,\n    PostgrestBuilder: PostgrestBuilder_1$1.default,\n    PostgrestError: PostgrestError_1$1.default\n  };\n});\nvar index = /* @__PURE__ */ getDefaultExportFromCjs(cjs);\nconst {\n  PostgrestClient,\n  PostgrestQueryBuilder,\n  PostgrestFilterBuilder,\n  PostgrestTransformBuilder,\n  PostgrestBuilder,\n  PostgrestError\n} = index;\nvar wrapper = {\n  PostgrestClient,\n  PostgrestQueryBuilder,\n  PostgrestFilterBuilder,\n  PostgrestTransformBuilder,\n  PostgrestBuilder,\n  PostgrestError\n};\nexport default wrapper;\nexport {PostgrestBuilder, PostgrestClient, PostgrestError, PostgrestFilterBuilder, PostgrestQueryBuilder, PostgrestTransformBuilder};\n", "var global$1 = typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {};\nfunction defaultSetTimout() {\n  throw new Error(\"setTimeout has not been defined\");\n}\nfunction defaultClearTimeout() {\n  throw new Error(\"clearTimeout has not been defined\");\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nvar globalContext;\nif (typeof window !== \"undefined\") {\n  globalContext = window;\n} else if (typeof self !== \"undefined\") {\n  globalContext = self;\n} else {\n  globalContext = {};\n}\nif (typeof globalContext.setTimeout === \"function\") {\n  cachedSetTimeout = setTimeout;\n}\nif (typeof globalContext.clearTimeout === \"function\") {\n  cachedClearTimeout = clearTimeout;\n}\nfunction runTimeout(fun) {\n  if (cachedSetTimeout === setTimeout) {\n    return setTimeout(fun, 0);\n  }\n  if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n    cachedSetTimeout = setTimeout;\n    return setTimeout(fun, 0);\n  }\n  try {\n    return cachedSetTimeout(fun, 0);\n  } catch (e) {\n    try {\n      return cachedSetTimeout.call(null, fun, 0);\n    } catch (e2) {\n      return cachedSetTimeout.call(this, fun, 0);\n    }\n  }\n}\nfunction runClearTimeout(marker) {\n  if (cachedClearTimeout === clearTimeout) {\n    return clearTimeout(marker);\n  }\n  if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n    cachedClearTimeout = clearTimeout;\n    return clearTimeout(marker);\n  }\n  try {\n    return cachedClearTimeout(marker);\n  } catch (e) {\n    try {\n      return cachedClearTimeout.call(null, marker);\n    } catch (e2) {\n      return cachedClearTimeout.call(this, marker);\n    }\n  }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\nfunction cleanUpNextTick() {\n  if (!draining || !currentQueue) {\n    return;\n  }\n  draining = false;\n  if (currentQueue.length) {\n    queue = currentQueue.concat(queue);\n  } else {\n    queueIndex = -1;\n  }\n  if (queue.length) {\n    drainQueue();\n  }\n}\nfunction drainQueue() {\n  if (draining) {\n    return;\n  }\n  var timeout = runTimeout(cleanUpNextTick);\n  draining = true;\n  var len = queue.length;\n  while (len) {\n    currentQueue = queue;\n    queue = [];\n    while (++queueIndex < len) {\n      if (currentQueue) {\n        currentQueue[queueIndex].run();\n      }\n    }\n    queueIndex = -1;\n    len = queue.length;\n  }\n  currentQueue = null;\n  draining = false;\n  runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n  var args = new Array(arguments.length - 1);\n  if (arguments.length > 1) {\n    for (var i = 1; i < arguments.length; i++) {\n      args[i - 1] = arguments[i];\n    }\n  }\n  queue.push(new Item(fun, args));\n  if (queue.length === 1 && !draining) {\n    runTimeout(drainQueue);\n  }\n}\nfunction Item(fun, array) {\n  this.fun = fun;\n  this.array = array;\n}\nItem.prototype.run = function() {\n  this.fun.apply(null, this.array);\n};\nvar title = \"browser\";\nvar platform = \"browser\";\nvar browser = true;\nvar argv = [];\nvar version = \"\";\nvar versions = {};\nvar release = {};\nvar config = {};\nfunction noop() {\n}\nvar on = noop;\nvar addListener = noop;\nvar once = noop;\nvar off = noop;\nvar removeListener = noop;\nvar removeAllListeners = noop;\nvar emit = noop;\nfunction binding(name) {\n  throw new Error(\"process.binding is not supported\");\n}\nfunction cwd() {\n  return \"/\";\n}\nfunction chdir(dir) {\n  throw new Error(\"process.chdir is not supported\");\n}\nfunction umask() {\n  return 0;\n}\nvar performance = globalContext.performance || {};\nvar performanceNow = performance.now || performance.mozNow || performance.msNow || performance.oNow || performance.webkitNow || function() {\n  return new Date().getTime();\n};\nfunction hrtime(previousTimestamp) {\n  var clocktime = performanceNow.call(performance) * 1e-3;\n  var seconds = Math.floor(clocktime);\n  var nanoseconds = Math.floor(clocktime % 1 * 1e9);\n  if (previousTimestamp) {\n    seconds = seconds - previousTimestamp[0];\n    nanoseconds = nanoseconds - previousTimestamp[1];\n    if (nanoseconds < 0) {\n      seconds--;\n      nanoseconds += 1e9;\n    }\n  }\n  return [seconds, nanoseconds];\n}\nvar startTime = new Date();\nfunction uptime() {\n  var currentTime = new Date();\n  var dif = currentTime - startTime;\n  return dif / 1e3;\n}\nvar process = {\n  nextTick,\n  title,\n  browser,\n  env: {NODE_ENV: \"production\"},\n  argv,\n  version,\n  versions,\n  on,\n  addListener,\n  once,\n  off,\n  removeListener,\n  removeAllListeners,\n  emit,\n  binding,\n  cwd,\n  chdir,\n  umask,\n  hrtime,\n  platform,\n  release,\n  config,\n  uptime\n};\nclass WebSocketFactory {\n  static detectEnvironment() {\n    var _a;\n    if (typeof WebSocket !== \"undefined\") {\n      return {type: \"native\", constructor: WebSocket};\n    }\n    if (typeof globalThis !== \"undefined\" && typeof globalThis.WebSocket !== \"undefined\") {\n      return {type: \"native\", constructor: globalThis.WebSocket};\n    }\n    if (typeof global$1 !== \"undefined\" && typeof global$1.WebSocket !== \"undefined\") {\n      return {type: \"native\", constructor: global$1.WebSocket};\n    }\n    if (typeof globalThis !== \"undefined\" && typeof globalThis.WebSocketPair !== \"undefined\" && typeof globalThis.WebSocket === \"undefined\") {\n      return {\n        type: \"cloudflare\",\n        error: \"Cloudflare Workers detected. WebSocket clients are not supported in Cloudflare Workers.\",\n        workaround: \"Use Cloudflare Workers WebSocket API for server-side WebSocket handling, or deploy to a different runtime.\"\n      };\n    }\n    if (typeof globalThis !== \"undefined\" && globalThis.EdgeRuntime || typeof navigator !== \"undefined\" && ((_a = navigator.userAgent) === null || _a === void 0 ? void 0 : _a.includes(\"Vercel-Edge\"))) {\n      return {\n        type: \"unsupported\",\n        error: \"Edge runtime detected (Vercel Edge/Netlify Edge). WebSockets are not supported in edge functions.\",\n        workaround: \"Use serverless functions or a different deployment target for WebSocket functionality.\"\n      };\n    }\n    if (typeof process !== \"undefined\" && process.versions && process.versions.node) {\n      const nodeVersion = parseInt(process.versions.node.split(\".\")[0]);\n      if (nodeVersion >= 22) {\n        if (typeof globalThis.WebSocket !== \"undefined\") {\n          return {type: \"native\", constructor: globalThis.WebSocket};\n        }\n        return {\n          type: \"unsupported\",\n          error: `Node.js ${nodeVersion} detected but native WebSocket not found.`,\n          workaround: \"Provide a WebSocket implementation via the transport option.\"\n        };\n      }\n      return {\n        type: \"unsupported\",\n        error: `Node.js ${nodeVersion} detected without native WebSocket support.`,\n        workaround: 'For Node.js < 22, install \"ws\" package and provide it via the transport option:\\nimport ws from \"ws\"\\nnew RealtimeClient(url, { transport: ws })'\n      };\n    }\n    return {\n      type: \"unsupported\",\n      error: \"Unknown JavaScript runtime without WebSocket support.\",\n      workaround: \"Ensure you're running in a supported environment (browser, Node.js, Deno) or provide a custom WebSocket implementation.\"\n    };\n  }\n  static getWebSocketConstructor() {\n    const env = this.detectEnvironment();\n    if (env.constructor) {\n      return env.constructor;\n    }\n    let errorMessage = env.error || \"WebSocket not supported in this environment.\";\n    if (env.workaround) {\n      errorMessage += `\n\nSuggested solution: ${env.workaround}`;\n    }\n    throw new Error(errorMessage);\n  }\n  static createWebSocket(url, protocols) {\n    const WS = this.getWebSocketConstructor();\n    return new WS(url, protocols);\n  }\n  static isWebSocketSupported() {\n    try {\n      const env = this.detectEnvironment();\n      return env.type === \"native\" || env.type === \"ws\";\n    } catch (_a) {\n      return false;\n    }\n  }\n}\nconst version$1 = \"2.15.4\";\nconst DEFAULT_VERSION = `realtime-js/${version$1}`;\nconst VSN = \"1.0.0\";\nconst DEFAULT_TIMEOUT = 1e4;\nconst WS_CLOSE_NORMAL = 1e3;\nconst MAX_PUSH_BUFFER_SIZE = 100;\nvar SOCKET_STATES;\n(function(SOCKET_STATES2) {\n  SOCKET_STATES2[SOCKET_STATES2[\"connecting\"] = 0] = \"connecting\";\n  SOCKET_STATES2[SOCKET_STATES2[\"open\"] = 1] = \"open\";\n  SOCKET_STATES2[SOCKET_STATES2[\"closing\"] = 2] = \"closing\";\n  SOCKET_STATES2[SOCKET_STATES2[\"closed\"] = 3] = \"closed\";\n})(SOCKET_STATES || (SOCKET_STATES = {}));\nvar CHANNEL_STATES;\n(function(CHANNEL_STATES2) {\n  CHANNEL_STATES2[\"closed\"] = \"closed\";\n  CHANNEL_STATES2[\"errored\"] = \"errored\";\n  CHANNEL_STATES2[\"joined\"] = \"joined\";\n  CHANNEL_STATES2[\"joining\"] = \"joining\";\n  CHANNEL_STATES2[\"leaving\"] = \"leaving\";\n})(CHANNEL_STATES || (CHANNEL_STATES = {}));\nvar CHANNEL_EVENTS;\n(function(CHANNEL_EVENTS2) {\n  CHANNEL_EVENTS2[\"close\"] = \"phx_close\";\n  CHANNEL_EVENTS2[\"error\"] = \"phx_error\";\n  CHANNEL_EVENTS2[\"join\"] = \"phx_join\";\n  CHANNEL_EVENTS2[\"reply\"] = \"phx_reply\";\n  CHANNEL_EVENTS2[\"leave\"] = \"phx_leave\";\n  CHANNEL_EVENTS2[\"access_token\"] = \"access_token\";\n})(CHANNEL_EVENTS || (CHANNEL_EVENTS = {}));\nvar TRANSPORTS;\n(function(TRANSPORTS2) {\n  TRANSPORTS2[\"websocket\"] = \"websocket\";\n})(TRANSPORTS || (TRANSPORTS = {}));\nvar CONNECTION_STATE;\n(function(CONNECTION_STATE2) {\n  CONNECTION_STATE2[\"Connecting\"] = \"connecting\";\n  CONNECTION_STATE2[\"Open\"] = \"open\";\n  CONNECTION_STATE2[\"Closing\"] = \"closing\";\n  CONNECTION_STATE2[\"Closed\"] = \"closed\";\n})(CONNECTION_STATE || (CONNECTION_STATE = {}));\nclass Serializer {\n  constructor() {\n    this.HEADER_LENGTH = 1;\n  }\n  decode(rawPayload, callback) {\n    if (rawPayload.constructor === ArrayBuffer) {\n      return callback(this._binaryDecode(rawPayload));\n    }\n    if (typeof rawPayload === \"string\") {\n      return callback(JSON.parse(rawPayload));\n    }\n    return callback({});\n  }\n  _binaryDecode(buffer) {\n    const view = new DataView(buffer);\n    const decoder = new TextDecoder();\n    return this._decodeBroadcast(buffer, view, decoder);\n  }\n  _decodeBroadcast(buffer, view, decoder) {\n    const topicSize = view.getUint8(1);\n    const eventSize = view.getUint8(2);\n    let offset = this.HEADER_LENGTH + 2;\n    const topic = decoder.decode(buffer.slice(offset, offset + topicSize));\n    offset = offset + topicSize;\n    const event = decoder.decode(buffer.slice(offset, offset + eventSize));\n    offset = offset + eventSize;\n    const data = JSON.parse(decoder.decode(buffer.slice(offset, buffer.byteLength)));\n    return {ref: null, topic, event, payload: data};\n  }\n}\nclass Timer {\n  constructor(callback, timerCalc) {\n    this.callback = callback;\n    this.timerCalc = timerCalc;\n    this.timer = void 0;\n    this.tries = 0;\n    this.callback = callback;\n    this.timerCalc = timerCalc;\n  }\n  reset() {\n    this.tries = 0;\n    clearTimeout(this.timer);\n    this.timer = void 0;\n  }\n  scheduleTimeout() {\n    clearTimeout(this.timer);\n    this.timer = setTimeout(() => {\n      this.tries = this.tries + 1;\n      this.callback();\n    }, this.timerCalc(this.tries + 1));\n  }\n}\nvar PostgresTypes;\n(function(PostgresTypes2) {\n  PostgresTypes2[\"abstime\"] = \"abstime\";\n  PostgresTypes2[\"bool\"] = \"bool\";\n  PostgresTypes2[\"date\"] = \"date\";\n  PostgresTypes2[\"daterange\"] = \"daterange\";\n  PostgresTypes2[\"float4\"] = \"float4\";\n  PostgresTypes2[\"float8\"] = \"float8\";\n  PostgresTypes2[\"int2\"] = \"int2\";\n  PostgresTypes2[\"int4\"] = \"int4\";\n  PostgresTypes2[\"int4range\"] = \"int4range\";\n  PostgresTypes2[\"int8\"] = \"int8\";\n  PostgresTypes2[\"int8range\"] = \"int8range\";\n  PostgresTypes2[\"json\"] = \"json\";\n  PostgresTypes2[\"jsonb\"] = \"jsonb\";\n  PostgresTypes2[\"money\"] = \"money\";\n  PostgresTypes2[\"numeric\"] = \"numeric\";\n  PostgresTypes2[\"oid\"] = \"oid\";\n  PostgresTypes2[\"reltime\"] = \"reltime\";\n  PostgresTypes2[\"text\"] = \"text\";\n  PostgresTypes2[\"time\"] = \"time\";\n  PostgresTypes2[\"timestamp\"] = \"timestamp\";\n  PostgresTypes2[\"timestamptz\"] = \"timestamptz\";\n  PostgresTypes2[\"timetz\"] = \"timetz\";\n  PostgresTypes2[\"tsrange\"] = \"tsrange\";\n  PostgresTypes2[\"tstzrange\"] = \"tstzrange\";\n})(PostgresTypes || (PostgresTypes = {}));\nconst convertChangeData = (columns, record, options = {}) => {\n  var _a;\n  const skipTypes = (_a = options.skipTypes) !== null && _a !== void 0 ? _a : [];\n  return Object.keys(record).reduce((acc, rec_key) => {\n    acc[rec_key] = convertColumn(rec_key, columns, record, skipTypes);\n    return acc;\n  }, {});\n};\nconst convertColumn = (columnName, columns, record, skipTypes) => {\n  const column = columns.find((x) => x.name === columnName);\n  const colType = column === null || column === void 0 ? void 0 : column.type;\n  const value = record[columnName];\n  if (colType && !skipTypes.includes(colType)) {\n    return convertCell(colType, value);\n  }\n  return noop$1(value);\n};\nconst convertCell = (type, value) => {\n  if (type.charAt(0) === \"_\") {\n    const dataType = type.slice(1, type.length);\n    return toArray(value, dataType);\n  }\n  switch (type) {\n    case PostgresTypes.bool:\n      return toBoolean(value);\n    case PostgresTypes.float4:\n    case PostgresTypes.float8:\n    case PostgresTypes.int2:\n    case PostgresTypes.int4:\n    case PostgresTypes.int8:\n    case PostgresTypes.numeric:\n    case PostgresTypes.oid:\n      return toNumber(value);\n    case PostgresTypes.json:\n    case PostgresTypes.jsonb:\n      return toJson(value);\n    case PostgresTypes.timestamp:\n      return toTimestampString(value);\n    case PostgresTypes.abstime:\n    case PostgresTypes.date:\n    case PostgresTypes.daterange:\n    case PostgresTypes.int4range:\n    case PostgresTypes.int8range:\n    case PostgresTypes.money:\n    case PostgresTypes.reltime:\n    case PostgresTypes.text:\n    case PostgresTypes.time:\n    case PostgresTypes.timestamptz:\n    case PostgresTypes.timetz:\n    case PostgresTypes.tsrange:\n    case PostgresTypes.tstzrange:\n      return noop$1(value);\n    default:\n      return noop$1(value);\n  }\n};\nconst noop$1 = (value) => {\n  return value;\n};\nconst toBoolean = (value) => {\n  switch (value) {\n    case \"t\":\n      return true;\n    case \"f\":\n      return false;\n    default:\n      return value;\n  }\n};\nconst toNumber = (value) => {\n  if (typeof value === \"string\") {\n    const parsedValue = parseFloat(value);\n    if (!Number.isNaN(parsedValue)) {\n      return parsedValue;\n    }\n  }\n  return value;\n};\nconst toJson = (value) => {\n  if (typeof value === \"string\") {\n    try {\n      return JSON.parse(value);\n    } catch (error) {\n      console.log(`JSON parse error: ${error}`);\n      return value;\n    }\n  }\n  return value;\n};\nconst toArray = (value, type) => {\n  if (typeof value !== \"string\") {\n    return value;\n  }\n  const lastIdx = value.length - 1;\n  const closeBrace = value[lastIdx];\n  const openBrace = value[0];\n  if (openBrace === \"{\" && closeBrace === \"}\") {\n    let arr;\n    const valTrim = value.slice(1, lastIdx);\n    try {\n      arr = JSON.parse(\"[\" + valTrim + \"]\");\n    } catch (_) {\n      arr = valTrim ? valTrim.split(\",\") : [];\n    }\n    return arr.map((val) => convertCell(type, val));\n  }\n  return value;\n};\nconst toTimestampString = (value) => {\n  if (typeof value === \"string\") {\n    return value.replace(\" \", \"T\");\n  }\n  return value;\n};\nconst httpEndpointURL = (socketUrl) => {\n  let url = socketUrl;\n  url = url.replace(/^ws/i, \"http\");\n  url = url.replace(/(\\/socket\\/websocket|\\/socket|\\/websocket)\\/?$/i, \"\");\n  return url.replace(/\\/+$/, \"\") + \"/api/broadcast\";\n};\nclass Push {\n  constructor(channel, event, payload = {}, timeout = DEFAULT_TIMEOUT) {\n    this.channel = channel;\n    this.event = event;\n    this.payload = payload;\n    this.timeout = timeout;\n    this.sent = false;\n    this.timeoutTimer = void 0;\n    this.ref = \"\";\n    this.receivedResp = null;\n    this.recHooks = [];\n    this.refEvent = null;\n  }\n  resend(timeout) {\n    this.timeout = timeout;\n    this._cancelRefEvent();\n    this.ref = \"\";\n    this.refEvent = null;\n    this.receivedResp = null;\n    this.sent = false;\n    this.send();\n  }\n  send() {\n    if (this._hasReceived(\"timeout\")) {\n      return;\n    }\n    this.startTimeout();\n    this.sent = true;\n    this.channel.socket.push({\n      topic: this.channel.topic,\n      event: this.event,\n      payload: this.payload,\n      ref: this.ref,\n      join_ref: this.channel._joinRef()\n    });\n  }\n  updatePayload(payload) {\n    this.payload = Object.assign(Object.assign({}, this.payload), payload);\n  }\n  receive(status, callback) {\n    var _a;\n    if (this._hasReceived(status)) {\n      callback((_a = this.receivedResp) === null || _a === void 0 ? void 0 : _a.response);\n    }\n    this.recHooks.push({status, callback});\n    return this;\n  }\n  startTimeout() {\n    if (this.timeoutTimer) {\n      return;\n    }\n    this.ref = this.channel.socket._makeRef();\n    this.refEvent = this.channel._replyEventName(this.ref);\n    const callback = (payload) => {\n      this._cancelRefEvent();\n      this._cancelTimeout();\n      this.receivedResp = payload;\n      this._matchReceive(payload);\n    };\n    this.channel._on(this.refEvent, {}, callback);\n    this.timeoutTimer = setTimeout(() => {\n      this.trigger(\"timeout\", {});\n    }, this.timeout);\n  }\n  trigger(status, response) {\n    if (this.refEvent)\n      this.channel._trigger(this.refEvent, {status, response});\n  }\n  destroy() {\n    this._cancelRefEvent();\n    this._cancelTimeout();\n  }\n  _cancelRefEvent() {\n    if (!this.refEvent) {\n      return;\n    }\n    this.channel._off(this.refEvent, {});\n  }\n  _cancelTimeout() {\n    clearTimeout(this.timeoutTimer);\n    this.timeoutTimer = void 0;\n  }\n  _matchReceive({status, response}) {\n    this.recHooks.filter((h) => h.status === status).forEach((h) => h.callback(response));\n  }\n  _hasReceived(status) {\n    return this.receivedResp && this.receivedResp.status === status;\n  }\n}\nvar REALTIME_PRESENCE_LISTEN_EVENTS;\n(function(REALTIME_PRESENCE_LISTEN_EVENTS2) {\n  REALTIME_PRESENCE_LISTEN_EVENTS2[\"SYNC\"] = \"sync\";\n  REALTIME_PRESENCE_LISTEN_EVENTS2[\"JOIN\"] = \"join\";\n  REALTIME_PRESENCE_LISTEN_EVENTS2[\"LEAVE\"] = \"leave\";\n})(REALTIME_PRESENCE_LISTEN_EVENTS || (REALTIME_PRESENCE_LISTEN_EVENTS = {}));\nclass RealtimePresence {\n  constructor(channel, opts) {\n    this.channel = channel;\n    this.state = {};\n    this.pendingDiffs = [];\n    this.joinRef = null;\n    this.enabled = false;\n    this.caller = {\n      onJoin: () => {\n      },\n      onLeave: () => {\n      },\n      onSync: () => {\n      }\n    };\n    const events = (opts === null || opts === void 0 ? void 0 : opts.events) || {\n      state: \"presence_state\",\n      diff: \"presence_diff\"\n    };\n    this.channel._on(events.state, {}, (newState) => {\n      const {onJoin, onLeave, onSync} = this.caller;\n      this.joinRef = this.channel._joinRef();\n      this.state = RealtimePresence.syncState(this.state, newState, onJoin, onLeave);\n      this.pendingDiffs.forEach((diff) => {\n        this.state = RealtimePresence.syncDiff(this.state, diff, onJoin, onLeave);\n      });\n      this.pendingDiffs = [];\n      onSync();\n    });\n    this.channel._on(events.diff, {}, (diff) => {\n      const {onJoin, onLeave, onSync} = this.caller;\n      if (this.inPendingSyncState()) {\n        this.pendingDiffs.push(diff);\n      } else {\n        this.state = RealtimePresence.syncDiff(this.state, diff, onJoin, onLeave);\n        onSync();\n      }\n    });\n    this.onJoin((key, currentPresences, newPresences) => {\n      this.channel._trigger(\"presence\", {\n        event: \"join\",\n        key,\n        currentPresences,\n        newPresences\n      });\n    });\n    this.onLeave((key, currentPresences, leftPresences) => {\n      this.channel._trigger(\"presence\", {\n        event: \"leave\",\n        key,\n        currentPresences,\n        leftPresences\n      });\n    });\n    this.onSync(() => {\n      this.channel._trigger(\"presence\", {event: \"sync\"});\n    });\n  }\n  static syncState(currentState, newState, onJoin, onLeave) {\n    const state = this.cloneDeep(currentState);\n    const transformedState = this.transformState(newState);\n    const joins = {};\n    const leaves = {};\n    this.map(state, (key, presences) => {\n      if (!transformedState[key]) {\n        leaves[key] = presences;\n      }\n    });\n    this.map(transformedState, (key, newPresences) => {\n      const currentPresences = state[key];\n      if (currentPresences) {\n        const newPresenceRefs = newPresences.map((m) => m.presence_ref);\n        const curPresenceRefs = currentPresences.map((m) => m.presence_ref);\n        const joinedPresences = newPresences.filter((m) => curPresenceRefs.indexOf(m.presence_ref) < 0);\n        const leftPresences = currentPresences.filter((m) => newPresenceRefs.indexOf(m.presence_ref) < 0);\n        if (joinedPresences.length > 0) {\n          joins[key] = joinedPresences;\n        }\n        if (leftPresences.length > 0) {\n          leaves[key] = leftPresences;\n        }\n      } else {\n        joins[key] = newPresences;\n      }\n    });\n    return this.syncDiff(state, {joins, leaves}, onJoin, onLeave);\n  }\n  static syncDiff(state, diff, onJoin, onLeave) {\n    const {joins, leaves} = {\n      joins: this.transformState(diff.joins),\n      leaves: this.transformState(diff.leaves)\n    };\n    if (!onJoin) {\n      onJoin = () => {\n      };\n    }\n    if (!onLeave) {\n      onLeave = () => {\n      };\n    }\n    this.map(joins, (key, newPresences) => {\n      var _a;\n      const currentPresences = (_a = state[key]) !== null && _a !== void 0 ? _a : [];\n      state[key] = this.cloneDeep(newPresences);\n      if (currentPresences.length > 0) {\n        const joinedPresenceRefs = state[key].map((m) => m.presence_ref);\n        const curPresences = currentPresences.filter((m) => joinedPresenceRefs.indexOf(m.presence_ref) < 0);\n        state[key].unshift(...curPresences);\n      }\n      onJoin(key, currentPresences, newPresences);\n    });\n    this.map(leaves, (key, leftPresences) => {\n      let currentPresences = state[key];\n      if (!currentPresences)\n        return;\n      const presenceRefsToRemove = leftPresences.map((m) => m.presence_ref);\n      currentPresences = currentPresences.filter((m) => presenceRefsToRemove.indexOf(m.presence_ref) < 0);\n      state[key] = currentPresences;\n      onLeave(key, currentPresences, leftPresences);\n      if (currentPresences.length === 0)\n        delete state[key];\n    });\n    return state;\n  }\n  static map(obj, func) {\n    return Object.getOwnPropertyNames(obj).map((key) => func(key, obj[key]));\n  }\n  static transformState(state) {\n    state = this.cloneDeep(state);\n    return Object.getOwnPropertyNames(state).reduce((newState, key) => {\n      const presences = state[key];\n      if (\"metas\" in presences) {\n        newState[key] = presences.metas.map((presence) => {\n          presence[\"presence_ref\"] = presence[\"phx_ref\"];\n          delete presence[\"phx_ref\"];\n          delete presence[\"phx_ref_prev\"];\n          return presence;\n        });\n      } else {\n        newState[key] = presences;\n      }\n      return newState;\n    }, {});\n  }\n  static cloneDeep(obj) {\n    return JSON.parse(JSON.stringify(obj));\n  }\n  onJoin(callback) {\n    this.caller.onJoin = callback;\n  }\n  onLeave(callback) {\n    this.caller.onLeave = callback;\n  }\n  onSync(callback) {\n    this.caller.onSync = callback;\n  }\n  inPendingSyncState() {\n    return !this.joinRef || this.joinRef !== this.channel._joinRef();\n  }\n}\nvar REALTIME_POSTGRES_CHANGES_LISTEN_EVENT;\n(function(REALTIME_POSTGRES_CHANGES_LISTEN_EVENT2) {\n  REALTIME_POSTGRES_CHANGES_LISTEN_EVENT2[\"ALL\"] = \"*\";\n  REALTIME_POSTGRES_CHANGES_LISTEN_EVENT2[\"INSERT\"] = \"INSERT\";\n  REALTIME_POSTGRES_CHANGES_LISTEN_EVENT2[\"UPDATE\"] = \"UPDATE\";\n  REALTIME_POSTGRES_CHANGES_LISTEN_EVENT2[\"DELETE\"] = \"DELETE\";\n})(REALTIME_POSTGRES_CHANGES_LISTEN_EVENT || (REALTIME_POSTGRES_CHANGES_LISTEN_EVENT = {}));\nvar REALTIME_LISTEN_TYPES;\n(function(REALTIME_LISTEN_TYPES2) {\n  REALTIME_LISTEN_TYPES2[\"BROADCAST\"] = \"broadcast\";\n  REALTIME_LISTEN_TYPES2[\"PRESENCE\"] = \"presence\";\n  REALTIME_LISTEN_TYPES2[\"POSTGRES_CHANGES\"] = \"postgres_changes\";\n  REALTIME_LISTEN_TYPES2[\"SYSTEM\"] = \"system\";\n})(REALTIME_LISTEN_TYPES || (REALTIME_LISTEN_TYPES = {}));\nvar REALTIME_SUBSCRIBE_STATES;\n(function(REALTIME_SUBSCRIBE_STATES2) {\n  REALTIME_SUBSCRIBE_STATES2[\"SUBSCRIBED\"] = \"SUBSCRIBED\";\n  REALTIME_SUBSCRIBE_STATES2[\"TIMED_OUT\"] = \"TIMED_OUT\";\n  REALTIME_SUBSCRIBE_STATES2[\"CLOSED\"] = \"CLOSED\";\n  REALTIME_SUBSCRIBE_STATES2[\"CHANNEL_ERROR\"] = \"CHANNEL_ERROR\";\n})(REALTIME_SUBSCRIBE_STATES || (REALTIME_SUBSCRIBE_STATES = {}));\nconst REALTIME_CHANNEL_STATES = CHANNEL_STATES;\nclass RealtimeChannel {\n  constructor(topic, params = {config: {}}, socket) {\n    this.topic = topic;\n    this.params = params;\n    this.socket = socket;\n    this.bindings = {};\n    this.state = CHANNEL_STATES.closed;\n    this.joinedOnce = false;\n    this.pushBuffer = [];\n    this.subTopic = topic.replace(/^realtime:/i, \"\");\n    this.params.config = Object.assign({\n      broadcast: {ack: false, self: false},\n      presence: {key: \"\", enabled: false},\n      private: false\n    }, params.config);\n    this.timeout = this.socket.timeout;\n    this.joinPush = new Push(this, CHANNEL_EVENTS.join, this.params, this.timeout);\n    this.rejoinTimer = new Timer(() => this._rejoinUntilConnected(), this.socket.reconnectAfterMs);\n    this.joinPush.receive(\"ok\", () => {\n      this.state = CHANNEL_STATES.joined;\n      this.rejoinTimer.reset();\n      this.pushBuffer.forEach((pushEvent) => pushEvent.send());\n      this.pushBuffer = [];\n    });\n    this._onClose(() => {\n      this.rejoinTimer.reset();\n      this.socket.log(\"channel\", `close ${this.topic} ${this._joinRef()}`);\n      this.state = CHANNEL_STATES.closed;\n      this.socket._remove(this);\n    });\n    this._onError((reason) => {\n      if (this._isLeaving() || this._isClosed()) {\n        return;\n      }\n      this.socket.log(\"channel\", `error ${this.topic}`, reason);\n      this.state = CHANNEL_STATES.errored;\n      this.rejoinTimer.scheduleTimeout();\n    });\n    this.joinPush.receive(\"timeout\", () => {\n      if (!this._isJoining()) {\n        return;\n      }\n      this.socket.log(\"channel\", `timeout ${this.topic}`, this.joinPush.timeout);\n      this.state = CHANNEL_STATES.errored;\n      this.rejoinTimer.scheduleTimeout();\n    });\n    this.joinPush.receive(\"error\", (reason) => {\n      if (this._isLeaving() || this._isClosed()) {\n        return;\n      }\n      this.socket.log(\"channel\", `error ${this.topic}`, reason);\n      this.state = CHANNEL_STATES.errored;\n      this.rejoinTimer.scheduleTimeout();\n    });\n    this._on(CHANNEL_EVENTS.reply, {}, (payload, ref) => {\n      this._trigger(this._replyEventName(ref), payload);\n    });\n    this.presence = new RealtimePresence(this);\n    this.broadcastEndpointURL = httpEndpointURL(this.socket.endPoint);\n    this.private = this.params.config.private || false;\n  }\n  subscribe(callback, timeout = this.timeout) {\n    var _a, _b, _c;\n    if (!this.socket.isConnected()) {\n      this.socket.connect();\n    }\n    if (this.state == CHANNEL_STATES.closed) {\n      const {config: {broadcast, presence, private: isPrivate}} = this.params;\n      const postgres_changes = (_b = (_a = this.bindings.postgres_changes) === null || _a === void 0 ? void 0 : _a.map((r) => r.filter)) !== null && _b !== void 0 ? _b : [];\n      const presence_enabled = !!this.bindings[REALTIME_LISTEN_TYPES.PRESENCE] && this.bindings[REALTIME_LISTEN_TYPES.PRESENCE].length > 0 || ((_c = this.params.config.presence) === null || _c === void 0 ? void 0 : _c.enabled) === true;\n      const accessTokenPayload = {};\n      const config2 = {\n        broadcast,\n        presence: Object.assign(Object.assign({}, presence), {enabled: presence_enabled}),\n        postgres_changes,\n        private: isPrivate\n      };\n      if (this.socket.accessTokenValue) {\n        accessTokenPayload.access_token = this.socket.accessTokenValue;\n      }\n      this._onError((e) => callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, e));\n      this._onClose(() => callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CLOSED));\n      this.updateJoinPayload(Object.assign({config: config2}, accessTokenPayload));\n      this.joinedOnce = true;\n      this._rejoin(timeout);\n      this.joinPush.receive(\"ok\", async ({postgres_changes: postgres_changes2}) => {\n        var _a2;\n        this.socket.setAuth();\n        if (postgres_changes2 === void 0) {\n          callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.SUBSCRIBED);\n          return;\n        } else {\n          const clientPostgresBindings = this.bindings.postgres_changes;\n          const bindingsLen = (_a2 = clientPostgresBindings === null || clientPostgresBindings === void 0 ? void 0 : clientPostgresBindings.length) !== null && _a2 !== void 0 ? _a2 : 0;\n          const newPostgresBindings = [];\n          for (let i = 0; i < bindingsLen; i++) {\n            const clientPostgresBinding = clientPostgresBindings[i];\n            const {filter: {event, schema, table, filter}} = clientPostgresBinding;\n            const serverPostgresFilter = postgres_changes2 && postgres_changes2[i];\n            if (serverPostgresFilter && serverPostgresFilter.event === event && serverPostgresFilter.schema === schema && serverPostgresFilter.table === table && serverPostgresFilter.filter === filter) {\n              newPostgresBindings.push(Object.assign(Object.assign({}, clientPostgresBinding), {id: serverPostgresFilter.id}));\n            } else {\n              this.unsubscribe();\n              this.state = CHANNEL_STATES.errored;\n              callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, new Error(\"mismatch between server and client bindings for postgres changes\"));\n              return;\n            }\n          }\n          this.bindings.postgres_changes = newPostgresBindings;\n          callback && callback(REALTIME_SUBSCRIBE_STATES.SUBSCRIBED);\n          return;\n        }\n      }).receive(\"error\", (error) => {\n        this.state = CHANNEL_STATES.errored;\n        callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, new Error(JSON.stringify(Object.values(error).join(\", \") || \"error\")));\n        return;\n      }).receive(\"timeout\", () => {\n        callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.TIMED_OUT);\n        return;\n      });\n    }\n    return this;\n  }\n  presenceState() {\n    return this.presence.state;\n  }\n  async track(payload, opts = {}) {\n    return await this.send({\n      type: \"presence\",\n      event: \"track\",\n      payload\n    }, opts.timeout || this.timeout);\n  }\n  async untrack(opts = {}) {\n    return await this.send({\n      type: \"presence\",\n      event: \"untrack\"\n    }, opts);\n  }\n  on(type, filter, callback) {\n    if (this.state === CHANNEL_STATES.joined && type === REALTIME_LISTEN_TYPES.PRESENCE) {\n      this.socket.log(\"channel\", `resubscribe to ${this.topic} due to change in presence callbacks on joined channel`);\n      this.unsubscribe().then(() => this.subscribe());\n    }\n    return this._on(type, filter, callback);\n  }\n  async send(args, opts = {}) {\n    var _a, _b;\n    if (!this._canPush() && args.type === \"broadcast\") {\n      const {event, payload: endpoint_payload} = args;\n      const authorization = this.socket.accessTokenValue ? `Bearer ${this.socket.accessTokenValue}` : \"\";\n      const options = {\n        method: \"POST\",\n        headers: {\n          Authorization: authorization,\n          apikey: this.socket.apiKey ? this.socket.apiKey : \"\",\n          \"Content-Type\": \"application/json\"\n        },\n        body: JSON.stringify({\n          messages: [\n            {\n              topic: this.subTopic,\n              event,\n              payload: endpoint_payload,\n              private: this.private\n            }\n          ]\n        })\n      };\n      try {\n        const response = await this._fetchWithTimeout(this.broadcastEndpointURL, options, (_a = opts.timeout) !== null && _a !== void 0 ? _a : this.timeout);\n        await ((_b = response.body) === null || _b === void 0 ? void 0 : _b.cancel());\n        return response.ok ? \"ok\" : \"error\";\n      } catch (error) {\n        if (error.name === \"AbortError\") {\n          return \"timed out\";\n        } else {\n          return \"error\";\n        }\n      }\n    } else {\n      return new Promise((resolve) => {\n        var _a2, _b2, _c;\n        const push = this._push(args.type, args, opts.timeout || this.timeout);\n        if (args.type === \"broadcast\" && !((_c = (_b2 = (_a2 = this.params) === null || _a2 === void 0 ? void 0 : _a2.config) === null || _b2 === void 0 ? void 0 : _b2.broadcast) === null || _c === void 0 ? void 0 : _c.ack)) {\n          resolve(\"ok\");\n        }\n        push.receive(\"ok\", () => resolve(\"ok\"));\n        push.receive(\"error\", () => resolve(\"error\"));\n        push.receive(\"timeout\", () => resolve(\"timed out\"));\n      });\n    }\n  }\n  updateJoinPayload(payload) {\n    this.joinPush.updatePayload(payload);\n  }\n  unsubscribe(timeout = this.timeout) {\n    this.state = CHANNEL_STATES.leaving;\n    const onClose = () => {\n      this.socket.log(\"channel\", `leave ${this.topic}`);\n      this._trigger(CHANNEL_EVENTS.close, \"leave\", this._joinRef());\n    };\n    this.joinPush.destroy();\n    let leavePush = null;\n    return new Promise((resolve) => {\n      leavePush = new Push(this, CHANNEL_EVENTS.leave, {}, timeout);\n      leavePush.receive(\"ok\", () => {\n        onClose();\n        resolve(\"ok\");\n      }).receive(\"timeout\", () => {\n        onClose();\n        resolve(\"timed out\");\n      }).receive(\"error\", () => {\n        resolve(\"error\");\n      });\n      leavePush.send();\n      if (!this._canPush()) {\n        leavePush.trigger(\"ok\", {});\n      }\n    }).finally(() => {\n      leavePush === null || leavePush === void 0 ? void 0 : leavePush.destroy();\n    });\n  }\n  teardown() {\n    this.pushBuffer.forEach((push) => push.destroy());\n    this.pushBuffer = [];\n    this.rejoinTimer.reset();\n    this.joinPush.destroy();\n    this.state = CHANNEL_STATES.closed;\n    this.bindings = {};\n  }\n  async _fetchWithTimeout(url, options, timeout) {\n    const controller = new AbortController();\n    const id = setTimeout(() => controller.abort(), timeout);\n    const response = await this.socket.fetch(url, Object.assign(Object.assign({}, options), {signal: controller.signal}));\n    clearTimeout(id);\n    return response;\n  }\n  _push(event, payload, timeout = this.timeout) {\n    if (!this.joinedOnce) {\n      throw `tried to push '${event}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;\n    }\n    let pushEvent = new Push(this, event, payload, timeout);\n    if (this._canPush()) {\n      pushEvent.send();\n    } else {\n      this._addToPushBuffer(pushEvent);\n    }\n    return pushEvent;\n  }\n  _addToPushBuffer(pushEvent) {\n    pushEvent.startTimeout();\n    this.pushBuffer.push(pushEvent);\n    if (this.pushBuffer.length > MAX_PUSH_BUFFER_SIZE) {\n      const removedPush = this.pushBuffer.shift();\n      if (removedPush) {\n        removedPush.destroy();\n        this.socket.log(\"channel\", `discarded push due to buffer overflow: ${removedPush.event}`, removedPush.payload);\n      }\n    }\n  }\n  _onMessage(_event, payload, _ref) {\n    return payload;\n  }\n  _isMember(topic) {\n    return this.topic === topic;\n  }\n  _joinRef() {\n    return this.joinPush.ref;\n  }\n  _trigger(type, payload, ref) {\n    var _a, _b;\n    const typeLower = type.toLocaleLowerCase();\n    const {close, error, leave, join} = CHANNEL_EVENTS;\n    const events = [close, error, leave, join];\n    if (ref && events.indexOf(typeLower) >= 0 && ref !== this._joinRef()) {\n      return;\n    }\n    let handledPayload = this._onMessage(typeLower, payload, ref);\n    if (payload && !handledPayload) {\n      throw \"channel onMessage callbacks must return the payload, modified or unmodified\";\n    }\n    if ([\"insert\", \"update\", \"delete\"].includes(typeLower)) {\n      (_a = this.bindings.postgres_changes) === null || _a === void 0 ? void 0 : _a.filter((bind) => {\n        var _a2, _b2, _c;\n        return ((_a2 = bind.filter) === null || _a2 === void 0 ? void 0 : _a2.event) === \"*\" || ((_c = (_b2 = bind.filter) === null || _b2 === void 0 ? void 0 : _b2.event) === null || _c === void 0 ? void 0 : _c.toLocaleLowerCase()) === typeLower;\n      }).map((bind) => bind.callback(handledPayload, ref));\n    } else {\n      (_b = this.bindings[typeLower]) === null || _b === void 0 ? void 0 : _b.filter((bind) => {\n        var _a2, _b2, _c, _d, _e, _f;\n        if ([\"broadcast\", \"presence\", \"postgres_changes\"].includes(typeLower)) {\n          if (\"id\" in bind) {\n            const bindId = bind.id;\n            const bindEvent = (_a2 = bind.filter) === null || _a2 === void 0 ? void 0 : _a2.event;\n            return bindId && ((_b2 = payload.ids) === null || _b2 === void 0 ? void 0 : _b2.includes(bindId)) && (bindEvent === \"*\" || (bindEvent === null || bindEvent === void 0 ? void 0 : bindEvent.toLocaleLowerCase()) === ((_c = payload.data) === null || _c === void 0 ? void 0 : _c.type.toLocaleLowerCase()));\n          } else {\n            const bindEvent = (_e = (_d = bind === null || bind === void 0 ? void 0 : bind.filter) === null || _d === void 0 ? void 0 : _d.event) === null || _e === void 0 ? void 0 : _e.toLocaleLowerCase();\n            return bindEvent === \"*\" || bindEvent === ((_f = payload === null || payload === void 0 ? void 0 : payload.event) === null || _f === void 0 ? void 0 : _f.toLocaleLowerCase());\n          }\n        } else {\n          return bind.type.toLocaleLowerCase() === typeLower;\n        }\n      }).map((bind) => {\n        if (typeof handledPayload === \"object\" && \"ids\" in handledPayload) {\n          const postgresChanges = handledPayload.data;\n          const {schema, table, commit_timestamp, type: type2, errors} = postgresChanges;\n          const enrichedPayload = {\n            schema,\n            table,\n            commit_timestamp,\n            eventType: type2,\n            new: {},\n            old: {},\n            errors\n          };\n          handledPayload = Object.assign(Object.assign({}, enrichedPayload), this._getPayloadRecords(postgresChanges));\n        }\n        bind.callback(handledPayload, ref);\n      });\n    }\n  }\n  _isClosed() {\n    return this.state === CHANNEL_STATES.closed;\n  }\n  _isJoined() {\n    return this.state === CHANNEL_STATES.joined;\n  }\n  _isJoining() {\n    return this.state === CHANNEL_STATES.joining;\n  }\n  _isLeaving() {\n    return this.state === CHANNEL_STATES.leaving;\n  }\n  _replyEventName(ref) {\n    return `chan_reply_${ref}`;\n  }\n  _on(type, filter, callback) {\n    const typeLower = type.toLocaleLowerCase();\n    const binding2 = {\n      type: typeLower,\n      filter,\n      callback\n    };\n    if (this.bindings[typeLower]) {\n      this.bindings[typeLower].push(binding2);\n    } else {\n      this.bindings[typeLower] = [binding2];\n    }\n    return this;\n  }\n  _off(type, filter) {\n    const typeLower = type.toLocaleLowerCase();\n    if (this.bindings[typeLower]) {\n      this.bindings[typeLower] = this.bindings[typeLower].filter((bind) => {\n        var _a;\n        return !(((_a = bind.type) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === typeLower && RealtimeChannel.isEqual(bind.filter, filter));\n      });\n    }\n    return this;\n  }\n  static isEqual(obj1, obj2) {\n    if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n      return false;\n    }\n    for (const k in obj1) {\n      if (obj1[k] !== obj2[k]) {\n        return false;\n      }\n    }\n    return true;\n  }\n  _rejoinUntilConnected() {\n    this.rejoinTimer.scheduleTimeout();\n    if (this.socket.isConnected()) {\n      this._rejoin();\n    }\n  }\n  _onClose(callback) {\n    this._on(CHANNEL_EVENTS.close, {}, callback);\n  }\n  _onError(callback) {\n    this._on(CHANNEL_EVENTS.error, {}, (reason) => callback(reason));\n  }\n  _canPush() {\n    return this.socket.isConnected() && this._isJoined();\n  }\n  _rejoin(timeout = this.timeout) {\n    if (this._isLeaving()) {\n      return;\n    }\n    this.socket._leaveOpenTopic(this.topic);\n    this.state = CHANNEL_STATES.joining;\n    this.joinPush.resend(timeout);\n  }\n  _getPayloadRecords(payload) {\n    const records = {\n      new: {},\n      old: {}\n    };\n    if (payload.type === \"INSERT\" || payload.type === \"UPDATE\") {\n      records.new = convertChangeData(payload.columns, payload.record);\n    }\n    if (payload.type === \"UPDATE\" || payload.type === \"DELETE\") {\n      records.old = convertChangeData(payload.columns, payload.old_record);\n    }\n    return records;\n  }\n}\nconst noop$2 = () => {\n};\nconst CONNECTION_TIMEOUTS = {\n  HEARTBEAT_INTERVAL: 25e3,\n  RECONNECT_DELAY: 10,\n  HEARTBEAT_TIMEOUT_FALLBACK: 100\n};\nconst RECONNECT_INTERVALS = [1e3, 2e3, 5e3, 1e4];\nconst DEFAULT_RECONNECT_FALLBACK = 1e4;\nconst WORKER_SCRIPT = `\n  addEventListener(\"message\", (e) => {\n    if (e.data.event === \"start\") {\n      setInterval(() => postMessage({ event: \"keepAlive\" }), e.data.interval);\n    }\n  });`;\nclass RealtimeClient {\n  constructor(endPoint, options) {\n    var _a;\n    this.accessTokenValue = null;\n    this.apiKey = null;\n    this.channels = new Array();\n    this.endPoint = \"\";\n    this.httpEndpoint = \"\";\n    this.headers = {};\n    this.params = {};\n    this.timeout = DEFAULT_TIMEOUT;\n    this.transport = null;\n    this.heartbeatIntervalMs = CONNECTION_TIMEOUTS.HEARTBEAT_INTERVAL;\n    this.heartbeatTimer = void 0;\n    this.pendingHeartbeatRef = null;\n    this.heartbeatCallback = noop$2;\n    this.ref = 0;\n    this.reconnectTimer = null;\n    this.logger = noop$2;\n    this.conn = null;\n    this.sendBuffer = [];\n    this.serializer = new Serializer();\n    this.stateChangeCallbacks = {\n      open: [],\n      close: [],\n      error: [],\n      message: []\n    };\n    this.accessToken = null;\n    this._connectionState = \"disconnected\";\n    this._wasManualDisconnect = false;\n    this._authPromise = null;\n    this._resolveFetch = (customFetch) => {\n      let _fetch;\n      if (customFetch) {\n        _fetch = customFetch;\n      } else if (typeof fetch === \"undefined\") {\n        _fetch = (...args) => import(\"/-/@supabase/node-fetch@v2.6.13-xnkSI801bGLE4chIflSf/dist=es2019,mode=imports/optimized/@supabase/node-fetch.js\").then(({default: fetch2}) => fetch2(...args)).catch((error) => {\n          throw new Error(`Failed to load @supabase/node-fetch: ${error.message}. This is required for HTTP requests in Node.js environments without native fetch.`);\n        });\n      } else {\n        _fetch = fetch;\n      }\n      return (...args) => _fetch(...args);\n    };\n    if (!((_a = options === null || options === void 0 ? void 0 : options.params) === null || _a === void 0 ? void 0 : _a.apikey)) {\n      throw new Error(\"API key is required to connect to Realtime\");\n    }\n    this.apiKey = options.params.apikey;\n    this.endPoint = `${endPoint}/${TRANSPORTS.websocket}`;\n    this.httpEndpoint = httpEndpointURL(endPoint);\n    this._initializeOptions(options);\n    this._setupReconnectionTimer();\n    this.fetch = this._resolveFetch(options === null || options === void 0 ? void 0 : options.fetch);\n  }\n  connect() {\n    if (this.isConnecting() || this.isDisconnecting() || this.conn !== null && this.isConnected()) {\n      return;\n    }\n    this._setConnectionState(\"connecting\");\n    this._setAuthSafely(\"connect\");\n    if (this.transport) {\n      this.conn = new this.transport(this.endpointURL());\n    } else {\n      try {\n        this.conn = WebSocketFactory.createWebSocket(this.endpointURL());\n      } catch (error) {\n        this._setConnectionState(\"disconnected\");\n        const errorMessage = error.message;\n        if (errorMessage.includes(\"Node.js\")) {\n          throw new Error(`${errorMessage}\n\nTo use Realtime in Node.js, you need to provide a WebSocket implementation:\n\nOption 1: Use Node.js 22+ which has native WebSocket support\nOption 2: Install and provide the \"ws\" package:\n\n  npm install ws\n\n  import ws from \"ws\"\n  const client = new RealtimeClient(url, {\n    ...options,\n    transport: ws\n  })`);\n        }\n        throw new Error(`WebSocket not available: ${errorMessage}`);\n      }\n    }\n    this._setupConnectionHandlers();\n  }\n  endpointURL() {\n    return this._appendParams(this.endPoint, Object.assign({}, this.params, {vsn: VSN}));\n  }\n  disconnect(code, reason) {\n    if (this.isDisconnecting()) {\n      return;\n    }\n    this._setConnectionState(\"disconnecting\", true);\n    if (this.conn) {\n      const fallbackTimer = setTimeout(() => {\n        this._setConnectionState(\"disconnected\");\n      }, 100);\n      this.conn.onclose = () => {\n        clearTimeout(fallbackTimer);\n        this._setConnectionState(\"disconnected\");\n      };\n      if (code) {\n        this.conn.close(code, reason !== null && reason !== void 0 ? reason : \"\");\n      } else {\n        this.conn.close();\n      }\n      this._teardownConnection();\n    } else {\n      this._setConnectionState(\"disconnected\");\n    }\n  }\n  getChannels() {\n    return this.channels;\n  }\n  async removeChannel(channel) {\n    const status = await channel.unsubscribe();\n    if (this.channels.length === 0) {\n      this.disconnect();\n    }\n    return status;\n  }\n  async removeAllChannels() {\n    const values_1 = await Promise.all(this.channels.map((channel) => channel.unsubscribe()));\n    this.channels = [];\n    this.disconnect();\n    return values_1;\n  }\n  log(kind, msg, data) {\n    this.logger(kind, msg, data);\n  }\n  connectionState() {\n    switch (this.conn && this.conn.readyState) {\n      case SOCKET_STATES.connecting:\n        return CONNECTION_STATE.Connecting;\n      case SOCKET_STATES.open:\n        return CONNECTION_STATE.Open;\n      case SOCKET_STATES.closing:\n        return CONNECTION_STATE.Closing;\n      default:\n        return CONNECTION_STATE.Closed;\n    }\n  }\n  isConnected() {\n    return this.connectionState() === CONNECTION_STATE.Open;\n  }\n  isConnecting() {\n    return this._connectionState === \"connecting\";\n  }\n  isDisconnecting() {\n    return this._connectionState === \"disconnecting\";\n  }\n  channel(topic, params = {config: {}}) {\n    const realtimeTopic = `realtime:${topic}`;\n    const exists = this.getChannels().find((c) => c.topic === realtimeTopic);\n    if (!exists) {\n      const chan = new RealtimeChannel(`realtime:${topic}`, params, this);\n      this.channels.push(chan);\n      return chan;\n    } else {\n      return exists;\n    }\n  }\n  push(data) {\n    const {topic, event, payload, ref} = data;\n    const callback = () => {\n      this.encode(data, (result) => {\n        var _a;\n        (_a = this.conn) === null || _a === void 0 ? void 0 : _a.send(result);\n      });\n    };\n    this.log(\"push\", `${topic} ${event} (${ref})`, payload);\n    if (this.isConnected()) {\n      callback();\n    } else {\n      this.sendBuffer.push(callback);\n    }\n  }\n  async setAuth(token = null) {\n    this._authPromise = this._performAuth(token);\n    try {\n      await this._authPromise;\n    } finally {\n      this._authPromise = null;\n    }\n  }\n  async sendHeartbeat() {\n    var _a;\n    if (!this.isConnected()) {\n      try {\n        this.heartbeatCallback(\"disconnected\");\n      } catch (e) {\n        this.log(\"error\", \"error in heartbeat callback\", e);\n      }\n      return;\n    }\n    if (this.pendingHeartbeatRef) {\n      this.pendingHeartbeatRef = null;\n      this.log(\"transport\", \"heartbeat timeout. Attempting to re-establish connection\");\n      try {\n        this.heartbeatCallback(\"timeout\");\n      } catch (e) {\n        this.log(\"error\", \"error in heartbeat callback\", e);\n      }\n      this._wasManualDisconnect = false;\n      (_a = this.conn) === null || _a === void 0 ? void 0 : _a.close(WS_CLOSE_NORMAL, \"heartbeat timeout\");\n      setTimeout(() => {\n        var _a2;\n        if (!this.isConnected()) {\n          (_a2 = this.reconnectTimer) === null || _a2 === void 0 ? void 0 : _a2.scheduleTimeout();\n        }\n      }, CONNECTION_TIMEOUTS.HEARTBEAT_TIMEOUT_FALLBACK);\n      return;\n    }\n    this.pendingHeartbeatRef = this._makeRef();\n    this.push({\n      topic: \"phoenix\",\n      event: \"heartbeat\",\n      payload: {},\n      ref: this.pendingHeartbeatRef\n    });\n    try {\n      this.heartbeatCallback(\"sent\");\n    } catch (e) {\n      this.log(\"error\", \"error in heartbeat callback\", e);\n    }\n    this._setAuthSafely(\"heartbeat\");\n  }\n  onHeartbeat(callback) {\n    this.heartbeatCallback = callback;\n  }\n  flushSendBuffer() {\n    if (this.isConnected() && this.sendBuffer.length > 0) {\n      this.sendBuffer.forEach((callback) => callback());\n      this.sendBuffer = [];\n    }\n  }\n  _makeRef() {\n    let newRef = this.ref + 1;\n    if (newRef === this.ref) {\n      this.ref = 0;\n    } else {\n      this.ref = newRef;\n    }\n    return this.ref.toString();\n  }\n  _leaveOpenTopic(topic) {\n    let dupChannel = this.channels.find((c) => c.topic === topic && (c._isJoined() || c._isJoining()));\n    if (dupChannel) {\n      this.log(\"transport\", `leaving duplicate topic \"${topic}\"`);\n      dupChannel.unsubscribe();\n    }\n  }\n  _remove(channel) {\n    this.channels = this.channels.filter((c) => c.topic !== channel.topic);\n  }\n  _onConnMessage(rawMessage) {\n    this.decode(rawMessage.data, (msg) => {\n      if (msg.topic === \"phoenix\" && msg.event === \"phx_reply\") {\n        try {\n          this.heartbeatCallback(msg.payload.status === \"ok\" ? \"ok\" : \"error\");\n        } catch (e) {\n          this.log(\"error\", \"error in heartbeat callback\", e);\n        }\n      }\n      if (msg.ref && msg.ref === this.pendingHeartbeatRef) {\n        this.pendingHeartbeatRef = null;\n      }\n      const {topic, event, payload, ref} = msg;\n      const refString = ref ? `(${ref})` : \"\";\n      const status = payload.status || \"\";\n      this.log(\"receive\", `${status} ${topic} ${event} ${refString}`.trim(), payload);\n      this.channels.filter((channel) => channel._isMember(topic)).forEach((channel) => channel._trigger(event, payload, ref));\n      this._triggerStateCallbacks(\"message\", msg);\n    });\n  }\n  _clearTimer(timer) {\n    var _a;\n    if (timer === \"heartbeat\" && this.heartbeatTimer) {\n      clearInterval(this.heartbeatTimer);\n      this.heartbeatTimer = void 0;\n    } else if (timer === \"reconnect\") {\n      (_a = this.reconnectTimer) === null || _a === void 0 ? void 0 : _a.reset();\n    }\n  }\n  _clearAllTimers() {\n    this._clearTimer(\"heartbeat\");\n    this._clearTimer(\"reconnect\");\n  }\n  _setupConnectionHandlers() {\n    if (!this.conn)\n      return;\n    if (\"binaryType\" in this.conn) {\n      this.conn.binaryType = \"arraybuffer\";\n    }\n    this.conn.onopen = () => this._onConnOpen();\n    this.conn.onerror = (error) => this._onConnError(error);\n    this.conn.onmessage = (event) => this._onConnMessage(event);\n    this.conn.onclose = (event) => this._onConnClose(event);\n  }\n  _teardownConnection() {\n    if (this.conn) {\n      this.conn.onopen = null;\n      this.conn.onerror = null;\n      this.conn.onmessage = null;\n      this.conn.onclose = null;\n      this.conn = null;\n    }\n    this._clearAllTimers();\n    this.channels.forEach((channel) => channel.teardown());\n  }\n  _onConnOpen() {\n    this._setConnectionState(\"connected\");\n    this.log(\"transport\", `connected to ${this.endpointURL()}`);\n    this.flushSendBuffer();\n    this._clearTimer(\"reconnect\");\n    if (!this.worker) {\n      this._startHeartbeat();\n    } else {\n      if (!this.workerRef) {\n        this._startWorkerHeartbeat();\n      }\n    }\n    this._triggerStateCallbacks(\"open\");\n  }\n  _startHeartbeat() {\n    this.heartbeatTimer && clearInterval(this.heartbeatTimer);\n    this.heartbeatTimer = setInterval(() => this.sendHeartbeat(), this.heartbeatIntervalMs);\n  }\n  _startWorkerHeartbeat() {\n    if (this.workerUrl) {\n      this.log(\"worker\", `starting worker for from ${this.workerUrl}`);\n    } else {\n      this.log(\"worker\", `starting default worker`);\n    }\n    const objectUrl = this._workerObjectUrl(this.workerUrl);\n    this.workerRef = new Worker(objectUrl);\n    this.workerRef.onerror = (error) => {\n      this.log(\"worker\", \"worker error\", error.message);\n      this.workerRef.terminate();\n    };\n    this.workerRef.onmessage = (event) => {\n      if (event.data.event === \"keepAlive\") {\n        this.sendHeartbeat();\n      }\n    };\n    this.workerRef.postMessage({\n      event: \"start\",\n      interval: this.heartbeatIntervalMs\n    });\n  }\n  _onConnClose(event) {\n    var _a;\n    this._setConnectionState(\"disconnected\");\n    this.log(\"transport\", \"close\", event);\n    this._triggerChanError();\n    this._clearTimer(\"heartbeat\");\n    if (!this._wasManualDisconnect) {\n      (_a = this.reconnectTimer) === null || _a === void 0 ? void 0 : _a.scheduleTimeout();\n    }\n    this._triggerStateCallbacks(\"close\", event);\n  }\n  _onConnError(error) {\n    this._setConnectionState(\"disconnected\");\n    this.log(\"transport\", `${error}`);\n    this._triggerChanError();\n    this._triggerStateCallbacks(\"error\", error);\n  }\n  _triggerChanError() {\n    this.channels.forEach((channel) => channel._trigger(CHANNEL_EVENTS.error));\n  }\n  _appendParams(url, params) {\n    if (Object.keys(params).length === 0) {\n      return url;\n    }\n    const prefix = url.match(/\\?/) ? \"&\" : \"?\";\n    const query = new URLSearchParams(params);\n    return `${url}${prefix}${query}`;\n  }\n  _workerObjectUrl(url) {\n    let result_url;\n    if (url) {\n      result_url = url;\n    } else {\n      const blob = new Blob([WORKER_SCRIPT], {type: \"application/javascript\"});\n      result_url = URL.createObjectURL(blob);\n    }\n    return result_url;\n  }\n  _setConnectionState(state, manual = false) {\n    this._connectionState = state;\n    if (state === \"connecting\") {\n      this._wasManualDisconnect = false;\n    } else if (state === \"disconnecting\") {\n      this._wasManualDisconnect = manual;\n    }\n  }\n  async _performAuth(token = null) {\n    let tokenToSend;\n    if (token) {\n      tokenToSend = token;\n    } else if (this.accessToken) {\n      tokenToSend = await this.accessToken();\n    } else {\n      tokenToSend = this.accessTokenValue;\n    }\n    if (this.accessTokenValue != tokenToSend) {\n      this.accessTokenValue = tokenToSend;\n      this.channels.forEach((channel) => {\n        const payload = {\n          access_token: tokenToSend,\n          version: DEFAULT_VERSION\n        };\n        tokenToSend && channel.updateJoinPayload(payload);\n        if (channel.joinedOnce && channel._isJoined()) {\n          channel._push(CHANNEL_EVENTS.access_token, {\n            access_token: tokenToSend\n          });\n        }\n      });\n    }\n  }\n  async _waitForAuthIfNeeded() {\n    if (this._authPromise) {\n      await this._authPromise;\n    }\n  }\n  _setAuthSafely(context = \"general\") {\n    this.setAuth().catch((e) => {\n      this.log(\"error\", `error setting auth in ${context}`, e);\n    });\n  }\n  _triggerStateCallbacks(event, data) {\n    try {\n      this.stateChangeCallbacks[event].forEach((callback) => {\n        try {\n          callback(data);\n        } catch (e) {\n          this.log(\"error\", `error in ${event} callback`, e);\n        }\n      });\n    } catch (e) {\n      this.log(\"error\", `error triggering ${event} callbacks`, e);\n    }\n  }\n  _setupReconnectionTimer() {\n    this.reconnectTimer = new Timer(async () => {\n      setTimeout(async () => {\n        await this._waitForAuthIfNeeded();\n        if (!this.isConnected()) {\n          this.connect();\n        }\n      }, CONNECTION_TIMEOUTS.RECONNECT_DELAY);\n    }, this.reconnectAfterMs);\n  }\n  _initializeOptions(options) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n    this.transport = (_a = options === null || options === void 0 ? void 0 : options.transport) !== null && _a !== void 0 ? _a : null;\n    this.timeout = (_b = options === null || options === void 0 ? void 0 : options.timeout) !== null && _b !== void 0 ? _b : DEFAULT_TIMEOUT;\n    this.heartbeatIntervalMs = (_c = options === null || options === void 0 ? void 0 : options.heartbeatIntervalMs) !== null && _c !== void 0 ? _c : CONNECTION_TIMEOUTS.HEARTBEAT_INTERVAL;\n    this.worker = (_d = options === null || options === void 0 ? void 0 : options.worker) !== null && _d !== void 0 ? _d : false;\n    this.accessToken = (_e = options === null || options === void 0 ? void 0 : options.accessToken) !== null && _e !== void 0 ? _e : null;\n    this.heartbeatCallback = (_f = options === null || options === void 0 ? void 0 : options.heartbeatCallback) !== null && _f !== void 0 ? _f : noop$2;\n    if (options === null || options === void 0 ? void 0 : options.params)\n      this.params = options.params;\n    if (options === null || options === void 0 ? void 0 : options.logger)\n      this.logger = options.logger;\n    if ((options === null || options === void 0 ? void 0 : options.logLevel) || (options === null || options === void 0 ? void 0 : options.log_level)) {\n      this.logLevel = options.logLevel || options.log_level;\n      this.params = Object.assign(Object.assign({}, this.params), {log_level: this.logLevel});\n    }\n    this.reconnectAfterMs = (_g = options === null || options === void 0 ? void 0 : options.reconnectAfterMs) !== null && _g !== void 0 ? _g : (tries) => {\n      return RECONNECT_INTERVALS[tries - 1] || DEFAULT_RECONNECT_FALLBACK;\n    };\n    this.encode = (_h = options === null || options === void 0 ? void 0 : options.encode) !== null && _h !== void 0 ? _h : (payload, callback) => {\n      return callback(JSON.stringify(payload));\n    };\n    this.decode = (_j = options === null || options === void 0 ? void 0 : options.decode) !== null && _j !== void 0 ? _j : this.serializer.decode.bind(this.serializer);\n    if (this.worker) {\n      if (typeof window !== \"undefined\" && !window.Worker) {\n        throw new Error(\"Web Worker is not supported\");\n      }\n      this.workerUrl = options === null || options === void 0 ? void 0 : options.workerUrl;\n    }\n  }\n}\nexport {REALTIME_CHANNEL_STATES, REALTIME_LISTEN_TYPES, REALTIME_POSTGRES_CHANGES_LISTEN_EVENT, REALTIME_PRESENCE_LISTEN_EVENTS, REALTIME_SUBSCRIBE_STATES, RealtimeChannel, RealtimeClient, RealtimePresence, WebSocketFactory};\nexport default null;\n", "var global$1 = typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {};\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\nvar inited = false;\nfunction init() {\n  inited = true;\n  var code = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n  for (var i = 0, len = code.length; i < len; ++i) {\n    lookup[i] = code[i];\n    revLookup[code.charCodeAt(i)] = i;\n  }\n  revLookup[\"-\".charCodeAt(0)] = 62;\n  revLookup[\"_\".charCodeAt(0)] = 63;\n}\nfunction toByteArray(b64) {\n  if (!inited) {\n    init();\n  }\n  var i, j, l, tmp, placeHolders, arr;\n  var len = b64.length;\n  if (len % 4 > 0) {\n    throw new Error(\"Invalid string. Length must be a multiple of 4\");\n  }\n  placeHolders = b64[len - 2] === \"=\" ? 2 : b64[len - 1] === \"=\" ? 1 : 0;\n  arr = new Arr(len * 3 / 4 - placeHolders);\n  l = placeHolders > 0 ? len - 4 : len;\n  var L = 0;\n  for (i = 0, j = 0; i < l; i += 4, j += 3) {\n    tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n    arr[L++] = tmp >> 16 & 255;\n    arr[L++] = tmp >> 8 & 255;\n    arr[L++] = tmp & 255;\n  }\n  if (placeHolders === 2) {\n    tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n    arr[L++] = tmp & 255;\n  } else if (placeHolders === 1) {\n    tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n    arr[L++] = tmp >> 8 & 255;\n    arr[L++] = tmp & 255;\n  }\n  return arr;\n}\nfunction tripletToBase64(num) {\n  return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n}\nfunction encodeChunk(uint8, start, end) {\n  var tmp;\n  var output = [];\n  for (var i = start; i < end; i += 3) {\n    tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + uint8[i + 2];\n    output.push(tripletToBase64(tmp));\n  }\n  return output.join(\"\");\n}\nfunction fromByteArray(uint8) {\n  if (!inited) {\n    init();\n  }\n  var tmp;\n  var len = uint8.length;\n  var extraBytes = len % 3;\n  var output = \"\";\n  var parts = [];\n  var maxChunkLength = 16383;\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n  }\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1];\n    output += lookup[tmp >> 2];\n    output += lookup[tmp << 4 & 63];\n    output += \"==\";\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n    output += lookup[tmp >> 10];\n    output += lookup[tmp >> 4 & 63];\n    output += lookup[tmp << 2 & 63];\n    output += \"=\";\n  }\n  parts.push(output);\n  return parts.join(\"\");\n}\nfunction read(buffer, offset, isLE, mLen, nBytes) {\n  var e, m;\n  var eLen = nBytes * 8 - mLen - 1;\n  var eMax = (1 << eLen) - 1;\n  var eBias = eMax >> 1;\n  var nBits = -7;\n  var i = isLE ? nBytes - 1 : 0;\n  var d = isLE ? -1 : 1;\n  var s = buffer[offset + i];\n  i += d;\n  e = s & (1 << -nBits) - 1;\n  s >>= -nBits;\n  nBits += eLen;\n  for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n  }\n  m = e & (1 << -nBits) - 1;\n  e >>= -nBits;\n  nBits += mLen;\n  for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n  }\n  if (e === 0) {\n    e = 1 - eBias;\n  } else if (e === eMax) {\n    return m ? NaN : (s ? -1 : 1) * Infinity;\n  } else {\n    m = m + Math.pow(2, mLen);\n    e = e - eBias;\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n}\nfunction write(buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c;\n  var eLen = nBytes * 8 - mLen - 1;\n  var eMax = (1 << eLen) - 1;\n  var eBias = eMax >> 1;\n  var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n  var i = isLE ? 0 : nBytes - 1;\n  var d = isLE ? 1 : -1;\n  var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n  value = Math.abs(value);\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0;\n    e = eMax;\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2);\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--;\n      c *= 2;\n    }\n    if (e + eBias >= 1) {\n      value += rt / c;\n    } else {\n      value += rt * Math.pow(2, 1 - eBias);\n    }\n    if (value * c >= 2) {\n      e++;\n      c /= 2;\n    }\n    if (e + eBias >= eMax) {\n      m = 0;\n      e = eMax;\n    } else if (e + eBias >= 1) {\n      m = (value * c - 1) * Math.pow(2, mLen);\n      e = e + eBias;\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n      e = 0;\n    }\n  }\n  for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n  }\n  e = e << mLen | m;\n  eLen += mLen;\n  for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n  }\n  buffer[offset + i - d] |= s * 128;\n}\nvar toString = {}.toString;\nvar isArray = Array.isArray || function(arr) {\n  return toString.call(arr) == \"[object Array]\";\n};\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license  MIT\n */\nvar INSPECT_MAX_BYTES = 50;\nBuffer.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== void 0 ? global$1.TYPED_ARRAY_SUPPORT : true;\nfunction kMaxLength() {\n  return Buffer.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823;\n}\nfunction createBuffer(that, length) {\n  if (kMaxLength() < length) {\n    throw new RangeError(\"Invalid typed array length\");\n  }\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    that = new Uint8Array(length);\n    that.__proto__ = Buffer.prototype;\n  } else {\n    if (that === null) {\n      that = new Buffer(length);\n    }\n    that.length = length;\n  }\n  return that;\n}\nfunction Buffer(arg, encodingOrOffset, length) {\n  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n    return new Buffer(arg, encodingOrOffset, length);\n  }\n  if (typeof arg === \"number\") {\n    if (typeof encodingOrOffset === \"string\") {\n      throw new Error(\"If encoding is specified then the first argument must be a string\");\n    }\n    return allocUnsafe(this, arg);\n  }\n  return from(this, arg, encodingOrOffset, length);\n}\nBuffer.poolSize = 8192;\nBuffer._augment = function(arr) {\n  arr.__proto__ = Buffer.prototype;\n  return arr;\n};\nfunction from(that, value, encodingOrOffset, length) {\n  if (typeof value === \"number\") {\n    throw new TypeError('\"value\" argument must not be a number');\n  }\n  if (typeof ArrayBuffer !== \"undefined\" && value instanceof ArrayBuffer) {\n    return fromArrayBuffer(that, value, encodingOrOffset, length);\n  }\n  if (typeof value === \"string\") {\n    return fromString(that, value, encodingOrOffset);\n  }\n  return fromObject(that, value);\n}\nBuffer.from = function(value, encodingOrOffset, length) {\n  return from(null, value, encodingOrOffset, length);\n};\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n  Buffer.prototype.__proto__ = Uint8Array.prototype;\n  Buffer.__proto__ = Uint8Array;\n}\nfunction assertSize(size) {\n  if (typeof size !== \"number\") {\n    throw new TypeError('\"size\" argument must be a number');\n  } else if (size < 0) {\n    throw new RangeError('\"size\" argument must not be negative');\n  }\n}\nfunction alloc(that, size, fill2, encoding) {\n  assertSize(size);\n  if (size <= 0) {\n    return createBuffer(that, size);\n  }\n  if (fill2 !== void 0) {\n    return typeof encoding === \"string\" ? createBuffer(that, size).fill(fill2, encoding) : createBuffer(that, size).fill(fill2);\n  }\n  return createBuffer(that, size);\n}\nBuffer.alloc = function(size, fill2, encoding) {\n  return alloc(null, size, fill2, encoding);\n};\nfunction allocUnsafe(that, size) {\n  assertSize(size);\n  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n  if (!Buffer.TYPED_ARRAY_SUPPORT) {\n    for (var i = 0; i < size; ++i) {\n      that[i] = 0;\n    }\n  }\n  return that;\n}\nBuffer.allocUnsafe = function(size) {\n  return allocUnsafe(null, size);\n};\nBuffer.allocUnsafeSlow = function(size) {\n  return allocUnsafe(null, size);\n};\nfunction fromString(that, string, encoding) {\n  if (typeof encoding !== \"string\" || encoding === \"\") {\n    encoding = \"utf8\";\n  }\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('\"encoding\" must be a valid string encoding');\n  }\n  var length = byteLength(string, encoding) | 0;\n  that = createBuffer(that, length);\n  var actual = that.write(string, encoding);\n  if (actual !== length) {\n    that = that.slice(0, actual);\n  }\n  return that;\n}\nfunction fromArrayLike(that, array) {\n  var length = array.length < 0 ? 0 : checked(array.length) | 0;\n  that = createBuffer(that, length);\n  for (var i = 0; i < length; i += 1) {\n    that[i] = array[i] & 255;\n  }\n  return that;\n}\nfunction fromArrayBuffer(that, array, byteOffset, length) {\n  array.byteLength;\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError(\"'offset' is out of bounds\");\n  }\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError(\"'length' is out of bounds\");\n  }\n  if (byteOffset === void 0 && length === void 0) {\n    array = new Uint8Array(array);\n  } else if (length === void 0) {\n    array = new Uint8Array(array, byteOffset);\n  } else {\n    array = new Uint8Array(array, byteOffset, length);\n  }\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    that = array;\n    that.__proto__ = Buffer.prototype;\n  } else {\n    that = fromArrayLike(that, array);\n  }\n  return that;\n}\nfunction fromObject(that, obj) {\n  if (internalIsBuffer(obj)) {\n    var len = checked(obj.length) | 0;\n    that = createBuffer(that, len);\n    if (that.length === 0) {\n      return that;\n    }\n    obj.copy(that, 0, 0, len);\n    return that;\n  }\n  if (obj) {\n    if (typeof ArrayBuffer !== \"undefined\" && obj.buffer instanceof ArrayBuffer || \"length\" in obj) {\n      if (typeof obj.length !== \"number\" || isnan(obj.length)) {\n        return createBuffer(that, 0);\n      }\n      return fromArrayLike(that, obj);\n    }\n    if (obj.type === \"Buffer\" && isArray(obj.data)) {\n      return fromArrayLike(that, obj.data);\n    }\n  }\n  throw new TypeError(\"First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.\");\n}\nfunction checked(length) {\n  if (length >= kMaxLength()) {\n    throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\" + kMaxLength().toString(16) + \" bytes\");\n  }\n  return length | 0;\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer(b) {\n  return !!(b != null && b._isBuffer);\n}\nBuffer.compare = function compare(a, b) {\n  if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n    throw new TypeError(\"Arguments must be Buffers\");\n  }\n  if (a === b)\n    return 0;\n  var x = a.length;\n  var y = b.length;\n  for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i];\n      y = b[i];\n      break;\n    }\n  }\n  if (x < y)\n    return -1;\n  if (y < x)\n    return 1;\n  return 0;\n};\nBuffer.isEncoding = function isEncoding(encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case \"hex\":\n    case \"utf8\":\n    case \"utf-8\":\n    case \"ascii\":\n    case \"latin1\":\n    case \"binary\":\n    case \"base64\":\n    case \"ucs2\":\n    case \"ucs-2\":\n    case \"utf16le\":\n    case \"utf-16le\":\n      return true;\n    default:\n      return false;\n  }\n};\nBuffer.concat = function concat(list, length) {\n  if (!isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers');\n  }\n  if (list.length === 0) {\n    return Buffer.alloc(0);\n  }\n  var i;\n  if (length === void 0) {\n    length = 0;\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length;\n    }\n  }\n  var buffer = Buffer.allocUnsafe(length);\n  var pos = 0;\n  for (i = 0; i < list.length; ++i) {\n    var buf = list[i];\n    if (!internalIsBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers');\n    }\n    buf.copy(buffer, pos);\n    pos += buf.length;\n  }\n  return buffer;\n};\nfunction byteLength(string, encoding) {\n  if (internalIsBuffer(string)) {\n    return string.length;\n  }\n  if (typeof ArrayBuffer !== \"undefined\" && typeof ArrayBuffer.isView === \"function\" && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n    return string.byteLength;\n  }\n  if (typeof string !== \"string\") {\n    string = \"\" + string;\n  }\n  var len = string.length;\n  if (len === 0)\n    return 0;\n  var loweredCase = false;\n  for (; ; ) {\n    switch (encoding) {\n      case \"ascii\":\n      case \"latin1\":\n      case \"binary\":\n        return len;\n      case \"utf8\":\n      case \"utf-8\":\n      case void 0:\n        return utf8ToBytes(string).length;\n      case \"ucs2\":\n      case \"ucs-2\":\n      case \"utf16le\":\n      case \"utf-16le\":\n        return len * 2;\n      case \"hex\":\n        return len >>> 1;\n      case \"base64\":\n        return base64ToBytes(string).length;\n      default:\n        if (loweredCase)\n          return utf8ToBytes(string).length;\n        encoding = (\"\" + encoding).toLowerCase();\n        loweredCase = true;\n    }\n  }\n}\nBuffer.byteLength = byteLength;\nfunction slowToString(encoding, start, end) {\n  var loweredCase = false;\n  if (start === void 0 || start < 0) {\n    start = 0;\n  }\n  if (start > this.length) {\n    return \"\";\n  }\n  if (end === void 0 || end > this.length) {\n    end = this.length;\n  }\n  if (end <= 0) {\n    return \"\";\n  }\n  end >>>= 0;\n  start >>>= 0;\n  if (end <= start) {\n    return \"\";\n  }\n  if (!encoding)\n    encoding = \"utf8\";\n  while (true) {\n    switch (encoding) {\n      case \"hex\":\n        return hexSlice(this, start, end);\n      case \"utf8\":\n      case \"utf-8\":\n        return utf8Slice(this, start, end);\n      case \"ascii\":\n        return asciiSlice(this, start, end);\n      case \"latin1\":\n      case \"binary\":\n        return latin1Slice(this, start, end);\n      case \"base64\":\n        return base64Slice(this, start, end);\n      case \"ucs2\":\n      case \"ucs-2\":\n      case \"utf16le\":\n      case \"utf-16le\":\n        return utf16leSlice(this, start, end);\n      default:\n        if (loweredCase)\n          throw new TypeError(\"Unknown encoding: \" + encoding);\n        encoding = (encoding + \"\").toLowerCase();\n        loweredCase = true;\n    }\n  }\n}\nBuffer.prototype._isBuffer = true;\nfunction swap(b, n, m) {\n  var i = b[n];\n  b[n] = b[m];\n  b[m] = i;\n}\nBuffer.prototype.swap16 = function swap16() {\n  var len = this.length;\n  if (len % 2 !== 0) {\n    throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n  }\n  for (var i = 0; i < len; i += 2) {\n    swap(this, i, i + 1);\n  }\n  return this;\n};\nBuffer.prototype.swap32 = function swap32() {\n  var len = this.length;\n  if (len % 4 !== 0) {\n    throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n  }\n  for (var i = 0; i < len; i += 4) {\n    swap(this, i, i + 3);\n    swap(this, i + 1, i + 2);\n  }\n  return this;\n};\nBuffer.prototype.swap64 = function swap64() {\n  var len = this.length;\n  if (len % 8 !== 0) {\n    throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n  }\n  for (var i = 0; i < len; i += 8) {\n    swap(this, i, i + 7);\n    swap(this, i + 1, i + 6);\n    swap(this, i + 2, i + 5);\n    swap(this, i + 3, i + 4);\n  }\n  return this;\n};\nBuffer.prototype.toString = function toString2() {\n  var length = this.length | 0;\n  if (length === 0)\n    return \"\";\n  if (arguments.length === 0)\n    return utf8Slice(this, 0, length);\n  return slowToString.apply(this, arguments);\n};\nBuffer.prototype.equals = function equals(b) {\n  if (!internalIsBuffer(b))\n    throw new TypeError(\"Argument must be a Buffer\");\n  if (this === b)\n    return true;\n  return Buffer.compare(this, b) === 0;\n};\nBuffer.prototype.inspect = function inspect() {\n  var str = \"\";\n  var max = INSPECT_MAX_BYTES;\n  if (this.length > 0) {\n    str = this.toString(\"hex\", 0, max).match(/.{2}/g).join(\" \");\n    if (this.length > max)\n      str += \" ... \";\n  }\n  return \"<Buffer \" + str + \">\";\n};\nBuffer.prototype.compare = function compare2(target, start, end, thisStart, thisEnd) {\n  if (!internalIsBuffer(target)) {\n    throw new TypeError(\"Argument must be a Buffer\");\n  }\n  if (start === void 0) {\n    start = 0;\n  }\n  if (end === void 0) {\n    end = target ? target.length : 0;\n  }\n  if (thisStart === void 0) {\n    thisStart = 0;\n  }\n  if (thisEnd === void 0) {\n    thisEnd = this.length;\n  }\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError(\"out of range index\");\n  }\n  if (thisStart >= thisEnd && start >= end) {\n    return 0;\n  }\n  if (thisStart >= thisEnd) {\n    return -1;\n  }\n  if (start >= end) {\n    return 1;\n  }\n  start >>>= 0;\n  end >>>= 0;\n  thisStart >>>= 0;\n  thisEnd >>>= 0;\n  if (this === target)\n    return 0;\n  var x = thisEnd - thisStart;\n  var y = end - start;\n  var len = Math.min(x, y);\n  var thisCopy = this.slice(thisStart, thisEnd);\n  var targetCopy = target.slice(start, end);\n  for (var i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i];\n      y = targetCopy[i];\n      break;\n    }\n  }\n  if (x < y)\n    return -1;\n  if (y < x)\n    return 1;\n  return 0;\n};\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n  if (buffer.length === 0)\n    return -1;\n  if (typeof byteOffset === \"string\") {\n    encoding = byteOffset;\n    byteOffset = 0;\n  } else if (byteOffset > 2147483647) {\n    byteOffset = 2147483647;\n  } else if (byteOffset < -2147483648) {\n    byteOffset = -2147483648;\n  }\n  byteOffset = +byteOffset;\n  if (isNaN(byteOffset)) {\n    byteOffset = dir ? 0 : buffer.length - 1;\n  }\n  if (byteOffset < 0)\n    byteOffset = buffer.length + byteOffset;\n  if (byteOffset >= buffer.length) {\n    if (dir)\n      return -1;\n    else\n      byteOffset = buffer.length - 1;\n  } else if (byteOffset < 0) {\n    if (dir)\n      byteOffset = 0;\n    else\n      return -1;\n  }\n  if (typeof val === \"string\") {\n    val = Buffer.from(val, encoding);\n  }\n  if (internalIsBuffer(val)) {\n    if (val.length === 0) {\n      return -1;\n    }\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n  } else if (typeof val === \"number\") {\n    val = val & 255;\n    if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === \"function\") {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n      }\n    }\n    return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n  }\n  throw new TypeError(\"val must be string, number or Buffer\");\n}\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n  var indexSize = 1;\n  var arrLength = arr.length;\n  var valLength = val.length;\n  if (encoding !== void 0) {\n    encoding = String(encoding).toLowerCase();\n    if (encoding === \"ucs2\" || encoding === \"ucs-2\" || encoding === \"utf16le\" || encoding === \"utf-16le\") {\n      if (arr.length < 2 || val.length < 2) {\n        return -1;\n      }\n      indexSize = 2;\n      arrLength /= 2;\n      valLength /= 2;\n      byteOffset /= 2;\n    }\n  }\n  function read2(buf, i2) {\n    if (indexSize === 1) {\n      return buf[i2];\n    } else {\n      return buf.readUInt16BE(i2 * indexSize);\n    }\n  }\n  var i;\n  if (dir) {\n    var foundIndex = -1;\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1)\n          foundIndex = i;\n        if (i - foundIndex + 1 === valLength)\n          return foundIndex * indexSize;\n      } else {\n        if (foundIndex !== -1)\n          i -= i - foundIndex;\n        foundIndex = -1;\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength)\n      byteOffset = arrLength - valLength;\n    for (i = byteOffset; i >= 0; i--) {\n      var found = true;\n      for (var j = 0; j < valLength; j++) {\n        if (read2(arr, i + j) !== read2(val, j)) {\n          found = false;\n          break;\n        }\n      }\n      if (found)\n        return i;\n    }\n  }\n  return -1;\n}\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1;\n};\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\nBuffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\nfunction hexWrite(buf, string, offset, length) {\n  offset = Number(offset) || 0;\n  var remaining = buf.length - offset;\n  if (!length) {\n    length = remaining;\n  } else {\n    length = Number(length);\n    if (length > remaining) {\n      length = remaining;\n    }\n  }\n  var strLen = string.length;\n  if (strLen % 2 !== 0)\n    throw new TypeError(\"Invalid hex string\");\n  if (length > strLen / 2) {\n    length = strLen / 2;\n  }\n  for (var i = 0; i < length; ++i) {\n    var parsed = parseInt(string.substr(i * 2, 2), 16);\n    if (isNaN(parsed))\n      return i;\n    buf[offset + i] = parsed;\n  }\n  return i;\n}\nfunction utf8Write(buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\nfunction asciiWrite(buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\nfunction latin1Write(buf, string, offset, length) {\n  return asciiWrite(buf, string, offset, length);\n}\nfunction base64Write(buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\nfunction ucs2Write(buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\nBuffer.prototype.write = function write2(string, offset, length, encoding) {\n  if (offset === void 0) {\n    encoding = \"utf8\";\n    length = this.length;\n    offset = 0;\n  } else if (length === void 0 && typeof offset === \"string\") {\n    encoding = offset;\n    length = this.length;\n    offset = 0;\n  } else if (isFinite(offset)) {\n    offset = offset | 0;\n    if (isFinite(length)) {\n      length = length | 0;\n      if (encoding === void 0)\n        encoding = \"utf8\";\n    } else {\n      encoding = length;\n      length = void 0;\n    }\n  } else {\n    throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");\n  }\n  var remaining = this.length - offset;\n  if (length === void 0 || length > remaining)\n    length = remaining;\n  if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n    throw new RangeError(\"Attempt to write outside buffer bounds\");\n  }\n  if (!encoding)\n    encoding = \"utf8\";\n  var loweredCase = false;\n  for (; ; ) {\n    switch (encoding) {\n      case \"hex\":\n        return hexWrite(this, string, offset, length);\n      case \"utf8\":\n      case \"utf-8\":\n        return utf8Write(this, string, offset, length);\n      case \"ascii\":\n        return asciiWrite(this, string, offset, length);\n      case \"latin1\":\n      case \"binary\":\n        return latin1Write(this, string, offset, length);\n      case \"base64\":\n        return base64Write(this, string, offset, length);\n      case \"ucs2\":\n      case \"ucs-2\":\n      case \"utf16le\":\n      case \"utf-16le\":\n        return ucs2Write(this, string, offset, length);\n      default:\n        if (loweredCase)\n          throw new TypeError(\"Unknown encoding: \" + encoding);\n        encoding = (\"\" + encoding).toLowerCase();\n        loweredCase = true;\n    }\n  }\n};\nBuffer.prototype.toJSON = function toJSON() {\n  return {\n    type: \"Buffer\",\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  };\n};\nfunction base64Slice(buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return fromByteArray(buf);\n  } else {\n    return fromByteArray(buf.slice(start, end));\n  }\n}\nfunction utf8Slice(buf, start, end) {\n  end = Math.min(buf.length, end);\n  var res = [];\n  var i = start;\n  while (i < end) {\n    var firstByte = buf[i];\n    var codePoint = null;\n    var bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n    if (i + bytesPerSequence <= end) {\n      var secondByte, thirdByte, fourthByte, tempCodePoint;\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 128) {\n            codePoint = firstByte;\n          }\n          break;\n        case 2:\n          secondByte = buf[i + 1];\n          if ((secondByte & 192) === 128) {\n            tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n            if (tempCodePoint > 127) {\n              codePoint = tempCodePoint;\n            }\n          }\n          break;\n        case 3:\n          secondByte = buf[i + 1];\n          thirdByte = buf[i + 2];\n          if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n            tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n            if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n              codePoint = tempCodePoint;\n            }\n          }\n          break;\n        case 4:\n          secondByte = buf[i + 1];\n          thirdByte = buf[i + 2];\n          fourthByte = buf[i + 3];\n          if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n            tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n            if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n              codePoint = tempCodePoint;\n            }\n          }\n      }\n    }\n    if (codePoint === null) {\n      codePoint = 65533;\n      bytesPerSequence = 1;\n    } else if (codePoint > 65535) {\n      codePoint -= 65536;\n      res.push(codePoint >>> 10 & 1023 | 55296);\n      codePoint = 56320 | codePoint & 1023;\n    }\n    res.push(codePoint);\n    i += bytesPerSequence;\n  }\n  return decodeCodePointsArray(res);\n}\nvar MAX_ARGUMENTS_LENGTH = 4096;\nfunction decodeCodePointsArray(codePoints) {\n  var len = codePoints.length;\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints);\n  }\n  var res = \"\";\n  var i = 0;\n  while (i < len) {\n    res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n  }\n  return res;\n}\nfunction asciiSlice(buf, start, end) {\n  var ret = \"\";\n  end = Math.min(buf.length, end);\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 127);\n  }\n  return ret;\n}\nfunction latin1Slice(buf, start, end) {\n  var ret = \"\";\n  end = Math.min(buf.length, end);\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i]);\n  }\n  return ret;\n}\nfunction hexSlice(buf, start, end) {\n  var len = buf.length;\n  if (!start || start < 0)\n    start = 0;\n  if (!end || end < 0 || end > len)\n    end = len;\n  var out = \"\";\n  for (var i = start; i < end; ++i) {\n    out += toHex(buf[i]);\n  }\n  return out;\n}\nfunction utf16leSlice(buf, start, end) {\n  var bytes = buf.slice(start, end);\n  var res = \"\";\n  for (var i = 0; i < bytes.length; i += 2) {\n    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n  }\n  return res;\n}\nBuffer.prototype.slice = function slice(start, end) {\n  var len = this.length;\n  start = ~~start;\n  end = end === void 0 ? len : ~~end;\n  if (start < 0) {\n    start += len;\n    if (start < 0)\n      start = 0;\n  } else if (start > len) {\n    start = len;\n  }\n  if (end < 0) {\n    end += len;\n    if (end < 0)\n      end = 0;\n  } else if (end > len) {\n    end = len;\n  }\n  if (end < start)\n    end = start;\n  var newBuf;\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    newBuf = this.subarray(start, end);\n    newBuf.__proto__ = Buffer.prototype;\n  } else {\n    var sliceLen = end - start;\n    newBuf = new Buffer(sliceLen, void 0);\n    for (var i = 0; i < sliceLen; ++i) {\n      newBuf[i] = this[i + start];\n    }\n  }\n  return newBuf;\n};\nfunction checkOffset(offset, ext, length) {\n  if (offset % 1 !== 0 || offset < 0)\n    throw new RangeError(\"offset is not uint\");\n  if (offset + ext > length)\n    throw new RangeError(\"Trying to access beyond buffer length\");\n}\nBuffer.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n  offset = offset | 0;\n  byteLength2 = byteLength2 | 0;\n  if (!noAssert)\n    checkOffset(offset, byteLength2, this.length);\n  var val = this[offset];\n  var mul = 1;\n  var i = 0;\n  while (++i < byteLength2 && (mul *= 256)) {\n    val += this[offset + i] * mul;\n  }\n  return val;\n};\nBuffer.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n  offset = offset | 0;\n  byteLength2 = byteLength2 | 0;\n  if (!noAssert) {\n    checkOffset(offset, byteLength2, this.length);\n  }\n  var val = this[offset + --byteLength2];\n  var mul = 1;\n  while (byteLength2 > 0 && (mul *= 256)) {\n    val += this[offset + --byteLength2] * mul;\n  }\n  return val;\n};\nBuffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n  if (!noAssert)\n    checkOffset(offset, 1, this.length);\n  return this[offset];\n};\nBuffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n  if (!noAssert)\n    checkOffset(offset, 2, this.length);\n  return this[offset] | this[offset + 1] << 8;\n};\nBuffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n  if (!noAssert)\n    checkOffset(offset, 2, this.length);\n  return this[offset] << 8 | this[offset + 1];\n};\nBuffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n  if (!noAssert)\n    checkOffset(offset, 4, this.length);\n  return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n};\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n  if (!noAssert)\n    checkOffset(offset, 4, this.length);\n  return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n  offset = offset | 0;\n  byteLength2 = byteLength2 | 0;\n  if (!noAssert)\n    checkOffset(offset, byteLength2, this.length);\n  var val = this[offset];\n  var mul = 1;\n  var i = 0;\n  while (++i < byteLength2 && (mul *= 256)) {\n    val += this[offset + i] * mul;\n  }\n  mul *= 128;\n  if (val >= mul)\n    val -= Math.pow(2, 8 * byteLength2);\n  return val;\n};\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n  offset = offset | 0;\n  byteLength2 = byteLength2 | 0;\n  if (!noAssert)\n    checkOffset(offset, byteLength2, this.length);\n  var i = byteLength2;\n  var mul = 1;\n  var val = this[offset + --i];\n  while (i > 0 && (mul *= 256)) {\n    val += this[offset + --i] * mul;\n  }\n  mul *= 128;\n  if (val >= mul)\n    val -= Math.pow(2, 8 * byteLength2);\n  return val;\n};\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n  if (!noAssert)\n    checkOffset(offset, 1, this.length);\n  if (!(this[offset] & 128))\n    return this[offset];\n  return (255 - this[offset] + 1) * -1;\n};\nBuffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n  if (!noAssert)\n    checkOffset(offset, 2, this.length);\n  var val = this[offset] | this[offset + 1] << 8;\n  return val & 32768 ? val | 4294901760 : val;\n};\nBuffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n  if (!noAssert)\n    checkOffset(offset, 2, this.length);\n  var val = this[offset + 1] | this[offset] << 8;\n  return val & 32768 ? val | 4294901760 : val;\n};\nBuffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n  if (!noAssert)\n    checkOffset(offset, 4, this.length);\n  return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n  if (!noAssert)\n    checkOffset(offset, 4, this.length);\n  return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n  if (!noAssert)\n    checkOffset(offset, 4, this.length);\n  return read(this, offset, true, 23, 4);\n};\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n  if (!noAssert)\n    checkOffset(offset, 4, this.length);\n  return read(this, offset, false, 23, 4);\n};\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n  if (!noAssert)\n    checkOffset(offset, 8, this.length);\n  return read(this, offset, true, 52, 8);\n};\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n  if (!noAssert)\n    checkOffset(offset, 8, this.length);\n  return read(this, offset, false, 52, 8);\n};\nfunction checkInt(buf, value, offset, ext, max, min) {\n  if (!internalIsBuffer(buf))\n    throw new TypeError('\"buffer\" argument must be a Buffer instance');\n  if (value > max || value < min)\n    throw new RangeError('\"value\" argument is out of bounds');\n  if (offset + ext > buf.length)\n    throw new RangeError(\"Index out of range\");\n}\nBuffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  byteLength2 = byteLength2 | 0;\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n    checkInt(this, value, offset, byteLength2, maxBytes, 0);\n  }\n  var mul = 1;\n  var i = 0;\n  this[offset] = value & 255;\n  while (++i < byteLength2 && (mul *= 256)) {\n    this[offset + i] = value / mul & 255;\n  }\n  return offset + byteLength2;\n};\nBuffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  byteLength2 = byteLength2 | 0;\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n    checkInt(this, value, offset, byteLength2, maxBytes, 0);\n  }\n  var i = byteLength2 - 1;\n  var mul = 1;\n  this[offset + i] = value & 255;\n  while (--i >= 0 && (mul *= 256)) {\n    this[offset + i] = value / mul & 255;\n  }\n  return offset + byteLength2;\n};\nBuffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert)\n    checkInt(this, value, offset, 1, 255, 0);\n  if (!Buffer.TYPED_ARRAY_SUPPORT)\n    value = Math.floor(value);\n  this[offset] = value & 255;\n  return offset + 1;\n};\nfunction objectWriteUInt16(buf, value, offset, littleEndian) {\n  if (value < 0)\n    value = 65535 + value + 1;\n  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n    buf[offset + i] = (value & 255 << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n  }\n}\nBuffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert)\n    checkInt(this, value, offset, 2, 65535, 0);\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = value & 255;\n    this[offset + 1] = value >>> 8;\n  } else {\n    objectWriteUInt16(this, value, offset, true);\n  }\n  return offset + 2;\n};\nBuffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert)\n    checkInt(this, value, offset, 2, 65535, 0);\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = value >>> 8;\n    this[offset + 1] = value & 255;\n  } else {\n    objectWriteUInt16(this, value, offset, false);\n  }\n  return offset + 2;\n};\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n  if (value < 0)\n    value = 4294967295 + value + 1;\n  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n    buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 255;\n  }\n}\nBuffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert)\n    checkInt(this, value, offset, 4, 4294967295, 0);\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset + 3] = value >>> 24;\n    this[offset + 2] = value >>> 16;\n    this[offset + 1] = value >>> 8;\n    this[offset] = value & 255;\n  } else {\n    objectWriteUInt32(this, value, offset, true);\n  }\n  return offset + 4;\n};\nBuffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert)\n    checkInt(this, value, offset, 4, 4294967295, 0);\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = value >>> 24;\n    this[offset + 1] = value >>> 16;\n    this[offset + 2] = value >>> 8;\n    this[offset + 3] = value & 255;\n  } else {\n    objectWriteUInt32(this, value, offset, false);\n  }\n  return offset + 4;\n};\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength2 - 1);\n    checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n  }\n  var i = 0;\n  var mul = 1;\n  var sub = 0;\n  this[offset] = value & 255;\n  while (++i < byteLength2 && (mul *= 256)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1;\n    }\n    this[offset + i] = (value / mul >> 0) - sub & 255;\n  }\n  return offset + byteLength2;\n};\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength2 - 1);\n    checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n  }\n  var i = byteLength2 - 1;\n  var mul = 1;\n  var sub = 0;\n  this[offset + i] = value & 255;\n  while (--i >= 0 && (mul *= 256)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1;\n    }\n    this[offset + i] = (value / mul >> 0) - sub & 255;\n  }\n  return offset + byteLength2;\n};\nBuffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert)\n    checkInt(this, value, offset, 1, 127, -128);\n  if (!Buffer.TYPED_ARRAY_SUPPORT)\n    value = Math.floor(value);\n  if (value < 0)\n    value = 255 + value + 1;\n  this[offset] = value & 255;\n  return offset + 1;\n};\nBuffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert)\n    checkInt(this, value, offset, 2, 32767, -32768);\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = value & 255;\n    this[offset + 1] = value >>> 8;\n  } else {\n    objectWriteUInt16(this, value, offset, true);\n  }\n  return offset + 2;\n};\nBuffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert)\n    checkInt(this, value, offset, 2, 32767, -32768);\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = value >>> 8;\n    this[offset + 1] = value & 255;\n  } else {\n    objectWriteUInt16(this, value, offset, false);\n  }\n  return offset + 2;\n};\nBuffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert)\n    checkInt(this, value, offset, 4, 2147483647, -2147483648);\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = value & 255;\n    this[offset + 1] = value >>> 8;\n    this[offset + 2] = value >>> 16;\n    this[offset + 3] = value >>> 24;\n  } else {\n    objectWriteUInt32(this, value, offset, true);\n  }\n  return offset + 4;\n};\nBuffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert)\n    checkInt(this, value, offset, 4, 2147483647, -2147483648);\n  if (value < 0)\n    value = 4294967295 + value + 1;\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = value >>> 24;\n    this[offset + 1] = value >>> 16;\n    this[offset + 2] = value >>> 8;\n    this[offset + 3] = value & 255;\n  } else {\n    objectWriteUInt32(this, value, offset, false);\n  }\n  return offset + 4;\n};\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length)\n    throw new RangeError(\"Index out of range\");\n  if (offset < 0)\n    throw new RangeError(\"Index out of range\");\n}\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4);\n  }\n  write(buf, value, offset, littleEndian, 23, 4);\n  return offset + 4;\n}\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert);\n};\nBuffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert);\n};\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8);\n  }\n  write(buf, value, offset, littleEndian, 52, 8);\n  return offset + 8;\n}\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert);\n};\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert);\n};\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n  if (!start)\n    start = 0;\n  if (!end && end !== 0)\n    end = this.length;\n  if (targetStart >= target.length)\n    targetStart = target.length;\n  if (!targetStart)\n    targetStart = 0;\n  if (end > 0 && end < start)\n    end = start;\n  if (end === start)\n    return 0;\n  if (target.length === 0 || this.length === 0)\n    return 0;\n  if (targetStart < 0) {\n    throw new RangeError(\"targetStart out of bounds\");\n  }\n  if (start < 0 || start >= this.length)\n    throw new RangeError(\"sourceStart out of bounds\");\n  if (end < 0)\n    throw new RangeError(\"sourceEnd out of bounds\");\n  if (end > this.length)\n    end = this.length;\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start;\n  }\n  var len = end - start;\n  var i;\n  if (this === target && start < targetStart && targetStart < end) {\n    for (i = len - 1; i >= 0; --i) {\n      target[i + targetStart] = this[i + start];\n    }\n  } else if (len < 1e3 || !Buffer.TYPED_ARRAY_SUPPORT) {\n    for (i = 0; i < len; ++i) {\n      target[i + targetStart] = this[i + start];\n    }\n  } else {\n    Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n  }\n  return len;\n};\nBuffer.prototype.fill = function fill(val, start, end, encoding) {\n  if (typeof val === \"string\") {\n    if (typeof start === \"string\") {\n      encoding = start;\n      start = 0;\n      end = this.length;\n    } else if (typeof end === \"string\") {\n      encoding = end;\n      end = this.length;\n    }\n    if (val.length === 1) {\n      var code = val.charCodeAt(0);\n      if (code < 256) {\n        val = code;\n      }\n    }\n    if (encoding !== void 0 && typeof encoding !== \"string\") {\n      throw new TypeError(\"encoding must be a string\");\n    }\n    if (typeof encoding === \"string\" && !Buffer.isEncoding(encoding)) {\n      throw new TypeError(\"Unknown encoding: \" + encoding);\n    }\n  } else if (typeof val === \"number\") {\n    val = val & 255;\n  }\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError(\"Out of range index\");\n  }\n  if (end <= start) {\n    return this;\n  }\n  start = start >>> 0;\n  end = end === void 0 ? this.length : end >>> 0;\n  if (!val)\n    val = 0;\n  var i;\n  if (typeof val === \"number\") {\n    for (i = start; i < end; ++i) {\n      this[i] = val;\n    }\n  } else {\n    var bytes = internalIsBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n    var len = bytes.length;\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len];\n    }\n  }\n  return this;\n};\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\nfunction base64clean(str) {\n  str = stringtrim(str).replace(INVALID_BASE64_RE, \"\");\n  if (str.length < 2)\n    return \"\";\n  while (str.length % 4 !== 0) {\n    str = str + \"=\";\n  }\n  return str;\n}\nfunction stringtrim(str) {\n  if (str.trim)\n    return str.trim();\n  return str.replace(/^\\s+|\\s+$/g, \"\");\n}\nfunction toHex(n) {\n  if (n < 16)\n    return \"0\" + n.toString(16);\n  return n.toString(16);\n}\nfunction utf8ToBytes(string, units) {\n  units = units || Infinity;\n  var codePoint;\n  var length = string.length;\n  var leadSurrogate = null;\n  var bytes = [];\n  for (var i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i);\n    if (codePoint > 55295 && codePoint < 57344) {\n      if (!leadSurrogate) {\n        if (codePoint > 56319) {\n          if ((units -= 3) > -1)\n            bytes.push(239, 191, 189);\n          continue;\n        } else if (i + 1 === length) {\n          if ((units -= 3) > -1)\n            bytes.push(239, 191, 189);\n          continue;\n        }\n        leadSurrogate = codePoint;\n        continue;\n      }\n      if (codePoint < 56320) {\n        if ((units -= 3) > -1)\n          bytes.push(239, 191, 189);\n        leadSurrogate = codePoint;\n        continue;\n      }\n      codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n    } else if (leadSurrogate) {\n      if ((units -= 3) > -1)\n        bytes.push(239, 191, 189);\n    }\n    leadSurrogate = null;\n    if (codePoint < 128) {\n      if ((units -= 1) < 0)\n        break;\n      bytes.push(codePoint);\n    } else if (codePoint < 2048) {\n      if ((units -= 2) < 0)\n        break;\n      bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n    } else if (codePoint < 65536) {\n      if ((units -= 3) < 0)\n        break;\n      bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n    } else if (codePoint < 1114112) {\n      if ((units -= 4) < 0)\n        break;\n      bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n    } else {\n      throw new Error(\"Invalid code point\");\n    }\n  }\n  return bytes;\n}\nfunction asciiToBytes(str) {\n  var byteArray = [];\n  for (var i = 0; i < str.length; ++i) {\n    byteArray.push(str.charCodeAt(i) & 255);\n  }\n  return byteArray;\n}\nfunction utf16leToBytes(str, units) {\n  var c, hi, lo;\n  var byteArray = [];\n  for (var i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0)\n      break;\n    c = str.charCodeAt(i);\n    hi = c >> 8;\n    lo = c % 256;\n    byteArray.push(lo);\n    byteArray.push(hi);\n  }\n  return byteArray;\n}\nfunction base64ToBytes(str) {\n  return toByteArray(base64clean(str));\n}\nfunction blitBuffer(src, dst, offset, length) {\n  for (var i = 0; i < length; ++i) {\n    if (i + offset >= dst.length || i >= src.length)\n      break;\n    dst[i + offset] = src[i];\n  }\n  return i;\n}\nfunction isnan(val) {\n  return val !== val;\n}\nfunction isBuffer(obj) {\n  return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj));\n}\nfunction isFastBuffer(obj) {\n  return !!obj.constructor && typeof obj.constructor.isBuffer === \"function\" && obj.constructor.isBuffer(obj);\n}\nfunction isSlowBuffer(obj) {\n  return typeof obj.readFloatLE === \"function\" && typeof obj.slice === \"function\" && isFastBuffer(obj.slice(0, 0));\n}\nclass StorageError extends Error {\n  constructor(message) {\n    super(message);\n    this.__isStorageError = true;\n    this.name = \"StorageError\";\n  }\n}\nfunction isStorageError(error) {\n  return typeof error === \"object\" && error !== null && \"__isStorageError\" in error;\n}\nclass StorageApiError extends StorageError {\n  constructor(message, status, statusCode) {\n    super(message);\n    this.name = \"StorageApiError\";\n    this.status = status;\n    this.statusCode = statusCode;\n  }\n  toJSON() {\n    return {\n      name: this.name,\n      message: this.message,\n      status: this.status,\n      statusCode: this.statusCode\n    };\n  }\n}\nclass StorageUnknownError extends StorageError {\n  constructor(message, originalError) {\n    super(message);\n    this.name = \"StorageUnknownError\";\n    this.originalError = originalError;\n  }\n}\nvar __awaiter = function(thisArg, _arguments, P, generator) {\n  function adopt(value) {\n    return value instanceof P ? value : new P(function(resolve) {\n      resolve(value);\n    });\n  }\n  return new (P || (P = Promise))(function(resolve, reject) {\n    function fulfilled(value) {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n};\nconst resolveFetch = (customFetch) => {\n  let _fetch;\n  if (customFetch) {\n    _fetch = customFetch;\n  } else if (typeof fetch === \"undefined\") {\n    _fetch = (...args) => import(\"/-/@supabase/node-fetch@v2.6.15-c5DrO8K0MoiPZxDi1V2L/dist=es2019,mode=imports/optimized/@supabase/node-fetch.js\").then(({default: fetch2}) => fetch2(...args));\n  } else {\n    _fetch = fetch;\n  }\n  return (...args) => _fetch(...args);\n};\nconst resolveResponse = () => __awaiter(void 0, void 0, void 0, function* () {\n  if (typeof Response === \"undefined\") {\n    return (yield import(\"/-/@supabase/node-fetch@v2.6.15-c5DrO8K0MoiPZxDi1V2L/dist=es2019,mode=imports/optimized/@supabase/node-fetch.js\")).Response;\n  }\n  return Response;\n});\nconst recursiveToCamel = (item) => {\n  if (Array.isArray(item)) {\n    return item.map((el) => recursiveToCamel(el));\n  } else if (typeof item === \"function\" || item !== Object(item)) {\n    return item;\n  }\n  const result = {};\n  Object.entries(item).forEach(([key, value]) => {\n    const newKey = key.replace(/([-_][a-z])/gi, (c) => c.toUpperCase().replace(/[-_]/g, \"\"));\n    result[newKey] = recursiveToCamel(value);\n  });\n  return result;\n};\nconst isPlainObject = (value) => {\n  if (typeof value !== \"object\" || value === null) {\n    return false;\n  }\n  const prototype = Object.getPrototypeOf(value);\n  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n};\nvar __awaiter$1 = function(thisArg, _arguments, P, generator) {\n  function adopt(value) {\n    return value instanceof P ? value : new P(function(resolve) {\n      resolve(value);\n    });\n  }\n  return new (P || (P = Promise))(function(resolve, reject) {\n    function fulfilled(value) {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n};\nconst _getErrorMessage = (err) => err.msg || err.message || err.error_description || err.error || JSON.stringify(err);\nconst handleError = (error, reject, options) => __awaiter$1(void 0, void 0, void 0, function* () {\n  const Res = yield resolveResponse();\n  if (error instanceof Res && !(options === null || options === void 0 ? void 0 : options.noResolveJson)) {\n    error.json().then((err) => {\n      const status = error.status || 500;\n      const statusCode = (err === null || err === void 0 ? void 0 : err.statusCode) || status + \"\";\n      reject(new StorageApiError(_getErrorMessage(err), status, statusCode));\n    }).catch((err) => {\n      reject(new StorageUnknownError(_getErrorMessage(err), err));\n    });\n  } else {\n    reject(new StorageUnknownError(_getErrorMessage(error), error));\n  }\n});\nconst _getRequestParams = (method, options, parameters, body) => {\n  const params = {method, headers: (options === null || options === void 0 ? void 0 : options.headers) || {}};\n  if (method === \"GET\" || !body) {\n    return params;\n  }\n  if (isPlainObject(body)) {\n    params.headers = Object.assign({\"Content-Type\": \"application/json\"}, options === null || options === void 0 ? void 0 : options.headers);\n    params.body = JSON.stringify(body);\n  } else {\n    params.body = body;\n  }\n  if (options === null || options === void 0 ? void 0 : options.duplex) {\n    params.duplex = options.duplex;\n  }\n  return Object.assign(Object.assign({}, params), parameters);\n};\nfunction _handleRequest(fetcher, method, url, options, parameters, body) {\n  return __awaiter$1(this, void 0, void 0, function* () {\n    return new Promise((resolve, reject) => {\n      fetcher(url, _getRequestParams(method, options, parameters, body)).then((result) => {\n        if (!result.ok)\n          throw result;\n        if (options === null || options === void 0 ? void 0 : options.noResolveJson)\n          return result;\n        return result.json();\n      }).then((data) => resolve(data)).catch((error) => handleError(error, reject, options));\n    });\n  });\n}\nfunction get(fetcher, url, options, parameters) {\n  return __awaiter$1(this, void 0, void 0, function* () {\n    return _handleRequest(fetcher, \"GET\", url, options, parameters);\n  });\n}\nfunction post(fetcher, url, body, options, parameters) {\n  return __awaiter$1(this, void 0, void 0, function* () {\n    return _handleRequest(fetcher, \"POST\", url, options, parameters, body);\n  });\n}\nfunction put(fetcher, url, body, options, parameters) {\n  return __awaiter$1(this, void 0, void 0, function* () {\n    return _handleRequest(fetcher, \"PUT\", url, options, parameters, body);\n  });\n}\nfunction head(fetcher, url, options, parameters) {\n  return __awaiter$1(this, void 0, void 0, function* () {\n    return _handleRequest(fetcher, \"HEAD\", url, Object.assign(Object.assign({}, options), {noResolveJson: true}), parameters);\n  });\n}\nfunction remove(fetcher, url, body, options, parameters) {\n  return __awaiter$1(this, void 0, void 0, function* () {\n    return _handleRequest(fetcher, \"DELETE\", url, options, parameters, body);\n  });\n}\nvar __awaiter$2 = function(thisArg, _arguments, P, generator) {\n  function adopt(value) {\n    return value instanceof P ? value : new P(function(resolve) {\n      resolve(value);\n    });\n  }\n  return new (P || (P = Promise))(function(resolve, reject) {\n    function fulfilled(value) {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n};\nconst DEFAULT_SEARCH_OPTIONS = {\n  limit: 100,\n  offset: 0,\n  sortBy: {\n    column: \"name\",\n    order: \"asc\"\n  }\n};\nconst DEFAULT_FILE_OPTIONS = {\n  cacheControl: \"3600\",\n  contentType: \"text/plain;charset=UTF-8\",\n  upsert: false\n};\nclass StorageFileApi {\n  constructor(url, headers = {}, bucketId, fetch2) {\n    this.url = url;\n    this.headers = headers;\n    this.bucketId = bucketId;\n    this.fetch = resolveFetch(fetch2);\n  }\n  uploadOrUpdate(method, path, fileBody, fileOptions) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      try {\n        let body;\n        const options = Object.assign(Object.assign({}, DEFAULT_FILE_OPTIONS), fileOptions);\n        let headers = Object.assign(Object.assign({}, this.headers), method === \"POST\" && {\"x-upsert\": String(options.upsert)});\n        const metadata = options.metadata;\n        if (typeof Blob !== \"undefined\" && fileBody instanceof Blob) {\n          body = new FormData();\n          body.append(\"cacheControl\", options.cacheControl);\n          if (metadata) {\n            body.append(\"metadata\", this.encodeMetadata(metadata));\n          }\n          body.append(\"\", fileBody);\n        } else if (typeof FormData !== \"undefined\" && fileBody instanceof FormData) {\n          body = fileBody;\n          body.append(\"cacheControl\", options.cacheControl);\n          if (metadata) {\n            body.append(\"metadata\", this.encodeMetadata(metadata));\n          }\n        } else {\n          body = fileBody;\n          headers[\"cache-control\"] = `max-age=${options.cacheControl}`;\n          headers[\"content-type\"] = options.contentType;\n          if (metadata) {\n            headers[\"x-metadata\"] = this.toBase64(this.encodeMetadata(metadata));\n          }\n        }\n        if (fileOptions === null || fileOptions === void 0 ? void 0 : fileOptions.headers) {\n          headers = Object.assign(Object.assign({}, headers), fileOptions.headers);\n        }\n        const cleanPath = this._removeEmptyFolders(path);\n        const _path = this._getFinalPath(cleanPath);\n        const data = yield (method == \"PUT\" ? put : post)(this.fetch, `${this.url}/object/${_path}`, body, Object.assign({headers}, (options === null || options === void 0 ? void 0 : options.duplex) ? {duplex: options.duplex} : {}));\n        return {\n          data: {path: cleanPath, id: data.Id, fullPath: data.Key},\n          error: null\n        };\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  upload(path, fileBody, fileOptions) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      return this.uploadOrUpdate(\"POST\", path, fileBody, fileOptions);\n    });\n  }\n  uploadToSignedUrl(path, token, fileBody, fileOptions) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      const cleanPath = this._removeEmptyFolders(path);\n      const _path = this._getFinalPath(cleanPath);\n      const url = new URL(this.url + `/object/upload/sign/${_path}`);\n      url.searchParams.set(\"token\", token);\n      try {\n        let body;\n        const options = Object.assign({upsert: DEFAULT_FILE_OPTIONS.upsert}, fileOptions);\n        const headers = Object.assign(Object.assign({}, this.headers), {\"x-upsert\": String(options.upsert)});\n        if (typeof Blob !== \"undefined\" && fileBody instanceof Blob) {\n          body = new FormData();\n          body.append(\"cacheControl\", options.cacheControl);\n          body.append(\"\", fileBody);\n        } else if (typeof FormData !== \"undefined\" && fileBody instanceof FormData) {\n          body = fileBody;\n          body.append(\"cacheControl\", options.cacheControl);\n        } else {\n          body = fileBody;\n          headers[\"cache-control\"] = `max-age=${options.cacheControl}`;\n          headers[\"content-type\"] = options.contentType;\n        }\n        const data = yield put(this.fetch, url.toString(), body, {headers});\n        return {\n          data: {path: cleanPath, fullPath: data.Key},\n          error: null\n        };\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  createSignedUploadUrl(path, options) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      try {\n        let _path = this._getFinalPath(path);\n        const headers = Object.assign({}, this.headers);\n        if (options === null || options === void 0 ? void 0 : options.upsert) {\n          headers[\"x-upsert\"] = \"true\";\n        }\n        const data = yield post(this.fetch, `${this.url}/object/upload/sign/${_path}`, {}, {headers});\n        const url = new URL(this.url + data.url);\n        const token = url.searchParams.get(\"token\");\n        if (!token) {\n          throw new StorageError(\"No token returned by API\");\n        }\n        return {data: {signedUrl: url.toString(), path, token}, error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  update(path, fileBody, fileOptions) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      return this.uploadOrUpdate(\"PUT\", path, fileBody, fileOptions);\n    });\n  }\n  move(fromPath, toPath, options) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      try {\n        const data = yield post(this.fetch, `${this.url}/object/move`, {\n          bucketId: this.bucketId,\n          sourceKey: fromPath,\n          destinationKey: toPath,\n          destinationBucket: options === null || options === void 0 ? void 0 : options.destinationBucket\n        }, {headers: this.headers});\n        return {data, error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  copy(fromPath, toPath, options) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      try {\n        const data = yield post(this.fetch, `${this.url}/object/copy`, {\n          bucketId: this.bucketId,\n          sourceKey: fromPath,\n          destinationKey: toPath,\n          destinationBucket: options === null || options === void 0 ? void 0 : options.destinationBucket\n        }, {headers: this.headers});\n        return {data: {path: data.Key}, error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  createSignedUrl(path, expiresIn, options) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      try {\n        let _path = this._getFinalPath(path);\n        let data = yield post(this.fetch, `${this.url}/object/sign/${_path}`, Object.assign({expiresIn}, (options === null || options === void 0 ? void 0 : options.transform) ? {transform: options.transform} : {}), {headers: this.headers});\n        const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download) ? `&download=${options.download === true ? \"\" : options.download}` : \"\";\n        const signedUrl = encodeURI(`${this.url}${data.signedURL}${downloadQueryParam}`);\n        data = {signedUrl};\n        return {data, error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  createSignedUrls(paths, expiresIn, options) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      try {\n        const data = yield post(this.fetch, `${this.url}/object/sign/${this.bucketId}`, {expiresIn, paths}, {headers: this.headers});\n        const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download) ? `&download=${options.download === true ? \"\" : options.download}` : \"\";\n        return {\n          data: data.map((datum) => Object.assign(Object.assign({}, datum), {signedUrl: datum.signedURL ? encodeURI(`${this.url}${datum.signedURL}${downloadQueryParam}`) : null})),\n          error: null\n        };\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  download(path, options) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      const wantsTransformation = typeof (options === null || options === void 0 ? void 0 : options.transform) !== \"undefined\";\n      const renderPath = wantsTransformation ? \"render/image/authenticated\" : \"object\";\n      const transformationQuery = this.transformOptsToQueryString((options === null || options === void 0 ? void 0 : options.transform) || {});\n      const queryString = transformationQuery ? `?${transformationQuery}` : \"\";\n      try {\n        const _path = this._getFinalPath(path);\n        const res = yield get(this.fetch, `${this.url}/${renderPath}/${_path}${queryString}`, {\n          headers: this.headers,\n          noResolveJson: true\n        });\n        const data = yield res.blob();\n        return {data, error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  info(path) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      const _path = this._getFinalPath(path);\n      try {\n        const data = yield get(this.fetch, `${this.url}/object/info/${_path}`, {\n          headers: this.headers\n        });\n        return {data: recursiveToCamel(data), error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  exists(path) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      const _path = this._getFinalPath(path);\n      try {\n        yield head(this.fetch, `${this.url}/object/${_path}`, {\n          headers: this.headers\n        });\n        return {data: true, error: null};\n      } catch (error) {\n        if (isStorageError(error) && error instanceof StorageUnknownError) {\n          const originalError = error.originalError;\n          if ([400, 404].includes(originalError === null || originalError === void 0 ? void 0 : originalError.status)) {\n            return {data: false, error};\n          }\n        }\n        throw error;\n      }\n    });\n  }\n  getPublicUrl(path, options) {\n    const _path = this._getFinalPath(path);\n    const _queryString = [];\n    const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download) ? `download=${options.download === true ? \"\" : options.download}` : \"\";\n    if (downloadQueryParam !== \"\") {\n      _queryString.push(downloadQueryParam);\n    }\n    const wantsTransformation = typeof (options === null || options === void 0 ? void 0 : options.transform) !== \"undefined\";\n    const renderPath = wantsTransformation ? \"render/image\" : \"object\";\n    const transformationQuery = this.transformOptsToQueryString((options === null || options === void 0 ? void 0 : options.transform) || {});\n    if (transformationQuery !== \"\") {\n      _queryString.push(transformationQuery);\n    }\n    let queryString = _queryString.join(\"&\");\n    if (queryString !== \"\") {\n      queryString = `?${queryString}`;\n    }\n    return {\n      data: {publicUrl: encodeURI(`${this.url}/${renderPath}/public/${_path}${queryString}`)}\n    };\n  }\n  remove(paths) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      try {\n        const data = yield remove(this.fetch, `${this.url}/object/${this.bucketId}`, {prefixes: paths}, {headers: this.headers});\n        return {data, error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  list(path, options, parameters) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      try {\n        const body = Object.assign(Object.assign(Object.assign({}, DEFAULT_SEARCH_OPTIONS), options), {prefix: path || \"\"});\n        const data = yield post(this.fetch, `${this.url}/object/list/${this.bucketId}`, body, {headers: this.headers}, parameters);\n        return {data, error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  listV2(options, parameters) {\n    return __awaiter$2(this, void 0, void 0, function* () {\n      try {\n        const body = Object.assign({}, options);\n        const data = yield post(this.fetch, `${this.url}/object/list-v2/${this.bucketId}`, body, {headers: this.headers}, parameters);\n        return {data, error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  encodeMetadata(metadata) {\n    return JSON.stringify(metadata);\n  }\n  toBase64(data) {\n    if (typeof Buffer !== \"undefined\") {\n      return Buffer.from(data).toString(\"base64\");\n    }\n    return btoa(data);\n  }\n  _getFinalPath(path) {\n    return `${this.bucketId}/${path.replace(/^\\/+/, \"\")}`;\n  }\n  _removeEmptyFolders(path) {\n    return path.replace(/^\\/|\\/$/g, \"\").replace(/\\/+/g, \"/\");\n  }\n  transformOptsToQueryString(transform) {\n    const params = [];\n    if (transform.width) {\n      params.push(`width=${transform.width}`);\n    }\n    if (transform.height) {\n      params.push(`height=${transform.height}`);\n    }\n    if (transform.resize) {\n      params.push(`resize=${transform.resize}`);\n    }\n    if (transform.format) {\n      params.push(`format=${transform.format}`);\n    }\n    if (transform.quality) {\n      params.push(`quality=${transform.quality}`);\n    }\n    return params.join(\"&\");\n  }\n}\nconst version = \"2.11.0\";\nconst DEFAULT_HEADERS = {\"X-Client-Info\": `storage-js/${version}`};\nvar __awaiter$3 = function(thisArg, _arguments, P, generator) {\n  function adopt(value) {\n    return value instanceof P ? value : new P(function(resolve) {\n      resolve(value);\n    });\n  }\n  return new (P || (P = Promise))(function(resolve, reject) {\n    function fulfilled(value) {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n};\nclass StorageBucketApi {\n  constructor(url, headers = {}, fetch2, opts) {\n    const baseUrl = new URL(url);\n    if (opts === null || opts === void 0 ? void 0 : opts.useNewHostname) {\n      const isSupabaseHost = /supabase\\.(co|in|red)$/.test(baseUrl.hostname);\n      if (isSupabaseHost && !baseUrl.hostname.includes(\"storage.supabase.\")) {\n        baseUrl.hostname = baseUrl.hostname.replace(\"supabase.\", \"storage.supabase.\");\n      }\n    }\n    this.url = baseUrl.href;\n    this.headers = Object.assign(Object.assign({}, DEFAULT_HEADERS), headers);\n    this.fetch = resolveFetch(fetch2);\n  }\n  listBuckets() {\n    return __awaiter$3(this, void 0, void 0, function* () {\n      try {\n        const data = yield get(this.fetch, `${this.url}/bucket`, {headers: this.headers});\n        return {data, error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  getBucket(id) {\n    return __awaiter$3(this, void 0, void 0, function* () {\n      try {\n        const data = yield get(this.fetch, `${this.url}/bucket/${id}`, {headers: this.headers});\n        return {data, error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  createBucket(id, options = {\n    public: false\n  }) {\n    return __awaiter$3(this, void 0, void 0, function* () {\n      try {\n        const data = yield post(this.fetch, `${this.url}/bucket`, {\n          id,\n          name: id,\n          type: options.type,\n          public: options.public,\n          file_size_limit: options.fileSizeLimit,\n          allowed_mime_types: options.allowedMimeTypes\n        }, {headers: this.headers});\n        return {data, error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  updateBucket(id, options) {\n    return __awaiter$3(this, void 0, void 0, function* () {\n      try {\n        const data = yield put(this.fetch, `${this.url}/bucket/${id}`, {\n          id,\n          name: id,\n          public: options.public,\n          file_size_limit: options.fileSizeLimit,\n          allowed_mime_types: options.allowedMimeTypes\n        }, {headers: this.headers});\n        return {data, error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  emptyBucket(id) {\n    return __awaiter$3(this, void 0, void 0, function* () {\n      try {\n        const data = yield post(this.fetch, `${this.url}/bucket/${id}/empty`, {}, {headers: this.headers});\n        return {data, error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  deleteBucket(id) {\n    return __awaiter$3(this, void 0, void 0, function* () {\n      try {\n        const data = yield remove(this.fetch, `${this.url}/bucket/${id}`, {}, {headers: this.headers});\n        return {data, error: null};\n      } catch (error) {\n        if (isStorageError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n}\nclass StorageClient extends StorageBucketApi {\n  constructor(url, headers = {}, fetch2, opts) {\n    super(url, headers, fetch2, opts);\n  }\n  from(id) {\n    return new StorageFileApi(this.url, this.headers, id, this.fetch);\n  }\n}\nexport {StorageApiError, StorageClient, StorageError, StorageUnknownError, isStorageError};\nexport default null;\n", "const version = \"2.71.1\";\nconst AUTO_REFRESH_TICK_DURATION_MS = 30 * 1e3;\nconst AUTO_REFRESH_TICK_THRESHOLD = 3;\nconst EXPIRY_MARGIN_MS = AUTO_REFRESH_TICK_THRESHOLD * AUTO_REFRESH_TICK_DURATION_MS;\nconst GOTRUE_URL = \"http://localhost:9999\";\nconst STORAGE_KEY = \"supabase.auth.token\";\nconst DEFAULT_HEADERS = {\"X-Client-Info\": `gotrue-js/${version}`};\nconst API_VERSION_HEADER_NAME = \"X-Supabase-Api-Version\";\nconst API_VERSIONS = {\n  \"2024-01-01\": {\n    timestamp: Date.parse(\"2024-01-01T00:00:00.0Z\"),\n    name: \"2024-01-01\"\n  }\n};\nconst BASE64URL_REGEX = /^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i;\nconst JWKS_TTL = 10 * 60 * 1e3;\nclass AuthError extends Error {\n  constructor(message, status, code) {\n    super(message);\n    this.__isAuthError = true;\n    this.name = \"AuthError\";\n    this.status = status;\n    this.code = code;\n  }\n}\nfunction isAuthError(error) {\n  return typeof error === \"object\" && error !== null && \"__isAuthError\" in error;\n}\nclass AuthApiError extends AuthError {\n  constructor(message, status, code) {\n    super(message, status, code);\n    this.name = \"AuthApiError\";\n    this.status = status;\n    this.code = code;\n  }\n}\nfunction isAuthApiError(error) {\n  return isAuthError(error) && error.name === \"AuthApiError\";\n}\nclass AuthUnknownError extends AuthError {\n  constructor(message, originalError) {\n    super(message);\n    this.name = \"AuthUnknownError\";\n    this.originalError = originalError;\n  }\n}\nclass CustomAuthError extends AuthError {\n  constructor(message, name, status, code) {\n    super(message, status, code);\n    this.name = name;\n    this.status = status;\n  }\n}\nclass AuthSessionMissingError extends CustomAuthError {\n  constructor() {\n    super(\"Auth session missing!\", \"AuthSessionMissingError\", 400, void 0);\n  }\n}\nfunction isAuthSessionMissingError(error) {\n  return isAuthError(error) && error.name === \"AuthSessionMissingError\";\n}\nclass AuthInvalidTokenResponseError extends CustomAuthError {\n  constructor() {\n    super(\"Auth session or user missing\", \"AuthInvalidTokenResponseError\", 500, void 0);\n  }\n}\nclass AuthInvalidCredentialsError extends CustomAuthError {\n  constructor(message) {\n    super(message, \"AuthInvalidCredentialsError\", 400, void 0);\n  }\n}\nclass AuthImplicitGrantRedirectError extends CustomAuthError {\n  constructor(message, details = null) {\n    super(message, \"AuthImplicitGrantRedirectError\", 500, void 0);\n    this.details = null;\n    this.details = details;\n  }\n  toJSON() {\n    return {\n      name: this.name,\n      message: this.message,\n      status: this.status,\n      details: this.details\n    };\n  }\n}\nfunction isAuthImplicitGrantRedirectError(error) {\n  return isAuthError(error) && error.name === \"AuthImplicitGrantRedirectError\";\n}\nclass AuthPKCEGrantCodeExchangeError extends CustomAuthError {\n  constructor(message, details = null) {\n    super(message, \"AuthPKCEGrantCodeExchangeError\", 500, void 0);\n    this.details = null;\n    this.details = details;\n  }\n  toJSON() {\n    return {\n      name: this.name,\n      message: this.message,\n      status: this.status,\n      details: this.details\n    };\n  }\n}\nclass AuthRetryableFetchError extends CustomAuthError {\n  constructor(message, status) {\n    super(message, \"AuthRetryableFetchError\", status, void 0);\n  }\n}\nfunction isAuthRetryableFetchError(error) {\n  return isAuthError(error) && error.name === \"AuthRetryableFetchError\";\n}\nclass AuthWeakPasswordError extends CustomAuthError {\n  constructor(message, status, reasons) {\n    super(message, \"AuthWeakPasswordError\", status, \"weak_password\");\n    this.reasons = reasons;\n  }\n}\nfunction isAuthWeakPasswordError(error) {\n  return isAuthError(error) && error.name === \"AuthWeakPasswordError\";\n}\nclass AuthInvalidJwtError extends CustomAuthError {\n  constructor(message) {\n    super(message, \"AuthInvalidJwtError\", 400, \"invalid_jwt\");\n  }\n}\nconst TO_BASE64URL = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\".split(\"\");\nconst IGNORE_BASE64URL = \" \t\\n\\r=\".split(\"\");\nconst FROM_BASE64URL = (() => {\n  const charMap = new Array(128);\n  for (let i = 0; i < charMap.length; i += 1) {\n    charMap[i] = -1;\n  }\n  for (let i = 0; i < IGNORE_BASE64URL.length; i += 1) {\n    charMap[IGNORE_BASE64URL[i].charCodeAt(0)] = -2;\n  }\n  for (let i = 0; i < TO_BASE64URL.length; i += 1) {\n    charMap[TO_BASE64URL[i].charCodeAt(0)] = i;\n  }\n  return charMap;\n})();\nfunction byteToBase64URL(byte, state, emit) {\n  if (byte !== null) {\n    state.queue = state.queue << 8 | byte;\n    state.queuedBits += 8;\n    while (state.queuedBits >= 6) {\n      const pos = state.queue >> state.queuedBits - 6 & 63;\n      emit(TO_BASE64URL[pos]);\n      state.queuedBits -= 6;\n    }\n  } else if (state.queuedBits > 0) {\n    state.queue = state.queue << 6 - state.queuedBits;\n    state.queuedBits = 6;\n    while (state.queuedBits >= 6) {\n      const pos = state.queue >> state.queuedBits - 6 & 63;\n      emit(TO_BASE64URL[pos]);\n      state.queuedBits -= 6;\n    }\n  }\n}\nfunction byteFromBase64URL(charCode, state, emit) {\n  const bits = FROM_BASE64URL[charCode];\n  if (bits > -1) {\n    state.queue = state.queue << 6 | bits;\n    state.queuedBits += 6;\n    while (state.queuedBits >= 8) {\n      emit(state.queue >> state.queuedBits - 8 & 255);\n      state.queuedBits -= 8;\n    }\n  } else if (bits === -2) {\n    return;\n  } else {\n    throw new Error(`Invalid Base64-URL character \"${String.fromCharCode(charCode)}\"`);\n  }\n}\nfunction stringFromBase64URL(str) {\n  const conv = [];\n  const utf8Emit = (codepoint) => {\n    conv.push(String.fromCodePoint(codepoint));\n  };\n  const utf8State = {\n    utf8seq: 0,\n    codepoint: 0\n  };\n  const b64State = {queue: 0, queuedBits: 0};\n  const byteEmit = (byte) => {\n    stringFromUTF8(byte, utf8State, utf8Emit);\n  };\n  for (let i = 0; i < str.length; i += 1) {\n    byteFromBase64URL(str.charCodeAt(i), b64State, byteEmit);\n  }\n  return conv.join(\"\");\n}\nfunction codepointToUTF8(codepoint, emit) {\n  if (codepoint <= 127) {\n    emit(codepoint);\n    return;\n  } else if (codepoint <= 2047) {\n    emit(192 | codepoint >> 6);\n    emit(128 | codepoint & 63);\n    return;\n  } else if (codepoint <= 65535) {\n    emit(224 | codepoint >> 12);\n    emit(128 | codepoint >> 6 & 63);\n    emit(128 | codepoint & 63);\n    return;\n  } else if (codepoint <= 1114111) {\n    emit(240 | codepoint >> 18);\n    emit(128 | codepoint >> 12 & 63);\n    emit(128 | codepoint >> 6 & 63);\n    emit(128 | codepoint & 63);\n    return;\n  }\n  throw new Error(`Unrecognized Unicode codepoint: ${codepoint.toString(16)}`);\n}\nfunction stringToUTF8(str, emit) {\n  for (let i = 0; i < str.length; i += 1) {\n    let codepoint = str.charCodeAt(i);\n    if (codepoint > 55295 && codepoint <= 56319) {\n      const highSurrogate = (codepoint - 55296) * 1024 & 65535;\n      const lowSurrogate = str.charCodeAt(i + 1) - 56320 & 65535;\n      codepoint = (lowSurrogate | highSurrogate) + 65536;\n      i += 1;\n    }\n    codepointToUTF8(codepoint, emit);\n  }\n}\nfunction stringFromUTF8(byte, state, emit) {\n  if (state.utf8seq === 0) {\n    if (byte <= 127) {\n      emit(byte);\n      return;\n    }\n    for (let leadingBit = 1; leadingBit < 6; leadingBit += 1) {\n      if ((byte >> 7 - leadingBit & 1) === 0) {\n        state.utf8seq = leadingBit;\n        break;\n      }\n    }\n    if (state.utf8seq === 2) {\n      state.codepoint = byte & 31;\n    } else if (state.utf8seq === 3) {\n      state.codepoint = byte & 15;\n    } else if (state.utf8seq === 4) {\n      state.codepoint = byte & 7;\n    } else {\n      throw new Error(\"Invalid UTF-8 sequence\");\n    }\n    state.utf8seq -= 1;\n  } else if (state.utf8seq > 0) {\n    if (byte <= 127) {\n      throw new Error(\"Invalid UTF-8 sequence\");\n    }\n    state.codepoint = state.codepoint << 6 | byte & 63;\n    state.utf8seq -= 1;\n    if (state.utf8seq === 0) {\n      emit(state.codepoint);\n    }\n  }\n}\nfunction base64UrlToUint8Array(str) {\n  const result = [];\n  const state = {queue: 0, queuedBits: 0};\n  const onByte = (byte) => {\n    result.push(byte);\n  };\n  for (let i = 0; i < str.length; i += 1) {\n    byteFromBase64URL(str.charCodeAt(i), state, onByte);\n  }\n  return new Uint8Array(result);\n}\nfunction stringToUint8Array(str) {\n  const result = [];\n  stringToUTF8(str, (byte) => result.push(byte));\n  return new Uint8Array(result);\n}\nfunction bytesToBase64URL(bytes) {\n  const result = [];\n  const state = {queue: 0, queuedBits: 0};\n  const onChar = (char) => {\n    result.push(char);\n  };\n  bytes.forEach((byte) => byteToBase64URL(byte, state, onChar));\n  byteToBase64URL(null, state, onChar);\n  return result.join(\"\");\n}\nfunction expiresAt(expiresIn) {\n  const timeNow = Math.round(Date.now() / 1e3);\n  return timeNow + expiresIn;\n}\nfunction uuid() {\n  return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(c) {\n    const r = Math.random() * 16 | 0, v = c == \"x\" ? r : r & 3 | 8;\n    return v.toString(16);\n  });\n}\nconst isBrowser = () => typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst localStorageWriteTests = {\n  tested: false,\n  writable: false\n};\nconst supportsLocalStorage = () => {\n  if (!isBrowser()) {\n    return false;\n  }\n  try {\n    if (typeof globalThis.localStorage !== \"object\") {\n      return false;\n    }\n  } catch (e) {\n    return false;\n  }\n  if (localStorageWriteTests.tested) {\n    return localStorageWriteTests.writable;\n  }\n  const randomKey = `lswt-${Math.random()}${Math.random()}`;\n  try {\n    globalThis.localStorage.setItem(randomKey, randomKey);\n    globalThis.localStorage.removeItem(randomKey);\n    localStorageWriteTests.tested = true;\n    localStorageWriteTests.writable = true;\n  } catch (e) {\n    localStorageWriteTests.tested = true;\n    localStorageWriteTests.writable = false;\n  }\n  return localStorageWriteTests.writable;\n};\nfunction parseParametersFromURL(href) {\n  const result = {};\n  const url = new URL(href);\n  if (url.hash && url.hash[0] === \"#\") {\n    try {\n      const hashSearchParams = new URLSearchParams(url.hash.substring(1));\n      hashSearchParams.forEach((value, key) => {\n        result[key] = value;\n      });\n    } catch (e) {\n    }\n  }\n  url.searchParams.forEach((value, key) => {\n    result[key] = value;\n  });\n  return result;\n}\nconst resolveFetch = (customFetch) => {\n  let _fetch;\n  if (customFetch) {\n    _fetch = customFetch;\n  } else if (typeof fetch === \"undefined\") {\n    _fetch = (...args) => import(\"/-/@supabase/node-fetch@v2.6.15-c5DrO8K0MoiPZxDi1V2L/dist=es2019,mode=imports/optimized/@supabase/node-fetch.js\").then(({default: fetch2}) => fetch2(...args));\n  } else {\n    _fetch = fetch;\n  }\n  return (...args) => _fetch(...args);\n};\nconst looksLikeFetchResponse = (maybeResponse) => {\n  return typeof maybeResponse === \"object\" && maybeResponse !== null && \"status\" in maybeResponse && \"ok\" in maybeResponse && \"json\" in maybeResponse && typeof maybeResponse.json === \"function\";\n};\nconst setItemAsync = async (storage, key, data) => {\n  await storage.setItem(key, JSON.stringify(data));\n};\nconst getItemAsync = async (storage, key) => {\n  const value = await storage.getItem(key);\n  if (!value) {\n    return null;\n  }\n  try {\n    return JSON.parse(value);\n  } catch (_a) {\n    return value;\n  }\n};\nconst removeItemAsync = async (storage, key) => {\n  await storage.removeItem(key);\n};\nclass Deferred {\n  constructor() {\n    this.promise = new Deferred.promiseConstructor((res, rej) => {\n      this.resolve = res;\n      this.reject = rej;\n    });\n  }\n}\nDeferred.promiseConstructor = Promise;\nfunction decodeJWT(token) {\n  const parts = token.split(\".\");\n  if (parts.length !== 3) {\n    throw new AuthInvalidJwtError(\"Invalid JWT structure\");\n  }\n  for (let i = 0; i < parts.length; i++) {\n    if (!BASE64URL_REGEX.test(parts[i])) {\n      throw new AuthInvalidJwtError(\"JWT not in base64url format\");\n    }\n  }\n  const data = {\n    header: JSON.parse(stringFromBase64URL(parts[0])),\n    payload: JSON.parse(stringFromBase64URL(parts[1])),\n    signature: base64UrlToUint8Array(parts[2]),\n    raw: {\n      header: parts[0],\n      payload: parts[1]\n    }\n  };\n  return data;\n}\nasync function sleep(time) {\n  return await new Promise((accept) => {\n    setTimeout(() => accept(null), time);\n  });\n}\nfunction retryable(fn, isRetryable) {\n  const promise = new Promise((accept, reject) => {\n    (async () => {\n      for (let attempt = 0; attempt < Infinity; attempt++) {\n        try {\n          const result = await fn(attempt);\n          if (!isRetryable(attempt, null, result)) {\n            accept(result);\n            return;\n          }\n        } catch (e) {\n          if (!isRetryable(attempt, e)) {\n            reject(e);\n            return;\n          }\n        }\n      }\n    })();\n  });\n  return promise;\n}\nfunction dec2hex(dec) {\n  return (\"0\" + dec.toString(16)).substr(-2);\n}\nfunction generatePKCEVerifier() {\n  const verifierLength = 56;\n  const array = new Uint32Array(verifierLength);\n  if (typeof crypto === \"undefined\") {\n    const charSet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~\";\n    const charSetLen = charSet.length;\n    let verifier = \"\";\n    for (let i = 0; i < verifierLength; i++) {\n      verifier += charSet.charAt(Math.floor(Math.random() * charSetLen));\n    }\n    return verifier;\n  }\n  crypto.getRandomValues(array);\n  return Array.from(array, dec2hex).join(\"\");\n}\nasync function sha256(randomString) {\n  const encoder = new TextEncoder();\n  const encodedData = encoder.encode(randomString);\n  const hash = await crypto.subtle.digest(\"SHA-256\", encodedData);\n  const bytes = new Uint8Array(hash);\n  return Array.from(bytes).map((c) => String.fromCharCode(c)).join(\"\");\n}\nasync function generatePKCEChallenge(verifier) {\n  const hasCryptoSupport = typeof crypto !== \"undefined\" && typeof crypto.subtle !== \"undefined\" && typeof TextEncoder !== \"undefined\";\n  if (!hasCryptoSupport) {\n    console.warn(\"WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256.\");\n    return verifier;\n  }\n  const hashed = await sha256(verifier);\n  return btoa(hashed).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\nasync function getCodeChallengeAndMethod(storage, storageKey, isPasswordRecovery = false) {\n  const codeVerifier = generatePKCEVerifier();\n  let storedCodeVerifier = codeVerifier;\n  if (isPasswordRecovery) {\n    storedCodeVerifier += \"/PASSWORD_RECOVERY\";\n  }\n  await setItemAsync(storage, `${storageKey}-code-verifier`, storedCodeVerifier);\n  const codeChallenge = await generatePKCEChallenge(codeVerifier);\n  const codeChallengeMethod = codeVerifier === codeChallenge ? \"plain\" : \"s256\";\n  return [codeChallenge, codeChallengeMethod];\n}\nconst API_VERSION_REGEX = /^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;\nfunction parseResponseAPIVersion(response) {\n  const apiVersion = response.headers.get(API_VERSION_HEADER_NAME);\n  if (!apiVersion) {\n    return null;\n  }\n  if (!apiVersion.match(API_VERSION_REGEX)) {\n    return null;\n  }\n  try {\n    const date = new Date(`${apiVersion}T00:00:00.0Z`);\n    return date;\n  } catch (e) {\n    return null;\n  }\n}\nfunction validateExp(exp) {\n  if (!exp) {\n    throw new Error(\"Missing exp claim\");\n  }\n  const timeNow = Math.floor(Date.now() / 1e3);\n  if (exp <= timeNow) {\n    throw new Error(\"JWT has expired\");\n  }\n}\nfunction getAlgorithm(alg) {\n  switch (alg) {\n    case \"RS256\":\n      return {\n        name: \"RSASSA-PKCS1-v1_5\",\n        hash: {name: \"SHA-256\"}\n      };\n    case \"ES256\":\n      return {\n        name: \"ECDSA\",\n        namedCurve: \"P-256\",\n        hash: {name: \"SHA-256\"}\n      };\n    default:\n      throw new Error(\"Invalid alg claim\");\n  }\n}\nconst UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;\nfunction validateUUID(str) {\n  if (!UUID_REGEX.test(str)) {\n    throw new Error(\"@supabase/auth-js: Expected parameter to be UUID but is not\");\n  }\n}\nfunction userNotAvailableProxy() {\n  const proxyTarget = {};\n  return new Proxy(proxyTarget, {\n    get: (target, prop) => {\n      if (prop === \"__isUserNotAvailableProxy\") {\n        return true;\n      }\n      if (typeof prop === \"symbol\") {\n        const sProp = prop.toString();\n        if (sProp === \"Symbol(Symbol.toPrimitive)\" || sProp === \"Symbol(Symbol.toStringTag)\" || sProp === \"Symbol(util.inspect.custom)\") {\n          return void 0;\n        }\n      }\n      throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the \"${prop}\" property of the session object is not supported. Please use getUser() instead.`);\n    },\n    set: (_target, prop) => {\n      throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the \"${prop}\" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`);\n    },\n    deleteProperty: (_target, prop) => {\n      throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the \"${prop}\" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`);\n    }\n  });\n}\nfunction deepClone(obj) {\n  return JSON.parse(JSON.stringify(obj));\n}\nvar __rest = function(s, e) {\n  var t = {};\n  for (var p in s)\n    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};\nconst _getErrorMessage = (err) => err.msg || err.message || err.error_description || err.error || JSON.stringify(err);\nconst NETWORK_ERROR_CODES = [502, 503, 504];\nasync function handleError(error) {\n  var _a;\n  if (!looksLikeFetchResponse(error)) {\n    throw new AuthRetryableFetchError(_getErrorMessage(error), 0);\n  }\n  if (NETWORK_ERROR_CODES.includes(error.status)) {\n    throw new AuthRetryableFetchError(_getErrorMessage(error), error.status);\n  }\n  let data;\n  try {\n    data = await error.json();\n  } catch (e) {\n    throw new AuthUnknownError(_getErrorMessage(e), e);\n  }\n  let errorCode = void 0;\n  const responseAPIVersion = parseResponseAPIVersion(error);\n  if (responseAPIVersion && responseAPIVersion.getTime() >= API_VERSIONS[\"2024-01-01\"].timestamp && typeof data === \"object\" && data && typeof data.code === \"string\") {\n    errorCode = data.code;\n  } else if (typeof data === \"object\" && data && typeof data.error_code === \"string\") {\n    errorCode = data.error_code;\n  }\n  if (!errorCode) {\n    if (typeof data === \"object\" && data && typeof data.weak_password === \"object\" && data.weak_password && Array.isArray(data.weak_password.reasons) && data.weak_password.reasons.length && data.weak_password.reasons.reduce((a, i) => a && typeof i === \"string\", true)) {\n      throw new AuthWeakPasswordError(_getErrorMessage(data), error.status, data.weak_password.reasons);\n    }\n  } else if (errorCode === \"weak_password\") {\n    throw new AuthWeakPasswordError(_getErrorMessage(data), error.status, ((_a = data.weak_password) === null || _a === void 0 ? void 0 : _a.reasons) || []);\n  } else if (errorCode === \"session_not_found\") {\n    throw new AuthSessionMissingError();\n  }\n  throw new AuthApiError(_getErrorMessage(data), error.status || 500, errorCode);\n}\nconst _getRequestParams = (method, options, parameters, body) => {\n  const params = {method, headers: (options === null || options === void 0 ? void 0 : options.headers) || {}};\n  if (method === \"GET\") {\n    return params;\n  }\n  params.headers = Object.assign({\"Content-Type\": \"application/json;charset=UTF-8\"}, options === null || options === void 0 ? void 0 : options.headers);\n  params.body = JSON.stringify(body);\n  return Object.assign(Object.assign({}, params), parameters);\n};\nasync function _request(fetcher, method, url, options) {\n  var _a;\n  const headers = Object.assign({}, options === null || options === void 0 ? void 0 : options.headers);\n  if (!headers[API_VERSION_HEADER_NAME]) {\n    headers[API_VERSION_HEADER_NAME] = API_VERSIONS[\"2024-01-01\"].name;\n  }\n  if (options === null || options === void 0 ? void 0 : options.jwt) {\n    headers[\"Authorization\"] = `Bearer ${options.jwt}`;\n  }\n  const qs = (_a = options === null || options === void 0 ? void 0 : options.query) !== null && _a !== void 0 ? _a : {};\n  if (options === null || options === void 0 ? void 0 : options.redirectTo) {\n    qs[\"redirect_to\"] = options.redirectTo;\n  }\n  const queryString = Object.keys(qs).length ? \"?\" + new URLSearchParams(qs).toString() : \"\";\n  const data = await _handleRequest(fetcher, method, url + queryString, {\n    headers,\n    noResolveJson: options === null || options === void 0 ? void 0 : options.noResolveJson\n  }, {}, options === null || options === void 0 ? void 0 : options.body);\n  return (options === null || options === void 0 ? void 0 : options.xform) ? options === null || options === void 0 ? void 0 : options.xform(data) : {data: Object.assign({}, data), error: null};\n}\nasync function _handleRequest(fetcher, method, url, options, parameters, body) {\n  const requestParams = _getRequestParams(method, options, parameters, body);\n  let result;\n  try {\n    result = await fetcher(url, Object.assign({}, requestParams));\n  } catch (e) {\n    console.error(e);\n    throw new AuthRetryableFetchError(_getErrorMessage(e), 0);\n  }\n  if (!result.ok) {\n    await handleError(result);\n  }\n  if (options === null || options === void 0 ? void 0 : options.noResolveJson) {\n    return result;\n  }\n  try {\n    return await result.json();\n  } catch (e) {\n    await handleError(e);\n  }\n}\nfunction _sessionResponse(data) {\n  var _a;\n  let session = null;\n  if (hasSession(data)) {\n    session = Object.assign({}, data);\n    if (!data.expires_at) {\n      session.expires_at = expiresAt(data.expires_in);\n    }\n  }\n  const user = (_a = data.user) !== null && _a !== void 0 ? _a : data;\n  return {data: {session, user}, error: null};\n}\nfunction _sessionResponsePassword(data) {\n  const response = _sessionResponse(data);\n  if (!response.error && data.weak_password && typeof data.weak_password === \"object\" && Array.isArray(data.weak_password.reasons) && data.weak_password.reasons.length && data.weak_password.message && typeof data.weak_password.message === \"string\" && data.weak_password.reasons.reduce((a, i) => a && typeof i === \"string\", true)) {\n    response.data.weak_password = data.weak_password;\n  }\n  return response;\n}\nfunction _userResponse(data) {\n  var _a;\n  const user = (_a = data.user) !== null && _a !== void 0 ? _a : data;\n  return {data: {user}, error: null};\n}\nfunction _ssoResponse(data) {\n  return {data, error: null};\n}\nfunction _generateLinkResponse(data) {\n  const {action_link, email_otp, hashed_token, redirect_to, verification_type} = data, rest = __rest(data, [\"action_link\", \"email_otp\", \"hashed_token\", \"redirect_to\", \"verification_type\"]);\n  const properties = {\n    action_link,\n    email_otp,\n    hashed_token,\n    redirect_to,\n    verification_type\n  };\n  const user = Object.assign({}, rest);\n  return {\n    data: {\n      properties,\n      user\n    },\n    error: null\n  };\n}\nfunction _noResolveJsonResponse(data) {\n  return data;\n}\nfunction hasSession(data) {\n  return data.access_token && data.refresh_token && data.expires_in;\n}\nconst SIGN_OUT_SCOPES = [\"global\", \"local\", \"others\"];\nvar __rest$1 = function(s, e) {\n  var t = {};\n  for (var p in s)\n    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};\nclass GoTrueAdminApi {\n  constructor({url = \"\", headers = {}, fetch: fetch2}) {\n    this.url = url;\n    this.headers = headers;\n    this.fetch = resolveFetch(fetch2);\n    this.mfa = {\n      listFactors: this._listFactors.bind(this),\n      deleteFactor: this._deleteFactor.bind(this)\n    };\n  }\n  async signOut(jwt, scope = SIGN_OUT_SCOPES[0]) {\n    if (SIGN_OUT_SCOPES.indexOf(scope) < 0) {\n      throw new Error(`@supabase/auth-js: Parameter scope must be one of ${SIGN_OUT_SCOPES.join(\", \")}`);\n    }\n    try {\n      await _request(this.fetch, \"POST\", `${this.url}/logout?scope=${scope}`, {\n        headers: this.headers,\n        jwt,\n        noResolveJson: true\n      });\n      return {data: null, error: null};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: null, error};\n      }\n      throw error;\n    }\n  }\n  async inviteUserByEmail(email, options = {}) {\n    try {\n      return await _request(this.fetch, \"POST\", `${this.url}/invite`, {\n        body: {email, data: options.data},\n        headers: this.headers,\n        redirectTo: options.redirectTo,\n        xform: _userResponse\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null}, error};\n      }\n      throw error;\n    }\n  }\n  async generateLink(params) {\n    try {\n      const {options} = params, rest = __rest$1(params, [\"options\"]);\n      const body = Object.assign(Object.assign({}, rest), options);\n      if (\"newEmail\" in rest) {\n        body.new_email = rest === null || rest === void 0 ? void 0 : rest.newEmail;\n        delete body[\"newEmail\"];\n      }\n      return await _request(this.fetch, \"POST\", `${this.url}/admin/generate_link`, {\n        body,\n        headers: this.headers,\n        xform: _generateLinkResponse,\n        redirectTo: options === null || options === void 0 ? void 0 : options.redirectTo\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {\n          data: {\n            properties: null,\n            user: null\n          },\n          error\n        };\n      }\n      throw error;\n    }\n  }\n  async createUser(attributes) {\n    try {\n      return await _request(this.fetch, \"POST\", `${this.url}/admin/users`, {\n        body: attributes,\n        headers: this.headers,\n        xform: _userResponse\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null}, error};\n      }\n      throw error;\n    }\n  }\n  async listUsers(params) {\n    var _a, _b, _c, _d, _e, _f, _g;\n    try {\n      const pagination = {nextPage: null, lastPage: 0, total: 0};\n      const response = await _request(this.fetch, \"GET\", `${this.url}/admin/users`, {\n        headers: this.headers,\n        noResolveJson: true,\n        query: {\n          page: (_b = (_a = params === null || params === void 0 ? void 0 : params.page) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : \"\",\n          per_page: (_d = (_c = params === null || params === void 0 ? void 0 : params.perPage) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : \"\"\n        },\n        xform: _noResolveJsonResponse\n      });\n      if (response.error)\n        throw response.error;\n      const users = await response.json();\n      const total = (_e = response.headers.get(\"x-total-count\")) !== null && _e !== void 0 ? _e : 0;\n      const links = (_g = (_f = response.headers.get(\"link\")) === null || _f === void 0 ? void 0 : _f.split(\",\")) !== null && _g !== void 0 ? _g : [];\n      if (links.length > 0) {\n        links.forEach((link) => {\n          const page = parseInt(link.split(\";\")[0].split(\"=\")[1].substring(0, 1));\n          const rel = JSON.parse(link.split(\";\")[1].split(\"=\")[1]);\n          pagination[`${rel}Page`] = page;\n        });\n        pagination.total = parseInt(total);\n      }\n      return {data: Object.assign(Object.assign({}, users), pagination), error: null};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {users: []}, error};\n      }\n      throw error;\n    }\n  }\n  async getUserById(uid) {\n    validateUUID(uid);\n    try {\n      return await _request(this.fetch, \"GET\", `${this.url}/admin/users/${uid}`, {\n        headers: this.headers,\n        xform: _userResponse\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null}, error};\n      }\n      throw error;\n    }\n  }\n  async updateUserById(uid, attributes) {\n    validateUUID(uid);\n    try {\n      return await _request(this.fetch, \"PUT\", `${this.url}/admin/users/${uid}`, {\n        body: attributes,\n        headers: this.headers,\n        xform: _userResponse\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null}, error};\n      }\n      throw error;\n    }\n  }\n  async deleteUser(id, shouldSoftDelete = false) {\n    validateUUID(id);\n    try {\n      return await _request(this.fetch, \"DELETE\", `${this.url}/admin/users/${id}`, {\n        headers: this.headers,\n        body: {\n          should_soft_delete: shouldSoftDelete\n        },\n        xform: _userResponse\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null}, error};\n      }\n      throw error;\n    }\n  }\n  async _listFactors(params) {\n    validateUUID(params.userId);\n    try {\n      const {data, error} = await _request(this.fetch, \"GET\", `${this.url}/admin/users/${params.userId}/factors`, {\n        headers: this.headers,\n        xform: (factors) => {\n          return {data: {factors}, error: null};\n        }\n      });\n      return {data, error};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: null, error};\n      }\n      throw error;\n    }\n  }\n  async _deleteFactor(params) {\n    validateUUID(params.userId);\n    validateUUID(params.id);\n    try {\n      const data = await _request(this.fetch, \"DELETE\", `${this.url}/admin/users/${params.userId}/factors/${params.id}`, {\n        headers: this.headers\n      });\n      return {data, error: null};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: null, error};\n      }\n      throw error;\n    }\n  }\n}\nfunction memoryLocalStorageAdapter(store = {}) {\n  return {\n    getItem: (key) => {\n      return store[key] || null;\n    },\n    setItem: (key, value) => {\n      store[key] = value;\n    },\n    removeItem: (key) => {\n      delete store[key];\n    }\n  };\n}\nfunction polyfillGlobalThis() {\n  if (typeof globalThis === \"object\")\n    return;\n  try {\n    Object.defineProperty(Object.prototype, \"__magic__\", {\n      get: function() {\n        return this;\n      },\n      configurable: true\n    });\n    __magic__.globalThis = __magic__;\n    delete Object.prototype.__magic__;\n  } catch (e) {\n    if (typeof self !== \"undefined\") {\n      self.globalThis = self;\n    }\n  }\n}\nconst internals = {\n  debug: !!(globalThis && supportsLocalStorage() && globalThis.localStorage && globalThis.localStorage.getItem(\"supabase.gotrue-js.locks.debug\") === \"true\")\n};\nclass LockAcquireTimeoutError extends Error {\n  constructor(message) {\n    super(message);\n    this.isAcquireTimeout = true;\n  }\n}\nclass NavigatorLockAcquireTimeoutError extends LockAcquireTimeoutError {\n}\nclass ProcessLockAcquireTimeoutError extends LockAcquireTimeoutError {\n}\nasync function navigatorLock(name, acquireTimeout, fn) {\n  if (internals.debug) {\n    console.log(\"@supabase/gotrue-js: navigatorLock: acquire lock\", name, acquireTimeout);\n  }\n  const abortController = new globalThis.AbortController();\n  if (acquireTimeout > 0) {\n    setTimeout(() => {\n      abortController.abort();\n      if (internals.debug) {\n        console.log(\"@supabase/gotrue-js: navigatorLock acquire timed out\", name);\n      }\n    }, acquireTimeout);\n  }\n  return await Promise.resolve().then(() => globalThis.navigator.locks.request(name, acquireTimeout === 0 ? {\n    mode: \"exclusive\",\n    ifAvailable: true\n  } : {\n    mode: \"exclusive\",\n    signal: abortController.signal\n  }, async (lock) => {\n    if (lock) {\n      if (internals.debug) {\n        console.log(\"@supabase/gotrue-js: navigatorLock: acquired\", name, lock.name);\n      }\n      try {\n        return await fn();\n      } finally {\n        if (internals.debug) {\n          console.log(\"@supabase/gotrue-js: navigatorLock: released\", name, lock.name);\n        }\n      }\n    } else {\n      if (acquireTimeout === 0) {\n        if (internals.debug) {\n          console.log(\"@supabase/gotrue-js: navigatorLock: not immediately available\", name);\n        }\n        throw new NavigatorLockAcquireTimeoutError(`Acquiring an exclusive Navigator LockManager lock \"${name}\" immediately failed`);\n      } else {\n        if (internals.debug) {\n          try {\n            const result = await globalThis.navigator.locks.query();\n            console.log(\"@supabase/gotrue-js: Navigator LockManager state\", JSON.stringify(result, null, \"  \"));\n          } catch (e) {\n            console.warn(\"@supabase/gotrue-js: Error when querying Navigator LockManager state\", e);\n          }\n        }\n        console.warn(\"@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request\");\n        return await fn();\n      }\n    }\n  }));\n}\nconst PROCESS_LOCKS = {};\nasync function processLock(name, acquireTimeout, fn) {\n  var _a;\n  const previousOperation = (_a = PROCESS_LOCKS[name]) !== null && _a !== void 0 ? _a : Promise.resolve();\n  const currentOperation = Promise.race([\n    previousOperation.catch(() => {\n      return null;\n    }),\n    acquireTimeout >= 0 ? new Promise((_, reject) => {\n      setTimeout(() => {\n        reject(new ProcessLockAcquireTimeoutError(`Acquring process lock with name \"${name}\" timed out`));\n      }, acquireTimeout);\n    }) : null\n  ].filter((x) => x)).catch((e) => {\n    if (e && e.isAcquireTimeout) {\n      throw e;\n    }\n    return null;\n  }).then(async () => {\n    return await fn();\n  });\n  PROCESS_LOCKS[name] = currentOperation.catch(async (e) => {\n    if (e && e.isAcquireTimeout) {\n      await previousOperation;\n      return null;\n    }\n    throw e;\n  });\n  return await currentOperation;\n}\npolyfillGlobalThis();\nconst DEFAULT_OPTIONS = {\n  url: GOTRUE_URL,\n  storageKey: STORAGE_KEY,\n  autoRefreshToken: true,\n  persistSession: true,\n  detectSessionInUrl: true,\n  headers: DEFAULT_HEADERS,\n  flowType: \"implicit\",\n  debug: false,\n  hasCustomAuthorizationHeader: false\n};\nasync function lockNoOp(name, acquireTimeout, fn) {\n  return await fn();\n}\nconst GLOBAL_JWKS = {};\nclass GoTrueClient {\n  constructor(options) {\n    var _a, _b;\n    this.userStorage = null;\n    this.memoryStorage = null;\n    this.stateChangeEmitters = new Map();\n    this.autoRefreshTicker = null;\n    this.visibilityChangedCallback = null;\n    this.refreshingDeferred = null;\n    this.initializePromise = null;\n    this.detectSessionInUrl = true;\n    this.hasCustomAuthorizationHeader = false;\n    this.suppressGetSessionWarning = false;\n    this.lockAcquired = false;\n    this.pendingInLock = [];\n    this.broadcastChannel = null;\n    this.logger = console.log;\n    this.instanceID = GoTrueClient.nextInstanceID;\n    GoTrueClient.nextInstanceID += 1;\n    if (this.instanceID > 0 && isBrowser()) {\n      console.warn(\"Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.\");\n    }\n    const settings = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);\n    this.logDebugMessages = !!settings.debug;\n    if (typeof settings.debug === \"function\") {\n      this.logger = settings.debug;\n    }\n    this.persistSession = settings.persistSession;\n    this.storageKey = settings.storageKey;\n    this.autoRefreshToken = settings.autoRefreshToken;\n    this.admin = new GoTrueAdminApi({\n      url: settings.url,\n      headers: settings.headers,\n      fetch: settings.fetch\n    });\n    this.url = settings.url;\n    this.headers = settings.headers;\n    this.fetch = resolveFetch(settings.fetch);\n    this.lock = settings.lock || lockNoOp;\n    this.detectSessionInUrl = settings.detectSessionInUrl;\n    this.flowType = settings.flowType;\n    this.hasCustomAuthorizationHeader = settings.hasCustomAuthorizationHeader;\n    if (settings.lock) {\n      this.lock = settings.lock;\n    } else if (isBrowser() && ((_a = globalThis === null || globalThis === void 0 ? void 0 : globalThis.navigator) === null || _a === void 0 ? void 0 : _a.locks)) {\n      this.lock = navigatorLock;\n    } else {\n      this.lock = lockNoOp;\n    }\n    if (!this.jwks) {\n      this.jwks = {keys: []};\n      this.jwks_cached_at = Number.MIN_SAFE_INTEGER;\n    }\n    this.mfa = {\n      verify: this._verify.bind(this),\n      enroll: this._enroll.bind(this),\n      unenroll: this._unenroll.bind(this),\n      challenge: this._challenge.bind(this),\n      listFactors: this._listFactors.bind(this),\n      challengeAndVerify: this._challengeAndVerify.bind(this),\n      getAuthenticatorAssuranceLevel: this._getAuthenticatorAssuranceLevel.bind(this)\n    };\n    if (this.persistSession) {\n      if (settings.storage) {\n        this.storage = settings.storage;\n      } else {\n        if (supportsLocalStorage()) {\n          this.storage = globalThis.localStorage;\n        } else {\n          this.memoryStorage = {};\n          this.storage = memoryLocalStorageAdapter(this.memoryStorage);\n        }\n      }\n      if (settings.userStorage) {\n        this.userStorage = settings.userStorage;\n      }\n    } else {\n      this.memoryStorage = {};\n      this.storage = memoryLocalStorageAdapter(this.memoryStorage);\n    }\n    if (isBrowser() && globalThis.BroadcastChannel && this.persistSession && this.storageKey) {\n      try {\n        this.broadcastChannel = new globalThis.BroadcastChannel(this.storageKey);\n      } catch (e) {\n        console.error(\"Failed to create a new BroadcastChannel, multi-tab state changes will not be available\", e);\n      }\n      (_b = this.broadcastChannel) === null || _b === void 0 ? void 0 : _b.addEventListener(\"message\", async (event) => {\n        this._debug(\"received broadcast notification from other tab or client\", event);\n        await this._notifyAllSubscribers(event.data.event, event.data.session, false);\n      });\n    }\n    this.initialize();\n  }\n  get jwks() {\n    var _a, _b;\n    return (_b = (_a = GLOBAL_JWKS[this.storageKey]) === null || _a === void 0 ? void 0 : _a.jwks) !== null && _b !== void 0 ? _b : {keys: []};\n  }\n  set jwks(value) {\n    GLOBAL_JWKS[this.storageKey] = Object.assign(Object.assign({}, GLOBAL_JWKS[this.storageKey]), {jwks: value});\n  }\n  get jwks_cached_at() {\n    var _a, _b;\n    return (_b = (_a = GLOBAL_JWKS[this.storageKey]) === null || _a === void 0 ? void 0 : _a.cachedAt) !== null && _b !== void 0 ? _b : Number.MIN_SAFE_INTEGER;\n  }\n  set jwks_cached_at(value) {\n    GLOBAL_JWKS[this.storageKey] = Object.assign(Object.assign({}, GLOBAL_JWKS[this.storageKey]), {cachedAt: value});\n  }\n  _debug(...args) {\n    if (this.logDebugMessages) {\n      this.logger(`GoTrueClient@${this.instanceID} (${version}) ${new Date().toISOString()}`, ...args);\n    }\n    return this;\n  }\n  async initialize() {\n    if (this.initializePromise) {\n      return await this.initializePromise;\n    }\n    this.initializePromise = (async () => {\n      return await this._acquireLock(-1, async () => {\n        return await this._initialize();\n      });\n    })();\n    return await this.initializePromise;\n  }\n  async _initialize() {\n    var _a;\n    try {\n      const params = parseParametersFromURL(window.location.href);\n      let callbackUrlType = \"none\";\n      if (this._isImplicitGrantCallback(params)) {\n        callbackUrlType = \"implicit\";\n      } else if (await this._isPKCECallback(params)) {\n        callbackUrlType = \"pkce\";\n      }\n      if (isBrowser() && this.detectSessionInUrl && callbackUrlType !== \"none\") {\n        const {data, error} = await this._getSessionFromURL(params, callbackUrlType);\n        if (error) {\n          this._debug(\"#_initialize()\", \"error detecting session from URL\", error);\n          if (isAuthImplicitGrantRedirectError(error)) {\n            const errorCode = (_a = error.details) === null || _a === void 0 ? void 0 : _a.code;\n            if (errorCode === \"identity_already_exists\" || errorCode === \"identity_not_found\" || errorCode === \"single_identity_not_deletable\") {\n              return {error};\n            }\n          }\n          await this._removeSession();\n          return {error};\n        }\n        const {session, redirectType} = data;\n        this._debug(\"#_initialize()\", \"detected session in URL\", session, \"redirect type\", redirectType);\n        await this._saveSession(session);\n        setTimeout(async () => {\n          if (redirectType === \"recovery\") {\n            await this._notifyAllSubscribers(\"PASSWORD_RECOVERY\", session);\n          } else {\n            await this._notifyAllSubscribers(\"SIGNED_IN\", session);\n          }\n        }, 0);\n        return {error: null};\n      }\n      await this._recoverAndRefresh();\n      return {error: null};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {error};\n      }\n      return {\n        error: new AuthUnknownError(\"Unexpected error during initialization\", error)\n      };\n    } finally {\n      await this._handleVisibilityChange();\n      this._debug(\"#_initialize()\", \"end\");\n    }\n  }\n  async signInAnonymously(credentials) {\n    var _a, _b, _c;\n    try {\n      const res = await _request(this.fetch, \"POST\", `${this.url}/signup`, {\n        headers: this.headers,\n        body: {\n          data: (_b = (_a = credentials === null || credentials === void 0 ? void 0 : credentials.options) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : {},\n          gotrue_meta_security: {captcha_token: (_c = credentials === null || credentials === void 0 ? void 0 : credentials.options) === null || _c === void 0 ? void 0 : _c.captchaToken}\n        },\n        xform: _sessionResponse\n      });\n      const {data, error} = res;\n      if (error || !data) {\n        return {data: {user: null, session: null}, error};\n      }\n      const session = data.session;\n      const user = data.user;\n      if (data.session) {\n        await this._saveSession(data.session);\n        await this._notifyAllSubscribers(\"SIGNED_IN\", session);\n      }\n      return {data: {user, session}, error: null};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null, session: null}, error};\n      }\n      throw error;\n    }\n  }\n  async signUp(credentials) {\n    var _a, _b, _c;\n    try {\n      let res;\n      if (\"email\" in credentials) {\n        const {email, password, options} = credentials;\n        let codeChallenge = null;\n        let codeChallengeMethod = null;\n        if (this.flowType === \"pkce\") {\n          ;\n          [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey);\n        }\n        res = await _request(this.fetch, \"POST\", `${this.url}/signup`, {\n          headers: this.headers,\n          redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,\n          body: {\n            email,\n            password,\n            data: (_a = options === null || options === void 0 ? void 0 : options.data) !== null && _a !== void 0 ? _a : {},\n            gotrue_meta_security: {captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken},\n            code_challenge: codeChallenge,\n            code_challenge_method: codeChallengeMethod\n          },\n          xform: _sessionResponse\n        });\n      } else if (\"phone\" in credentials) {\n        const {phone, password, options} = credentials;\n        res = await _request(this.fetch, \"POST\", `${this.url}/signup`, {\n          headers: this.headers,\n          body: {\n            phone,\n            password,\n            data: (_b = options === null || options === void 0 ? void 0 : options.data) !== null && _b !== void 0 ? _b : {},\n            channel: (_c = options === null || options === void 0 ? void 0 : options.channel) !== null && _c !== void 0 ? _c : \"sms\",\n            gotrue_meta_security: {captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken}\n          },\n          xform: _sessionResponse\n        });\n      } else {\n        throw new AuthInvalidCredentialsError(\"You must provide either an email or phone number and a password\");\n      }\n      const {data, error} = res;\n      if (error || !data) {\n        return {data: {user: null, session: null}, error};\n      }\n      const session = data.session;\n      const user = data.user;\n      if (data.session) {\n        await this._saveSession(data.session);\n        await this._notifyAllSubscribers(\"SIGNED_IN\", session);\n      }\n      return {data: {user, session}, error: null};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null, session: null}, error};\n      }\n      throw error;\n    }\n  }\n  async signInWithPassword(credentials) {\n    try {\n      let res;\n      if (\"email\" in credentials) {\n        const {email, password, options} = credentials;\n        res = await _request(this.fetch, \"POST\", `${this.url}/token?grant_type=password`, {\n          headers: this.headers,\n          body: {\n            email,\n            password,\n            gotrue_meta_security: {captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken}\n          },\n          xform: _sessionResponsePassword\n        });\n      } else if (\"phone\" in credentials) {\n        const {phone, password, options} = credentials;\n        res = await _request(this.fetch, \"POST\", `${this.url}/token?grant_type=password`, {\n          headers: this.headers,\n          body: {\n            phone,\n            password,\n            gotrue_meta_security: {captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken}\n          },\n          xform: _sessionResponsePassword\n        });\n      } else {\n        throw new AuthInvalidCredentialsError(\"You must provide either an email or phone number and a password\");\n      }\n      const {data, error} = res;\n      if (error) {\n        return {data: {user: null, session: null}, error};\n      } else if (!data || !data.session || !data.user) {\n        return {data: {user: null, session: null}, error: new AuthInvalidTokenResponseError()};\n      }\n      if (data.session) {\n        await this._saveSession(data.session);\n        await this._notifyAllSubscribers(\"SIGNED_IN\", data.session);\n      }\n      return {\n        data: Object.assign({user: data.user, session: data.session}, data.weak_password ? {weakPassword: data.weak_password} : null),\n        error\n      };\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null, session: null}, error};\n      }\n      throw error;\n    }\n  }\n  async signInWithOAuth(credentials) {\n    var _a, _b, _c, _d;\n    return await this._handleProviderSignIn(credentials.provider, {\n      redirectTo: (_a = credentials.options) === null || _a === void 0 ? void 0 : _a.redirectTo,\n      scopes: (_b = credentials.options) === null || _b === void 0 ? void 0 : _b.scopes,\n      queryParams: (_c = credentials.options) === null || _c === void 0 ? void 0 : _c.queryParams,\n      skipBrowserRedirect: (_d = credentials.options) === null || _d === void 0 ? void 0 : _d.skipBrowserRedirect\n    });\n  }\n  async exchangeCodeForSession(authCode) {\n    await this.initializePromise;\n    return this._acquireLock(-1, async () => {\n      return this._exchangeCodeForSession(authCode);\n    });\n  }\n  async signInWithWeb3(credentials) {\n    const {chain} = credentials;\n    if (chain === \"solana\") {\n      return await this.signInWithSolana(credentials);\n    }\n    throw new Error(`@supabase/auth-js: Unsupported chain \"${chain}\"`);\n  }\n  async signInWithSolana(credentials) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n    let message;\n    let signature;\n    if (\"message\" in credentials) {\n      message = credentials.message;\n      signature = credentials.signature;\n    } else {\n      const {chain, wallet, statement, options} = credentials;\n      let resolvedWallet;\n      if (!isBrowser()) {\n        if (typeof wallet !== \"object\" || !(options === null || options === void 0 ? void 0 : options.url)) {\n          throw new Error(\"@supabase/auth-js: Both wallet and url must be specified in non-browser environments.\");\n        }\n        resolvedWallet = wallet;\n      } else if (typeof wallet === \"object\") {\n        resolvedWallet = wallet;\n      } else {\n        const windowAny = window;\n        if (\"solana\" in windowAny && typeof windowAny.solana === \"object\" && (\"signIn\" in windowAny.solana && typeof windowAny.solana.signIn === \"function\" || \"signMessage\" in windowAny.solana && typeof windowAny.solana.signMessage === \"function\")) {\n          resolvedWallet = windowAny.solana;\n        } else {\n          throw new Error(`@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.`);\n        }\n      }\n      const url = new URL((_a = options === null || options === void 0 ? void 0 : options.url) !== null && _a !== void 0 ? _a : window.location.href);\n      if (\"signIn\" in resolvedWallet && resolvedWallet.signIn) {\n        const output = await resolvedWallet.signIn(Object.assign(Object.assign(Object.assign({issuedAt: new Date().toISOString()}, options === null || options === void 0 ? void 0 : options.signInWithSolana), {\n          version: \"1\",\n          domain: url.host,\n          uri: url.href\n        }), statement ? {statement} : null));\n        let outputToProcess;\n        if (Array.isArray(output) && output[0] && typeof output[0] === \"object\") {\n          outputToProcess = output[0];\n        } else if (output && typeof output === \"object\" && \"signedMessage\" in output && \"signature\" in output) {\n          outputToProcess = output;\n        } else {\n          throw new Error(\"@supabase/auth-js: Wallet method signIn() returned unrecognized value\");\n        }\n        if (\"signedMessage\" in outputToProcess && \"signature\" in outputToProcess && (typeof outputToProcess.signedMessage === \"string\" || outputToProcess.signedMessage instanceof Uint8Array) && outputToProcess.signature instanceof Uint8Array) {\n          message = typeof outputToProcess.signedMessage === \"string\" ? outputToProcess.signedMessage : new TextDecoder().decode(outputToProcess.signedMessage);\n          signature = outputToProcess.signature;\n        } else {\n          throw new Error(\"@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields\");\n        }\n      } else {\n        if (!(\"signMessage\" in resolvedWallet) || typeof resolvedWallet.signMessage !== \"function\" || !(\"publicKey\" in resolvedWallet) || typeof resolvedWallet !== \"object\" || !resolvedWallet.publicKey || !(\"toBase58\" in resolvedWallet.publicKey) || typeof resolvedWallet.publicKey.toBase58 !== \"function\") {\n          throw new Error(\"@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API\");\n        }\n        message = [\n          `${url.host} wants you to sign in with your Solana account:`,\n          resolvedWallet.publicKey.toBase58(),\n          ...statement ? [\"\", statement, \"\"] : [\"\"],\n          \"Version: 1\",\n          `URI: ${url.href}`,\n          `Issued At: ${(_c = (_b = options === null || options === void 0 ? void 0 : options.signInWithSolana) === null || _b === void 0 ? void 0 : _b.issuedAt) !== null && _c !== void 0 ? _c : new Date().toISOString()}`,\n          ...((_d = options === null || options === void 0 ? void 0 : options.signInWithSolana) === null || _d === void 0 ? void 0 : _d.notBefore) ? [`Not Before: ${options.signInWithSolana.notBefore}`] : [],\n          ...((_e = options === null || options === void 0 ? void 0 : options.signInWithSolana) === null || _e === void 0 ? void 0 : _e.expirationTime) ? [`Expiration Time: ${options.signInWithSolana.expirationTime}`] : [],\n          ...((_f = options === null || options === void 0 ? void 0 : options.signInWithSolana) === null || _f === void 0 ? void 0 : _f.chainId) ? [`Chain ID: ${options.signInWithSolana.chainId}`] : [],\n          ...((_g = options === null || options === void 0 ? void 0 : options.signInWithSolana) === null || _g === void 0 ? void 0 : _g.nonce) ? [`Nonce: ${options.signInWithSolana.nonce}`] : [],\n          ...((_h = options === null || options === void 0 ? void 0 : options.signInWithSolana) === null || _h === void 0 ? void 0 : _h.requestId) ? [`Request ID: ${options.signInWithSolana.requestId}`] : [],\n          ...((_k = (_j = options === null || options === void 0 ? void 0 : options.signInWithSolana) === null || _j === void 0 ? void 0 : _j.resources) === null || _k === void 0 ? void 0 : _k.length) ? [\n            \"Resources\",\n            ...options.signInWithSolana.resources.map((resource) => `- ${resource}`)\n          ] : []\n        ].join(\"\\n\");\n        const maybeSignature = await resolvedWallet.signMessage(new TextEncoder().encode(message), \"utf8\");\n        if (!maybeSignature || !(maybeSignature instanceof Uint8Array)) {\n          throw new Error(\"@supabase/auth-js: Wallet signMessage() API returned an recognized value\");\n        }\n        signature = maybeSignature;\n      }\n    }\n    try {\n      const {data, error} = await _request(this.fetch, \"POST\", `${this.url}/token?grant_type=web3`, {\n        headers: this.headers,\n        body: Object.assign({chain: \"solana\", message, signature: bytesToBase64URL(signature)}, ((_l = credentials.options) === null || _l === void 0 ? void 0 : _l.captchaToken) ? {gotrue_meta_security: {captcha_token: (_m = credentials.options) === null || _m === void 0 ? void 0 : _m.captchaToken}} : null),\n        xform: _sessionResponse\n      });\n      if (error) {\n        throw error;\n      }\n      if (!data || !data.session || !data.user) {\n        return {\n          data: {user: null, session: null},\n          error: new AuthInvalidTokenResponseError()\n        };\n      }\n      if (data.session) {\n        await this._saveSession(data.session);\n        await this._notifyAllSubscribers(\"SIGNED_IN\", data.session);\n      }\n      return {data: Object.assign({}, data), error};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null, session: null}, error};\n      }\n      throw error;\n    }\n  }\n  async _exchangeCodeForSession(authCode) {\n    const storageItem = await getItemAsync(this.storage, `${this.storageKey}-code-verifier`);\n    const [codeVerifier, redirectType] = (storageItem !== null && storageItem !== void 0 ? storageItem : \"\").split(\"/\");\n    try {\n      const {data, error} = await _request(this.fetch, \"POST\", `${this.url}/token?grant_type=pkce`, {\n        headers: this.headers,\n        body: {\n          auth_code: authCode,\n          code_verifier: codeVerifier\n        },\n        xform: _sessionResponse\n      });\n      await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`);\n      if (error) {\n        throw error;\n      }\n      if (!data || !data.session || !data.user) {\n        return {\n          data: {user: null, session: null, redirectType: null},\n          error: new AuthInvalidTokenResponseError()\n        };\n      }\n      if (data.session) {\n        await this._saveSession(data.session);\n        await this._notifyAllSubscribers(\"SIGNED_IN\", data.session);\n      }\n      return {data: Object.assign(Object.assign({}, data), {redirectType: redirectType !== null && redirectType !== void 0 ? redirectType : null}), error};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null, session: null, redirectType: null}, error};\n      }\n      throw error;\n    }\n  }\n  async signInWithIdToken(credentials) {\n    try {\n      const {options, provider, token, access_token, nonce} = credentials;\n      const res = await _request(this.fetch, \"POST\", `${this.url}/token?grant_type=id_token`, {\n        headers: this.headers,\n        body: {\n          provider,\n          id_token: token,\n          access_token,\n          nonce,\n          gotrue_meta_security: {captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken}\n        },\n        xform: _sessionResponse\n      });\n      const {data, error} = res;\n      if (error) {\n        return {data: {user: null, session: null}, error};\n      } else if (!data || !data.session || !data.user) {\n        return {\n          data: {user: null, session: null},\n          error: new AuthInvalidTokenResponseError()\n        };\n      }\n      if (data.session) {\n        await this._saveSession(data.session);\n        await this._notifyAllSubscribers(\"SIGNED_IN\", data.session);\n      }\n      return {data, error};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null, session: null}, error};\n      }\n      throw error;\n    }\n  }\n  async signInWithOtp(credentials) {\n    var _a, _b, _c, _d, _e;\n    try {\n      if (\"email\" in credentials) {\n        const {email, options} = credentials;\n        let codeChallenge = null;\n        let codeChallengeMethod = null;\n        if (this.flowType === \"pkce\") {\n          ;\n          [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey);\n        }\n        const {error} = await _request(this.fetch, \"POST\", `${this.url}/otp`, {\n          headers: this.headers,\n          body: {\n            email,\n            data: (_a = options === null || options === void 0 ? void 0 : options.data) !== null && _a !== void 0 ? _a : {},\n            create_user: (_b = options === null || options === void 0 ? void 0 : options.shouldCreateUser) !== null && _b !== void 0 ? _b : true,\n            gotrue_meta_security: {captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken},\n            code_challenge: codeChallenge,\n            code_challenge_method: codeChallengeMethod\n          },\n          redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo\n        });\n        return {data: {user: null, session: null}, error};\n      }\n      if (\"phone\" in credentials) {\n        const {phone, options} = credentials;\n        const {data, error} = await _request(this.fetch, \"POST\", `${this.url}/otp`, {\n          headers: this.headers,\n          body: {\n            phone,\n            data: (_c = options === null || options === void 0 ? void 0 : options.data) !== null && _c !== void 0 ? _c : {},\n            create_user: (_d = options === null || options === void 0 ? void 0 : options.shouldCreateUser) !== null && _d !== void 0 ? _d : true,\n            gotrue_meta_security: {captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken},\n            channel: (_e = options === null || options === void 0 ? void 0 : options.channel) !== null && _e !== void 0 ? _e : \"sms\"\n          }\n        });\n        return {data: {user: null, session: null, messageId: data === null || data === void 0 ? void 0 : data.message_id}, error};\n      }\n      throw new AuthInvalidCredentialsError(\"You must provide either an email or phone number.\");\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null, session: null}, error};\n      }\n      throw error;\n    }\n  }\n  async verifyOtp(params) {\n    var _a, _b;\n    try {\n      let redirectTo = void 0;\n      let captchaToken = void 0;\n      if (\"options\" in params) {\n        redirectTo = (_a = params.options) === null || _a === void 0 ? void 0 : _a.redirectTo;\n        captchaToken = (_b = params.options) === null || _b === void 0 ? void 0 : _b.captchaToken;\n      }\n      const {data, error} = await _request(this.fetch, \"POST\", `${this.url}/verify`, {\n        headers: this.headers,\n        body: Object.assign(Object.assign({}, params), {gotrue_meta_security: {captcha_token: captchaToken}}),\n        redirectTo,\n        xform: _sessionResponse\n      });\n      if (error) {\n        throw error;\n      }\n      if (!data) {\n        throw new Error(\"An error occurred on token verification.\");\n      }\n      const session = data.session;\n      const user = data.user;\n      if (session === null || session === void 0 ? void 0 : session.access_token) {\n        await this._saveSession(session);\n        await this._notifyAllSubscribers(params.type == \"recovery\" ? \"PASSWORD_RECOVERY\" : \"SIGNED_IN\", session);\n      }\n      return {data: {user, session}, error: null};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null, session: null}, error};\n      }\n      throw error;\n    }\n  }\n  async signInWithSSO(params) {\n    var _a, _b, _c;\n    try {\n      let codeChallenge = null;\n      let codeChallengeMethod = null;\n      if (this.flowType === \"pkce\") {\n        ;\n        [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey);\n      }\n      return await _request(this.fetch, \"POST\", `${this.url}/sso`, {\n        body: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, \"providerId\" in params ? {provider_id: params.providerId} : null), \"domain\" in params ? {domain: params.domain} : null), {redirect_to: (_b = (_a = params.options) === null || _a === void 0 ? void 0 : _a.redirectTo) !== null && _b !== void 0 ? _b : void 0}), ((_c = params === null || params === void 0 ? void 0 : params.options) === null || _c === void 0 ? void 0 : _c.captchaToken) ? {gotrue_meta_security: {captcha_token: params.options.captchaToken}} : null), {skip_http_redirect: true, code_challenge: codeChallenge, code_challenge_method: codeChallengeMethod}),\n        headers: this.headers,\n        xform: _ssoResponse\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: null, error};\n      }\n      throw error;\n    }\n  }\n  async reauthenticate() {\n    await this.initializePromise;\n    return await this._acquireLock(-1, async () => {\n      return await this._reauthenticate();\n    });\n  }\n  async _reauthenticate() {\n    try {\n      return await this._useSession(async (result) => {\n        const {data: {session}, error: sessionError} = result;\n        if (sessionError)\n          throw sessionError;\n        if (!session)\n          throw new AuthSessionMissingError();\n        const {error} = await _request(this.fetch, \"GET\", `${this.url}/reauthenticate`, {\n          headers: this.headers,\n          jwt: session.access_token\n        });\n        return {data: {user: null, session: null}, error};\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null, session: null}, error};\n      }\n      throw error;\n    }\n  }\n  async resend(credentials) {\n    try {\n      const endpoint = `${this.url}/resend`;\n      if (\"email\" in credentials) {\n        const {email, type, options} = credentials;\n        const {error} = await _request(this.fetch, \"POST\", endpoint, {\n          headers: this.headers,\n          body: {\n            email,\n            type,\n            gotrue_meta_security: {captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken}\n          },\n          redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo\n        });\n        return {data: {user: null, session: null}, error};\n      } else if (\"phone\" in credentials) {\n        const {phone, type, options} = credentials;\n        const {data, error} = await _request(this.fetch, \"POST\", endpoint, {\n          headers: this.headers,\n          body: {\n            phone,\n            type,\n            gotrue_meta_security: {captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken}\n          }\n        });\n        return {data: {user: null, session: null, messageId: data === null || data === void 0 ? void 0 : data.message_id}, error};\n      }\n      throw new AuthInvalidCredentialsError(\"You must provide either an email or phone number and a type\");\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null, session: null}, error};\n      }\n      throw error;\n    }\n  }\n  async getSession() {\n    await this.initializePromise;\n    const result = await this._acquireLock(-1, async () => {\n      return this._useSession(async (result2) => {\n        return result2;\n      });\n    });\n    return result;\n  }\n  async _acquireLock(acquireTimeout, fn) {\n    this._debug(\"#_acquireLock\", \"begin\", acquireTimeout);\n    try {\n      if (this.lockAcquired) {\n        const last = this.pendingInLock.length ? this.pendingInLock[this.pendingInLock.length - 1] : Promise.resolve();\n        const result = (async () => {\n          await last;\n          return await fn();\n        })();\n        this.pendingInLock.push((async () => {\n          try {\n            await result;\n          } catch (e) {\n          }\n        })());\n        return result;\n      }\n      return await this.lock(`lock:${this.storageKey}`, acquireTimeout, async () => {\n        this._debug(\"#_acquireLock\", \"lock acquired for storage key\", this.storageKey);\n        try {\n          this.lockAcquired = true;\n          const result = fn();\n          this.pendingInLock.push((async () => {\n            try {\n              await result;\n            } catch (e) {\n            }\n          })());\n          await result;\n          while (this.pendingInLock.length) {\n            const waitOn = [...this.pendingInLock];\n            await Promise.all(waitOn);\n            this.pendingInLock.splice(0, waitOn.length);\n          }\n          return await result;\n        } finally {\n          this._debug(\"#_acquireLock\", \"lock released for storage key\", this.storageKey);\n          this.lockAcquired = false;\n        }\n      });\n    } finally {\n      this._debug(\"#_acquireLock\", \"end\");\n    }\n  }\n  async _useSession(fn) {\n    this._debug(\"#_useSession\", \"begin\");\n    try {\n      const result = await this.__loadSession();\n      return await fn(result);\n    } finally {\n      this._debug(\"#_useSession\", \"end\");\n    }\n  }\n  async __loadSession() {\n    this._debug(\"#__loadSession()\", \"begin\");\n    if (!this.lockAcquired) {\n      this._debug(\"#__loadSession()\", \"used outside of an acquired lock!\", new Error().stack);\n    }\n    try {\n      let currentSession = null;\n      const maybeSession = await getItemAsync(this.storage, this.storageKey);\n      this._debug(\"#getSession()\", \"session from storage\", maybeSession);\n      if (maybeSession !== null) {\n        if (this._isValidSession(maybeSession)) {\n          currentSession = maybeSession;\n        } else {\n          this._debug(\"#getSession()\", \"session from storage is not valid\");\n          await this._removeSession();\n        }\n      }\n      if (!currentSession) {\n        return {data: {session: null}, error: null};\n      }\n      const hasExpired = currentSession.expires_at ? currentSession.expires_at * 1e3 - Date.now() < EXPIRY_MARGIN_MS : false;\n      this._debug(\"#__loadSession()\", `session has${hasExpired ? \"\" : \" not\"} expired`, \"expires_at\", currentSession.expires_at);\n      if (!hasExpired) {\n        if (this.userStorage) {\n          const maybeUser = await getItemAsync(this.userStorage, this.storageKey + \"-user\");\n          if (maybeUser === null || maybeUser === void 0 ? void 0 : maybeUser.user) {\n            currentSession.user = maybeUser.user;\n          } else {\n            currentSession.user = userNotAvailableProxy();\n          }\n        }\n        if (this.storage.isServer && currentSession.user) {\n          let suppressWarning = this.suppressGetSessionWarning;\n          const proxySession = new Proxy(currentSession, {\n            get: (target, prop, receiver) => {\n              if (!suppressWarning && prop === \"user\") {\n                console.warn(\"Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.\");\n                suppressWarning = true;\n                this.suppressGetSessionWarning = true;\n              }\n              return Reflect.get(target, prop, receiver);\n            }\n          });\n          currentSession = proxySession;\n        }\n        return {data: {session: currentSession}, error: null};\n      }\n      const {session, error} = await this._callRefreshToken(currentSession.refresh_token);\n      if (error) {\n        return {data: {session: null}, error};\n      }\n      return {data: {session}, error: null};\n    } finally {\n      this._debug(\"#__loadSession()\", \"end\");\n    }\n  }\n  async getUser(jwt) {\n    if (jwt) {\n      return await this._getUser(jwt);\n    }\n    await this.initializePromise;\n    const result = await this._acquireLock(-1, async () => {\n      return await this._getUser();\n    });\n    return result;\n  }\n  async _getUser(jwt) {\n    try {\n      if (jwt) {\n        return await _request(this.fetch, \"GET\", `${this.url}/user`, {\n          headers: this.headers,\n          jwt,\n          xform: _userResponse\n        });\n      }\n      return await this._useSession(async (result) => {\n        var _a, _b, _c;\n        const {data, error} = result;\n        if (error) {\n          throw error;\n        }\n        if (!((_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) && !this.hasCustomAuthorizationHeader) {\n          return {data: {user: null}, error: new AuthSessionMissingError()};\n        }\n        return await _request(this.fetch, \"GET\", `${this.url}/user`, {\n          headers: this.headers,\n          jwt: (_c = (_b = data.session) === null || _b === void 0 ? void 0 : _b.access_token) !== null && _c !== void 0 ? _c : void 0,\n          xform: _userResponse\n        });\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        if (isAuthSessionMissingError(error)) {\n          await this._removeSession();\n          await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`);\n        }\n        return {data: {user: null}, error};\n      }\n      throw error;\n    }\n  }\n  async updateUser(attributes, options = {}) {\n    await this.initializePromise;\n    return await this._acquireLock(-1, async () => {\n      return await this._updateUser(attributes, options);\n    });\n  }\n  async _updateUser(attributes, options = {}) {\n    try {\n      return await this._useSession(async (result) => {\n        const {data: sessionData, error: sessionError} = result;\n        if (sessionError) {\n          throw sessionError;\n        }\n        if (!sessionData.session) {\n          throw new AuthSessionMissingError();\n        }\n        const session = sessionData.session;\n        let codeChallenge = null;\n        let codeChallengeMethod = null;\n        if (this.flowType === \"pkce\" && attributes.email != null) {\n          ;\n          [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey);\n        }\n        const {data, error: userError} = await _request(this.fetch, \"PUT\", `${this.url}/user`, {\n          headers: this.headers,\n          redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,\n          body: Object.assign(Object.assign({}, attributes), {code_challenge: codeChallenge, code_challenge_method: codeChallengeMethod}),\n          jwt: session.access_token,\n          xform: _userResponse\n        });\n        if (userError)\n          throw userError;\n        session.user = data.user;\n        await this._saveSession(session);\n        await this._notifyAllSubscribers(\"USER_UPDATED\", session);\n        return {data: {user: session.user}, error: null};\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null}, error};\n      }\n      throw error;\n    }\n  }\n  async setSession(currentSession) {\n    await this.initializePromise;\n    return await this._acquireLock(-1, async () => {\n      return await this._setSession(currentSession);\n    });\n  }\n  async _setSession(currentSession) {\n    try {\n      if (!currentSession.access_token || !currentSession.refresh_token) {\n        throw new AuthSessionMissingError();\n      }\n      const timeNow = Date.now() / 1e3;\n      let expiresAt2 = timeNow;\n      let hasExpired = true;\n      let session = null;\n      const {payload} = decodeJWT(currentSession.access_token);\n      if (payload.exp) {\n        expiresAt2 = payload.exp;\n        hasExpired = expiresAt2 <= timeNow;\n      }\n      if (hasExpired) {\n        const {session: refreshedSession, error} = await this._callRefreshToken(currentSession.refresh_token);\n        if (error) {\n          return {data: {user: null, session: null}, error};\n        }\n        if (!refreshedSession) {\n          return {data: {user: null, session: null}, error: null};\n        }\n        session = refreshedSession;\n      } else {\n        const {data, error} = await this._getUser(currentSession.access_token);\n        if (error) {\n          throw error;\n        }\n        session = {\n          access_token: currentSession.access_token,\n          refresh_token: currentSession.refresh_token,\n          user: data.user,\n          token_type: \"bearer\",\n          expires_in: expiresAt2 - timeNow,\n          expires_at: expiresAt2\n        };\n        await this._saveSession(session);\n        await this._notifyAllSubscribers(\"SIGNED_IN\", session);\n      }\n      return {data: {user: session.user, session}, error: null};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {session: null, user: null}, error};\n      }\n      throw error;\n    }\n  }\n  async refreshSession(currentSession) {\n    await this.initializePromise;\n    return await this._acquireLock(-1, async () => {\n      return await this._refreshSession(currentSession);\n    });\n  }\n  async _refreshSession(currentSession) {\n    try {\n      return await this._useSession(async (result) => {\n        var _a;\n        if (!currentSession) {\n          const {data, error: error2} = result;\n          if (error2) {\n            throw error2;\n          }\n          currentSession = (_a = data.session) !== null && _a !== void 0 ? _a : void 0;\n        }\n        if (!(currentSession === null || currentSession === void 0 ? void 0 : currentSession.refresh_token)) {\n          throw new AuthSessionMissingError();\n        }\n        const {session, error} = await this._callRefreshToken(currentSession.refresh_token);\n        if (error) {\n          return {data: {user: null, session: null}, error};\n        }\n        if (!session) {\n          return {data: {user: null, session: null}, error: null};\n        }\n        return {data: {user: session.user, session}, error: null};\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {user: null, session: null}, error};\n      }\n      throw error;\n    }\n  }\n  async _getSessionFromURL(params, callbackUrlType) {\n    try {\n      if (!isBrowser())\n        throw new AuthImplicitGrantRedirectError(\"No browser detected.\");\n      if (params.error || params.error_description || params.error_code) {\n        throw new AuthImplicitGrantRedirectError(params.error_description || \"Error in URL with unspecified error_description\", {\n          error: params.error || \"unspecified_error\",\n          code: params.error_code || \"unspecified_code\"\n        });\n      }\n      switch (callbackUrlType) {\n        case \"implicit\":\n          if (this.flowType === \"pkce\") {\n            throw new AuthPKCEGrantCodeExchangeError(\"Not a valid PKCE flow url.\");\n          }\n          break;\n        case \"pkce\":\n          if (this.flowType === \"implicit\") {\n            throw new AuthImplicitGrantRedirectError(\"Not a valid implicit grant flow url.\");\n          }\n          break;\n        default:\n      }\n      if (callbackUrlType === \"pkce\") {\n        this._debug(\"#_initialize()\", \"begin\", \"is PKCE flow\", true);\n        if (!params.code)\n          throw new AuthPKCEGrantCodeExchangeError(\"No code detected.\");\n        const {data: data2, error: error2} = await this._exchangeCodeForSession(params.code);\n        if (error2)\n          throw error2;\n        const url = new URL(window.location.href);\n        url.searchParams.delete(\"code\");\n        window.history.replaceState(window.history.state, \"\", url.toString());\n        return {data: {session: data2.session, redirectType: null}, error: null};\n      }\n      const {provider_token, provider_refresh_token, access_token, refresh_token, expires_in, expires_at, token_type} = params;\n      if (!access_token || !expires_in || !refresh_token || !token_type) {\n        throw new AuthImplicitGrantRedirectError(\"No session defined in URL\");\n      }\n      const timeNow = Math.round(Date.now() / 1e3);\n      const expiresIn = parseInt(expires_in);\n      let expiresAt2 = timeNow + expiresIn;\n      if (expires_at) {\n        expiresAt2 = parseInt(expires_at);\n      }\n      const actuallyExpiresIn = expiresAt2 - timeNow;\n      if (actuallyExpiresIn * 1e3 <= AUTO_REFRESH_TICK_DURATION_MS) {\n        console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${actuallyExpiresIn}s, should have been closer to ${expiresIn}s`);\n      }\n      const issuedAt = expiresAt2 - expiresIn;\n      if (timeNow - issuedAt >= 120) {\n        console.warn(\"@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale\", issuedAt, expiresAt2, timeNow);\n      } else if (timeNow - issuedAt < 0) {\n        console.warn(\"@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew\", issuedAt, expiresAt2, timeNow);\n      }\n      const {data, error} = await this._getUser(access_token);\n      if (error)\n        throw error;\n      const session = {\n        provider_token,\n        provider_refresh_token,\n        access_token,\n        expires_in: expiresIn,\n        expires_at: expiresAt2,\n        refresh_token,\n        token_type,\n        user: data.user\n      };\n      window.location.hash = \"\";\n      this._debug(\"#_getSessionFromURL()\", \"clearing window.location.hash\");\n      return {data: {session, redirectType: params.type}, error: null};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {session: null, redirectType: null}, error};\n      }\n      throw error;\n    }\n  }\n  _isImplicitGrantCallback(params) {\n    return Boolean(params.access_token || params.error_description);\n  }\n  async _isPKCECallback(params) {\n    const currentStorageContent = await getItemAsync(this.storage, `${this.storageKey}-code-verifier`);\n    return !!(params.code && currentStorageContent);\n  }\n  async signOut(options = {scope: \"global\"}) {\n    await this.initializePromise;\n    return await this._acquireLock(-1, async () => {\n      return await this._signOut(options);\n    });\n  }\n  async _signOut({scope} = {scope: \"global\"}) {\n    return await this._useSession(async (result) => {\n      var _a;\n      const {data, error: sessionError} = result;\n      if (sessionError) {\n        return {error: sessionError};\n      }\n      const accessToken = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token;\n      if (accessToken) {\n        const {error} = await this.admin.signOut(accessToken, scope);\n        if (error) {\n          if (!(isAuthApiError(error) && (error.status === 404 || error.status === 401 || error.status === 403))) {\n            return {error};\n          }\n        }\n      }\n      if (scope !== \"others\") {\n        await this._removeSession();\n        await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`);\n      }\n      return {error: null};\n    });\n  }\n  onAuthStateChange(callback) {\n    const id = uuid();\n    const subscription = {\n      id,\n      callback,\n      unsubscribe: () => {\n        this._debug(\"#unsubscribe()\", \"state change callback with id removed\", id);\n        this.stateChangeEmitters.delete(id);\n      }\n    };\n    this._debug(\"#onAuthStateChange()\", \"registered callback with id\", id);\n    this.stateChangeEmitters.set(id, subscription);\n    (async () => {\n      await this.initializePromise;\n      await this._acquireLock(-1, async () => {\n        this._emitInitialSession(id);\n      });\n    })();\n    return {data: {subscription}};\n  }\n  async _emitInitialSession(id) {\n    return await this._useSession(async (result) => {\n      var _a, _b;\n      try {\n        const {data: {session}, error} = result;\n        if (error)\n          throw error;\n        await ((_a = this.stateChangeEmitters.get(id)) === null || _a === void 0 ? void 0 : _a.callback(\"INITIAL_SESSION\", session));\n        this._debug(\"INITIAL_SESSION\", \"callback id\", id, \"session\", session);\n      } catch (err) {\n        await ((_b = this.stateChangeEmitters.get(id)) === null || _b === void 0 ? void 0 : _b.callback(\"INITIAL_SESSION\", null));\n        this._debug(\"INITIAL_SESSION\", \"callback id\", id, \"error\", err);\n        console.error(err);\n      }\n    });\n  }\n  async resetPasswordForEmail(email, options = {}) {\n    let codeChallenge = null;\n    let codeChallengeMethod = null;\n    if (this.flowType === \"pkce\") {\n      [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey, true);\n    }\n    try {\n      return await _request(this.fetch, \"POST\", `${this.url}/recover`, {\n        body: {\n          email,\n          code_challenge: codeChallenge,\n          code_challenge_method: codeChallengeMethod,\n          gotrue_meta_security: {captcha_token: options.captchaToken}\n        },\n        headers: this.headers,\n        redirectTo: options.redirectTo\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: null, error};\n      }\n      throw error;\n    }\n  }\n  async getUserIdentities() {\n    var _a;\n    try {\n      const {data, error} = await this.getUser();\n      if (error)\n        throw error;\n      return {data: {identities: (_a = data.user.identities) !== null && _a !== void 0 ? _a : []}, error: null};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: null, error};\n      }\n      throw error;\n    }\n  }\n  async linkIdentity(credentials) {\n    var _a;\n    try {\n      const {data, error} = await this._useSession(async (result) => {\n        var _a2, _b, _c, _d, _e;\n        const {data: data2, error: error2} = result;\n        if (error2)\n          throw error2;\n        const url = await this._getUrlForProvider(`${this.url}/user/identities/authorize`, credentials.provider, {\n          redirectTo: (_a2 = credentials.options) === null || _a2 === void 0 ? void 0 : _a2.redirectTo,\n          scopes: (_b = credentials.options) === null || _b === void 0 ? void 0 : _b.scopes,\n          queryParams: (_c = credentials.options) === null || _c === void 0 ? void 0 : _c.queryParams,\n          skipBrowserRedirect: true\n        });\n        return await _request(this.fetch, \"GET\", url, {\n          headers: this.headers,\n          jwt: (_e = (_d = data2.session) === null || _d === void 0 ? void 0 : _d.access_token) !== null && _e !== void 0 ? _e : void 0\n        });\n      });\n      if (error)\n        throw error;\n      if (isBrowser() && !((_a = credentials.options) === null || _a === void 0 ? void 0 : _a.skipBrowserRedirect)) {\n        window.location.assign(data === null || data === void 0 ? void 0 : data.url);\n      }\n      return {data: {provider: credentials.provider, url: data === null || data === void 0 ? void 0 : data.url}, error: null};\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: {provider: credentials.provider, url: null}, error};\n      }\n      throw error;\n    }\n  }\n  async unlinkIdentity(identity) {\n    try {\n      return await this._useSession(async (result) => {\n        var _a, _b;\n        const {data, error} = result;\n        if (error) {\n          throw error;\n        }\n        return await _request(this.fetch, \"DELETE\", `${this.url}/user/identities/${identity.identity_id}`, {\n          headers: this.headers,\n          jwt: (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : void 0\n        });\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: null, error};\n      }\n      throw error;\n    }\n  }\n  async _refreshAccessToken(refreshToken) {\n    const debugName = `#_refreshAccessToken(${refreshToken.substring(0, 5)}...)`;\n    this._debug(debugName, \"begin\");\n    try {\n      const startedAt = Date.now();\n      return await retryable(async (attempt) => {\n        if (attempt > 0) {\n          await sleep(200 * Math.pow(2, attempt - 1));\n        }\n        this._debug(debugName, \"refreshing attempt\", attempt);\n        return await _request(this.fetch, \"POST\", `${this.url}/token?grant_type=refresh_token`, {\n          body: {refresh_token: refreshToken},\n          headers: this.headers,\n          xform: _sessionResponse\n        });\n      }, (attempt, error) => {\n        const nextBackOffInterval = 200 * Math.pow(2, attempt);\n        return error && isAuthRetryableFetchError(error) && Date.now() + nextBackOffInterval - startedAt < AUTO_REFRESH_TICK_DURATION_MS;\n      });\n    } catch (error) {\n      this._debug(debugName, \"error\", error);\n      if (isAuthError(error)) {\n        return {data: {session: null, user: null}, error};\n      }\n      throw error;\n    } finally {\n      this._debug(debugName, \"end\");\n    }\n  }\n  _isValidSession(maybeSession) {\n    const isValidSession = typeof maybeSession === \"object\" && maybeSession !== null && \"access_token\" in maybeSession && \"refresh_token\" in maybeSession && \"expires_at\" in maybeSession;\n    return isValidSession;\n  }\n  async _handleProviderSignIn(provider, options) {\n    const url = await this._getUrlForProvider(`${this.url}/authorize`, provider, {\n      redirectTo: options.redirectTo,\n      scopes: options.scopes,\n      queryParams: options.queryParams\n    });\n    this._debug(\"#_handleProviderSignIn()\", \"provider\", provider, \"options\", options, \"url\", url);\n    if (isBrowser() && !options.skipBrowserRedirect) {\n      window.location.assign(url);\n    }\n    return {data: {provider, url}, error: null};\n  }\n  async _recoverAndRefresh() {\n    var _a, _b;\n    const debugName = \"#_recoverAndRefresh()\";\n    this._debug(debugName, \"begin\");\n    try {\n      const currentSession = await getItemAsync(this.storage, this.storageKey);\n      if (currentSession && this.userStorage) {\n        let maybeUser = await getItemAsync(this.userStorage, this.storageKey + \"-user\");\n        if (!this.storage.isServer && Object.is(this.storage, this.userStorage) && !maybeUser) {\n          maybeUser = {user: currentSession.user};\n          await setItemAsync(this.userStorage, this.storageKey + \"-user\", maybeUser);\n        }\n        currentSession.user = (_a = maybeUser === null || maybeUser === void 0 ? void 0 : maybeUser.user) !== null && _a !== void 0 ? _a : userNotAvailableProxy();\n      } else if (currentSession && !currentSession.user) {\n        if (!currentSession.user) {\n          const separateUser = await getItemAsync(this.storage, this.storageKey + \"-user\");\n          if (separateUser && (separateUser === null || separateUser === void 0 ? void 0 : separateUser.user)) {\n            currentSession.user = separateUser.user;\n            await removeItemAsync(this.storage, this.storageKey + \"-user\");\n            await setItemAsync(this.storage, this.storageKey, currentSession);\n          } else {\n            currentSession.user = userNotAvailableProxy();\n          }\n        }\n      }\n      this._debug(debugName, \"session from storage\", currentSession);\n      if (!this._isValidSession(currentSession)) {\n        this._debug(debugName, \"session is not valid\");\n        if (currentSession !== null) {\n          await this._removeSession();\n        }\n        return;\n      }\n      const expiresWithMargin = ((_b = currentSession.expires_at) !== null && _b !== void 0 ? _b : Infinity) * 1e3 - Date.now() < EXPIRY_MARGIN_MS;\n      this._debug(debugName, `session has${expiresWithMargin ? \"\" : \" not\"} expired with margin of ${EXPIRY_MARGIN_MS}s`);\n      if (expiresWithMargin) {\n        if (this.autoRefreshToken && currentSession.refresh_token) {\n          const {error} = await this._callRefreshToken(currentSession.refresh_token);\n          if (error) {\n            console.error(error);\n            if (!isAuthRetryableFetchError(error)) {\n              this._debug(debugName, \"refresh failed with a non-retryable error, removing the session\", error);\n              await this._removeSession();\n            }\n          }\n        }\n      } else if (currentSession.user && currentSession.user.__isUserNotAvailableProxy === true) {\n        try {\n          const {data, error: userError} = await this._getUser(currentSession.access_token);\n          if (!userError && (data === null || data === void 0 ? void 0 : data.user)) {\n            currentSession.user = data.user;\n            await this._saveSession(currentSession);\n            await this._notifyAllSubscribers(\"SIGNED_IN\", currentSession);\n          } else {\n            this._debug(debugName, \"could not get user data, skipping SIGNED_IN notification\");\n          }\n        } catch (getUserError) {\n          console.error(\"Error getting user data:\", getUserError);\n          this._debug(debugName, \"error getting user data, skipping SIGNED_IN notification\", getUserError);\n        }\n      } else {\n        await this._notifyAllSubscribers(\"SIGNED_IN\", currentSession);\n      }\n    } catch (err) {\n      this._debug(debugName, \"error\", err);\n      console.error(err);\n      return;\n    } finally {\n      this._debug(debugName, \"end\");\n    }\n  }\n  async _callRefreshToken(refreshToken) {\n    var _a, _b;\n    if (!refreshToken) {\n      throw new AuthSessionMissingError();\n    }\n    if (this.refreshingDeferred) {\n      return this.refreshingDeferred.promise;\n    }\n    const debugName = `#_callRefreshToken(${refreshToken.substring(0, 5)}...)`;\n    this._debug(debugName, \"begin\");\n    try {\n      this.refreshingDeferred = new Deferred();\n      const {data, error} = await this._refreshAccessToken(refreshToken);\n      if (error)\n        throw error;\n      if (!data.session)\n        throw new AuthSessionMissingError();\n      await this._saveSession(data.session);\n      await this._notifyAllSubscribers(\"TOKEN_REFRESHED\", data.session);\n      const result = {session: data.session, error: null};\n      this.refreshingDeferred.resolve(result);\n      return result;\n    } catch (error) {\n      this._debug(debugName, \"error\", error);\n      if (isAuthError(error)) {\n        const result = {session: null, error};\n        if (!isAuthRetryableFetchError(error)) {\n          await this._removeSession();\n        }\n        (_a = this.refreshingDeferred) === null || _a === void 0 ? void 0 : _a.resolve(result);\n        return result;\n      }\n      (_b = this.refreshingDeferred) === null || _b === void 0 ? void 0 : _b.reject(error);\n      throw error;\n    } finally {\n      this.refreshingDeferred = null;\n      this._debug(debugName, \"end\");\n    }\n  }\n  async _notifyAllSubscribers(event, session, broadcast = true) {\n    const debugName = `#_notifyAllSubscribers(${event})`;\n    this._debug(debugName, \"begin\", session, `broadcast = ${broadcast}`);\n    try {\n      if (this.broadcastChannel && broadcast) {\n        this.broadcastChannel.postMessage({event, session});\n      }\n      const errors = [];\n      const promises = Array.from(this.stateChangeEmitters.values()).map(async (x) => {\n        try {\n          await x.callback(event, session);\n        } catch (e) {\n          errors.push(e);\n        }\n      });\n      await Promise.all(promises);\n      if (errors.length > 0) {\n        for (let i = 0; i < errors.length; i += 1) {\n          console.error(errors[i]);\n        }\n        throw errors[0];\n      }\n    } finally {\n      this._debug(debugName, \"end\");\n    }\n  }\n  async _saveSession(session) {\n    this._debug(\"#_saveSession()\", session);\n    this.suppressGetSessionWarning = true;\n    const sessionToProcess = Object.assign({}, session);\n    const userIsProxy = sessionToProcess.user && sessionToProcess.user.__isUserNotAvailableProxy === true;\n    if (this.userStorage) {\n      if (!userIsProxy && sessionToProcess.user) {\n        await setItemAsync(this.userStorage, this.storageKey + \"-user\", {\n          user: sessionToProcess.user\n        });\n      }\n      const mainSessionData = Object.assign({}, sessionToProcess);\n      delete mainSessionData.user;\n      const clonedMainSessionData = deepClone(mainSessionData);\n      await setItemAsync(this.storage, this.storageKey, clonedMainSessionData);\n    } else {\n      const clonedSession = deepClone(sessionToProcess);\n      await setItemAsync(this.storage, this.storageKey, clonedSession);\n    }\n  }\n  async _removeSession() {\n    this._debug(\"#_removeSession()\");\n    await removeItemAsync(this.storage, this.storageKey);\n    await removeItemAsync(this.storage, this.storageKey + \"-code-verifier\");\n    await removeItemAsync(this.storage, this.storageKey + \"-user\");\n    if (this.userStorage) {\n      await removeItemAsync(this.userStorage, this.storageKey + \"-user\");\n    }\n    await this._notifyAllSubscribers(\"SIGNED_OUT\", null);\n  }\n  _removeVisibilityChangedCallback() {\n    this._debug(\"#_removeVisibilityChangedCallback()\");\n    const callback = this.visibilityChangedCallback;\n    this.visibilityChangedCallback = null;\n    try {\n      if (callback && isBrowser() && (window === null || window === void 0 ? void 0 : window.removeEventListener)) {\n        window.removeEventListener(\"visibilitychange\", callback);\n      }\n    } catch (e) {\n      console.error(\"removing visibilitychange callback failed\", e);\n    }\n  }\n  async _startAutoRefresh() {\n    await this._stopAutoRefresh();\n    this._debug(\"#_startAutoRefresh()\");\n    const ticker = setInterval(() => this._autoRefreshTokenTick(), AUTO_REFRESH_TICK_DURATION_MS);\n    this.autoRefreshTicker = ticker;\n    if (ticker && typeof ticker === \"object\" && typeof ticker.unref === \"function\") {\n      ticker.unref();\n    } else if (typeof Deno !== \"undefined\" && typeof Deno.unrefTimer === \"function\") {\n      Deno.unrefTimer(ticker);\n    }\n    setTimeout(async () => {\n      await this.initializePromise;\n      await this._autoRefreshTokenTick();\n    }, 0);\n  }\n  async _stopAutoRefresh() {\n    this._debug(\"#_stopAutoRefresh()\");\n    const ticker = this.autoRefreshTicker;\n    this.autoRefreshTicker = null;\n    if (ticker) {\n      clearInterval(ticker);\n    }\n  }\n  async startAutoRefresh() {\n    this._removeVisibilityChangedCallback();\n    await this._startAutoRefresh();\n  }\n  async stopAutoRefresh() {\n    this._removeVisibilityChangedCallback();\n    await this._stopAutoRefresh();\n  }\n  async _autoRefreshTokenTick() {\n    this._debug(\"#_autoRefreshTokenTick()\", \"begin\");\n    try {\n      await this._acquireLock(0, async () => {\n        try {\n          const now = Date.now();\n          try {\n            return await this._useSession(async (result) => {\n              const {data: {session}} = result;\n              if (!session || !session.refresh_token || !session.expires_at) {\n                this._debug(\"#_autoRefreshTokenTick()\", \"no session\");\n                return;\n              }\n              const expiresInTicks = Math.floor((session.expires_at * 1e3 - now) / AUTO_REFRESH_TICK_DURATION_MS);\n              this._debug(\"#_autoRefreshTokenTick()\", `access token expires in ${expiresInTicks} ticks, a tick lasts ${AUTO_REFRESH_TICK_DURATION_MS}ms, refresh threshold is ${AUTO_REFRESH_TICK_THRESHOLD} ticks`);\n              if (expiresInTicks <= AUTO_REFRESH_TICK_THRESHOLD) {\n                await this._callRefreshToken(session.refresh_token);\n              }\n            });\n          } catch (e) {\n            console.error(\"Auto refresh tick failed with error. This is likely a transient error.\", e);\n          }\n        } finally {\n          this._debug(\"#_autoRefreshTokenTick()\", \"end\");\n        }\n      });\n    } catch (e) {\n      if (e.isAcquireTimeout || e instanceof LockAcquireTimeoutError) {\n        this._debug(\"auto refresh token tick lock not available\");\n      } else {\n        throw e;\n      }\n    }\n  }\n  async _handleVisibilityChange() {\n    this._debug(\"#_handleVisibilityChange()\");\n    if (!isBrowser() || !(window === null || window === void 0 ? void 0 : window.addEventListener)) {\n      if (this.autoRefreshToken) {\n        this.startAutoRefresh();\n      }\n      return false;\n    }\n    try {\n      this.visibilityChangedCallback = async () => await this._onVisibilityChanged(false);\n      window === null || window === void 0 ? void 0 : window.addEventListener(\"visibilitychange\", this.visibilityChangedCallback);\n      await this._onVisibilityChanged(true);\n    } catch (error) {\n      console.error(\"_handleVisibilityChange\", error);\n    }\n  }\n  async _onVisibilityChanged(calledFromInitialize) {\n    const methodName = `#_onVisibilityChanged(${calledFromInitialize})`;\n    this._debug(methodName, \"visibilityState\", document.visibilityState);\n    if (document.visibilityState === \"visible\") {\n      if (this.autoRefreshToken) {\n        this._startAutoRefresh();\n      }\n      if (!calledFromInitialize) {\n        await this.initializePromise;\n        await this._acquireLock(-1, async () => {\n          if (document.visibilityState !== \"visible\") {\n            this._debug(methodName, \"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting\");\n            return;\n          }\n          await this._recoverAndRefresh();\n        });\n      }\n    } else if (document.visibilityState === \"hidden\") {\n      if (this.autoRefreshToken) {\n        this._stopAutoRefresh();\n      }\n    }\n  }\n  async _getUrlForProvider(url, provider, options) {\n    const urlParams = [`provider=${encodeURIComponent(provider)}`];\n    if (options === null || options === void 0 ? void 0 : options.redirectTo) {\n      urlParams.push(`redirect_to=${encodeURIComponent(options.redirectTo)}`);\n    }\n    if (options === null || options === void 0 ? void 0 : options.scopes) {\n      urlParams.push(`scopes=${encodeURIComponent(options.scopes)}`);\n    }\n    if (this.flowType === \"pkce\") {\n      const [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey);\n      const flowParams = new URLSearchParams({\n        code_challenge: `${encodeURIComponent(codeChallenge)}`,\n        code_challenge_method: `${encodeURIComponent(codeChallengeMethod)}`\n      });\n      urlParams.push(flowParams.toString());\n    }\n    if (options === null || options === void 0 ? void 0 : options.queryParams) {\n      const query = new URLSearchParams(options.queryParams);\n      urlParams.push(query.toString());\n    }\n    if (options === null || options === void 0 ? void 0 : options.skipBrowserRedirect) {\n      urlParams.push(`skip_http_redirect=${options.skipBrowserRedirect}`);\n    }\n    return `${url}?${urlParams.join(\"&\")}`;\n  }\n  async _unenroll(params) {\n    try {\n      return await this._useSession(async (result) => {\n        var _a;\n        const {data: sessionData, error: sessionError} = result;\n        if (sessionError) {\n          return {data: null, error: sessionError};\n        }\n        return await _request(this.fetch, \"DELETE\", `${this.url}/factors/${params.factorId}`, {\n          headers: this.headers,\n          jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token\n        });\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: null, error};\n      }\n      throw error;\n    }\n  }\n  async _enroll(params) {\n    try {\n      return await this._useSession(async (result) => {\n        var _a, _b;\n        const {data: sessionData, error: sessionError} = result;\n        if (sessionError) {\n          return {data: null, error: sessionError};\n        }\n        const body = Object.assign({friendly_name: params.friendlyName, factor_type: params.factorType}, params.factorType === \"phone\" ? {phone: params.phone} : {issuer: params.issuer});\n        const {data, error} = await _request(this.fetch, \"POST\", `${this.url}/factors`, {\n          body,\n          headers: this.headers,\n          jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token\n        });\n        if (error) {\n          return {data: null, error};\n        }\n        if (params.factorType === \"totp\" && ((_b = data === null || data === void 0 ? void 0 : data.totp) === null || _b === void 0 ? void 0 : _b.qr_code)) {\n          data.totp.qr_code = `data:image/svg+xml;utf-8,${data.totp.qr_code}`;\n        }\n        return {data, error: null};\n      });\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: null, error};\n      }\n      throw error;\n    }\n  }\n  async _verify(params) {\n    return this._acquireLock(-1, async () => {\n      try {\n        return await this._useSession(async (result) => {\n          var _a;\n          const {data: sessionData, error: sessionError} = result;\n          if (sessionError) {\n            return {data: null, error: sessionError};\n          }\n          const {data, error} = await _request(this.fetch, \"POST\", `${this.url}/factors/${params.factorId}/verify`, {\n            body: {code: params.code, challenge_id: params.challengeId},\n            headers: this.headers,\n            jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token\n          });\n          if (error) {\n            return {data: null, error};\n          }\n          await this._saveSession(Object.assign({expires_at: Math.round(Date.now() / 1e3) + data.expires_in}, data));\n          await this._notifyAllSubscribers(\"MFA_CHALLENGE_VERIFIED\", data);\n          return {data, error};\n        });\n      } catch (error) {\n        if (isAuthError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  async _challenge(params) {\n    return this._acquireLock(-1, async () => {\n      try {\n        return await this._useSession(async (result) => {\n          var _a;\n          const {data: sessionData, error: sessionError} = result;\n          if (sessionError) {\n            return {data: null, error: sessionError};\n          }\n          return await _request(this.fetch, \"POST\", `${this.url}/factors/${params.factorId}/challenge`, {\n            body: {channel: params.channel},\n            headers: this.headers,\n            jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token\n          });\n        });\n      } catch (error) {\n        if (isAuthError(error)) {\n          return {data: null, error};\n        }\n        throw error;\n      }\n    });\n  }\n  async _challengeAndVerify(params) {\n    const {data: challengeData, error: challengeError} = await this._challenge({\n      factorId: params.factorId\n    });\n    if (challengeError) {\n      return {data: null, error: challengeError};\n    }\n    return await this._verify({\n      factorId: params.factorId,\n      challengeId: challengeData.id,\n      code: params.code\n    });\n  }\n  async _listFactors() {\n    const {data: {user}, error: userError} = await this.getUser();\n    if (userError) {\n      return {data: null, error: userError};\n    }\n    const factors = (user === null || user === void 0 ? void 0 : user.factors) || [];\n    const totp = factors.filter((factor) => factor.factor_type === \"totp\" && factor.status === \"verified\");\n    const phone = factors.filter((factor) => factor.factor_type === \"phone\" && factor.status === \"verified\");\n    return {\n      data: {\n        all: factors,\n        totp,\n        phone\n      },\n      error: null\n    };\n  }\n  async _getAuthenticatorAssuranceLevel() {\n    return this._acquireLock(-1, async () => {\n      return await this._useSession(async (result) => {\n        var _a, _b;\n        const {data: {session}, error: sessionError} = result;\n        if (sessionError) {\n          return {data: null, error: sessionError};\n        }\n        if (!session) {\n          return {\n            data: {currentLevel: null, nextLevel: null, currentAuthenticationMethods: []},\n            error: null\n          };\n        }\n        const {payload} = decodeJWT(session.access_token);\n        let currentLevel = null;\n        if (payload.aal) {\n          currentLevel = payload.aal;\n        }\n        let nextLevel = currentLevel;\n        const verifiedFactors = (_b = (_a = session.user.factors) === null || _a === void 0 ? void 0 : _a.filter((factor) => factor.status === \"verified\")) !== null && _b !== void 0 ? _b : [];\n        if (verifiedFactors.length > 0) {\n          nextLevel = \"aal2\";\n        }\n        const currentAuthenticationMethods = payload.amr || [];\n        return {data: {currentLevel, nextLevel, currentAuthenticationMethods}, error: null};\n      });\n    });\n  }\n  async fetchJwk(kid, jwks = {keys: []}) {\n    let jwk = jwks.keys.find((key) => key.kid === kid);\n    if (jwk) {\n      return jwk;\n    }\n    const now = Date.now();\n    jwk = this.jwks.keys.find((key) => key.kid === kid);\n    if (jwk && this.jwks_cached_at + JWKS_TTL > now) {\n      return jwk;\n    }\n    const {data, error} = await _request(this.fetch, \"GET\", `${this.url}/.well-known/jwks.json`, {\n      headers: this.headers\n    });\n    if (error) {\n      throw error;\n    }\n    if (!data.keys || data.keys.length === 0) {\n      return null;\n    }\n    this.jwks = data;\n    this.jwks_cached_at = now;\n    jwk = data.keys.find((key) => key.kid === kid);\n    if (!jwk) {\n      return null;\n    }\n    return jwk;\n  }\n  async getClaims(jwt, options = {}) {\n    try {\n      let token = jwt;\n      if (!token) {\n        const {data, error} = await this.getSession();\n        if (error || !data.session) {\n          return {data: null, error};\n        }\n        token = data.session.access_token;\n      }\n      const {header, payload, signature, raw: {header: rawHeader, payload: rawPayload}} = decodeJWT(token);\n      if (!(options === null || options === void 0 ? void 0 : options.allowExpired)) {\n        validateExp(payload.exp);\n      }\n      const signingKey = !header.alg || header.alg.startsWith(\"HS\") || !header.kid || !(\"crypto\" in globalThis && \"subtle\" in globalThis.crypto) ? null : await this.fetchJwk(header.kid, (options === null || options === void 0 ? void 0 : options.keys) ? {keys: options.keys} : options === null || options === void 0 ? void 0 : options.jwks);\n      if (!signingKey) {\n        const {error} = await this.getUser(token);\n        if (error) {\n          throw error;\n        }\n        return {\n          data: {\n            claims: payload,\n            header,\n            signature\n          },\n          error: null\n        };\n      }\n      const algorithm = getAlgorithm(header.alg);\n      const publicKey = await crypto.subtle.importKey(\"jwk\", signingKey, algorithm, true, [\n        \"verify\"\n      ]);\n      const isValid = await crypto.subtle.verify(algorithm, publicKey, signature, stringToUint8Array(`${rawHeader}.${rawPayload}`));\n      if (!isValid) {\n        throw new AuthInvalidJwtError(\"Invalid JWT signature\");\n      }\n      return {\n        data: {\n          claims: payload,\n          header,\n          signature\n        },\n        error: null\n      };\n    } catch (error) {\n      if (isAuthError(error)) {\n        return {data: null, error};\n      }\n      throw error;\n    }\n  }\n}\nGoTrueClient.nextInstanceID = 0;\nconst AuthAdminApi = GoTrueAdminApi;\nconst AuthClient = GoTrueClient;\nexport {AuthAdminApi, AuthApiError, AuthClient, AuthError, AuthImplicitGrantRedirectError, AuthInvalidCredentialsError, AuthInvalidJwtError, AuthInvalidTokenResponseError, AuthPKCEGrantCodeExchangeError, AuthRetryableFetchError, AuthSessionMissingError, AuthUnknownError, AuthWeakPasswordError, CustomAuthError, GoTrueAdminApi, GoTrueClient, NavigatorLockAcquireTimeoutError, SIGN_OUT_SCOPES, isAuthApiError, isAuthError, isAuthImplicitGrantRedirectError, isAuthRetryableFetchError, isAuthSessionMissingError, isAuthWeakPasswordError, internals as lockInternals, navigatorLock, processLock};\nexport default null;\n", "import {FunctionsClient} from \"/-/@supabase/functions-js@v2.4.5-VCUaMBIIyGfBAInQftVX/dist=es2019,mode=imports/optimized/@supabase/functions-js.js\";\nexport {FunctionRegion, FunctionsError, FunctionsFetchError, FunctionsHttpError, FunctionsRelayError} from \"/-/@supabase/functions-js@v2.4.5-VCUaMBIIyGfBAInQftVX/dist=es2019,mode=imports/optimized/@supabase/functions-js.js\";\nimport {PostgrestClient} from \"/-/@supabase/postgrest-js@v1.21.3-iEmGHhKWzW8MUMeJjMWW/dist=es2019,mode=imports/optimized/@supabase/postgrest-js.js\";\nexport {PostgrestError} from \"/-/@supabase/postgrest-js@v1.21.3-iEmGHhKWzW8MUMeJjMWW/dist=es2019,mode=imports/optimized/@supabase/postgrest-js.js\";\nimport {RealtimeClient} from \"/-/@supabase/realtime-js@v2.15.4-rMAdtyHclVoaNDBlTnst/dist=es2019,mode=imports/optimized/@supabase/realtime-js.js\";\nexport * from \"/-/@supabase/realtime-js@v2.15.4-rMAdtyHclVoaNDBlTnst/dist=es2019,mode=imports/optimized/@supabase/realtime-js.js\";\nimport {StorageClient} from \"/-/@supabase/storage-js@v2.11.0-lNY5Fg6hPLXP5uT5O7Rx/dist=es2019,mode=imports/optimized/@supabase/storage-js.js\";\nimport nodeFetch from \"/-/@supabase/node-fetch@v2.6.15-c5DrO8K0MoiPZxDi1V2L/dist=es2019,mode=imports/optimized/@supabase/node-fetch.js\";\nconst {Headers: Headers$1} = nodeFetch;\n;\nimport {AuthClient} from \"/-/@supabase/auth-js@v2.71.1-AlHYteRyQCX9wKq1xinZ/dist=es2019,mode=imports/optimized/@supabase/auth-js.js\";\nexport * from \"/-/@supabase/auth-js@v2.71.1-AlHYteRyQCX9wKq1xinZ/dist=es2019,mode=imports/optimized/@supabase/auth-js.js\";\nfunction defaultSetTimout() {\n  throw new Error(\"setTimeout has not been defined\");\n}\nfunction defaultClearTimeout() {\n  throw new Error(\"clearTimeout has not been defined\");\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nvar globalContext;\nif (typeof window !== \"undefined\") {\n  globalContext = window;\n} else if (typeof self !== \"undefined\") {\n  globalContext = self;\n} else {\n  globalContext = {};\n}\nif (typeof globalContext.setTimeout === \"function\") {\n  cachedSetTimeout = setTimeout;\n}\nif (typeof globalContext.clearTimeout === \"function\") {\n  cachedClearTimeout = clearTimeout;\n}\nfunction runTimeout(fun) {\n  if (cachedSetTimeout === setTimeout) {\n    return setTimeout(fun, 0);\n  }\n  if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n    cachedSetTimeout = setTimeout;\n    return setTimeout(fun, 0);\n  }\n  try {\n    return cachedSetTimeout(fun, 0);\n  } catch (e) {\n    try {\n      return cachedSetTimeout.call(null, fun, 0);\n    } catch (e2) {\n      return cachedSetTimeout.call(this, fun, 0);\n    }\n  }\n}\nfunction runClearTimeout(marker) {\n  if (cachedClearTimeout === clearTimeout) {\n    return clearTimeout(marker);\n  }\n  if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n    cachedClearTimeout = clearTimeout;\n    return clearTimeout(marker);\n  }\n  try {\n    return cachedClearTimeout(marker);\n  } catch (e) {\n    try {\n      return cachedClearTimeout.call(null, marker);\n    } catch (e2) {\n      return cachedClearTimeout.call(this, marker);\n    }\n  }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\nfunction cleanUpNextTick() {\n  if (!draining || !currentQueue) {\n    return;\n  }\n  draining = false;\n  if (currentQueue.length) {\n    queue = currentQueue.concat(queue);\n  } else {\n    queueIndex = -1;\n  }\n  if (queue.length) {\n    drainQueue();\n  }\n}\nfunction drainQueue() {\n  if (draining) {\n    return;\n  }\n  var timeout = runTimeout(cleanUpNextTick);\n  draining = true;\n  var len = queue.length;\n  while (len) {\n    currentQueue = queue;\n    queue = [];\n    while (++queueIndex < len) {\n      if (currentQueue) {\n        currentQueue[queueIndex].run();\n      }\n    }\n    queueIndex = -1;\n    len = queue.length;\n  }\n  currentQueue = null;\n  draining = false;\n  runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n  var args = new Array(arguments.length - 1);\n  if (arguments.length > 1) {\n    for (var i = 1; i < arguments.length; i++) {\n      args[i - 1] = arguments[i];\n    }\n  }\n  queue.push(new Item(fun, args));\n  if (queue.length === 1 && !draining) {\n    runTimeout(drainQueue);\n  }\n}\nfunction Item(fun, array) {\n  this.fun = fun;\n  this.array = array;\n}\nItem.prototype.run = function() {\n  this.fun.apply(null, this.array);\n};\nvar title = \"browser\";\nvar platform = \"browser\";\nvar browser = true;\nvar argv = [];\nvar version = \"\";\nvar versions = {};\nvar release = {};\nvar config = {};\nfunction noop() {\n}\nvar on = noop;\nvar addListener = noop;\nvar once = noop;\nvar off = noop;\nvar removeListener = noop;\nvar removeAllListeners = noop;\nvar emit = noop;\nfunction binding(name) {\n  throw new Error(\"process.binding is not supported\");\n}\nfunction cwd() {\n  return \"/\";\n}\nfunction chdir(dir) {\n  throw new Error(\"process.chdir is not supported\");\n}\nfunction umask() {\n  return 0;\n}\nvar performance = globalContext.performance || {};\nvar performanceNow = performance.now || performance.mozNow || performance.msNow || performance.oNow || performance.webkitNow || function() {\n  return new Date().getTime();\n};\nfunction hrtime(previousTimestamp) {\n  var clocktime = performanceNow.call(performance) * 1e-3;\n  var seconds = Math.floor(clocktime);\n  var nanoseconds = Math.floor(clocktime % 1 * 1e9);\n  if (previousTimestamp) {\n    seconds = seconds - previousTimestamp[0];\n    nanoseconds = nanoseconds - previousTimestamp[1];\n    if (nanoseconds < 0) {\n      seconds--;\n      nanoseconds += 1e9;\n    }\n  }\n  return [seconds, nanoseconds];\n}\nvar startTime = new Date();\nfunction uptime() {\n  var currentTime = new Date();\n  var dif = currentTime - startTime;\n  return dif / 1e3;\n}\nvar process = {\n  nextTick,\n  title,\n  browser,\n  env: {NODE_ENV: \"production\"},\n  argv,\n  version,\n  versions,\n  on,\n  addListener,\n  once,\n  off,\n  removeListener,\n  removeAllListeners,\n  emit,\n  binding,\n  cwd,\n  chdir,\n  umask,\n  hrtime,\n  platform,\n  release,\n  config,\n  uptime\n};\nconst version$1 = \"2.56.1\";\nlet JS_ENV = \"\";\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}\nconst DEFAULT_HEADERS = {\"X-Client-Info\": `supabase-js-${JS_ENV}/${version$1}`};\nconst DEFAULT_GLOBAL_OPTIONS = {\n  headers: DEFAULT_HEADERS\n};\nconst DEFAULT_DB_OPTIONS = {\n  schema: \"public\"\n};\nconst DEFAULT_AUTH_OPTIONS = {\n  autoRefreshToken: true,\n  persistSession: true,\n  detectSessionInUrl: true,\n  flowType: \"implicit\"\n};\nconst DEFAULT_REALTIME_OPTIONS = {};\nvar __awaiter = function(thisArg, _arguments, P, generator) {\n  function adopt(value) {\n    return value instanceof P ? value : new P(function(resolve) {\n      resolve(value);\n    });\n  }\n  return new (P || (P = Promise))(function(resolve, reject) {\n    function fulfilled(value) {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n};\nconst resolveFetch = (customFetch) => {\n  let _fetch;\n  if (customFetch) {\n    _fetch = customFetch;\n  } else if (typeof fetch === \"undefined\") {\n    _fetch = nodeFetch;\n  } else {\n    _fetch = fetch;\n  }\n  return (...args) => _fetch(...args);\n};\nconst resolveHeadersConstructor = () => {\n  if (typeof Headers === \"undefined\") {\n    return Headers$1;\n  }\n  return Headers;\n};\nconst fetchWithAuth = (supabaseKey, getAccessToken, customFetch) => {\n  const fetch2 = resolveFetch(customFetch);\n  const HeadersConstructor = resolveHeadersConstructor();\n  return (input, init) => __awaiter(void 0, void 0, void 0, function* () {\n    var _a;\n    const accessToken = (_a = yield getAccessToken()) !== null && _a !== void 0 ? _a : supabaseKey;\n    let headers = new HeadersConstructor(init === null || init === void 0 ? void 0 : init.headers);\n    if (!headers.has(\"apikey\")) {\n      headers.set(\"apikey\", supabaseKey);\n    }\n    if (!headers.has(\"Authorization\")) {\n      headers.set(\"Authorization\", `Bearer ${accessToken}`);\n    }\n    return fetch2(input, Object.assign(Object.assign({}, init), {headers}));\n  });\n};\nvar __awaiter$1 = function(thisArg, _arguments, P, generator) {\n  function adopt(value) {\n    return value instanceof P ? value : new P(function(resolve) {\n      resolve(value);\n    });\n  }\n  return new (P || (P = Promise))(function(resolve, reject) {\n    function fulfilled(value) {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n};\nfunction ensureTrailingSlash(url) {\n  return url.endsWith(\"/\") ? url : url + \"/\";\n}\nfunction applySettingDefaults(options, defaults) {\n  var _a, _b;\n  const {db: dbOptions, auth: authOptions, realtime: realtimeOptions, global: globalOptions} = options;\n  const {db: DEFAULT_DB_OPTIONS2, auth: DEFAULT_AUTH_OPTIONS2, realtime: DEFAULT_REALTIME_OPTIONS2, global: DEFAULT_GLOBAL_OPTIONS2} = defaults;\n  const result = {\n    db: Object.assign(Object.assign({}, DEFAULT_DB_OPTIONS2), dbOptions),\n    auth: Object.assign(Object.assign({}, DEFAULT_AUTH_OPTIONS2), authOptions),\n    realtime: Object.assign(Object.assign({}, DEFAULT_REALTIME_OPTIONS2), realtimeOptions),\n    storage: {},\n    global: Object.assign(Object.assign(Object.assign({}, DEFAULT_GLOBAL_OPTIONS2), globalOptions), {headers: Object.assign(Object.assign({}, (_a = DEFAULT_GLOBAL_OPTIONS2 === null || DEFAULT_GLOBAL_OPTIONS2 === void 0 ? void 0 : DEFAULT_GLOBAL_OPTIONS2.headers) !== null && _a !== void 0 ? _a : {}), (_b = globalOptions === null || globalOptions === void 0 ? void 0 : globalOptions.headers) !== null && _b !== void 0 ? _b : {})}),\n    accessToken: () => __awaiter$1(this, void 0, void 0, function* () {\n      return \"\";\n    })\n  };\n  if (options.accessToken) {\n    result.accessToken = options.accessToken;\n  } else {\n    delete result.accessToken;\n  }\n  return result;\n}\nclass SupabaseAuthClient extends AuthClient {\n  constructor(options) {\n    super(options);\n  }\n}\nvar __awaiter$2 = function(thisArg, _arguments, P, generator) {\n  function adopt(value) {\n    return value instanceof P ? value : new P(function(resolve) {\n      resolve(value);\n    });\n  }\n  return new (P || (P = Promise))(function(resolve, reject) {\n    function fulfilled(value) {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n};\nclass SupabaseClient {\n  constructor(supabaseUrl, supabaseKey, options) {\n    var _a, _b, _c;\n    this.supabaseUrl = supabaseUrl;\n    this.supabaseKey = supabaseKey;\n    if (!supabaseUrl)\n      throw new Error(\"supabaseUrl is required.\");\n    if (!supabaseKey)\n      throw new Error(\"supabaseKey is required.\");\n    const _supabaseUrl = ensureTrailingSlash(supabaseUrl);\n    const baseUrl = new URL(_supabaseUrl);\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    const defaultStorageKey = `sb-${baseUrl.hostname.split(\".\")[0]}-auth-token`;\n    const DEFAULTS = {\n      db: DEFAULT_DB_OPTIONS,\n      realtime: DEFAULT_REALTIME_OPTIONS,\n      auth: Object.assign(Object.assign({}, DEFAULT_AUTH_OPTIONS), {storageKey: defaultStorageKey}),\n      global: DEFAULT_GLOBAL_OPTIONS\n    };\n    const settings = applySettingDefaults(options !== null && options !== void 0 ? options : {}, DEFAULTS);\n    this.storageKey = (_a = settings.auth.storageKey) !== null && _a !== void 0 ? _a : \"\";\n    this.headers = (_b = settings.global.headers) !== null && _b !== void 0 ? _b : {};\n    if (!settings.accessToken) {\n      this.auth = this._initSupabaseAuthClient((_c = settings.auth) !== null && _c !== void 0 ? _c : {}, this.headers, settings.global.fetch);\n    } else {\n      this.accessToken = settings.accessToken;\n      this.auth = new Proxy({}, {\n        get: (_, prop) => {\n          throw new Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(prop)} is not possible`);\n        }\n      });\n    }\n    this.fetch = fetchWithAuth(supabaseKey, this._getAccessToken.bind(this), settings.global.fetch);\n    this.realtime = this._initRealtimeClient(Object.assign({headers: this.headers, accessToken: this._getAccessToken.bind(this)}, settings.realtime));\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    });\n    this.storage = new StorageClient(this.storageUrl.href, this.headers, this.fetch, options === null || options === void 0 ? void 0 : options.storage);\n    if (!settings.accessToken) {\n      this._listenForAuthEvents();\n    }\n  }\n  get functions() {\n    return new FunctionsClient(this.functionsUrl.href, {\n      headers: this.headers,\n      customFetch: this.fetch\n    });\n  }\n  from(relation) {\n    return this.rest.from(relation);\n  }\n  schema(schema) {\n    return this.rest.schema(schema);\n  }\n  rpc(fn, args = {}, options = {}) {\n    return this.rest.rpc(fn, args, options);\n  }\n  channel(name, opts = {config: {}}) {\n    return this.realtime.channel(name, opts);\n  }\n  getChannels() {\n    return this.realtime.getChannels();\n  }\n  removeChannel(channel) {\n    return this.realtime.removeChannel(channel);\n  }\n  removeAllChannels() {\n    return this.realtime.removeAllChannels();\n  }\n  _getAccessToken() {\n    var _a, _b;\n    return __awaiter$2(this, void 0, void 0, function* () {\n      if (this.accessToken) {\n        return yield this.accessToken();\n      }\n      const {data} = yield this.auth.getSession();\n      return (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : this.supabaseKey;\n    });\n  }\n  _initSupabaseAuthClient({autoRefreshToken, persistSession, detectSessionInUrl, storage, storageKey, flowType, lock, debug}, headers, fetch2) {\n    const authHeaders = {\n      Authorization: `Bearer ${this.supabaseKey}`,\n      apikey: `${this.supabaseKey}`\n    };\n    return new SupabaseAuthClient({\n      url: this.authUrl.href,\n      headers: Object.assign(Object.assign({}, authHeaders), headers),\n      storageKey,\n      autoRefreshToken,\n      persistSession,\n      detectSessionInUrl,\n      storage,\n      flowType,\n      lock,\n      debug,\n      fetch: fetch2,\n      hasCustomAuthorizationHeader: \"Authorization\" in this.headers\n    });\n  }\n  _initRealtimeClient(options) {\n    return new RealtimeClient(this.realtimeUrl.href, Object.assign(Object.assign({}, options), {params: Object.assign({apikey: this.supabaseKey}, options === null || options === void 0 ? void 0 : options.params)}));\n  }\n  _listenForAuthEvents() {\n    let data = this.auth.onAuthStateChange((event, session) => {\n      this._handleTokenChanged(event, \"CLIENT\", session === null || session === void 0 ? void 0 : session.access_token);\n    });\n    return data;\n  }\n  _handleTokenChanged(event, source, token) {\n    if ((event === \"TOKEN_REFRESHED\" || event === \"SIGNED_IN\") && this.changedAccessToken !== token) {\n      this.changedAccessToken = token;\n    } else if (event === \"SIGNED_OUT\") {\n      this.realtime.setAuth();\n      if (source == \"STORAGE\")\n        this.auth.signOut();\n      this.changedAccessToken = void 0;\n    }\n  }\n}\nconst createClient = (supabaseUrl, supabaseKey, options) => {\n  return new SupabaseClient(supabaseUrl, supabaseKey, options);\n};\nfunction shouldShowDeprecationWarning() {\n  if (typeof window !== \"undefined\") {\n    return false;\n  }\n  if (typeof process === \"undefined\") {\n    return false;\n  }\n  const processVersion = process[\"version\"];\n  const versionMatch = processVersion.match(/^v(\\d+)\\./);\n  if (!versionMatch) {\n    return false;\n  }\n  const majorVersion = parseInt(versionMatch[1], 10);\n  return majorVersion <= 18;\n}\nif (shouldShowDeprecationWarning()) {\n  console.warn(`\\u26A0\\uFE0F  Node.js 18 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. Please upgrade to Node.js 20 or later. For more information, visit: https://github.com/orgs/supabase/discussions/37217`);\n}\nexport {SupabaseClient, createClient};\nexport default null;\n", "import{jsx as _jsx,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useLayoutEffect,useEffect}from\"react\";import{createClient}from\"https://cdn.skypack.dev/@supabase/supabase-js\";const supabaseClient=createClient(\"https://fkuaodugcwynglwhwaaa.supabase.co\",\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImZrdWFvZHVnY3d5bmdsd2h3YWFhIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MzQwNzY1NjQsImV4cCI6MjA0OTY1MjU2NH0.GkS5F_fKxNg_sVy4WT4qxpztKi1DdcYQrmRkosQ075c\");const LABEL_BUTTON_AD=\"Login Deloitte\";const goToPlatform=async()=>{console.info(\"goto platform\");// TODO: se debe usar la metadata que nos pasar\u00E1 el usuario\nconst{data,error}=await supabaseClient.from(\"users\")// Nombre de la tabla\n.select(\"*\");if(!error&&data.length){console.info(data[0]);if(window.location.href!==data[0].redirection_url){window.location.href=data[0].redirection_url;}}else{window.location.href=\"/login\";}};// TODO: Implementar el forgot password\nexport function withEntryPage(Component){return function entryPage(props){const[isLoading,setIsLoading]=useState(true);const loginAzure=async()=>{try{const{error}=await supabaseClient.auth.signInWithOAuth({provider:\"azure\",options:{scopes:\"email profile openid\"}});if(error)throw error;}catch(error){console.error(\"Imposible hacer login azure\");await goToPlatform();}};const login=async(email,password)=>{const domain=email.split(\"@\")[1];const{error}=await supabaseClient.auth.signInWithPassword({email,password});if(error){// Manejar el error en caso de fallo de inicio de sesi\u00F3n\nconsole.error(\"Error al iniciar sesi\\xf3n:\",error.message);throw new Error(error.message);}else{await goToPlatform();}};useLayoutEffect(()=>{const listenerSession=async()=>{console.info(\"listenerSession\");const{data:{session}}=await supabaseClient.auth.getSession();if(session){console.info(\"Tiene sesion\");await goToPlatform()// TODO redirigir con info del token\n;}else{console.info(\"No tiene sesion\");// Selecciona todos los elementos con la clase 'rhkt-members'\nconst members=document.querySelectorAll(\".rhkt-members\");// Itera sobre cada elemento y agrega un listener para el evento 'submit'\nmembers.forEach(member=>{member.addEventListener(\"submit\",async event=>{event.preventDefault()// Evita el comportamiento por defecto del submit\n;const email=member.querySelector(\"#email_address\").value;const password=member.querySelector(\"#password\").value;await login(email,password);});});}setIsLoading(false);};const listenerSessionAD=async()=>{const azureButton=Array.from(document.querySelectorAll(\"button\")).find(button=>button.textContent.trim()===LABEL_BUTTON_AD);if(azureButton){azureButton.addEventListener(\"click\",async()=>{await loginAzure();});}else{console.error(\"Bot\\xf3n 'Azure AD' no encontrado\");}};listenerSession();listenerSessionAD();});return /*#__PURE__*/_jsx(_Fragment,{children:isLoading?/*#__PURE__*/_jsx(\"div\",{children:\"Loading\"}):/*#__PURE__*/_jsx(Component,{...props})});};}export function securedPage(Component){return function securedPage(props){const[isLoading,setIsLoading]=useState(true);useEffect(()=>{const validateSession=async()=>{console.info(\"securedPage\");const{data:{session}}=await supabaseClient.auth.getSession();if(!session){console.info(\"No tiene sesion\");window.location.href=\"/login\"// Redirigir a /login si no hay sesi\u00F3n\n;}console.info(\"have secure page\");setIsLoading(false);};validateSession();},[]);return /*#__PURE__*/_jsx(_Fragment,{children:isLoading?/*#__PURE__*/_jsx(\"div\",{children:\"Loading\"}):/*#__PURE__*/_jsx(Component,{...props})});};}export function callbackLogin(Component){return function login(props){const[isLoading,setIsLoading]=useState(true);useEffect(()=>{const validateSession=async()=>{console.info(\"is Loading\");const{data:{session}}=await supabaseClient.auth.getSession();if(!session){console.error(\"No tiene sesion\");window.location.href=\"/login\"// Redirigir a /login si no hay sesi\u00F3n\n;}else{console.info(\"Tiene sesion\");await goToPlatform();}setIsLoading(false);};validateSession();},[]);return /*#__PURE__*/_jsx(_Fragment,{children:isLoading?/*#__PURE__*/_jsx(\"div\",{children:\"Loading\"}):/*#__PURE__*/_jsx(Component,{...props})});};}export function callbackLogout(Component){return function logout(props){const logout=async()=>{try{const{error}=await supabaseClient.auth.signOut();if(error)throw error;await goToPlatform();}catch(error){console.error(\"Imposible hacer logout\");}};useEffect(()=>{console.info(\"pagina logout\");logout();},[]);return /*#__PURE__*/_jsx(Component,{...props});};}export function callbackResetPassword(Component){return function resetPass(props){const resetPassword=async email=>{if(!email)return;try{const{error}=await supabaseClient.auth.resetPasswordForEmail(email,{redirectTo:`${window.location.origin}/update-your-password`});if(error)throw error;await goToPlatform();}catch(error){console.error(\"Imposible hacer logout\");}};useLayoutEffect(()=>{const members=document.querySelectorAll(\".rhkt-members\");// Itera sobre cada elemento y agrega un listener para el evento 'submit'\nmembers.forEach(member=>{member.addEventListener(\"submit\",async event=>{event.preventDefault()// Evita el comportamiento por defecto del submit\n;const email=member.querySelector(\"#email_address\").value;await resetPassword(email);});});});return /*#__PURE__*/_jsx(Component,{...props});};}export function callbackChangePassword(Component){return function changePass(props){const changePassword=async password=>{if(!password)return;try{const{error}=await supabaseClient.auth.updateUser({password});if(error)throw error;await goToPlatform();}catch(error){alert(\"Imposible cambiar la contrase\\xf1a\");}};const readToken=async()=>{const hashParams=new URLSearchParams(window.location.hash.substring(1));const access_token=hashParams.get(\"access_token\");const refresh_token=hashParams.get(\"refresh_token\");const type=hashParams.get(\"type\");// Verificar si tenemos los tokens necesarios\nif(type===\"recovery\"&&access_token){try{// Establecer la sesi\u00F3n con el token de recuperaci\u00F3n\nconst{error:sessionError}=await supabaseClient.auth.setSession({access_token,refresh_token:refresh_token||\"\"});if(sessionError)throw sessionError;}catch(err){alert(\"El enlace es inv\\xe1lido o ha expirado\");goToPlatform();}}else{alert(\"El enlace es inv\\xe1lido o ha expirado\");goToPlatform();}};useLayoutEffect(()=>{readToken();const members=document.querySelectorAll(\".rhkt-members\");// Itera sobre cada elemento y agrega un listener para el evento 'submit'\nmembers.forEach(member=>{member.addEventListener(\"submit\",async event=>{event.preventDefault()// Evita el comportamiento por defecto del submit\n;const password=member.querySelector(\"#password\").value;await changePassword(password);});});});return /*#__PURE__*/_jsx(Component,{...props});};}\nexport const __FramerMetadata__ = {\"exports\":{\"callbackLogout\":{\"type\":\"reactHoc\",\"name\":\"callbackLogout\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"securedPage\":{\"type\":\"reactHoc\",\"name\":\"securedPage\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"callbackChangePassword\":{\"type\":\"reactHoc\",\"name\":\"callbackChangePassword\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEntryPage\":{\"type\":\"reactHoc\",\"name\":\"withEntryPage\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"callbackResetPassword\":{\"type\":\"reactHoc\",\"name\":\"callbackResetPassword\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"callbackLogin\":{\"type\":\"reactHoc\",\"name\":\"callbackLogin\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AuthSupabase.map"],
  "mappings": "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",
  "names": ["resolveFetch", "customFetch", "_fetch", "args", "fetch2", "FunctionsError", "message", "name", "context", "FunctionsFetchError", "FunctionsRelayError", "FunctionsHttpError", "FunctionRegion", "FunctionRegion2", "__awaiter", "thisArg", "_arguments", "P", "generator", "adopt", "value", "resolve", "reject", "fulfilled", "step", "e", "rejected", "result", "FunctionsClient", "url", "headers", "region", "token", "functionName", "options", "_a", "method", "functionArgs", "_headers", "body", "response", "fetchError", "isRelayError", "responseType", "data", "error", "commonjsGlobal", "window", "global", "getDefaultExportFromCjs", "x", "createCommonjsModule", "fn", "basedir", "module", "path", "base", "commonjsRequire", "PostgrestError_1", "exports", "PostgrestError2", "context", "PostgrestBuilder_1", "__importDefault", "mod", "node_fetch_1", "node_fetch_default", "PostgrestError_1$1", "PostgrestBuilder2", "builder", "_a", "_b", "name", "value", "onfulfilled", "onrejected", "_fetch", "res", "res2", "_c", "_d", "error", "data", "count", "status", "statusText", "body", "countHeader", "contentRange", "fetchError", "PostgrestTransformBuilder_1", "PostgrestBuilder_1$1", "PostgrestTransformBuilder2", "columns", "quoted", "cleanedColumns", "c", "column", "ascending", "nullsFirst", "foreignTable", "referencedTable", "key", "existingOrder", "from", "to", "keyOffset", "keyLimit", "signal", "analyze", "verbose", "settings", "buffers", "wal", "format", "options", "forMediatype", "PostgrestFilterBuilder_1", "PostgrestTransformBuilder_1$1", "PostgrestFilterBuilder2", "pattern", "patterns", "values", "cleanedValues", "s", "range", "query", "config", "type", "typePart", "configPart", "operator", "filters", "PostgrestQueryBuilder_1", "PostgrestFilterBuilder_1$1", "PostgrestQueryBuilder2", "url", "headers", "schema", "fetch2", "head", "method", "defaultToNull", "acc", "uniqueColumns", "onConflict", "ignoreDuplicates", "PostgrestClient_1", "PostgrestQueryBuilder_1$1", "PostgrestClient2", "relation", "args", "get", "_", "cjs", "PostgrestClient_1$1", "index", "PostgrestClient", "PostgrestQueryBuilder", "PostgrestFilterBuilder", "PostgrestTransformBuilder", "PostgrestBuilder", "PostgrestError", "global$1", "global", "window", "defaultSetTimout", "defaultClearTimeout", "cachedSetTimeout", "cachedClearTimeout", "globalContext", "runTimeout", "fun", "runClearTimeout", "marker", "queue", "draining", "currentQueue", "queueIndex", "cleanUpNextTick", "drainQueue", "timeout", "len", "nextTick", "args", "i", "Item", "array", "title", "platform", "browser", "argv", "version", "versions", "release", "config", "noop", "on", "addListener", "once", "off", "removeListener", "removeAllListeners", "emit", "binding", "name", "cwd", "chdir", "dir", "umask", "performance", "performanceNow", "hrtime", "previousTimestamp", "clocktime", "seconds", "nanoseconds", "startTime", "uptime", "currentTime", "dif", "process", "WebSocketFactory", "_a", "navigator", "nodeVersion", "env", "errorMessage", "url", "protocols", "WS", "version$1", "DEFAULT_VERSION", "VSN", "DEFAULT_TIMEOUT", "WS_CLOSE_NORMAL", "MAX_PUSH_BUFFER_SIZE", "SOCKET_STATES", "SOCKET_STATES2", "CHANNEL_STATES", "CHANNEL_STATES2", "CHANNEL_EVENTS", "CHANNEL_EVENTS2", "TRANSPORTS", "TRANSPORTS2", "CONNECTION_STATE", "CONNECTION_STATE2", "Serializer", "rawPayload", "callback", "buffer", "view", "decoder", "topicSize", "eventSize", "offset", "topic", "event", "data", "Timer", "timerCalc", "PostgresTypes", "PostgresTypes2", "convertChangeData", "columns", "record", "options", "skipTypes", "acc", "rec_key", "convertColumn", "columnName", "column", "x", "colType", "value", "convertCell", "noop$1", "type", "dataType", "toArray", "toBoolean", "toNumber", "toJson", "toTimestampString", "parsedValue", "error", "lastIdx", "closeBrace", "arr", "valTrim", "val", "httpEndpointURL", "socketUrl", "Push", "channel", "payload", "status", "response", "h", "REALTIME_PRESENCE_LISTEN_EVENTS", "REALTIME_PRESENCE_LISTEN_EVENTS2", "RealtimePresence", "_RealtimePresence", "opts", "events", "newState", "onJoin", "onLeave", "onSync", "diff", "key", "currentPresences", "newPresences", "leftPresences", "currentState", "state", "transformedState", "joins", "leaves", "presences", "newPresenceRefs", "m", "curPresenceRefs", "joinedPresences", "joinedPresenceRefs", "curPresences", "presenceRefsToRemove", "obj", "func", "presence", "REALTIME_POSTGRES_CHANGES_LISTEN_EVENT", "REALTIME_POSTGRES_CHANGES_LISTEN_EVENT2", "REALTIME_LISTEN_TYPES", "REALTIME_LISTEN_TYPES2", "REALTIME_SUBSCRIBE_STATES", "REALTIME_SUBSCRIBE_STATES2", "RealtimeChannel", "_RealtimeChannel", "topic", "params", "socket", "CHANNEL_STATES", "Push", "CHANNEL_EVENTS", "Timer", "pushEvent", "reason", "payload", "ref", "RealtimePresence", "httpEndpointURL", "callback", "timeout", "_a", "_b", "_c", "broadcast", "presence", "isPrivate", "postgres_changes", "r", "presence_enabled", "REALTIME_LISTEN_TYPES", "accessTokenPayload", "config2", "e", "REALTIME_SUBSCRIBE_STATES", "postgres_changes2", "_a2", "clientPostgresBindings", "bindingsLen", "newPostgresBindings", "i", "clientPostgresBinding", "event", "schema", "table", "filter", "serverPostgresFilter", "error", "opts", "type", "args", "endpoint_payload", "options", "response", "resolve", "_b2", "push", "onClose", "leavePush", "url", "controller", "id", "MAX_PUSH_BUFFER_SIZE", "removedPush", "_event", "_ref", "typeLower", "close", "leave", "join", "handledPayload", "bind", "_d", "_e", "_f", "bindId", "bindEvent", "postgresChanges", "commit_timestamp", "type2", "errors", "binding2", "obj1", "obj2", "k", "records", "convertChangeData", "noop$2", "CONNECTION_TIMEOUTS", "RECONNECT_INTERVALS", "DEFAULT_RECONNECT_FALLBACK", "WORKER_SCRIPT", "RealtimeClient", "endPoint", "DEFAULT_TIMEOUT", "Serializer", "customFetch", "_fetch", "fetch2", "TRANSPORTS", "WebSocketFactory", "errorMessage", "VSN", "code", "fallbackTimer", "channel", "status", "values_1", "kind", "msg", "data", "SOCKET_STATES", "CONNECTION_STATE", "realtimeTopic", "exists", "c", "chan", "result", "token", "WS_CLOSE_NORMAL", "newRef", "dupChannel", "rawMessage", "refString", "timer", "objectUrl", "prefix", "query", "result_url", "blob", "state", "manual", "tokenToSend", "DEFAULT_VERSION", "context", "_g", "_h", "_j", "tries", "window", "global$1", "global", "window", "lookup", "revLookup", "Arr", "inited", "init", "code", "i", "len", "toByteArray", "b64", "j", "l", "tmp", "placeHolders", "arr", "L", "tripletToBase64", "num", "encodeChunk", "uint8", "start", "end", "output", "fromByteArray", "extraBytes", "parts", "maxChunkLength", "len2", "read", "buffer", "offset", "isLE", "mLen", "nBytes", "e", "m", "eLen", "eMax", "eBias", "nBits", "s", "write", "value", "rt", "d", "toString", "isArray", "INSPECT_MAX_BYTES", "Buffer", "kMaxLength", "createBuffer", "that", "length", "arg", "encodingOrOffset", "allocUnsafe", "from", "fromArrayBuffer", "fromString", "fromObject", "assertSize", "size", "alloc", "fill2", "encoding", "checked", "string", "byteLength", "actual", "fromArrayLike", "array", "byteOffset", "obj", "internalIsBuffer", "isnan", "isBuffer", "b", "a", "x", "y", "list", "pos", "buf", "loweredCase", "utf8ToBytes", "base64ToBytes", "slowToString", "hexSlice", "utf8Slice", "asciiSlice", "latin1Slice", "base64Slice", "utf16leSlice", "swap", "n", "str", "max", "target", "thisStart", "thisEnd", "thisCopy", "targetCopy", "bidirectionalIndexOf", "val", "dir", "arrayIndexOf", "indexSize", "arrLength", "valLength", "read2", "i2", "foundIndex", "found", "hexWrite", "remaining", "strLen", "parsed", "utf8Write", "blitBuffer", "asciiWrite", "asciiToBytes", "latin1Write", "base64Write", "ucs2Write", "utf16leToBytes", "res", "firstByte", "codePoint", "bytesPerSequence", "secondByte", "thirdByte", "fourthByte", "tempCodePoint", "decodeCodePointsArray", "MAX_ARGUMENTS_LENGTH", "codePoints", "ret", "out", "toHex", "bytes", "newBuf", "sliceLen", "checkOffset", "ext", "byteLength2", "noAssert", "mul", "checkInt", "min", "maxBytes", "objectWriteUInt16", "littleEndian", "objectWriteUInt32", "limit", "sub", "checkIEEE754", "writeFloat", "writeDouble", "targetStart", "INVALID_BASE64_RE", "base64clean", "stringtrim", "units", "leadSurrogate", "byteArray", "c", "hi", "lo", "src", "dst", "isFastBuffer", "isSlowBuffer", "StorageError", "message", "isStorageError", "error", "StorageApiError", "status", "statusCode", "StorageUnknownError", "originalError", "__awaiter", "thisArg", "_arguments", "P", "generator", "adopt", "resolve", "reject", "fulfilled", "step", "rejected", "result", "resolveFetch", "customFetch", "_fetch", "args", "fetch2", "resolveResponse", "recursiveToCamel", "item", "el", "key", "newKey", "isPlainObject", "prototype", "__awaiter$1", "_getErrorMessage", "err", "handleError", "options", "Res", "_getRequestParams", "method", "parameters", "body", "params", "_handleRequest", "fetcher", "url", "data", "get", "post", "put", "head", "remove", "__awaiter$2", "DEFAULT_SEARCH_OPTIONS", "DEFAULT_FILE_OPTIONS", "StorageFileApi", "headers", "bucketId", "path", "fileBody", "fileOptions", "metadata", "cleanPath", "_path", "token", "fromPath", "toPath", "expiresIn", "downloadQueryParam", "paths", "datum", "renderPath", "transformationQuery", "queryString", "_queryString", "transform", "version", "DEFAULT_HEADERS", "__awaiter$3", "StorageBucketApi", "opts", "baseUrl", "id", "StorageClient", "version", "GOTRUE_URL", "STORAGE_KEY", "DEFAULT_HEADERS", "version", "API_VERSION_HEADER_NAME", "API_VERSIONS", "BASE64URL_REGEX", "JWKS_TTL", "AuthError", "message", "status", "code", "isAuthError", "error", "AuthApiError", "isAuthApiError", "AuthUnknownError", "originalError", "CustomAuthError", "name", "AuthSessionMissingError", "isAuthSessionMissingError", "AuthInvalidTokenResponseError", "AuthInvalidCredentialsError", "AuthImplicitGrantRedirectError", "details", "isAuthImplicitGrantRedirectError", "AuthPKCEGrantCodeExchangeError", "AuthRetryableFetchError", "isAuthRetryableFetchError", "AuthWeakPasswordError", "reasons", "AuthInvalidJwtError", "CustomAuthError", "message", "TO_BASE64URL", "IGNORE_BASE64URL", "FROM_BASE64URL", "charMap", "i", "byteToBase64URL", "byte", "state", "emit", "pos", "byteFromBase64URL", "charCode", "bits", "stringFromBase64URL", "str", "conv", "utf8Emit", "codepoint", "utf8State", "b64State", "byteEmit", "stringFromUTF8", "codepointToUTF8", "stringToUTF8", "highSurrogate", "leadingBit", "base64UrlToUint8Array", "result", "onByte", "stringToUint8Array", "bytesToBase64URL", "bytes", "onChar", "char", "expiresAt", "expiresIn", "uuid", "c", "r", "isBrowser", "window", "localStorageWriteTests", "supportsLocalStorage", "randomKey", "parseParametersFromURL", "href", "url", "value", "key", "resolveFetch", "customFetch", "_fetch", "args", "fetch2", "looksLikeFetchResponse", "maybeResponse", "setItemAsync", "storage", "data", "getItemAsync", "removeItemAsync", "Deferred", "_Deferred", "res", "rej", "decodeJWT", "token", "parts", "BASE64URL_REGEX", "sleep", "time", "accept", "retryable", "fn", "isRetryable", "reject", "attempt", "e", "dec2hex", "dec", "generatePKCEVerifier", "array", "charSet", "charSetLen", "verifier", "sha256", "randomString", "encodedData", "hash", "generatePKCEChallenge", "hashed", "getCodeChallengeAndMethod", "storageKey", "isPasswordRecovery", "codeVerifier", "storedCodeVerifier", "codeChallenge", "API_VERSION_REGEX", "parseResponseAPIVersion", "response", "apiVersion", "API_VERSION_HEADER_NAME", "validateExp", "exp", "timeNow", "getAlgorithm", "alg", "UUID_REGEX", "validateUUID", "userNotAvailableProxy", "proxyTarget", "target", "prop", "sProp", "_target", "deepClone", "obj", "__rest", "p", "_getErrorMessage", "err", "NETWORK_ERROR_CODES", "handleError", "error", "_a", "AuthRetryableFetchError", "AuthUnknownError", "errorCode", "responseAPIVersion", "API_VERSIONS", "AuthWeakPasswordError", "AuthSessionMissingError", "a", "AuthApiError", "_getRequestParams", "method", "options", "parameters", "body", "params", "_request", "fetcher", "headers", "qs", "queryString", "_handleRequest", "requestParams", "_sessionResponse", "session", "hasSession", "user", "_sessionResponsePassword", "_userResponse", "_ssoResponse", "_generateLinkResponse", "action_link", "email_otp", "hashed_token", "redirect_to", "verification_type", "rest", "properties", "_noResolveJsonResponse", "SIGN_OUT_SCOPES", "__rest$1", "GoTrueAdminApi", "jwt", "scope", "isAuthError", "email", "attributes", "_b", "_c", "_d", "_e", "_f", "_g", "pagination", "users", "total", "links", "link", "page", "rel", "uid", "id", "shouldSoftDelete", "factors", "memoryLocalStorageAdapter", "store", "polyfillGlobalThis", "internals", "LockAcquireTimeoutError", "NavigatorLockAcquireTimeoutError", "navigatorLock", "name", "acquireTimeout", "fn", "internals", "abortController", "lock", "NavigatorLockAcquireTimeoutError", "result", "e", "polyfillGlobalThis", "DEFAULT_OPTIONS", "GOTRUE_URL", "STORAGE_KEY", "DEFAULT_HEADERS", "lockNoOp", "name", "acquireTimeout", "fn", "GLOBAL_JWKS", "GoTrueClient", "_GoTrueClient", "options", "_a", "_b", "isBrowser", "settings", "GoTrueAdminApi", "resolveFetch", "navigatorLock", "supportsLocalStorage", "memoryLocalStorageAdapter", "e", "event", "value", "args", "version", "params", "parseParametersFromURL", "window", "callbackUrlType", "data", "error", "isAuthImplicitGrantRedirectError", "errorCode", "session", "redirectType", "isAuthError", "AuthUnknownError", "credentials", "_c", "res", "_request", "_sessionResponse", "user", "email", "password", "codeChallenge", "codeChallengeMethod", "getCodeChallengeAndMethod", "phone", "AuthInvalidCredentialsError", "_sessionResponsePassword", "AuthInvalidTokenResponseError", "_d", "authCode", "chain", "_e", "_f", "_g", "_h", "_j", "_k", "_l", "_m", "message", "signature", "wallet", "statement", "resolvedWallet", "windowAny", "url", "output", "outputToProcess", "resource", "maybeSignature", "bytesToBase64URL", "storageItem", "getItemAsync", "codeVerifier", "removeItemAsync", "provider", "token", "access_token", "nonce", "redirectTo", "captchaToken", "_ssoResponse", "result", "sessionError", "AuthSessionMissingError", "endpoint", "type", "result2", "last", "waitOn", "currentSession", "maybeSession", "hasExpired", "maybeUser", "userNotAvailableProxy", "suppressWarning", "target", "prop", "receiver", "jwt", "_userResponse", "isAuthSessionMissingError", "attributes", "sessionData", "userError", "timeNow", "expiresAt2", "payload", "decodeJWT", "refreshedSession", "error2", "AuthImplicitGrantRedirectError", "AuthPKCEGrantCodeExchangeError", "data2", "provider_token", "provider_refresh_token", "refresh_token", "expires_in", "expires_at", "token_type", "expiresIn", "actuallyExpiresIn", "issuedAt", "currentStorageContent", "scope", "accessToken", "isAuthApiError", "callback", "id", "uuid", "subscription", "err", "_a2", "identity", "refreshToken", "debugName", "startedAt", "retryable", "attempt", "sleep", "nextBackOffInterval", "isAuthRetryableFetchError", "setItemAsync", "separateUser", "expiresWithMargin", "getUserError", "Deferred", "broadcast", "errors", "promises", "x", "i", "sessionToProcess", "userIsProxy", "mainSessionData", "clonedMainSessionData", "deepClone", "clonedSession", "ticker", "now", "expiresInTicks", "LockAcquireTimeoutError", "calledFromInitialize", "methodName", "urlParams", "flowParams", "query", "body", "challengeData", "challengeError", "factors", "totp", "factor", "currentLevel", "nextLevel", "currentAuthenticationMethods", "kid", "jwks", "jwk", "key", "JWKS_TTL", "header", "rawHeader", "rawPayload", "validateExp", "signingKey", "algorithm", "getAlgorithm", "publicKey", "stringToUint8Array", "AuthInvalidJwtError", "AuthClient", "GoTrueClient", "Headers$1", "node_fetch_default", "defaultSetTimout", "defaultClearTimeout", "cachedSetTimeout", "cachedClearTimeout", "globalContext", "window", "runTimeout", "fun", "runClearTimeout", "marker", "queue", "draining", "currentQueue", "queueIndex", "cleanUpNextTick", "drainQueue", "timeout", "len", "nextTick", "args", "i", "Item", "array", "title", "platform", "browser", "argv", "version", "versions", "release", "config", "noop", "on", "addListener", "once", "off", "removeListener", "removeAllListeners", "emit", "binding", "name", "cwd", "chdir", "dir", "umask", "performance", "performanceNow", "hrtime", "previousTimestamp", "clocktime", "seconds", "nanoseconds", "startTime", "uptime", "currentTime", "dif", "process", "version$1", "JS_ENV", "navigator", "DEFAULT_HEADERS", "DEFAULT_GLOBAL_OPTIONS", "DEFAULT_DB_OPTIONS", "DEFAULT_AUTH_OPTIONS", "DEFAULT_REALTIME_OPTIONS", "__awaiter", "thisArg", "_arguments", "P", "generator", "adopt", "value", "resolve", "reject", "fulfilled", "step", "e", "rejected", "result", "resolveFetch", "customFetch", "_fetch", "resolveHeadersConstructor", "fetchWithAuth", "supabaseKey", "getAccessToken", "fetch2", "HeadersConstructor", "input", "init", "_a", "accessToken", "headers", "__awaiter$1", "ensureTrailingSlash", "url", "applySettingDefaults", "options", "defaults", "_b", "dbOptions", "authOptions", "realtimeOptions", "globalOptions", "DEFAULT_DB_OPTIONS2", "DEFAULT_AUTH_OPTIONS2", "DEFAULT_REALTIME_OPTIONS2", "DEFAULT_GLOBAL_OPTIONS2", "SupabaseAuthClient", "AuthClient", "__awaiter$2", "SupabaseClient", "supabaseUrl", "_c", "_supabaseUrl", "baseUrl", "defaultStorageKey", "DEFAULTS", "settings", "_", "prop", "PostgrestClient", "StorageClient", "FunctionsClient", "relation", "schema", "fn", "opts", "channel", "data", "autoRefreshToken", "persistSession", "detectSessionInUrl", "storage", "storageKey", "flowType", "lock", "debug", "authHeaders", "RealtimeClient", "event", "session", "source", "token", "createClient", "shouldShowDeprecationWarning", "versionMatch", "supabaseClient", "createClient", "LABEL_BUTTON_AD", "goToPlatform", "data", "error", "window", "withEntryPage", "Component", "props", "isLoading", "setIsLoading", "ye", "loginAzure", "login", "email", "password", "domain", "fe", "listenerSession", "session", "member", "event", "listenerSessionAD", "azureButton", "button", "p", "l", "securedPage", "ue", "callbackLogin", "callbackLogout", "logout", "callbackResetPassword", "resetPassword", "callbackChangePassword", "changePassword", "readToken", "hashParams", "access_token", "refresh_token", "sessionError"]
}
