{"version":3,"file":"shared-lib.B3aI_Pyw.mjs","names":["e","n","c","t","r","o","u","i","a","d","l","f","g","p","s","n","a","s","i","t","e","o","l","d","r","c","u","p","addToCart","e","removeFromCart","useState","generateCheckoutUrl","get","React.useContext","React.useMemo","React.Fragment","useRef","React.useId","useState","FrameshipUpgradeBanner","resolveFetch","e","t","n","r","o","s","i","c","a","u","l","e","n","f","s","r","s","e","t","r","a","i","h","n","l","o","t","e","o","d","a","e","t","i","o","n","e","t","r","c","i","t","s","i","n","o","r","a","c","h","l","e","d","u","f","p","t","_handleRequest","e","o","_getRequestParams","r","n","i","s","handleError","a","resolveFetch","_getErrorMessage","c","u","d","e","t","r","s","i","o","n","a","l","c","u","resolveFetch","h","d","f","g","p","e","s","n","i","a","r","o","u","l","t","p","h","c","m","notifyListeners","updateState","e","e","useState","cartState","authState","metadata"],"sources":["https:/ga.jspm.io/npm:zustand@3.7.1/esm/index.js","https:/ga.jspm.io/npm:zustand@3.7.1/esm/middleware.js","https:/framerusercontent.com/modules/gd3dcT3w5rYoRy7ZcKte/sH6FZizM8jJ11j2dQOhQ/Shared.js","https:/framerusercontent.com/modules/ibjYTPLnMMPhPLNCj4uG/cXa4uUn5VWWAcoaQctVU/Cart.js","https:/framerusercontent.com/modules/b6p2QQlcwhhLAA5Operm/erpgLSZm2BuxCMM1NCPK/LOQtD1uPa.js","https:/framerusercontent.com/modules/1kPVCHEEg0BrtObiM14s/NtVC61Vu6FOKUMmhXWuH/Frameship.js","https:/ga.jspm.io/npm:@supabase/functions-js@2.1.5/dist/module/index.js","https:/ga.jspm.io/npm:@supabase/node-fetch@2.6.14/browser.js","https:/ga.jspm.io/npm:@supabase/postgrest-js@1.8.4/dist/module/index.js","https:/ga.jspm.io/npm:es5-ext@0.10.62/_/d2db80e9.js","https:/ga.jspm.io/npm:es5-ext@0.10.62/global.js","https:/ga.jspm.io/npm:websocket@1.0.34/_/3c0ba9a6.js","https:/ga.jspm.io/npm:websocket@1.0.34/lib/browser.js","https:/ga.jspm.io/npm:@supabase/realtime-js@2.8.0/dist/module/index.js","https:/ga.jspm.io/npm:@supabase/storage-js@2.5.4/dist/module/index.js","https:/ga.jspm.io/npm:@supabase/gotrue-js@2.54.0/dist/module/index.js","https:/ga.jspm.io/npm:@supabase/supabase-js@2.37.0/dist/module/index.js","https:/framerusercontent.com/modules/x9sjpQeZzstJcS0iXNO6/QIZoilzVkSD0FinOjVmp/AuthStore.js","https:/framerusercontent.com/modules/3SSeT0KQKgt2WsX1epBz/PutHE9ZddliUfUsFXM3j/ShopifyStore.js","https:/framerusercontent.com/modules/9QLP3zTuWU5XgdnIslh0/LY7zXKvfQGGYJCwKkIxw/CheckoutButton.js","https:/framerusercontent.com/modules/aroeDQzOM7oacTkpF5AJ/ptMjwkR8psVFNmc4YTic/siteMetadata.js"],"sourcesContent":["import{useEffect as t,useLayoutEffect as e,useReducer as n,useRef as r,useDebugValue as c}from\"react\";function createStore(t){let e;const n=new Set;const setState=(t,r)=>{const c=\"function\"===typeof t?t(e):t;if(c!==e){const t=e;e=r?c:Object.assign({},e,c);n.forEach((n=>n(e,t)))}};const getState=()=>e;const subscribeWithSelector=(t,r=getState,c=Object.is)=>{console.warn(\"[DEPRECATED] Please use `subscribeWithSelector` middleware\");let o=r(e);function listenerToAdd(){const n=r(e);if(!c(o,n)){const e=o;t(o=n,e)}}n.add(listenerToAdd);return()=>n.delete(listenerToAdd)};const subscribe=(t,e,r)=>{if(e||r)return subscribeWithSelector(t,e,r);n.add(t);return()=>n.delete(t)};const destroy=()=>n.clear();const r={setState:setState,getState:getState,subscribe:subscribe,destroy:destroy};e=t(setState,getState,r);return r}const o=\"undefined\"===typeof window||!window.navigator||/ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);const s=o?t:e;function create(t){const e=\"function\"===typeof t?createStore(t):t;const useStore=(t=e.getState,o=Object.is)=>{const[,u]=n((t=>t+1),0);const i=e.getState();const a=r(i);const d=r(t);const l=r(o);const f=r(false);const S=r();void 0===S.current&&(S.current=t(i));let b;let g=false;if(a.current!==i||d.current!==t||l.current!==o||f.current){b=t(i);g=!o(S.current,b)}s((()=>{g&&(S.current=b);a.current=i;d.current=t;l.current=o;f.current=false}));const w=r(i);s((()=>{const listener=()=>{try{const t=e.getState();const n=d.current(t);if(!l.current(S.current,n)){a.current=t;S.current=n;u()}}catch(t){f.current=true;u()}};const t=e.subscribe(listener);e.getState()!==w.current&&listener();return t}),[]);const p=g?b:S.current;c(p);return p};Object.assign(useStore,e);useStore[Symbol.iterator]=function(){console.warn(\"[useStore, api] = create() is deprecated and will be removed in v4\");const t=[useStore,e];return{next(){const e=t.length<=0;return{value:t.shift(),done:e}}}};return useStore}export{create as default};\n\n//# sourceMappingURL=index.js.map","var e=Object.defineProperty;var t=Object.getOwnPropertySymbols;var o=Object.prototype.hasOwnProperty;var r=Object.prototype.propertyIsEnumerable;var __defNormalProp$1=(t,o,r)=>o in t?e(t,o,{enumerable:true,configurable:true,writable:true,value:r}):t[o]=r;var __spreadValues$1=(e,n)=>{for(var a in n||(n={}))o.call(n,a)&&__defNormalProp$1(e,a,n[a]);if(t)for(var a of t(n))r.call(n,a)&&__defNormalProp$1(e,a,n[a]);return e};const redux=(e,t)=>(o,r,n)=>{n.dispatch=t=>{o((o=>e(o,t)),false,t);return t};n.dispatchFromDevtools=true;return __spreadValues$1({dispatch:(...e)=>n.dispatch(...e)},t)};function devtools(e,t){return(o,r,n)=>{var a;let s=false;if(\"string\"===typeof t&&!s){console.warn(\"[zustand devtools middleware]: passing `name` as directly will be not allowed in next majorpass the `name` in an object `{ name: ... }` instead\");s=true}const i=void 0===t?{name:void 0,anonymousActionType:void 0}:\"string\"===typeof t?{name:t}:t;\"undefined\"!==typeof(null==(a=null==i?void 0:i.serialize)?void 0:a.options)&&console.warn(\"[zustand devtools middleware]: `serialize.options` is deprecated, just use `serialize`\");let l;try{l=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!l){\"production\"!==(import.meta.env&&import.meta.env.MODE)&&\"undefined\"!==typeof window&&console.warn(\"[zustand devtools middleware] Please install/enable Redux devtools extension\");return e(o,r,n)}let d=Object.create(l.connect(i));let c=false;Object.defineProperty(n,\"devtools\",{get:()=>{if(!c){console.warn(\"[zustand devtools middleware] `devtools` property on the store is deprecated it will be removed in the next major.\\nYou shouldn't interact with the extension directly. But in case you still want to you can patch `window.__REDUX_DEVTOOLS_EXTENSION__` directly\");c=true}return d},set:e=>{if(!c){console.warn(\"[zustand devtools middleware] `api.devtools` is deprecated, it will be removed in the next major.\\nYou shouldn't interact with the extension directly. But in case you still want to you can patch `window.__REDUX_DEVTOOLS_EXTENSION__` directly\");c=true}d=e}});let u=false;Object.defineProperty(d,\"prefix\",{get:()=>{if(!u){console.warn(\"[zustand devtools middleware] along with `api.devtools`, `api.devtools.prefix` is deprecated.\\nWe no longer prefix the actions/names\"+i.name===void 0?\", pass the `name` option to create a separate instance of devtools for each store.\":\", because the `name` option already creates a separate instance of devtools for each store.\");u=true}return\"\"},set:()=>{if(!u){console.warn(\"[zustand devtools middleware] along with `api.devtools`, `api.devtools.prefix` is deprecated.\\nWe no longer prefix the actions/names\"+i.name===void 0?\", pass the `name` option to create a separate instance of devtools for each store.\":\", because the `name` option already creates a separate instance of devtools for each store.\");u=true}}});let p=true;n.setState=(e,t,n)=>{o(e,t);p&&d.send(void 0===n?{type:i.anonymousActionType||\"anonymous\"}:\"string\"===typeof n?{type:n}:n,r())};const setStateFromDevtools=(...e)=>{const t=p;p=false;o(...e);p=t};const v=e(n.setState,r,n);d.init(v);if(n.dispatchFromDevtools&&\"function\"===typeof n.dispatch){let e=false;const t=n.dispatch;n.dispatch=(...o)=>{if(\"__setState\"===o[0].type&&!e){console.warn('[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.');e=true}t(...o)}}d.subscribe((e=>{var t;switch(e.type){case\"ACTION\":if(\"string\"!==typeof e.payload){console.error(\"[zustand devtools middleware] Unsupported action format\");return}return parseJsonThen(e.payload,(e=>{\"__setState\"!==e.type?n.dispatchFromDevtools&&\"function\"===typeof n.dispatch&&n.dispatch(e):setStateFromDevtools(e.state)}));case\"DISPATCH\":switch(e.payload.type){case\"RESET\":setStateFromDevtools(v);return d.init(n.getState());case\"COMMIT\":return d.init(n.getState());case\"ROLLBACK\":return parseJsonThen(e.state,(e=>{setStateFromDevtools(e);d.init(n.getState())}));case\"JUMP_TO_STATE\":case\"JUMP_TO_ACTION\":return parseJsonThen(e.state,(e=>{setStateFromDevtools(e)}));case\"IMPORT_STATE\":{const{nextLiftedState:o}=e.payload;const r=null==(t=o.computedStates.slice(-1)[0])?void 0:t.state;if(!r)return;setStateFromDevtools(r);d.send(null,o);return}case\"PAUSE_RECORDING\":return p=!p}return}}));return v}}const parseJsonThen=(e,t)=>{let o;try{o=JSON.parse(e)}catch(e){console.error(\"[zustand devtools middleware] Could not parse the received json\",e)}void 0!==o&&t(o)};const subscribeWithSelector=e=>(t,o,r)=>{const n=r.subscribe;r.subscribe=(e,t,o)=>{let a=e;if(t){const n=(null==o?void 0:o.equalityFn)||Object.is;let s=e(r.getState());a=o=>{const r=e(o);if(!n(s,r)){const e=s;t(s=r,e)}};(null==o?void 0:o.fireImmediately)&&t(s,s)}return n(a)};const a=e(t,o,r);return a};const combine=(e,t)=>(o,r,n)=>Object.assign({},e,t(o,r,n));var n=Object.defineProperty;var a=Object.getOwnPropertySymbols;var s=Object.prototype.hasOwnProperty;var i=Object.prototype.propertyIsEnumerable;var __defNormalProp=(e,t,o)=>t in e?n(e,t,{enumerable:true,configurable:true,writable:true,value:o}):e[t]=o;var __spreadValues=(e,t)=>{for(var o in t||(t={}))s.call(t,o)&&__defNormalProp(e,o,t[o]);if(a)for(var o of a(t))i.call(t,o)&&__defNormalProp(e,o,t[o]);return e};const toThenable=e=>t=>{try{const o=e(t);return o instanceof Promise?o:{then(e){return toThenable(e)(o)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return toThenable(t)(e)}}}};const persist=(e,t)=>(o,r,n)=>{let a=__spreadValues({getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:e=>e,version:0,merge:(e,t)=>__spreadValues(__spreadValues({},t),e)},t);(a.blacklist||a.whitelist)&&console.warn(`The ${a.blacklist?\"blacklist\":\"whitelist\"} option is deprecated and will be removed in the next version. Please use the 'partialize' option instead.`);let s=false;const i=new Set;const l=new Set;let d;try{d=a.getStorage()}catch(e){}if(!d)return e(((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`);o(...e)}),r,n);d.removeItem||console.warn(`[zustand persist middleware] The given storage for item '${a.name}' does not contain a 'removeItem' method, which will be required in v4.`);const c=toThenable(a.serialize);const setItem=()=>{const e=a.partialize(__spreadValues({},r()));a.whitelist&&Object.keys(e).forEach((t=>{var o;!(null==(o=a.whitelist)?void 0:o.includes(t))&&delete e[t]}));a.blacklist&&a.blacklist.forEach((t=>delete e[t]));let t;const o=c({state:e,version:a.version}).then((e=>d.setItem(a.name,e))).catch((e=>{t=e}));if(t)throw t;return o};const u=n.setState;n.setState=(e,t)=>{u(e,t);void setItem()};const p=e(((...e)=>{o(...e);void setItem()}),r,n);let v;const hydrate=()=>{var e;if(!d)return;s=false;i.forEach((e=>e(r())));const t=(null==(e=a.onRehydrateStorage)?void 0:e.call(a,r()))||void 0;return toThenable(d.getItem.bind(d))(a.name).then((e=>{if(e)return a.deserialize(e)})).then((e=>{if(e){if(\"number\"!==typeof e.version||e.version===a.version)return e.state;if(a.migrate)return a.migrate(e.state,e.version);console.error(\"State loaded from storage couldn't be migrated since no migrate function was provided\")}})).then((e=>{v=a.merge(e,p);o(v,true);return setItem()})).then((()=>{null==t?void 0:t(v,void 0);s=true;l.forEach((e=>e(v)))})).catch((e=>{null==t?void 0:t(void 0,e)}))};n.persist={setOptions:e=>{a=__spreadValues(__spreadValues({},a),e);e.getStorage&&(d=e.getStorage())},clearStorage:()=>{var e;null==(e=null==d?void 0:d.removeItem)?void 0:e.call(d,a.name)},rehydrate:()=>hydrate(),hasHydrated:()=>s,onHydrate:e=>{i.add(e);return()=>{i.delete(e)}},onFinishHydration:e=>{l.add(e);return()=>{l.delete(e)}}};hydrate();return v||p};export{combine,devtools,persist,redux,subscribeWithSelector};\n\n//# sourceMappingURL=middleware.js.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{cloneElement,useMemo,useId}from\"react\";import CurrencySymbols from\"https://framerusercontent.com/modules/pJIZxaEdKo1uS87sS4xM/4PSl3AVmNoISomoZ0s7m/CurrencySymbols.js\";const VERSION=1;export const UPGRADE_LINK=\"https://buy.stripe.com/cN29CT5gi1spb5e9AN\";export var ShopifyDataType;(function(ShopifyDataType){ShopifyDataType[\"Product\"]=\"gid://shopify/Product/\";ShopifyDataType[\"ProductVariant\"]=\"gid://shopify/ProductVariant/\";ShopifyDataType[\"ProductOption\"]=\"gid://shopify/ProductOption/\";})(ShopifyDataType||(ShopifyDataType={}));export const SHOPIFY_ID_ATTRIBUTE=\"frameship-shopify-id\";export const OPEN_CART_EVENT=\"frameship-open-cart\";export const DEFAULT_TRANSITION={type:\"spring\",duration:.2,bounce:0};const CHARACTERS=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";const EMPTY_SHOPIFY_DATA={shopifyId:\"\",tracksInventory:false,variants:[]};const shopifyDataCache={};export function parseShopifyId(id,type){if(typeof id!==\"string\"){return\"\";}if(id.startsWith(type)){return id;}return`${type}${id}`;}export function parseShopifyData(shopifyData){if(!shopifyData){return EMPTY_SHOPIFY_DATA;}const cachedData=shopifyDataCache[shopifyData];if(cachedData){return cachedData;}try{const data=JSON.parse(shopifyData);const parsedData={shopifyId:parseShopifyId(data.id,\"gid://shopify/Product/\"),tracksInventory:data.tracksInventory?true:false,variants:Array.isArray(data.variants)?data.variants.map(variant=>({...variant,id:parseShopifyId(variant.id,\"gid://shopify/ProductVariant/\")})):[]};shopifyDataCache[shopifyData]=parsedData;return parsedData;}catch(error){console.error(\"Error parsing Shopify data:\",error);return EMPTY_SHOPIFY_DATA;}}export const generateInstanceId=()=>{const id=useMemo(()=>{let result=\"\";for(let i=0;i<13;i++){result+=CHARACTERS.charAt(Math.floor(Math.random()*CHARACTERS.length));}return result;},[]);return id;};export const useInstanceId=()=>{const id=useId();const cleanId=id.replace(/:/g,\"\");const instanceId=`superfields-${cleanId}`;return instanceId;};export function styleLayer(layer,style){layer=Array.isArray(layer)?layer[0]:layer;let newLayer=layer;const width=style?.width;const height=style?.height;if(layer&&layer.props&&style&&(width||height)){if(typeof layer.type===\"function\"&&typeof layer.props.children===\"object\"){newLayer=/*#__PURE__*/cloneElement(layer,{children:{...layer.props.children,props:{...layer.props.children.props,style:{...layer.props.children.props.style,...width&&{width},...height&&{height}}}}});}else{newLayer=/*#__PURE__*/cloneElement(layer,{style:{...layer.props.style,...width&&{width},...height&&{height}}});}}return newLayer;}export function Message({title,subtitle}){return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",width:\"100%\",height:\"100%\",placeContent:\"center\",placeItems:\"center\",flexDirection:\"column\",gap:16,backgroundColor:\"rgba(136, 85, 255, 0.1)\",borderRadius:6,border:\"1px dashed rgb(136, 85, 255)\",color:\"rgb(136, 85, 255)\",fontSize:16,padding:20,minHeight:200,textWrap:\"balance\"},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:0,fontWeight:600,textAlign:\"center\"},children:title}),/*#__PURE__*/_jsx(\"p\",{style:{margin:0,opacity:.7,lineHeight:1.5,textAlign:\"center\"},children:subtitle})]});}Message.displayName=\"Frameship/Message\";export function currencyFormatProp({title=\"Format\",startProps={},hidden=null}={}){return{type:ControlType.Object,title,hidden,controls:{...startProps,style:{type:ControlType.Enum,defaultValue:\"symbol\",options:[\"symbol\",\"code\"],optionTitles:[\"Symbol ($)\",\"Code (USD)\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},location:{type:ControlType.Enum,defaultValue:\"after\",options:[\"before\",\"after\"],optionTitles:[\"Before\",\"After\"],displaySegmentedControl:true,hidden:props=>props.style!==\"code\"},decimals:{type:ControlType.Enum,defaultValue:\"auto\",options:[\"auto\",\"always\",\"never\"],optionTitles:[\"Auto\",\"Show (10.00)\",\"Hide (10)\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},formatted:{type:ControlType.Boolean,defaultValue:true},locale:{type:ControlType.String,defaultValue:\"\",placeholder:`Auto (${typeof navigator!==\"undefined\"?navigator.language:\"\"})`,description:\"Formatting examples:\\n*1,000* | *1.000* | *1 000*\",hidden:props=>!props.formatted}}};}export function formatCurrency(amount,currencyCode,options){amount=amount||0;const showDecimals=options.decimals==\"auto\"?amount%1!==0:options.decimals==\"always\";const decimals=showDecimals?2:0;let formattedAmount=\"\";if(options.formatted&&typeof Intl!==\"undefined\"){const locale=options.locale||(typeof navigator!==\"undefined\"?navigator.language:\"en-us\");const formatter=new Intl.NumberFormat(locale,{minimumFractionDigits:decimals,maximumFractionDigits:decimals});formattedAmount=formatter.format(amount);}else{formattedAmount=amount.toFixed(decimals);}if(!currencyCode||currencyCode===\"XXX\"){return formattedAmount;}const symbol=CurrencySymbols[currencyCode];if(options.style===\"code\"){return options.location===\"before\"?`${currencyCode} ${formattedAmount}`:`${formattedAmount} ${currencyCode}`;}else{return`${symbol}${formattedAmount}`;}}export function generateVariantTitle(variant,labelOptions){if(!variant||!Array.isArray(variant.selectedOptions)||!variant.selectedOptions.length||variant.title===\"Default Title\"){return\"\";}if(!labelOptions){return variant.title;}switch(labelOptions.style){case\"default\":return variant.selectedOptions.map(option=>option.value).join(labelOptions.separator);case\"multiline\":return variant.selectedOptions.map(option=>option.name+labelOptions.multilineSeparator+option.value).join(\"\\n\");}return variant.title||\"\";}export function addPropertyControlsFrameship(component,propertyControls,options=null){const shopifyData=options?.shopifyData;addPropertyControls(component,{...shopifyData?{shopifyData:{type:ControlType.String,defaultValue:\"\",placeholder:\"Shopify Data\",preventLocalization:true}}:{},...propertyControls,[`_frameship_version_${VERSION}`]:{type:ControlType.String,title:\" \",defaultValue:\"\",preventLocalization:true,hidden:props=>true}});}\nexport const __FramerMetadata__ = {\"exports\":{\"parseShopifyData\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useInstanceId\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseShopifyId\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"formatCurrency\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ShopifyDataType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_TRANSITION\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"UPGRADE_LINK\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"generateInstanceId\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SHOPIFY_ID_ATTRIBUTE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"addPropertyControlsFrameship\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"generateVariantTitle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OPEN_CART_EVENT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Message\":{\"type\":\"reactComponent\",\"name\":\"Message\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"currencyFormatProp\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"styleLayer\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Shared.map","import create from\"zustand\";import{persist}from\"zustand/middleware\";import{useState,useEffect}from\"react\";import{parseShopifyData}from\"https://framerusercontent.com/modules/gd3dcT3w5rYoRy7ZcKte/sH6FZizM8jJ11j2dQOhQ/Shared.js\";const CART_ID_STORAGE_ID=\"frameship-shopify-cart-id\";const frameshipDataCache={};async function fetchShopifyData(query,variables={}){const{shopUrl,accessToken}=getFrameshipInfo();if(!shopUrl||!accessToken){console.warn(\"Missing shop URL or access token\");return null;}try{const response=await fetch(`https://${shopUrl}/api/2024-10/graphql.json`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",\"X-Shopify-Storefront-Access-Token\":accessToken},body:JSON.stringify({query,variables})});const value=await response.json();return value?value.data:null;}catch(error){console.error(error);return null;}}// Add this shared fragment for cart fields\nconst CART_FRAGMENT=`\n  fragment CartFields on Cart {\n    id\n    checkoutUrl\n    cost {\n      subtotalAmount {\n        amount\n        currencyCode\n      }\n    }\n    lines(first: 10) {\n      edges {\n        node {\n          id\n          quantity\n          cost {\n            subtotalAmount {\n              amount\n              currencyCode\n            }\n            compareAtAmountPerQuantity {\n              amount\n              currencyCode\n            }\n          }\n          merchandise {\n            ... on ProductVariant {\n              id\n              title\n              price {\n                amount\n                currencyCode\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n`;export const useCartStore=create(persist((set,get)=>({cartId:null,items:[],loading:false,error:null,checkoutUrl:null,subtotal:null,initializeCart:async(createNewCart=false)=>{if(get().items.length>0){return;}set({loading:true});try{const cartId=get().cartId;if(cartId){const cart=await fetchCart(cartId);set({items:cart.lines.edges.map(edge=>edge.node),checkoutUrl:generateCheckoutUrl(cart.checkoutUrl),subtotal:cart.cost.subtotalAmount,loading:false});}else if(createNewCart){const newCart=await createCart();set({cartId:newCart.id,items:[],checkoutUrl:generateCheckoutUrl(newCart.checkoutUrl),subtotal:newCart.cost.subtotalAmount,loading:false});}}catch(error){set({error:error.message,loading:false});}},addToCart:async(variantId,quantity)=>{set({loading:true});try{// Initialize cart if needed\n    if(!get().cartId){await get().initializeCart(true);}const cartId=get().cartId;const updatedCart=await addToCart(cartId,variantId,quantity);set({items:updatedCart.lines.edges.map(edge=>edge.node),subtotal:updatedCart.cost.subtotalAmount,loading:false});}catch(error){set({error:error.message,loading:false});}},removeFromCart:async lineId=>{set({loading:true});try{const cartId=get().cartId;const updatedCart=await removeFromCart(cartId,lineId);set({items:updatedCart.lines.edges.map(edge=>edge.node),subtotal:updatedCart.cost.subtotalAmount,loading:false});}catch(error){set({error:error.message,loading:false});}},setCartItemQuantity:async(lineId,quantity)=>{set({loading:true});try{const cartId=get().cartId;const updatedCart=await updateCartLineQuantity(cartId,lineId,quantity);set({items:updatedCart.lines.edges.map(edge=>edge.node),subtotal:updatedCart.cost.subtotalAmount,loading:false});}catch(error){set({error:error.message,loading:false});}},getCheckoutUrl:()=>{return get().checkoutUrl||\"\";},clearError:()=>set({error:null})}),{name:CART_ID_STORAGE_ID,partialize:state=>({cartId:state.cartId})}));async function createCart(){const mutation=`\n    ${CART_FRAGMENT}\n    mutation {\n      cartCreate {\n        cart {\n          ...CartFields\n        }\n      }\n    }\n  `;const data=await fetchShopifyData(mutation);return data?data.cartCreate.cart:null;}async function fetchCart(cartId){const query=`\n    ${CART_FRAGMENT}\n    query($cartId: ID!) {\n      cart(id: $cartId) {\n        ...CartFields\n      }\n    }\n  `;const variables={cartId};const data=await fetchShopifyData(query,variables);return data?data.cart:null;}async function addToCart(cartId,variantId,quantity){const mutation=`\n    ${CART_FRAGMENT}\n    mutation($cartId: ID!, $lines: [CartLineInput!]!) {\n      cartLinesAdd(cartId: $cartId, lines: $lines) {\n        cart {\n          ...CartFields\n        }\n        userErrors {\n          field\n          message\n        }\n      }\n    }\n  `;const variables={cartId,lines:[{quantity:quantity,merchandiseId:variantId}]};try{const data=await fetchShopifyData(mutation,variables);if(data&&data.cartLinesAdd.userErrors.length>0){const cartNotFoundError=data.cartLinesAdd.userErrors.find(e=>e.message===\"The specified cart does not exist.\");if(cartNotFoundError){// Create new cart and retry adding the item\nconst newCart=await createCart();const retryVariables={cartId:newCart.id,lines:[{quantity:quantity,merchandiseId:variantId}]};const retryData=await fetchShopifyData(mutation,retryVariables);if(retryData&&retryData.cartLinesAdd.userErrors.length>0){throw new Error(retryData.cartLinesAdd.userErrors.map(e=>e.message).join(\", \"));}return retryData.cartLinesAdd.cart;}throw new Error(data.cartLinesAdd.userErrors.map(e=>e.message).join(\", \"));}return data?data.cartLinesAdd.cart:null;}catch(error){throw error;}}async function removeFromCart(cartId,lineId){const mutation=`\n    ${CART_FRAGMENT}\n    mutation($cartId: ID!, $lineIds: [ID!]!) {\n      cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\n        cart {\n          ...CartFields\n        }\n      }\n    }\n  `;const variables={cartId,lineIds:[lineId]};const data=await fetchShopifyData(mutation,variables);return data?data.cartLinesRemove.cart:null;}export async function getAmountInStock(productId){const query=`\n\t\tquery getInventory($id: ID!) {\n\t\t\tproduct(id: $id) {\n\t\t\t\tvariants(first: 100) {\n\t\t\t\t\tedges {\n\t\t\t\t\t\tnode {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\tquantityAvailable\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t`;const variables={id:productId};try{const data=await fetchShopifyData(query,variables);const inventoryByVariant={};if(data){for(const edge of data.product.variants.edges){inventoryByVariant[edge.node.id]=edge.node.quantityAvailable;}}return inventoryByVariant;}catch(error){console.error(\"Error fetching inventory:\",error);throw error;}}export function useAmountInStock(shopifyData){const{shopifyId}=parseShopifyData(shopifyData);const[inventory,setInventory]=useState({});const[isLoading,setIsLoading]=useState(true);useEffect(()=>{setIsLoading(true);getAmountInStock(shopifyId).then(value=>{setInventory(value);setIsLoading(false);});},[shopifyId]);return[inventory,isLoading];}async function updateCartLineQuantity(cartId,lineId,quantity){const mutation=`\n    ${CART_FRAGMENT}\n    mutation($cartId: ID!, $lines: [CartLineUpdateInput!]!) {\n      cartLinesUpdate(cartId: $cartId, lines: $lines) {\n        cart {\n          ...CartFields\n        }\n        userErrors {\n          field\n          message\n        }\n      }\n    }\n  `;const variables={cartId,lines:[{id:lineId,quantity:quantity}]};const data=await fetchShopifyData(mutation,variables);if(data&&data.cartLinesUpdate.userErrors.length>0){throw new Error(data.cartLinesUpdate.userErrors.map(e=>e.message).join(\", \"));}return data?data.cartLinesUpdate.cart:null;}export async function generateBuyNowCheckoutUrl(variantId,quantity=1){const mutation=`\n\t\tmutation($input: CartInput!) {\n\t\t\tcartCreate(input: $input) {\n\t\t\t\tcart {\n\t\t\t\t\tcheckoutUrl\n\t\t\t\t}\n\t\t\t\tuserErrors {\n\t\t\t\t\tfield\n\t\t\t\t\tmessage\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t`;const variables={input:{lines:[{quantity:quantity,merchandiseId:variantId}]}};try{const data=await fetchShopifyData(mutation,variables);if(data&&data.cartCreate.userErrors.length>0){throw new Error(data.cartCreate.userErrors.map(e=>e.message).join(\", \"));}return data?generateCheckoutUrl(data.cartCreate.cart.checkoutUrl):null;}catch(error){console.error(\"Error creating buy now cart:\",error);throw error;}}export function getFrameshipInfo(){let shopUrl=\"\";let accessToken=\"\";let stagingDomain=\"\";let productionDomain=\"\";let isCreatorLicense=false;let hasAccess=false;if(typeof document!==\"undefined\"&&typeof window!==\"undefined\"){const hostname=window.location.hostname;const isPreview=hostname.endsWith(\".framercanvas.com\");if(isPreview){hasAccess=true;}// First check for meta tag\nconst frameshipMetaTag=document.querySelector('meta[name=\"frameship-id\"]');if(frameshipMetaTag){const frameshipId=frameshipMetaTag.getAttribute(\"content\")||\"\";const frameshipData=parseFrameshipData(frameshipId);const newHasAccess=hasFrameshipAccess(frameshipData.stagingDomain,frameshipData.productionDomain);hasAccess=newHasAccess;if(hasAccess){shopUrl=frameshipData.shopUrl||\"\";accessToken=frameshipData.shopifyAccessToken||\"\";stagingDomain=frameshipData.stagingDomain||\"\";productionDomain=frameshipData.productionDomain||\"\";isCreatorLicense=frameshipData.isCreatorLicense??false;}}else{// Fall back to div element approach\nconst frameshipIdComponent=document.querySelector(\"div[data-frameship-id]\");if(frameshipIdComponent){const frameshipId=frameshipIdComponent.getAttribute(\"data-frameship-id\")||\"\";const frameshipData=parseFrameshipData(frameshipId);const newHasAccess=hasFrameshipAccess(frameshipData.stagingDomain,frameshipData.productionDomain);hasAccess=newHasAccess;if(hasAccess){shopUrl=frameshipData.shopUrl||\"\";accessToken=frameshipData.shopifyAccessToken||\"\";stagingDomain=frameshipData.stagingDomain||\"\";productionDomain=frameshipData.productionDomain||\"\";isCreatorLicense=frameshipData.isCreatorLicense??false;}}else{const frameshipComponent=document.querySelector(\"div[data-frameship-component]\");if(frameshipComponent){const newStagingDomain=frameshipComponent.getAttribute(\"data-staging-domain\")||\"\";const newProductionDomain=frameshipComponent.getAttribute(\"data-production-domain\")||\"\";const newHasAccess=hasFrameshipAccess(newStagingDomain,newProductionDomain);hasAccess=newHasAccess;if(hasAccess){shopUrl=frameshipComponent.getAttribute(\"data-shop-url\")||\"\";accessToken=frameshipComponent.getAttribute(\"data-shopify-access-token\")||\"\";stagingDomain=newStagingDomain;productionDomain=newProductionDomain;}}}}}else{hasAccess=true// Show as having access in optimized version of site\n;}return{shopUrl,accessToken,stagingDomain,productionDomain,hasAccess,isCreatorLicense};}export function hasFrameshipAccess(stagingDomain,productionDomain){if(typeof document===\"undefined\"||typeof window===\"undefined\"){return true;}const hostname=window.location.hostname;const isPreview=hostname.endsWith(\".framercanvas.com\");const stagingDomainValue=(stagingDomain||\"\").replace(\"https://\",\"\");const productionDomainValue=(productionDomain||\"\").replace(\"https://\",\"\");if(isPreview||hostname===stagingDomainValue||hostname===productionDomainValue){return true;}else{return false;}}export function parseFrameshipData(frameshipData){if(!frameshipData||typeof frameshipData!==\"string\"){return{};}if(frameshipDataCache.hasOwnProperty(frameshipData)){return frameshipDataCache[frameshipData];}try{const decoded=decodeFromBase64WithoutPadding(rot13(reverseString(frameshipData)));const data=JSON.parse(decoded);// Validate required properties exist\nif(!data||typeof data!==\"object\"){return{};}const value={shopUrl:typeof data.a===\"string\"?data.a:\"\",shopifyAccessToken:typeof data.b===\"string\"?data.b:\"\",productionDomain:typeof data.c===\"string\"?data.c:\"\",stagingDomain:typeof data.d===\"string\"?data.d:\"\",isCreatorLicense:typeof data.e===\"boolean\"?data.e:false};frameshipDataCache[frameshipData]=value;return value;}catch(error){return{};}}function decodeFromBase64WithoutPadding(base64WithoutPadding){try{// Calculate and add back the required padding\nconst padding=base64WithoutPadding.length%4;const paddedBase64=padding?base64WithoutPadding+\"=\".repeat(4-padding):base64WithoutPadding;// Decode the base64 string back to the original string\nreturn atob(paddedBase64);}catch(error){console.error(\"Error decoding base64:\",error);return\"\";}}function rot13(str){return str.replace(/[A-Za-z]/g,function(char){const charCode=char.charCodeAt(0);const baseCharCode=char.toUpperCase()===char?65:97;return String.fromCharCode((charCode-baseCharCode+13)%26+baseCharCode);});}function reverseString(str){return str.split(\"\").reverse().join(\"\");}function generateCheckoutUrl(checkoutUrl){const{isCreatorLicense}=getFrameshipInfo();return isCreatorLicense?\"https://frameship.io/\":checkoutUrl;}\nexport const __FramerMetadata__ = {\"exports\":{\"hasFrameshipAccess\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useCartStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseFrameshipData\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getAmountInStock\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAmountInStock\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"generateBuyNowCheckoutUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getFrameshipInfo\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (f712822)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Link,RichText,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX,withOptimizedAppearEffect}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const MotionDivWithFXWithOptimizedAppearEffect=withOptimizedAppearEffect(withFX(motion.div));const serializationHash=\"framer-Rn0up\";const variantClassNames={iwCoq9e2J:\"framer-v-okagad\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const transition2={bounce:0,delay:.5,duration:.8,type:\"spring\"};const animation={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition2,x:0,y:0};const animation1={opacity:.001,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:25};const transition3={bounce:.25,delay:0,duration:.45,type:\"spring\"};const animation2={opacity:.92,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition3};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,link,width,...props})=>{return{...props,drrB1JJ6M:link??props.drrB1JJ6M};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,drrB1JJ6M,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"iwCoq9e2J\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-okagad\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"iwCoq9e2J\",ref:refBinding,style:{...style},children:/*#__PURE__*/_jsxs(MotionDivWithFXWithOptimizedAppearEffect,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation,className:\"framer-nm3c8g\",\"data-border\":true,\"data-framer-appear-id\":\"nm3c8g\",initial:animation1,layoutDependency:layoutDependency,layoutId:\"BqB1SwKYY\",optimized:true,style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(0, 0, 0, 0.07)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backdropFilter:\"blur(8px)\",backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:15,borderBottomRightRadius:15,borderTopLeftRadius:15,borderTopRightRadius:15,boxShadow:\"0px 5px 20px 0px rgba(0, 0, 0, 0.08)\",WebkitBackdropFilter:\"blur(8px)\"},children:[/*#__PURE__*/_jsx(Link,{href:\"frameship.io\",motionChild:true,nodeId:\"bjYgIQ5ZX\",openInNewTab:true,scopeId:\"LOQtD1uPa\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-185g4gf framer-12itpre\",layoutDependency:layoutDependency,layoutId:\"bjYgIQ5ZX\",children:/*#__PURE__*/_jsx(SVG,{className:\"framer-3oxhc7\",\"data-framer-name\":\"Logo\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"EOoJvDlBE\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 126 20\"><path d=\"M 119.052 18.261 L 115.496 18.261 L 115.496 5 L 120.468 5 C 121.454 5 122.314 5.201 123.048 5.603 C 123.781 5.998 124.351 6.541 124.755 7.23 C 125.16 7.919 125.363 8.699 125.363 9.567 C 125.363 10.437 125.16 11.228 124.755 11.941 C 124.346 12.653 123.756 13.24 123.048 13.64 C 122.314 14.059 121.454 14.27 120.468 14.27 L 119.052 14.27 Z M 119.052 13.217 L 117.449 11.581 L 120.108 11.581 C 120.395 11.583 120.677 11.509 120.927 11.365 C 121.185 11.216 121.393 10.992 121.551 10.692 C 121.71 10.392 121.789 10.018 121.789 9.567 C 121.789 9.118 121.71 8.756 121.551 8.48 C 121.41 8.22 121.191 8.012 120.927 7.886 C 120.672 7.76 120.392 7.695 120.108 7.698 L 117.449 7.698 L 119.052 6.061 Z M 110.457 18.261 L 110.457 5 L 113.961 5 L 113.961 18.261 Z M 108.922 5 L 108.922 18.261 L 105.365 18.261 L 105.365 12.13 L 106.968 13.02 L 99.794 13.02 L 101.396 12.184 L 101.396 18.261 L 97.84 18.261 L 97.84 5 L 101.396 5 L 101.396 11.168 L 99.794 10.314 L 106.968 10.314 L 105.365 11.158 L 105.365 5 Z M 91.486 18.495 C 90.524 18.495 89.661 18.338 88.899 18.027 C 88.136 17.71 87.531 17.239 87.085 16.616 C 86.645 15.992 86.425 15.219 86.425 14.297 L 86.425 13.829 L 89.972 13.829 L 89.972 14.225 C 89.972 14.645 90.098 14.995 90.35 15.277 C 90.609 15.558 90.999 15.699 91.521 15.699 C 92.026 15.699 92.422 15.625 92.709 15.474 C 93.003 15.318 93.149 15.066 93.149 14.719 C 93.149 14.461 93.011 14.222 92.736 14 C 92.466 13.778 92.099 13.568 91.636 13.371 C 91.134 13.157 90.623 12.968 90.104 12.805 C 89.495 12.607 88.91 12.339 88.361 12.005 C 87.825 11.678 87.368 11.232 87.023 10.7 C 86.678 10.161 86.504 9.492 86.504 8.696 C 86.504 7.875 86.727 7.174 87.173 6.592 C 87.619 6.005 88.217 5.555 88.968 5.244 C 89.725 4.932 90.565 4.776 91.486 4.776 C 92.443 4.776 93.296 4.929 94.048 5.234 C 94.804 5.54 95.403 5.99 95.843 6.583 C 96.283 7.177 96.503 7.911 96.503 8.785 L 96.503 9.235 L 92.956 9.235 L 92.956 8.957 C 92.956 8.567 92.847 8.237 92.63 7.967 C 92.419 7.697 92.052 7.563 91.53 7.563 C 91.013 7.563 90.615 7.658 90.333 7.85 C 90.057 8.042 89.919 8.321 89.919 8.687 C 89.919 8.944 90.037 9.172 90.271 9.37 C 90.506 9.561 90.829 9.742 91.24 9.909 C 91.656 10.077 92.125 10.257 92.648 10.448 C 93.434 10.73 94.123 11.042 94.716 11.383 C 95.309 11.719 95.77 12.142 96.099 12.651 C 96.432 13.161 96.6 13.814 96.6 14.611 C 96.6 15.444 96.38 16.151 95.939 16.733 C 95.5 17.308 94.892 17.745 94.118 18.046 C 93.349 18.345 92.472 18.495 91.486 18.495 Z M 78.734 7.698 L 80.337 6.061 L 80.337 11.231 L 79.545 10.26 L 84.209 10.26 L 84.209 12.957 L 79.544 12.957 L 80.336 11.995 L 80.336 17.2 L 78.735 15.563 L 85.186 15.563 L 85.186 18.261 L 76.763 18.261 L 76.763 5 L 85.186 5 L 85.186 7.697 L 78.734 7.697 Z M 69.108 5 L 75.085 5 L 75.085 18.261 L 71.713 18.261 L 71.713 6.933 L 71.775 6.97 L 69.759 18.261 L 65.235 18.261 L 63.158 6.943 L 63.22 6.906 L 63.22 18.261 L 59.84 18.261 L 59.84 5 L 65.817 5 L 67.63 16.877 L 67.268 16.877 Z M 47.127 18.261 L 50.147 5 L 55.789 5 L 58.79 18.261 L 55.155 18.261 L 52.963 7.167 L 52.98 7.167 L 50.763 18.261 Z M 49.768 15.474 L 49.768 12.75 L 56.176 12.75 L 56.176 15.474 Z M 36.388 18.261 L 36.388 5 L 42.145 5 C 43.624 5 44.715 5.336 45.419 6.007 C 46.129 6.672 46.484 7.602 46.484 8.794 C 46.484 9.465 46.358 10.037 46.106 10.511 C 45.854 10.985 45.539 11.35 45.164 11.608 C 44.788 11.866 44.416 12.01 44.046 12.04 C 44.416 12.061 44.777 12.155 45.111 12.318 C 45.44 12.48 45.704 12.741 45.903 13.101 C 46.109 13.454 46.211 13.934 46.211 14.539 L 46.211 16.732 C 46.211 17.05 46.235 17.353 46.282 17.641 C 46.335 17.923 46.414 18.129 46.52 18.261 L 42.963 18.261 C 42.869 18.111 42.796 17.898 42.743 17.623 C 42.695 17.329 42.671 17.031 42.673 16.733 L 42.673 14.952 C 42.673 14.473 42.573 14.096 42.374 13.82 C 42.174 13.538 41.813 13.397 41.291 13.397 L 38.933 13.397 L 39.857 12.291 L 39.857 18.261 Z M 39.857 11.968 L 38.932 10.7 L 41.326 10.7 C 41.626 10.7 41.887 10.637 42.109 10.511 C 42.334 10.39 42.518 10.202 42.637 9.972 C 42.771 9.715 42.838 9.427 42.831 9.136 C 42.831 8.746 42.693 8.408 42.417 8.12 C 42.148 7.833 41.779 7.689 41.309 7.689 L 38.844 7.689 L 39.857 6.61 Z M 28.328 7.697 L 29.93 6.061 L 29.93 11.33 L 28.848 10.476 L 34.198 10.476 L 34.198 13.182 L 28.848 13.182 L 29.93 12.256 L 29.93 18.261 L 26.392 18.261 L 26.392 5 L 34.982 5 L 34.982 7.697 L 28.328 7.697 Z\" fill=\"rgb(64, 212, 26)\"></path><path d=\"M 0.005 5.77 C 0.005 5.569 0.083 5.376 0.223 5.234 C 0.362 5.091 0.551 5.011 0.748 5.011 L 4.761 5.011 L 9.667 0 L 14.573 5.012 L 18.589 5.012 C 18.687 5.012 18.784 5.032 18.874 5.07 C 19.152 5.188 19.333 5.464 19.333 5.771 L 19.333 15.184 C 19.334 16.392 18.864 17.551 18.027 18.406 C 17.19 19.261 16.056 19.741 14.872 19.741 L 4.465 19.741 C 3.282 19.74 2.148 19.26 1.312 18.406 C 0.475 17.551 0.005 16.393 0.005 15.185 L 0.005 9.877 C 2.567 12.493 6.044 13.963 9.669 13.963 C 13.295 13.962 16.771 12.491 19.333 9.875 L 19.333 9.873 L 14.574 5.012 L 4.761 5.011 L 0.005 9.868 Z M 0 9.873 L 0.005 9.87 L 0.005 9.877 Z\" fill=\"rgb(64, 212, 26)\"></path></svg>',svgContentId:11104939045,withExternalLayout:true})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1dxyonn\",layoutDependency:layoutDependency,layoutId:\"Y9pi3xZ1f\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItRXh0cmFCb2xk\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-weight\":\"800\",\"--framer-line-height\":\"1.1em\",\"--framer-text-alignment\":\"left\",\"--framer-text-transform\":\"uppercase\"},children:\"UPGRADE TO Unlock ECOMMERCE\"})}),className:\"framer-4zgcw4\",fonts:[\"Inter-ExtraBold\"],layoutDependency:layoutDependency,layoutId:\"KlPjgIRAY\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-font-weight\":\"500\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(0, 0, 0, 0.7))\"},children:\"Use Shopify on your website with Frameship.\"})}),className:\"framer-1yqk9il\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"RNWsHiU5i\",style:{\"--extracted-r6o4lv\":\"rgba(0, 0, 0, 0.7)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsx(Link,{href:drrB1JJ6M,motionChild:true,nodeId:\"LJcdgqplR\",openInNewTab:true,scopeId:\"LOQtD1uPa\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-1rb48ds framer-12itpre\",layoutDependency:layoutDependency,layoutId:\"LJcdgqplR\",style:{backgroundColor:\"rgb(64, 212, 27)\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8},whileHover:animation2,children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItRXh0cmFCb2xk\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"15px\",\"--framer-font-weight\":\"800\",\"--framer-line-height\":\"1em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\",\"--framer-text-transform\":\"uppercase\"},children:\"UPGRADE\"})}),className:\"framer-1ucnk5h\",fonts:[\"Inter-ExtraBold\"],layoutDependency:layoutDependency,layoutId:\"VLUiYG2YP\",style:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-Rn0up.framer-12itpre, .framer-Rn0up .framer-12itpre { display: block; }\",\".framer-Rn0up.framer-okagad { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 60px; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 620px; }\",\".framer-Rn0up .framer-nm3c8g { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 15px; height: 1px; justify-content: center; overflow: hidden; padding: 0px 10px 0px 0px; position: relative; width: 100%; will-change: var(--framer-will-change-override, transform); }\",\".framer-Rn0up .framer-185g4gf { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 100%; justify-content: center; overflow: visible; padding: 0px 0px 3px 20px; position: relative; text-decoration: none; width: min-content; }\",\".framer-Rn0up .framer-3oxhc7 { flex: none; height: 20px; position: relative; width: 126px; }\",\".framer-Rn0up .framer-1dxyonn { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 5px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-Rn0up .framer-4zgcw4, .framer-Rn0up .framer-1yqk9il { --framer-text-wrap: balance; flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-Rn0up .framer-1rb48ds { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 40px; justify-content: center; overflow: visible; padding: 0px 20px 0px 20px; position: relative; text-decoration: none; width: min-content; will-change: var(--framer-will-change-effect-override, transform); }\",\".framer-Rn0up .framer-1ucnk5h { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-Rn0up.framer-okagad, .framer-Rn0up .framer-nm3c8g, .framer-Rn0up .framer-185g4gf, .framer-Rn0up .framer-1dxyonn, .framer-Rn0up .framer-1rb48ds { gap: 0px; } .framer-Rn0up.framer-okagad > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } .framer-Rn0up.framer-okagad > :first-child, .framer-Rn0up .framer-1dxyonn > :first-child { margin-top: 0px; } .framer-Rn0up.framer-okagad > :last-child, .framer-Rn0up .framer-1dxyonn > :last-child { margin-bottom: 0px; } .framer-Rn0up .framer-nm3c8g > * { margin: 0px; margin-left: calc(15px / 2); margin-right: calc(15px / 2); } .framer-Rn0up .framer-nm3c8g > :first-child, .framer-Rn0up .framer-185g4gf > :first-child, .framer-Rn0up .framer-1rb48ds > :first-child { margin-left: 0px; } .framer-Rn0up .framer-nm3c8g > :last-child, .framer-Rn0up .framer-185g4gf > :last-child, .framer-Rn0up .framer-1rb48ds > :last-child { margin-right: 0px; } .framer-Rn0up .framer-185g4gf > *, .framer-Rn0up .framer-1rb48ds > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-Rn0up .framer-1dxyonn > * { margin: 0px; margin-bottom: calc(5px / 2); margin-top: calc(5px / 2); } }\",'.framer-Rn0up[data-border=\"true\"]::after, .framer-Rn0up [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 60\n * @framerIntrinsicWidth 620\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"drrB1JJ6M\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerLOQtD1uPa=withCSS(Component,css,\"framer-Rn0up\");export default FramerLOQtD1uPa;FramerLOQtD1uPa.displayName=\"Frameship Upgrade Banner\";FramerLOQtD1uPa.defaultProps={height:60,width:620};addPropertyControls(FramerLOQtD1uPa,{drrB1JJ6M:{title:\"Link\",type:ControlType.Link}});addFonts(FramerLOQtD1uPa,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/PONfPc6h4EPYwJliXQBmjVx7QxI.woff2\",weight:\"800\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/zsnJN7Z1wdzUvepJniD3rbvJIyU.woff2\",weight:\"800\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/UrzZBOy7RyJEWAZGduzOeHiHuY.woff2\",weight:\"800\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/996sR9SfSDuYELz8oHhDOcErkY.woff2\",weight:\"800\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/ftN1HpyPVJEoEb4q36SOrNdLXU.woff2\",weight:\"800\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/jN39PDxZWEwjG7Csryx3JN2r2Y.woff2\",weight:\"800\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/JAur4lGGSGRGyrFi59JSIKqVgU.woff2\",weight:\"800\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/d3tHnaQIAeqiE5hGcRw4mmgWYU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerLOQtD1uPa\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerColorSyntax\":\"true\",\"framerIntrinsicHeight\":\"60\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicWidth\":\"620\",\"framerVariables\":\"{\\\"drrB1JJ6M\\\":\\\"link\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LOQtD1uPa.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{createPortal}from\"react-dom\";import{useEffect,useState}from\"react\";import{hasFrameshipAccess,parseFrameshipData,useCartStore}from\"https://framerusercontent.com/modules/ibjYTPLnMMPhPLNCj4uG/cXa4uUn5VWWAcoaQctVU/Cart.js\";import{UPGRADE_LINK}from\"https://framerusercontent.com/modules/gd3dcT3w5rYoRy7ZcKte/sH6FZizM8jJ11j2dQOhQ/Shared.js\";import FrameshipUpgradeBanner from\"https://framerusercontent.com/modules/b6p2QQlcwhhLAA5Operm/erpgLSZm2BuxCMM1NCPK/LOQtD1uPa.js\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n * @framerDisableUnlink\n */export default function Frameship(props){const isCanvas=RenderTarget.current()===RenderTarget.canvas;const[portalContainer,setPortalContainer]=useState(null);const initializeCart=useCartStore(state=>state.initializeCart);useEffect(()=>{initializeCart?.();},[]);const attributes={};let stagingDomain=\"\";let productionDomain=\"\";if(props.frameshipData){attributes[\"data-frameship-id\"]=props.frameshipData;const frameshipData=parseFrameshipData(props.frameshipData);stagingDomain=frameshipData.stagingDomain;productionDomain=frameshipData.productionDomain;}else{attributes[\"data-frameship-component\"]=true;if(props.shopUrl){attributes[\"data-shop-url\"]=props.shopUrl;}if(props.shopifyAccessToken){attributes[\"data-shopify-access-token\"]=props.shopifyAccessToken;}if(props.productionDomain){attributes[\"data-production-domain\"]=props.productionDomain;}if(props.stagingDomain){attributes[\"data-staging-domain\"]=props.stagingDomain;}stagingDomain=props.stagingDomain;productionDomain=props.productionDomain;}const hasAccess=hasFrameshipAccess(stagingDomain,productionDomain);useEffect(()=>{if(!isCanvas){const container=document.createElement(\"div\");document.body.appendChild(container);setPortalContainer(container);return()=>{document.body.removeChild(container);};}},[]);return /*#__PURE__*/_jsx(\"div\",{...attributes,children:!isCanvas&&portalContainer&&!hasAccess&&/*#__PURE__*/createPortal(/*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",left:20,bottom:20},children:/*#__PURE__*/_jsx(FrameshipUpgradeBanner,{link:UPGRADE_LINK})}),portalContainer)});}Frameship.displayName=\"Frameship (Shopify)\";addPropertyControls(Frameship,{frameshipData:{type:ControlType.String,defaultValue:\"\",preventLocalization:true,hidden:()=>true},shopUrl:{type:ControlType.String,defaultValue:\"\",title:\"Shop URL\",preventLocalization:true,hidden:()=>true},shopifyAccessToken:{type:ControlType.String,defaultValue:\"\",preventLocalization:true,hidden:()=>true},productionDomain:{type:ControlType.String,defaultValue:\"\",preventLocalization:true,hidden:()=>true},stagingDomain:{type:ControlType.String,defaultValue:\"\",preventLocalization:true,hidden:()=>true},note:{type:ControlType.Enum,options:[\"IMPORTANT\"],displaySegmentedControl:true,description:\"*Do not delete this component.*\\n\\nThis component is managed by the [Frameship plugin](https://framer.link/L3dGFQc)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Frameship\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","const resolveFetch=t=>{let e;e=t||(\"undefined\"===typeof fetch?(...t)=>import(\"@supabase/node-fetch\").then((({default:e})=>e(...t))):fetch);return(...t)=>e(...t)};class FunctionsError extends Error{constructor(t,e=\"FunctionsError\",n){super(t);this.name=e;this.context=n}}class FunctionsFetchError extends FunctionsError{constructor(t){super(\"Failed to send a request to the Edge Function\",\"FunctionsFetchError\",t)}}class FunctionsRelayError extends FunctionsError{constructor(t){super(\"Relay Error invoking the Edge Function\",\"FunctionsRelayError\",t)}}class FunctionsHttpError extends FunctionsError{constructor(t){super(\"Edge Function returned a non-2xx status code\",\"FunctionsHttpError\",t)}}var t=(void 0,function(t,e,n,r){function adopt(t){return t instanceof n?t:new n((function(e){e(t)}))}return new(n||(n=Promise))((function(n,o){function fulfilled(t){try{step(r.next(t))}catch(t){o(t)}}function rejected(t){try{step(r.throw(t))}catch(t){o(t)}}function step(t){t.done?n(t.value):adopt(t.value).then(fulfilled,rejected)}step((r=r.apply(t,e||[])).next())}))});class FunctionsClient{constructor(t,{headers:e={},customFetch:n}={}){this.url=t;this.headers=e;this.fetch=resolveFetch(n)}\n/**\n     * Updates the authorization header\n     * @param token - the new jwt token sent in the authorisation header\n     */setAuth(t){this.headers.Authorization=`Bearer ${t}`}\n/**\n     * Invokes a function\n     * @param functionName - The name of the Function to invoke.\n     * @param options - Options for invoking the Function.\n     */invoke(e,n={}){var r;return t(this,void 0,void 0,(function*(){try{const{headers:t,method:o,body:s}=n;let i={};let c;if(s&&(t&&!Object.prototype.hasOwnProperty.call(t,\"Content-Type\")||!t))if(\"undefined\"!==typeof Blob&&s instanceof Blob||s instanceof ArrayBuffer){i[\"Content-Type\"]=\"application/octet-stream\";c=s}else if(\"string\"===typeof s){i[\"Content-Type\"]=\"text/plain\";c=s}else if(\"undefined\"!==typeof FormData&&s instanceof FormData)c=s;else{i[\"Content-Type\"]=\"application/json\";c=JSON.stringify(s)}const a=yield this.fetch(`${this.url}/${e}`,{method:o||\"POST\",headers:Object.assign(Object.assign(Object.assign({},i),this.headers),t),body:c}).catch((t=>{throw new FunctionsFetchError(t)}));const u=a.headers.get(\"x-relay-error\");if(u&&\"true\"===u)throw new FunctionsRelayError(a);if(!a.ok)throw new FunctionsHttpError(a);let l=(null!==(r=a.headers.get(\"Content-Type\"))&&void 0!==r?r:\"text/plain\").split(\";\")[0].trim();let d;d=\"application/json\"===l?yield a.json():\"application/octet-stream\"===l?yield a.blob():\"multipart/form-data\"===l?yield a.formData():yield a.text();return{data:d,error:null}}catch(t){return{data:null,error:t}}}))}}export{FunctionsClient,FunctionsError,FunctionsFetchError,FunctionsHttpError,FunctionsRelayError};\n\n//# sourceMappingURL=index.js.map","var e=\"undefined\"!==typeof globalThis?globalThis:\"undefined\"!==typeof self?self:global;var n={};var getGlobal=function(){if(\"undefined\"!==typeof self)return self;if(\"undefined\"!==typeof window)return window;if(\"undefined\"!==typeof e)return e;throw new Error(\"unable to locate global object\")};var f=getGlobal();n=n=f.fetch;f.fetch&&(n.default=f.fetch.bind(f));n.Headers=f.Headers;n.Request=f.Request;n.Response=f.Response;var t=n;const o=n.Headers,s=n.Request,r=n.Response;export{o as Headers,s as Request,r as Response,t as default};\n\n//# sourceMappingURL=browser.js.map","import e from\"@supabase/node-fetch\";class PostgrestBuilder{constructor(s){this.shouldThrowOnError=false;this.method=s.method;this.url=s.url;this.headers=s.headers;this.schema=s.schema;this.body=s.body;this.shouldThrowOnError=s.shouldThrowOnError;this.signal=s.signal;this.isMaybeSingle=s.isMaybeSingle;s.fetch?this.fetch=s.fetch:\"undefined\"===typeof fetch?this.fetch=e:this.fetch=fetch}throwOnError(){this.shouldThrowOnError=true;return this}then(e,s){void 0===this.schema||([\"GET\",\"HEAD\"].includes(this.method)?this.headers[\"Accept-Profile\"]=this.schema:this.headers[\"Content-Profile\"]=this.schema);\"GET\"!==this.method&&\"HEAD\"!==this.method&&(this.headers[\"Content-Type\"]=\"application/json\");const t=this.fetch;let r=t(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then((async e=>{var s,t,r;let a=null;let i=null;let h=null;let n=e.status;let l=e.statusText;if(e.ok){if(\"HEAD\"!==this.method){const s=await e.text();\"\"===s||(i=\"text/csv\"===this.headers.Accept||this.headers.Accept&&this.headers.Accept.includes(\"application/vnd.pgrst.plan+text\")?s:JSON.parse(s))}const r=null===(s=this.headers.Prefer)||void 0===s?void 0:s.match(/count=(exact|planned|estimated)/);const o=null===(t=e.headers.get(\"content-range\"))||void 0===t?void 0:t.split(\"/\");r&&o&&o.length>1&&(h=parseInt(o[1]));if(this.isMaybeSingle&&\"GET\"===this.method&&Array.isArray(i))if(i.length>1){a={code:\"PGRST116\",details:`Results contain ${i.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:\"JSON object requested, multiple (or no) rows returned\"};i=null;h=null;n=406;l=\"Not Acceptable\"}else i=1===i.length?i[0]:null}else{const s=await e.text();try{a=JSON.parse(s);if(Array.isArray(a)&&404===e.status){i=[];a=null;n=200;l=\"OK\"}}catch(t){if(404===e.status&&\"\"===s){n=204;l=\"No Content\"}else a={message:s}}if(a&&this.isMaybeSingle&&(null===(r=null===a||void 0===a?void 0:a.details)||void 0===r?void 0:r.includes(\"Results contain 0 rows\"))){a=null;n=200;l=\"OK\"}if(a&&this.shouldThrowOnError)throw a}const o={error:a,data:i,count:h,status:n,statusText:l};return o}));this.shouldThrowOnError||(r=r.catch((e=>{var s,t,r;return{error:{message:`${null!==(s=null===e||void 0===e?void 0:e.name)&&void 0!==s?s:\"FetchError\"}: ${null===e||void 0===e?void 0:e.message}`,details:`${null!==(t=null===e||void 0===e?void 0:e.stack)&&void 0!==t?t:\"\"}`,hint:\"\",code:`${null!==(r=null===e||void 0===e?void 0:e.code)&&void 0!==r?r:\"\"}`},data:null,count:null,status:0,statusText:\"\"}})));return r.then(e,s)}}class PostgrestTransformBuilder extends PostgrestBuilder{\n/**\n     * Perform a SELECT on the query result.\n     *\n     * By default, `.insert()`, `.update()`, `.upsert()`, and `.delete()` do not\n     * return modified rows. By calling this method, modified rows are returned in\n     * `data`.\n     *\n     * @param columns - The columns to retrieve, separated by commas\n     */\nselect(e){let s=false;const t=(null!==e&&void 0!==e?e:\"*\").split(\"\").map((e=>{if(/\\s/.test(e)&&!s)return\"\";'\"'===e&&(s=!s);return e})).join(\"\");this.url.searchParams.set(\"select\",t);this.headers.Prefer&&(this.headers.Prefer+=\",\");this.headers.Prefer+=\"return=representation\";return this}\n/**\n     * Order the query result by `column`.\n     *\n     * You can call this method multiple times to order by multiple columns.\n     *\n     * You can order foreign tables, but it doesn't affect the ordering of the\n     * current table.\n     *\n     * @param column - The column to order by\n     * @param options - Named parameters\n     * @param options.ascending - If `true`, the result will be in ascending order\n     * @param options.nullsFirst - If `true`, `null`s appear first. If `false`,\n     * `null`s appear last.\n     * @param options.foreignTable - Set this to order a foreign table by foreign\n     * columns\n     */order(e,{ascending:s=true,nullsFirst:t,foreignTable:r}={}){const a=r?`${r}.order`:\"order\";const i=this.url.searchParams.get(a);this.url.searchParams.set(a,`${i?`${i},`:\"\"}${e}.${s?\"asc\":\"desc\"}${void 0===t?\"\":t?\".nullsfirst\":\".nullslast\"}`);return this}\n/**\n     * Limit the query result by `count`.\n     *\n     * @param count - The maximum number of rows to return\n     * @param options - Named parameters\n     * @param options.foreignTable - Set this to limit rows of foreign tables\n     * instead of the current table\n     */limit(e,{foreignTable:s}={}){const t=\"undefined\"===typeof s?\"limit\":`${s}.limit`;this.url.searchParams.set(t,`${e}`);return this}\n/**\n     * Limit the query result by starting at an offset (`from`) and ending at the offset (`from + to`).\n     * Only records within this range are returned.\n     * This respects the query order and if there is no order clause the range could behave unexpectedly.\n     * The `from` and `to` values are 0-based and inclusive: `range(1, 3)` will include the second, third\n     * and fourth rows of the query.\n     *\n     * @param from - The starting index from which to limit the result\n     * @param to - The last index to which to limit the result\n     * @param options - Named parameters\n     * @param options.foreignTable - Set this to limit rows of foreign tables\n     * instead of the current table\n     */range(e,s,{foreignTable:t}={}){const r=\"undefined\"===typeof t?\"offset\":`${t}.offset`;const a=\"undefined\"===typeof t?\"limit\":`${t}.limit`;this.url.searchParams.set(r,`${e}`);this.url.searchParams.set(a,\"\"+(s-e+1));return this}\n/**\n     * Set the AbortSignal for the fetch request.\n     *\n     * @param signal - The AbortSignal to use for the fetch request\n     */abortSignal(e){this.signal=e;return this}single(){this.headers.Accept=\"application/vnd.pgrst.object+json\";return this}maybeSingle(){\"GET\"===this.method?this.headers.Accept=\"application/json\":this.headers.Accept=\"application/vnd.pgrst.object+json\";this.isMaybeSingle=true;return this}csv(){this.headers.Accept=\"text/csv\";return this}geojson(){this.headers.Accept=\"application/geo+json\";return this}\n/**\n     * Return `data` as the EXPLAIN plan for the query.\n     *\n     * @param options - Named parameters\n     *\n     * @param options.analyze - If `true`, the query will be executed and the\n     * actual run time will be returned\n     *\n     * @param options.verbose - If `true`, the query identifier will be returned\n     * and `data` will include the output columns of the query\n     *\n     * @param options.settings - If `true`, include information on configuration\n     * parameters that affect query planning\n     *\n     * @param options.buffers - If `true`, include information on buffer usage\n     *\n     * @param options.wal - If `true`, include information on WAL record generation\n     *\n     * @param options.format - The format of the output, can be `\"text\"` (default)\n     * or `\"json\"`\n     */explain({analyze:e=false,verbose:s=false,settings:t=false,buffers:r=false,wal:a=false,format:i=\"text\"}={}){const h=[e?\"analyze\":null,s?\"verbose\":null,t?\"settings\":null,r?\"buffers\":null,a?\"wal\":null].filter(Boolean).join(\"|\");const n=this.headers.Accept;this.headers.Accept=`application/vnd.pgrst.plan+${i}; for=\"${n}\"; options=${h};`;return\"json\"===i,this}rollback(){var e;(null!==(e=this.headers.Prefer)&&void 0!==e?e:\"\").trim().length>0?this.headers.Prefer+=\",tx=rollback\":this.headers.Prefer=\"tx=rollback\";return this}\n/**\n     * Override the type of the returned `data`.\n     *\n     * @typeParam NewResult - The new result type to override with\n     */returns(){return this}}class PostgrestFilterBuilder extends PostgrestTransformBuilder{\n/**\n     * Match only rows where `column` is equal to `value`.\n     *\n     * To check if the value of `column` is NULL, you should use `.is()` instead.\n     *\n     * @param column - The column to filter on\n     * @param value - The value to filter with\n     */\neq(e,s){this.url.searchParams.append(e,`eq.${s}`);return this}\n/**\n     * Match only rows where `column` is not equal to `value`.\n     *\n     * @param column - The column to filter on\n     * @param value - The value to filter with\n     */neq(e,s){this.url.searchParams.append(e,`neq.${s}`);return this}\n/**\n     * Match only rows where `column` is greater than `value`.\n     *\n     * @param column - The column to filter on\n     * @param value - The value to filter with\n     */gt(e,s){this.url.searchParams.append(e,`gt.${s}`);return this}\n/**\n     * Match only rows where `column` is greater than or equal to `value`.\n     *\n     * @param column - The column to filter on\n     * @param value - The value to filter with\n     */gte(e,s){this.url.searchParams.append(e,`gte.${s}`);return this}\n/**\n     * Match only rows where `column` is less than `value`.\n     *\n     * @param column - The column to filter on\n     * @param value - The value to filter with\n     */lt(e,s){this.url.searchParams.append(e,`lt.${s}`);return this}\n/**\n     * Match only rows where `column` is less than or equal to `value`.\n     *\n     * @param column - The column to filter on\n     * @param value - The value to filter with\n     */lte(e,s){this.url.searchParams.append(e,`lte.${s}`);return this}\n/**\n     * Match only rows where `column` matches `pattern` case-sensitively.\n     *\n     * @param column - The column to filter on\n     * @param pattern - The pattern to match with\n     */like(e,s){this.url.searchParams.append(e,`like.${s}`);return this}\n/**\n     * Match only rows where `column` matches all of `patterns` case-sensitively.\n     *\n     * @param column - The column to filter on\n     * @param patterns - The patterns to match with\n     */likeAllOf(e,s){this.url.searchParams.append(e,`like(all).{${s.join(\",\")}}`);return this}\n/**\n     * Match only rows where `column` matches any of `patterns` case-sensitively.\n     *\n     * @param column - The column to filter on\n     * @param patterns - The patterns to match with\n     */likeAnyOf(e,s){this.url.searchParams.append(e,`like(any).{${s.join(\",\")}}`);return this}\n/**\n     * Match only rows where `column` matches `pattern` case-insensitively.\n     *\n     * @param column - The column to filter on\n     * @param pattern - The pattern to match with\n     */ilike(e,s){this.url.searchParams.append(e,`ilike.${s}`);return this}\n/**\n     * Match only rows where `column` matches all of `patterns` case-insensitively.\n     *\n     * @param column - The column to filter on\n     * @param patterns - The patterns to match with\n     */ilikeAllOf(e,s){this.url.searchParams.append(e,`ilike(all).{${s.join(\",\")}}`);return this}\n/**\n     * Match only rows where `column` matches any of `patterns` case-insensitively.\n     *\n     * @param column - The column to filter on\n     * @param patterns - The patterns to match with\n     */ilikeAnyOf(e,s){this.url.searchParams.append(e,`ilike(any).{${s.join(\",\")}}`);return this}\n/**\n     * Match only rows where `column` IS `value`.\n     *\n     * For non-boolean columns, this is only relevant for checking if the value of\n     * `column` is NULL by setting `value` to `null`.\n     *\n     * For boolean columns, you can also set `value` to `true` or `false` and it\n     * will behave the same way as `.eq()`.\n     *\n     * @param column - The column to filter on\n     * @param value - The value to filter with\n     */is(e,s){this.url.searchParams.append(e,`is.${s}`);return this}\n/**\n     * Match only rows where `column` is included in the `values` array.\n     *\n     * @param column - The column to filter on\n     * @param values - The values array to filter with\n     */in(e,s){const t=s.map((e=>\"string\"===typeof e&&new RegExp(\"[,()]\").test(e)?`\"${e}\"`:`${e}`)).join(\",\");this.url.searchParams.append(e,`in.(${t})`);return this}\n/**\n     * Only relevant for jsonb, array, and range columns. Match only rows where\n     * `column` contains every element appearing in `value`.\n     *\n     * @param column - The jsonb, array, or range column to filter on\n     * @param value - The jsonb, array, or range value to filter with\n     */contains(e,s){\"string\"===typeof s?this.url.searchParams.append(e,`cs.${s}`):Array.isArray(s)?this.url.searchParams.append(e,`cs.{${s.join(\",\")}}`):this.url.searchParams.append(e,`cs.${JSON.stringify(s)}`);return this}\n/**\n     * Only relevant for jsonb, array, and range columns. Match only rows where\n     * every element appearing in `column` is contained by `value`.\n     *\n     * @param column - The jsonb, array, or range column to filter on\n     * @param value - The jsonb, array, or range value to filter with\n     */containedBy(e,s){\"string\"===typeof s?this.url.searchParams.append(e,`cd.${s}`):Array.isArray(s)?this.url.searchParams.append(e,`cd.{${s.join(\",\")}}`):this.url.searchParams.append(e,`cd.${JSON.stringify(s)}`);return this}\n/**\n     * Only relevant for range columns. Match only rows where every element in\n     * `column` is greater than any element in `range`.\n     *\n     * @param column - The range column to filter on\n     * @param range - The range to filter with\n     */rangeGt(e,s){this.url.searchParams.append(e,`sr.${s}`);return this}\n/**\n     * Only relevant for range columns. Match only rows where every element in\n     * `column` is either contained in `range` or greater than any element in\n     * `range`.\n     *\n     * @param column - The range column to filter on\n     * @param range - The range to filter with\n     */rangeGte(e,s){this.url.searchParams.append(e,`nxl.${s}`);return this}\n/**\n     * Only relevant for range columns. Match only rows where every element in\n     * `column` is less than any element in `range`.\n     *\n     * @param column - The range column to filter on\n     * @param range - The range to filter with\n     */rangeLt(e,s){this.url.searchParams.append(e,`sl.${s}`);return this}\n/**\n     * Only relevant for range columns. Match only rows where every element in\n     * `column` is either contained in `range` or less than any element in\n     * `range`.\n     *\n     * @param column - The range column to filter on\n     * @param range - The range to filter with\n     */rangeLte(e,s){this.url.searchParams.append(e,`nxr.${s}`);return this}\n/**\n     * Only relevant for range columns. Match only rows where `column` is\n     * mutually exclusive to `range` and there can be no element between the two\n     * ranges.\n     *\n     * @param column - The range column to filter on\n     * @param range - The range to filter with\n     */rangeAdjacent(e,s){this.url.searchParams.append(e,`adj.${s}`);return this}\n/**\n     * Only relevant for array and range columns. Match only rows where\n     * `column` and `value` have an element in common.\n     *\n     * @param column - The array or range column to filter on\n     * @param value - The array or range value to filter with\n     */overlaps(e,s){\"string\"===typeof s?this.url.searchParams.append(e,`ov.${s}`):this.url.searchParams.append(e,`ov.{${s.join(\",\")}}`);return this}\n/**\n     * Only relevant for text and tsvector columns. Match only rows where\n     * `column` matches the query string in `query`.\n     *\n     * @param column - The text or tsvector column to filter on\n     * @param query - The query text to match with\n     * @param options - Named parameters\n     * @param options.config - The text search configuration to use\n     * @param options.type - Change how the `query` text is interpreted\n     */textSearch(e,s,{config:t,type:r}={}){let a=\"\";\"plain\"===r?a=\"pl\":\"phrase\"===r?a=\"ph\":\"websearch\"===r&&(a=\"w\");const i=void 0===t?\"\":`(${t})`;this.url.searchParams.append(e,`${a}fts${i}.${s}`);return this}\n/**\n     * Match only rows where each column in `query` keys is equal to its\n     * associated value. Shorthand for multiple `.eq()`s.\n     *\n     * @param query - The object to filter with, with column names as keys mapped\n     * to their filter values\n     */match(e){Object.entries(e).forEach((([e,s])=>{this.url.searchParams.append(e,`eq.${s}`)}));return this}\n/**\n     * Match only rows which doesn't satisfy the filter.\n     *\n     * Unlike most filters, `opearator` and `value` are used as-is and need to\n     * follow [PostgREST\n     * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n     * to make sure they are properly sanitized.\n     *\n     * @param column - The column to filter on\n     * @param operator - The operator to be negated to filter with, following\n     * PostgREST syntax\n     * @param value - The value to filter with, following PostgREST syntax\n     */not(e,s,t){this.url.searchParams.append(e,`not.${s}.${t}`);return this}\n/**\n     * Match only rows which satisfy at least one of the filters.\n     *\n     * Unlike most filters, `filters` is used as-is and needs to follow [PostgREST\n     * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n     * to make sure it's properly sanitized.\n     *\n     * It's currently not possible to do an `.or()` filter across multiple tables.\n     *\n     * @param filters - The filters to use, following PostgREST syntax\n     * @param foreignTable - Set this to filter on foreign tables instead of the\n     * current table\n     */or(e,{foreignTable:s}={}){const t=s?`${s}.or`:\"or\";this.url.searchParams.append(t,`(${e})`);return this}\n/**\n     * Match only rows which satisfy the filter. This is an escape hatch - you\n     * should use the specific filter methods wherever possible.\n     *\n     * Unlike most filters, `opearator` and `value` are used as-is and need to\n     * follow [PostgREST\n     * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n     * to make sure they are properly sanitized.\n     *\n     * @param column - The column to filter on\n     * @param operator - The operator to filter with, following PostgREST syntax\n     * @param value - The value to filter with, following PostgREST syntax\n     */filter(e,s,t){this.url.searchParams.append(e,`${s}.${t}`);return this}}class PostgrestQueryBuilder{constructor(e,{headers:s={},schema:t,fetch:r}){this.url=e;this.headers=s;this.schema=t;this.fetch=r}\n/**\n     * Perform a SELECT query on the table or view.\n     *\n     * @param columns - The columns to retrieve, separated by commas. Columns can be renamed when returned with `customName:columnName`\n     *\n     * @param options - Named parameters\n     *\n     * @param options.head - When set to `true`, `data` will not be returned.\n     * Useful if you only need the count.\n     *\n     * @param options.count - Count algorithm to use to count rows in the table or view.\n     *\n     * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n     * hood.\n     *\n     * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n     * statistics under the hood.\n     *\n     * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n     * numbers.\n     */select(e,{head:s=false,count:t}={}){const r=s?\"HEAD\":\"GET\";let a=false;const i=(null!==e&&void 0!==e?e:\"*\").split(\"\").map((e=>{if(/\\s/.test(e)&&!a)return\"\";'\"'===e&&(a=!a);return e})).join(\"\");this.url.searchParams.set(\"select\",i);t&&(this.headers.Prefer=`count=${t}`);return new PostgrestFilterBuilder({method:r,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch,allowEmpty:false})}\n/**\n     * Perform an INSERT into the table or view.\n     *\n     * By default, inserted rows are not returned. To return it, chain the call\n     * with `.select()`.\n     *\n     * @param values - The values to insert. Pass an object to insert a single row\n     * or an array to insert multiple rows.\n     *\n     * @param options - Named parameters\n     *\n     * @param options.count - Count algorithm to use to count inserted rows.\n     *\n     * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n     * hood.\n     *\n     * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n     * statistics under the hood.\n     *\n     * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n     * numbers.\n     *\n     * @param options.defaultToNull - Make missing fields default to `null`.\n     * Otherwise, use the default value for the column. Only applies for bulk\n     * inserts.\n     */insert(e,{count:s,defaultToNull:t=true}={}){const r=\"POST\";const a=[];this.headers.Prefer&&a.push(this.headers.Prefer);s&&a.push(`count=${s}`);t||a.push(\"missing=default\");this.headers.Prefer=a.join(\",\");if(Array.isArray(e)){const s=e.reduce(((e,s)=>e.concat(Object.keys(s))),[]);if(s.length>0){const e=[...new Set(s)].map((e=>`\"${e}\"`));this.url.searchParams.set(\"columns\",e.join(\",\"))}}return new PostgrestFilterBuilder({method:r,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch,allowEmpty:false})}\n/**\n     * Perform an UPSERT on the table or view. Depending on the column(s) passed\n     * to `onConflict`, `.upsert()` allows you to perform the equivalent of\n     * `.insert()` if a row with the corresponding `onConflict` columns doesn't\n     * exist, or if it does exist, perform an alternative action depending on\n     * `ignoreDuplicates`.\n     *\n     * By default, upserted rows are not returned. To return it, chain the call\n     * with `.select()`.\n     *\n     * @param values - The values to upsert with. Pass an object to upsert a\n     * single row or an array to upsert multiple rows.\n     *\n     * @param options - Named parameters\n     *\n     * @param options.onConflict - Comma-separated UNIQUE column(s) to specify how\n     * duplicate rows are determined. Two rows are duplicates if all the\n     * `onConflict` columns are equal.\n     *\n     * @param options.ignoreDuplicates - If `true`, duplicate rows are ignored. If\n     * `false`, duplicate rows are merged with existing rows.\n     *\n     * @param options.count - Count algorithm to use to count upserted rows.\n     *\n     * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n     * hood.\n     *\n     * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n     * statistics under the hood.\n     *\n     * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n     * numbers.\n     *\n     * @param options.defaultToNull - Make missing fields default to `null`.\n     * Otherwise, use the default value for the column. This only applies when\n     * inserting new rows, not when merging with existing rows under\n     * `ignoreDuplicates: false`. This also only applies when doing bulk upserts.\n     */upsert(e,{onConflict:s,ignoreDuplicates:t=false,count:r,defaultToNull:a=true}={}){const i=\"POST\";const h=[`resolution=${t?\"ignore\":\"merge\"}-duplicates`];void 0!==s&&this.url.searchParams.set(\"on_conflict\",s);this.headers.Prefer&&h.push(this.headers.Prefer);r&&h.push(`count=${r}`);a||h.push(\"missing=default\");this.headers.Prefer=h.join(\",\");if(Array.isArray(e)){const s=e.reduce(((e,s)=>e.concat(Object.keys(s))),[]);if(s.length>0){const e=[...new Set(s)].map((e=>`\"${e}\"`));this.url.searchParams.set(\"columns\",e.join(\",\"))}}return new PostgrestFilterBuilder({method:i,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch,allowEmpty:false})}\n/**\n     * Perform an UPDATE on the table or view.\n     *\n     * By default, updated rows are not returned. To return it, chain the call\n     * with `.select()` after filters.\n     *\n     * @param values - The values to update with\n     *\n     * @param options - Named parameters\n     *\n     * @param options.count - Count algorithm to use to count updated rows.\n     *\n     * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n     * hood.\n     *\n     * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n     * statistics under the hood.\n     *\n     * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n     * numbers.\n     */update(e,{count:s}={}){const t=\"PATCH\";const r=[];this.headers.Prefer&&r.push(this.headers.Prefer);s&&r.push(`count=${s}`);this.headers.Prefer=r.join(\",\");return new PostgrestFilterBuilder({method:t,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch,allowEmpty:false})}\n/**\n     * Perform a DELETE on the table or view.\n     *\n     * By default, deleted rows are not returned. To return it, chain the call\n     * with `.select()` after filters.\n     *\n     * @param options - Named parameters\n     *\n     * @param options.count - Count algorithm to use to count deleted rows.\n     *\n     * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n     * hood.\n     *\n     * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n     * statistics under the hood.\n     *\n     * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n     * numbers.\n     */delete({count:e}={}){const s=\"DELETE\";const t=[];e&&t.push(`count=${e}`);this.headers.Prefer&&t.unshift(this.headers.Prefer);this.headers.Prefer=t.join(\",\");return new PostgrestFilterBuilder({method:s,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch,allowEmpty:false})}}const s=\"1.8.4\";const t={\"X-Client-Info\":`postgrest-js/${s}`};\n/**\n * PostgREST client.\n *\n * @typeParam Database - Types for the schema from the [type\n * generator](https://supabase.com/docs/reference/javascript/next/typescript-support)\n *\n * @typeParam SchemaName - Postgres schema to switch to. Must be a string\n * literal, the same one passed to the constructor. If the schema is not\n * `\"public\"`, this must be supplied manually.\n */class PostgrestClient{\n/**\n     * Creates a PostgREST client.\n     *\n     * @param url - URL of the PostgREST endpoint\n     * @param options - Named parameters\n     * @param options.headers - Custom headers\n     * @param options.schema - Postgres schema to switch to\n     * @param options.fetch - Custom fetch\n     */\nconstructor(e,{headers:s={},schema:r,fetch:a}={}){this.url=e;this.headers=Object.assign(Object.assign({},t),s);this.schemaName=r;this.fetch=a}\n/**\n     * Perform a query on a table or a view.\n     *\n     * @param relation - The table or view name to query\n     */from(e){const s=new URL(`${this.url}/${e}`);return new PostgrestQueryBuilder(s,{headers:Object.assign({},this.headers),schema:this.schemaName,fetch:this.fetch})}\n/**\n     * Select a schema to query or perform an function (rpc) call.\n     *\n     * The schema needs to be on the list of exposed schemas inside Supabase.\n     *\n     * @param schema - The schema to query\n     */schema(e){return new PostgrestClient(this.url,{headers:this.headers,schema:e,fetch:this.fetch})}\n/**\n     * Perform a function call.\n     *\n     * @param fn - The function name to call\n     * @param args - The arguments to pass to the function call\n     * @param options - Named parameters\n     * @param options.head - When set to `true`, `data` will not be returned.\n     * Useful if you only need the count.\n     * @param options.count - Count algorithm to use to count rows returned by the\n     * function. Only applicable for [set-returning\n     * functions](https://www.postgresql.org/docs/current/functions-srf.html).\n     *\n     * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n     * hood.\n     *\n     * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n     * statistics under the hood.\n     *\n     * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n     * numbers.\n     */rpc(e,s={},{head:t=false,count:r}={}){let a;const i=new URL(`${this.url}/rpc/${e}`);let h;if(t){a=\"HEAD\";Object.entries(s).forEach((([e,s])=>{i.searchParams.append(e,`${s}`)}))}else{a=\"POST\";h=s}const n=Object.assign({},this.headers);r&&(n.Prefer=`count=${r}`);return new PostgrestFilterBuilder({method:a,url:i,headers:n,schema:this.schemaName,body:h,fetch:this.fetch,allowEmpty:false})}}export{PostgrestBuilder,PostgrestClient,PostgrestFilterBuilder,PostgrestQueryBuilder,PostgrestTransformBuilder};\n\n//# sourceMappingURL=index.js.map","var e={},t=false;var o=\"undefined\"!==typeof globalThis?globalThis:\"undefined\"!==typeof self?self:global;function dew(){if(t)return e;t=true;var naiveFallback=function(){if(\"object\"===typeof self&&self)return self;if(\"object\"===typeof window&&window)return window;throw new Error(\"Unable to resolve global `this`\")};e=function(){if(this||o)return this||o;if(\"object\"===typeof globalThis&&globalThis)return globalThis;try{Object.defineProperty(Object.prototype,\"__global__\",{get:function(){return this||o},configurable:true})}catch(e){return naiveFallback()}try{return __global__||naiveFallback()}finally{delete Object.prototype.__global__}}();return e}export{dew as d};\n\n//# sourceMappingURL=d2db80e9.js.map","import{d as a}from\"./_/d2db80e9.js\";var d=a();export{d as default};\n","var e={name:\"websocket\",description:\"Websocket Client & Server Library implementing the WebSocket protocol as specified in RFC 6455.\",keywords:[\"websocket\",\"websockets\",\"socket\",\"networking\",\"comet\",\"push\",\"RFC-6455\",\"realtime\",\"server\",\"client\"],author:\"Brian McKelvey <theturtle32@gmail.com> (https://github.com/theturtle32)\",contributors:[\"Iñaki Baz Castillo <ibc@aliax.net> (http://dev.sipdoc.net)\"],version:\"1.0.34\",repository:{type:\"git\",url:\"https://github.com/theturtle32/WebSocket-Node.git\"},homepage:\"https://github.com/theturtle32/WebSocket-Node\",engines:{node:\">=4.0.0\"},dependencies:{bufferutil:\"^4.0.1\",debug:\"^2.2.0\",\"es5-ext\":\"^0.10.50\",\"typedarray-to-buffer\":\"^3.1.5\",\"utf-8-validate\":\"^5.0.2\",yaeti:\"^0.0.6\"},devDependencies:{\"buffer-equal\":\"^1.0.0\",gulp:\"^4.0.2\",\"gulp-jshint\":\"^2.0.4\",\"jshint-stylish\":\"^2.2.1\",jshint:\"^2.0.0\",tape:\"^4.9.1\"},config:{verbose:false},scripts:{test:\"tape test/unit/*.js\",gulp:\"gulp\"},main:\"index\",directories:{lib:\"./lib\"},browser:\"lib/browser.js\",license:\"Apache-2.0\"};var t={};t=e.version;var i=t;export{i as _};\n\n//# sourceMappingURL=3c0ba9a6.js.map","import e from\"es5-ext/global\";import{_ as o}from\"../_/3c0ba9a6.js\";var t={};var r;if(\"object\"===typeof globalThis)r=globalThis;else try{r=e}catch(e){}finally{r||\"undefined\"===typeof window||(r=window);if(!r)throw new Error(\"Could not determine global this\")}var n=r.WebSocket||r.MozWebSocket;var c=o;function W3CWebSocket(e,o){var t;t=o?new n(e,o):new n(e);return t}n&&[\"CONNECTING\",\"OPEN\",\"CLOSING\",\"CLOSED\"].forEach((function(e){Object.defineProperty(W3CWebSocket,e,{get:function(){return n[e]}})}));t={w3cwebsocket:n?W3CWebSocket:null,version:c};var a=t;const i=t.w3cwebsocket;export default a;export{i as w3cwebsocket};\n\n//# sourceMappingURL=browser.js.map","import{w3cwebsocket as e}from\"websocket\";const t=\"2.8.0\";const s={\"X-Client-Info\":`realtime-js/${t}`};const i=\"1.0.0\";const n=1e4;const o=1e3;var r;(function(e){e[e.connecting=0]=\"connecting\";e[e.open=1]=\"open\";e[e.closing=2]=\"closing\";e[e.closed=3]=\"closed\"})(r||(r={}));var a;(function(e){e.closed=\"closed\";e.errored=\"errored\";e.joined=\"joined\";e.joining=\"joining\";e.leaving=\"leaving\"})(a||(a={}));var c;(function(e){e.close=\"phx_close\";e.error=\"phx_error\";e.join=\"phx_join\";e.reply=\"phx_reply\";e.leave=\"phx_leave\";e.access_token=\"access_token\"})(c||(c={}));var h;(function(e){e.websocket=\"websocket\"})(h||(h={}));var l;(function(e){e.Connecting=\"connecting\";e.Open=\"open\";e.Closing=\"closing\";e.Closed=\"closed\"})(l||(l={}));class Timer{constructor(e,t){this.callback=e;this.timerCalc=t;this.timer=void 0;this.tries=0;this.callback=e;this.timerCalc=t}reset(){this.tries=0;clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer);this.timer=setTimeout((()=>{this.tries=this.tries+1;this.callback()}),this.timerCalc(this.tries+1))}}class Serializer{constructor(){this.HEADER_LENGTH=1}decode(e,t){return e.constructor===ArrayBuffer?t(this._binaryDecode(e)):t(\"string\"===typeof e?JSON.parse(e):{})}_binaryDecode(e){const t=new DataView(e);const s=new TextDecoder;return this._decodeBroadcast(e,t,s)}_decodeBroadcast(e,t,s){const i=t.getUint8(1);const n=t.getUint8(2);let o=this.HEADER_LENGTH+2;const r=s.decode(e.slice(o,o+i));o+=i;const a=s.decode(e.slice(o,o+n));o+=n;const c=JSON.parse(s.decode(e.slice(o,e.byteLength)));return{ref:null,topic:r,event:a,payload:c}}}class Push{\n/**\n     * Initializes the Push\n     *\n     * @param channel The Channel\n     * @param event The event, for example `\"phx_join\"`\n     * @param payload The payload, for example `{user_id: 123}`\n     * @param timeout The push timeout in milliseconds\n     */\nconstructor(e,t,s={},i=n){this.channel=e;this.event=t;this.payload=s;this.timeout=i;this.sent=false;this.timeoutTimer=void 0;this.ref=\"\";this.receivedResp=null;this.recHooks=[];this.refEvent=null;this.rateLimited=false}resend(e){this.timeout=e;this._cancelRefEvent();this.ref=\"\";this.refEvent=null;this.receivedResp=null;this.sent=false;this.send()}send(){if(this._hasReceived(\"timeout\"))return;this.startTimeout();this.sent=true;const e=this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload,ref:this.ref,join_ref:this.channel._joinRef()});\"rate limited\"===e&&(this.rateLimited=true)}updatePayload(e){this.payload=Object.assign(Object.assign({},this.payload),e)}receive(e,t){var s;this._hasReceived(e)&&t(null===(s=this.receivedResp)||void 0===s?void 0:s.response);this.recHooks.push({status:e,callback:t});return this}startTimeout(){if(this.timeoutTimer)return;this.ref=this.channel.socket._makeRef();this.refEvent=this.channel._replyEventName(this.ref);const callback=e=>{this._cancelRefEvent();this._cancelTimeout();this.receivedResp=e;this._matchReceive(e)};this.channel._on(this.refEvent,{},callback);this.timeoutTimer=setTimeout((()=>{this.trigger(\"timeout\",{})}),this.timeout)}trigger(e,t){this.refEvent&&this.channel._trigger(this.refEvent,{status:e,response:t})}destroy(){this._cancelRefEvent();this._cancelTimeout()}_cancelRefEvent(){this.refEvent&&this.channel._off(this.refEvent,{})}_cancelTimeout(){clearTimeout(this.timeoutTimer);this.timeoutTimer=void 0}_matchReceive({status:e,response:t}){this.recHooks.filter((t=>t.status===e)).forEach((e=>e.callback(t)))}_hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}}var d;(function(e){e.SYNC=\"sync\";e.JOIN=\"join\";e.LEAVE=\"leave\"})(d||(d={}));class RealtimePresence{\n/**\n     * Initializes the Presence.\n     *\n     * @param channel - The RealtimeChannel\n     * @param opts - The options,\n     *        for example `{events: {state: 'state', diff: 'diff'}}`\n     */\nconstructor(e,t){this.channel=e;this.state={};this.pendingDiffs=[];this.joinRef=null;this.caller={onJoin:()=>{},onLeave:()=>{},onSync:()=>{}};const s=(null===t||void 0===t?void 0:t.events)||{state:\"presence_state\",diff:\"presence_diff\"};this.channel._on(s.state,{},(e=>{const{onJoin:t,onLeave:s,onSync:i}=this.caller;this.joinRef=this.channel._joinRef();this.state=RealtimePresence.syncState(this.state,e,t,s);this.pendingDiffs.forEach((e=>{this.state=RealtimePresence.syncDiff(this.state,e,t,s)}));this.pendingDiffs=[];i()}));this.channel._on(s.diff,{},(e=>{const{onJoin:t,onLeave:s,onSync:i}=this.caller;if(this.inPendingSyncState())this.pendingDiffs.push(e);else{this.state=RealtimePresence.syncDiff(this.state,e,t,s);i()}}));this.onJoin(((e,t,s)=>{this.channel._trigger(\"presence\",{event:\"join\",key:e,currentPresences:t,newPresences:s})}));this.onLeave(((e,t,s)=>{this.channel._trigger(\"presence\",{event:\"leave\",key:e,currentPresences:t,leftPresences:s})}));this.onSync((()=>{this.channel._trigger(\"presence\",{event:\"sync\"})}))}static syncState(e,t,s,i){const n=this.cloneDeep(e);const o=this.transformState(t);const r={};const a={};this.map(n,((e,t)=>{o[e]||(a[e]=t)}));this.map(o,((e,t)=>{const s=n[e];if(s){const i=t.map((e=>e.presence_ref));const n=s.map((e=>e.presence_ref));const o=t.filter((e=>n.indexOf(e.presence_ref)<0));const c=s.filter((e=>i.indexOf(e.presence_ref)<0));o.length>0&&(r[e]=o);c.length>0&&(a[e]=c)}else r[e]=t}));return this.syncDiff(n,{joins:r,leaves:a},s,i)}static syncDiff(e,t,s,i){const{joins:n,leaves:o}={joins:this.transformState(t.joins),leaves:this.transformState(t.leaves)};s||(s=()=>{});i||(i=()=>{});this.map(n,((t,i)=>{var n;const o=null!==(n=e[t])&&void 0!==n?n:[];e[t]=this.cloneDeep(i);if(o.length>0){const s=e[t].map((e=>e.presence_ref));const i=o.filter((e=>s.indexOf(e.presence_ref)<0));e[t].unshift(...i)}s(t,o,i)}));this.map(o,((t,s)=>{let n=e[t];if(!n)return;const o=s.map((e=>e.presence_ref));n=n.filter((e=>o.indexOf(e.presence_ref)<0));e[t]=n;i(t,n,s);0===n.length&&delete e[t]}));return e}static map(e,t){return Object.getOwnPropertyNames(e).map((s=>t(s,e[s])))}static transformState(e){e=this.cloneDeep(e);return Object.getOwnPropertyNames(e).reduce(((t,s)=>{const i=e[s];t[s]=\"metas\"in i?i.metas.map((e=>{e.presence_ref=e.phx_ref;delete e.phx_ref;delete e.phx_ref_prev;return e})):i;return t}),{})}static cloneDeep(e){return JSON.parse(JSON.stringify(e))}onJoin(e){this.caller.onJoin=e}onLeave(e){this.caller.onLeave=e}onSync(e){this.caller.onSync=e}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel._joinRef()}}var u;(function(e){e.abstime=\"abstime\";e.bool=\"bool\";e.date=\"date\";e.daterange=\"daterange\";e.float4=\"float4\";e.float8=\"float8\";e.int2=\"int2\";e.int4=\"int4\";e.int4range=\"int4range\";e.int8=\"int8\";e.int8range=\"int8range\";e.json=\"json\";e.jsonb=\"jsonb\";e.money=\"money\";e.numeric=\"numeric\";e.oid=\"oid\";e.reltime=\"reltime\";e.text=\"text\";e.time=\"time\";e.timestamp=\"timestamp\";e.timestamptz=\"timestamptz\";e.timetz=\"timetz\";e.tsrange=\"tsrange\";e.tstzrange=\"tstzrange\"})(u||(u={}));\n/**\n * Takes an array of columns and an object of string values then converts each string value\n * to its mapped type.\n *\n * @param {{name: String, type: String}[]} columns\n * @param {Object} record\n * @param {Object} options The map of various options that can be applied to the mapper\n * @param {Array} options.skipTypes The array of types that should not be converted\n *\n * @example convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\n * //=>{ first_name: 'Paul', age: 33 }\n */const convertChangeData=(e,t,s={})=>{var i;const n=null!==(i=s.skipTypes)&&void 0!==i?i:[];return Object.keys(t).reduce(((s,i)=>{s[i]=convertColumn(i,e,t,n);return s}),{})};\n/**\n * Converts the value of an individual column.\n *\n * @param {String} columnName The column that you want to convert\n * @param {{name: String, type: String}[]} columns All of the columns\n * @param {Object} record The map of string values\n * @param {Array} skipTypes An array of types that should not be converted\n * @return {object} Useless information\n *\n * @example convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\n * //=> 33\n * @example convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\n * //=> \"33\"\n */const convertColumn=(e,t,s,i)=>{const n=t.find((t=>t.name===e));const o=null===n||void 0===n?void 0:n.type;const r=s[e];return o&&!i.includes(o)?convertCell(o,r):noop$1(r)};\n/**\n * If the value of the cell is `null`, returns null.\n * Otherwise converts the string value to the correct type.\n * @param {String} type A postgres column type\n * @param {String} value The cell value\n *\n * @example convertCell('bool', 't')\n * //=> true\n * @example convertCell('int8', '10')\n * //=> 10\n * @example convertCell('_int4', '{1,2,3,4}')\n * //=> [1,2,3,4]\n */const convertCell=(e,t)=>{if(\"_\"===e.charAt(0)){const s=e.slice(1,e.length);return toArray(t,s)}switch(e){case u.bool:return toBoolean(t);case u.float4:case u.float8:case u.int2:case u.int4:case u.int8:case u.numeric:case u.oid:return toNumber(t);case u.json:case u.jsonb:return toJson(t);case u.timestamp:return toTimestampString(t);case u.abstime:case u.date:case u.daterange:case u.int4range:case u.int8range:case u.money:case u.reltime:case u.text:case u.time:case u.timestamptz:case u.timetz:case u.tsrange:case u.tstzrange:return noop$1(t);default:return noop$1(t)}};const noop$1=e=>e;const toBoolean=e=>{switch(e){case\"t\":return true;case\"f\":return false;default:return e}};const toNumber=e=>{if(\"string\"===typeof e){const t=parseFloat(e);if(!Number.isNaN(t))return t}return e};const toJson=e=>{if(\"string\"===typeof e)try{return JSON.parse(e)}catch(t){console.log(`JSON parse error: ${t}`);return e}return e};const toArray=(e,t)=>{if(\"string\"!==typeof e)return e;const s=e.length-1;const i=e[s];const n=e[0];if(\"{\"===n&&\"}\"===i){let i;const n=e.slice(1,s);try{i=JSON.parse(\"[\"+n+\"]\")}catch(e){i=n?n.split(\",\"):[]}return i.map((e=>convertCell(t,e)))}return e};const toTimestampString=e=>\"string\"===typeof e?e.replace(\" \",\"T\"):e;var f;(function(e){e.ALL=\"*\";e.INSERT=\"INSERT\";e.UPDATE=\"UPDATE\";e.DELETE=\"DELETE\"})(f||(f={}));var p;(function(e){e.BROADCAST=\"broadcast\";e.PRESENCE=\"presence\";e.POSTGRES_CHANGES=\"postgres_changes\"})(p||(p={}));var m;(function(e){e.SUBSCRIBED=\"SUBSCRIBED\";e.TIMED_OUT=\"TIMED_OUT\";e.CLOSED=\"CLOSED\";e.CHANNEL_ERROR=\"CHANNEL_ERROR\"})(m||(m={}));class RealtimeChannel{constructor(e,t={config:{}},s){this.topic=e;this.params=t;this.socket=s;this.bindings={};this.state=a.closed;this.joinedOnce=false;this.pushBuffer=[];this.subTopic=e.replace(/^realtime:/i,\"\");this.params.config=Object.assign({broadcast:{ack:false,self:false},presence:{key:\"\"}},t.config);this.timeout=this.socket.timeout;this.joinPush=new Push(this,c.join,this.params,this.timeout);this.rejoinTimer=new Timer((()=>this._rejoinUntilConnected()),this.socket.reconnectAfterMs);this.joinPush.receive(\"ok\",(()=>{this.state=a.joined;this.rejoinTimer.reset();this.pushBuffer.forEach((e=>e.send()));this.pushBuffer=[]}));this._onClose((()=>{this.rejoinTimer.reset();this.socket.log(\"channel\",`close ${this.topic} ${this._joinRef()}`);this.state=a.closed;this.socket._remove(this)}));this._onError((e=>{if(!this._isLeaving()&&!this._isClosed()){this.socket.log(\"channel\",`error ${this.topic}`,e);this.state=a.errored;this.rejoinTimer.scheduleTimeout()}}));this.joinPush.receive(\"timeout\",(()=>{if(this._isJoining()){this.socket.log(\"channel\",`timeout ${this.topic}`,this.joinPush.timeout);this.state=a.errored;this.rejoinTimer.scheduleTimeout()}}));this._on(c.reply,{},((e,t)=>{this._trigger(this._replyEventName(t),e)}));this.presence=new RealtimePresence(this);this.broadcastEndpointURL=this._broadcastEndpointURL()}subscribe(e,t=this.timeout){var s,i;this.socket.isConnected()||this.socket.connect();if(this.joinedOnce)throw\"tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance\";{const{config:{broadcast:n,presence:o}}=this.params;this._onError((t=>e&&e(\"CHANNEL_ERROR\",t)));this._onClose((()=>e&&e(\"CLOSED\")));const r={};const a={broadcast:n,presence:o,postgres_changes:null!==(i=null===(s=this.bindings.postgres_changes)||void 0===s?void 0:s.map((e=>e.filter)))&&void 0!==i?i:[]};this.socket.accessToken&&(r.access_token=this.socket.accessToken);this.updateJoinPayload(Object.assign({config:a},r));this.joinedOnce=true;this._rejoin(t);this.joinPush.receive(\"ok\",(({postgres_changes:t})=>{var s;this.socket.accessToken&&this.socket.setAuth(this.socket.accessToken);if(void 0===t)e&&e(\"SUBSCRIBED\");else{const i=this.bindings.postgres_changes;const n=null!==(s=null===i||void 0===i?void 0:i.length)&&void 0!==s?s:0;const o=[];for(let s=0;s<n;s++){const n=i[s];const{filter:{event:r,schema:a,table:c,filter:h}}=n;const l=t&&t[s];if(!l||l.event!==r||l.schema!==a||l.table!==c||l.filter!==h){this.unsubscribe();e&&e(\"CHANNEL_ERROR\",new Error(\"mismatch between server and client bindings for postgres changes\"));return}o.push(Object.assign(Object.assign({},n),{id:l.id}))}this.bindings.postgres_changes=o;e&&e(\"SUBSCRIBED\")}})).receive(\"error\",(t=>{e&&e(\"CHANNEL_ERROR\",new Error(JSON.stringify(Object.values(t).join(\", \")||\"error\")))})).receive(\"timeout\",(()=>{e&&e(\"TIMED_OUT\")}))}return this}presenceState(){return this.presence.state}async track(e,t={}){return await this.send({type:\"presence\",event:\"track\",payload:e},t.timeout||this.timeout)}async untrack(e={}){return await this.send({type:\"presence\",event:\"untrack\"},e)}on(e,t,s){return this._on(e,t,s)}async send(e,t={}){var s,i;if(this._canPush()||\"broadcast\"!==e.type)return new Promise((s=>{var i,n,o;const r=this._push(e.type,e,t.timeout||this.timeout);r.rateLimited&&s(\"rate limited\");\"broadcast\"!==e.type||(null===(o=null===(n=null===(i=this.params)||void 0===i?void 0:i.config)||void 0===n?void 0:n.broadcast)||void 0===o?void 0:o.ack)||s(\"ok\");r.receive(\"ok\",(()=>s(\"ok\")));r.receive(\"timeout\",(()=>s(\"timed out\")))}));{const{event:n,payload:o}=e;const r={method:\"POST\",headers:{apikey:null!==(s=this.socket.accessToken)&&void 0!==s?s:\"\",\"Content-Type\":\"application/json\"},body:JSON.stringify({messages:[{topic:this.subTopic,event:n,payload:o}]})};try{const e=await this._fetchWithTimeout(this.broadcastEndpointURL,r,null!==(i=t.timeout)&&void 0!==i?i:this.timeout);return e.ok?\"ok\":\"error\"}catch(e){return\"AbortError\"===e.name?\"timed out\":\"error\"}}}updateJoinPayload(e){this.joinPush.updatePayload(e)}unsubscribe(e=this.timeout){this.state=a.leaving;const onClose=()=>{this.socket.log(\"channel\",`leave ${this.topic}`);this._trigger(c.close,\"leave\",this._joinRef())};this.rejoinTimer.reset();this.joinPush.destroy();return new Promise((t=>{const s=new Push(this,c.leave,{},e);s.receive(\"ok\",(()=>{onClose();t(\"ok\")})).receive(\"timeout\",(()=>{onClose();t(\"timed out\")})).receive(\"error\",(()=>{t(\"error\")}));s.send();this._canPush()||s.trigger(\"ok\",{})}))}_broadcastEndpointURL(){let e=this.socket.endPoint;e=e.replace(/^ws/i,\"http\");e=e.replace(/(\\/socket\\/websocket|\\/socket|\\/websocket)\\/?$/i,\"\");return e.replace(/\\/+$/,\"\")+\"/api/broadcast\"}async _fetchWithTimeout(e,t,s){const i=new AbortController;const n=setTimeout((()=>i.abort()),s);const o=await this.socket.fetch(e,Object.assign(Object.assign({},t),{signal:i.signal}));clearTimeout(n);return o}_push(e,t,s=this.timeout){if(!this.joinedOnce)throw`tried to push '${e}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let i=new Push(this,e,t,s);if(this._canPush())i.send();else{i.startTimeout();this.pushBuffer.push(i)}return i}_onMessage(e,t,s){return t}_isMember(e){return this.topic===e}_joinRef(){return this.joinPush.ref}_trigger(e,t,s){var i,n;const o=e.toLocaleLowerCase();const{close:r,error:a,leave:h,join:l}=c;const d=[r,a,h,l];if(s&&d.indexOf(o)>=0&&s!==this._joinRef())return;let u=this._onMessage(o,t,s);if(t&&!u)throw\"channel onMessage callbacks must return the payload, modified or unmodified\";[\"insert\",\"update\",\"delete\"].includes(o)?null===(i=this.bindings.postgres_changes)||void 0===i?void 0:i.filter((e=>{var t,s,i;return\"*\"===(null===(t=e.filter)||void 0===t?void 0:t.event)||(null===(i=null===(s=e.filter)||void 0===s?void 0:s.event)||void 0===i?void 0:i.toLocaleLowerCase())===o})).map((e=>e.callback(u,s))):null===(n=this.bindings[o])||void 0===n?void 0:n.filter((e=>{var s,i,n,r,a,c;if([\"broadcast\",\"presence\",\"postgres_changes\"].includes(o)){if(\"id\"in e){const o=e.id;const r=null===(s=e.filter)||void 0===s?void 0:s.event;return o&&(null===(i=t.ids)||void 0===i?void 0:i.includes(o))&&(\"*\"===r||(null===r||void 0===r?void 0:r.toLocaleLowerCase())===(null===(n=t.data)||void 0===n?void 0:n.type.toLocaleLowerCase()))}{const s=null===(a=null===(r=null===e||void 0===e?void 0:e.filter)||void 0===r?void 0:r.event)||void 0===a?void 0:a.toLocaleLowerCase();return\"*\"===s||s===(null===(c=null===t||void 0===t?void 0:t.event)||void 0===c?void 0:c.toLocaleLowerCase())}}return e.type.toLocaleLowerCase()===o})).map((e=>{if(\"object\"===typeof u&&\"ids\"in u){const e=u.data;const{schema:t,table:s,commit_timestamp:i,type:n,errors:o}=e;const r={schema:t,table:s,commit_timestamp:i,eventType:n,new:{},old:{},errors:o};u=Object.assign(Object.assign({},r),this._getPayloadRecords(e))}e.callback(u,s)}))}_isClosed(){return this.state===a.closed}_isJoined(){return this.state===a.joined}_isJoining(){return this.state===a.joining}_isLeaving(){return this.state===a.leaving}_replyEventName(e){return`chan_reply_${e}`}_on(e,t,s){const i=e.toLocaleLowerCase();const n={type:i,filter:t,callback:s};this.bindings[i]?this.bindings[i].push(n):this.bindings[i]=[n];return this}_off(e,t){const s=e.toLocaleLowerCase();this.bindings[s]=this.bindings[s].filter((e=>{var i;return!((null===(i=e.type)||void 0===i?void 0:i.toLocaleLowerCase())===s&&RealtimeChannel.isEqual(e.filter,t))}));return this}static isEqual(e,t){if(Object.keys(e).length!==Object.keys(t).length)return false;for(const s in e)if(e[s]!==t[s])return false;return true}_rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout();this.socket.isConnected()&&this._rejoin()}_onClose(e){this._on(c.close,{},e)}_onError(e){this._on(c.error,{},(t=>e(t)))}_canPush(){return this.socket.isConnected()&&this._isJoined()}_rejoin(e=this.timeout){if(!this._isLeaving()){this.socket._leaveOpenTopic(this.topic);this.state=a.joining;this.joinPush.resend(e)}}_getPayloadRecords(e){const t={new:{},old:{}};\"INSERT\"!==e.type&&\"UPDATE\"!==e.type||(t.new=convertChangeData(e.columns,e.record));\"UPDATE\"!==e.type&&\"DELETE\"!==e.type||(t.old=convertChangeData(e.columns,e.old_record));return t}}const noop=()=>{};class RealtimeClient{\n/**\n     * Initializes the Socket.\n     *\n     * @param endPoint The string WebSocket endpoint, ie, \"ws://example.com/socket\", \"wss://example.com\", \"/socket\" (inherited host & protocol)\n     * @param options.transport The Websocket Transport, for example WebSocket.\n     * @param options.timeout The default timeout in milliseconds to trigger push timeouts.\n     * @param options.params The optional params to pass when connecting.\n     * @param options.headers The optional headers to pass when connecting.\n     * @param options.heartbeatIntervalMs The millisec interval to send a heartbeat message.\n     * @param options.logger The optional function for specialized logging, ie: logger: (kind, msg, data) => { console.log(`${kind}: ${msg}`, data) }\n     * @param options.encode The function to encode outgoing messages. Defaults to JSON: (payload, callback) => callback(JSON.stringify(payload))\n     * @param options.decode The function to decode incoming messages. Defaults to Serializer's decode.\n     * @param options.reconnectAfterMs he optional function that returns the millsec reconnect interval. Defaults to stepped backoff off.\n     */\nconstructor(t,i){var o,r;this.accessToken=null;this.channels=[];this.endPoint=\"\";this.headers=s;this.params={};this.timeout=n;this.transport=e;this.heartbeatIntervalMs=3e4;this.heartbeatTimer=void 0;this.pendingHeartbeatRef=null;this.ref=0;this.logger=noop;this.conn=null;this.sendBuffer=[];this.serializer=new Serializer;this.stateChangeCallbacks={open:[],close:[],error:[],message:[]};this.eventsPerSecondLimitMs=100;this.inThrottle=false;this._resolveFetch=e=>{let t;t=e||(\"undefined\"===typeof fetch?(...e)=>import(\"@supabase/node-fetch\").then((({default:t})=>t(...e))):fetch);return(...e)=>t(...e)};this.endPoint=`${t}/${h.websocket}`;(null===i||void 0===i?void 0:i.params)&&(this.params=i.params);(null===i||void 0===i?void 0:i.headers)&&(this.headers=Object.assign(Object.assign({},this.headers),i.headers));(null===i||void 0===i?void 0:i.timeout)&&(this.timeout=i.timeout);(null===i||void 0===i?void 0:i.logger)&&(this.logger=i.logger);(null===i||void 0===i?void 0:i.transport)&&(this.transport=i.transport);(null===i||void 0===i?void 0:i.heartbeatIntervalMs)&&(this.heartbeatIntervalMs=i.heartbeatIntervalMs);const a=null===(o=null===i||void 0===i?void 0:i.params)||void 0===o?void 0:o.eventsPerSecond;a&&(this.eventsPerSecondLimitMs=Math.floor(1e3/a));const c=null===(r=null===i||void 0===i?void 0:i.params)||void 0===r?void 0:r.apikey;c&&(this.accessToken=c);this.reconnectAfterMs=(null===i||void 0===i?void 0:i.reconnectAfterMs)?i.reconnectAfterMs:e=>[1e3,2e3,5e3,1e4][e-1]||1e4;this.encode=(null===i||void 0===i?void 0:i.encode)?i.encode:(e,t)=>t(JSON.stringify(e));this.decode=(null===i||void 0===i?void 0:i.decode)?i.decode:this.serializer.decode.bind(this.serializer);this.reconnectTimer=new Timer((async()=>{this.disconnect();this.connect()}),this.reconnectAfterMs);this.fetch=this._resolveFetch(null===i||void 0===i?void 0:i.fetch)}connect(){if(!this.conn){this.conn=new this.transport(this._endPointURL(),[],null,this.headers);if(this.conn){this.conn.binaryType=\"arraybuffer\";this.conn.onopen=()=>this._onConnOpen();this.conn.onerror=e=>this._onConnError(e);this.conn.onmessage=e=>this._onConnMessage(e);this.conn.onclose=e=>this._onConnClose(e)}}}\n/**\n     * Disconnects the socket.\n     *\n     * @param code A numeric status code to send on disconnect.\n     * @param reason A custom reason for the disconnect.\n     */disconnect(e,t){if(this.conn){this.conn.onclose=function(){};e?this.conn.close(e,null!==t&&void 0!==t?t:\"\"):this.conn.close();this.conn=null;this.heartbeatTimer&&clearInterval(this.heartbeatTimer);this.reconnectTimer.reset()}}getChannels(){return this.channels}\n/**\n     * Unsubscribes and removes a single channel\n     * @param channel A RealtimeChannel instance\n     */async removeChannel(e){const t=await e.unsubscribe();0===this.channels.length&&this.disconnect();return t}async removeAllChannels(){const e=await Promise.all(this.channels.map((e=>e.unsubscribe())));this.disconnect();return e}log(e,t,s){this.logger(e,t,s)}connectionState(){switch(this.conn&&this.conn.readyState){case r.connecting:return l.Connecting;case r.open:return l.Open;case r.closing:return l.Closing;default:return l.Closed}}isConnected(){return this.connectionState()===l.Open}channel(e,t={config:{}}){const s=new RealtimeChannel(`realtime:${e}`,t,this);this.channels.push(s);return s}push(e){const{topic:t,event:s,payload:i,ref:n}=e;let callback=()=>{this.encode(e,(e=>{var t;null===(t=this.conn)||void 0===t?void 0:t.send(e)}))};this.log(\"push\",`${t} ${s} (${n})`,i);if(this.isConnected())if([\"broadcast\",\"presence\",\"postgres_changes\"].includes(s)){const e=this._throttle(callback)();if(e)return\"rate limited\"}else callback();else this.sendBuffer.push(callback)}\n/**\n     * Sets the JWT access token used for channel subscription authorization and Realtime RLS.\n     *\n     * @param token A JWT string.\n     */setAuth(e){this.accessToken=e;this.channels.forEach((t=>{e&&t.updateJoinPayload({access_token:e});t.joinedOnce&&t._isJoined()&&t._push(c.access_token,{access_token:e})}))}_makeRef(){let e=this.ref+1;e===this.ref?this.ref=0:this.ref=e;return this.ref.toString()}_leaveOpenTopic(e){let t=this.channels.find((t=>t.topic===e&&(t._isJoined()||t._isJoining())));if(t){this.log(\"transport\",`leaving duplicate topic \"${e}\"`);t.unsubscribe()}}\n/**\n     * Removes a subscription from the socket.\n     *\n     * @param channel An open subscription.\n     *\n     * @internal\n     */_remove(e){this.channels=this.channels.filter((t=>t._joinRef()!==e._joinRef()))}_endPointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:i}))}_onConnMessage(e){this.decode(e.data,(e=>{let{topic:t,event:s,payload:i,ref:n}=e;(n&&n===this.pendingHeartbeatRef||s===(null===i||void 0===i?void 0:i.type))&&(this.pendingHeartbeatRef=null);this.log(\"receive\",`${i.status||\"\"} ${t} ${s} ${n&&\"(\"+n+\")\"||\"\"}`,i);this.channels.filter((e=>e._isMember(t))).forEach((e=>e._trigger(s,i,n)));this.stateChangeCallbacks.message.forEach((t=>t(e)))}))}_onConnOpen(){this.log(\"transport\",`connected to ${this._endPointURL()}`);this._flushSendBuffer();this.reconnectTimer.reset();this.heartbeatTimer&&clearInterval(this.heartbeatTimer);this.heartbeatTimer=setInterval((()=>this._sendHeartbeat()),this.heartbeatIntervalMs);this.stateChangeCallbacks.open.forEach((e=>e()))}_onConnClose(e){this.log(\"transport\",\"close\",e);this._triggerChanError();this.heartbeatTimer&&clearInterval(this.heartbeatTimer);this.reconnectTimer.scheduleTimeout();this.stateChangeCallbacks.close.forEach((t=>t(e)))}_onConnError(e){this.log(\"transport\",e.message);this._triggerChanError();this.stateChangeCallbacks.error.forEach((t=>t(e)))}_triggerChanError(){this.channels.forEach((e=>e._trigger(c.error)))}_appendParams(e,t){if(0===Object.keys(t).length)return e;const s=e.match(/\\?/)?\"&\":\"?\";const i=new URLSearchParams(t);return`${e}${s}${i}`}_flushSendBuffer(){if(this.isConnected()&&this.sendBuffer.length>0){this.sendBuffer.forEach((e=>e()));this.sendBuffer=[]}}_sendHeartbeat(){var e;if(this.isConnected())if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null;this.log(\"transport\",\"heartbeat timeout. Attempting to re-establish connection\");null===(e=this.conn)||void 0===e?void 0:e.close(o,\"hearbeat timeout\")}else{this.pendingHeartbeatRef=this._makeRef();this.push({topic:\"phoenix\",event:\"heartbeat\",payload:{},ref:this.pendingHeartbeatRef});this.setAuth(this.accessToken)}}_throttle(e,t=this.eventsPerSecondLimitMs){return()=>{if(this.inThrottle)return true;e();if(t>0){this.inThrottle=true;setTimeout((()=>{this.inThrottle=false}),t)}return false}}}export{p as REALTIME_LISTEN_TYPES,f as REALTIME_POSTGRES_CHANGES_LISTEN_EVENT,d as REALTIME_PRESENCE_LISTEN_EVENTS,m as REALTIME_SUBSCRIBE_STATES,RealtimeChannel,RealtimeClient,RealtimePresence};\n\n//# sourceMappingURL=index.js.map","class StorageError extends Error{constructor(t){super(t);this.__isStorageError=true;this.name=\"StorageError\"}}function isStorageError(t){return\"object\"===typeof t&&null!==t&&\"__isStorageError\"in t}class StorageApiError extends StorageError{constructor(t,e){super(t);this.name=\"StorageApiError\";this.status=e}toJSON(){return{name:this.name,message:this.message,status:this.status}}}class StorageUnknownError extends StorageError{constructor(t,e){super(t);this.name=\"StorageUnknownError\";this.originalError=e}}var t=(void 0,function(t,e,r,o){function adopt(t){return t instanceof r?t:new r((function(e){e(t)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(t){try{step(o.next(t))}catch(t){n(t)}}function rejected(t){try{step(o.throw(t))}catch(t){n(t)}}function step(t){t.done?r(t.value):adopt(t.value).then(fulfilled,rejected)}step((o=o.apply(t,e||[])).next())}))});const resolveFetch=t=>{let e;e=t||(\"undefined\"===typeof fetch?(...t)=>import(\"@supabase/node-fetch\").then((({default:e})=>e(...t))):fetch);return(...t)=>e(...t)};const resolveResponse=()=>t(void 0,void 0,void 0,(function*(){return\"undefined\"===typeof Response?(yield import(\"@supabase/node-fetch\")).Response:Response}));var e=(void 0,function(t,e,r,o){function adopt(t){return t instanceof r?t:new r((function(e){e(t)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(t){try{step(o.next(t))}catch(t){n(t)}}function rejected(t){try{step(o.throw(t))}catch(t){n(t)}}function step(t){t.done?r(t.value):adopt(t.value).then(fulfilled,rejected)}step((o=o.apply(t,e||[])).next())}))});const _getErrorMessage=t=>t.msg||t.message||t.error_description||t.error||JSON.stringify(t);const handleError=(t,r)=>e(void 0,void 0,void 0,(function*(){const e=yield resolveResponse();t instanceof e?t.json().then((e=>{r(new StorageApiError(_getErrorMessage(e),t.status||500))})).catch((t=>{r(new StorageUnknownError(_getErrorMessage(t),t))})):r(new StorageUnknownError(_getErrorMessage(t),t))}));const _getRequestParams=(t,e,r,o)=>{const n={method:t,headers:(null===e||void 0===e?void 0:e.headers)||{}};if(\"GET\"===t)return n;n.headers=Object.assign({\"Content-Type\":\"application/json\"},null===e||void 0===e?void 0:e.headers);n.body=JSON.stringify(o);return Object.assign(Object.assign({},n),r)};function _handleRequest(t,r,o,n,i,s){return e(this,void 0,void 0,(function*(){return new Promise(((e,a)=>{t(o,_getRequestParams(r,n,i,s)).then((t=>{if(!t.ok)throw t;return(null===n||void 0===n?void 0:n.noResolveJson)?t:t.json()})).then((t=>e(t))).catch((t=>handleError(t,a)))}))}))}function get(t,r,o,n){return e(this,void 0,void 0,(function*(){return _handleRequest(t,\"GET\",r,o,n)}))}function post(t,r,o,n,i){return e(this,void 0,void 0,(function*(){return _handleRequest(t,\"POST\",r,n,i,o)}))}function put(t,r,o,n,i){return e(this,void 0,void 0,(function*(){return _handleRequest(t,\"PUT\",r,n,i,o)}))}function remove(t,r,o,n,i){return e(this,void 0,void 0,(function*(){return _handleRequest(t,\"DELETE\",r,n,i,o)}))}var r=(void 0,function(t,e,r,o){function adopt(t){return t instanceof r?t:new r((function(e){e(t)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(t){try{step(o.next(t))}catch(t){n(t)}}function rejected(t){try{step(o.throw(t))}catch(t){n(t)}}function step(t){t.done?r(t.value):adopt(t.value).then(fulfilled,rejected)}step((o=o.apply(t,e||[])).next())}))});const o={limit:100,offset:0,sortBy:{column:\"name\",order:\"asc\"}};const n={cacheControl:\"3600\",contentType:\"text/plain;charset=UTF-8\",upsert:false};class StorageFileApi{constructor(t,e={},r,o){this.url=t;this.headers=e;this.bucketId=r;this.fetch=resolveFetch(o)}\n/**\n     * Uploads a file to an existing bucket or replaces an existing file at the specified path with a new one.\n     *\n     * @param method HTTP method.\n     * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n     * @param fileBody The body of the file to be stored in the bucket.\n     */uploadOrUpdate(t,e,o,i){return r(this,void 0,void 0,(function*(){try{let r;const s=Object.assign(Object.assign({},n),i);const a=Object.assign(Object.assign({},this.headers),\"POST\"===t&&{\"x-upsert\":String(s.upsert)});if(\"undefined\"!==typeof Blob&&o instanceof Blob){r=new FormData;r.append(\"cacheControl\",s.cacheControl);r.append(\"\",o)}else if(\"undefined\"!==typeof FormData&&o instanceof FormData){r=o;r.append(\"cacheControl\",s.cacheControl)}else{r=o;a[\"cache-control\"]=`max-age=${s.cacheControl}`;a[\"content-type\"]=s.contentType}const c=this._removeEmptyFolders(e);const u=this._getFinalPath(c);const d=yield this.fetch(`${this.url}/object/${u}`,Object.assign({method:t,body:r,headers:a},(null===s||void 0===s?void 0:s.duplex)?{duplex:s.duplex}:{}));if(d.ok)return{data:{path:c},error:null};{const t=yield d.json();return{data:null,error:t}}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}\n/**\n     * Uploads a file to an existing bucket.\n     *\n     * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n     * @param fileBody The body of the file to be stored in the bucket.\n     */upload(t,e,o){return r(this,void 0,void 0,(function*(){return this.uploadOrUpdate(\"POST\",t,e,o)}))}\n/**\n     * Upload a file with a token generated from `createSignedUploadUrl`.\n     * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n     * @param token The token generated from `createSignedUploadUrl`\n     * @param fileBody The body of the file to be stored in the bucket.\n     */uploadToSignedUrl(t,e,o,i){return r(this,void 0,void 0,(function*(){const r=this._removeEmptyFolders(t);const s=this._getFinalPath(r);const a=new URL(this.url+`/object/upload/sign/${s}`);a.searchParams.set(\"token\",e);try{let t;const e=Object.assign({upsert:n.upsert},i);const s=Object.assign(Object.assign({},this.headers),{\"x-upsert\":String(e.upsert)});if(\"undefined\"!==typeof Blob&&o instanceof Blob){t=new FormData;t.append(\"cacheControl\",e.cacheControl);t.append(\"\",o)}else if(\"undefined\"!==typeof FormData&&o instanceof FormData){t=o;t.append(\"cacheControl\",e.cacheControl)}else{t=o;s[\"cache-control\"]=`max-age=${e.cacheControl}`;s[\"content-type\"]=e.contentType}const c=yield this.fetch(a.toString(),{method:\"PUT\",body:t,headers:s});if(c.ok)return{data:{path:r},error:null};{const t=yield c.json();return{data:null,error:t}}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}\n/**\n     * Creates a signed upload URL.\n     * Signed upload URLs can be used to upload files to the bucket without further authentication.\n     * They are valid for 2 hours.\n     * @param path The file path, including the current file name. For example `folder/image.png`.\n     */createSignedUploadUrl(t){return r(this,void 0,void 0,(function*(){try{let e=this._getFinalPath(t);const r=yield post(this.fetch,`${this.url}/object/upload/sign/${e}`,{},{headers:this.headers});const o=new URL(this.url+r.url);const n=o.searchParams.get(\"token\");if(!n)throw new StorageError(\"No token returned by API\");return{data:{signedUrl:o.toString(),path:t,token:n},error:null}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}\n/**\n     * Replaces an existing file at the specified path with a new one.\n     *\n     * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to update.\n     * @param fileBody The body of the file to be stored in the bucket.\n     */update(t,e,o){return r(this,void 0,void 0,(function*(){return this.uploadOrUpdate(\"PUT\",t,e,o)}))}\n/**\n     * Moves an existing file to a new path in the same bucket.\n     *\n     * @param fromPath The original file path, including the current file name. For example `folder/image.png`.\n     * @param toPath The new file path, including the new file name. For example `folder/image-new.png`.\n     */move(t,e){return r(this,void 0,void 0,(function*(){try{const r=yield post(this.fetch,`${this.url}/object/move`,{bucketId:this.bucketId,sourceKey:t,destinationKey:e},{headers:this.headers});return{data:r,error:null}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}\n/**\n     * Copies an existing file to a new path in the same bucket.\n     *\n     * @param fromPath The original file path, including the current file name. For example `folder/image.png`.\n     * @param toPath The new file path, including the new file name. For example `folder/image-copy.png`.\n     */copy(t,e){return r(this,void 0,void 0,(function*(){try{const r=yield post(this.fetch,`${this.url}/object/copy`,{bucketId:this.bucketId,sourceKey:t,destinationKey:e},{headers:this.headers});return{data:{path:r.Key},error:null}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}\n/**\n     * Creates a signed URL. Use a signed URL to share a file for a fixed amount of time.\n     *\n     * @param path The file path, including the current file name. For example `folder/image.png`.\n     * @param expiresIn The number of seconds until the signed URL expires. For example, `60` for a URL which is valid for one minute.\n     * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n     * @param options.transform Transform the asset before serving it to the client.\n     */createSignedUrl(t,e,o){return r(this,void 0,void 0,(function*(){try{let r=this._getFinalPath(t);let n=yield post(this.fetch,`${this.url}/object/sign/${r}`,Object.assign({expiresIn:e},(null===o||void 0===o?void 0:o.transform)?{transform:o.transform}:{}),{headers:this.headers});const i=(null===o||void 0===o?void 0:o.download)?`&download=${true===o.download?\"\":o.download}`:\"\";const s=encodeURI(`${this.url}${n.signedURL}${i}`);n={signedUrl:s};return{data:n,error:null}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}\n/**\n     * Creates multiple signed URLs. Use a signed URL to share a file for a fixed amount of time.\n     *\n     * @param paths The file paths to be downloaded, including the current file names. For example `['folder/image.png', 'folder2/image2.png']`.\n     * @param expiresIn The number of seconds until the signed URLs expire. For example, `60` for URLs which are valid for one minute.\n     * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n     */createSignedUrls(t,e,o){return r(this,void 0,void 0,(function*(){try{const r=yield post(this.fetch,`${this.url}/object/sign/${this.bucketId}`,{expiresIn:e,paths:t},{headers:this.headers});const n=(null===o||void 0===o?void 0:o.download)?`&download=${true===o.download?\"\":o.download}`:\"\";return{data:r.map((t=>Object.assign(Object.assign({},t),{signedUrl:t.signedURL?encodeURI(`${this.url}${t.signedURL}${n}`):null}))),error:null}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}\n/**\n     * Downloads a file from a private bucket. For public buckets, make a request to the URL returned from `getPublicUrl` instead.\n     *\n     * @param path The full path and file name of the file to be downloaded. For example `folder/image.png`.\n     * @param options.transform Transform the asset before serving it to the client.\n     */download(t,e){return r(this,void 0,void 0,(function*(){const r=\"undefined\"!==typeof(null===e||void 0===e?void 0:e.transform);const o=r?\"render/image/authenticated\":\"object\";const n=this.transformOptsToQueryString((null===e||void 0===e?void 0:e.transform)||{});const i=n?`?${n}`:\"\";try{const e=this._getFinalPath(t);const r=yield get(this.fetch,`${this.url}/${o}/${e}${i}`,{headers:this.headers,noResolveJson:true});const n=yield r.blob();return{data:n,error:null}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}\n/**\n     * A simple convenience function to get the URL for an asset in a public bucket. If you do not want to use this function, you can construct the public URL by concatenating the bucket URL with the path to the asset.\n     * This function does not verify if the bucket is public. If a public URL is created for a bucket which is not public, you will not be able to download the asset.\n     *\n     * @param path The path and name of the file to generate the public URL for. For example `folder/image.png`.\n     * @param options.download Triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n     * @param options.transform Transform the asset before serving it to the client.\n     */getPublicUrl(t,e){const r=this._getFinalPath(t);const o=[];const n=(null===e||void 0===e?void 0:e.download)?`download=${true===e.download?\"\":e.download}`:\"\";\"\"!==n&&o.push(n);const i=\"undefined\"!==typeof(null===e||void 0===e?void 0:e.transform);const s=i?\"render/image\":\"object\";const a=this.transformOptsToQueryString((null===e||void 0===e?void 0:e.transform)||{});\"\"!==a&&o.push(a);let c=o.join(\"&\");\"\"!==c&&(c=`?${c}`);return{data:{publicUrl:encodeURI(`${this.url}/${s}/public/${r}${c}`)}}}\n/**\n     * Deletes files within the same bucket\n     *\n     * @param paths An array of files to delete, including the path and file name. For example [`'folder/image.png'`].\n     */remove(t){return r(this,void 0,void 0,(function*(){try{const e=yield remove(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:t},{headers:this.headers});return{data:e,error:null}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}\n/**\n     * Get file metadata\n     * @param id the file id to retrieve metadata\n     */\n/**\n     * Update file metadata\n     * @param id the file id to update metadata\n     * @param meta the new file metadata\n     */\n/**\n     * Lists all the files within a bucket.\n     * @param path The folder path.\n     */\nlist(t,e,n){return r(this,void 0,void 0,(function*(){try{const r=Object.assign(Object.assign(Object.assign({},o),e),{prefix:t||\"\"});const i=yield post(this.fetch,`${this.url}/object/list/${this.bucketId}`,r,{headers:this.headers},n);return{data:i,error:null}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}_getFinalPath(t){return`${this.bucketId}/${t}`}_removeEmptyFolders(t){return t.replace(/^\\/|\\/$/g,\"\").replace(/\\/+/g,\"/\")}transformOptsToQueryString(t){const e=[];t.width&&e.push(`width=${t.width}`);t.height&&e.push(`height=${t.height}`);t.resize&&e.push(`resize=${t.resize}`);t.format&&e.push(`format=${t.format}`);t.quality&&e.push(`quality=${t.quality}`);return e.join(\"&\")}}const i=\"2.5.4\";const s={\"X-Client-Info\":`storage-js/${i}`};var a=(void 0,function(t,e,r,o){function adopt(t){return t instanceof r?t:new r((function(e){e(t)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(t){try{step(o.next(t))}catch(t){n(t)}}function rejected(t){try{step(o.throw(t))}catch(t){n(t)}}function step(t){t.done?r(t.value):adopt(t.value).then(fulfilled,rejected)}step((o=o.apply(t,e||[])).next())}))});class StorageBucketApi{constructor(t,e={},r){this.url=t;this.headers=Object.assign(Object.assign({},s),e);this.fetch=resolveFetch(r)}listBuckets(){return a(this,void 0,void 0,(function*(){try{const t=yield get(this.fetch,`${this.url}/bucket`,{headers:this.headers});return{data:t,error:null}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}\n/**\n     * Retrieves the details of an existing Storage bucket.\n     *\n     * @param id The unique identifier of the bucket you would like to retrieve.\n     */getBucket(t){return a(this,void 0,void 0,(function*(){try{const e=yield get(this.fetch,`${this.url}/bucket/${t}`,{headers:this.headers});return{data:e,error:null}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}\n/**\n     * Creates a new Storage bucket\n     *\n     * @param id A unique identifier for the bucket you are creating.\n     * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations. By default, buckets are private.\n     * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket.\n     * The global file size limit takes precedence over this value.\n     * The default value is null, which doesn't set a per bucket file size limit.\n     * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload.\n     * The default value is null, which allows files with all mime types to be uploaded.\n     * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png.\n     * @returns newly created bucket id\n     */createBucket(t,e={public:false}){return a(this,void 0,void 0,(function*(){try{const r=yield post(this.fetch,`${this.url}/bucket`,{id:t,name:t,public:e.public,file_size_limit:e.fileSizeLimit,allowed_mime_types:e.allowedMimeTypes},{headers:this.headers});return{data:r,error:null}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}\n/**\n     * Updates a Storage bucket\n     *\n     * @param id A unique identifier for the bucket you are updating.\n     * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations.\n     * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket.\n     * The global file size limit takes precedence over this value.\n     * The default value is null, which doesn't set a per bucket file size limit.\n     * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload.\n     * The default value is null, which allows files with all mime types to be uploaded.\n     * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png.\n     */updateBucket(t,e){return a(this,void 0,void 0,(function*(){try{const r=yield put(this.fetch,`${this.url}/bucket/${t}`,{id:t,name:t,public:e.public,file_size_limit:e.fileSizeLimit,allowed_mime_types:e.allowedMimeTypes},{headers:this.headers});return{data:r,error:null}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}\n/**\n     * Removes all objects inside a single bucket.\n     *\n     * @param id The unique identifier of the bucket you would like to empty.\n     */emptyBucket(t){return a(this,void 0,void 0,(function*(){try{const e=yield post(this.fetch,`${this.url}/bucket/${t}/empty`,{},{headers:this.headers});return{data:e,error:null}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}\n/**\n     * Deletes an existing bucket. A bucket can't be deleted with existing objects inside it.\n     * You must first `empty()` the bucket.\n     *\n     * @param id The unique identifier of the bucket you would like to delete.\n     */deleteBucket(t){return a(this,void 0,void 0,(function*(){try{const e=yield remove(this.fetch,`${this.url}/bucket/${t}`,{},{headers:this.headers});return{data:e,error:null}}catch(t){if(isStorageError(t))return{data:null,error:t};throw t}}))}}class StorageClient extends StorageBucketApi{constructor(t,e={},r){super(t,e,r)}\n/**\n     * Perform file operation in a bucket.\n     *\n     * @param id The bucket id to operate on.\n     */from(t){return new StorageFileApi(this.url,this.headers,t,this.fetch)}}export{StorageApiError,StorageClient,StorageError,StorageUnknownError,isStorageError};\n\n//# sourceMappingURL=index.js.map","function expiresAt(e){const t=Math.round(Date.now()/1e3);return t+e}function uuid(){return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,(function(e){const t=16*Math.random()|0,r=\"x\"==e?t:3&t|8;return r.toString(16)}))}const isBrowser=()=>\"undefined\"!==typeof document;const e={tested:false,writable:false};const supportsLocalStorage=()=>{if(!isBrowser())return false;try{if(\"object\"!==typeof globalThis.localStorage)return false}catch(e){return false}if(e.tested)return e.writable;const t=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(t,t);globalThis.localStorage.removeItem(t);e.tested=true;e.writable=true}catch(t){e.tested=true;e.writable=false}return e.writable};function parseParametersFromURL(e){const t={};const r=new URL(e);if(r.hash&&\"#\"===r.hash[0])try{const e=new URLSearchParams(r.hash.substring(1));e.forEach(((e,r)=>{t[r]=e}))}catch(e){}r.searchParams.forEach(((e,r)=>{t[r]=e}));return t}const resolveFetch=e=>{let t;t=e||(\"undefined\"===typeof fetch?(...e)=>import(\"@supabase/node-fetch\").then((({default:t})=>t(...e))):fetch);return(...e)=>t(...e)};const looksLikeFetchResponse=e=>\"object\"===typeof e&&null!==e&&\"status\"in e&&\"ok\"in e&&\"json\"in e&&\"function\"===typeof e.json;const setItemAsync=async(e,t,r)=>{await e.setItem(t,JSON.stringify(r))};const getItemAsync=async(e,t)=>{const r=await e.getItem(t);if(!r)return null;try{return JSON.parse(r)}catch(e){return r}};const removeItemAsync=async(e,t)=>{await e.removeItem(t)};function decodeBase64URL(e){const t=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";let r=\"\";let s,i,o;let n,a,l,c;let u=0;e=e.replace(\"-\",\"+\").replace(\"_\",\"/\");while(u<e.length){n=t.indexOf(e.charAt(u++));a=t.indexOf(e.charAt(u++));l=t.indexOf(e.charAt(u++));c=t.indexOf(e.charAt(u++));s=n<<2|a>>4;i=(15&a)<<4|l>>2;o=(3&l)<<6|c;r+=String.fromCharCode(s);64!=l&&0!=i&&(r+=String.fromCharCode(i));64!=c&&0!=o&&(r+=String.fromCharCode(o))}return r}class Deferred{constructor(){this.promise=new Deferred.promiseConstructor(((e,t)=>{this.resolve=e;this.reject=t}))}}Deferred.promiseConstructor=Promise;function decodeJWTPayload(e){const t=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}=?$|[a-z0-9_-]{2}(==)?$)$/i;const r=e.split(\".\");if(3!==r.length)throw new Error(\"JWT is not valid: not a JWT structure\");if(!t.test(r[1]))throw new Error(\"JWT is not valid: payload is not in base64url format\");const s=r[1];return JSON.parse(decodeBase64URL(s))}async function sleep(e){return await new Promise((t=>{setTimeout((()=>t(null)),e)}))}function retryable(e,t){const r=new Promise(((r,s)=>{(async()=>{for(let i=0;i<Infinity;i++)try{const s=await e(i);if(!t(i,null,s)){r(s);return}}catch(e){if(!t(i,e)){s(e);return}}})()}));return r}function dec2hex(e){return(\"0\"+e.toString(16)).substr(-2)}function generatePKCEVerifier(){const e=56;const t=new Uint32Array(e);if(\"undefined\"===typeof crypto){const t=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~\";const r=t.length;let s=\"\";for(let i=0;i<e;i++)s+=t.charAt(Math.floor(Math.random()*r));return s}crypto.getRandomValues(t);return Array.from(t,dec2hex).join(\"\")}async function sha256(e){const t=new TextEncoder;const r=t.encode(e);const s=await crypto.subtle.digest(\"SHA-256\",r);const i=new Uint8Array(s);return Array.from(i).map((e=>String.fromCharCode(e))).join(\"\")}function base64urlencode(e){return btoa(e).replace(/\\+/g,\"-\").replace(/\\//g,\"_\").replace(/=+$/,\"\")}async function generatePKCEChallenge(e){if(\"undefined\"===typeof crypto){console.warn(\"WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256.\");return e}const t=await sha256(e);return base64urlencode(t)}class AuthError extends Error{constructor(e,t){super(e);this.__isAuthError=true;this.name=\"AuthError\";this.status=t}}function isAuthError(e){return\"object\"===typeof e&&null!==e&&\"__isAuthError\"in e}class AuthApiError extends AuthError{constructor(e,t){super(e,t);this.name=\"AuthApiError\";this.status=t}toJSON(){return{name:this.name,message:this.message,status:this.status}}}function isAuthApiError(e){return isAuthError(e)&&\"AuthApiError\"===e.name}class AuthUnknownError extends AuthError{constructor(e,t){super(e);this.name=\"AuthUnknownError\";this.originalError=t}}class CustomAuthError extends AuthError{constructor(e,t,r){super(e);this.name=t;this.status=r}toJSON(){return{name:this.name,message:this.message,status:this.status}}}class AuthSessionMissingError extends CustomAuthError{constructor(){super(\"Auth session missing!\",\"AuthSessionMissingError\",400)}}class AuthInvalidTokenResponseError extends CustomAuthError{constructor(){super(\"Auth session or user missing\",\"AuthInvalidTokenResponseError\",500)}}class AuthInvalidCredentialsError extends CustomAuthError{constructor(e){super(e,\"AuthInvalidCredentialsError\",400)}}class AuthImplicitGrantRedirectError extends CustomAuthError{constructor(e,t=null){super(e,\"AuthImplicitGrantRedirectError\",500);this.details=null;this.details=t}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}class AuthPKCEGrantCodeExchangeError extends CustomAuthError{constructor(e,t=null){super(e,\"AuthPKCEGrantCodeExchangeError\",500);this.details=null;this.details=t}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}class AuthRetryableFetchError extends CustomAuthError{constructor(e,t){super(e,\"AuthRetryableFetchError\",t)}}function isAuthRetryableFetchError(e){return isAuthError(e)&&\"AuthRetryableFetchError\"===e.name}var t=(void 0,function(e,t){var r={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(r[s]=e[s]);if(null!=e&&\"function\"===typeof Object.getOwnPropertySymbols){var i=0;for(s=Object.getOwnPropertySymbols(e);i<s.length;i++)t.indexOf(s[i])<0&&Object.prototype.propertyIsEnumerable.call(e,s[i])&&(r[s[i]]=e[s[i]])}return r});const _getErrorMessage=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e);const r=[502,503,504];async function handleError(e){if(!looksLikeFetchResponse(e))throw new AuthRetryableFetchError(_getErrorMessage(e),0);if(r.includes(e.status))throw new AuthRetryableFetchError(_getErrorMessage(e),e.status);let t;try{t=await e.json()}catch(e){throw new AuthUnknownError(_getErrorMessage(e),e)}throw new AuthApiError(_getErrorMessage(t),e.status||500)}const _getRequestParams=(e,t,r,s)=>{const i={method:e,headers:(null===t||void 0===t?void 0:t.headers)||{}};if(\"GET\"===e)return i;i.headers=Object.assign({\"Content-Type\":\"application/json;charset=UTF-8\"},null===t||void 0===t?void 0:t.headers);i.body=JSON.stringify(s);return Object.assign(Object.assign({},i),r)};async function _request(e,t,r,s){var i;const o=Object.assign({},null===s||void 0===s?void 0:s.headers);(null===s||void 0===s?void 0:s.jwt)&&(o.Authorization=`Bearer ${s.jwt}`);const n=null!==(i=null===s||void 0===s?void 0:s.query)&&void 0!==i?i:{};(null===s||void 0===s?void 0:s.redirectTo)&&(n.redirect_to=s.redirectTo);const a=Object.keys(n).length?\"?\"+new URLSearchParams(n).toString():\"\";const l=await _handleRequest(e,t,r+a,{headers:o,noResolveJson:null===s||void 0===s?void 0:s.noResolveJson},{},null===s||void 0===s?void 0:s.body);return(null===s||void 0===s?void 0:s.xform)?null===s||void 0===s?void 0:s.xform(l):{data:Object.assign({},l),error:null}}async function _handleRequest(e,t,r,s,i,o){const n=_getRequestParams(t,s,i,o);let a;try{a=await e(r,n)}catch(e){console.error(e);throw new AuthRetryableFetchError(_getErrorMessage(e),0)}a.ok||await handleError(a);if(null===s||void 0===s?void 0:s.noResolveJson)return a;try{return await a.json()}catch(e){await handleError(e)}}function _sessionResponse(e){var t;let r=null;if(hasSession(e)){r=Object.assign({},e);e.expires_at||(r.expires_at=expiresAt(e.expires_in))}const s=null!==(t=e.user)&&void 0!==t?t:e;return{data:{session:r,user:s},error:null}}function _userResponse(e){var t;const r=null!==(t=e.user)&&void 0!==t?t:e;return{data:{user:r},error:null}}function _ssoResponse(e){return{data:e,error:null}}function _generateLinkResponse(e){const{action_link:r,email_otp:s,hashed_token:i,redirect_to:o,verification_type:n}=e,a=t(e,[\"action_link\",\"email_otp\",\"hashed_token\",\"redirect_to\",\"verification_type\"]);const l={action_link:r,email_otp:s,hashed_token:i,redirect_to:o,verification_type:n};const c=Object.assign({},a);return{data:{properties:l,user:c},error:null}}function _noResolveJsonResponse(e){return e}\n/**\n * hasSession checks if the response object contains a valid session\n * @param data A response object\n * @returns true if a session is in the response\n */function hasSession(e){return e.access_token&&e.refresh_token&&e.expires_in}var s=(void 0,function(e,t){var r={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(r[s]=e[s]);if(null!=e&&\"function\"===typeof Object.getOwnPropertySymbols){var i=0;for(s=Object.getOwnPropertySymbols(e);i<s.length;i++)t.indexOf(s[i])<0&&Object.prototype.propertyIsEnumerable.call(e,s[i])&&(r[s[i]]=e[s[i]])}return r});class GoTrueAdminApi{constructor({url:e=\"\",headers:t={},fetch:r}){this.url=e;this.headers=t;this.fetch=resolveFetch(r);this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)}}\n/**\n     * Removes a logged-in session.\n     * @param jwt A valid, logged-in JWT.\n     * @param scope The logout sope.\n     */async signOut(e,t=\"global\"){try{await _request(this.fetch,\"POST\",`${this.url}/logout?scope=${t}`,{headers:this.headers,jwt:e,noResolveJson:true});return{data:null,error:null}}catch(e){if(isAuthError(e))return{data:null,error:e};throw e}}\n/**\n     * Sends an invite link to an email address.\n     * @param email The email address of the user.\n     * @param options Additional options to be included when inviting.\n     */async inviteUserByEmail(e,t={}){try{return await _request(this.fetch,\"POST\",`${this.url}/invite`,{body:{email:e,data:t.data},headers:this.headers,redirectTo:t.redirectTo,xform:_userResponse})}catch(e){if(isAuthError(e))return{data:{user:null},error:e};throw e}}\n/**\n     * Generates email links and OTPs to be sent via a custom email provider.\n     * @param email The user's email.\n     * @param options.password User password. For signup only.\n     * @param options.data Optional user metadata. For signup only.\n     * @param options.redirectTo The redirect url which should be appended to the generated link\n     */async generateLink(e){try{const{options:t}=e,r=s(e,[\"options\"]);const i=Object.assign(Object.assign({},r),t);if(\"newEmail\"in r){i.new_email=null===r||void 0===r?void 0:r.newEmail;delete i.newEmail}return await _request(this.fetch,\"POST\",`${this.url}/admin/generate_link`,{body:i,headers:this.headers,xform:_generateLinkResponse,redirectTo:null===t||void 0===t?void 0:t.redirectTo})}catch(e){if(isAuthError(e))return{data:{properties:null,user:null},error:e};throw e}}async createUser(e){try{return await _request(this.fetch,\"POST\",`${this.url}/admin/users`,{body:e,headers:this.headers,xform:_userResponse})}catch(e){if(isAuthError(e))return{data:{user:null},error:e};throw e}}\n/**\n     * Get a list of users.\n     *\n     * This function should only be called on a server. Never expose your `service_role` key in the browser.\n     * @param params An object which supports `page` and `perPage` as numbers, to alter the paginated results.\n     */async listUsers(e){var t,r,s,i,o,n,a;try{const l={nextPage:null,lastPage:0,total:0};const c=await _request(this.fetch,\"GET\",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:true,query:{page:null!==(r=null===(t=null===e||void 0===e?void 0:e.page)||void 0===t?void 0:t.toString())&&void 0!==r?r:\"\",per_page:null!==(i=null===(s=null===e||void 0===e?void 0:e.perPage)||void 0===s?void 0:s.toString())&&void 0!==i?i:\"\"},xform:_noResolveJsonResponse});if(c.error)throw c.error;const u=await c.json();const h=null!==(o=c.headers.get(\"x-total-count\"))&&void 0!==o?o:0;const d=null!==(a=null===(n=c.headers.get(\"link\"))||void 0===n?void 0:n.split(\",\"))&&void 0!==a?a:[];if(d.length>0){d.forEach((e=>{const t=parseInt(e.split(\";\")[0].split(\"=\")[1].substring(0,1));const r=JSON.parse(e.split(\";\")[1].split(\"=\")[1]);l[`${r}Page`]=t}));l.total=parseInt(h)}return{data:Object.assign(Object.assign({},u),l),error:null}}catch(e){if(isAuthError(e))return{data:{users:[]},error:e};throw e}}\n/**\n     * Get user by id.\n     *\n     * @param uid The user's unique identifier\n     *\n     * This function should only be called on a server. Never expose your `service_role` key in the browser.\n     */async getUserById(e){try{return await _request(this.fetch,\"GET\",`${this.url}/admin/users/${e}`,{headers:this.headers,xform:_userResponse})}catch(e){if(isAuthError(e))return{data:{user:null},error:e};throw e}}\n/**\n     * Updates the user data.\n     *\n     * @param attributes The data you want to update.\n     *\n     * This function should only be called on a server. Never expose your `service_role` key in the browser.\n     */async updateUserById(e,t){try{return await _request(this.fetch,\"PUT\",`${this.url}/admin/users/${e}`,{body:t,headers:this.headers,xform:_userResponse})}catch(e){if(isAuthError(e))return{data:{user:null},error:e};throw e}}\n/**\n     * Delete a user. Requires a `service_role` key.\n     *\n     * @param id The user id you want to remove.\n     * @param shouldSoftDelete If true, then the user will be soft-deleted from the auth schema.\n     * Defaults to false for backward compatibility.\n     *\n     * This function should only be called on a server. Never expose your `service_role` key in the browser.\n     */async deleteUser(e,t=false){try{return await _request(this.fetch,\"DELETE\",`${this.url}/admin/users/${e}`,{headers:this.headers,body:{should_soft_delete:t},xform:_userResponse})}catch(e){if(isAuthError(e))return{data:{user:null},error:e};throw e}}async _listFactors(e){try{const{data:t,error:r}=await _request(this.fetch,\"GET\",`${this.url}/admin/users/${e.userId}/factors`,{headers:this.headers,xform:e=>({data:{factors:e},error:null})});return{data:t,error:r}}catch(e){if(isAuthError(e))return{data:null,error:e};throw e}}async _deleteFactor(e){try{const t=await _request(this.fetch,\"DELETE\",`${this.url}/admin/users/${e.userId}/factors/${e.id}`,{headers:this.headers});return{data:t,error:null}}catch(e){if(isAuthError(e))return{data:null,error:e};throw e}}}const i=\"2.54.0\";const o=\"http://localhost:9999\";const n=\"supabase.auth.token\";const a={\"X-Client-Info\":`gotrue-js/${i}`};const l=10;const c={getItem:e=>supportsLocalStorage()?globalThis.localStorage.getItem(e):null,setItem:(e,t)=>{supportsLocalStorage()&&globalThis.localStorage.setItem(e,t)},removeItem:e=>{supportsLocalStorage()&&globalThis.localStorage.removeItem(e)}};function memoryLocalStorageAdapter(e={}){return{getItem:t=>e[t]||null,setItem:(t,r)=>{e[t]=r},removeItem:t=>{delete e[t]}}}function polyfillGlobalThis(){if(\"object\"!==typeof globalThis)try{Object.defineProperty(Object.prototype,\"__magic__\",{get:function(){return this},configurable:true});__magic__.globalThis=__magic__;delete Object.prototype.__magic__}catch(e){\"undefined\"!==typeof self&&(self.globalThis=self)}}const u={debug:!!(globalThis&&supportsLocalStorage()&&globalThis.localStorage&&\"true\"===globalThis.localStorage.getItem(\"supabase.gotrue-js.locks.debug\"))};class LockAcquireTimeoutError extends Error{constructor(e){super(e);this.isAcquireTimeout=true}}class NavigatorLockAcquireTimeoutError extends LockAcquireTimeoutError{}\n/**\n * Implements a global exclusive lock using the Navigator LockManager API. It\n * is available on all browsers released after 2022-03-15 with Safari being the\n * last one to release support. If the API is not available, this function will\n * throw. Make sure you check availablility before configuring {@link\n * GoTrueClient}.\n *\n * You can turn on debugging by setting the `supabase.gotrue-js.locks.debug`\n * local storage item to `true`.\n *\n * Internals:\n *\n * Since the LockManager API does not preserve stack traces for the async\n * function passed in the `request` method, a trick is used where acquiring the\n * lock releases a previously started promise to run the operation in the `fn`\n * function. The lock waits for that promise to finish (with or without error),\n * while the function will finally wait for the result anyway.\n *\n * @experimental\n *\n * @param name Name of the lock to be acquired.\n * @param acquireTimeout If negative, no timeout. If 0 an error is thrown if\n *                       the lock can't be acquired without waiting. If positive, the lock acquire\n *                       will time out after so many milliseconds. An error is\n *                       a timeout if it has `isAcquireTimeout` set to true.\n * @param fn The operation to run once the lock is acquired.\n */async function navigatorLock(e,t,r){u.debug&&console.log(\"@supabase/gotrue-js: navigatorLock: acquire lock\",e,t);const s=new globalThis.AbortController;t>0&&setTimeout((()=>{s.abort();u.debug&&console.log(\"@supabase/gotrue-js: navigatorLock acquire timed out\",e)}),t);return await globalThis.navigator.locks.request(e,0===t?{mode:\"exclusive\",ifAvailable:true}:{mode:\"exclusive\",signal:s.signal},(async s=>{if(!s){if(0===t){u.debug&&console.log(\"@supabase/gotrue-js: navigatorLock: not immediately available\",e);throw new NavigatorLockAcquireTimeoutError(`Acquiring an exclusive Navigator LockManager lock \"${e}\" immediately failed`)}if(u.debug)try{const e=await globalThis.navigator.locks.query();console.log(\"@supabase/gotrue-js: Navigator LockManager state\",JSON.stringify(e,null,\"  \"))}catch(e){console.warn(\"@supabase/gotrue-js: Error when querying Navigator LockManager state\",e)}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\");return await r()}u.debug&&console.log(\"@supabase/gotrue-js: navigatorLock: acquired\",e,s.name);try{return await r()}finally{u.debug&&console.log(\"@supabase/gotrue-js: navigatorLock: released\",e,s.name)}}))}polyfillGlobalThis();const h={url:o,storageKey:n,autoRefreshToken:true,persistSession:true,detectSessionInUrl:true,headers:a,flowType:\"implicit\",debug:false};const d=3e4;const f=3;async function lockNoOp(e,t,r){return await r()}class GoTrueClient{constructor(e){var t;this.memoryStorage=null;this.stateChangeEmitters=new Map;this.autoRefreshTicker=null;this.visibilityChangedCallback=null;this.refreshingDeferred=null;this.initializePromise=null;this.detectSessionInUrl=true;this.lockAcquired=false;this.pendingInLock=[];this.broadcastChannel=null;this.logger=console.log;this.instanceID=GoTrueClient.nextInstanceID;GoTrueClient.nextInstanceID+=1;this.instanceID>0&&isBrowser()&&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.\");const r=Object.assign(Object.assign({},h),e);this.logDebugMessages=!!r.debug;\"function\"===typeof r.debug&&(this.logger=r.debug);this.persistSession=r.persistSession;this.storageKey=r.storageKey;this.autoRefreshToken=r.autoRefreshToken;this.admin=new GoTrueAdminApi({url:r.url,headers:r.headers,fetch:r.fetch});this.url=r.url;this.headers=r.headers;this.fetch=resolveFetch(r.fetch);this.lock=r.lock||lockNoOp;this.detectSessionInUrl=r.detectSessionInUrl;this.flowType=r.flowType;this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this)};if(this.persistSession)if(r.storage)this.storage=r.storage;else if(supportsLocalStorage())this.storage=c;else{this.memoryStorage={};this.storage=memoryLocalStorageAdapter(this.memoryStorage)}else{this.memoryStorage={};this.storage=memoryLocalStorageAdapter(this.memoryStorage)}if(isBrowser()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(e){console.error(\"Failed to create a new BroadcastChannel, multi-tab state changes will not be available\",e)}null===(t=this.broadcastChannel)||void 0===t?void 0:t.addEventListener(\"message\",(async e=>{this._debug(\"received broadcast notification from other tab or client\",e);await this._notifyAllSubscribers(e.data.event,e.data.session,false)}))}this.initialize()}_debug(...e){this.logDebugMessages&&this.logger(`GoTrueClient@${this.instanceID} (${i}) ${(new Date).toISOString()}`,...e);return this}async initialize(){if(this.initializePromise)return await this.initializePromise;this.initializePromise=(async()=>await this._acquireLock(-1,(async()=>await this._initialize())))();return await this.initializePromise}async _initialize(){try{const e=!!isBrowser()&&await this._isPKCEFlow();this._debug(\"#_initialize()\",\"begin\",\"is PKCE flow\",e);if(e||this.detectSessionInUrl&&this._isImplicitGrantFlow()){const{data:t,error:r}=await this._getSessionFromURL(e);if(r){this._debug(\"#_initialize()\",\"error detecting session from URL\",r);await this._removeSession();return{error:r}}const{session:s,redirectType:i}=t;this._debug(\"#_initialize()\",\"detected session in URL\",s,\"redirect type\",i);await this._saveSession(s);setTimeout((async()=>{\"recovery\"===i?await this._notifyAllSubscribers(\"PASSWORD_RECOVERY\",s):await this._notifyAllSubscribers(\"SIGNED_IN\",s)}),0);return{error:null}}await this._recoverAndRefresh();return{error:null}}catch(e){return isAuthError(e)?{error:e}:{error:new AuthUnknownError(\"Unexpected error during initialization\",e)}}finally{await this._handleVisibilityChange();this._debug(\"#_initialize()\",\"end\")}}\n/**\n     * Creates a new user.\n     *\n     * Be aware that if a user account exists in the system you may get back an\n     * error message that attempts to hide this information from the user.\n     * This method has support for PKCE via email signups. The PKCE flow cannot be used when autoconfirm is enabled.\n     *\n     * @returns A logged-in session if the server has \"autoconfirm\" ON\n     * @returns A user if the server has \"autoconfirm\" OFF\n     */async signUp(e){var t,r,s;try{await this._removeSession();let i;if(\"email\"in e){const{email:r,password:s,options:o}=e;let n=null;let a=null;if(\"pkce\"===this.flowType){const e=generatePKCEVerifier();await setItemAsync(this.storage,`${this.storageKey}-code-verifier`,e);n=await generatePKCEChallenge(e);a=e===n?\"plain\":\"s256\"}i=await _request(this.fetch,\"POST\",`${this.url}/signup`,{headers:this.headers,redirectTo:null===o||void 0===o?void 0:o.emailRedirectTo,body:{email:r,password:s,data:null!==(t=null===o||void 0===o?void 0:o.data)&&void 0!==t?t:{},gotrue_meta_security:{captcha_token:null===o||void 0===o?void 0:o.captchaToken},code_challenge:n,code_challenge_method:a},xform:_sessionResponse})}else{if(!(\"phone\"in e))throw new AuthInvalidCredentialsError(\"You must provide either an email or phone number and a password\");{const{phone:t,password:o,options:n}=e;i=await _request(this.fetch,\"POST\",`${this.url}/signup`,{headers:this.headers,body:{phone:t,password:o,data:null!==(r=null===n||void 0===n?void 0:n.data)&&void 0!==r?r:{},channel:null!==(s=null===n||void 0===n?void 0:n.channel)&&void 0!==s?s:\"sms\",gotrue_meta_security:{captcha_token:null===n||void 0===n?void 0:n.captchaToken}},xform:_sessionResponse})}}const{data:o,error:n}=i;if(n||!o)return{data:{user:null,session:null},error:n};const a=o.session;const l=o.user;if(o.session){await this._saveSession(o.session);await this._notifyAllSubscribers(\"SIGNED_IN\",a)}return{data:{user:l,session:a},error:null}}catch(e){if(isAuthError(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithPassword(e){try{await this._removeSession();let t;if(\"email\"in e){const{email:r,password:s,options:i}=e;t=await _request(this.fetch,\"POST\",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:r,password:s,gotrue_meta_security:{captcha_token:null===i||void 0===i?void 0:i.captchaToken}},xform:_sessionResponse})}else{if(!(\"phone\"in e))throw new AuthInvalidCredentialsError(\"You must provide either an email or phone number and a password\");{const{phone:r,password:s,options:i}=e;t=await _request(this.fetch,\"POST\",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:r,password:s,gotrue_meta_security:{captcha_token:null===i||void 0===i?void 0:i.captchaToken}},xform:_sessionResponse})}}const{data:r,error:s}=t;if(s)return{data:{user:null,session:null},error:s};if(!r||!r.session||!r.user)return{data:{user:null,session:null},error:new AuthInvalidTokenResponseError};if(r.session){await this._saveSession(r.session);await this._notifyAllSubscribers(\"SIGNED_IN\",r.session)}return{data:{user:r.user,session:r.session},error:s}}catch(e){if(isAuthError(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithOAuth(e){var t,r,s,i;await this._removeSession();return await this._handleProviderSignIn(e.provider,{redirectTo:null===(t=e.options)||void 0===t?void 0:t.redirectTo,scopes:null===(r=e.options)||void 0===r?void 0:r.scopes,queryParams:null===(s=e.options)||void 0===s?void 0:s.queryParams,skipBrowserRedirect:null===(i=e.options)||void 0===i?void 0:i.skipBrowserRedirect})}async exchangeCodeForSession(e){await this.initializePromise;return this._acquireLock(-1,(async()=>this._exchangeCodeForSession(e)))}async _exchangeCodeForSession(e){const t=await getItemAsync(this.storage,`${this.storageKey}-code-verifier`);const{data:r,error:s}=await _request(this.fetch,\"POST\",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:e,code_verifier:t},xform:_sessionResponse});await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`);if(s)return{data:{user:null,session:null},error:s};if(!r||!r.session||!r.user)return{data:{user:null,session:null},error:new AuthInvalidTokenResponseError};if(r.session){await this._saveSession(r.session);await this._notifyAllSubscribers(\"SIGNED_IN\",r.session)}return{data:r,error:s}}async signInWithIdToken(e){await this._removeSession();try{const{options:t,provider:r,token:s,access_token:i,nonce:o}=e;const n=await _request(this.fetch,\"POST\",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:r,id_token:s,access_token:i,nonce:o,gotrue_meta_security:{captcha_token:null===t||void 0===t?void 0:t.captchaToken}},xform:_sessionResponse});const{data:a,error:l}=n;if(l)return{data:{user:null,session:null},error:l};if(!a||!a.session||!a.user)return{data:{user:null,session:null},error:new AuthInvalidTokenResponseError};if(a.session){await this._saveSession(a.session);await this._notifyAllSubscribers(\"SIGNED_IN\",a.session)}return{data:a,error:l}}catch(e){if(isAuthError(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithOtp(e){var t,r,s,i,o;try{await this._removeSession();if(\"email\"in e){const{email:s,options:i}=e;let o=null;let n=null;if(\"pkce\"===this.flowType){const e=generatePKCEVerifier();await setItemAsync(this.storage,`${this.storageKey}-code-verifier`,e);o=await generatePKCEChallenge(e);n=e===o?\"plain\":\"s256\"}const{error:a}=await _request(this.fetch,\"POST\",`${this.url}/otp`,{headers:this.headers,body:{email:s,data:null!==(t=null===i||void 0===i?void 0:i.data)&&void 0!==t?t:{},create_user:null===(r=null===i||void 0===i?void 0:i.shouldCreateUser)||void 0===r||r,gotrue_meta_security:{captcha_token:null===i||void 0===i?void 0:i.captchaToken},code_challenge:o,code_challenge_method:n},redirectTo:null===i||void 0===i?void 0:i.emailRedirectTo});return{data:{user:null,session:null},error:a}}if(\"phone\"in e){const{phone:t,options:r}=e;const{data:n,error:a}=await _request(this.fetch,\"POST\",`${this.url}/otp`,{headers:this.headers,body:{phone:t,data:null!==(s=null===r||void 0===r?void 0:r.data)&&void 0!==s?s:{},create_user:null===(i=null===r||void 0===r?void 0:r.shouldCreateUser)||void 0===i||i,gotrue_meta_security:{captcha_token:null===r||void 0===r?void 0:r.captchaToken},channel:null!==(o=null===r||void 0===r?void 0:r.channel)&&void 0!==o?o:\"sms\"}});return{data:{user:null,session:null,messageId:null===n||void 0===n?void 0:n.message_id},error:a}}throw new AuthInvalidCredentialsError(\"You must provide either an email or phone number.\")}catch(e){if(isAuthError(e))return{data:{user:null,session:null},error:e};throw e}}async verifyOtp(e){var t,r;try{\"email_change\"!==e.type&&\"phone_change\"!==e.type&&await this._removeSession();let s;let i;if(\"options\"in e){s=null===(t=e.options)||void 0===t?void 0:t.redirectTo;i=null===(r=e.options)||void 0===r?void 0:r.captchaToken}const{data:o,error:n}=await _request(this.fetch,\"POST\",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},e),{gotrue_meta_security:{captcha_token:i}}),redirectTo:s,xform:_sessionResponse});if(n)throw n;if(!o)throw new Error(\"An error occurred on token verification.\");const a=o.session;const l=o.user;if(null===a||void 0===a?void 0:a.access_token){await this._saveSession(a);await this._notifyAllSubscribers(\"SIGNED_IN\",a)}return{data:{user:l,session:a},error:null}}catch(e){if(isAuthError(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithSSO(e){var t,r,s;try{await this._removeSession();return await _request(this.fetch,\"POST\",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},\"providerId\"in e?{provider_id:e.providerId}:null),\"domain\"in e?{domain:e.domain}:null),{redirect_to:null!==(r=null===(t=e.options)||void 0===t?void 0:t.redirectTo)&&void 0!==r?r:void 0}),(null===(s=null===e||void 0===e?void 0:e.options)||void 0===s?void 0:s.captchaToken)?{gotrue_meta_security:{captcha_token:e.options.captchaToken}}:null),{skip_http_redirect:true}),headers:this.headers,xform:_ssoResponse})}catch(e){if(isAuthError(e))return{data:null,error:e};throw e}}async reauthenticate(){await this.initializePromise;return await this._acquireLock(-1,(async()=>await this._reauthenticate()))}async _reauthenticate(){try{return await this._useSession((async e=>{const{data:{session:t},error:r}=e;if(r)throw r;if(!t)throw new AuthSessionMissingError;const{error:s}=await _request(this.fetch,\"GET\",`${this.url}/reauthenticate`,{headers:this.headers,jwt:t.access_token});return{data:{user:null,session:null},error:s}}))}catch(e){if(isAuthError(e))return{data:{user:null,session:null},error:e};throw e}}async resend(e){try{\"email_change\"!=e.type&&\"phone_change\"!=e.type&&await this._removeSession();const t=`${this.url}/resend`;if(\"email\"in e){const{email:r,type:s,options:i}=e;const{error:o}=await _request(this.fetch,\"POST\",t,{headers:this.headers,body:{email:r,type:s,gotrue_meta_security:{captcha_token:null===i||void 0===i?void 0:i.captchaToken}},redirectTo:null===i||void 0===i?void 0:i.emailRedirectTo});return{data:{user:null,session:null},error:o}}if(\"phone\"in e){const{phone:r,type:s,options:i}=e;const{data:o,error:n}=await _request(this.fetch,\"POST\",t,{headers:this.headers,body:{phone:r,type:s,gotrue_meta_security:{captcha_token:null===i||void 0===i?void 0:i.captchaToken}}});return{data:{user:null,session:null,messageId:null===o||void 0===o?void 0:o.message_id},error:n}}throw new AuthInvalidCredentialsError(\"You must provide either an email or phone number and a type\")}catch(e){if(isAuthError(e))return{data:{user:null,session:null},error:e};throw e}}async getSession(){await this.initializePromise;return this._acquireLock(-1,(async()=>this._useSession((async e=>e))))}async _acquireLock(e,t){this._debug(\"#_acquireLock\",\"begin\",e);try{if(this.lockAcquired){const e=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve();const r=(async()=>{await e;return await t()})();this.pendingInLock.push((async()=>{try{await r}catch(e){}})());return r}return await this.lock(`lock:${this.storageKey}`,e,(async()=>{this._debug(\"#_acquireLock\",\"lock acquired for storage key\",this.storageKey);try{this.lockAcquired=true;const e=t();this.pendingInLock.push((async()=>{try{await e}catch(e){}})());await e;while(this.pendingInLock.length){const e=[...this.pendingInLock];await Promise.all(e);this.pendingInLock.splice(0,e.length)}return await e}finally{this._debug(\"#_acquireLock\",\"lock released for storage key\",this.storageKey);this.lockAcquired=false}}))}finally{this._debug(\"#_acquireLock\",\"end\")}}async _useSession(e){this._debug(\"#_useSession\",\"begin\");try{const t=await this.__loadSession();return await e(t)}finally{this._debug(\"#_useSession\",\"end\")}}async __loadSession(){this._debug(\"#__loadSession()\",\"begin\");this.lockAcquired||this._debug(\"#__loadSession()\",\"used outside of an acquired lock!\",(new Error).stack);try{let e=null;const t=await getItemAsync(this.storage,this.storageKey);this._debug(\"#getSession()\",\"session from storage\",t);if(null!==t)if(this._isValidSession(t))e=t;else{this._debug(\"#getSession()\",\"session from storage is not valid\");await this._removeSession()}if(!e)return{data:{session:null},error:null};const r=!!e.expires_at&&e.expires_at<=Date.now()/1e3;this._debug(\"#__loadSession()\",`session has${r?\"\":\" not\"} expired`,\"expires_at\",e.expires_at);if(!r)return{data:{session:e},error:null};const{session:s,error:i}=await this._callRefreshToken(e.refresh_token);return i?{data:{session:null},error:i}:{data:{session:s},error:null}}finally{this._debug(\"#__loadSession()\",\"end\")}}\n/**\n     * Gets the current user details if there is an existing session.\n     * @param jwt Takes in an optional access token jwt. If no jwt is provided, getUser() will attempt to get the jwt from the current session.\n     */async getUser(e){if(e)return await this._getUser(e);await this.initializePromise;return this._acquireLock(-1,(async()=>await this._getUser()))}async _getUser(e){try{return e?await _request(this.fetch,\"GET\",`${this.url}/user`,{headers:this.headers,jwt:e,xform:_userResponse}):await this._useSession((async e=>{var t,r;const{data:s,error:i}=e;if(i)throw i;return await _request(this.fetch,\"GET\",`${this.url}/user`,{headers:this.headers,jwt:null!==(r=null===(t=s.session)||void 0===t?void 0:t.access_token)&&void 0!==r?r:void 0,xform:_userResponse})}))}catch(e){if(isAuthError(e))return{data:{user:null},error:e};throw e}}async updateUser(e,t={}){await this.initializePromise;return await this._acquireLock(-1,(async()=>await this._updateUser(e,t)))}async _updateUser(e,t={}){try{return await this._useSession((async r=>{const{data:s,error:i}=r;if(i)throw i;if(!s.session)throw new AuthSessionMissingError;const o=s.session;let n=null;let a=null;if(\"pkce\"===this.flowType&&null!=e.email){const e=generatePKCEVerifier();await setItemAsync(this.storage,`${this.storageKey}-code-verifier`,e);n=await generatePKCEChallenge(e);a=e===n?\"plain\":\"s256\"}const{data:l,error:c}=await _request(this.fetch,\"PUT\",`${this.url}/user`,{headers:this.headers,redirectTo:null===t||void 0===t?void 0:t.emailRedirectTo,body:Object.assign(Object.assign({},e),{code_challenge:n,code_challenge_method:a}),jwt:o.access_token,xform:_userResponse});if(c)throw c;o.user=l.user;await this._saveSession(o);await this._notifyAllSubscribers(\"USER_UPDATED\",o);return{data:{user:o.user},error:null}}))}catch(e){if(isAuthError(e))return{data:{user:null},error:e};throw e}}_decodeJWT(e){return decodeJWTPayload(e)}\n/**\n     * Sets the session data from the current session. If the current session is expired, setSession will take care of refreshing it to obtain a new session.\n     * If the refresh token or access token in the current session is invalid, an error will be thrown.\n     * @param currentSession The current session that minimally contains an access token and refresh token.\n     */async setSession(e){await this.initializePromise;return await this._acquireLock(-1,(async()=>await this._setSession(e)))}async _setSession(e){try{if(!e.access_token||!e.refresh_token)throw new AuthSessionMissingError;const t=Date.now()/1e3;let r=t;let s=true;let i=null;const o=decodeJWTPayload(e.access_token);if(o.exp){r=o.exp;s=r<=t}if(s){const{session:t,error:r}=await this._callRefreshToken(e.refresh_token);if(r)return{data:{user:null,session:null},error:r};if(!t)return{data:{user:null,session:null},error:null};i=t}else{const{data:s,error:o}=await this._getUser(e.access_token);if(o)throw o;i={access_token:e.access_token,refresh_token:e.refresh_token,user:s.user,token_type:\"bearer\",expires_in:r-t,expires_at:r};await this._saveSession(i);await this._notifyAllSubscribers(\"SIGNED_IN\",i)}return{data:{user:i.user,session:i},error:null}}catch(e){if(isAuthError(e))return{data:{session:null,user:null},error:e};throw e}}\n/**\n     * Returns a new session, regardless of expiry status.\n     * Takes in an optional current session. If not passed in, then refreshSession() will attempt to retrieve it from getSession().\n     * If the current session's refresh token is invalid, an error will be thrown.\n     * @param currentSession The current session. If passed in, it must contain a refresh token.\n     */async refreshSession(e){await this.initializePromise;return await this._acquireLock(-1,(async()=>await this._refreshSession(e)))}async _refreshSession(e){try{return await this._useSession((async t=>{var r;if(!e){const{data:s,error:i}=t;if(i)throw i;e=null!==(r=s.session)&&void 0!==r?r:void 0}if(!(null===e||void 0===e?void 0:e.refresh_token))throw new AuthSessionMissingError;const{session:s,error:i}=await this._callRefreshToken(e.refresh_token);return i?{data:{user:null,session:null},error:i}:s?{data:{user:s.user,session:s},error:null}:{data:{user:null,session:null},error:null}}))}catch(e){if(isAuthError(e))return{data:{user:null,session:null},error:e};throw e}}async _getSessionFromURL(e){try{if(!isBrowser())throw new AuthImplicitGrantRedirectError(\"No browser detected.\");if(\"implicit\"===this.flowType&&!this._isImplicitGrantFlow())throw new AuthImplicitGrantRedirectError(\"Not a valid implicit grant flow url.\");if(\"pkce\"==this.flowType&&!e)throw new AuthPKCEGrantCodeExchangeError(\"Not a valid PKCE flow url.\");const t=parseParametersFromURL(window.location.href);if(e){if(!t.code)throw new AuthPKCEGrantCodeExchangeError(\"No code detected.\");const{data:e,error:r}=await this._exchangeCodeForSession(t.code);if(r)throw r;const s=new URL(window.location.href);s.searchParams.delete(\"code\");window.history.replaceState(window.history.state,\"\",s.toString());return{data:{session:e.session,redirectType:null},error:null}}if(t.error||t.error_description||t.error_code)throw new AuthImplicitGrantRedirectError(t.error_description||\"Error in URL with unspecified error_description\",{error:t.error||\"unspecified_error\",code:t.error_code||\"unspecified_code\"});const{provider_token:r,provider_refresh_token:s,access_token:i,refresh_token:o,expires_in:n,expires_at:a,token_type:l}=t;if(!i||!n||!o||!l)throw new AuthImplicitGrantRedirectError(\"No session defined in URL\");const c=Math.round(Date.now()/1e3);const u=parseInt(n);let h=c+u;a&&(h=parseInt(a));const f=h-c;1e3*f<=d&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${f}s, should have been closer to ${u}s`);const _=h-u;c-_>=120?console.warn(\"@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale\",_,h,c):c-_<0&&console.warn(\"@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clok for skew\",_,h,c);const{data:g,error:w}=await this._getUser(i);if(w)throw w;const p={provider_token:r,provider_refresh_token:s,access_token:i,expires_in:u,expires_at:h,refresh_token:o,token_type:l,user:g.user};window.location.hash=\"\";this._debug(\"#_getSessionFromURL()\",\"clearing window.location.hash\");return{data:{session:p,redirectType:t.type},error:null}}catch(e){if(isAuthError(e))return{data:{session:null,redirectType:null},error:e};throw e}}_isImplicitGrantFlow(){const e=parseParametersFromURL(window.location.href);return!!(isBrowser()&&(e.access_token||e.error_description))}async _isPKCEFlow(){const e=parseParametersFromURL(window.location.href);const t=await getItemAsync(this.storage,`${this.storageKey}-code-verifier`);return!!(e.code&&t)}async signOut(e={scope:\"global\"}){await this.initializePromise;return await this._acquireLock(-1,(async()=>await this._signOut(e)))}async _signOut({scope:e}={scope:\"global\"}){return await this._useSession((async t=>{var r;const{data:s,error:i}=t;if(i)return{error:i};const o=null===(r=s.session)||void 0===r?void 0:r.access_token;if(o){const{error:t}=await this.admin.signOut(o,e);if(t&&!(isAuthApiError(t)&&(404===t.status||401===t.status)))return{error:t}}if(\"others\"!==e){await this._removeSession();await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`);await this._notifyAllSubscribers(\"SIGNED_OUT\",null)}return{error:null}}))}\n/**\n     * Receive a notification every time an auth event happens.\n     * @param callback A callback function to be invoked when an auth event happens.\n     */onAuthStateChange(e){const t=uuid();const r={id:t,callback:e,unsubscribe:()=>{this._debug(\"#unsubscribe()\",\"state change callback with id removed\",t);this.stateChangeEmitters.delete(t)}};this._debug(\"#onAuthStateChange()\",\"registered callback with id\",t);this.stateChangeEmitters.set(t,r);(async()=>{await this.initializePromise;await this._acquireLock(-1,(async()=>{this._emitInitialSession(t)}))})();return{data:{subscription:r}}}async _emitInitialSession(e){return await this._useSession((async t=>{var r,s;try{const{data:{session:s},error:i}=t;if(i)throw i;await(null===(r=this.stateChangeEmitters.get(e))||void 0===r?void 0:r.callback(\"INITIAL_SESSION\",s));this._debug(\"INITIAL_SESSION\",\"callback id\",e,\"session\",s)}catch(t){await(null===(s=this.stateChangeEmitters.get(e))||void 0===s?void 0:s.callback(\"INITIAL_SESSION\",null));this._debug(\"INITIAL_SESSION\",\"callback id\",e,\"error\",t);console.error(t)}}))}\n/**\n     * Sends a password reset request to an email address.\n     * This method supports the PKCE flow.\n     * @param email The email address of the user.\n     * @param options.redirectTo The URL to send the user to after they click the password reset link.\n     * @param options.captchaToken Verification token received when the user completes the captcha on the site.\n     */async resetPasswordForEmail(e,t={}){let r=null;let s=null;if(\"pkce\"===this.flowType){const e=generatePKCEVerifier();await setItemAsync(this.storage,`${this.storageKey}-code-verifier`,e);r=await generatePKCEChallenge(e);s=e===r?\"plain\":\"s256\"}try{return await _request(this.fetch,\"POST\",`${this.url}/recover`,{body:{email:e,code_challenge:r,code_challenge_method:s,gotrue_meta_security:{captcha_token:t.captchaToken}},headers:this.headers,redirectTo:t.redirectTo})}catch(e){if(isAuthError(e))return{data:null,error:e};throw e}}\n/**\n     * Generates a new JWT.\n     * @param refreshToken A valid refresh token that was returned on login.\n     */async _refreshAccessToken(e){const t=`#_refreshAccessToken(${e.substring(0,5)}...)`;this._debug(t,\"begin\");try{const r=Date.now();return await retryable((async r=>{await sleep(200*r);this._debug(t,\"refreshing attempt\",r);return await _request(this.fetch,\"POST\",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:e},headers:this.headers,xform:_sessionResponse})}),((e,t,s)=>s&&s.error&&isAuthRetryableFetchError(s.error)&&Date.now()+200*(e+1)-r<d))}catch(e){this._debug(t,\"error\",e);if(isAuthError(e))return{data:{session:null,user:null},error:e};throw e}finally{this._debug(t,\"end\")}}_isValidSession(e){const t=\"object\"===typeof e&&null!==e&&\"access_token\"in e&&\"refresh_token\"in e&&\"expires_at\"in e;return t}async _handleProviderSignIn(e,t){const r=await this._getUrlForProvider(e,{redirectTo:t.redirectTo,scopes:t.scopes,queryParams:t.queryParams});this._debug(\"#_handleProviderSignIn()\",\"provider\",e,\"options\",t,\"url\",r);isBrowser()&&!t.skipBrowserRedirect&&window.location.assign(r);return{data:{provider:e,url:r},error:null}}async _recoverAndRefresh(){var e;const t=\"#_recoverAndRefresh()\";this._debug(t,\"begin\");try{const r=await getItemAsync(this.storage,this.storageKey);this._debug(t,\"session from storage\",r);if(!this._isValidSession(r)){this._debug(t,\"session is not valid\");null!==r&&await this._removeSession();return}const s=Math.round(Date.now()/1e3);const i=(null!==(e=r.expires_at)&&void 0!==e?e:Infinity)<s+l;this._debug(t,`session has${i?\"\":\" not\"} expired with margin of ${l}s`);if(i){if(this.autoRefreshToken&&r.refresh_token){const{error:e}=await this._callRefreshToken(r.refresh_token);if(e){console.error(e);if(!isAuthRetryableFetchError(e)){this._debug(t,\"refresh failed with a non-retryable error, removing the session\",e);await this._removeSession()}}}}else await this._notifyAllSubscribers(\"SIGNED_IN\",r)}catch(e){this._debug(t,\"error\",e);console.error(e);return}finally{this._debug(t,\"end\")}}async _callRefreshToken(e){var t,r;if(!e)throw new AuthSessionMissingError;if(this.refreshingDeferred)return this.refreshingDeferred.promise;const s=`#_callRefreshToken(${e.substring(0,5)}...)`;this._debug(s,\"begin\");try{this.refreshingDeferred=new Deferred;const{data:t,error:r}=await this._refreshAccessToken(e);if(r)throw r;if(!t.session)throw new AuthSessionMissingError;await this._saveSession(t.session);await this._notifyAllSubscribers(\"TOKEN_REFRESHED\",t.session);const i={session:t.session,error:null};this.refreshingDeferred.resolve(i);return i}catch(e){this._debug(s,\"error\",e);if(isAuthError(e)){const r={session:null,error:e};null===(t=this.refreshingDeferred)||void 0===t?void 0:t.resolve(r);return r}null===(r=this.refreshingDeferred)||void 0===r?void 0:r.reject(e);throw e}finally{this.refreshingDeferred=null;this._debug(s,\"end\")}}async _notifyAllSubscribers(e,t,r=true){const s=`#_notifyAllSubscribers(${e})`;this._debug(s,\"begin\",t,`broadcast = ${r}`);try{this.broadcastChannel&&r&&this.broadcastChannel.postMessage({event:e,session:t});const i=[];const o=Array.from(this.stateChangeEmitters.values()).map((async r=>{try{await r.callback(e,t)}catch(e){i.push(e)}}));await Promise.all(o);if(i.length>0){for(let e=0;e<i.length;e+=1)console.error(i[e]);throw i[0]}}finally{this._debug(s,\"end\")}}async _saveSession(e){this._debug(\"#_saveSession()\",e);await this._persistSession(e)}_persistSession(e){this._debug(\"#_persistSession()\",e);return setItemAsync(this.storage,this.storageKey,e)}async _removeSession(){this._debug(\"#_removeSession()\");await removeItemAsync(this.storage,this.storageKey)}_removeVisibilityChangedCallback(){this._debug(\"#_removeVisibilityChangedCallback()\");const e=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{e&&isBrowser()&&(null===window||void 0===window?void 0:window.removeEventListener)&&window.removeEventListener(\"visibilitychange\",e)}catch(e){console.error(\"removing visibilitychange callback failed\",e)}}async _startAutoRefresh(){await this._stopAutoRefresh();this._debug(\"#_startAutoRefresh()\");const e=setInterval((()=>this._autoRefreshTokenTick()),d);this.autoRefreshTicker=e;e&&\"object\"===typeof e&&\"function\"===typeof e.unref?e.unref():\"undefined\"!==typeof Deno&&\"function\"===typeof Deno.unrefTimer&&Deno.unrefTimer(e);setTimeout((async()=>{await this.initializePromise;await this._autoRefreshTokenTick()}),0)}async _stopAutoRefresh(){this._debug(\"#_stopAutoRefresh()\");const e=this.autoRefreshTicker;this.autoRefreshTicker=null;e&&clearInterval(e)}async startAutoRefresh(){this._removeVisibilityChangedCallback();await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback();await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug(\"#_autoRefreshTokenTick()\",\"begin\");try{await this._acquireLock(0,(async()=>{try{const e=Date.now();try{return await this._useSession((async t=>{const{data:{session:r}}=t;if(!r||!r.refresh_token||!r.expires_at){this._debug(\"#_autoRefreshTokenTick()\",\"no session\");return}const s=Math.floor((1e3*r.expires_at-e)/d);this._debug(\"#_autoRefreshTokenTick()\",`access token expires in ${s} ticks, a tick lasts ${d}ms, refresh threshold is ${f} ticks`);s<=f&&await this._callRefreshToken(r.refresh_token)}))}catch(e){console.error(\"Auto refresh tick failed with error. This is likely a transient error.\",e)}}finally{this._debug(\"#_autoRefreshTokenTick()\",\"end\")}}))}catch(e){if(!(e.isAcquireTimeout||e instanceof LockAcquireTimeoutError))throw e;this._debug(\"auto refresh token tick lock not available\")}}async _handleVisibilityChange(){this._debug(\"#_handleVisibilityChange()\");if(!isBrowser()||!(null===window||void 0===window?void 0:window.addEventListener)){this.autoRefreshToken&&this.startAutoRefresh();return false}try{this.visibilityChangedCallback=async()=>await this._onVisibilityChanged(false);null===window||void 0===window?void 0:window.addEventListener(\"visibilitychange\",this.visibilityChangedCallback);await this._onVisibilityChanged(true)}catch(e){console.error(\"_handleVisibilityChange\",e)}}async _onVisibilityChanged(e){const t=`#_onVisibilityChanged(${e})`;this._debug(t,\"visibilityState\",document.visibilityState);if(\"visible\"===document.visibilityState){this.autoRefreshToken&&this._startAutoRefresh();if(!e){await this.initializePromise;await this._acquireLock(-1,(async()=>{\"visible\"===document.visibilityState?await this._recoverAndRefresh():this._debug(t,\"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting\")}))}}else\"hidden\"===document.visibilityState&&this.autoRefreshToken&&this._stopAutoRefresh()}\n/**\n     * Generates the relevant login URL for a third-party provider.\n     * @param options.redirectTo A URL or mobile address to send the user to after they are confirmed.\n     * @param options.scopes A space-separated list of scopes granted to the OAuth application.\n     * @param options.queryParams An object of key-value pairs containing query parameters granted to the OAuth application.\n     */async _getUrlForProvider(e,t){const r=[`provider=${encodeURIComponent(e)}`];(null===t||void 0===t?void 0:t.redirectTo)&&r.push(`redirect_to=${encodeURIComponent(t.redirectTo)}`);(null===t||void 0===t?void 0:t.scopes)&&r.push(`scopes=${encodeURIComponent(t.scopes)}`);if(\"pkce\"===this.flowType){const e=generatePKCEVerifier();await setItemAsync(this.storage,`${this.storageKey}-code-verifier`,e);const t=await generatePKCEChallenge(e);const s=e===t?\"plain\":\"s256\";this._debug(\"PKCE\",\"code verifier\",`${e.substring(0,5)}...`,\"code challenge\",t,\"method\",s);const i=new URLSearchParams({code_challenge:`${encodeURIComponent(t)}`,code_challenge_method:`${encodeURIComponent(s)}`});r.push(i.toString())}if(null===t||void 0===t?void 0:t.queryParams){const e=new URLSearchParams(t.queryParams);r.push(e.toString())}return`${this.url}/authorize?${r.join(\"&\")}`}async _unenroll(e){try{return await this._useSession((async t=>{var r;const{data:s,error:i}=t;return i?{data:null,error:i}:await _request(this.fetch,\"DELETE\",`${this.url}/factors/${e.factorId}`,{headers:this.headers,jwt:null===(r=null===s||void 0===s?void 0:s.session)||void 0===r?void 0:r.access_token})}))}catch(e){if(isAuthError(e))return{data:null,error:e};throw e}}async _enroll(e){try{return await this._useSession((async t=>{var r,s;const{data:i,error:o}=t;if(o)return{data:null,error:o};const{data:n,error:a}=await _request(this.fetch,\"POST\",`${this.url}/factors`,{body:{friendly_name:e.friendlyName,factor_type:e.factorType,issuer:e.issuer},headers:this.headers,jwt:null===(r=null===i||void 0===i?void 0:i.session)||void 0===r?void 0:r.access_token});if(a)return{data:null,error:a};(null===(s=null===n||void 0===n?void 0:n.totp)||void 0===s?void 0:s.qr_code)&&(n.totp.qr_code=`data:image/svg+xml;utf-8,${n.totp.qr_code}`);return{data:n,error:null}}))}catch(e){if(isAuthError(e))return{data:null,error:e};throw e}}async _verify(e){return this._acquireLock(-1,(async()=>{try{return await this._useSession((async t=>{var r;const{data:s,error:i}=t;if(i)return{data:null,error:i};const{data:o,error:n}=await _request(this.fetch,\"POST\",`${this.url}/factors/${e.factorId}/verify`,{body:{code:e.code,challenge_id:e.challengeId},headers:this.headers,jwt:null===(r=null===s||void 0===s?void 0:s.session)||void 0===r?void 0:r.access_token});if(n)return{data:null,error:n};await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+o.expires_in},o));await this._notifyAllSubscribers(\"MFA_CHALLENGE_VERIFIED\",o);return{data:o,error:n}}))}catch(e){if(isAuthError(e))return{data:null,error:e};throw e}}))}async _challenge(e){return this._acquireLock(-1,(async()=>{try{return await this._useSession((async t=>{var r;const{data:s,error:i}=t;return i?{data:null,error:i}:await _request(this.fetch,\"POST\",`${this.url}/factors/${e.factorId}/challenge`,{headers:this.headers,jwt:null===(r=null===s||void 0===s?void 0:s.session)||void 0===r?void 0:r.access_token})}))}catch(e){if(isAuthError(e))return{data:null,error:e};throw e}}))}async _challengeAndVerify(e){const{data:t,error:r}=await this._challenge({factorId:e.factorId});return r?{data:null,error:r}:await this._verify({factorId:e.factorId,challengeId:t.id,code:e.code})}async _listFactors(){const{data:{user:e},error:t}=await this.getUser();if(t)return{data:null,error:t};const r=(null===e||void 0===e?void 0:e.factors)||[];const s=r.filter((e=>\"totp\"===e.factor_type&&\"verified\"===e.status));return{data:{all:r,totp:s},error:null}}async _getAuthenticatorAssuranceLevel(){return this._acquireLock(-1,(async()=>await this._useSession((async e=>{var t,r;const{data:{session:s},error:i}=e;if(i)return{data:null,error:i};if(!s)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};const o=this._decodeJWT(s.access_token);let n=null;o.aal&&(n=o.aal);let a=n;const l=null!==(r=null===(t=s.user.factors)||void 0===t?void 0:t.filter((e=>\"verified\"===e.status)))&&void 0!==r?r:[];l.length>0&&(a=\"aal2\");const c=o.amr||[];return{data:{currentLevel:n,nextLevel:a,currentAuthenticationMethods:c},error:null}}))))}}GoTrueClient.nextInstanceID=0;export{AuthApiError,AuthError,AuthImplicitGrantRedirectError,AuthInvalidCredentialsError,AuthInvalidTokenResponseError,AuthPKCEGrantCodeExchangeError,AuthRetryableFetchError,AuthSessionMissingError,AuthUnknownError,CustomAuthError,GoTrueAdminApi,GoTrueClient,NavigatorLockAcquireTimeoutError,isAuthApiError,isAuthError,isAuthRetryableFetchError,u as lockInternals,navigatorLock};\n\n//# sourceMappingURL=index.js.map","import{FunctionsClient as e}from\"@supabase/functions-js\";export{FunctionsError,FunctionsFetchError,FunctionsHttpError,FunctionsRelayError}from\"@supabase/functions-js\";import{PostgrestClient as t}from\"@supabase/postgrest-js\";import{RealtimeClient as s}from\"@supabase/realtime-js\";export*from\"@supabase/realtime-js\";import{StorageClient as n}from\"@supabase/storage-js\";import i,{Headers as a}from\"@supabase/node-fetch\";import{GoTrueClient as r}from\"@supabase/gotrue-js\";export*from\"@supabase/gotrue-js\";const o=\"2.37.0\";let u=\"\";u=\"undefined\"!==typeof Deno?\"deno\":\"undefined\"!==typeof document?\"web\":\"undefined\"!==typeof navigator&&\"ReactNative\"===navigator.product?\"react-native\":\"node\";const l={\"X-Client-Info\":`supabase-js-${u}/${o}`};var h=(void 0,function(e,t,s,n){function adopt(e){return e instanceof s?e:new s((function(t){t(e)}))}return new(s||(s=Promise))((function(s,i){function fulfilled(e){try{step(n.next(e))}catch(e){i(e)}}function rejected(e){try{step(n.throw(e))}catch(e){i(e)}}function step(e){e.done?s(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))});const resolveFetch=e=>{let t;t=e||(\"undefined\"===typeof fetch?i:fetch);return(...e)=>t(...e)};const resolveHeadersConstructor=()=>\"undefined\"===typeof Headers?a:Headers;const fetchWithAuth=(e,t,s)=>{const n=resolveFetch(s);const i=resolveHeadersConstructor();return(s,a)=>h(void 0,void 0,void 0,(function*(){var r;const o=null!==(r=yield t())&&void 0!==r?r:e;let u=new i(null===a||void 0===a?void 0:a.headers);u.has(\"apikey\")||u.set(\"apikey\",e);u.has(\"Authorization\")||u.set(\"Authorization\",`Bearer ${o}`);return n(s,Object.assign(Object.assign({},a),{headers:u}))}))};function stripTrailingSlash(e){return e.replace(/\\/$/,\"\")}function applySettingDefaults(e,t){const{db:s,auth:n,realtime:i,global:a}=e;const{db:r,auth:o,realtime:u,global:l}=t;return{db:Object.assign(Object.assign({},r),s),auth:Object.assign(Object.assign({},o),n),realtime:Object.assign(Object.assign({},u),i),global:Object.assign(Object.assign({},l),a)}}class SupabaseAuthClient extends r{constructor(e){super(e)}}var c=(void 0,function(e,t,s,n){function adopt(e){return e instanceof s?e:new s((function(t){t(e)}))}return new(s||(s=Promise))((function(s,i){function fulfilled(e){try{step(n.next(e))}catch(e){i(e)}}function rejected(e){try{step(n.throw(e))}catch(e){i(e)}}function step(e){e.done?s(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))});const d={headers:l};const p={schema:\"public\"};const f={autoRefreshToken:true,persistSession:true,detectSessionInUrl:true,flowType:\"implicit\"};const g={};class SupabaseClient{\n/**\n     * Create a new client for use in the browser.\n     * @param supabaseUrl The unique Supabase URL which is supplied when you create a new project in your project dashboard.\n     * @param supabaseKey The unique Supabase Key which is supplied when you create a new project in your project dashboard.\n     * @param options.db.schema You can switch in between schemas. The schema needs to be on the list of exposed schemas inside Supabase.\n     * @param options.auth.autoRefreshToken Set to \"true\" if you want to automatically refresh the token before expiring.\n     * @param options.auth.persistSession Set to \"true\" if you want to automatically save the user session into local storage.\n     * @param options.auth.detectSessionInUrl Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user.\n     * @param options.realtime Options passed along to realtime-js constructor.\n     * @param options.global.fetch A custom fetch implementation.\n     * @param options.global.headers Any additional headers to send with each network request.\n     */\nconstructor(e,s,n){var i,a,r,o,u,l,h,c;this.supabaseUrl=e;this.supabaseKey=s;if(!e)throw new Error(\"supabaseUrl is required.\");if(!s)throw new Error(\"supabaseKey is required.\");const b=stripTrailingSlash(e);this.realtimeUrl=`${b}/realtime/v1`.replace(/^http/i,\"ws\");this.authUrl=`${b}/auth/v1`;this.storageUrl=`${b}/storage/v1`;this.functionsUrl=`${b}/functions/v1`;const v=`sb-${new URL(this.authUrl).hostname.split(\".\")[0]}-auth-token`;const m={db:p,realtime:g,auth:Object.assign(Object.assign({},f),{storageKey:v}),global:d};const y=applySettingDefaults(null!==n&&void 0!==n?n:{},m);this.storageKey=null!==(a=null===(i=y.auth)||void 0===i?void 0:i.storageKey)&&void 0!==a?a:\"\";this.headers=null!==(o=null===(r=y.global)||void 0===r?void 0:r.headers)&&void 0!==o?o:{};this.auth=this._initSupabaseAuthClient(null!==(u=y.auth)&&void 0!==u?u:{},this.headers,null===(l=y.global)||void 0===l?void 0:l.fetch);this.fetch=fetchWithAuth(s,this._getAccessToken.bind(this),null===(h=y.global)||void 0===h?void 0:h.fetch);this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers},y.realtime));this.rest=new t(`${b}/rest/v1`,{headers:this.headers,schema:null===(c=y.db)||void 0===c?void 0:c.schema,fetch:this.fetch});this._listenForAuthEvents()}get functions(){return new e(this.functionsUrl,{headers:this.headers,customFetch:this.fetch})}get storage(){return new n(this.storageUrl,this.headers,this.fetch)}\n/**\n     * Perform a query on a table or a view.\n     *\n     * @param relation - The table or view name to query\n     */from(e){return this.rest.from(e)}\n/**\n     * Perform a query on a schema distinct from the default schema supplied via\n     * the `options.db.schema` constructor parameter.\n     *\n     * The schema needs to be on the list of exposed schemas inside Supabase.\n     *\n     * @param schema - The name of the schema to query\n     */schema(e){return this.rest.schema(e)}\n/**\n     * Perform a function call.\n     *\n     * @param fn - The function name to call\n     * @param args - The arguments to pass to the function call\n     * @param options - Named parameters\n     * @param options.head - When set to `true`, `data` will not be returned.\n     * Useful if you only need the count.\n     * @param options.count - Count algorithm to use to count rows returned by the\n     * function. Only applicable for [set-returning\n     * functions](https://www.postgresql.org/docs/current/functions-srf.html).\n     *\n     * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n     * hood.\n     *\n     * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n     * statistics under the hood.\n     *\n     * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n     * numbers.\n     */rpc(e,t={},s){return this.rest.rpc(e,t,s)}\n/**\n     * Creates a Realtime channel with Broadcast, Presence, and Postgres Changes.\n     *\n     * @param {string} name - The name of the Realtime channel.\n     * @param {Object} opts - The options to pass to the Realtime channel.\n     *\n     */channel(e,t={config:{}}){return this.realtime.channel(e,t)}getChannels(){return this.realtime.getChannels()}\n/**\n     * Unsubscribes and removes Realtime channel from Realtime client.\n     *\n     * @param {RealtimeChannel} channel - The name of the Realtime channel.\n     *\n     */removeChannel(e){return this.realtime.removeChannel(e)}removeAllChannels(){return this.realtime.removeAllChannels()}_getAccessToken(){var e,t;return c(this,void 0,void 0,(function*(){const{data:s}=yield this.auth.getSession();return null!==(t=null===(e=s.session)||void 0===e?void 0:e.access_token)&&void 0!==t?t:null}))}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:t,detectSessionInUrl:s,storage:n,storageKey:i,flowType:a,debug:r},o,u){const l={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new SupabaseAuthClient({url:this.authUrl,headers:Object.assign(Object.assign({},l),o),storageKey:i,autoRefreshToken:e,persistSession:t,detectSessionInUrl:s,storage:n,flowType:a,debug:r,fetch:u})}_initRealtimeClient(e){return new s(this.realtimeUrl,Object.assign(Object.assign({},e),{params:Object.assign({apikey:this.supabaseKey},null===e||void 0===e?void 0:e.params)}))}_listenForAuthEvents(){let e=this.auth.onAuthStateChange(((e,t)=>{this._handleTokenChanged(e,\"CLIENT\",null===t||void 0===t?void 0:t.access_token)}));return e}_handleTokenChanged(e,t,s){if(\"TOKEN_REFRESHED\"!==e&&\"SIGNED_IN\"!==e||this.changedAccessToken===s){if(\"SIGNED_OUT\"===e){this.realtime.setAuth(this.supabaseKey);\"STORAGE\"==t&&this.auth.signOut();this.changedAccessToken=void 0}}else{this.realtime.setAuth(null!==s&&void 0!==s?s:null);this.changedAccessToken=s}}}const createClient=(e,t,s)=>new SupabaseClient(e,t,s);export{SupabaseClient,createClient};\n\n//# sourceMappingURL=index.js.map","// AuthStore.js - Simple global auth state without React hooks\nimport{createClient}from\"@supabase/supabase-js\";// Supabase configuration\nconst supabaseUrl=\"https://xszmhiwwqyufpyjgfvwy.supabase.co\";const supabaseAnonKey=\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inhzem1oaXd3cXl1ZnB5amdmdnd5Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDA1MDA3NjIsImV4cCI6MjA1NjA3Njc2Mn0.HiAwORViAulJZTPnnZBwuYozPINrB8IP5_mCrXH2z2s\";// Global state object\nconst authState={isAuthenticated:false,isLoading:true,user:null,error:null,listeners:[]};// Function to notify listeners when state changes\nfunction notifyListeners(){authState.listeners.forEach(listener=>{try{listener({...authState});}catch(error){console.error(\"Error in auth state listener:\",error);}});}// Update state and notify listeners\nfunction updateState(newState){Object.assign(authState,newState);notifyListeners();}// Subscribe to auth state changes\nexport function subscribeToAuthState(listener){authState.listeners.push(listener);// Return unsubscribe function\nreturn()=>{const index=authState.listeners.indexOf(listener);if(index!==-1){authState.listeners.splice(index,1);}};}// Get current auth state\nexport function getAuthState(){return{...authState};}// Initialize Supabase client\nlet supabaseClient=null;export async function getSupabaseClient(){if(supabaseClient)return supabaseClient;try{supabaseClient=createClient(supabaseUrl,supabaseAnonKey,{auth:{persistSession:true,autoRefreshToken:true,detectSessionInUrl:true}});// Set up auth state change listener\nsupabaseClient.auth.onAuthStateChange((event,session)=>{console.log(\"Auth state change:\",event);if(event===\"SIGNED_IN\"&&session){// User signed in\nupdateState({isAuthenticated:true,user:session.user,isLoading:false,error:null});// Store in localStorage as backup\nlocalStorage.setItem(\"supabase.user\",JSON.stringify(session.user));}else if(event===\"SIGNED_OUT\"||event===\"USER_DELETED\"){// User signed out\nupdateState({isAuthenticated:false,user:null,isLoading:false,error:null});// Remove from localStorage\nlocalStorage.removeItem(\"supabase.user\");}});return supabaseClient;}catch(error){console.error(\"Failed to initialize Supabase client:\",error);updateState({error:\"Authentication service unavailable\",isLoading:false});return null;}}// Initialize auth state\nexport async function initAuth(){updateState({isLoading:true});try{const client=await getSupabaseClient();if(!client){throw new Error(\"Failed to initialize authentication client\");}// Get current session\nconst{data:{session}}=await client.auth.getSession();if(session){// User is authenticated\nupdateState({isAuthenticated:true,user:session.user,isLoading:false,error:null});console.log(\"session\",session.user);// Store in localStorage as backup\nlocalStorage.setItem(\"supabase.user\",JSON.stringify(session.user));}else{// No active session\nupdateState({isAuthenticated:false,user:null,isLoading:false,error:null});// Check for stored user as fallback\nconst storedUser=localStorage.getItem(\"supabase.user\");if(storedUser){try{const userData=JSON.parse(storedUser);console.log(\"Found stored user data:\",userData.email);}catch(e){localStorage.removeItem(\"supabase.user\");}}}}catch(error){console.error(\"Auth initialization error:\",error);updateState({error:\"Failed to verify authentication status\",isAuthenticated:false,user:null,isLoading:false});}return getAuthState();}export async function loginWithEmail(email,password){updateState({isLoading:true});try{const client=await getSupabaseClient();if(!client)throw new Error(\"Failed to initialize Supabase\");const{data,error}=await client.auth.signInWithPassword({email,password});if(error)throw error;updateState({isLoading:false});return{success:true};}catch(error){updateState({isLoading:false});return{error:error.message||\"Failed to log in\"};}}// Send magic link for login\nexport async function sendMagicLink(email,redirectTo=\"/products\"){updateState({isLoading:true});console.log(\"redirectTo\",redirectTo);try{const client=await getSupabaseClient();if(!client){throw new Error(\"Authentication service unavailable\");}// Create the full redirect URL including domain\nconst fullRedirectUrl=new URL(redirectTo.startsWith(\"http\")?redirectTo:`${window.location.origin}${redirectTo.startsWith(\"/\")?redirectTo:`/${redirectTo}`}`).toString();console.log(\"Sending magic link to:\",email);console.log(\"Redirect URL:\",fullRedirectUrl);const{error}=await client.auth.signInWithOtp({email,options:{emailRedirectTo:fullRedirectUrl,shouldCreateUser:true}});if(error)throw error;updateState({isLoading:false});return{success:true,message:\"Check your email for the magic link\"};}catch(error){console.error(\"Magic link error:\",error);updateState({isLoading:false});return{error:error.message||\"Failed to send magic link\"};}}// Sign out\nexport async function signOut(){updateState({isLoading:true});try{const client=await getSupabaseClient();if(!client){throw new Error(\"Authentication service unavailable\");}const{error}=await client.auth.signOut();if(error)throw error;// Update state\nupdateState({isAuthenticated:false,user:null,isLoading:false,error:null});// Clear local storage\nlocalStorage.removeItem(\"supabase.user\");return{success:true};}catch(error){console.error(\"Sign out error:\",error);updateState({isLoading:false});return{error:error.message||\"Failed to sign out\"};}}// TESTING FUNCTION - Call this from browser console to test the auth store\nexport async function testAuthStore(){console.log(\"Testing AuthStore...\");// 1. Initialize auth and get current state\nconsole.log(\"1. Initializing auth...\");const initialState=await initAuth();console.log(\"Initial auth state:\",initialState);// 2. Set up a state change listener\nconsole.log(\"2. Setting up state change listener...\");const unsubscribe=subscribeToAuthState(state=>{console.log(\"Auth state changed:\",state);});// 3. Get current client reference\nconsole.log(\"3. Getting Supabase client...\");const client=await getSupabaseClient();console.log(\"Supabase client initialized:\",!!client);console.log(\"AuthStore test complete! You can now:\");console.log(\"- Call 'sendMagicLink(email)' to test login\");console.log(\"- Call 'signOut()' to test logout\");console.log(\"- Call 'getAuthState()' to check current state\");return{getState:getAuthState,sendLink:sendMagicLink,signOut,unsubscribe};}// Initialize on load if in browser context\nif(typeof window!==\"undefined\"){// Run init after a small delay to ensure everything is loaded\nsetTimeout(()=>{initAuth().then(state=>{console.log(\"Auth initialized. Current state:\",state);});},100);}\nexport const __FramerMetadata__ = {\"exports\":{\"getAuthState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"signOut\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSupabaseClient\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"initAuth\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"subscribeToAuthState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"loginWithEmail\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"sendMagicLink\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"testAuthStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AuthStore.map","// ShopifyStore.ts - Global cart state management for Shopify integration\n// Types for Shopify data\n// Global state object\nconst cartState={items:[],isLoading:false,error:null,listeners:[]};// Function to notify listeners when state changes\nfunction notifyListeners(){cartState.listeners.forEach(listener=>{try{listener({...cartState});}catch(error){console.error(\"Error in cart state listener:\",error);}});}// Update state and notify listeners\nfunction updateState(newState){Object.assign(cartState,newState);notifyListeners();}// Subscribe to cart state changes\nexport function subscribeToCartState(listener){cartState.listeners.push(listener);// Return unsubscribe function\nreturn()=>{const index=cartState.listeners.indexOf(listener);if(index!==-1){cartState.listeners.splice(index,1);}};}// Get current cart state\nexport function getCartState(){return{...cartState};}// Add item to cart\nexport function addToCart(product,variantIndex=0,quantity){// Clone current items\nconst items=[...cartState.items];const variant=product.variants[variantIndex];if(!variant){updateState({error:\"Selected variant not found\"});return{error:\"Selected variant not found\"};}// Check if a temporary quantity has been set for this variant\nlet qtyToAdd=quantity||1;// Check if item already exists in cart\nconst existingItemIndex=items.findIndex(item=>item.variantId===variant.id);if(existingItemIndex>=0){// Update quantity if already in cart\nitems[existingItemIndex].quantity+=qtyToAdd;}else{// Add new item to cart\nconst optionsText=variant.selectedOptions.map(opt=>`${opt.name}: ${opt.value}`).join(\", \");items.push({productId:product.id,variantId:variant.id,image:product.image,title:product.title===\"Default Title\"?\"\":product.title,price:variant.price.amount,quantity:qtyToAdd,options:optionsText});}// Update state\nupdateState({items,error:null});// Save to localStorage\nsaveCartToLocalStorage();return{success:true};}// Update item quantity\nexport function updateCartItemQuantity(variantId,quantity){const items=[...cartState.items];const itemIndex=items.findIndex(item=>item.variantId===variantId);if(itemIndex===-1){updateState({error:\"Item not found in cart\"});return{error:\"Item not found in cart\"};}if(quantity<=0){// Remove item if quantity is zero or negative\nitems.splice(itemIndex,1);}else{// Update quantity\nitems[itemIndex].quantity=quantity;}// Update state\nupdateState({items,error:null});// Save to localStorage\nsaveCartToLocalStorage();return{success:true};}// Remove item from cart\nexport function removeFromCart(variantId){const items=cartState.items.filter(item=>item.variantId!==variantId);// Update state\nupdateState({items,error:null});// Save to localStorage\nsaveCartToLocalStorage();return{success:true};}// Clear cart\nexport function clearCart(){updateState({items:[],error:null});// Clear localStorage\nlocalStorage.removeItem(\"shopify.cart\");return{success:true};}// Save cart to localStorage\nfunction saveCartToLocalStorage(){try{localStorage.setItem(\"shopify.cart\",JSON.stringify(cartState.items));}catch(error){console.error(\"Failed to save cart to localStorage:\",error);}}// Load cart from localStorage\nfunction loadCartFromLocalStorage(){try{const storedCart=localStorage.getItem(\"shopify.cart\");if(storedCart){const items=JSON.parse(storedCart);updateState({items,error:null});}}catch(error){console.error(\"Failed to load cart from localStorage:\",error);localStorage.removeItem(\"shopify.cart\");localStorage.removeItem(\"shopify.tempQuantities\");}}// Set up event listener for storage changes\nfunction setupStorageListener(){if(typeof window!==\"undefined\"){// Listen for storage events from other tabs/windows\nwindow.addEventListener(\"storage\",e=>{if(e.key===\"shopify.cart\"){try{const updatedItems=e.newValue?JSON.parse(e.newValue):[];updateState({items:updatedItems,error:null});}catch(error){console.error(\"Error processing storage event:\",error);}}});// Listen for custom storage events dispatched from our components\nwindow.addEventListener(\"storage-updated\",()=>{loadCartFromLocalStorage();});}}// Generate Shopify checkout URL with customer address data\nexport function generateCheckoutUrl(customerEmail,customerAddress){// Load fresh cart data from localStorage before generating URL\nloadCartFromLocalStorage();const{items}=cartState;if(items.length===0){updateState({error:\"Cart is empty\"});return{error:\"Cart is empty\"};}// Base URL for your Shopify store\nconst shopifyDomain=\"enua-pharma.myshopify.com\"// Replace with your actual domain\n;// Construct checkout URL\nlet url=`https://${shopifyDomain}/cart/`;// Add items\nitems.forEach((item,index)=>{if(index===0){url+=`${item.variantId}:${item.quantity}`;}else{url+=`,${item.variantId}:${item.quantity}`;}});// Start query params\nlet hasQueryParams=false;// Add customer email if available\nif(customerEmail){url+=`?checkout[email]=${encodeURIComponent(customerEmail)}`;hasQueryParams=true;}// Add shipping address information if available\nif(customerAddress){const separator=hasQueryParams?\"&\":\"?\";// Add shipping address params\nif(customerAddress.firstName){url+=`${separator}checkout[shipping_address][first_name]=${encodeURIComponent(customerAddress.firstName)}`;hasQueryParams=true;}if(customerAddress.lastName){const sep=hasQueryParams?\"&\":\"?\";url+=`${sep}checkout[shipping_address][last_name]=${encodeURIComponent(customerAddress.lastName)}`;hasQueryParams=true;}if(customerAddress.street){const sep=hasQueryParams?\"&\":\"?\";url+=`${sep}checkout[shipping_address][address1]=${encodeURIComponent(customerAddress.street)}`;hasQueryParams=true;}if(customerAddress.city){const sep=hasQueryParams?\"&\":\"?\";url+=`${sep}checkout[shipping_address][city]=${encodeURIComponent(customerAddress.city)}`;hasQueryParams=true;}if(customerAddress.zipcode){const sep=hasQueryParams?\"&\":\"?\";url+=`${sep}checkout[shipping_address][zip]=${encodeURIComponent(customerAddress.zipcode)}`;hasQueryParams=true;}if(customerAddress.country){const sep=hasQueryParams?\"&\":\"?\";url+=`${sep}checkout[shipping_address][country]=${encodeURIComponent(customerAddress.country)}`;hasQueryParams=true;}// Add customer number as company if available\nif(customerAddress.customerNumber){const sep=hasQueryParams?\"&\":\"?\";url+=`${sep}checkout[shipping_address][company]=${encodeURIComponent(`Customer #${customerAddress.customerNumber}`)}`;hasQueryParams=true;}}return{success:true,checkoutUrl:url};}// Calculate cart totals\nexport function getCartTotals(){const{items}=cartState;const subtotal=items.reduce((total,item)=>{return total+parseFloat(item.price)*item.quantity;},0);return{subtotal,itemCount:items.reduce((count,item)=>count+item.quantity,0),uniqueItemCount:items.length};}// Initialize cart on load\nexport function initCart(){// Load cart from localStorage\nloadCartFromLocalStorage();// Expose key cart functions to the window object for global access\nif(typeof window!==\"undefined\"){window.updateCartItemQuantity=updateCartItemQuantity;window.removeFromCart=removeFromCart;window.getCartState=getCartState;window.generateCheckoutUrl=generateCheckoutUrl;}return getCartState();}// TESTING FUNCTION - Call this from browser console to test the cart store\nexport function testCartStore(){console.log(\"Testing ShopifyStore...\");// 1. Initialize cart and get current state\nconsole.log(\"1. Initializing cart...\");const initialState=initCart();console.log(\"Initial cart state:\",initialState);// 2. Set up a state change listener\nconsole.log(\"2. Setting up state change listener...\");const unsubscribe=subscribeToCartState(state=>{console.log(\"Cart state changed:\",state);});// 3. Sample product for testing\nconst sampleProduct={id:\"9920907968811\",variants:[{id:\"50348689785131\",title:\"Default Title\",price:{amount:\"10.0\"},selectedOptions:[{name:\"Title\",value:\"Default Title\"}]}]};console.log(\"ShopifyStore test complete! You can now:\");console.log(\"- Call 'addToCart(sampleProduct)' to test adding to cart\");console.log(\"- Call 'updateCartItemQuantity(variantId, quantity)' to test updating quantity\");console.log(\"- Call 'removeFromCart(variantId)' to test removing an item\");console.log(\"- Call 'getCartState()' to check current state\");console.log(\"- Call 'generateCheckoutUrl()' to test checkout URL generation\");return{getState:getCartState,addToCart:(qty=1)=>addToCart(sampleProduct,0,qty),updateQuantity:qty=>updateCartItemQuantity(sampleProduct.variants[0].id,qty),removeItem:()=>removeFromCart(sampleProduct.variants[0].id),clear:clearCart,checkout:()=>generateCheckoutUrl(),unsubscribe};}// Initialize on load if in browser context\nif(typeof window!==\"undefined\"){// Run init after a small delay to ensure everything is loaded\nsetTimeout(()=>{initCart();setupStorageListener()// Set up the storage listener\n;console.log(\"Cart initialized.\");},100);}\nexport const __FramerMetadata__ = {\"exports\":{\"removeFromCart\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCartTotals\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"initCart\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"generateCheckoutUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"testCartStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CartItem\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"updateCartItemQuantity\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CustomerAddress\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"addToCart\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ShopifyProduct\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TempQuantity\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"subscribeToCartState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ShopifyVariant\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCartState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"clearCart\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ShopifyStore.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{motion}from\"framer-motion\";import{useState}from\"react\";import{getCartState,generateCheckoutUrl,getCartTotals}from\"https://framerusercontent.com/modules/3SSeT0KQKgt2WsX1epBz/PutHE9ZddliUfUsFXM3j/ShopifyStore.js\";import{getAuthState}from\"https://framerusercontent.com/modules/x9sjpQeZzstJcS0iXNO6/QIZoilzVkSD0FinOjVmp/AuthStore.js\";// Styles\nconst buttonStyles={base:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",border:\"none\",outline:\"none\",cursor:\"pointer\",fontWeight:600,transition:\"all 0.2s ease\"},disabled:{opacity:.5,cursor:\"not-allowed\"}};// CheckoutButton Component\nexport default function CheckoutButton(props){const{text,width,height,backgroundColor,textColor,hoverColor,borderRadius,font,onCheckout}=props;const[isProcessing,setIsProcessing]=useState(false);// Handle checkout\nconst handleCheckout=()=>{// Get cart state and cart totals\nconst cartState=getCartState();const totals=getCartTotals();// Don't proceed if cart is empty or already processing\nif(totals.itemCount===0||isProcessing){return;}setIsProcessing(true);try{// Get user data from auth state if available\nconst authState=getAuthState();const userEmail=authState.user?authState.user.email:undefined;// Create customer address object from user metadata\nlet customerAddress=undefined;if(authState.user&&authState.user.user_metadata){const metadata=authState.user.user_metadata;customerAddress={firstName:metadata.customer_number,street:metadata.customer_street,city:metadata.customer_city,zipcode:metadata.customer_zipcode,country:metadata.customer_country,customerNumber:metadata.customer_number};}// Generate checkout URL with customer address\nconst{success,checkoutUrl,error}=generateCheckoutUrl(userEmail,customerAddress);if(success&&checkoutUrl){// Call onCheckout callback if provided\nif(typeof onCheckout===\"function\"){onCheckout(checkoutUrl,cartState.items,totals);}// Open checkout URL in new tab\nwindow.open(checkoutUrl,\"_blank\");}else{console.error(\"Failed to generate checkout URL:\",error);}}catch(error){console.error(\"Checkout error:\",error);}setIsProcessing(false);};// Check if cart is empty\nconst totals=getCartTotals();const isCartEmpty=totals.itemCount===0;const isDisabled=isCartEmpty||isProcessing;return /*#__PURE__*/_jsx(motion.button,{style:{...buttonStyles.base,backgroundColor,color:textColor,borderRadius,width:\"100%\",height:\"100%\",fontFamily:font.fontFamily,fontSize:font.fontSize,fontWeight:font.fontWeight,lineHeight:font.lineHeight,letterSpacing:font.letterSpacing,textAlign:\"center\",...isDisabled&&buttonStyles.disabled},whileHover:!isDisabled?{backgroundColor:hoverColor}:{},whileTap:!isDisabled?{scale:.98}:{},onClick:handleCheckout,disabled:isDisabled,children:isProcessing?\"Processing...\":text});}// Default props\nCheckoutButton.defaultProps={text:\"Checkout\",backgroundColor:\"#4353FF\",textColor:\"#FFFFFF\",hoverColor:\"#3442CC\",borderRadius:8,font:{fontSize:16,fontFamily:\"Inter, sans-serif\",fontWeight:600,lineHeight:\"1.5em\",letterSpacing:\"0em\"}};// Property controls\naddPropertyControls(CheckoutButton,{text:{type:ControlType.String,title:\"Button Text\",defaultValue:CheckoutButton.defaultProps.text},backgroundColor:{type:ControlType.Color,title:\"Background Color\",defaultValue:CheckoutButton.defaultProps.backgroundColor},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:CheckoutButton.defaultProps.textColor},hoverColor:{type:ControlType.Color,title:\"Hover Color\",defaultValue:CheckoutButton.defaultProps.hoverColor},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:CheckoutButton.defaultProps.borderRadius,min:0,max:100,step:1},font:{type:ControlType.Font,controls:\"extended\",displayFontSize:true,displayTextAlignment:false,defaultFontType:\"sans-serif\",defaultValue:CheckoutButton.defaultProps.font},onCheckout:{type:ControlType.EventHandler,title:\"On Checkout\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CheckoutButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CheckoutButton.map","// Generated by Framer (9840458)\nconst valuesByLocaleId={MnMbaeoJh:{v0:\"enua\",v1:\"Redefining HighCulture. As a leading manufacturer of medical cannabis, we are committed to delivering exceptional quality and a dependable supply. Our premium flowers are cultivated to the highest standards by our GMP-certified partner growers in Canada.\"}};function getLocalizedValue(key,locale){while(locale){const values=valuesByLocaleId[locale.id];if(values){const value=values[key];if(value)return value;}locale=locale.fallback;}}export default function metadata(params,activeLocale){return{customHTMLHeadEnd:'<meta name=\"google-site-verification\" content=\"_33JYgj-ba7eWm4ecypnay68op24WipbhOQqAzdN9rQ\">',description:getLocalizedValue(\"v1\",activeLocale)??\"Redefining HighCulture. Als Hersteller von medizinischem Cannabis stehen wir f\\xfcr Qualit\\xe4t ohne Kompromisse, und zuverl\\xe4ssige Versorgung. Unsere Bl\\xfcten werden von unseren GMP-zertifizierten Partner-Growern in Kanada in h\\xf6chster Qualit\\xe4t produziert.\",favicon:\"https://framerusercontent.com/assets/qI0PYgrGlWxb9KcoUgtXoCAOH0.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/5CoEL5v6vepi80o1V4PEh9r3oqg.jpg\",title:getLocalizedValue(\"v0\",activeLocale)??\"enua\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}