{
  "version": 3,
  "sources": ["ssg:https://framer.com/m/framer/store.js@^1.0.0", "ssg:https://cdn.skypack.dev/-/@supabase/functions-js@v2.4.3-0nTwGrLKYBUiD3EZ4ywB/dist=es2019,mode=imports/optimized/@supabase/functions-js.js", "ssg:https://cdn.skypack.dev/-/@supabase/postgrest-js@v1.16.3-W96N0xm4Q9ZQ6mtNokSY/dist=es2019,mode=imports/optimized/@supabase/postgrest-js.js", "ssg:https://cdn.skypack.dev/-/@supabase/realtime-js@v2.10.7-CUXLVRAIYS4d5VOnoMf1/dist=es2019,mode=imports/optimized/@supabase/realtime-js.js", "ssg:https://cdn.skypack.dev/-/@supabase/storage-js@v2.7.1-PqiU3azcKjwu0FbblYoI/dist=es2019,mode=imports/optimized/@supabase/storage-js.js", "ssg:https://cdn.skypack.dev/-/@supabase/auth-js@v2.65.1-1orRltBcBqRfRpT9qSfM/dist=es2019,mode=imports/optimized/@supabase/auth-js.js", "ssg:https://cdn.skypack.dev/-/@supabase/supabase-js@v2.46.1-zj5O4o99Vcu3vKdvPX02/dist=es2019,mode=imports/optimized/@supabase/supabase-js.js", "ssg:https://cdn.skypack.dev/-/cookie@v0.7.2-Qg8ELhGGh6R0KFfmM352/dist=es2019,mode=imports/optimized/cookie.js", "ssg:https://cdn.skypack.dev/-/@supabase/ssr@v0.5.2-rpTCAYEgpResvLlzIwSM/dist=es2019,mode=imports/optimized/@supabase/ssr.js", "ssg:https://framerusercontent.com/modules/MFHKMoyyiEA32FB3rfXO/eujy88pfEJGZOoreVV3L/SetPassword.js"],
  "sourcesContent": ["import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map", "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        if (region && region !== \"any\") {\n          _headers[\"x-region\"] = 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(`${this.url}/${functionName}`, {\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};\n      } catch (error) {\n        return {data: null, error};\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 PostgrestError 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 = PostgrestError;\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      this.shouldThrowOnError = false;\n      this.method = builder.method;\n      this.url = builder.url;\n      this.headers = builder.headers;\n      this.schema = builder.schema;\n      this.body = builder.body;\n      this.shouldThrowOnError = builder.shouldThrowOnError;\n      this.signal = builder.signal;\n      this.isMaybeSingle = builder.isMaybeSingle;\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 = Object.assign({}, this.headers);\n      this.headers[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[\"Accept-Profile\"] = this.schema;\n      } else {\n        this.headers[\"Content-Profile\"] = this.schema;\n      }\n      if (this.method !== \"GET\" && this.method !== \"HEAD\") {\n        this.headers[\"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;\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[\"Accept\"] === \"text/csv\") {\n              data = body;\n            } else if (this.headers[\"Accept\"] && this.headers[\"Accept\"].includes(\"application/vnd.pgrst.plan+text\")) {\n              data = body;\n            } else {\n              data = JSON.parse(body);\n            }\n          }\n          const countHeader = (_a = this.headers[\"Prefer\"]) === null || _a === void 0 ? void 0 : _a.match(/count=(exact|planned|estimated)/);\n          const contentRange = (_b = res2.headers.get(\"content-range\")) === null || _b === void 0 ? void 0 : _b.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 (_d) {\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 && ((_c = error === null || error === void 0 ? void 0 : error.details) === null || _c === void 0 ? void 0 : _c.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  }\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      if (this.headers[\"Prefer\"]) {\n        this.headers[\"Prefer\"] += \",\";\n      }\n      this.headers[\"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[\"Accept\"] = \"application/vnd.pgrst.object+json\";\n      return this;\n    }\n    maybeSingle() {\n      if (this.method === \"GET\") {\n        this.headers[\"Accept\"] = \"application/json\";\n      } else {\n        this.headers[\"Accept\"] = \"application/vnd.pgrst.object+json\";\n      }\n      this.isMaybeSingle = true;\n      return this;\n    }\n    csv() {\n      this.headers[\"Accept\"] = \"text/csv\";\n      return this;\n    }\n    geojson() {\n      this.headers[\"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[\"Accept\"]) !== null && _a !== void 0 ? _a : \"application/json\";\n      this.headers[\"Accept\"] = `application/vnd.pgrst.plan+${format}; for=\"${forMediatype}\"; options=${options};`;\n      if (format === \"json\")\n        return this;\n      else\n        return this;\n    }\n    rollback() {\n      var _a;\n      if (((_a = this.headers[\"Prefer\"]) !== null && _a !== void 0 ? _a : \"\").trim().length > 0) {\n        this.headers[\"Prefer\"] += \",tx=rollback\";\n      } else {\n        this.headers[\"Prefer\"] = \"tx=rollback\";\n      }\n      return this;\n    }\n    returns() {\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 = 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[\"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        allowEmpty: false\n      });\n    }\n    insert(values, {count, defaultToNull = true} = {}) {\n      const method = \"POST\";\n      const prefersHeaders = [];\n      if (this.headers[\"Prefer\"]) {\n        prefersHeaders.push(this.headers[\"Prefer\"]);\n      }\n      if (count) {\n        prefersHeaders.push(`count=${count}`);\n      }\n      if (!defaultToNull) {\n        prefersHeaders.push(\"missing=default\");\n      }\n      this.headers[\"Prefer\"] = prefersHeaders.join(\",\");\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: this.fetch,\n        allowEmpty: false\n      });\n    }\n    upsert(values, {onConflict, ignoreDuplicates = false, count, defaultToNull = true} = {}) {\n      const method = \"POST\";\n      const prefersHeaders = [`resolution=${ignoreDuplicates ? \"ignore\" : \"merge\"}-duplicates`];\n      if (onConflict !== void 0)\n        this.url.searchParams.set(\"on_conflict\", onConflict);\n      if (this.headers[\"Prefer\"]) {\n        prefersHeaders.push(this.headers[\"Prefer\"]);\n      }\n      if (count) {\n        prefersHeaders.push(`count=${count}`);\n      }\n      if (!defaultToNull) {\n        prefersHeaders.push(\"missing=default\");\n      }\n      this.headers[\"Prefer\"] = prefersHeaders.join(\",\");\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: this.fetch,\n        allowEmpty: false\n      });\n    }\n    update(values, {count} = {}) {\n      const method = \"PATCH\";\n      const prefersHeaders = [];\n      if (this.headers[\"Prefer\"]) {\n        prefersHeaders.push(this.headers[\"Prefer\"]);\n      }\n      if (count) {\n        prefersHeaders.push(`count=${count}`);\n      }\n      this.headers[\"Prefer\"] = prefersHeaders.join(\",\");\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: this.fetch,\n        allowEmpty: false\n      });\n    }\n    delete({count} = {}) {\n      const method = \"DELETE\";\n      const prefersHeaders = [];\n      if (count) {\n        prefersHeaders.push(`count=${count}`);\n      }\n      if (this.headers[\"Prefer\"]) {\n        prefersHeaders.unshift(this.headers[\"Prefer\"]);\n      }\n      this.headers[\"Prefer\"] = prefersHeaders.join(\",\");\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        allowEmpty: false\n      });\n    }\n  }\n  exports.default = PostgrestQueryBuilder2;\n});\nvar version = createCommonjsModule(function(module, exports) {\n  Object.defineProperty(exports, \"__esModule\", {value: true});\n  exports.version = void 0;\n  exports.version = \"0.0.0-automated\";\n});\nvar constants = createCommonjsModule(function(module, exports) {\n  Object.defineProperty(exports, \"__esModule\", {value: true});\n  exports.DEFAULT_HEADERS = void 0;\n  exports.DEFAULT_HEADERS = {\"X-Client-Info\": `postgrest-js/${version.version}`};\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 = Object.assign(Object.assign({}, constants.DEFAULT_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: Object.assign({}, 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      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 = Object.assign({}, this.headers);\n      if (count) {\n        headers[\"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: this.fetch,\n        allowEmpty: false\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} = index;\nvar wrapper = {\n  PostgrestClient,\n  PostgrestQueryBuilder,\n  PostgrestFilterBuilder,\n  PostgrestTransformBuilder,\n  PostgrestBuilder\n};\nexport default wrapper;\nexport {PostgrestBuilder, PostgrestClient, PostgrestFilterBuilder, PostgrestQueryBuilder, PostgrestTransformBuilder};\n", "const version = \"2.10.7\";\nconst DEFAULT_HEADERS = {\"X-Client-Info\": `realtime-js/${version}`};\nconst VSN = \"1.0.0\";\nconst DEFAULT_TIMEOUT = 1e4;\nconst WS_CLOSE_NORMAL = 1e3;\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  }\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(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(value);\n    default:\n      return noop(value);\n  }\n};\nconst noop = (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(/\\/+$/, \"\");\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.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: \"\"},\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._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) + \"/api/broadcast\";\n    this.private = this.params.config.private || false;\n  }\n  subscribe(callback, timeout = this.timeout) {\n    var _a, _b;\n    if (!this.socket.isConnected()) {\n      this.socket.connect();\n    }\n    if (this.joinedOnce) {\n      throw `tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance`;\n    } else {\n      const {config: {broadcast, presence, private: isPrivate}} = this.params;\n      this._onError((e) => callback && callback(\"CHANNEL_ERROR\", e));\n      this._onClose(() => callback && callback(\"CLOSED\"));\n      const accessTokenPayload = {};\n      const config = {\n        broadcast,\n        presence,\n        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        private: isPrivate\n      };\n      if (this.socket.accessToken) {\n        accessTokenPayload.access_token = this.socket.accessToken;\n      }\n      this.updateJoinPayload(Object.assign({config}, accessTokenPayload));\n      this.joinedOnce = true;\n      this._rejoin(timeout);\n      this.joinPush.receive(\"ok\", ({postgres_changes: serverPostgresFilters}) => {\n        var _a2;\n        this.socket.accessToken && this.socket.setAuth(this.socket.accessToken);\n        if (serverPostgresFilters === void 0) {\n          callback && callback(\"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 = serverPostgresFilters && serverPostgresFilters[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              callback && callback(\"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(\"SUBSCRIBED\");\n          return;\n        }\n      }).receive(\"error\", (error) => {\n        callback && callback(\"CHANNEL_ERROR\", new Error(JSON.stringify(Object.values(error).join(\", \") || \"error\")));\n        return;\n      }).receive(\"timeout\", () => {\n        callback && callback(\"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    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 options = {\n        method: \"POST\",\n        headers: {\n          Authorization: this.socket.accessToken ? `Bearer ${this.socket.accessToken}` : \"\",\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.rejoinTimer.reset();\n    this.joinPush.destroy();\n    return new Promise((resolve) => {\n      const 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    });\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      pushEvent.startTimeout();\n      this.pushBuffer.push(pushEvent);\n    }\n    return pushEvent;\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 binding = {\n      type: typeLower,\n      filter,\n      callback\n    };\n    if (this.bindings[typeLower]) {\n      this.bindings[typeLower].push(binding);\n    } else {\n      this.bindings[typeLower] = [binding];\n    }\n    return this;\n  }\n  _off(type, filter) {\n    const typeLower = type.toLocaleLowerCase();\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    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$1 = () => {\n};\nconst NATIVE_WEBSOCKET_AVAILABLE = typeof WebSocket !== \"undefined\";\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.accessToken = null;\n    this.apiKey = null;\n    this.channels = [];\n    this.endPoint = \"\";\n    this.httpEndpoint = \"\";\n    this.headers = DEFAULT_HEADERS;\n    this.params = {};\n    this.timeout = DEFAULT_TIMEOUT;\n    this.heartbeatIntervalMs = 3e4;\n    this.heartbeatTimer = void 0;\n    this.pendingHeartbeatRef = null;\n    this.ref = 0;\n    this.logger = noop$1;\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._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    };\n    this.endPoint = `${endPoint}/${TRANSPORTS.websocket}`;\n    this.httpEndpoint = httpEndpointURL(endPoint);\n    if (options === null || options === void 0 ? void 0 : options.transport) {\n      this.transport = options.transport;\n    } else {\n      this.transport = null;\n    }\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.headers)\n      this.headers = Object.assign(Object.assign({}, this.headers), options.headers);\n    if (options === null || options === void 0 ? void 0 : options.timeout)\n      this.timeout = options.timeout;\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.heartbeatIntervalMs)\n      this.heartbeatIntervalMs = options.heartbeatIntervalMs;\n    const accessToken = (_a = options === null || options === void 0 ? void 0 : options.params) === null || _a === void 0 ? void 0 : _a.apikey;\n    if (accessToken) {\n      this.accessToken = accessToken;\n      this.apiKey = accessToken;\n    }\n    this.reconnectAfterMs = (options === null || options === void 0 ? void 0 : options.reconnectAfterMs) ? options.reconnectAfterMs : (tries) => {\n      return [1e3, 2e3, 5e3, 1e4][tries - 1] || 1e4;\n    };\n    this.encode = (options === null || options === void 0 ? void 0 : options.encode) ? options.encode : (payload, callback) => {\n      return callback(JSON.stringify(payload));\n    };\n    this.decode = (options === null || options === void 0 ? void 0 : options.decode) ? options.decode : this.serializer.decode.bind(this.serializer);\n    this.reconnectTimer = new Timer(async () => {\n      this.disconnect();\n      this.connect();\n    }, this.reconnectAfterMs);\n    this.fetch = this._resolveFetch(options === null || options === void 0 ? void 0 : options.fetch);\n    if (options === null || options === void 0 ? void 0 : options.worker) {\n      if (typeof window !== \"undefined\" && !window.Worker) {\n        throw new Error(\"Web Worker is not supported\");\n      }\n      this.worker = (options === null || options === void 0 ? void 0 : options.worker) || false;\n      this.workerUrl = options === null || options === void 0 ? void 0 : options.workerUrl;\n    }\n  }\n  connect() {\n    if (this.conn) {\n      return;\n    }\n    if (this.transport) {\n      this.conn = new this.transport(this._endPointURL(), void 0, {\n        headers: this.headers\n      });\n      return;\n    }\n    if (NATIVE_WEBSOCKET_AVAILABLE) {\n      this.conn = new WebSocket(this._endPointURL());\n      this.setupConnection();\n      return;\n    }\n    this.conn = new WSWebSocketDummy(this._endPointURL(), void 0, {\n      close: () => {\n        this.conn = null;\n      }\n    });\n    import(\"/-/ws@v8.18.0-QNBS0aBUkqIltOX8bZGC/dist=es2019,mode=imports/optimized/ws.js\").then(({default: WS}) => {\n      this.conn = new WS(this._endPointURL(), void 0, {\n        headers: this.headers\n      });\n      this.setupConnection();\n    });\n  }\n  disconnect(code, reason) {\n    if (this.conn) {\n      this.conn.onclose = function() {\n      };\n      if (code) {\n        this.conn.close(code, reason !== null && reason !== void 0 ? reason : \"\");\n      } else {\n        this.conn.close();\n      }\n      this.conn = null;\n      this.heartbeatTimer && clearInterval(this.heartbeatTimer);\n      this.reconnectTimer.reset();\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.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  channel(topic, params = {config: {}}) {\n    const chan = new RealtimeChannel(`realtime:${topic}`, params, this);\n    this.channels.push(chan);\n    return chan;\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  setAuth(token) {\n    this.accessToken = token;\n    this.channels.forEach((channel) => {\n      token && channel.updateJoinPayload({access_token: token});\n      if (channel.joinedOnce && channel._isJoined()) {\n        channel._push(CHANNEL_EVENTS.access_token, {access_token: token});\n      }\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._joinRef() !== channel._joinRef());\n  }\n  setupConnection() {\n    if (this.conn) {\n      this.conn.binaryType = \"arraybuffer\";\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  }\n  _endPointURL() {\n    return this._appendParams(this.endPoint, Object.assign({}, this.params, {vsn: VSN}));\n  }\n  _onConnMessage(rawMessage) {\n    this.decode(rawMessage.data, (msg) => {\n      let {topic, event, payload, ref} = msg;\n      if (ref && ref === this.pendingHeartbeatRef || event === (payload === null || payload === void 0 ? void 0 : payload.type)) {\n        this.pendingHeartbeatRef = null;\n      }\n      this.log(\"receive\", `${payload.status || \"\"} ${topic} ${event} ${ref && \"(\" + ref + \")\" || \"\"}`, payload);\n      this.channels.filter((channel) => channel._isMember(topic)).forEach((channel) => channel._trigger(event, payload, ref));\n      this.stateChangeCallbacks.message.forEach((callback) => callback(msg));\n    });\n  }\n  async _onConnOpen() {\n    this.log(\"transport\", `connected to ${this._endPointURL()}`);\n    this._flushSendBuffer();\n    this.reconnectTimer.reset();\n    if (!this.worker) {\n      this.heartbeatTimer && clearInterval(this.heartbeatTimer);\n      this.heartbeatTimer = setInterval(() => this._sendHeartbeat(), this.heartbeatIntervalMs);\n    } else {\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    this.stateChangeCallbacks.open.forEach((callback) => callback());\n  }\n  _onConnClose(event) {\n    this.log(\"transport\", \"close\", event);\n    this._triggerChanError();\n    this.heartbeatTimer && clearInterval(this.heartbeatTimer);\n    this.reconnectTimer.scheduleTimeout();\n    this.stateChangeCallbacks.close.forEach((callback) => callback(event));\n  }\n  _onConnError(error) {\n    this.log(\"transport\", error.message);\n    this._triggerChanError();\n    this.stateChangeCallbacks.error.forEach((callback) => callback(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  _flushSendBuffer() {\n    if (this.isConnected() && this.sendBuffer.length > 0) {\n      this.sendBuffer.forEach((callback) => callback());\n      this.sendBuffer = [];\n    }\n  }\n  _sendHeartbeat() {\n    var _a;\n    if (!this.isConnected()) {\n      return;\n    }\n    if (this.pendingHeartbeatRef) {\n      this.pendingHeartbeatRef = null;\n      this.log(\"transport\", \"heartbeat timeout. Attempting to re-establish connection\");\n      (_a = this.conn) === null || _a === void 0 ? void 0 : _a.close(WS_CLOSE_NORMAL, \"hearbeat timeout\");\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    this.setAuth(this.accessToken);\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}\nclass WSWebSocketDummy {\n  constructor(address, _protocols, options) {\n    this.binaryType = \"arraybuffer\";\n    this.onclose = () => {\n    };\n    this.onerror = () => {\n    };\n    this.onmessage = () => {\n    };\n    this.onopen = () => {\n    };\n    this.readyState = SOCKET_STATES.connecting;\n    this.send = () => {\n    };\n    this.url = null;\n    this.url = address;\n    this.close = options.close;\n  }\n}\nexport {REALTIME_CHANNEL_STATES, REALTIME_LISTEN_TYPES, REALTIME_POSTGRES_CHANGES_LISTEN_EVENT, REALTIME_PRESENCE_LISTEN_EVENTS, REALTIME_SUBSCRIBE_STATES, RealtimeChannel, RealtimeClient, RealtimePresence};\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) {\n    super(message);\n    this.name = \"StorageApiError\";\n    this.status = status;\n  }\n  toJSON() {\n    return {\n      name: this.name,\n      message: this.message,\n      status: this.status\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};\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      reject(new StorageApiError(_getErrorMessage(err), error.status || 500));\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\") {\n    return params;\n  }\n  params.headers = Object.assign({\"Content-Type\": \"application/json\"}, options === null || options === void 0 ? void 0 : options.headers);\n  if (body) {\n    params.body = JSON.stringify(body);\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 res = yield this.fetch(`${this.url}/object/${_path}`, Object.assign({method, body, headers}, (options === null || options === void 0 ? void 0 : options.duplex) ? {duplex: options.duplex} : {}));\n        const data = yield res.json();\n        if (res.ok) {\n          return {\n            data: {path: cleanPath, id: data.Id, fullPath: data.Key},\n            error: null\n          };\n        } else {\n          const error = data;\n          return {data: null, error};\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 res = yield this.fetch(url.toString(), {\n          method: \"PUT\",\n          body,\n          headers\n        });\n        const data = yield res.json();\n        if (res.ok) {\n          return {\n            data: {path: cleanPath, fullPath: data.Key},\n            error: null\n          };\n        } else {\n          const error = data;\n          return {data: null, error};\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  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}`;\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.7.1\";\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) {\n    this.url = url;\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          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) {\n    super(url, headers, fetch2);\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.65.1\";\nconst GOTRUE_URL = \"http://localhost:9999\";\nconst STORAGE_KEY = \"supabase.auth.token\";\nconst DEFAULT_HEADERS = {\"X-Client-Info\": `gotrue-js/${version}`};\nconst EXPIRY_MARGIN = 10;\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};\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 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};\nfunction decodeBase64URL(value) {\n  const key = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n  let base64 = \"\";\n  let chr1, chr2, chr3;\n  let enc1, enc2, enc3, enc4;\n  let i = 0;\n  value = value.replace(\"-\", \"+\").replace(\"_\", \"/\");\n  while (i < value.length) {\n    enc1 = key.indexOf(value.charAt(i++));\n    enc2 = key.indexOf(value.charAt(i++));\n    enc3 = key.indexOf(value.charAt(i++));\n    enc4 = key.indexOf(value.charAt(i++));\n    chr1 = enc1 << 2 | enc2 >> 4;\n    chr2 = (enc2 & 15) << 4 | enc3 >> 2;\n    chr3 = (enc3 & 3) << 6 | enc4;\n    base64 = base64 + String.fromCharCode(chr1);\n    if (enc3 != 64 && chr2 != 0) {\n      base64 = base64 + String.fromCharCode(chr2);\n    }\n    if (enc4 != 64 && chr3 != 0) {\n      base64 = base64 + String.fromCharCode(chr3);\n    }\n  }\n  return base64;\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 decodeJWTPayload(token) {\n  const base64UrlRegex = /^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}=?$|[a-z0-9_-]{2}(==)?$)$/i;\n  const parts = token.split(\".\");\n  if (parts.length !== 3) {\n    throw new Error(\"JWT is not valid: not a JWT structure\");\n  }\n  if (!base64UrlRegex.test(parts[1])) {\n    throw new Error(\"JWT is not valid: payload is not in base64url format\");\n  }\n  const base64Url = parts[1];\n  return JSON.parse(decodeBase64URL(base64Url));\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}\nfunction base64urlencode(str) {\n  return btoa(str).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\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 base64urlencode(hashed);\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}\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}\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}\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}\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 = \"global\") {\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    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    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    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    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    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}\nconst localStorageAdapter = {\n  getItem: (key) => {\n    if (!supportsLocalStorage()) {\n      return null;\n    }\n    return globalThis.localStorage.getItem(key);\n  },\n  setItem: (key, value) => {\n    if (!supportsLocalStorage()) {\n      return;\n    }\n    globalThis.localStorage.setItem(key, value);\n  },\n  removeItem: (key) => {\n    if (!supportsLocalStorage()) {\n      return;\n    }\n    globalThis.localStorage.removeItem(key);\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}\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 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}\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};\nconst AUTO_REFRESH_TICK_DURATION = 30 * 1e3;\nconst AUTO_REFRESH_TICK_THRESHOLD = 3;\nasync function lockNoOp(name, acquireTimeout, fn) {\n  return await fn();\n}\nclass GoTrueClient {\n  constructor(options) {\n    var _a, _b;\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    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 = localStorageAdapter;\n        } else {\n          this.memoryStorage = {};\n          this.storage = memoryLocalStorageAdapter(this.memoryStorage);\n        }\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  _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    try {\n      const isPKCEFlow = isBrowser() ? await this._isPKCEFlow() : false;\n      this._debug(\"#_initialize()\", \"begin\", \"is PKCE flow\", isPKCEFlow);\n      if (isPKCEFlow || this.detectSessionInUrl && this._isImplicitGrantFlow()) {\n        const {data, error} = await this._getSessionFromURL(isPKCEFlow);\n        if (error) {\n          this._debug(\"#_initialize()\", \"error detecting session from URL\", error);\n          if ((error === null || error === void 0 ? void 0 : error.code) === \"identity_already_exists\") {\n            return {error};\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 _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 <= Date.now() / 1e3 : false;\n      this._debug(\"#__loadSession()\", `session has${hasExpired ? \"\" : \" not\"} expired`, \"expires_at\", currentSession.expires_at);\n      if (!hasExpired) {\n        if (this.storage.isServer) {\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 many 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  _decodeJWT(jwt) {\n    return decodeJWTPayload(jwt);\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 = decodeJWTPayload(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(isPKCEFlow) {\n    try {\n      if (!isBrowser())\n        throw new AuthImplicitGrantRedirectError(\"No browser detected.\");\n      if (this.flowType === \"implicit\" && !this._isImplicitGrantFlow()) {\n        throw new AuthImplicitGrantRedirectError(\"Not a valid implicit grant flow url.\");\n      } else if (this.flowType == \"pkce\" && !isPKCEFlow) {\n        throw new AuthPKCEGrantCodeExchangeError(\"Not a valid PKCE flow url.\");\n      }\n      const params = parseParametersFromURL(window.location.href);\n      if (isPKCEFlow) {\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      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      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) {\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  _isImplicitGrantFlow() {\n    const params = parseParametersFromURL(window.location.href);\n    return !!(isBrowser() && (params.access_token || params.error_description));\n  }\n  async _isPKCEFlow() {\n    const params = parseParametersFromURL(window.location.href);\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;\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;\n    const debugName = \"#_recoverAndRefresh()\";\n    this._debug(debugName, \"begin\");\n    try {\n      const currentSession = await getItemAsync(this.storage, this.storageKey);\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 timeNow = Math.round(Date.now() / 1e3);\n      const expiresWithMargin = ((_a = currentSession.expires_at) !== null && _a !== void 0 ? _a : Infinity) < timeNow + EXPIRY_MARGIN;\n      this._debug(debugName, `session has${expiresWithMargin ? \"\" : \" not\"} expired with margin of ${EXPIRY_MARGIN}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 {\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    await setItemAsync(this.storage, this.storageKey, session);\n  }\n  async _removeSession() {\n    this._debug(\"#_removeSession()\");\n    await removeItemAsync(this.storage, this.storageKey);\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);\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);\n              this._debug(\"#_autoRefreshTokenTick()\", `access token expires in ${expiresInTicks} ticks, a tick lasts ${AUTO_REFRESH_TICK_DURATION}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 = this._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}\nGoTrueClient.nextInstanceID = 0;\nconst AuthAdminApi = GoTrueAdminApi;\nconst AuthClient = GoTrueClient;\nexport {AuthAdminApi, AuthApiError, AuthClient, AuthError, AuthImplicitGrantRedirectError, AuthInvalidCredentialsError, AuthInvalidTokenResponseError, AuthPKCEGrantCodeExchangeError, AuthRetryableFetchError, AuthSessionMissingError, AuthUnknownError, AuthWeakPasswordError, CustomAuthError, GoTrueAdminApi, GoTrueClient, NavigatorLockAcquireTimeoutError, isAuthApiError, isAuthError, isAuthRetryableFetchError, isAuthSessionMissingError, isAuthWeakPasswordError, internals as lockInternals, navigatorLock};\nexport default null;\n", "import {FunctionsClient} from \"/-/@supabase/functions-js@v2.4.3-0nTwGrLKYBUiD3EZ4ywB/dist=es2019,mode=imports/optimized/@supabase/functions-js.js\";\nexport {FunctionRegion, FunctionsError, FunctionsFetchError, FunctionsHttpError, FunctionsRelayError} from \"/-/@supabase/functions-js@v2.4.3-0nTwGrLKYBUiD3EZ4ywB/dist=es2019,mode=imports/optimized/@supabase/functions-js.js\";\nimport {PostgrestClient} from \"/-/@supabase/postgrest-js@v1.16.3-W96N0xm4Q9ZQ6mtNokSY/dist=es2019,mode=imports/optimized/@supabase/postgrest-js.js\";\nimport {RealtimeClient} from \"/-/@supabase/realtime-js@v2.10.7-CUXLVRAIYS4d5VOnoMf1/dist=es2019,mode=imports/optimized/@supabase/realtime-js.js\";\nexport * from \"/-/@supabase/realtime-js@v2.10.7-CUXLVRAIYS4d5VOnoMf1/dist=es2019,mode=imports/optimized/@supabase/realtime-js.js\";\nimport {StorageClient} from \"/-/@supabase/storage-js@v2.7.1-PqiU3azcKjwu0FbblYoI/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.65.1-1orRltBcBqRfRpT9qSfM/dist=es2019,mode=imports/optimized/@supabase/auth-js.js\";\nexport * from \"/-/@supabase/auth-js@v2.65.1-1orRltBcBqRfRpT9qSfM/dist=es2019,mode=imports/optimized/@supabase/auth-js.js\";\nconst version = \"2.46.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}`};\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 stripTrailingSlash(url) {\n  return url.replace(/\\/$/, \"\");\n}\nfunction applySettingDefaults(options, defaults) {\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    global: Object.assign(Object.assign({}, DEFAULT_GLOBAL_OPTIONS2), globalOptions),\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 = stripTrailingSlash(supabaseUrl);\n    this.realtimeUrl = `${_supabaseUrl}/realtime/v1`.replace(/^http/i, \"ws\");\n    this.authUrl = `${_supabaseUrl}/auth/v1`;\n    this.storageUrl = `${_supabaseUrl}/storage/v1`;\n    this.functionsUrl = `${_supabaseUrl}/functions/v1`;\n    const defaultStorageKey = `sb-${new URL(this.authUrl).hostname.split(\".\")[0]}-auth-token`;\n    const DEFAULTS = {\n      db: DEFAULT_DB_OPTIONS,\n      realtime: DEFAULT_REALTIME_OPTIONS,\n      auth: 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}, settings.realtime));\n    this.rest = new PostgrestClient(`${_supabaseUrl}/rest/v1`, {\n      headers: this.headers,\n      schema: settings.db.schema,\n      fetch: this.fetch\n    });\n    if (!settings.accessToken) {\n      this._listenForAuthEvents();\n    }\n  }\n  get functions() {\n    return new FunctionsClient(this.functionsUrl, {\n      headers: this.headers,\n      customFetch: this.fetch\n    });\n  }\n  get storage() {\n    return new StorageClient(this.storageUrl, this.headers, this.fetch);\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 : null;\n    });\n  }\n  _initSupabaseAuthClient({autoRefreshToken, persistSession, detectSessionInUrl, storage, storageKey, flowType, lock, debug}, headers, fetch2) {\n    var _a;\n    const authHeaders = {\n      Authorization: `Bearer ${this.supabaseKey}`,\n      apikey: `${this.supabaseKey}`\n    };\n    return new SupabaseAuthClient({\n      url: this.authUrl,\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: (_a = \"Authorization\" in this.headers) !== null && _a !== void 0 ? _a : false\n    });\n  }\n  _initRealtimeClient(options) {\n    return new RealtimeClient(this.realtimeUrl, 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.realtime.setAuth(token !== null && token !== void 0 ? token : null);\n      this.changedAccessToken = token;\n    } else if (event === \"SIGNED_OUT\") {\n      this.realtime.setAuth(this.supabaseKey);\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};\nexport {SupabaseClient, createClient};\nexport default null;\n", "/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\nvar parse_1 = parse;\nvar serialize_1 = serialize;\nvar __toString = Object.prototype.toString;\nvar __hasOwnProperty = Object.prototype.hasOwnProperty;\nvar cookieNameRegExp = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\nvar cookieValueRegExp = /^(\"?)[\\u0021\\u0023-\\u002B\\u002D-\\u003A\\u003C-\\u005B\\u005D-\\u007E]*\\1$/;\nvar domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;\nvar pathValueRegExp = /^[\\u0020-\\u003A\\u003D-\\u007E]*$/;\nfunction parse(str, opt) {\n  if (typeof str !== \"string\") {\n    throw new TypeError(\"argument str must be a string\");\n  }\n  var obj = {};\n  var len = str.length;\n  if (len < 2)\n    return obj;\n  var dec = opt && opt.decode || decode;\n  var index = 0;\n  var eqIdx = 0;\n  var endIdx = 0;\n  do {\n    eqIdx = str.indexOf(\"=\", index);\n    if (eqIdx === -1)\n      break;\n    endIdx = str.indexOf(\";\", index);\n    if (endIdx === -1) {\n      endIdx = len;\n    } else if (eqIdx > endIdx) {\n      index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n      continue;\n    }\n    var keyStartIdx = startIndex(str, index, eqIdx);\n    var keyEndIdx = endIndex(str, eqIdx, keyStartIdx);\n    var key = str.slice(keyStartIdx, keyEndIdx);\n    if (!__hasOwnProperty.call(obj, key)) {\n      var valStartIdx = startIndex(str, eqIdx + 1, endIdx);\n      var valEndIdx = endIndex(str, endIdx, valStartIdx);\n      if (str.charCodeAt(valStartIdx) === 34 && str.charCodeAt(valEndIdx - 1) === 34) {\n        valStartIdx++;\n        valEndIdx--;\n      }\n      var val = str.slice(valStartIdx, valEndIdx);\n      obj[key] = tryDecode(val, dec);\n    }\n    index = endIdx + 1;\n  } while (index < len);\n  return obj;\n}\nfunction startIndex(str, index, max) {\n  do {\n    var code = str.charCodeAt(index);\n    if (code !== 32 && code !== 9)\n      return index;\n  } while (++index < max);\n  return max;\n}\nfunction endIndex(str, index, min) {\n  while (index > min) {\n    var code = str.charCodeAt(--index);\n    if (code !== 32 && code !== 9)\n      return index + 1;\n  }\n  return min;\n}\nfunction serialize(name, val, opt) {\n  var enc = opt && opt.encode || encodeURIComponent;\n  if (typeof enc !== \"function\") {\n    throw new TypeError(\"option encode is invalid\");\n  }\n  if (!cookieNameRegExp.test(name)) {\n    throw new TypeError(\"argument name is invalid\");\n  }\n  var value = enc(val);\n  if (!cookieValueRegExp.test(value)) {\n    throw new TypeError(\"argument val is invalid\");\n  }\n  var str = name + \"=\" + value;\n  if (!opt)\n    return str;\n  if (opt.maxAge != null) {\n    var maxAge = Math.floor(opt.maxAge);\n    if (!isFinite(maxAge)) {\n      throw new TypeError(\"option maxAge is invalid\");\n    }\n    str += \"; Max-Age=\" + maxAge;\n  }\n  if (opt.domain) {\n    if (!domainValueRegExp.test(opt.domain)) {\n      throw new TypeError(\"option domain is invalid\");\n    }\n    str += \"; Domain=\" + opt.domain;\n  }\n  if (opt.path) {\n    if (!pathValueRegExp.test(opt.path)) {\n      throw new TypeError(\"option path is invalid\");\n    }\n    str += \"; Path=\" + opt.path;\n  }\n  if (opt.expires) {\n    var expires = opt.expires;\n    if (!isDate(expires) || isNaN(expires.valueOf())) {\n      throw new TypeError(\"option expires is invalid\");\n    }\n    str += \"; Expires=\" + expires.toUTCString();\n  }\n  if (opt.httpOnly) {\n    str += \"; HttpOnly\";\n  }\n  if (opt.secure) {\n    str += \"; Secure\";\n  }\n  if (opt.partitioned) {\n    str += \"; Partitioned\";\n  }\n  if (opt.priority) {\n    var priority = typeof opt.priority === \"string\" ? opt.priority.toLowerCase() : opt.priority;\n    switch (priority) {\n      case \"low\":\n        str += \"; Priority=Low\";\n        break;\n      case \"medium\":\n        str += \"; Priority=Medium\";\n        break;\n      case \"high\":\n        str += \"; Priority=High\";\n        break;\n      default:\n        throw new TypeError(\"option priority is invalid\");\n    }\n  }\n  if (opt.sameSite) {\n    var sameSite = typeof opt.sameSite === \"string\" ? opt.sameSite.toLowerCase() : opt.sameSite;\n    switch (sameSite) {\n      case true:\n        str += \"; SameSite=Strict\";\n        break;\n      case \"lax\":\n        str += \"; SameSite=Lax\";\n        break;\n      case \"strict\":\n        str += \"; SameSite=Strict\";\n        break;\n      case \"none\":\n        str += \"; SameSite=None\";\n        break;\n      default:\n        throw new TypeError(\"option sameSite is invalid\");\n    }\n  }\n  return str;\n}\nfunction decode(str) {\n  return str.indexOf(\"%\") !== -1 ? decodeURIComponent(str) : str;\n}\nfunction isDate(val) {\n  return __toString.call(val) === \"[object Date]\";\n}\nfunction tryDecode(str, decode2) {\n  try {\n    return decode2(str);\n  } catch (e) {\n    return str;\n  }\n}\nvar cookie = {\n  parse: parse_1,\n  serialize: serialize_1\n};\nexport default cookie;\nexport {cookie as __moduleExports, parse_1 as parse, serialize_1 as serialize};\n", "import {createClient} from \"/-/@supabase/supabase-js@v2.46.1-zj5O4o99Vcu3vKdvPX02/dist=es2019,mode=imports/optimized/@supabase/supabase-js.js\";\nimport __commonjs_module0 from \"/-/cookie@v0.7.2-Qg8ELhGGh6R0KFfmM352/dist=es2019,mode=imports/optimized/cookie.js\";\nconst {parse: parse$1} = __commonjs_module0;\nconst {serialize: serialize$1} = __commonjs_module0;\n;\nconst VERSION = \"0.5.2\";\nconst parse = parse$1;\nconst serialize = serialize$1;\nfunction parseCookieHeader(header) {\n  const parsed = parse$1(header);\n  return Object.keys(parsed != null ? parsed : {}).map((name) => ({\n    name,\n    value: parsed[name]\n  }));\n}\nfunction serializeCookieHeader(name, value, options) {\n  return serialize$1(name, value, options);\n}\nfunction isBrowser() {\n  return typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\n}\nconst DEFAULT_COOKIE_OPTIONS = {\n  path: \"/\",\n  sameSite: \"lax\",\n  httpOnly: false,\n  maxAge: 400 * 24 * 60 * 60\n};\nconst MAX_CHUNK_SIZE = 3180;\nconst CHUNK_LIKE_REGEX = /^(.*)[.](0|[1-9][0-9]*)$/;\nfunction isChunkLike(cookieName, key) {\n  if (cookieName === key) {\n    return true;\n  }\n  const chunkLike = cookieName.match(CHUNK_LIKE_REGEX);\n  if (chunkLike && chunkLike[1] === key) {\n    return true;\n  }\n  return false;\n}\nfunction createChunks(key, value, chunkSize) {\n  const resolvedChunkSize = chunkSize != null ? chunkSize : MAX_CHUNK_SIZE;\n  let encodedValue = encodeURIComponent(value);\n  if (encodedValue.length <= resolvedChunkSize) {\n    return [{name: key, value}];\n  }\n  const chunks = [];\n  while (encodedValue.length > 0) {\n    let encodedChunkHead = encodedValue.slice(0, resolvedChunkSize);\n    const lastEscapePos = encodedChunkHead.lastIndexOf(\"%\");\n    if (lastEscapePos > resolvedChunkSize - 3) {\n      encodedChunkHead = encodedChunkHead.slice(0, lastEscapePos);\n    }\n    let valueHead = \"\";\n    while (encodedChunkHead.length > 0) {\n      try {\n        valueHead = decodeURIComponent(encodedChunkHead);\n        break;\n      } catch (error) {\n        if (error instanceof URIError && encodedChunkHead.at(-3) === \"%\" && encodedChunkHead.length > 3) {\n          encodedChunkHead = encodedChunkHead.slice(0, encodedChunkHead.length - 3);\n        } else {\n          throw error;\n        }\n      }\n    }\n    chunks.push(valueHead);\n    encodedValue = encodedValue.slice(encodedChunkHead.length);\n  }\n  return chunks.map((value2, i) => ({name: `${key}.${i}`, value: value2}));\n}\nasync function combineChunks(key, retrieveChunk) {\n  const value = await retrieveChunk(key);\n  if (value) {\n    return value;\n  }\n  let values = [];\n  for (let i = 0; ; i++) {\n    const chunkName = `${key}.${i}`;\n    const chunk = await retrieveChunk(chunkName);\n    if (!chunk) {\n      break;\n    }\n    values.push(chunk);\n  }\n  if (values.length > 0) {\n    return values.join(\"\");\n  }\n  return null;\n}\nasync function deleteChunks(key, retrieveChunk, removeChunk) {\n  const value = await retrieveChunk(key);\n  if (value) {\n    await removeChunk(key);\n  }\n  for (let i = 0; ; i++) {\n    const chunkName = `${key}.${i}`;\n    const chunk = await retrieveChunk(chunkName);\n    if (!chunk) {\n      break;\n    }\n    await removeChunk(chunkName);\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 stringToBase64URL(str) {\n  const base64 = [];\n  let queue = 0;\n  let queuedBits = 0;\n  const emitter = (byte) => {\n    queue = queue << 8 | byte;\n    queuedBits += 8;\n    while (queuedBits >= 6) {\n      const pos = queue >> queuedBits - 6 & 63;\n      base64.push(TO_BASE64URL[pos]);\n      queuedBits -= 6;\n    }\n  };\n  stringToUTF8(str, emitter);\n  if (queuedBits > 0) {\n    queue = queue << 6 - queuedBits;\n    queuedBits = 6;\n    while (queuedBits >= 6) {\n      const pos = queue >> queuedBits - 6 & 63;\n      base64.push(TO_BASE64URL[pos]);\n      queuedBits -= 6;\n    }\n  }\n  return base64.join(\"\");\n}\nfunction stringFromBase64URL(str) {\n  const conv = [];\n  const emit = (codepoint) => {\n    conv.push(String.fromCodePoint(codepoint));\n  };\n  const state = {\n    utf8seq: 0,\n    codepoint: 0\n  };\n  let queue = 0;\n  let queuedBits = 0;\n  for (let i = 0; i < str.length; i += 1) {\n    const codepoint = str.charCodeAt(i);\n    const bits = FROM_BASE64URL[codepoint];\n    if (bits > -1) {\n      queue = queue << 6 | bits;\n      queuedBits += 6;\n      while (queuedBits >= 8) {\n        stringFromUTF8(queue >> queuedBits - 8 & 255, state, emit);\n        queuedBits -= 8;\n      }\n    } else if (bits === -2) {\n      continue;\n    } else {\n      throw new Error(`Invalid Base64-URL character \"${str.at(i)}\" at position ${i}`);\n    }\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}\nconst BASE64_PREFIX = \"base64-\";\nfunction createStorageFromOptions(options, isServerClient) {\n  var _a;\n  const cookies = (_a = options.cookies) != null ? _a : null;\n  const cookieEncoding = options.cookieEncoding;\n  const setItems = {};\n  const removedItems = {};\n  let getAll;\n  let setAll;\n  if (cookies) {\n    if (\"get\" in cookies) {\n      const getWithHints = async (keyHints) => {\n        const chunkNames = keyHints.flatMap((keyHint) => [\n          keyHint,\n          ...Array.from({length: 5}).map((_, i) => `${keyHint}.${i}`)\n        ]);\n        const chunks = [];\n        for (let i = 0; i < chunkNames.length; i += 1) {\n          const value = await cookies.get(chunkNames[i]);\n          if (!value && typeof value !== \"string\") {\n            continue;\n          }\n          chunks.push({name: chunkNames[i], value});\n        }\n        return chunks;\n      };\n      getAll = async (keyHints) => await getWithHints(keyHints);\n      if (\"set\" in cookies && \"remove\" in cookies) {\n        setAll = async (setCookies) => {\n          for (let i = 0; i < setCookies.length; i += 1) {\n            const {name, value, options: options2} = setCookies[i];\n            if (value) {\n              await cookies.set(name, value, options2);\n            } else {\n              await cookies.remove(name, options2);\n            }\n          }\n        };\n      } else if (isServerClient) {\n        setAll = async () => {\n          console.warn(\"@supabase/ssr: createServerClient was configured without set and remove cookie methods, but the client needs to set cookies. This can lead to issues such as random logouts, early session termination or increased token refresh requests. If in NextJS, check your middleware.ts file, route handlers and server actions for correctness. Consider switching to the getAll and setAll cookie methods instead of get, set and remove which are deprecated and can be difficult to use correctly.\");\n        };\n      } else {\n        throw new Error(\"@supabase/ssr: createBrowserClient requires configuring a getAll and setAll cookie method (deprecated: alternatively both get, set and remove can be used)\");\n      }\n    } else if (\"getAll\" in cookies) {\n      getAll = async () => await cookies.getAll();\n      if (\"setAll\" in cookies) {\n        setAll = cookies.setAll;\n      } else if (isServerClient) {\n        setAll = async () => {\n          console.warn(\"@supabase/ssr: createServerClient was configured without the setAll cookie method, but the client needs to set cookies. This can lead to issues such as random logouts, early session termination or increased token refresh requests. If in NextJS, check your middleware.ts file, route handlers and server actions for correctness.\");\n        };\n      } else {\n        throw new Error(\"@supabase/ssr: createBrowserClient requires configuring both getAll and setAll cookie methods (deprecated: alternatively both get, set and remove can be used)\");\n      }\n    } else {\n      throw new Error(`@supabase/ssr: ${isServerClient ? \"createServerClient\" : \"createBrowserClient\"} requires configuring getAll and setAll cookie methods (deprecated: alternatively use get, set and remove).${isBrowser() ? \" As this is called in a browser runtime, consider removing the cookies option object to use the document.cookie API automatically.\" : \"\"}`);\n    }\n  } else if (!isServerClient && isBrowser()) {\n    const noHintGetAll = () => {\n      const parsed = parse$1(document.cookie);\n      return Object.keys(parsed).map((name) => ({name, value: parsed[name]}));\n    };\n    getAll = () => noHintGetAll();\n    setAll = (setCookies) => {\n      setCookies.forEach(({name, value, options: options2}) => {\n        document.cookie = serialize$1(name, value, options2);\n      });\n    };\n  } else if (isServerClient) {\n    throw new Error(\"@supabase/ssr: createServerClient must be initialized with cookie options that specify getAll and setAll functions (deprecated, not recommended: alternatively use get, set and remove)\");\n  } else {\n    getAll = () => {\n      return [];\n    };\n    setAll = () => {\n      throw new Error(\"@supabase/ssr: createBrowserClient in non-browser runtimes (including Next.js pre-rendering mode) was not initialized cookie options that specify getAll and setAll functions (deprecated: alternatively use get, set and remove), but they were needed\");\n    };\n  }\n  if (!isServerClient) {\n    return {\n      getAll,\n      setAll,\n      setItems,\n      removedItems,\n      storage: {\n        isServer: false,\n        getItem: async (key) => {\n          const allCookies = await getAll([key]);\n          const chunkedCookie = await combineChunks(key, async (chunkName) => {\n            const cookie2 = (allCookies == null ? void 0 : allCookies.find(({name}) => name === chunkName)) || null;\n            if (!cookie2) {\n              return null;\n            }\n            return cookie2.value;\n          });\n          if (!chunkedCookie) {\n            return null;\n          }\n          let decoded = chunkedCookie;\n          if (chunkedCookie.startsWith(BASE64_PREFIX)) {\n            decoded = stringFromBase64URL(chunkedCookie.substring(BASE64_PREFIX.length));\n          }\n          return decoded;\n        },\n        setItem: async (key, value) => {\n          const allCookies = await getAll([key]);\n          const cookieNames = (allCookies == null ? void 0 : allCookies.map(({name}) => name)) || [];\n          const removeCookies = new Set(cookieNames.filter((name) => isChunkLike(name, key)));\n          let encoded = value;\n          if (cookieEncoding === \"base64url\") {\n            encoded = BASE64_PREFIX + stringToBase64URL(value);\n          }\n          const setCookies = createChunks(key, encoded);\n          setCookies.forEach(({name}) => {\n            removeCookies.delete(name);\n          });\n          const removeCookieOptions = {\n            ...DEFAULT_COOKIE_OPTIONS,\n            ...options == null ? void 0 : options.cookieOptions,\n            maxAge: 0\n          };\n          const setCookieOptions = {\n            ...DEFAULT_COOKIE_OPTIONS,\n            ...options == null ? void 0 : options.cookieOptions,\n            maxAge: DEFAULT_COOKIE_OPTIONS.maxAge\n          };\n          delete removeCookieOptions.name;\n          delete setCookieOptions.name;\n          const allToSet = [\n            ...[...removeCookies].map((name) => ({\n              name,\n              value: \"\",\n              options: removeCookieOptions\n            })),\n            ...setCookies.map(({name, value: value2}) => ({\n              name,\n              value: value2,\n              options: setCookieOptions\n            }))\n          ];\n          if (allToSet.length > 0) {\n            await setAll(allToSet);\n          }\n        },\n        removeItem: async (key) => {\n          const allCookies = await getAll([key]);\n          const cookieNames = (allCookies == null ? void 0 : allCookies.map(({name}) => name)) || [];\n          const removeCookies = cookieNames.filter((name) => isChunkLike(name, key));\n          const removeCookieOptions = {\n            ...DEFAULT_COOKIE_OPTIONS,\n            ...options == null ? void 0 : options.cookieOptions,\n            maxAge: 0\n          };\n          delete removeCookieOptions.name;\n          if (removeCookies.length > 0) {\n            await setAll(removeCookies.map((name) => ({\n              name,\n              value: \"\",\n              options: removeCookieOptions\n            })));\n          }\n        }\n      }\n    };\n  }\n  return {\n    getAll,\n    setAll,\n    setItems,\n    removedItems,\n    storage: {\n      isServer: true,\n      getItem: async (key) => {\n        if (typeof setItems[key] === \"string\") {\n          return setItems[key];\n        }\n        if (removedItems[key]) {\n          return null;\n        }\n        const allCookies = await getAll([key]);\n        const chunkedCookie = await combineChunks(key, async (chunkName) => {\n          const cookie2 = (allCookies == null ? void 0 : allCookies.find(({name}) => name === chunkName)) || null;\n          if (!cookie2) {\n            return null;\n          }\n          return cookie2.value;\n        });\n        if (!chunkedCookie) {\n          return null;\n        }\n        let decoded = chunkedCookie;\n        if (typeof chunkedCookie === \"string\" && chunkedCookie.startsWith(BASE64_PREFIX)) {\n          decoded = stringFromBase64URL(chunkedCookie.substring(BASE64_PREFIX.length));\n        }\n        return decoded;\n      },\n      setItem: async (key, value) => {\n        var _a2;\n        if (key.endsWith(\"-code-verifier\")) {\n          await applyServerStorage({\n            getAll,\n            setAll,\n            setItems: {[key]: value},\n            removedItems: {}\n          }, {\n            cookieOptions: (_a2 = options == null ? void 0 : options.cookieOptions) != null ? _a2 : null,\n            cookieEncoding\n          });\n        }\n        setItems[key] = value;\n        delete removedItems[key];\n      },\n      removeItem: async (key) => {\n        delete setItems[key];\n        removedItems[key] = true;\n      }\n    }\n  };\n}\nasync function applyServerStorage({getAll, setAll, setItems, removedItems}, options) {\n  var _a;\n  const cookieEncoding = options.cookieEncoding;\n  const cookieOptions = (_a = options.cookieOptions) != null ? _a : null;\n  const allCookies = await getAll([\n    ...setItems ? Object.keys(setItems) : [],\n    ...removedItems ? Object.keys(removedItems) : []\n  ]);\n  const cookieNames = (allCookies == null ? void 0 : allCookies.map(({name}) => name)) || [];\n  const removeCookies = Object.keys(removedItems).flatMap((itemName) => {\n    return cookieNames.filter((name) => isChunkLike(name, itemName));\n  });\n  const setCookies = Object.keys(setItems).flatMap((itemName) => {\n    const removeExistingCookiesForItem = new Set(cookieNames.filter((name) => isChunkLike(name, itemName)));\n    let encoded = setItems[itemName];\n    if (cookieEncoding === \"base64url\") {\n      encoded = BASE64_PREFIX + stringToBase64URL(encoded);\n    }\n    const chunks = createChunks(itemName, encoded);\n    chunks.forEach((chunk) => {\n      removeExistingCookiesForItem.delete(chunk.name);\n    });\n    removeCookies.push(...removeExistingCookiesForItem);\n    return chunks;\n  });\n  const removeCookieOptions = {\n    ...DEFAULT_COOKIE_OPTIONS,\n    ...cookieOptions,\n    maxAge: 0\n  };\n  const setCookieOptions = {\n    ...DEFAULT_COOKIE_OPTIONS,\n    ...cookieOptions,\n    maxAge: DEFAULT_COOKIE_OPTIONS.maxAge\n  };\n  delete removeCookieOptions.name;\n  delete setCookieOptions.name;\n  await setAll([\n    ...removeCookies.map((name) => ({\n      name,\n      value: \"\",\n      options: removeCookieOptions\n    })),\n    ...setCookies.map(({name, value}) => ({\n      name,\n      value,\n      options: setCookieOptions\n    }))\n  ]);\n}\nlet cachedBrowserClient;\nfunction createBrowserClient(supabaseUrl, supabaseKey, options) {\n  var _a, _b, _c;\n  const shouldUseSingleton = (options == null ? void 0 : options.isSingleton) === true || (!options || !(\"isSingleton\" in options)) && isBrowser();\n  if (shouldUseSingleton && cachedBrowserClient) {\n    return cachedBrowserClient;\n  }\n  if (!supabaseUrl || !supabaseKey) {\n    throw new Error(`@supabase/ssr: Your project's URL and API key are required to create a Supabase client!\n\nCheck your Supabase project's API settings to find these values\n\nhttps://supabase.com/dashboard/project/_/settings/api`);\n  }\n  const {storage} = createStorageFromOptions({\n    ...options,\n    cookieEncoding: (_a = options == null ? void 0 : options.cookieEncoding) != null ? _a : \"base64url\"\n  }, false);\n  const client = createClient(supabaseUrl, supabaseKey, {\n    ...options,\n    global: {\n      ...options == null ? void 0 : options.global,\n      headers: {\n        ...(_b = options == null ? void 0 : options.global) == null ? void 0 : _b.headers,\n        \"X-Client-Info\": `supabase-ssr/${VERSION}`\n      }\n    },\n    auth: {\n      ...options == null ? void 0 : options.auth,\n      ...((_c = options == null ? void 0 : options.cookieOptions) == null ? void 0 : _c.name) ? {storageKey: options.cookieOptions.name} : null,\n      flowType: \"pkce\",\n      autoRefreshToken: isBrowser(),\n      detectSessionInUrl: isBrowser(),\n      persistSession: true,\n      storage\n    }\n  });\n  if (shouldUseSingleton) {\n    cachedBrowserClient = client;\n  }\n  return client;\n}\nfunction createServerClient(supabaseUrl, supabaseKey, options) {\n  var _a, _b, _c;\n  if (!supabaseUrl || !supabaseKey) {\n    throw new Error(`Your project's URL and Key are required to create a Supabase client!\n\nCheck your Supabase project's API settings to find these values\n\nhttps://supabase.com/dashboard/project/_/settings/api`);\n  }\n  const {storage, getAll, setAll, setItems, removedItems} = createStorageFromOptions({\n    ...options,\n    cookieEncoding: (_a = options == null ? void 0 : options.cookieEncoding) != null ? _a : \"base64url\"\n  }, true);\n  const client = createClient(supabaseUrl, supabaseKey, {\n    ...options,\n    global: {\n      ...options == null ? void 0 : options.global,\n      headers: {\n        ...(_b = options == null ? void 0 : options.global) == null ? void 0 : _b.headers,\n        \"X-Client-Info\": `supabase-ssr/${VERSION}`\n      }\n    },\n    auth: {\n      ...((_c = options == null ? void 0 : options.cookieOptions) == null ? void 0 : _c.name) ? {storageKey: options.cookieOptions.name} : null,\n      ...options == null ? void 0 : options.auth,\n      flowType: \"pkce\",\n      autoRefreshToken: false,\n      detectSessionInUrl: false,\n      persistSession: true,\n      storage\n    }\n  });\n  client.auth.onAuthStateChange(async (event) => {\n    var _a2, _b2;\n    const hasStorageChanges = Object.keys(setItems).length > 0 || Object.keys(removedItems).length > 0;\n    if (hasStorageChanges && (event === \"SIGNED_IN\" || event === \"TOKEN_REFRESHED\" || event === \"USER_UPDATED\" || event === \"PASSWORD_RECOVERY\" || event === \"SIGNED_OUT\" || event === \"MFA_CHALLENGE_VERIFIED\")) {\n      await applyServerStorage({getAll, setAll, setItems, removedItems}, {\n        cookieOptions: (_a2 = options == null ? void 0 : options.cookieOptions) != null ? _a2 : null,\n        cookieEncoding: (_b2 = options == null ? void 0 : options.cookieEncoding) != null ? _b2 : \"base64url\"\n      });\n    }\n  });\n  return client;\n}\nexport {DEFAULT_COOKIE_OPTIONS, MAX_CHUNK_SIZE, codepointToUTF8, combineChunks, createBrowserClient, createChunks, createServerClient, deleteChunks, isBrowser, isChunkLike, parse, parseCookieHeader, serialize, serializeCookieHeader, stringFromBase64URL, stringFromUTF8, stringToBase64URL, stringToUTF8};\nexport default null;\n", "import{jsx as _jsx}from\"react/jsx-runtime\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";import{createBrowserClient}from\"https://cdn.skypack.dev/@supabase/ssr\";const SUPABASE_URL=\"https://sogdlnsybnkdplnpfsdq.supabase.co\";const SUPABASE_API_KEY=\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InNvZ2RsbnN5Ym5rZHBsbnBmc2RxIiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTg4NjQ2OTAsImV4cCI6MjAxNDQ0MDY5MH0.o_RkEGtkrbQ2YewaMq-O1tKn7BcUdiqtNQwCwv9R-hc\";export const supabase=createBrowserClient(SUPABASE_URL,SUPABASE_API_KEY,{auth:{flowType:\"pkce\"}});const useStore=createStore({password:\"\",confirmPassword:\"\"});export function withPasswordLabelOverride(Component){return props=>{const[store,setStore]=useStore();const handleChange=event=>{setStore({password:event.target.value});};return /*#__PURE__*/_jsx(Component,{...props,onChange:handleChange,value:store.password});};}export function confirmPasswordLabelOverride(Component){return props=>{const[store,setStore]=useStore();const handleChange=event=>{setStore({confirmPassword:event.target.value});};return /*#__PURE__*/_jsx(Component,{...props,onChange:handleChange,value:store.confirmPassword});};}const extractToken=()=>{let accessToken=null;// Check if the access token or code is in the query string (after ?)\nlet urlParams=new URLSearchParams(window.location.search);accessToken=urlParams.get(\"access_token\")||urlParams.get(\"code\");// If not found, check if it's in the fragment (after #)\nif(!accessToken){const fragment=window.location.hash.substring(1)// remove the leading #\n;urlParams=new URLSearchParams(fragment);accessToken=urlParams.get(\"access_token\")||urlParams.get(\"code\");}console.log(\"Extracted token:\",accessToken)// Debugging\n;return accessToken;};export function setPasswordOverride(Component){return props=>{const[store]=useStore();// Function to extract query parameters from the URL\nconst extractQueryParams=()=>{const urlParams=new URLSearchParams(window.location.search);const fragment=window.location.hash.substring(1);const fragmentParams=new URLSearchParams(fragment);return{code:urlParams.get(\"code\"),accessToken:fragmentParams.get(\"access_token\")};};// Function to exchange the code for an access_token\nconst exchangeCodeForToken=async auth_code=>{try{const code_verifier=localStorage.getItem(\"pkce_code_verifier\");if(!code_verifier){throw new Error(\"Code verifier not found.\");}const response=await fetch(`${SUPABASE_URL}/auth/v1/token?grant_type=pkce`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",apikey:SUPABASE_API_KEY},body:{auth_code:auth_code,code_verifier:code_verifier}});let data;console.log(response);try{console.log(\"verifier\",code_verifier);data=await supabase.auth.exchangeCodeForSession(auth_code,code_verifier);console.log(data);console.log(\"token\");}catch(error){console.log(error);}// const data = await response.json()\nif(data===null){throw new Error(data.error_description||\"Error exchanging code for access token\");}console.log(data);return data;}catch(error){alert(`Error: ${error.message}`);return null;}};const handleSetPassword=async event=>{event.preventDefault();// Extract the code or access_token from the URL\nconst{code,accessToken}=extractQueryParams();console.log(code);console.log(accessToken);let token=accessToken;if(!accessToken&&code){// If access_token is not available but code is, exchange the code for the access_token\ntoken=await exchangeCodeForToken(code);}if(!token){alert(\"Access token or code not found in the URL.\");return;}const{password,confirmPassword}=store;if(!password||!confirmPassword){alert(\"Please fill in both fields.\");return;}if(password!==confirmPassword){alert(\"Passwords do not match!\");return;}try{const response=await fetch(`${SUPABASE_URL}/auth/v1/user`,{method:\"PUT\",headers:{apikey:SUPABASE_API_KEY,Authorization:`Bearer ${token}`,\"Content-Type\":\"application/json\"},body:JSON.stringify({password:password})});// const status = await supabase.auth.updateUser({\n//     password: password,\n// })\nif(!response.ok){const error=await response.json();alert(`Error: ${error.message}`);return;}alert(\"Password has been set successfully!\");}catch(error){alert(`Error: ${error.message}`);}};return /*#__PURE__*/_jsx(Component,{...props,onClick:handleSetPassword});};}export function withPasswordConfirmOverride(Component){return props=>{const[store,setStore]=useStore();// Function to extract the confirmation_url from the query string\nconst extractConfirmationUrl=()=>{const urlParams=new URLSearchParams(window.location.search);return urlParams.get(\"confirmation_url\");};const extractTokenHash=()=>{const urlParams=new URLSearchParams(window.location.search);return urlParams.get(\"token_hash\");};// Handle confirmation by redirecting the user to the confirmation URL\nconst handleConfirm=async()=>{// event.preventDefault()\nconst confirmationUrl=extractConfirmationUrl();const tokenHash=extractTokenHash();localStorage.setItem(\"pkce_code_verifier\",tokenHash);console.log(\"tokenHash\",tokenHash);if(!confirmationUrl){alert(\"Confirmation URL not found.\");return;}// Redirect to the confirmation URL to consume the token\nwindow.location.href=confirmationUrl+\"&\"+extractTokenHash;};return /*#__PURE__*/_jsx(Component,{...props,onClick:handleConfirm});};}\nexport const __FramerMetadata__ = {\"exports\":{\"setPasswordOverride\":{\"type\":\"reactHoc\",\"name\":\"setPasswordOverride\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPasswordConfirmOverride\":{\"type\":\"reactHoc\",\"name\":\"withPasswordConfirmOverride\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPasswordLabelOverride\":{\"type\":\"reactHoc\",\"name\":\"withPasswordLabelOverride\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"confirmPasswordLabelOverride\":{\"type\":\"reactHoc\",\"name\":\"confirmPasswordLabelOverride\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"supabase\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SetPassword.map"],
  "mappings": "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",
  "names": ["createStore", "state1", "dataStore", "Data", "setDataStore", "newState", "storeState", "storeSetters", "setStoreState", "setter", "useStore", "state", "setState", "ye", "ue", "useObserveData", "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", "PostgrestError", "context", "PostgrestBuilder_1", "__importDefault", "mod", "node_fetch_1", "node_fetch_default", "PostgrestError_1$1", "PostgrestBuilder2", "builder", "name", "value", "onfulfilled", "onrejected", "_fetch", "res", "res2", "_a", "_b", "_c", "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", "prefersHeaders", "acc", "uniqueColumns", "onConflict", "ignoreDuplicates", "version", "constants", "PostgrestClient_1", "PostgrestQueryBuilder_1$1", "PostgrestClient2", "relation", "args", "get", "_", "cjs", "PostgrestClient_1$1", "index", "PostgrestClient", "PostgrestQueryBuilder", "PostgrestFilterBuilder", "PostgrestTransformBuilder", "PostgrestBuilder", "version", "DEFAULT_HEADERS", "VSN", "DEFAULT_TIMEOUT", "WS_CLOSE_NORMAL", "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", "_a", "skipTypes", "acc", "rec_key", "convertColumn", "columnName", "column", "x", "colType", "value", "convertCell", "noop", "type", "dataType", "toArray", "toBoolean", "toNumber", "toJson", "toTimestampString", "parsedValue", "error", "lastIdx", "closeBrace", "arr", "valTrim", "val", "httpEndpointURL", "socketUrl", "url", "Push", "channel", "payload", "timeout", "status", "response", "h", "REALTIME_PRESENCE_LISTEN_EVENTS", "REALTIME_PRESENCE_LISTEN_EVENTS2", "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", "topic", "params", "socket", "CHANNEL_STATES", "Push", "CHANNEL_EVENTS", "Timer", "pushEvent", "reason", "payload", "ref", "RealtimePresence", "httpEndpointURL", "callback", "timeout", "_a", "_b", "broadcast", "presence", "isPrivate", "e", "accessTokenPayload", "config", "r", "serverPostgresFilters", "_a2", "clientPostgresBindings", "bindingsLen", "newPostgresBindings", "i", "clientPostgresBinding", "event", "schema", "table", "filter", "serverPostgresFilter", "error", "opts", "type", "args", "endpoint_payload", "options", "response", "resolve", "_b2", "_c", "push", "onClose", "leavePush", "url", "controller", "id", "_event", "_ref", "typeLower", "close", "leave", "join", "handledPayload", "bind", "_d", "_e", "_f", "bindId", "bindEvent", "postgresChanges", "commit_timestamp", "type2", "errors", "binding", "obj1", "obj2", "k", "records", "convertChangeData", "noop$1", "NATIVE_WEBSOCKET_AVAILABLE", "WORKER_SCRIPT", "RealtimeClient", "endPoint", "DEFAULT_HEADERS", "DEFAULT_TIMEOUT", "Serializer", "customFetch", "_fetch", "fetch2", "TRANSPORTS", "accessToken", "tries", "window", "WSWebSocketDummy", "WS", "code", "channel", "status", "values_1", "kind", "msg", "data", "SOCKET_STATES", "CONNECTION_STATE", "chan", "result", "token", "newRef", "dupChannel", "c", "VSN", "rawMessage", "objectUrl", "prefix", "query", "WS_CLOSE_NORMAL", "result_url", "blob", "address", "_protocols", "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", "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", "__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", "id", "StorageClient", "version", "GOTRUE_URL", "STORAGE_KEY", "DEFAULT_HEADERS", "EXPIRY_MARGIN", "API_VERSION_HEADER_NAME", "API_VERSIONS", "expiresAt", "expiresIn", "uuid", "c", "r", "isBrowser", "localStorageWriteTests", "supportsLocalStorage", "randomKey", "parseParametersFromURL", "href", "result", "url", "value", "key", "resolveFetch", "customFetch", "_fetch", "args", "fetch2", "looksLikeFetchResponse", "maybeResponse", "setItemAsync", "storage", "data", "getItemAsync", "removeItemAsync", "decodeBase64URL", "base64", "chr1", "chr2", "chr3", "enc1", "enc2", "enc3", "enc4", "i", "Deferred", "res", "rej", "decodeJWTPayload", "token", "base64UrlRegex", "parts", "base64Url", "sleep", "time", "accept", "retryable", "fn", "isRetryable", "reject", "attempt", "e", "dec2hex", "dec", "generatePKCEVerifier", "array", "charSet", "charSetLen", "verifier", "sha256", "randomString", "encodedData", "hash", "bytes", "base64urlencode", "str", "generatePKCEChallenge", "hashed", "getCodeChallengeAndMethod", "storageKey", "isPasswordRecovery", "codeVerifier", "storedCodeVerifier", "codeChallenge", "API_VERSION_REGEX", "parseResponseAPIVersion", "response", "apiVersion", "AuthError", "message", "status", "code", "isAuthError", "error", "AuthApiError", "isAuthApiError", "AuthUnknownError", "originalError", "CustomAuthError", "name", "AuthSessionMissingError", "isAuthSessionMissingError", "AuthInvalidTokenResponseError", "AuthInvalidCredentialsError", "AuthImplicitGrantRedirectError", "details", "AuthPKCEGrantCodeExchangeError", "AuthRetryableFetchError", "isAuthRetryableFetchError", "AuthWeakPasswordError", "reasons", "__rest", "p", "_getErrorMessage", "err", "NETWORK_ERROR_CODES", "handleError", "error", "_a", "looksLikeFetchResponse", "AuthRetryableFetchError", "data", "e", "AuthUnknownError", "errorCode", "responseAPIVersion", "parseResponseAPIVersion", "API_VERSIONS", "AuthWeakPasswordError", "AuthSessionMissingError", "a", "i", "AuthApiError", "_getRequestParams", "method", "options", "parameters", "body", "params", "_request", "fetcher", "url", "headers", "API_VERSION_HEADER_NAME", "qs", "queryString", "_handleRequest", "requestParams", "result", "_sessionResponse", "session", "hasSession", "expiresAt", "user", "_sessionResponsePassword", "response", "_userResponse", "_ssoResponse", "_generateLinkResponse", "action_link", "email_otp", "hashed_token", "redirect_to", "verification_type", "rest", "properties", "_noResolveJsonResponse", "__rest$1", "GoTrueAdminApi", "fetch2", "resolveFetch", "jwt", "scope", "isAuthError", "email", "attributes", "_b", "_c", "_d", "_e", "_f", "_g", "pagination", "users", "total", "links", "link", "page", "rel", "uid", "id", "shouldSoftDelete", "factors", "localStorageAdapter", "key", "supportsLocalStorage", "value", "memoryLocalStorageAdapter", "store", "polyfillGlobalThis", "internals", "LockAcquireTimeoutError", "message", "NavigatorLockAcquireTimeoutError", "navigatorLock", "name", "acquireTimeout", "fn", "abortController", "lock", "DEFAULT_OPTIONS", "GOTRUE_URL", "STORAGE_KEY", "DEFAULT_HEADERS", "AUTO_REFRESH_TICK_DURATION", "AUTO_REFRESH_TICK_THRESHOLD", "lockNoOp", "GoTrueClient", "isBrowser", "settings", "event", "args", "version", "isPKCEFlow", "redirectType", "credentials", "res", "password", "codeChallenge", "codeChallengeMethod", "getCodeChallengeAndMethod", "phone", "AuthInvalidCredentialsError", "AuthInvalidTokenResponseError", "authCode", "storageItem", "getItemAsync", "codeVerifier", "removeItemAsync", "provider", "token", "access_token", "nonce", "redirectTo", "captchaToken", "sessionError", "endpoint", "type", "result2", "last", "waitOn", "currentSession", "maybeSession", "hasExpired", "suppressWarning", "target", "prop", "receiver", "isAuthSessionMissingError", "sessionData", "userError", "decodeJWTPayload", "timeNow", "expiresAt2", "payload", "refreshedSession", "error2", "AuthImplicitGrantRedirectError", "AuthPKCEGrantCodeExchangeError", "parseParametersFromURL", "window", "data2", "provider_token", "provider_refresh_token", "refresh_token", "expires_in", "expires_at", "token_type", "expiresIn", "actuallyExpiresIn", "issuedAt", "currentStorageContent", "accessToken", "isAuthApiError", "callback", "uuid", "subscription", "_a2", "identity", "refreshToken", "debugName", "startedAt", "retryable", "attempt", "sleep", "nextBackOffInterval", "isAuthRetryableFetchError", "expiresWithMargin", "EXPIRY_MARGIN", "Deferred", "broadcast", "errors", "promises", "x", "setItemAsync", "ticker", "now", "expiresInTicks", "calledFromInitialize", "methodName", "urlParams", "flowParams", "query", "challengeData", "challengeError", "totp", "factor", "currentLevel", "nextLevel", "currentAuthenticationMethods", "AuthClient", "GoTrueClient", "Headers$1", "node_fetch_default", "version", "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", "args", "resolveHeadersConstructor", "fetchWithAuth", "supabaseKey", "getAccessToken", "fetch2", "HeadersConstructor", "input", "init", "_a", "accessToken", "headers", "__awaiter$1", "stripTrailingSlash", "url", "applySettingDefaults", "options", "defaults", "dbOptions", "authOptions", "realtimeOptions", "globalOptions", "DEFAULT_DB_OPTIONS2", "DEFAULT_AUTH_OPTIONS2", "DEFAULT_REALTIME_OPTIONS2", "DEFAULT_GLOBAL_OPTIONS2", "SupabaseAuthClient", "AuthClient", "__awaiter$2", "SupabaseClient", "supabaseUrl", "_b", "_c", "_supabaseUrl", "defaultStorageKey", "DEFAULTS", "settings", "_", "prop", "PostgrestClient", "FunctionsClient", "StorageClient", "relation", "schema", "fn", "name", "opts", "channel", "data", "autoRefreshToken", "persistSession", "detectSessionInUrl", "storage", "storageKey", "flowType", "lock", "debug", "authHeaders", "RealtimeClient", "event", "session", "source", "token", "createClient", "parse_1", "parse", "serialize_1", "serialize", "__toString", "__hasOwnProperty", "cookieNameRegExp", "cookieValueRegExp", "domainValueRegExp", "pathValueRegExp", "str", "opt", "obj", "len", "dec", "decode", "index", "eqIdx", "endIdx", "keyStartIdx", "startIndex", "keyEndIdx", "endIndex", "key", "valStartIdx", "valEndIdx", "val", "tryDecode", "max", "code", "min", "name", "enc", "value", "maxAge", "expires", "isDate", "priority", "sameSite", "decode2", "cookie", "cookie_default", "parse$1", "cookie_default", "serialize$1", "VERSION", "isBrowser", "window", "DEFAULT_COOKIE_OPTIONS", "MAX_CHUNK_SIZE", "CHUNK_LIKE_REGEX", "isChunkLike", "cookieName", "key", "chunkLike", "createChunks", "value", "chunkSize", "resolvedChunkSize", "encodedValue", "chunks", "encodedChunkHead", "lastEscapePos", "valueHead", "error", "value2", "i", "combineChunks", "retrieveChunk", "values", "chunkName", "chunk", "TO_BASE64URL", "IGNORE_BASE64URL", "FROM_BASE64URL", "charMap", "i", "stringToBase64URL", "str", "base64", "queue", "queuedBits", "stringToUTF8", "byte", "pos", "stringFromBase64URL", "conv", "emit", "codepoint", "state", "bits", "stringFromUTF8", "codepointToUTF8", "highSurrogate", "leadingBit", "BASE64_PREFIX", "createStorageFromOptions", "options", "isServerClient", "_a", "cookies", "cookieEncoding", "setItems", "removedItems", "getAll", "setAll", "getWithHints", "keyHints", "chunkNames", "keyHint", "_", "chunks", "value", "setCookies", "name", "options2", "isBrowser", "noHintGetAll", "parsed", "parse$1", "serialize$1", "key", "allCookies", "chunkedCookie", "combineChunks", "chunkName", "cookie2", "decoded", "_a2", "applyServerStorage", "cookieNames", "removeCookies", "isChunkLike", "encoded", "createChunks", "removeCookieOptions", "DEFAULT_COOKIE_OPTIONS", "setCookieOptions", "allToSet", "value2", "cookieOptions", "itemName", "removeExistingCookiesForItem", "chunk", "cachedBrowserClient", "createBrowserClient", "supabaseUrl", "supabaseKey", "_b", "_c", "shouldUseSingleton", "storage", "client", "createClient", "VERSION", "SUPABASE_URL", "SUPABASE_API_KEY", "supabase", "createBrowserClient", "useStore", "createStore", "withPasswordLabelOverride", "Component", "props", "store", "setStore", "p", "event", "confirmPasswordLabelOverride", "setPasswordOverride", "Component", "props", "store", "useStore", "extractQueryParams", "urlParams", "window", "fragment", "fragmentParams", "exchangeCodeForToken", "auth_code", "code_verifier", "response", "SUPABASE_URL", "SUPABASE_API_KEY", "data", "supabase", "error", "p", "event", "code", "accessToken", "token", "password", "confirmPassword", "withPasswordConfirmOverride", "setStore", "extractConfirmationUrl", "extractTokenHash", "confirmationUrl", "tokenHash"]
}
