{"version":3,"file":"shared-lib.CIIsX1mo.mjs","names":["t","n","r","e","resolveFetch","o","i","s","c","u","a","l","d","e","t","r","o","n","s","Headers","i","Response","a","fetch","f","u","d","h","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","c","a","h","l","e","d","u","f","p","v","t","_handleRequest","e","o","_getRequestParams","r","n","i","s","handleError","a","resolveFetch","_getErrorMessage","c","u","d","e","t","r","i","s","o","n","a","l","d","u","resolveFetch","h","c","f","v","e","s","n","i","a","r","o","l","u","t","p","h","g","v","m","useSupabase","FALLBACK_URL","FALLBACK_ANON","React.useMemo","buildOnboardingRedirect","u","ABS_ONBOARDING_BASE","useIsClient","React.useState","Portal","OverlayModal","Input","RoleVerifyModal","STASH_NEW","STASH_OLD","e","resolveRoleAndPath","ROUTE_AFTER_LOGIN","p","c","m","r","a","LoginModal","inputStyle","parseCart","getSrc","CartIndicator","React.useCallback","CART_STORAGE_KEY","s","CART_EVENT","useRoleProfile","name","avatarUrl","AvatarButton","Field","EditLoginDetailsButton","_Fragment","AuthAwareActions","BuyLocalNavigationBar","defaultLinks","useCallback","i","useCallback","i","React.useMemo","u","React.useState","e","p","m","r","a","c","React.useCallback","s","i","_Fragment","React.useRef","v"],"sources":["https:/ga.jspm.io/npm:@supabase/functions-js@2.1.2/dist/module/index.js","https:/ga.jspm.io/npm:cross-fetch@3.1.5/dist/browser-ponyfill.js","https:/ga.jspm.io/npm:@supabase/postgrest-js@1.7.1/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.7.3/dist/module/index.js","https:/ga.jspm.io/npm:@supabase/storage-js@2.5.1/dist/module/index.js","https:/ga.jspm.io/npm:@supabase/gotrue-js@2.30.0/dist/module/index.js","https:/ga.jspm.io/npm:@supabase/supabase-js@2.25.0/dist/module/index.js","https:/framerusercontent.com/modules/w4CZOTApXymcSlehJFSM/4SHPUVnQv8UXLxQvZi0Y/AuthAwareActions.js","https:/framerusercontent.com/modules/8qKSb1mOakysNnv8h3fV/48kqMEtKCgxxLhvethJ6/BuyLocalNavigationBar_1.js","https:/framerusercontent.com/modules/OyKg6mksnZMB6BIoPFyZ/VL7RN2qRfXrHgSF7YYXB/BuyLocalNavigationBar_2.js","https:/framerusercontent.com/modules/fD1oBqQd4Jm7nTt0v9qc/LOJvhEDtJ1K9eWa9KU78/MobileNavigation_1.js"],"sourcesContent":["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())}))});const resolveFetch=e=>{let n;n=e||(\"undefined\"===typeof fetch?(...e)=>t(void 0,void 0,void 0,(function*(){return yield(yield import(\"cross-fetch\")).fetch(...e)})):fetch);return(...t)=>n(...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 e=(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(t,n={}){var r;return e(this,void 0,void 0,(function*(){try{const{headers:e,method:o,body:i}=n;let s={};let c;if(i&&(e&&!Object.prototype.hasOwnProperty.call(e,\"Content-Type\")||!e))if(\"undefined\"!==typeof Blob&&i instanceof Blob||i instanceof ArrayBuffer){s[\"Content-Type\"]=\"application/octet-stream\";c=i}else if(\"string\"===typeof i){s[\"Content-Type\"]=\"text/plain\";c=i}else if(\"undefined\"!==typeof FormData&&i instanceof FormData)c=i;else{s[\"Content-Type\"]=\"application/json\";c=JSON.stringify(i)}const u=yield this.fetch(`${this.url}/${t}`,{method:o||\"POST\",headers:Object.assign(Object.assign(Object.assign({},s),this.headers),e),body:c}).catch((t=>{throw new FunctionsFetchError(t)}));const a=u.headers.get(\"x-relay-error\");if(a&&\"true\"===a)throw new FunctionsRelayError(u);if(!u.ok)throw new FunctionsHttpError(u);let l=(null!==(r=u.headers.get(\"Content-Type\"))&&void 0!==r?r:\"text/plain\").split(\";\")[0].trim();let d;d=\"application/json\"===l?yield u.json():\"application/octet-stream\"===l?yield u.blob():\"multipart/form-data\"===l?yield u.formData():yield u.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 t={};var r=\"undefined\"!==typeof self?self:t;var o=function(){function F(){(this||e).fetch=false;(this||e).DOMException=r.DOMException}F.prototype=r;return new F}();(function(t){(function(r){var o={searchParams:\"URLSearchParams\"in t,iterable:\"Symbol\"in t&&\"iterator\"in Symbol,blob:\"FileReader\"in t&&\"Blob\"in t&&function(){try{new Blob;return true}catch(e){return false}}(),formData:\"FormData\"in t,arrayBuffer:\"ArrayBuffer\"in t};function isDataView(e){return e&&DataView.prototype.isPrototypeOf(e)}if(o.arrayBuffer){var n=[\"[object Int8Array]\",\"[object Uint8Array]\",\"[object Uint8ClampedArray]\",\"[object Int16Array]\",\"[object Uint16Array]\",\"[object Int32Array]\",\"[object Uint32Array]\",\"[object Float32Array]\",\"[object Float64Array]\"];var s=ArrayBuffer.isView||function(e){return e&&n.indexOf(Object.prototype.toString.call(e))>-1}}function normalizeName(e){\"string\"!==typeof e&&(e=String(e));if(/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError(\"Invalid character in header field name\");return e.toLowerCase()}function normalizeValue(e){\"string\"!==typeof e&&(e=String(e));return e}function iteratorFor(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};o.iterable&&(t[Symbol.iterator]=function(){return t});return t}function Headers(t){(this||e).map={};t instanceof Headers?t.forEach((function(e,t){this.append(t,e)}),this||e):Array.isArray(t)?t.forEach((function(e){this.append(e[0],e[1])}),this||e):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this||e)}Headers.prototype.append=function(t,r){t=normalizeName(t);r=normalizeValue(r);var o=(this||e).map[t];(this||e).map[t]=o?o+\", \"+r:r};Headers.prototype.delete=function(t){delete(this||e).map[normalizeName(t)]};Headers.prototype.get=function(t){t=normalizeName(t);return this.has(t)?(this||e).map[t]:null};Headers.prototype.has=function(t){return(this||e).map.hasOwnProperty(normalizeName(t))};Headers.prototype.set=function(t,r){(this||e).map[normalizeName(t)]=normalizeValue(r)};Headers.prototype.forEach=function(t,r){for(var o in(this||e).map)(this||e).map.hasOwnProperty(o)&&t.call(r,(this||e).map[o],o,this||e)};Headers.prototype.keys=function(){var e=[];this.forEach((function(t,r){e.push(r)}));return iteratorFor(e)};Headers.prototype.values=function(){var e=[];this.forEach((function(t){e.push(t)}));return iteratorFor(e)};Headers.prototype.entries=function(){var e=[];this.forEach((function(t,r){e.push([r,t])}));return iteratorFor(e)};o.iterable&&(Headers.prototype[Symbol.iterator]=Headers.prototype.entries);function consumed(e){if(e.bodyUsed)return Promise.reject(new TypeError(\"Already read\"));e.bodyUsed=true}function fileReaderReady(e){return new Promise((function(t,r){e.onload=function(){t(e.result)};e.onerror=function(){r(e.error)}}))}function readBlobAsArrayBuffer(e){var t=new FileReader;var r=fileReaderReady(t);t.readAsArrayBuffer(e);return r}function readBlobAsText(e){var t=new FileReader;var r=fileReaderReady(t);t.readAsText(e);return r}function readArrayBufferAsText(e){var t=new Uint8Array(e);var r=new Array(t.length);for(var o=0;o<t.length;o++)r[o]=String.fromCharCode(t[o]);return r.join(\"\")}function bufferClone(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);t.set(new Uint8Array(e));return t.buffer}function Body(){(this||e).bodyUsed=false;(this||e)._initBody=function(t){(this||e)._bodyInit=t;if(t)if(\"string\"===typeof t)(this||e)._bodyText=t;else if(o.blob&&Blob.prototype.isPrototypeOf(t))(this||e)._bodyBlob=t;else if(o.formData&&FormData.prototype.isPrototypeOf(t))(this||e)._bodyFormData=t;else if(o.searchParams&&URLSearchParams.prototype.isPrototypeOf(t))(this||e)._bodyText=t.toString();else if(o.arrayBuffer&&o.blob&&isDataView(t)){(this||e)._bodyArrayBuffer=bufferClone(t.buffer);(this||e)._bodyInit=new Blob([(this||e)._bodyArrayBuffer])}else o.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(t)||s(t))?(this||e)._bodyArrayBuffer=bufferClone(t):(this||e)._bodyText=t=Object.prototype.toString.call(t);else(this||e)._bodyText=\"\";(this||e).headers.get(\"content-type\")||(\"string\"===typeof t?(this||e).headers.set(\"content-type\",\"text/plain;charset=UTF-8\"):(this||e)._bodyBlob&&(this||e)._bodyBlob.type?(this||e).headers.set(\"content-type\",(this||e)._bodyBlob.type):o.searchParams&&URLSearchParams.prototype.isPrototypeOf(t)&&(this||e).headers.set(\"content-type\",\"application/x-www-form-urlencoded;charset=UTF-8\"))};if(o.blob){(this||e).blob=function(){var t=consumed(this||e);if(t)return t;if((this||e)._bodyBlob)return Promise.resolve((this||e)._bodyBlob);if((this||e)._bodyArrayBuffer)return Promise.resolve(new Blob([(this||e)._bodyArrayBuffer]));if((this||e)._bodyFormData)throw new Error(\"could not read FormData body as blob\");return Promise.resolve(new Blob([(this||e)._bodyText]))};(this||e).arrayBuffer=function(){return(this||e)._bodyArrayBuffer?consumed(this||e)||Promise.resolve((this||e)._bodyArrayBuffer):this.blob().then(readBlobAsArrayBuffer)}}(this||e).text=function(){var t=consumed(this||e);if(t)return t;if((this||e)._bodyBlob)return readBlobAsText((this||e)._bodyBlob);if((this||e)._bodyArrayBuffer)return Promise.resolve(readArrayBufferAsText((this||e)._bodyArrayBuffer));if((this||e)._bodyFormData)throw new Error(\"could not read FormData body as text\");return Promise.resolve((this||e)._bodyText)};o.formData&&((this||e).formData=function(){return this.text().then(decode)});(this||e).json=function(){return this.text().then(JSON.parse)};return this||e}var i=[\"DELETE\",\"GET\",\"HEAD\",\"OPTIONS\",\"POST\",\"PUT\"];function normalizeMethod(e){var t=e.toUpperCase();return i.indexOf(t)>-1?t:e}function Request(t,r){r=r||{};var o=r.body;if(t instanceof Request){if(t.bodyUsed)throw new TypeError(\"Already read\");(this||e).url=t.url;(this||e).credentials=t.credentials;r.headers||((this||e).headers=new Headers(t.headers));(this||e).method=t.method;(this||e).mode=t.mode;(this||e).signal=t.signal;if(!o&&null!=t._bodyInit){o=t._bodyInit;t.bodyUsed=true}}else(this||e).url=String(t);(this||e).credentials=r.credentials||(this||e).credentials||\"same-origin\";!r.headers&&(this||e).headers||((this||e).headers=new Headers(r.headers));(this||e).method=normalizeMethod(r.method||(this||e).method||\"GET\");(this||e).mode=r.mode||(this||e).mode||null;(this||e).signal=r.signal||(this||e).signal;(this||e).referrer=null;if((\"GET\"===(this||e).method||\"HEAD\"===(this||e).method)&&o)throw new TypeError(\"Body not allowed for GET or HEAD requests\");this._initBody(o)}Request.prototype.clone=function(){return new Request(this||e,{body:(this||e)._bodyInit})};function decode(e){var t=new FormData;e.trim().split(\"&\").forEach((function(e){if(e){var r=e.split(\"=\");var o=r.shift().replace(/\\+/g,\" \");var n=r.join(\"=\").replace(/\\+/g,\" \");t.append(decodeURIComponent(o),decodeURIComponent(n))}}));return t}function parseHeaders(e){var t=new Headers;var r=e.replace(/\\r?\\n[\\t ]+/g,\" \");r.split(/\\r?\\n/).forEach((function(e){var r=e.split(\":\");var o=r.shift().trim();if(o){var n=r.join(\":\").trim();t.append(o,n)}}));return t}Body.call(Request.prototype);function Response(t,r){r||(r={});(this||e).type=\"default\";(this||e).status=void 0===r.status?200:r.status;(this||e).ok=(this||e).status>=200&&(this||e).status<300;(this||e).statusText=\"statusText\"in r?r.statusText:\"OK\";(this||e).headers=new Headers(r.headers);(this||e).url=r.url||\"\";this._initBody(t)}Body.call(Response.prototype);Response.prototype.clone=function(){return new Response((this||e)._bodyInit,{status:(this||e).status,statusText:(this||e).statusText,headers:new Headers((this||e).headers),url:(this||e).url})};Response.error=function(){var e=new Response(null,{status:0,statusText:\"\"});e.type=\"error\";return e};var a=[301,302,303,307,308];Response.redirect=function(e,t){if(-1===a.indexOf(t))throw new RangeError(\"Invalid status code\");return new Response(null,{status:t,headers:{location:e}})};r.DOMException=t.DOMException;try{new r.DOMException}catch(t){r.DOMException=function(t,r){(this||e).message=t;(this||e).name=r;var o=Error(t);(this||e).stack=o.stack};r.DOMException.prototype=Object.create(Error.prototype);r.DOMException.prototype.constructor=r.DOMException}function fetch(e,t){return new Promise((function(n,s){var i=new Request(e,t);if(i.signal&&i.signal.aborted)return s(new r.DOMException(\"Aborted\",\"AbortError\"));var a=new XMLHttpRequest;function abortXhr(){a.abort()}a.onload=function(){var e={status:a.status,statusText:a.statusText,headers:parseHeaders(a.getAllResponseHeaders()||\"\")};e.url=\"responseURL\"in a?a.responseURL:e.headers.get(\"X-Request-URL\");var t=\"response\"in a?a.response:a.responseText;n(new Response(t,e))};a.onerror=function(){s(new TypeError(\"Network request failed\"))};a.ontimeout=function(){s(new TypeError(\"Network request failed\"))};a.onabort=function(){s(new r.DOMException(\"Aborted\",\"AbortError\"))};a.open(i.method,i.url,true);\"include\"===i.credentials?a.withCredentials=true:\"omit\"===i.credentials&&(a.withCredentials=false);\"responseType\"in a&&o.blob&&(a.responseType=\"blob\");i.headers.forEach((function(e,t){a.setRequestHeader(t,e)}));if(i.signal){i.signal.addEventListener(\"abort\",abortXhr);a.onreadystatechange=function(){4===a.readyState&&i.signal.removeEventListener(\"abort\",abortXhr)}}a.send(\"undefined\"===typeof i._bodyInit?null:i._bodyInit)}))}fetch.polyfill=true;if(!t.fetch){t.fetch=fetch;t.Headers=Headers;t.Request=Request;t.Response=Response}r.Headers=Headers;r.Request=Request;r.Response=Response;r.fetch=fetch;Object.defineProperty(r,\"__esModule\",{value:true})})({})})(o);o.fetch.ponyfill=true;delete o.fetch.polyfill;var n=o;t=n.fetch;t.default=n.fetch;t.fetch=n.fetch;t.Headers=n.Headers;t.Request=n.Request;t.Response=n.Response;t=t;var s=t;const i=t.DOMException,a=t.Headers,f=t.Request,u=t.Response,d=t.fetch,h=t.__esModule;export{i as DOMException,a as Headers,f as Request,u as Response,h as __esModule,s as default,d as fetch};\n\n//# sourceMappingURL=browser-ponyfill.js.map","import e from\"cross-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 `from` and `to` inclusively.\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.\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`.\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.7.1\";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.schema=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.schema,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.schema,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.7.3\";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 c;(function(e){e.closed=\"closed\";e.errored=\"errored\";e.joined=\"joined\";e.joining=\"joining\";e.leaving=\"leaving\"})(c||(c={}));var a;(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\"})(a||(a={}));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 c=s.decode(e.slice(o,o+n));o+=n;const a=JSON.parse(s.decode(e.slice(o,e.byteLength)));return{ref:null,topic:r,event:c,payload:a}}}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 c={};this.map(n,((e,t)=>{o[e]||(c[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 a=s.filter((e=>i.indexOf(e.presence_ref)<0));o.length>0&&(r[e]=o);a.length>0&&(c[e]=a)}else r[e]=t}));return this.syncDiff(n,{joins:r,leaves:c},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=(void 0,function(e,t,s,i){function adopt(e){return e instanceof s?e:new s((function(t){t(e)}))}return new(s||(s=Promise))((function(s,n){function fulfilled(e){try{step(i.next(e))}catch(e){n(e)}}function rejected(e){try{step(i.throw(e))}catch(e){n(e)}}function step(e){e.done?s(e.value):adopt(e.value).then(fulfilled,rejected)}step((i=i.apply(e,t||[])).next())}))});var p;(function(e){e.ALL=\"*\";e.INSERT=\"INSERT\";e.UPDATE=\"UPDATE\";e.DELETE=\"DELETE\"})(p||(p={}));var v;(function(e){e.BROADCAST=\"broadcast\";e.PRESENCE=\"presence\";e.POSTGRES_CHANGES=\"postgres_changes\"})(v||(v={}));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=c.closed;this.joinedOnce=false;this.pushBuffer=[];this.params.config=Object.assign({broadcast:{ack:false,self:false},presence:{key:\"\"}},t.config);this.timeout=this.socket.timeout;this.joinPush=new Push(this,a.join,this.params,this.timeout);this.rejoinTimer=new Timer((()=>this._rejoinUntilConnected()),this.socket.reconnectAfterMs);this.joinPush.receive(\"ok\",(()=>{this.state=c.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=c.closed;this.socket._remove(this)}));this._onError((e=>{if(!this._isLeaving()&&!this._isClosed()){this.socket.log(\"channel\",`error ${this.topic}`,e);this.state=c.errored;this.rejoinTimer.scheduleTimeout()}}));this.joinPush.receive(\"timeout\",(()=>{if(this._isJoining()){this.socket.log(\"channel\",`timeout ${this.topic}`,this.joinPush.timeout);this.state=c.errored;this.rejoinTimer.scheduleTimeout()}}));this._on(a.reply,{},((e,t)=>{this._trigger(this._replyEventName(t),e)}));this.presence=new RealtimePresence(this)}subscribe(e,t=this.timeout){var s,i;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 c={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:c},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:c,table:a,filter:h}}=n;const l=t&&t[s];if(!l||l.event!==r||l.schema!==c||l.table!==a||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}track(e,t={}){return f(this,void 0,void 0,(function*(){return yield this.send({type:\"presence\",event:\"track\",payload:e},t.timeout||this.timeout)}))}untrack(e={}){return f(this,void 0,void 0,(function*(){return yield this.send({type:\"presence\",event:\"untrack\"},e)}))}on(e,t,s){return this._on(e,t,s)}send(e,t={}){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\")))}))}updateJoinPayload(e){this.joinPush.updatePayload(e)}unsubscribe(e=this.timeout){this.state=c.leaving;const onClose=()=>{this.socket.log(\"channel\",`leave ${this.topic}`);this._trigger(a.close,\"leave\",this._joinRef())};this.rejoinTimer.reset();this.joinPush.destroy();return new Promise((t=>{const s=new Push(this,a.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\",{})}))}_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:c,leave:h,join:l}=a;const d=[r,c,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,c,a;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===(c=null===(r=null===e||void 0===e?void 0:e.filter)||void 0===r?void 0:r.event)||void 0===c?void 0:c.toLocaleLowerCase();return\"*\"===s||s===(null===(a=null===t||void 0===t?void 0:t.event)||void 0===a?void 0:a.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===c.closed}_isJoined(){return this.state===c.joined}_isJoining(){return this.state===c.joining}_isLeaving(){return this.state===c.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(a.close,{},e)}_onError(e){this._on(a.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=c.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}}var g=(void 0,function(e,t,s,i){function adopt(e){return e instanceof s?e:new s((function(t){t(e)}))}return new(s||(s=Promise))((function(s,n){function fulfilled(e){try{step(i.next(e))}catch(e){n(e)}}function rejected(e){try{step(i.throw(e))}catch(e){n(e)}}function step(e){e.done?s(e.value):adopt(e.value).then(fulfilled,rejected)}step((i=i.apply(e,t||[])).next())}))});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;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.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 r=null===(o=null===i||void 0===i?void 0:i.params)||void 0===o?void 0:o.eventsPerSecond;r&&(this.eventsPerSecondLimitMs=Math.floor(1e3/r));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((()=>g(this,void 0,void 0,(function*(){this.disconnect();this.connect()}))),this.reconnectAfterMs)}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     */removeChannel(e){return g(this,void 0,void 0,(function*(){const t=yield e.unsubscribe();0===this.channels.length&&this.disconnect();return t}))}removeAllChannels(){return g(this,void 0,void 0,(function*(){const e=yield 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:{}}){this.isConnected()||this.connect();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(a.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(a.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{v as REALTIME_LISTEN_TYPES,p 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=e=>{let r;r=e||(\"undefined\"===typeof fetch?(...e)=>t(void 0,void 0,void 0,(function*(){return yield(yield import(\"cross-fetch\")).fetch(...e)})):fetch);return(...t)=>r(...t)};const resolveResponse=()=>t(void 0,void 0,void 0,(function*(){return\"undefined\"===typeof Response?(yield import(\"cross-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 one minute.\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.1\";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","var e=(void 0,function(e,t,r,s){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(s.next(e))}catch(e){i(e)}}function rejected(e){try{step(s.throw(e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))});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 t={tested:false,writable:false};const supportsLocalStorage=()=>{if(!isBrowser())return false;try{if(\"object\"!==typeof globalThis.localStorage)return false}catch(e){return false}if(t.tested)return t.writable;const e=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(e,e);globalThis.localStorage.removeItem(e);t.tested=true;t.writable=true}catch(e){t.tested=true;t.writable=false}return t.writable};function getParameterByName(e,t){var r;t||(t=(null===(r=null===window||void 0===window?void 0:window.location)||void 0===r?void 0:r.href)||\"\");e=e.replace(/[\\[\\]]/g,\"\\\\$&\");const s=new RegExp(\"[?&#]\"+e+\"(=([^&#]*)|&|#|$)\"),i=s.exec(t);return i?i[2]?decodeURIComponent(i[2].replace(/\\+/g,\" \")):\"\":null}const resolveFetch=t=>{let r;r=t||(\"undefined\"===typeof fetch?(...t)=>e(void 0,void 0,void 0,(function*(){return yield(yield import(\"cross-fetch\")).fetch(...t)})):fetch);return(...e)=>r(...e)};const looksLikeFetchResponse=e=>\"object\"===typeof e&&null!==e&&\"status\"in e&&\"ok\"in e&&\"json\"in e&&\"function\"===typeof e.json;const setItemAsync=(t,r,s)=>e(void 0,void 0,void 0,(function*(){yield t.setItem(r,JSON.stringify(s))}));const getItemAsync=(t,r)=>e(void 0,void 0,void 0,(function*(){const e=yield t.getItem(r);if(!e)return null;try{return JSON.parse(e)}catch(t){return e}}));const removeItemAsync=(t,r)=>e(void 0,void 0,void 0,(function*(){yield t.removeItem(r)}));function decodeBase64URL(e){const t=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";let r=\"\";let s,i,o;let n,a,l,d;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++));d=t.indexOf(e.charAt(u++));s=n<<2|a>>4;i=(15&a)<<4|l>>2;o=(3&l)<<6|d;r+=String.fromCharCode(s);64!=l&&0!=i&&(r+=String.fromCharCode(i));64!=d&&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))}function sleep(e){return new Promise((t=>{setTimeout((()=>t(null)),e)}))}function retryable(t,r){const s=new Promise(((s,i)=>{(()=>e(this,void 0,void 0,(function*(){for(let e=0;e<Infinity;e++)try{const i=yield t(e);if(!r(e,null,i)){s(i);return}}catch(t){if(!r(e,t)){i(t);return}}})))()}));return s}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(\"\")}function sha256(t){return e(this,void 0,void 0,(function*(){const e=new TextEncoder;const r=e.encode(t);const s=yield 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(/=+$/,\"\")}function generatePKCEChallenge(t){return e(this,void 0,void 0,(function*(){if(\"undefined\"===typeof crypto){console.warn(\"WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256.\");return t}const e=yield sha256(t);return base64urlencode(e)}))}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)}}var r=(void 0,function(e,t,r,s){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(s.next(e))}catch(e){i(e)}}function rejected(e){try{step(s.throw(e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))});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});const _getErrorMessage=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e);const handleError=(e,t)=>r(void 0,void 0,void 0,(function*(){const r=[502,503,504];looksLikeFetchResponse(e)?r.includes(e.status)?t(new AuthRetryableFetchError(_getErrorMessage(e),e.status)):e.json().then((r=>{t(new AuthApiError(_getErrorMessage(r),e.status||500))})).catch((e=>{t(new AuthUnknownError(_getErrorMessage(e),e))})):t(new AuthRetryableFetchError(_getErrorMessage(e),0))}));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)};function _request(e,t,s,i){var o;return r(this,void 0,void 0,(function*(){const r=Object.assign({},null===i||void 0===i?void 0:i.headers);(null===i||void 0===i?void 0:i.jwt)&&(r.Authorization=`Bearer ${i.jwt}`);const n=null!==(o=null===i||void 0===i?void 0:i.query)&&void 0!==o?o:{};(null===i||void 0===i?void 0:i.redirectTo)&&(n.redirect_to=i.redirectTo);const a=Object.keys(n).length?\"?\"+new URLSearchParams(n).toString():\"\";const l=yield _handleRequest(e,t,s+a,{headers:r,noResolveJson:null===i||void 0===i?void 0:i.noResolveJson},{},null===i||void 0===i?void 0:i.body);return(null===i||void 0===i?void 0:i.xform)?null===i||void 0===i?void 0:i.xform(l):{data:Object.assign({},l),error:null}}))}function _handleRequest(e,t,s,i,o,n){return r(this,void 0,void 0,(function*(){return new Promise(((r,a)=>{e(s,_getRequestParams(t,i,o,n)).then((e=>{if(!e.ok)throw e;return(null===i||void 0===i?void 0:i.noResolveJson)?e:e.json()})).then((e=>r(e))).catch((e=>handleError(e,a)))}))}))}function _sessionResponse(e){var t;let r=null;if(hasSession(e)){r=Object.assign({},e);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:t,email_otp:r,hashed_token:i,redirect_to:o,verification_type:n}=e,a=s(e,[\"action_link\",\"email_otp\",\"hashed_token\",\"redirect_to\",\"verification_type\"]);const l={action_link:t,email_otp:r,hashed_token:i,redirect_to:o,verification_type:n};const d=Object.assign({},a);return{data:{properties:l,user:d},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 i=(void 0,function(e,t,r,s){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(s.next(e))}catch(e){i(e)}}function rejected(e){try{step(s.throw(e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))});var o=(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     */signOut(e){return i(this,void 0,void 0,(function*(){try{yield _request(this.fetch,\"POST\",`${this.url}/logout`,{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     */inviteUserByEmail(e,t={}){return i(this,void 0,void 0,(function*(){try{return yield _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     */generateLink(e){return i(this,void 0,void 0,(function*(){try{const{options:t}=e,r=o(e,[\"options\"]);const s=Object.assign(Object.assign({},r),t);if(\"newEmail\"in r){s.new_email=null===r||void 0===r?void 0:r.newEmail;delete s.newEmail}return yield _request(this.fetch,\"POST\",`${this.url}/admin/generate_link`,{body:s,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}}))}createUser(e){return i(this,void 0,void 0,(function*(){try{return yield _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     */listUsers(e){var t,r,s,o,n,a,l;return i(this,void 0,void 0,(function*(){try{const i={nextPage:null,lastPage:0,total:0};const d=yield _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!==(o=null===(s=null===e||void 0===e?void 0:e.perPage)||void 0===s?void 0:s.toString())&&void 0!==o?o:\"\"},xform:_noResolveJsonResponse});if(d.error)throw d.error;const u=yield d.json();const h=null!==(n=d.headers.get(\"x-total-count\"))&&void 0!==n?n:0;const c=null!==(l=null===(a=d.headers.get(\"link\"))||void 0===a?void 0:a.split(\",\"))&&void 0!==l?l:[];if(c.length>0){c.forEach((e=>{const t=parseInt(e.split(\";\")[0].split(\"=\")[1].substring(0,1));const r=JSON.parse(e.split(\";\")[1].split(\"=\")[1]);i[`${r}Page`]=t}));i.total=parseInt(h)}return{data:Object.assign(Object.assign({},u),i),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     */getUserById(e){return i(this,void 0,void 0,(function*(){try{return yield _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     */updateUserById(e,t){return i(this,void 0,void 0,(function*(){try{return yield _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     */deleteUser(e,t=false){return i(this,void 0,void 0,(function*(){try{return yield _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}}))}_listFactors(e){return i(this,void 0,void 0,(function*(){try{const{data:t,error:r}=yield _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}}))}_deleteFactor(e){return i(this,void 0,void 0,(function*(){try{const t=yield _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 n=\"2.30.0\";const a=\"http://localhost:9999\";const l=\"supabase.auth.token\";const d={\"X-Client-Info\":`gotrue-js/${n}`};const u=10;const h={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 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)}}var c=(void 0,function(e,t,r,s){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(s.next(e))}catch(e){i(e)}}function rejected(e){try{step(s.throw(e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((s=s.apply(e,t||[])).next())}))});polyfillGlobalThis();const f={url:a,storageKey:l,autoRefreshToken:true,persistSession:true,detectSessionInUrl:true,headers:d,flowType:\"implicit\"};const v=3e4;const y=3;class GoTrueClient{constructor(e){var t;this.stateChangeEmitters=new Map;this.autoRefreshTicker=null;this.visibilityChangedCallback=null;this.refreshingDeferred=null;this.initializePromise=null;this.detectSessionInUrl=true;this.broadcastChannel=null;const r=Object.assign(Object.assign({},f),e);this.inMemorySession=null;this.storageKey=r.storageKey;this.autoRefreshToken=r.autoRefreshToken;this.persistSession=r.persistSession;this.storage=r.storage||h;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.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)};this.persistSession&&this.storage===h&&!supportsLocalStorage()&&console.warn(\"No storage option exists to persist the session, which may result in unexpected behavior when using auth.\\n        If you want to set persistSession to true, please provide a storage option or you may set persistSession to false to disable this warning.\");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\",(e=>c(this,void 0,void 0,(function*(){yield this._notifyAllSubscribers(e.data.event,e.data.session,false)}))))}this.initialize()}initialize(){this.initializePromise||(this.initializePromise=this._initialize());return this.initializePromise}_initialize(){return c(this,void 0,void 0,(function*(){if(this.initializePromise)return this.initializePromise;try{const e=!!isBrowser()&&(yield this._isPKCEFlow());if(e||this.detectSessionInUrl&&this._isImplicitGrantFlow()){const{data:t,error:r}=yield this._getSessionFromUrl(e);if(r){yield this._removeSession();return{error:r}}const{session:s,redirectType:i}=t;yield this._saveSession(s);setTimeout((()=>c(this,void 0,void 0,(function*(){\"recovery\"===i?yield this._notifyAllSubscribers(\"PASSWORD_RECOVERY\",s):yield this._notifyAllSubscribers(\"SIGNED_IN\",s)}))),0);return{error:null}}yield this._recoverAndRefresh();return{error:null}}catch(e){return isAuthError(e)?{error:e}:{error:new AuthUnknownError(\"Unexpected error during initialization\",e)}}finally{yield this._handleVisibilityChange()}}))}\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     */signUp(e){var t,r,s;return c(this,void 0,void 0,(function*(){try{yield 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();yield setItemAsync(this.storage,`${this.storageKey}-code-verifier`,e);n=yield generatePKCEChallenge(e);a=e===n?\"plain\":\"s256\"}i=yield _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=yield _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){yield this._saveSession(o.session);yield 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}}))}signInWithPassword(e){return c(this,void 0,void 0,(function*(){try{yield this._removeSession();let t;if(\"email\"in e){const{email:r,password:s,options:i}=e;t=yield _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=yield _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){yield this._saveSession(r.session);yield 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}}))}signInWithOAuth(e){var t,r,s,i;return c(this,void 0,void 0,(function*(){yield this._removeSession();return yield 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})}))}exchangeCodeForSession(e){return c(this,void 0,void 0,(function*(){const t=yield getItemAsync(this.storage,`${this.storageKey}-code-verifier`);const{data:r,error:s}=yield _request(this.fetch,\"POST\",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:e,code_verifier:t},xform:_sessionResponse});yield 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){yield this._saveSession(r.session);yield this._notifyAllSubscribers(\"SIGNED_IN\",r.session)}return{data:r,error:s}}))}signInWithIdToken(e){return c(this,void 0,void 0,(function*(){yield this._removeSession();try{const{options:t,provider:r,token:s,nonce:i}=e;const o=yield _request(this.fetch,\"POST\",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:r,id_token:s,nonce:i,gotrue_meta_security:{captcha_token:null===t||void 0===t?void 0:t.captchaToken}},xform:_sessionResponse});const{data:n,error:a}=o;if(a)return{data:{user:null,session:null},error:a};if(!n||!n.session||!n.user)return{data:{user:null,session:null},error:new AuthInvalidTokenResponseError};if(n.session){yield this._saveSession(n.session);yield this._notifyAllSubscribers(\"SIGNED_IN\",n.session)}return{data:n,error:a}}catch(e){if(isAuthError(e))return{data:{user:null,session:null},error:e};throw e}}))}signInWithOtp(e){var t,r,s,i,o;return c(this,void 0,void 0,(function*(){try{yield 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();yield setItemAsync(this.storage,`${this.storageKey}-code-verifier`,e);o=yield generatePKCEChallenge(e);n=e===o?\"plain\":\"s256\"}const{error:a}=yield _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{error:n}=yield _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},error:n}}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}}))}verifyOtp(e){var t,r;return c(this,void 0,void 0,(function*(){try{\"email_change\"!==e.type&&\"phone_change\"!==e.type&&(yield this._removeSession());const{data:s,error:i}=yield _request(this.fetch,\"POST\",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},e),{gotrue_meta_security:{captcha_token:null===(t=e.options)||void 0===t?void 0:t.captchaToken}}),redirectTo:null===(r=e.options)||void 0===r?void 0:r.redirectTo,xform:_sessionResponse});if(i)throw i;if(!s)throw new Error(\"An error occurred on token verification.\");const o=s.session;const n=s.user;if(null===o||void 0===o?void 0:o.access_token){yield this._saveSession(o);yield this._notifyAllSubscribers(\"SIGNED_IN\",o)}return{data:{user:n,session:o},error:null}}catch(e){if(isAuthError(e))return{data:{user:null,session:null},error:e};throw e}}))}signInWithSSO(e){var t,r,s;return c(this,void 0,void 0,(function*(){try{yield this._removeSession();return yield _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}}))}reauthenticate(){return c(this,void 0,void 0,(function*(){try{const{data:{session:e},error:t}=yield this.getSession();if(t)throw t;if(!e)throw new AuthSessionMissingError;const{error:r}=yield _request(this.fetch,\"GET\",`${this.url}/reauthenticate`,{headers:this.headers,jwt:e.access_token});return{data:{user:null,session:null},error:r}}catch(e){if(isAuthError(e))return{data:{user:null,session:null},error:e};throw e}}))}resend(e){return c(this,void 0,void 0,(function*(){try{yield this._removeSession();const t=`${this.url}/resend`;if(\"email\"in e){const{email:r,type:s,options:i}=e;const{error:o}=yield _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}}});return{data:{user:null,session:null},error:o}}if(\"phone\"in e){const{phone:r,type:s,options:i}=e;const{error:o}=yield _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},error:o}}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}}))}getSession(){return c(this,void 0,void 0,(function*(){yield this.initializePromise;let e=null;if(this.persistSession){const t=yield getItemAsync(this.storage,this.storageKey);null!==t&&(this._isValidSession(t)?e=t:yield this._removeSession())}else e=this.inMemorySession;if(!e)return{data:{session:null},error:null};const t=!!e.expires_at&&e.expires_at<=Date.now()/1e3;if(!t)return{data:{session:e},error:null};const{session:r,error:s}=yield this._callRefreshToken(e.refresh_token);return s?{data:{session:null},error:s}:{data:{session:r},error:null}}))}\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     */getUser(e){var t,r;return c(this,void 0,void 0,(function*(){try{if(!e){const{data:s,error:i}=yield this.getSession();if(i)throw i;e=null!==(r=null===(t=s.session)||void 0===t?void 0:t.access_token)&&void 0!==r?r:void 0}return yield _request(this.fetch,\"GET\",`${this.url}/user`,{headers:this.headers,jwt:e,xform:_userResponse})}catch(e){if(isAuthError(e))return{data:{user:null},error:e};throw e}}))}updateUser(e,t={}){return c(this,void 0,void 0,(function*(){try{const{data:r,error:s}=yield this.getSession();if(s)throw s;if(!r.session)throw new AuthSessionMissingError;const i=r.session;const{data:o,error:n}=yield _request(this.fetch,\"PUT\",`${this.url}/user`,{headers:this.headers,redirectTo:null===t||void 0===t?void 0:t.emailRedirectTo,body:e,jwt:i.access_token,xform:_userResponse});if(n)throw n;i.user=o.user;yield this._saveSession(i);yield this._notifyAllSubscribers(\"USER_UPDATED\",i);return{data:{user:i.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     */setSession(e){return c(this,void 0,void 0,(function*(){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}=yield 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}=yield 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};yield this._saveSession(i);yield 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     */refreshSession(e){var t;return c(this,void 0,void 0,(function*(){try{if(!e){const{data:r,error:s}=yield this.getSession();if(s)throw s;e=null!==(t=r.session)&&void 0!==t?t:void 0}if(!(null===e||void 0===e?void 0:e.refresh_token))throw new AuthSessionMissingError;const{session:r,error:s}=yield this._callRefreshToken(e.refresh_token);return s?{data:{user:null,session:null},error:s}:r?{data:{user:r.user,session:r},error:null}:{data:{user:null,session:null},error:null}}catch(e){if(isAuthError(e))return{data:{user:null,session:null},error:e};throw e}}))}_getSessionFromUrl(e){return c(this,void 0,void 0,(function*(){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.\");if(e){const e=getParameterByName(\"code\");if(!e)throw new AuthPKCEGrantCodeExchangeError(\"No code detected.\");const{data:t,error:r}=yield this.exchangeCodeForSession(e);if(r)throw r;if(!t.session)throw new AuthPKCEGrantCodeExchangeError(\"No session detected.\");let s=new URL(window.location.href);s.searchParams.delete(\"code\");window.history.replaceState(window.history.state,\"\",s.toString());return{data:{session:t.session,redirectType:null},error:null}}const t=getParameterByName(\"error_description\");if(t){const e=getParameterByName(\"error_code\");if(!e)throw new AuthImplicitGrantRedirectError(\"No error_code detected.\");const r=getParameterByName(\"error\");if(!r)throw new AuthImplicitGrantRedirectError(\"No error detected.\");throw new AuthImplicitGrantRedirectError(t,{error:r,code:e})}const r=getParameterByName(\"provider_token\");const s=getParameterByName(\"provider_refresh_token\");const i=getParameterByName(\"access_token\");if(!i)throw new AuthImplicitGrantRedirectError(\"No access_token detected.\");const o=getParameterByName(\"expires_in\");if(!o)throw new AuthImplicitGrantRedirectError(\"No expires_in detected.\");const n=getParameterByName(\"refresh_token\");if(!n)throw new AuthImplicitGrantRedirectError(\"No refresh_token detected.\");const a=getParameterByName(\"token_type\");if(!a)throw new AuthImplicitGrantRedirectError(\"No token_type detected.\");const l=Math.round(Date.now()/1e3);const d=l+parseInt(o);const{data:u,error:h}=yield this.getUser(i);if(h)throw h;const c=u.user;const f={provider_token:r,provider_refresh_token:s,access_token:i,expires_in:parseInt(o),expires_at:d,refresh_token:n,token_type:a,user:c};const v=getParameterByName(\"type\");window.location.hash=\"\";return{data:{session:f,redirectType:v},error:null}}catch(e){if(isAuthError(e))return{data:{session:null,redirectType:null},error:e};throw e}}))}_isImplicitGrantFlow(){return isBrowser()&&(Boolean(getParameterByName(\"access_token\"))||Boolean(getParameterByName(\"error_description\")))}_isPKCEFlow(){return c(this,void 0,void 0,(function*(){const e=yield getItemAsync(this.storage,`${this.storageKey}-code-verifier`);return Boolean(getParameterByName(\"code\"))&&Boolean(e)}))}signOut(){var e;return c(this,void 0,void 0,(function*(){const{data:t,error:r}=yield this.getSession();if(r)return{error:r};const s=null===(e=t.session)||void 0===e?void 0:e.access_token;if(s){const{error:e}=yield this.admin.signOut(s);if(e&&!(isAuthApiError(e)&&(404===e.status||401===e.status)))return{error:e}}yield this._removeSession();yield removeItemAsync(this.storage,`${this.storageKey}-code-verifier`);yield 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.stateChangeEmitters.delete(t)}};this.stateChangeEmitters.set(t,r);this.emitInitialSession(t);return{data:{subscription:r}}}emitInitialSession(e){var t,r;return c(this,void 0,void 0,(function*(){try{const{data:{session:r},error:s}=yield this.getSession();if(s)throw s;yield null===(t=this.stateChangeEmitters.get(e))||void 0===t?void 0:t.callback(\"INITIAL_SESSION\",r)}catch(t){yield null===(r=this.stateChangeEmitters.get(e))||void 0===r?void 0:r.callback(\"INITIAL_SESSION\",null);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     */resetPasswordForEmail(e,t={}){return c(this,void 0,void 0,(function*(){let r=null;let s=null;if(\"pkce\"===this.flowType){const e=generatePKCEVerifier();yield setItemAsync(this.storage,`${this.storageKey}-code-verifier`,e);r=yield generatePKCEChallenge(e);s=e===r?\"plain\":\"s256\"}try{return yield _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     */_refreshAccessToken(e){return c(this,void 0,void 0,(function*(){try{const t=Date.now();return yield retryable((t=>c(this,void 0,void 0,(function*(){yield sleep(200*t);return yield _request(this.fetch,\"POST\",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:e},headers:this.headers,xform:_sessionResponse})}))),((e,r,s)=>s&&s.error&&s.error instanceof AuthRetryableFetchError&&Date.now()+200*(e+1)-t<v))}catch(e){if(isAuthError(e))return{data:{session:null,user:null},error:e};throw e}}))}_isValidSession(e){const t=\"object\"===typeof e&&null!==e&&\"access_token\"in e&&\"refresh_token\"in e&&\"expires_at\"in e;return t}_handleProviderSignIn(e,t){return c(this,void 0,void 0,(function*(){const r=yield this._getUrlForProvider(e,{redirectTo:t.redirectTo,scopes:t.scopes,queryParams:t.queryParams});isBrowser()&&!t.skipBrowserRedirect&&window.location.assign(r);return{data:{provider:e,url:r},error:null}}))}_recoverAndRefresh(){var e;return c(this,void 0,void 0,(function*(){try{const t=yield getItemAsync(this.storage,this.storageKey);if(!this._isValidSession(t)){null!==t&&(yield this._removeSession());return}const r=Math.round(Date.now()/1e3);if((null!==(e=t.expires_at)&&void 0!==e?e:Infinity)<r+u){if(this.autoRefreshToken&&t.refresh_token){const{error:e}=yield this._callRefreshToken(t.refresh_token);if(e){console.log(e.message);yield this._removeSession()}}}else{this.persistSession&&(yield this._saveSession(t));yield this._notifyAllSubscribers(\"SIGNED_IN\",t)}}catch(e){console.error(e);return}}))}_callRefreshToken(e){var t,r;return c(this,void 0,void 0,(function*(){if(this.refreshingDeferred)return this.refreshingDeferred.promise;try{this.refreshingDeferred=new Deferred;if(!e)throw new AuthSessionMissingError;const{data:t,error:r}=yield this._refreshAccessToken(e);if(r)throw r;if(!t.session)throw new AuthSessionMissingError;yield this._saveSession(t.session);yield this._notifyAllSubscribers(\"TOKEN_REFRESHED\",t.session);const s={session:t.session,error:null};this.refreshingDeferred.resolve(s);return s}catch(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}}))}_notifyAllSubscribers(e,t,r=true){return c(this,void 0,void 0,(function*(){this.broadcastChannel&&r&&this.broadcastChannel.postMessage({event:e,session:t});const s=[];const i=Array.from(this.stateChangeEmitters.values()).map((r=>c(this,void 0,void 0,(function*(){try{yield r.callback(e,t)}catch(e){s.push(e)}}))));yield Promise.all(i);if(s.length>0){for(let e=0;e<s.length;e+=1)console.error(s[e]);throw s[0]}}))}_saveSession(e){return c(this,void 0,void 0,(function*(){this.persistSession||(this.inMemorySession=e);this.persistSession&&e.expires_at&&(yield this._persistSession(e))}))}_persistSession(e){return setItemAsync(this.storage,this.storageKey,e)}_removeSession(){return c(this,void 0,void 0,(function*(){this.persistSession?yield removeItemAsync(this.storage,this.storageKey):this.inMemorySession=null}))}_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)}}_startAutoRefresh(){return c(this,void 0,void 0,(function*(){yield this._stopAutoRefresh();const e=setInterval((()=>this._autoRefreshTokenTick()),v);this.autoRefreshTicker=e;e&&\"object\"===typeof e&&\"function\"===typeof e.unref?e.unref():\"undefined\"!==typeof Deno&&\"function\"===typeof Deno.unrefTimer&&Deno.unrefTimer(e);yield this._autoRefreshTokenTick()}))}_stopAutoRefresh(){return c(this,void 0,void 0,(function*(){const e=this.autoRefreshTicker;this.autoRefreshTicker=null;e&&clearInterval(e)}))}startAutoRefresh(){return c(this,void 0,void 0,(function*(){this._removeVisibilityChangedCallback();yield this._startAutoRefresh()}))}stopAutoRefresh(){return c(this,void 0,void 0,(function*(){this._removeVisibilityChangedCallback();yield this._stopAutoRefresh()}))}_autoRefreshTokenTick(){return c(this,void 0,void 0,(function*(){const e=Date.now();try{const{data:{session:t}}=yield this.getSession();if(!t||!t.refresh_token||!t.expires_at)return;const r=Math.floor((1e3*t.expires_at-e)/v);r<y&&(yield this._callRefreshToken(t.refresh_token))}catch(e){console.error(\"Auto refresh tick failed with error. This is likely a transient error.\",e)}}))}_handleVisibilityChange(){return c(this,void 0,void 0,(function*(){if(!isBrowser()||!(null===window||void 0===window?void 0:window.addEventListener)){this.autoRefreshToken&&this.startAutoRefresh();return false}try{this.visibilityChangedCallback=()=>c(this,void 0,void 0,(function*(){return yield this._onVisibilityChanged(false)}));null===window||void 0===window?void 0:window.addEventListener(\"visibilitychange\",this.visibilityChangedCallback);yield this._onVisibilityChanged(true)}catch(e){console.error(\"_handleVisibilityChange\",e)}}))}_onVisibilityChanged(e){return c(this,void 0,void 0,(function*(){if(\"visible\"===document.visibilityState){if(!e){yield this.initializePromise;yield this._recoverAndRefresh()}this.autoRefreshToken&&this._startAutoRefresh()}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     */_getUrlForProvider(e,t){return c(this,void 0,void 0,(function*(){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();yield setItemAsync(this.storage,`${this.storageKey}-code-verifier`,e);const t=yield generatePKCEChallenge(e);const s=e===t?\"plain\":\"s256\";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(\"&\")}`}))}_unenroll(e){var t;return c(this,void 0,void 0,(function*(){try{const{data:r,error:s}=yield this.getSession();return s?{data:null,error:s}:yield _request(this.fetch,\"DELETE\",`${this.url}/factors/${e.factorId}`,{headers:this.headers,jwt:null===(t=null===r||void 0===r?void 0:r.session)||void 0===t?void 0:t.access_token})}catch(e){if(isAuthError(e))return{data:null,error:e};throw e}}))}_enroll(e){var t,r;return c(this,void 0,void 0,(function*(){try{const{data:s,error:i}=yield this.getSession();if(i)return{data:null,error:i};const{data:o,error:n}=yield _request(this.fetch,\"POST\",`${this.url}/factors`,{body:{friendly_name:e.friendlyName,factor_type:e.factorType,issuer:e.issuer},headers:this.headers,jwt:null===(t=null===s||void 0===s?void 0:s.session)||void 0===t?void 0:t.access_token});if(n)return{data:null,error:n};(null===(r=null===o||void 0===o?void 0:o.totp)||void 0===r?void 0:r.qr_code)&&(o.totp.qr_code=`data:image/svg+xml;utf-8,${o.totp.qr_code}`);return{data:o,error:null}}catch(e){if(isAuthError(e))return{data:null,error:e};throw e}}))}_verify(e){var t;return c(this,void 0,void 0,(function*(){try{const{data:r,error:s}=yield this.getSession();if(s)return{data:null,error:s};const{data:i,error:o}=yield _request(this.fetch,\"POST\",`${this.url}/factors/${e.factorId}/verify`,{body:{code:e.code,challenge_id:e.challengeId},headers:this.headers,jwt:null===(t=null===r||void 0===r?void 0:r.session)||void 0===t?void 0:t.access_token});if(o)return{data:null,error:o};yield this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+i.expires_in},i));yield this._notifyAllSubscribers(\"MFA_CHALLENGE_VERIFIED\",i);return{data:i,error:o}}catch(e){if(isAuthError(e))return{data:null,error:e};throw e}}))}_challenge(e){var t;return c(this,void 0,void 0,(function*(){try{const{data:r,error:s}=yield this.getSession();return s?{data:null,error:s}:yield _request(this.fetch,\"POST\",`${this.url}/factors/${e.factorId}/challenge`,{headers:this.headers,jwt:null===(t=null===r||void 0===r?void 0:r.session)||void 0===t?void 0:t.access_token})}catch(e){if(isAuthError(e))return{data:null,error:e};throw e}}))}_challengeAndVerify(e){return c(this,void 0,void 0,(function*(){const{data:t,error:r}=yield this._challenge({factorId:e.factorId});return r?{data:null,error:r}:yield this._verify({factorId:e.factorId,challengeId:t.id,code:e.code})}))}_listFactors(){return c(this,void 0,void 0,(function*(){const{data:{user:e},error:t}=yield 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}}))}_getAuthenticatorAssuranceLevel(){var e,t;return c(this,void 0,void 0,(function*(){const{data:{session:r},error:s}=yield this.getSession();if(s)return{data:null,error:s};if(!r)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};const i=this._decodeJWT(r.access_token);let o=null;i.aal&&(o=i.aal);let n=o;const a=null!==(t=null===(e=r.user.factors)||void 0===e?void 0:e.filter((e=>\"verified\"===e.status)))&&void 0!==t?t:[];a.length>0&&(n=\"aal2\");const l=i.amr||[];return{data:{currentLevel:o,nextLevel:n,currentAuthenticationMethods:l},error:null}}))}}export{AuthApiError,AuthError,AuthImplicitGrantRedirectError,AuthInvalidCredentialsError,AuthInvalidTokenResponseError,AuthPKCEGrantCodeExchangeError,AuthRetryableFetchError,AuthSessionMissingError,AuthUnknownError,CustomAuthError,GoTrueAdminApi,GoTrueClient,isAuthApiError,isAuthError};\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\"cross-fetch\";import{GoTrueClient as r}from\"@supabase/gotrue-js\";export*from\"@supabase/gotrue-js\";const o=\"2.25.0\";const l={\"X-Client-Info\":`supabase-js/${o}`};var u=(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)=>u(void 0,void 0,void 0,(function*(){var r;const o=null!==(r=yield t())&&void 0!==r?r:e;let l=new i(null===a||void 0===a?void 0:a.headers);l.has(\"apikey\")||l.set(\"apikey\",e);l.has(\"Authorization\")||l.set(\"Authorization\",`Bearer ${o}`);return n(s,Object.assign(Object.assign({},a),{headers:l}))}))};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:l,global:u}=t;return{db:Object.assign(Object.assign({},r),s),auth:Object.assign(Object.assign({},o),n),realtime:Object.assign(Object.assign({},l),i),global:Object.assign(Object.assign({},u),a)}}class SupabaseAuthClient extends r{constructor(e){super(e)}}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 c={headers:l};const d={schema:\"public\"};const p={autoRefreshToken:true,persistSession:true,detectSessionInUrl:true,flowType:\"implicit\"};const f={};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,l,u,h,g;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:d,realtime:f,auth:Object.assign(Object.assign({},p),{storageKey:v}),global:c};const j=applySettingDefaults(null!==n&&void 0!==n?n:{},m);this.storageKey=null!==(a=null===(i=j.auth)||void 0===i?void 0:i.storageKey)&&void 0!==a?a:\"\";this.headers=null!==(o=null===(r=j.global)||void 0===r?void 0:r.headers)&&void 0!==o?o:{};this.auth=this._initSupabaseAuthClient(null!==(l=j.auth)&&void 0!==l?l:{},this.headers,null===(u=j.global)||void 0===u?void 0:u.fetch);this.fetch=fetchWithAuth(s,this._getAccessToken.bind(this),null===(h=j.global)||void 0===h?void 0:h.fetch);this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers},j.realtime));this.rest=new t(`${b}/rest/v1`,{headers:this.headers,schema:null===(g=j.db)||void 0===g?void 0:g.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 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 h(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},r,o){const l={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new SupabaseAuthClient({url:this.authUrl,headers:Object.assign(Object.assign({},l),r),storageKey:i,autoRefreshToken:e,persistSession:t,detectSessionInUrl:s,storage:n,flowType:a,fetch:o})}_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,null===t||void 0===t?void 0:t.access_token,\"CLIENT\")}));return e}_handleTokenChanged(e,t,s){if(\"TOKEN_REFRESHED\"!==e&&\"SIGNED_IN\"!==e||this.changedAccessToken===t){if(\"SIGNED_OUT\"===e){this.realtime.setAuth(this.supabaseKey);\"STORAGE\"==s&&this.auth.signOut();this.changedAccessToken=void 0}}else{this.realtime.setAuth(null!==t&&void 0!==t?t:null);this.changedAccessToken=t}}}const createClient=(e,t,s)=>new SupabaseClient(e,t,s);export{SupabaseClient,createClient};\n\n//# sourceMappingURL=index.js.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{createClient}from\"@supabase/supabase-js\";import{createPortal}from\"react-dom\";/**\n * AuthAwareActions.tsx — Role-safe auth + JOIN + Avatar-only\n * Corrections applied:\n * 1) Removed supabase.auth.admin.listUsers() (requires service role; breaks in browser).\n * 2) Role lookup uses .limit(1).maybeSingle() to avoid “multiple rows” errors.\n * 3) Added role/profile “ready” gating so avatar can’t route to \"/\" before role resolves.\n * 4) Added error visibility (console.warn) for role lookup failures.\n * 5) Restaurant profile fetch supports owner_user_id (matches resolveRoleAndPath logic).\n * 6) Fixed resolveRoleAndPath return typing to include \"superadmin\".\n */const FALLBACK_URL=\"https://xnwbfkrbikpcvfzfajah.supabase.co\";const FALLBACK_ANON=\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inhud2Jma3JiaWtwY3ZmemZhamFoIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTIxODk1MzQsImV4cCI6MjA2Nzc2NTUzNH0.hPKNFC2BKPb1CX6o-8ZLh45-KEN5ijCHWzndAjWxq6o\";const ABS_ONBOARDING_BASE=\"https://buylocal.pt/onboarding\";const ROUTE_AFTER_LOGIN={merchant:\"/merchant-dashboard\",consumer:\"/consumer\",restaurant:\"/myrestaurant\",agent:\"/agent\",admin:\"/admin-dashblpt\",superadmin:\"/admin-dashblpt\"};const STASH_OLD=\"buylocal_pending_consumer_profile\";const STASH_NEW=\"buylocal_pending_profile\";/* ========= Supabase ========= */function useSupabase(explicit){const envUrl=(process.env.NEXT_PUBLIC_SUPABASE_URL??\"\").trim();const envAnon=(process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY??\"\").trim();let url=(explicit?.url??\"\").trim()||envUrl||FALLBACK_URL;let anon=(explicit?.anon??\"\").trim()||envAnon||FALLBACK_ANON;if(!/^https?:\\/\\//i.test(url))url=FALLBACK_URL;if(!anon)anon=FALLBACK_ANON;return React.useMemo(()=>createClient(url,anon,{auth:{persistSession:true,autoRefreshToken:true,storage:typeof window!==\"undefined\"?window.localStorage:undefined,storageKey:\"sb-buylocal-auth\"}}),[url,anon]);}/* ========= Build onboarding redirect ========= */function buildOnboardingRedirect(intent,email){const u=new URL(ABS_ONBOARDING_BASE);u.searchParams.set(\"intent\",intent);if(email)u.searchParams.set(\"email\",email);return u.toString();}/* ========= Portal + Modal ========= */function useIsClient(){const[ready,setReady]=React.useState(false);React.useEffect(()=>setReady(true),[]);return ready&&typeof document!==\"undefined\";}function Portal({children}){const isClient=useIsClient();return isClient?/*#__PURE__*/createPortal(children,document.body):null;}function OverlayModal({children,onBackdrop,radius=16}){function stop(e){e.stopPropagation();}return /*#__PURE__*/_jsx(Portal,{children:/*#__PURE__*/_jsxs(\"div\",{role:\"dialog\",\"aria-modal\":\"true\",onMouseDown:()=>onBackdrop?.(),style:{position:\"fixed\",inset:0,zIndex:2147483647,width:\"100dvw\",height:\"100dvh\",paddingLeft:\"env(safe-area-inset-left)\",paddingRight:\"env(safe-area-inset-right)\",paddingTop:\"env(safe-area-inset-top)\",paddingBottom:\"env(safe-area-inset-bottom)\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,background:\"rgba(0,0,0,.45)\",backdropFilter:\"blur(2px)\"}}),/*#__PURE__*/_jsx(\"div\",{onMouseDown:stop,style:{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:16},children:/*#__PURE__*/_jsx(\"div\",{onMouseDown:stop,style:{width:\"100%\",maxWidth:640,maxHeight:\"90dvh\",overflow:\"auto\",background:\"#fff\",borderRadius:radius,border:\"1px solid rgba(0,0,0,.08)\",boxShadow:\"0 24px 48px rgba(0,0,0,.18)\"},children:children})})]})});}/* ========= Input ========= */function Input({type=\"text\",placeholder,value,onChange,required,name,autoComplete,disabled}){return /*#__PURE__*/_jsx(\"div\",{style:{height:48,display:\"flex\",alignItems:\"center\",borderRadius:14,border:\"1px solid #e5e7eb\",padding:\"0 14px\",background:disabled?\"#f8f8f8\":\"#fff\",opacity:disabled?.8:1},children:/*#__PURE__*/_jsx(\"input\",{type:type,placeholder:placeholder,value:value,onChange:onChange,required:required,name:name,autoComplete:autoComplete,disabled:disabled,style:{width:\"100%\",height:\"100%\",outline:\"none\",border:\"none\",fontSize:14,color:\"#111\",background:\"transparent\",fontFamily:\"Montserrat, sans-serif\"}})});}/* ========= JOIN Modal (OTP) ========= */function RoleVerifyModal({onClose,title,subtitle,accentColor,borderRadius,supabase,roleHint}){const[loading,setLoading]=React.useState(false);const[sent,setSent]=React.useState(false);const[info,setInfo]=React.useState(null);const[err,setErr]=React.useState(null);const[name,setName]=React.useState(\"\");const[email,setEmail]=React.useState(\"\");const[phone,setPhone]=React.useState(\"\");const validEmail=x=>/\\S+@\\S+\\.\\S+/.test(x);async function handleSubmit(e){e.preventDefault();setErr(null);setInfo(null);if(!validEmail(email)){setErr(\"Please enter a valid email.\");return;}setLoading(true);try{// Save temporary intent (used by onboarding)\nconst payload={name:name||undefined,phone:phone||undefined,email,intent:roleHint,roleHint,ts:Date.now()};try{localStorage.setItem(STASH_NEW,JSON.stringify(payload));localStorage.setItem(\"buylocal_join_intent\",roleHint);// keep legacy key if you still read it elsewhere\nlocalStorage.setItem(STASH_OLD,JSON.stringify(payload));}catch{}const redirectTo=buildOnboardingRedirect(roleHint,email);// NOTE:\n// We cannot safely “hard-block” existing users from the browser without a secure server-side check.\n// Supabase Auth will send a link; if the user already exists, they can still sign in.\nconst{error}=await supabase.auth.signInWithOtp({email,options:{shouldCreateUser:true,emailRedirectTo:redirectTo,data:{name,phone,preselected_role:roleHint,join_intent:roleHint,join_ts:Date.now()}}});if(error)throw error;setSent(true);setInfo(\"Check your inbox (and spam). After confirming, you'll be redirected to onboarding.\");}catch(e){setErr(e?.message??\"We couldn't send the verification email.\");}finally{setLoading(false);}}return /*#__PURE__*/_jsx(OverlayModal,{onBackdrop:onClose,radius:borderRadius,children:/*#__PURE__*/_jsxs(\"div\",{style:{padding:24,fontFamily:\"Montserrat, sans-serif\"},children:[/*#__PURE__*/_jsx(\"h3\",{style:{margin:0,fontSize:22,fontWeight:700,textAlign:\"center\"},children:title}),/*#__PURE__*/_jsx(\"p\",{style:{marginTop:10,textAlign:\"center\",color:\"#555\",fontSize:14},children:subtitle}),/*#__PURE__*/_jsxs(\"form\",{onSubmit:handleSubmit,style:{marginTop:20},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"grid\",gap:10},children:[/*#__PURE__*/_jsx(Input,{placeholder:\"Name\",value:name,onChange:e=>setName(e.target.value)}),/*#__PURE__*/_jsx(Input,{type:\"email\",placeholder:\"Email\",value:email,onChange:e=>setEmail(e.target.value),required:true,disabled:sent}),/*#__PURE__*/_jsx(Input,{placeholder:\"Phone\",value:phone,onChange:e=>setPhone(e.target.value),disabled:sent})]}),err&&/*#__PURE__*/_jsx(\"p\",{style:{color:\"#c0392b\",fontSize:13,marginTop:10},children:err}),info&&/*#__PURE__*/_jsx(\"p\",{style:{color:\"#2c3e50\",fontSize:13,marginTop:10},children:info}),/*#__PURE__*/_jsx(\"button\",{type:\"submit\",disabled:loading||sent,style:{marginTop:16,width:\"100%\",height:48,borderRadius:14,background:accentColor,color:\"#fff\",fontWeight:700,fontSize:16,border:\"none\",cursor:\"pointer\",boxShadow:\"0 8px 20px rgba(0,0,0,0.12)\",opacity:loading?.7:1},children:loading?\"Sending…\":sent?\"Email sent\":\"Submit\"}),sent&&/*#__PURE__*/_jsx(\"div\",{style:{textAlign:\"center\",marginTop:8},children:/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:handleSubmit,style:{background:\"transparent\",border:\"none\",textDecoration:\"underline\",cursor:\"pointer\",color:\"#333\",fontSize:14},children:\"Resend email\"})}),/*#__PURE__*/_jsx(\"div\",{style:{textAlign:\"center\",marginTop:12},children:/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:onClose,style:{background:\"transparent\",border:\"none\",textDecoration:\"underline\",cursor:\"pointer\",color:\"#333\",fontSize:14},children:\"Close\"})})]})]})});}/* ========= Role resolution ========= */async function resolveRoleAndPath(supabase){const{data:sessionData}=await supabase.auth.getSession();const user=sessionData?.session?.user;const uid=user?.id;if(!uid)return{role:null,path:null};// IMPORTANT: limit(1) prevents \"multiple rows returned\" if duplicates exist\nconst{data:roleRow,error:roleErr}=await supabase.from(\"user_roles\").select(\"role\").eq(\"user_id\",uid).limit(1).maybeSingle();if(roleErr)console.warn(\"resolveRoleAndPath:user_roles error\",roleErr);const role=(roleRow?.role)??null;if(role===\"superadmin\")return{role:\"superadmin\",path:ROUTE_AFTER_LOGIN.superadmin};if(role===\"admin\")return{role:\"admin\",path:ROUTE_AFTER_LOGIN.admin};if(role===\"merchant\")return{role:\"merchant\",path:ROUTE_AFTER_LOGIN.merchant};if(role===\"restaurant\")return{role:\"restaurant\",path:ROUTE_AFTER_LOGIN.restaurant};if(role===\"agent\")return{role:\"agent\",path:ROUTE_AFTER_LOGIN.agent};if(role===\"consumer\")return{role:\"consumer\",path:ROUTE_AFTER_LOGIN.consumer};// Fallback (legacy profiles)\nconst[cRes,mRes,rRes,aRes,adminRes]=await Promise.allSettled([supabase.from(\"consumers\").select(\"user_id\").eq(\"user_id\",uid).limit(1).maybeSingle(),supabase.from(\"producers\").select(\"user_id\").eq(\"user_id\",uid).limit(1).maybeSingle(),supabase.from(\"restaurants\").select(\"user_id, owner_user_id\").or(`user_id.eq.${uid},owner_user_id.eq.${uid}`).limit(1).maybeSingle(),supabase.from(\"agents\").select(\"user_id\").eq(\"user_id\",uid).limit(1).maybeSingle(),supabase.from(\"admins\").select(\"user_id\").eq(\"user_id\",uid).limit(1).maybeSingle()]);const ok=p=>p.status===\"fulfilled\"?p.value?.data??null:null;const c=ok(cRes);const m=ok(mRes);const r=ok(rRes);const a=ok(aRes);const admin=ok(adminRes);if(admin)return{role:\"admin\",path:ROUTE_AFTER_LOGIN.admin};if(a)return{role:\"agent\",path:ROUTE_AFTER_LOGIN.agent};if(m)return{role:\"merchant\",path:ROUTE_AFTER_LOGIN.merchant};if(r)return{role:\"restaurant\",path:ROUTE_AFTER_LOGIN.restaurant};if(c)return{role:\"consumer\",path:ROUTE_AFTER_LOGIN.consumer};return{role:null,path:null};}/* ========= LOGIN Modal ========= */const inputStyle={display:\"block\",width:\"100%\",padding:\"12px 16px\",margin:\"8px 0 0 0\",borderRadius:8,border:\"1px solid #e5e7eb\",fontSize:16,boxSizing:\"border-box\",fontFamily:\"Montserrat, sans-serif\"};function LoginModal({open,onClose,buttonColor,textColor,borderRadius,supabase,headerNote}){const[email,setEmail]=React.useState(\"\");const[password,setPassword]=React.useState(\"\");const[msg,setMsg]=React.useState(\"\");const[loading,setLoading]=React.useState(false);const redirect=url=>{try{window.location.assign(url);}catch{}};const signInLocal=async()=>{if(!email||!password){setMsg(\"Please enter email and password.\");return false;}try{setLoading(true);const{error}=await supabase.auth.signInWithPassword({email,password});if(error)throw error;return true;}catch(e){setMsg(e?.message||\"Login failed. Check your credentials.\");return false;}finally{setLoading(false);}};const signIn=async()=>{setMsg(\"\");const ok=await signInLocal();if(!ok)return;try{setLoading(true);const{path}=await resolveRoleAndPath(supabase);if(path){redirect(path);onClose();return;}setMsg(\"We couldn't find a profile for this account. If you haven't joined yet, use JOIN to start onboarding.\");}catch(e){setMsg(e?.message||\"Could not determine your dashboard.\");}finally{setLoading(false);}};async function forgotPassword(){if(!email){setMsg(\"Enter your email first.\");return;}try{setLoading(true);setMsg(\"\");const{error}=await supabase.auth.resetPasswordForEmail(email,{redirectTo:\"https://buylocal.pt/auth-recovery\"});if(error)throw error;setMsg(\"Password reset email sent. Open the link in your inbox to set a new password.\");}catch(e){setMsg(e?.message||\"Could not start password reset.\");}finally{setLoading(false);}}if(!open)return null;return /*#__PURE__*/_jsx(OverlayModal,{onBackdrop:onClose,radius:borderRadius,children:/*#__PURE__*/_jsxs(\"div\",{style:{padding:24,fontFamily:\"Montserrat, sans-serif\"},children:[/*#__PURE__*/_jsx(\"h3\",{style:{margin:0},children:\"Login\"}),/*#__PURE__*/_jsx(\"p\",{style:{margin:\"4px 0 0 0\",color:\"#666\",fontSize:14},children:\"Sign in with your email and password. We’ll route you to the right dashboard automatically.\"}),headerNote?/*#__PURE__*/_jsx(\"p\",{style:{margin:\"8px 0 0 0\",color:\"#c00\",fontSize:13},children:headerNote}):null,/*#__PURE__*/_jsx(\"input\",{style:inputStyle,placeholder:\"Email\",value:email,onChange:e=>setEmail(e.target.value),autoComplete:\"email\"}),/*#__PURE__*/_jsx(\"input\",{type:\"password\",style:inputStyle,placeholder:\"Password\",value:password,onChange:e=>setPassword(e.target.value),autoComplete:\"current-password\"}),/*#__PURE__*/_jsx(\"button\",{onClick:loading?undefined:signIn,style:{backgroundColor:buttonColor,color:textColor,padding:\"10px 24px\",border:\"none\",borderRadius:borderRadius,fontWeight:700,fontSize:16,cursor:loading?\"default\":\"pointer\",width:\"100%\",opacity:loading?.7:1,transition:\"opacity .2s ease\",marginTop:8},children:loading?\"Processing…\":\"Continue\"}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",marginTop:8,justifyContent:\"flex-end\",alignItems:\"center\"},children:/*#__PURE__*/_jsx(\"button\",{\"data-testid\":\"forgot-password\",onClick:loading?undefined:forgotPassword,style:{background:\"transparent\",border:\"none\",textDecoration:\"underline\",cursor:\"pointer\",fontSize:14},children:\"Forgot password?\"})}),/*#__PURE__*/_jsx(\"div\",{style:{minHeight:18,marginTop:6,color:\"#d00\"},children:msg}),/*#__PURE__*/_jsx(\"button\",{onClick:onClose,style:{background:\"transparent\",color:\"#666\",padding:8,border:\"none\",cursor:\"pointer\",textDecoration:\"underline\"},children:\"Close\"})]})});}const CART_STORAGE_KEY=\"buylocal_cart_v1\";const CART_EVENT=\"buylocal:cart-changed\";function parseCart(raw){try{return raw?JSON.parse(raw):{items:[]};}catch{return{items:[]};}}function getSrc(img){if(!img)return undefined;if(typeof img===\"string\")return img;if(typeof img?.src===\"string\")return img.src;return undefined;}function CartIndicator({cartHref,cartEmptyImage,cartFilledImage,badgeMode=\"items\",showCount=true,outlineText=\"#111\",badgeBg=\"#a3b18a\",badgeText=\"#fff\",buttonRadius=12,label=\"Cart\"}){const[count,setCount]=React.useState(0);const[hasItems,setHasItems]=React.useState(false);const readCount=React.useCallback(()=>{const raw=typeof window!==\"undefined\"?localStorage.getItem(CART_STORAGE_KEY):null;const cart=parseCart(raw);const items=Array.isArray(cart.items)?cart.items:[];const itemLines=items.length;const qtySum=items.reduce((s,it)=>s+(Number.isFinite(it.qty)?it.qty:0),0);const c=badgeMode===\"qty\"?qtySum:itemLines;setCount(badgeMode===\"qty\"?Number(c.toFixed(2)):c);setHasItems(badgeMode===\"qty\"?qtySum>1e-4:itemLines>0);},[badgeMode]);React.useEffect(()=>{readCount();const onStorage=e=>{if(e.key===CART_STORAGE_KEY)readCount();};const onCustom=()=>readCount();window.addEventListener(\"storage\",onStorage);window.addEventListener(CART_EVENT,onCustom);let bc=null;try{if(\"BroadcastChannel\"in window){bc=new BroadcastChannel(\"buylocal-cart\");bc.addEventListener(\"message\",onCustom);}}catch{}return()=>{window.removeEventListener(\"storage\",onStorage);window.removeEventListener(CART_EVENT,onCustom);try{bc?.removeEventListener(\"message\",onCustom);bc?.close();}catch{}};},[readCount]);const goCart=()=>{try{window.location.assign(cartHref);}catch{}};const iconSize=20;const emptySrc=getSrc(cartEmptyImage);const fullSrc=getSrc(cartFilledImage);return /*#__PURE__*/_jsxs(\"button\",{onClick:goCart,\"aria-label\":\"Cart\",style:{display:\"inline-flex\",alignItems:\"center\",gap:8,padding:\"10px 12px\",borderRadius:buttonRadius,border:\"1px solid rgba(0,0,0,.12)\",background:\"#fff\",cursor:\"pointer\",fontFamily:\"Montserrat, sans-serif\",color:outlineText,position:\"relative\"},children:[emptySrc||fullSrc?/*#__PURE__*/_jsx(\"img\",{src:(hasItems?fullSrc:emptySrc)||emptySrc||\"\",alt:\"Cart\",width:iconSize,height:iconSize,style:{width:iconSize,height:iconSize,objectFit:\"contain\"}}):/*#__PURE__*/_jsxs(\"svg\",{width:iconSize,height:iconSize,viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"path\",{d:\"M3 3h2l2.4 12.5a2 2 0 0 0 2 1.6h7.2a2 2 0 0 0 2-1.6L21 7H6\",stroke:\"currentColor\",strokeWidth:\"1.5\",fill:hasItems?\"currentColor\":\"none\",opacity:hasItems?.2:1}),/*#__PURE__*/_jsx(\"circle\",{cx:\"9\",cy:\"21\",r:\"1.5\",fill:\"currentColor\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"18\",cy:\"21\",r:\"1.5\",fill:\"currentColor\"})]}),/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:600},children:label}),showCount&&/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",top:-6,right:-6,minWidth:18,height:18,borderRadius:9,padding:\"0 6px\",background:badgeBg,color:badgeText,fontSize:12,lineHeight:\"18px\",fontWeight:800,textAlign:\"center\",boxShadow:\"0 0 0 1px rgba(255,255,255,.9)\"},children:count})]});}function safeRole(x){const r=String(x||\"\").toLowerCase();return r===\"consumer\"||r===\"merchant\"||r===\"restaurant\"||r===\"agent\"||r===\"admin\"||r===\"superadmin\"?r:null;}function dashFor(role){if(!role)return\"/\";return ROUTE_AFTER_LOGIN[role]||\"/\";}function useRoleProfile(supabase,session){const[profile,setProfile]=React.useState({role:null,name:null,avatarUrl:null,dashboardPath:\"/\",ready:false});React.useEffect(()=>{let alive=true;async function run(){if(!session?.user){if(alive){setProfile({role:null,name:null,avatarUrl:null,dashboardPath:\"/\",ready:true});}return;}const uid=session.user.id;// Helpful fallbacks if table RLS blocks avatar/profile reads\nconst metaName=session.user.user_metadata?.name||session.user.user_metadata?.full_name||session.user.email||null;const metaAvatar=session.user.user_metadata?.avatar_url||session.user.user_metadata?.picture||null;// 1) Try user_roles first (most correct)\nlet role=null;{const{data:roleRow,error:roleErr}=await supabase.from(\"user_roles\").select(\"role\").eq(\"user_id\",uid).limit(1).maybeSingle();if(roleErr){console.warn(\"user_roles lookup failed:\",roleErr);}role=safeRole(roleRow?.role);}// 2) If role missing, infer from profile tables (same idea as resolveRoleAndPath)\n// Priority: superadmin/admin > agent > merchant > restaurant > consumer\n// Note: we cannot infer superadmin/admin without user_roles unless you keep admins table.\nlet inferred=role;if(!inferred){const[adminRes,agentRes,prodRes,restRes,consRes]=await Promise.allSettled([supabase.from(\"admins\").select(\"user_id, name\").eq(\"user_id\",uid).limit(1).maybeSingle(),supabase.from(\"agents\").select(\"user_id, name\").eq(\"user_id\",uid).limit(1).maybeSingle(),supabase.from(\"producers\").select(\"user_id, name, logo_url\").eq(\"user_id\",uid).limit(1).maybeSingle(),supabase.from(\"restaurants\").select(\"user_id, owner_user_id, business_name, image_url\").or(`user_id.eq.${uid},owner_user_id.eq.${uid}`).limit(1).maybeSingle(),supabase.from(\"consumers\").select(\"user_id, display_name, avatar_url\").eq(\"user_id\",uid).limit(1).maybeSingle()]);const ok=p=>p.status===\"fulfilled\"?p.value?.data??null:null;const admin=ok(adminRes);const agent=ok(agentRes);const producer=ok(prodRes);const restaurant=ok(restRes);const consumer=ok(consRes);if(admin)inferred=\"admin\";else if(agent)inferred=\"agent\";else if(producer)inferred=\"merchant\";else if(restaurant)inferred=\"restaurant\";else if(consumer)inferred=\"consumer\";// Build name/avatar from inferred table results where possible\nconst name=admin?.name??agent?.name??producer?.name??restaurant?.business_name??consumer?.display_name??metaName;const avatarUrl=producer?.logo_url??restaurant?.image_url??consumer?.avatar_url??metaAvatar??null;if(alive){setProfile({role:inferred,name,avatarUrl,dashboardPath:dashFor(inferred),ready:true});}return;}// 3) Role exists from user_roles: fetch name/avatar from the correct table (best effort)\nlet name=metaName;let avatarUrl=metaAvatar;if(inferred===\"consumer\"){const{data,error}=await supabase.from(\"consumers\").select(\"display_name, avatar_url\").eq(\"user_id\",uid).limit(1).maybeSingle();if(error)console.warn(\"consumers profile read failed:\",error);name=data?.display_name??name;avatarUrl=data?.avatar_url??avatarUrl;}if(inferred===\"merchant\"){const{data,error}=await supabase.from(\"producers\").select(\"name, logo_url\").eq(\"user_id\",uid).limit(1).maybeSingle();if(error)console.warn(\"producers profile read failed:\",error);name=data?.name??name;avatarUrl=data?.logo_url??avatarUrl;}if(inferred===\"restaurant\"){const{data,error}=await supabase.from(\"restaurants\").select(\"business_name, image_url, user_id, owner_user_id\").or(`user_id.eq.${uid},owner_user_id.eq.${uid}`).limit(1).maybeSingle();if(error)console.warn(\"restaurants profile read failed:\",error);name=data?.business_name??name;avatarUrl=data?.image_url??avatarUrl;}if(inferred===\"agent\"){const{data,error}=await supabase.from(\"agents\").select(\"name\").eq(\"user_id\",uid).limit(1).maybeSingle();if(error)console.warn(\"agents profile read failed:\",error);name=data?.name??name;}if(inferred===\"admin\"||inferred===\"superadmin\"){const{data,error}=await supabase.from(\"admins\").select(\"name\").eq(\"user_id\",uid).limit(1).maybeSingle();if(error)console.warn(\"admins profile read failed:\",error);name=data?.name??name;}if(alive){setProfile({role:inferred,name,avatarUrl,dashboardPath:dashFor(inferred),ready:true});}}run();return()=>{alive=false;};},[supabase,session]);return{profile};}/* ========= Avatar button ========= */function AvatarButton({profile,buttonRadius,outlineText,size=36,disabled}){const go=()=>{if(disabled)return;try{window.location.assign(profile.dashboardPath||\"/\");}catch{}};const letter=(profile.name?.trim()?.charAt(0)||profile.role?.charAt(0)||\"?\").toUpperCase();return /*#__PURE__*/_jsx(\"button\",{onClick:go,disabled:disabled,\"aria-label\":\"My dashboard\",title:profile.name||\"My dashboard\",style:{display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",padding:\"6px 10px\",borderRadius:buttonRadius,border:\"1px solid rgba(0,0,0,.12)\",background:\"#fff\",cursor:disabled?\"default\":\"pointer\",fontFamily:\"Montserrat, sans-serif\",color:outlineText,height:size+12,opacity:disabled?.6:1},children:/*#__PURE__*/_jsx(\"span\",{style:{width:size,height:size,borderRadius:size/2,overflow:\"hidden\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",border:\"1px solid rgba(0,0,0,.08)\",boxShadow:\"0 1px 2px rgba(0,0,0,.04)\",background:\"#f5f5f5\"},children:profile.avatarUrl?/*#__PURE__*/_jsx(\"img\",{src:profile.avatarUrl,alt:profile.name||\"Avatar\",width:size,height:size,style:{width:size,height:size,objectFit:\"cover\",display:\"block\"},onError:e=>{e.currentTarget.style.display=\"none\";}}):/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:800,fontSize:14,lineHeight:1,color:\"#444\"},children:letter})})});}/* ========= Settings → Password Update ========= */function Field({type=\"text\",placeholder,value,onChange,autoComplete}){return /*#__PURE__*/_jsx(\"div\",{style:{height:44,display:\"flex\",alignItems:\"center\",borderRadius:12,border:\"1px solid #e5e7eb\",padding:\"0 14px\",background:\"#fff\"},children:/*#__PURE__*/_jsx(\"input\",{type:type,placeholder:placeholder,value:value,onChange:e=>onChange(e.target.value),autoComplete:autoComplete,style:{width:\"100%\",height:\"100%\",outline:\"none\",border:\"none\",fontSize:14,color:\"#111\",background:\"transparent\",fontFamily:\"Montserrat, sans-serif\"}})});}function EditLoginDetailsButton({supabase,onSuccess,primaryColor,variant=\"outline\"}){const[open,setOpen]=React.useState(false);const[currentPassword,setCurrentPassword]=React.useState(\"\");const[newPassword,setNewPassword]=React.useState(\"\");const[confirmPassword,setConfirmPassword]=React.useState(\"\");const[loading,setLoading]=React.useState(false);const[error,setError]=React.useState(null);const[info,setInfo]=React.useState(null);const TOKENS={primary:\"#a3b18a\",onPrimary:\"#ffffff\",outlineText:\"#111111\",border:\"1px solid rgba(0,0,0,.12)\",shadowSolid:\"0 6px 18px rgba(163,177,138,.35)\",brandBorder:\"1px solid #6b705c\",font:\"Montserrat, sans-serif\"};const baseBtn={fontFamily:TOKENS.font,border:TOKENS.border,borderRadius:8,width:34,height:34,cursor:\"pointer\",transition:\"all .2s ease\",background:\"#fff\",color:TOKENS.outlineText,display:\"flex\",alignItems:\"center\",justifyContent:\"center\"};const solidBtn={...baseBtn,background:TOKENS.primary,color:TOKENS.onPrimary,boxShadow:TOKENS.shadowSolid,border:TOKENS.brandBorder};const P=primaryColor||TOKENS.primary;const outline={...baseBtn,borderColor:\"rgba(0,0,0,.15)\"};const solid={...solidBtn,background:P};function resetState(){setCurrentPassword(\"\");setNewPassword(\"\");setConfirmPassword(\"\");setError(null);setInfo(null);}function strengthOK(pw){return pw.length>=8&&/[A-Za-z]/.test(pw)&&/\\d/.test(pw);}async function handleSave(e){e.preventDefault();setError(null);setInfo(null);if(!currentPassword)return setError(\"Please confirm your current password.\");if(!newPassword)return setError(\"Enter a new password.\");if(newPassword!==confirmPassword)return setError(\"Passwords do not match.\");if(!strengthOK(newPassword))return setError(\"Password must be at least 8 characters and include letters and numbers.\");setLoading(true);try{const{data:userResp,error:userErr}=await supabase.auth.getUser();if(userErr||!userResp?.user?.email)throw new Error(\"Invalid session. Please log in again.\");const email=userResp.user.email;const{error:signinErr}=await supabase.auth.signInWithPassword({email,password:currentPassword});if(signinErr)throw new Error(\"Current password is incorrect.\");const{error:updErr}=await supabase.auth.updateUser({password:newPassword});if(updErr)throw updErr;setInfo(\"Password updated successfully.\");onSuccess?.(\"Password updated\");setTimeout(()=>{setOpen(false);resetState();},800);}catch(err){setError(err?.message??\"Error updating password.\");}finally{setLoading(false);}}return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",style:variant===\"solid\"?solid:outline,onClick:()=>setOpen(true),\"aria-label\":\"Settings\",title:\"Settings\",children:/*#__PURE__*/_jsxs(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",style:{display:\"block\"},\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M19.4 15a2 2 0 0 0 .4 2.2l.1.1a1.8 1.8 0 1 1-2.5 2.5l-.1-.1a2 2 0 0 0-2.2-.4 2 2 0 0 0-1.1 1.1 2 2 0 0 0-.2.9V21a1.8 1.8 0 1 1-3.6 0v-.1a2 2 0 0 0-.2-.9 2 2 0 0 0-1.1-1.1 2 2 0 0 0-2.2.4l-.1.1a1.8 1.8 0 1 1-2.5-2.5l.1-.1a2 2 0 0 0 .4-2.2 2 2 0 0 0-1.1-1.1 2 2 0 0 0-.9-.2H3a1.8 1.8 0 1 1 0-3.6h.1a2 2 0 0 0 .9-.2 2 2 0 0 0 1.1-1.1 2 2 0 0 0-.4-2.2l-.1-.1A1.8 1.8 0 1 1 6.8 3.6l.1.1a2 2 0 0 0 2.2.4 2 2 0 0 0 1.1-1.1 2 2 0 0 0 .2-.9V3a1.8 1.8 0 1 1 3.6 0v.1a2 2 0 0 0 .2.9 2 2 0 0 0 1.1 1.1 2 2 0 0 0 2.2-.4l.1-.1A1.8 1.8 0 1 1 20.4 6.8l-.1.1a2 2 0 0 0-.4 2.2 2 2 0 0 0 1.1 1.1 2 2 0 0 0 .9.2H21a1.8 1.8 0 1 1 0 3.6h-.1a2 2 0 0 0-.9.2 2 2 0 0 0-1.1 1.1Z\"})]})}),open&&/*#__PURE__*/_jsx(OverlayModal,{onBackdrop:()=>{setOpen(false);resetState();},radius:12,children:/*#__PURE__*/_jsxs(\"div\",{style:{borderRadius:12,border:\"1px solid rgba(0,0,0,.08)\",boxShadow:\"0 24px 48px rgba(0,0,0,.18)\",padding:16,fontFamily:TOKENS.font},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\"},children:[/*#__PURE__*/_jsx(\"h3\",{style:{margin:0,fontSize:18,fontWeight:700},children:\"Update Password\"}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>{setOpen(false);resetState();},style:{background:\"transparent\",border:\"none\",cursor:\"pointer\",fontSize:18},\"aria-label\":\"Close\",children:\"✕\"})]}),/*#__PURE__*/_jsxs(\"form\",{onSubmit:handleSave,style:{display:\"grid\",gap:10,marginTop:10},children:[/*#__PURE__*/_jsx(Field,{type:\"password\",placeholder:\"Current password\",value:currentPassword,onChange:setCurrentPassword,autoComplete:\"current-password\"}),/*#__PURE__*/_jsx(Field,{type:\"password\",placeholder:\"New password\",value:newPassword,onChange:setNewPassword,autoComplete:\"new-password\"}),/*#__PURE__*/_jsx(Field,{type:\"password\",placeholder:\"Confirm new password\",value:confirmPassword,onChange:setConfirmPassword,autoComplete:\"new-password\"}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:10,justifyContent:\"flex-end\",marginTop:4},children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>{setOpen(false);resetState();},style:{fontFamily:TOKENS.font,border:TOKENS.border,borderRadius:12,height:40,padding:\"10px 16px\",fontSize:14,fontWeight:700,background:\"#fff\",color:TOKENS.outlineText},children:\"Cancel\"}),/*#__PURE__*/_jsx(\"button\",{type:\"submit\",disabled:loading,style:{fontFamily:TOKENS.font,border:TOKENS.brandBorder,borderRadius:12,height:40,padding:\"10px 16px\",fontSize:14,fontWeight:700,background:P,color:TOKENS.onPrimary,boxShadow:TOKENS.shadowSolid,opacity:loading?.7:1},children:loading?\"Saving…\":\"Save\"})]}),(error||info)&&/*#__PURE__*/_jsx(\"div\",{style:{marginTop:6,fontSize:13,color:error?\"#c0392b\":\"#2c3e50\"},children:error||info})]})]})})]});}/* ========= MAIN COMPONENT ========= */export default function AuthAwareActions(props){const{primaryColor=\"#a3b18a\",textOnPrimary=\"#ffffff\",outlineText=\"#111111\",buttonRadius=12,gap=8,fontWeight=700,// JOIN\njoinLabel=\"JOIN\",producerQuestion=\"How would you like to join?\",producerYesLabel=\"I'm a Local Merchant\",producerNoLabel=\"I'm a Conscious Consumer\",restaurantJoinLabel=\"I'm a Local-First Restaurant\",consumerTitle=\"Join as a Conscious Consumer\",consumerSubtitle=\"Verify your email to unlock features and access the marketplace.\",restaurantTitle=\"Join as a Local-First Restaurant\",restaurantSubtitle=\"Verify your email to start onboarding your restaurant.\",merchantTitle=\"Join as a Local Merchant\",merchantSubtitle=\"Verify your email to start your merchant profile.\",// CART\ncartLabel=\"Cart\",cartHref=\"/cart\",cartBadgeMode=\"items\",cartShowCount=true,cartEmptyImage,cartFilledImage,cartBadgeBg=\"#a3b18a\",cartBadgeText=\"#fff\",// Supabase override\nsupabaseUrl,supabaseAnonKey}=props;const supabase=useSupabase({url:supabaseUrl,anon:supabaseAnonKey});const[session,setSession]=React.useState(null);const[authReady,setAuthReady]=React.useState(false);React.useEffect(()=>{let alive=true;(async()=>{const{data}=await supabase.auth.getSession();if(!alive)return;setSession(data?.session||null);setAuthReady(true);})();const{data:sub}=supabase.auth.onAuthStateChange((_e,s)=>{setSession(s);});return()=>{alive=false;sub?.subscription?.unsubscribe?.();};},[supabase]);const{profile}=useRoleProfile(supabase,session);const[showJoinPrompt,setShowJoinPrompt]=React.useState(false);const[showConsumerForm,setShowConsumerForm]=React.useState(false);const[showRestaurantForm,setShowRestaurantForm]=React.useState(false);const[showMerchantForm,setShowMerchantForm]=React.useState(false);const[showLogin,setShowLogin]=React.useState(false);const[loginHeaderNote,setLoginHeaderNote]=React.useState(null);const logout=async()=>{await supabase.auth.signOut();try{sessionStorage.clear();}catch{}try{window.location.assign(\"/\");}catch{}};const goChat=()=>{if(!session){setLoginHeaderNote(\"Chat runs on buylocal.pt. Please sign in here to continue (even if you're signed in on quemproduzlocal.pt).\");setShowLogin(true);return;}try{window.location.assign(\"/chat\");}catch{}};const baseBtn={fontFamily:\"Montserrat, sans-serif\",border:\"1px solid rgba(0,0,0,.12)\",borderRadius:buttonRadius,padding:\"10px 16px\",fontSize:14,fontWeight,cursor:\"pointer\",transition:\"opacity .2s ease, box-shadow .2s ease\"};const solid={...baseBtn,background:primaryColor,color:textOnPrimary,boxShadow:\"0 6px 18px rgba(163,177,138,.35)\",border:\"1px solid #6b705c\"};const outline={...baseBtn,background:\"#fff\",color:outlineText};const isIn=!!session;const avatarDisabled=!profile.ready||!profile.role||!profile.dashboardPath;return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap,fontFamily:\"Montserrat, sans-serif\"},children:[authReady&&!isIn&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"button\",{style:outline,onClick:()=>setShowJoinPrompt(true),children:joinLabel}),/*#__PURE__*/_jsx(\"button\",{style:solid,onClick:()=>{setLoginHeaderNote(null);setShowLogin(true);},children:\"LOGIN\"})]}),authReady&&isIn&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(AvatarButton,{profile:profile,buttonRadius:buttonRadius,outlineText:outlineText,disabled:avatarDisabled}),/*#__PURE__*/_jsx(EditLoginDetailsButton,{supabase:supabase,primaryColor:primaryColor,variant:\"outline\",onSuccess:()=>{}}),/*#__PURE__*/_jsx(CartIndicator,{cartHref:cartHref,cartEmptyImage:cartEmptyImage,cartFilledImage:cartFilledImage,badgeMode:cartBadgeMode,showCount:cartShowCount,outlineText:outlineText,badgeBg:cartBadgeBg,badgeText:cartBadgeText,buttonRadius:buttonRadius,label:cartLabel}),/*#__PURE__*/_jsx(\"button\",{style:outline,onClick:goChat,children:\"Chat\"}),/*#__PURE__*/_jsx(\"button\",{style:solid,onClick:logout,children:\"Log out\"})]}),!authReady&&/*#__PURE__*/_jsx(\"span\",{style:{opacity:.7},children:\"…\"}),showJoinPrompt&&/*#__PURE__*/_jsx(OverlayModal,{onBackdrop:()=>setShowJoinPrompt(false),radius:buttonRadius,children:/*#__PURE__*/_jsxs(\"div\",{style:{padding:24,fontFamily:\"Montserrat, sans-serif\",position:\"relative\"},children:[/*#__PURE__*/_jsx(\"button\",{\"aria-label\":\"Close\",onClick:()=>setShowJoinPrompt(false),style:{position:\"absolute\",top:8,right:8,width:28,height:28,borderRadius:999,border:\"1px solid rgba(0,0,0,.08)\",background:\"#fff\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontSize:16,lineHeight:1,padding:0},children:\"\\xd7\"}),/*#__PURE__*/_jsxs(\"h3\",{style:{fontSize:20,margin:0,textAlign:\"center\",fontWeight:700},children:[/*#__PURE__*/_jsx(\"p\",{children:\"How do you wish to join\"}),\"the Buy Local movement?\"]}),/*#__PURE__*/_jsxs(\"div\",{style:{marginTop:24,display:\"grid\",gap:12},children:[/*#__PURE__*/_jsxs(\"div\",{style:{borderRadius:14,border:\"1px solid rgba(0,0,0,.06)\",padding:16,background:\"#f7f9f5\",display:\"grid\",gap:8},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,fontSize:15},children:\"Local Merchant\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:13,color:\"#555\"},children:\"Showcase your products, get discovered by conscious consumers and restaurants, and manage your presence in one place.\"}),/*#__PURE__*/_jsx(\"button\",{style:solid,onClick:()=>{setShowJoinPrompt(false);setTimeout(()=>setShowMerchantForm(true),0);},children:producerYesLabel})]}),/*#__PURE__*/_jsxs(\"div\",{style:{borderRadius:14,border:\"1px solid rgba(0,0,0,.06)\",padding:16,background:\"#f9fafb\",display:\"grid\",gap:8},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,fontSize:15},children:\"Conscious Consumer\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:13,color:\"#555\"},children:\"Save favourites, follow local producers and stay close to what’s grown and made around you.\"}),/*#__PURE__*/_jsx(\"button\",{style:solid,onClick:()=>{setShowJoinPrompt(false);setTimeout(()=>setShowConsumerForm(true),0);},children:producerNoLabel})]}),/*#__PURE__*/_jsxs(\"div\",{style:{borderRadius:14,border:\"1px solid rgba(0,0,0,.06)\",padding:16,background:\"#f9fafb\",display:\"grid\",gap:8},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,fontSize:15},children:\"Local-First Restaurant\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:13,color:\"#555\"},children:\"Build direct relationships with producers and tell a stronger local story on your menus.\"}),/*#__PURE__*/_jsx(\"button\",{style:solid,onClick:()=>{setShowJoinPrompt(false);setTimeout(()=>setShowRestaurantForm(true),0);},children:restaurantJoinLabel})]})]}),/*#__PURE__*/_jsxs(\"p\",{style:{marginTop:18,fontSize:11,color:\"#777\",textAlign:\"center\"},children:[\"Interested in joining as a\",\" \",/*#__PURE__*/_jsx(\"strong\",{children:\"Buy Local Agent\"}),\"? Email\",\" \",/*#__PURE__*/_jsx(\"a\",{href:\"mailto:geral@buylocal.pt?subject=Agent%20Programme\",style:{color:primaryColor},children:\"geral@buylocal.pt\"})]})]})}),showMerchantForm&&/*#__PURE__*/_jsx(RoleVerifyModal,{onClose:()=>setShowMerchantForm(false),title:merchantTitle,subtitle:merchantSubtitle,accentColor:primaryColor,borderRadius:buttonRadius,supabase:supabase,roleHint:\"merchant\"}),showConsumerForm&&/*#__PURE__*/_jsx(RoleVerifyModal,{onClose:()=>setShowConsumerForm(false),title:consumerTitle,subtitle:consumerSubtitle,accentColor:primaryColor,borderRadius:buttonRadius,supabase:supabase,roleHint:\"consumer\"}),showRestaurantForm&&/*#__PURE__*/_jsx(RoleVerifyModal,{onClose:()=>setShowRestaurantForm(false),title:restaurantTitle,subtitle:restaurantSubtitle,accentColor:primaryColor,borderRadius:buttonRadius,supabase:supabase,roleHint:\"restaurant\"}),/*#__PURE__*/_jsx(LoginModal,{open:showLogin,onClose:()=>setShowLogin(false),buttonColor:primaryColor,textColor:\"#ffffff\",borderRadius:buttonRadius,supabase:supabase,headerNote:loginHeaderNote})]});}addPropertyControls(AuthAwareActions,{primaryColor:{type:ControlType.Color,title:\"Primary\",defaultValue:\"#a3b18a\"},textOnPrimary:{type:ControlType.Color,title:\"On Primary\",defaultValue:\"#ffffff\"},outlineText:{type:ControlType.Color,title:\"Outline Text\",defaultValue:\"#111111\"},buttonRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:12,min:0,max:48},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:8,min:0,max:40},fontWeight:{type:ControlType.Enum,title:\"Font Weight\",options:[400,500,600,700],optionTitles:[\"Regular\",\"Medium\",\"SemiBold\",\"Bold\"],defaultValue:700},joinLabel:{type:ControlType.String,title:\"JOIN Label\",defaultValue:\"JOIN\"},producerQuestion:{type:ControlType.String,title:\"Join Prompt\",defaultValue:\"How would you like to join?\"},producerYesLabel:{type:ControlType.String,title:\"Merchant Button\",defaultValue:\"I'm a Local Merchant\"},producerNoLabel:{type:ControlType.String,title:\"Consumer Button\",defaultValue:\"I'm a Conscious Consumer\"},restaurantJoinLabel:{type:ControlType.String,title:\"Restaurant Button\",defaultValue:\"I'm a Local-First Restaurant\"},consumerTitle:{type:ControlType.String,title:\"Consumer Title\",defaultValue:\"Join as a Conscious Consumer\"},consumerSubtitle:{type:ControlType.String,title:\"Consumer Subtitle\",defaultValue:\"Verify your email to unlock features and access the marketplace.\"},restaurantTitle:{type:ControlType.String,title:\"Restaurant Title\",defaultValue:\"Join as a Local-First Restaurant\"},restaurantSubtitle:{type:ControlType.String,title:\"Restaurant Subtitle\",defaultValue:\"Verify your email to start onboarding your restaurant.\"},merchantTitle:{type:ControlType.String,title:\"Merchant Title\",defaultValue:\"Join as a Local Merchant\"},merchantSubtitle:{type:ControlType.String,title:\"Merchant Subtitle\",defaultValue:\"Verify your email to start your merchant profile.\"},producerUrl:{type:ControlType.String,title:\"Merchant Join URL\",defaultValue:\"https://quemproduzlocal.pt\"},cartLabel:{type:ControlType.String,title:\"Cart Label\",defaultValue:\"Cart\"},cartHref:{type:ControlType.String,title:\"Cart URL\",defaultValue:\"/cart\"},cartBadgeMode:{type:ControlType.Enum,title:\"Cart Badge Mode\",options:[\"items\",\"qty\"],optionTitles:[\"Item count\",\"Sum of qty\"],defaultValue:\"items\"},cartShowCount:{type:ControlType.Boolean,title:\"Show Count Badge\",defaultValue:true},cartEmptyImage:{type:ControlType.ResponsiveImage,title:\"Cart (Empty)\"},cartFilledImage:{type:ControlType.ResponsiveImage,title:\"Cart (Filled)\"},cartBadgeBg:{type:ControlType.Color,title:\"Badge BG\",defaultValue:\"#a3b18a\"},cartBadgeText:{type:ControlType.Color,title:\"Badge Text\",defaultValue:\"#fff\"},supabaseUrl:{type:ControlType.String,title:\"Supabase URL (override)\",defaultValue:\"https://xnwbfkrbikpcvfzfajah.supabase.co\"},supabaseAnonKey:{type:ControlType.String,title:\"Supabase Anon (override)\",defaultValue:FALLBACK_ANON}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AuthAwareActions\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AuthAwareActions.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useCallback}from\"react\";const defaultLinks=[{label:\"ABOUT US\",href:\"/about-us\"},{label:\"MARKETPLACE\",href:\"/marketplace\"},{label:\"MERCHANTS\",href:\"/merchants\"},{label:\"RESTAURANTS\",href:\"/restaurants\"}];/**\n * BuyLocal Navigation Bar — page-centered (zoom-safe)\n * Stays centered with the page regardless of zoom or parent frame width.\n * No absolute/fixed positioning; lives inside normal flow.\n */export default function BuyLocalNavigationBar(props){const{links=defaultLinks,backgroundColor,linkColor,linkHoverColor,font,gap,style,paddingX,itemPaddingX,itemPaddingY,borderRadius,maxWidth=\"1200px\",height=52}=props;const goto=useCallback(href=>{if(href&&typeof window!==\"undefined\")window.location.href=href;},[]);return(// Full-bleed wrapper that aligns to viewport center (zoom-safe)\n/*#__PURE__*/_jsx(\"div\",{style:{// This block makes the component align with the true page center,\n// ignoring the parent frame’s width/pinning.\nposition:\"relative\",left:\"50%\",width:\"100vw\",marginLeft:\"-50vw\",// keep it in flow (no fixed/absolute top), respect the component's own height\nboxSizing:\"border-box\",background:backgroundColor},children:/*#__PURE__*/_jsx(\"nav\",{style:{...style,width:\"100%\",height,boxSizing:\"border-box\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",// page content container: same width as the rest of the site\npadding:`0 ${paddingX}px`},\"aria-label\":\"Main navigation\",children:/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",maxWidth,margin:\"0 auto\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\"},children:/*#__PURE__*/_jsx(\"ul\",{style:{display:\"flex\",gap,listStyle:\"none\",margin:0,padding:0,alignItems:\"center\",whiteSpace:\"nowrap\"},children:links.map((link,i)=>/*#__PURE__*/_jsx(\"li\",{style:{cursor:\"pointer\"},children:/*#__PURE__*/_jsx(\"a\",{href:link.href,onClick:e=>{e.preventDefault();goto(link.href);},onMouseEnter:e=>e.currentTarget.style.color=linkHoverColor,onMouseLeave:e=>e.currentTarget.style.color=linkColor,style:{fontFamily:font&&font.fontFamily||\"Montserrat, Arial, sans-serif\",fontSize:font&&font.fontSize||\"16px\",fontWeight:font&&font.weight||600,letterSpacing:font&&font.letterSpacing||\"0.08em\",lineHeight:font&&font.lineHeight||\"1.2em\",textTransform:\"uppercase\",color:linkColor,textDecoration:\"none\",padding:`${itemPaddingY}px ${itemPaddingX}px`,borderRadius,transition:\"color .15s, opacity .15s\",display:\"inline-block\",outline:\"none\"},\"aria-label\":link.label,children:link.label?.toUpperCase?.()||link.label})},i))})})})}));}addPropertyControls(BuyLocalNavigationBar,{backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"transparent\"},linkColor:{type:ControlType.Color,title:\"Link Color\",defaultValue:\"#222222\"},linkHoverColor:{type:ControlType.Color,title:\"Link Hover\",defaultValue:\"#A3B18A\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontFamily:\"Montserrat, Arial, sans-serif\",fontSize:\"16px\",weight:600,letterSpacing:\"0.08em\",lineHeight:\"1.2em\"}},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:24,min:8,max:64,unit:\"px\"},paddingX:{type:ControlType.Number,title:\"Side Padding\",defaultValue:24,min:0,max:96,unit:\"px\"},itemPaddingX:{type:ControlType.Number,title:\"Item X Padding\",defaultValue:12,min:4,max:48,unit:\"px\"},itemPaddingY:{type:ControlType.Number,title:\"Item Y Padding\",defaultValue:6,min:2,max:24,unit:\"px\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:10,min:0,max:24,unit:\"px\"},links:{type:ControlType.Array,title:\"Links\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\",defaultValue:\"LINK\"},href:{type:ControlType.String,title:\"URL\",defaultValue:\"#\"}}},defaultValue:defaultLinks},maxWidth:{type:ControlType.String,title:\"Max Width\",defaultValue:\"1200px\"},height:{type:ControlType.Number,title:\"Height\",defaultValue:52,min:36,max:120,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BuyLocalNavigationBar\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BuyLocalNavigationBar_1.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useCallback}from\"react\";const defaultLinks=[{label:\"ABOUT US\",href:\"/about-us\"},{label:\"MARKETPLACE\",href:\"/marketplace\"},{label:\"OUR PRODUCERS\",href:\"/ourproducers\"},{label:\"HAMPERS\",href:\"/hampers\"}];/**\n * BuyLocal Navigation Bar — page-centered (zoom-safe)\n * Stays centered with the page regardless of zoom or parent frame width.\n * No absolute/fixed positioning; lives inside normal flow.\n */export default function BuyLocalNavigationBar(props){const{links=defaultLinks,backgroundColor,linkColor,linkHoverColor,font,gap,style,paddingX,itemPaddingX,itemPaddingY,borderRadius,maxWidth=\"1200px\",height=52}=props;const goto=useCallback(href=>{if(href&&typeof window!==\"undefined\")window.location.href=href;},[]);return(// Full-bleed wrapper that aligns to viewport center (zoom-safe)\n/*#__PURE__*/_jsx(\"div\",{style:{// This block makes the component align with the true page center,\n// ignoring the parent frame’s width/pinning.\nposition:\"relative\",left:\"50%\",width:\"100vw\",marginLeft:\"-50vw\",// keep it in flow (no fixed/absolute top), respect the component's own height\nboxSizing:\"border-box\",background:backgroundColor},children:/*#__PURE__*/_jsx(\"nav\",{style:{...style,width:\"100%\",height,boxSizing:\"border-box\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",// page content container: same width as the rest of the site\npadding:`0 ${paddingX}px`},\"aria-label\":\"Main navigation\",children:/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",maxWidth,margin:\"0 auto\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\"},children:/*#__PURE__*/_jsx(\"ul\",{style:{display:\"flex\",gap,listStyle:\"none\",margin:0,padding:0,alignItems:\"center\",whiteSpace:\"nowrap\"},children:links.map((link,i)=>/*#__PURE__*/_jsx(\"li\",{style:{cursor:\"pointer\"},children:/*#__PURE__*/_jsx(\"a\",{href:link.href,onClick:e=>{e.preventDefault();goto(link.href);},onMouseEnter:e=>e.currentTarget.style.color=linkHoverColor,onMouseLeave:e=>e.currentTarget.style.color=linkColor,style:{fontFamily:font&&font.fontFamily||\"Montserrat, Arial, sans-serif\",fontSize:font&&font.fontSize||\"16px\",fontWeight:font&&font.weight||600,letterSpacing:font&&font.letterSpacing||\"0.08em\",lineHeight:font&&font.lineHeight||\"1.2em\",textTransform:\"uppercase\",color:linkColor,textDecoration:\"none\",padding:`${itemPaddingY}px ${itemPaddingX}px`,borderRadius,transition:\"color .15s, opacity .15s\",display:\"inline-block\",outline:\"none\"},\"aria-label\":link.label,children:link.label?.toUpperCase?.()||link.label})},i))})})})}));}addPropertyControls(BuyLocalNavigationBar,{backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"transparent\"},linkColor:{type:ControlType.Color,title:\"Link Color\",defaultValue:\"#222222\"},linkHoverColor:{type:ControlType.Color,title:\"Link Hover\",defaultValue:\"#A3B18A\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontFamily:\"Montserrat, Arial, sans-serif\",fontSize:\"16px\",weight:600,letterSpacing:\"0.08em\",lineHeight:\"1.2em\"}},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:24,min:8,max:64,unit:\"px\"},paddingX:{type:ControlType.Number,title:\"Side Padding\",defaultValue:24,min:0,max:96,unit:\"px\"},itemPaddingX:{type:ControlType.Number,title:\"Item X Padding\",defaultValue:12,min:4,max:48,unit:\"px\"},itemPaddingY:{type:ControlType.Number,title:\"Item Y Padding\",defaultValue:6,min:2,max:24,unit:\"px\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:10,min:0,max:24,unit:\"px\"},links:{type:ControlType.Array,title:\"Links\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\",defaultValue:\"LINK\"},href:{type:ControlType.String,title:\"URL\",defaultValue:\"#\"}}},defaultValue:defaultLinks},maxWidth:{type:ControlType.String,title:\"Max Width\",defaultValue:\"1200px\"},height:{type:ControlType.Number,title:\"Height\",defaultValue:52,min:36,max:120,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BuyLocalNavigationBar\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BuyLocalNavigationBar_2.map","/** @framerIntrinsicHeight 60 */import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";import{createClient}from\"@supabase/supabase-js\";import{createPortal}from\"react-dom\";/**\n * ================================\n *  SHARED AUTH / UI HELPERS\n * ================================\n */const FALLBACK_URL=\"https://xnwbfkrbikpcvfzfajah.supabase.co\";const FALLBACK_ANON=\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inhud2Jma3JiaWtwY3ZmemZhamFoIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTIxODk1MzQsImV4cCI6MjA2Nzc2NTUzNH0.hPKNFC2BKPb1CX6o-8ZLh45-KEN5ijCHWzndAjWxq6o\";const ABS_ONBOARDING_BASE=\"https://buylocal.pt/onboarding\";const BUYLOCAL_HOME=\"https://buylocal.pt/\";/**\n * Dashboard routes on buylocal.pt\n */const ROUTE_AFTER_LOGIN={merchant:\"/merchant-dashboard\",consumer:\"/consumer\",restaurant:\"/myrestaurant\",agent:\"/agent\",admin:\"/admin-dashblpt\",superadmin:\"/admin-dashblpt\"};const STASH_OLD=\"buylocal_pending_consumer_profile\";const STASH_NEW=\"buylocal_pending_profile\";/**\n * Supabase client (Framer-safe) — fixes logout reliability by providing:\n * - storage: window.localStorage\n * - storageKey: stable key\n */function useSupabase(explicit){const envUrl=(process.env.NEXT_PUBLIC_SUPABASE_URL??\"\").trim();const envAnon=(process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY??\"\").trim();let url=(explicit?.url??\"\").trim()||envUrl||FALLBACK_URL;let anon=(explicit?.anon??\"\").trim()||envAnon||FALLBACK_ANON;if(!/^https?:\\/\\//i.test(url))url=FALLBACK_URL;if(!anon)anon=FALLBACK_ANON;return React.useMemo(()=>createClient(url,anon,{auth:{persistSession:true,autoRefreshToken:true,// Critical for Framer + reliable signOut\n    storage:typeof window!==\"undefined\"?window.localStorage:undefined,storageKey:\"sb-buylocal-auth\"}}),[url,anon]);}function buildOnboardingRedirect(intent,email){const u=new URL(ABS_ONBOARDING_BASE);u.searchParams.set(\"intent\",intent);if(email)u.searchParams.set(\"email\",email);return u.toString();}/* ========= Portal + Modal ========= */function useIsClient(){const[ready,setReady]=React.useState(false);React.useEffect(()=>setReady(true),[]);return ready&&typeof document!==\"undefined\";}function Portal({children}){const isClient=useIsClient();return isClient?/*#__PURE__*/createPortal(children,document.body):null;}function OverlayModal({children,onBackdrop,radius=16}){function stop(e){e.stopPropagation();}return /*#__PURE__*/_jsx(Portal,{children:/*#__PURE__*/_jsxs(\"div\",{role:\"dialog\",\"aria-modal\":\"true\",onMouseDown:()=>onBackdrop?.(),style:{position:\"fixed\",inset:0,zIndex:2147483647,width:\"100dvw\",height:\"100dvh\",paddingLeft:\"env(safe-area-inset-left)\",paddingRight:\"env(safe-area-inset-right)\",paddingTop:\"env(safe-area-inset-top)\",paddingBottom:\"env(safe-area-inset-bottom)\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,background:\"rgba(0,0,0,.45)\",backdropFilter:\"blur(2px)\"}}),/*#__PURE__*/_jsx(\"div\",{onMouseDown:stop,style:{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:16},children:/*#__PURE__*/_jsx(\"div\",{onMouseDown:stop,style:{width:\"100%\",maxWidth:640,maxHeight:\"90dvh\",overflow:\"auto\",background:\"#fff\",borderRadius:radius,border:\"1px solid rgba(0,0,0,.08)\",boxShadow:\"0 24px 48px rgba(0,0,0,.18)\"},children:children})})]})});}/* ========= Shared Input ========= */function Input(props){const{type=\"text\",placeholder,value,onChange,required,name,autoComplete,disabled}=props;return /*#__PURE__*/_jsx(\"div\",{style:{height:48,display:\"flex\",alignItems:\"center\",borderRadius:14,border:\"1px solid #e5e7eb\",padding:\"0 14px\",background:disabled?\"#f8f8f8\":\"#fff\",opacity:disabled?.8:1},children:/*#__PURE__*/_jsx(\"input\",{type:type,placeholder:placeholder,value:value,onChange:onChange,required:required,name:name,autoComplete:autoComplete,disabled:disabled,style:{width:\"100%\",height:\"100%\",outline:\"none\",border:\"none\",fontSize:14,color:\"#111\",background:\"transparent\",fontFamily:\"Montserrat, sans-serif\"}})});}/* ========= JOIN modal: unified RoleVerifyModal ========= */function RoleVerifyModal({onClose,title,subtitle,accentColor,borderRadius,supabase,roleHint}){const[loading,setLoading]=React.useState(false);const[sent,setSent]=React.useState(false);const[info,setInfo]=React.useState(null);const[err,setErr]=React.useState(null);const[name,setName]=React.useState(\"\");const[email,setEmail]=React.useState(\"\");const[phone,setPhone]=React.useState(\"\");const validEmail=x=>/\\S+@\\S+\\.\\S+/.test(x);async function handleSubmit(e){e.preventDefault();if(!validEmail(email))return setErr(\"Please enter a valid email.\");setLoading(true);setErr(null);setInfo(null);try{const payload={name:name||undefined,phone:phone||undefined,email,intent:roleHint,roleHint,ts:Date.now()};try{localStorage.setItem(STASH_NEW,JSON.stringify(payload));localStorage.setItem(\"buylocal_join_intent\",roleHint);localStorage.removeItem(STASH_OLD);}catch{}const redirectTo=buildOnboardingRedirect(roleHint,email);const{error}=await supabase.auth.signInWithOtp({email,options:{shouldCreateUser:true,emailRedirectTo:redirectTo,data:{name,phone,preselected_role:roleHint,join_intent:roleHint,join_ts:Date.now()}}});if(error)throw error;setSent(true);setInfo(\"Check your inbox (and spam). After confirming, you'll be redirected to onboarding.\");}catch(e){setErr(e?.message??\"We couldn't send the verification email.\");}finally{setLoading(false);}}return /*#__PURE__*/_jsx(OverlayModal,{onBackdrop:onClose,radius:borderRadius,children:/*#__PURE__*/_jsxs(\"div\",{style:{padding:24,fontFamily:\"Montserrat, sans-serif\"},children:[/*#__PURE__*/_jsx(\"h3\",{style:{margin:0,fontSize:22,fontWeight:700,textAlign:\"center\"},children:title}),/*#__PURE__*/_jsx(\"p\",{style:{marginTop:10,textAlign:\"center\",color:\"#555\",fontSize:14},children:subtitle}),/*#__PURE__*/_jsxs(\"form\",{onSubmit:handleSubmit,style:{marginTop:20},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"grid\",gap:10},children:[/*#__PURE__*/_jsx(Input,{placeholder:\"Name\",value:name,onChange:e=>setName(e.target.value)}),/*#__PURE__*/_jsx(Input,{type:\"email\",placeholder:\"Email\",value:email,onChange:e=>setEmail(e.target.value),required:true,disabled:sent}),/*#__PURE__*/_jsx(Input,{placeholder:\"Phone\",value:phone,onChange:e=>setPhone(e.target.value),disabled:sent})]}),err&&/*#__PURE__*/_jsx(\"p\",{style:{color:\"#c0392b\",fontSize:13,marginTop:10},children:err}),info&&/*#__PURE__*/_jsx(\"p\",{style:{color:\"#2c3e50\",fontSize:13,marginTop:10},children:info}),/*#__PURE__*/_jsx(\"button\",{type:\"submit\",disabled:loading||sent,style:{marginTop:16,width:\"100%\",height:48,borderRadius:14,background:accentColor,color:\"#fff\",fontWeight:700,fontSize:16,border:\"none\",cursor:\"pointer\",boxShadow:\"0 8px 20px rgba(0,0,0,0.12)\",opacity:loading?.7:1},children:loading?\"Sending…\":sent?\"Email sent\":\"Submit\"}),sent&&/*#__PURE__*/_jsx(\"div\",{style:{textAlign:\"center\",marginTop:8},children:/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:handleSubmit,style:{background:\"transparent\",border:\"none\",textDecoration:\"underline\",cursor:\"pointer\",color:\"#333\",fontSize:14},children:\"Resend email\"})}),/*#__PURE__*/_jsx(\"div\",{style:{textAlign:\"center\",marginTop:12},children:/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:onClose,style:{background:\"transparent\",border:\"none\",textDecoration:\"underline\",cursor:\"pointer\",color:\"#333\",fontSize:14},children:\"Close\"})})]})]})});}/* ========= ROLE RESOLUTION (user_roles first; fallback tables) ========= */async function resolveRoleAndPath(supabase){const{data:sessionData}=await supabase.auth.getSession();const user=sessionData?.session?.user;const uid=user?.id;if(!uid)return{role:null,path:null};// 1) Single source of truth: user_roles\nconst{data:roleRow,error:roleErr}=await supabase.from(\"user_roles\").select(\"role\").eq(\"user_id\",uid).maybeSingle();if(!roleErr&&roleRow?.role){const role=roleRow.role;if(role===\"superadmin\")return{role:\"superadmin\",path:ROUTE_AFTER_LOGIN.superadmin};if(role===\"admin\")return{role:\"admin\",path:ROUTE_AFTER_LOGIN.admin};if(role===\"merchant\")return{role:\"merchant\",path:ROUTE_AFTER_LOGIN.merchant};if(role===\"restaurant\")return{role:\"restaurant\",path:ROUTE_AFTER_LOGIN.restaurant};if(role===\"agent\")return{role:\"agent\",path:ROUTE_AFTER_LOGIN.agent};if(role===\"consumer\")return{role:\"consumer\",path:ROUTE_AFTER_LOGIN.consumer};}// 2) Legacy / fallback: infer from tables\nconst[mRes,rRes,aRes,cRes,adminRes]=await Promise.allSettled([supabase.from(\"producers\").select(\"user_id\").eq(\"user_id\",uid).limit(1).maybeSingle(),supabase.from(\"restaurants\").select(\"user_id, owner_user_id\").or(`user_id.eq.${uid},owner_user_id.eq.${uid}`).limit(1).maybeSingle(),supabase.from(\"agents\").select(\"user_id\").eq(\"user_id\",uid).limit(1).maybeSingle(),supabase.from(\"consumers\").select(\"user_id\").eq(\"user_id\",uid).limit(1).maybeSingle(),supabase.from(\"admins\").select(\"user_id\").eq(\"user_id\",uid).limit(1).maybeSingle()]);const getData=p=>p.status===\"fulfilled\"?p.value?.data??null:null;const m=getData(mRes);const r=getData(rRes);const a=getData(aRes);const c=getData(cRes);const ad=getData(adminRes);// Priority: admin → merchant → restaurant → agent → consumer\nif(ad)return{role:\"admin\",path:ROUTE_AFTER_LOGIN.admin};if(m)return{role:\"merchant\",path:ROUTE_AFTER_LOGIN.merchant};if(r)return{role:\"restaurant\",path:ROUTE_AFTER_LOGIN.restaurant};if(a)return{role:\"agent\",path:ROUTE_AFTER_LOGIN.agent};if(c)return{role:\"consumer\",path:ROUTE_AFTER_LOGIN.consumer};return{role:null,path:null};}/* ========= LOGIN Modal (simplified forgot password) ========= */const inputStyle={display:\"block\",width:\"100%\",padding:\"10px 14px\",margin:\"8px 0 0 0\",borderRadius:8,border:\"1px solid #e5e7eb\",fontSize:14,boxSizing:\"border-box\",fontFamily:\"Montserrat, sans-serif\"};function LoginModal({open,onClose,buttonColor,textColor,borderRadius,supabase,headerNote}){const[email,setEmail]=React.useState(\"\");const[password,setPassword]=React.useState(\"\");const[msg,setMsg]=React.useState(\"\");const[loading,setLoading]=React.useState(false);const redirect=url=>{try{window.location.assign(url);}catch{}};const signInLocal=async()=>{if(!email||!password){setMsg(\"Please enter email and password.\");return false;}try{setLoading(true);const{error}=await supabase.auth.signInWithPassword({email,password});if(error)throw error;return true;}catch(e){setMsg(e?.message||\"Login failed. Check your credentials.\");return false;}finally{setLoading(false);}};const signIn=async()=>{setMsg(\"\");const ok=await signInLocal();if(!ok)return;try{setLoading(true);const{path}=await resolveRoleAndPath(supabase);if(path){redirect(path);onClose();return;}setMsg(\"We couldn't find a profile for this account. If you haven't joined yet, use JOIN to start onboarding.\");}catch(e){setMsg(e?.message||\"Could not determine your dashboard.\");}finally{setLoading(false);}};async function forgotPassword(){if(!email){setMsg(\"Enter your email first.\");return;}try{setLoading(true);setMsg(\"\");const{error}=await supabase.auth.resetPasswordForEmail(email,{redirectTo:\"https://buylocal.pt/auth-recovery\"});if(error)throw error;setMsg(\"Password reset email sent. Open the link in your inbox to set a new password.\");}catch(e){setMsg(e?.message||\"Could not start password reset.\");}finally{setLoading(false);}}if(!open)return null;return /*#__PURE__*/_jsx(OverlayModal,{onBackdrop:onClose,radius:borderRadius,children:/*#__PURE__*/_jsxs(\"div\",{style:{padding:24,fontFamily:\"Montserrat, sans-serif\"},children:[/*#__PURE__*/_jsx(\"h3\",{style:{margin:0},children:\"Login\"}),/*#__PURE__*/_jsx(\"p\",{style:{margin:\"4px 0 0 0\",color:\"#666\",fontSize:14},children:\"Sign in with your email and password. We’ll route you to the right dashboard automatically.\"}),headerNote?/*#__PURE__*/_jsx(\"p\",{style:{margin:\"8px 0 0 0\",color:\"#c00\",fontSize:13},children:headerNote}):null,/*#__PURE__*/_jsx(\"input\",{style:inputStyle,placeholder:\"Email\",value:email,onChange:e=>setEmail(e.target.value),autoComplete:\"email\"}),/*#__PURE__*/_jsx(\"input\",{type:\"password\",style:inputStyle,placeholder:\"Password\",value:password,onChange:e=>setPassword(e.target.value),autoComplete:\"current-password\"}),/*#__PURE__*/_jsx(\"button\",{onClick:loading?undefined:signIn,style:{backgroundColor:buttonColor,color:textColor,padding:\"9px 20px\",border:\"none\",borderRadius:borderRadius,fontWeight:700,fontSize:15,cursor:loading?\"default\":\"pointer\",width:\"100%\",opacity:loading?.7:1,transition:\"opacity .2s ease\",marginTop:8},children:loading?\"Processing…\":\"Continue\"}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",marginTop:8,justifyContent:\"space-between\",alignItems:\"center\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:12,color:\"#555\"},children:\"Forgot your password?\"}),/*#__PURE__*/_jsx(\"button\",{\"data-testid\":\"forgot-password\",onClick:loading?undefined:forgotPassword,style:{background:\"transparent\",border:\"none\",textDecoration:\"underline\",cursor:\"pointer\",fontSize:13},children:\"Forgot password\"})]}),/*#__PURE__*/_jsx(\"div\",{style:{minHeight:18,marginTop:6,color:\"#d00\"},children:msg}),/*#__PURE__*/_jsx(\"button\",{onClick:onClose,style:{background:\"transparent\",color:\"#666\",padding:6,border:\"none\",cursor:\"pointer\",textDecoration:\"underline\",fontSize:13},children:\"Close\"})]})});}const CART_STORAGE_KEY=\"buylocal_cart_v1\";const CART_EVENT=\"buylocal:cart-changed\";function parseCart(raw){try{return raw?JSON.parse(raw):{items:[]};}catch{return{items:[]};}}function getSrc(img){if(!img)return undefined;if(typeof img===\"string\")return img;if(typeof img?.src===\"string\")return img.src;return undefined;}function CartIndicator({cartHref,cartEmptyImage,cartFilledImage,badgeMode=\"items\",showCount=true,outlineText=\"#111\",badgeBg=\"#a3b18a\",badgeText=\"#fff\",buttonRadius=10,label=\"Cart\"}){const[count,setCount]=React.useState(0);const[hasItems,setHasItems]=React.useState(false);const readCount=React.useCallback(()=>{const raw=typeof window!==\"undefined\"?localStorage.getItem(CART_STORAGE_KEY):null;const cart=parseCart(raw);const items=Array.isArray(cart.items)?cart.items:[];const itemLines=items.length;const qtySum=items.reduce((s,it)=>s+(Number.isFinite(it.qty)?it.qty:0),0);const c=badgeMode===\"qty\"?qtySum:itemLines;setCount(badgeMode===\"qty\"?Number(c.toFixed(2)):c);setHasItems(badgeMode===\"qty\"?qtySum>1e-4:itemLines>0);},[badgeMode]);React.useEffect(()=>{readCount();const onStorage=e=>{if(e.key===CART_STORAGE_KEY)readCount();};const onCustom=()=>readCount();window.addEventListener(\"storage\",onStorage);window.addEventListener(CART_EVENT,onCustom);let bc=null;try{if(\"BroadcastChannel\"in window){bc=new BroadcastChannel(\"buylocal-cart\");bc.addEventListener(\"message\",onCustom);}}catch{}return()=>{window.removeEventListener(\"storage\",onStorage);window.removeEventListener(CART_EVENT,onCustom);try{bc?.removeEventListener(\"message\",onCustom);bc?.close();}catch{}};},[readCount]);const goCart=()=>{try{window.location.assign(cartHref);}catch{}};const iconSize=16;const emptySrc=getSrc(cartEmptyImage);const fullSrc=getSrc(cartFilledImage);return /*#__PURE__*/_jsxs(\"button\",{onClick:goCart,\"aria-label\":\"Cart\",style:{display:\"inline-flex\",alignItems:\"center\",gap:4,padding:\"6px 8px\",borderRadius:buttonRadius,border:\"1px solid rgba(0,0,0,.12)\",background:\"#fff\",cursor:\"pointer\",fontFamily:\"Montserrat, sans-serif\",color:outlineText,position:\"relative\",fontSize:12,whiteSpace:\"nowrap\"},children:[emptySrc||fullSrc?/*#__PURE__*/_jsx(\"img\",{src:(hasItems?fullSrc:emptySrc)||emptySrc||\"\",alt:\"Cart\",width:iconSize,height:iconSize,style:{width:iconSize,height:iconSize,objectFit:\"contain\"}}):/*#__PURE__*/_jsxs(\"svg\",{width:iconSize,height:iconSize,viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"path\",{d:\"M3 3h2l2.4 12.5a2 2 0 0 0 2 1.6h7.2a2 2 0 0 0 2-1.6L21 7H6\",stroke:\"currentColor\",strokeWidth:\"1.5\",fill:hasItems?\"currentColor\":\"none\",opacity:hasItems?.2:1}),/*#__PURE__*/_jsx(\"circle\",{cx:\"9\",cy:\"21\",r:\"1.5\",fill:\"currentColor\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"18\",cy:\"21\",r:\"1.5\",fill:\"currentColor\"})]}),/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:600},children:label}),showCount&&/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",top:-4,right:-4,minWidth:16,height:16,borderRadius:8,padding:\"0 4px\",background:badgeBg,color:badgeText,fontSize:11,lineHeight:\"16px\",fontWeight:800,textAlign:\"center\",boxShadow:\"0 0 0 1px rgba(255,255,255,.9)\"},children:count})]});}function useRoleProfile(supabase,session){const[profile,setProfile]=React.useState({role:null,name:null,avatarUrl:null,dashboardPath:\"/\"});React.useEffect(()=>{let alive=true;async function run(){if(!session?.user){if(alive)setProfile({role:null,name:null,avatarUrl:null,dashboardPath:\"/\"});return;}const uid=session.user.id;const hinted=(session.user.user_metadata?.preselected_role)||null;// Fixed role via user_roles\nconst{data:fixedRoleRow}=await supabase.from(\"user_roles\").select(\"role\").eq(\"user_id\",uid).maybeSingle();const fixedRole=(fixedRoleRow?.role)||null;const freshIntent=(()=>{try{const u=new URL(window.location.href);const i=u.searchParams.get(\"intent\");if(i===\"restaurant\"||i===\"consumer\"||i===\"merchant\")return i;}catch{}try{const raw=localStorage.getItem(\"buylocal_join_intent\");if(raw===\"restaurant\"||raw===\"consumer\"||raw===\"merchant\")return raw;}catch{}return null;})();const qConsumers=supabase.from(\"consumers\").select(\"display_name, avatar_url, user_id\").eq(\"user_id\",uid).limit(1).maybeSingle();const qProducers=supabase.from(\"producers\").select(\"name, logo_url, user_id\").eq(\"user_id\",uid).limit(1).maybeSingle();const qRestaurants=supabase.from(\"restaurants\").select(\"business_name, image_url, user_id, owner_user_id\").or(`user_id.eq.${uid},owner_user_id.eq.${uid}`).limit(1).maybeSingle();const qAgents=supabase.from(\"agents\").select(\"name, user_id\").eq(\"user_id\",uid).limit(1).maybeSingle();const qAdmins=supabase.from(\"admins\").select(\"name, user_id\").eq(\"user_id\",uid).limit(1).maybeSingle();async function tryHintFirst(){// Only attempt hint-first for join intents that map to actual onboarding tables\nif(freshIntent===\"restaurant\"){const{data}=await qRestaurants;if(data)return{role:\"restaurant\",name:data.business_name??null,avatarUrl:data.image_url??null,dashboardPath:ROUTE_AFTER_LOGIN.restaurant};}if(freshIntent===\"consumer\"){const{data}=await qConsumers;if(data)return{role:\"consumer\",name:data.display_name??null,avatarUrl:data.avatar_url??null,dashboardPath:ROUTE_AFTER_LOGIN.consumer};}if(freshIntent===\"merchant\"){const{data}=await qProducers;if(data)return{role:\"merchant\",name:data.name??null,avatarUrl:data.logo_url??null,dashboardPath:ROUTE_AFTER_LOGIN.merchant};}// metadata hint fallback\nif(hinted===\"consumer\"){const{data}=await qConsumers;if(data)return{role:\"consumer\",name:data.display_name??null,avatarUrl:data.avatar_url??null,dashboardPath:ROUTE_AFTER_LOGIN.consumer};}if(hinted===\"merchant\"){const{data}=await qProducers;if(data)return{role:\"merchant\",name:data.name??null,avatarUrl:data.logo_url??null,dashboardPath:ROUTE_AFTER_LOGIN.merchant};}if(hinted===\"restaurant\"){const{data}=await qRestaurants;if(data)return{role:\"restaurant\",name:data.business_name??null,avatarUrl:data.image_url??null,dashboardPath:ROUTE_AFTER_LOGIN.restaurant};}return null;}async function bruteForceAll(){const[c,m,r,a,ad]=await Promise.allSettled([qConsumers,qProducers,qRestaurants,qAgents,qAdmins]);const ok=p=>p.status===\"fulfilled\"?p.value??{data:null}:{data:null};const cRes=ok(c);const mRes=ok(m);const rRes=ok(r);const aRes=ok(a);const adRes=ok(ad);// 1) Respect fixedRole from user_roles if possible\nif((fixedRole===\"admin\"||fixedRole===\"superadmin\")&&adRes.data){return{role:fixedRole,name:adRes.data.name??session.user.email??null,avatarUrl:null,dashboardPath:fixedRole===\"superadmin\"?ROUTE_AFTER_LOGIN.superadmin:ROUTE_AFTER_LOGIN.admin};}if(fixedRole===\"merchant\"&&mRes.data)return{role:\"merchant\",name:mRes.data.name??null,avatarUrl:mRes.data.logo_url??null,dashboardPath:ROUTE_AFTER_LOGIN.merchant};if(fixedRole===\"restaurant\"&&rRes.data)return{role:\"restaurant\",name:rRes.data.business_name??null,avatarUrl:rRes.data.image_url??null,dashboardPath:ROUTE_AFTER_LOGIN.restaurant};if(fixedRole===\"agent\"&&aRes.data)return{role:\"agent\",name:aRes.data.name??session.user.email??null,avatarUrl:null,dashboardPath:ROUTE_AFTER_LOGIN.agent};if(fixedRole===\"consumer\"&&cRes.data)return{role:\"consumer\",name:cRes.data.display_name??null,avatarUrl:cRes.data.avatar_url??null,dashboardPath:ROUTE_AFTER_LOGIN.consumer};// 2) No fixedRole: priority by type\nif(adRes.data)return{role:\"admin\",name:adRes.data.name??session.user.email??null,avatarUrl:null,dashboardPath:ROUTE_AFTER_LOGIN.admin};const mData=mRes.data;if(mData)return{role:\"merchant\",name:mData.name??null,avatarUrl:mData.logo_url??null,dashboardPath:ROUTE_AFTER_LOGIN.merchant};const rData=rRes.data;if(rData)return{role:\"restaurant\",name:rData.business_name??null,avatarUrl:rData.image_url??null,dashboardPath:ROUTE_AFTER_LOGIN.restaurant};const aData=aRes.data;if(aData)return{role:\"agent\",name:aData.name??session.user.email??null,avatarUrl:null,dashboardPath:ROUTE_AFTER_LOGIN.agent};const cData=cRes.data;if(cData)return{role:\"consumer\",name:cData.display_name??null,avatarUrl:cData.avatar_url??null,dashboardPath:ROUTE_AFTER_LOGIN.consumer};return{role:null,name:session.user.email??null,avatarUrl:null,dashboardPath:\"/\"};}try{const hintedHit=await tryHintFirst();const result=hintedHit??await bruteForceAll();if(alive)setProfile(result);}catch{if(alive)setProfile({role:null,name:session.user.email??null,avatarUrl:null,dashboardPath:\"/\"});}}run();return()=>{alive=false;};},[supabase,session]);return{profile};}/** Avatar-only button */function AvatarButton({profile,buttonRadius,outlineText,size=30}){const go=()=>{try{window.location.assign(profile.dashboardPath||\"/\");}catch{}};const letter=(profile.name?.trim()?.charAt(0)||profile.role?.charAt(0)||\"?\").toUpperCase();return /*#__PURE__*/_jsx(\"button\",{onClick:go,\"aria-label\":\"My dashboard\",title:profile.name||\"My dashboard\",style:{display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",padding:\"4px 8px\",borderRadius:buttonRadius,border:\"1px solid rgba(0,0,0,.12)\",background:\"#fff\",cursor:\"pointer\",fontFamily:\"Montserrat, sans-serif\",color:outlineText,height:size+8,whiteSpace:\"nowrap\"},children:/*#__PURE__*/_jsx(\"span\",{style:{width:size,height:size,borderRadius:size/2,overflow:\"hidden\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",border:\"1px solid rgba(0,0,0,.08)\",boxShadow:\"0 1px 2px rgba(0,0,0,.04)\",background:\"#f5f5f5\"},children:profile.avatarUrl?/*#__PURE__*/_jsx(\"img\",{src:profile.avatarUrl,alt:profile.name||\"Avatar\",width:size,height:size,style:{width:size,height:size,objectFit:\"cover\",display:\"block\"},onError:e=>{e.currentTarget.style.display=\"none\";}}):/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:800,fontSize:13,lineHeight:1,color:\"#444\"},children:letter})})});}/* ===== Settings gear button ===== */function Field({type=\"text\",placeholder,value,onChange,autoComplete}){return /*#__PURE__*/_jsx(\"div\",{style:{height:44,display:\"flex\",alignItems:\"center\",borderRadius:12,border:\"1px solid #e5e7eb\",padding:\"0 14px\",background:\"#fff\"},children:/*#__PURE__*/_jsx(\"input\",{type:type,placeholder:placeholder,value:value,onChange:e=>onChange(e.target.value),autoComplete:autoComplete,style:{width:\"100%\",height:\"100%\",outline:\"none\",border:\"none\",fontSize:14,color:\"#111\",background:\"transparent\",fontFamily:\"Montserrat, sans-serif\"}})});}function EditLoginDetailsButton({supabase,onSuccess,primaryColor,variant=\"outline\"}){const[open,setOpen]=React.useState(false);const[currentPassword,setCurrentPassword]=React.useState(\"\");const[newPassword,setNewPassword]=React.useState(\"\");const[confirmPassword,setConfirmPassword]=React.useState(\"\");const[loading,setLoading]=React.useState(false);const[error,setError]=React.useState(null);const[info,setInfo]=React.useState(null);const TOKENS={primary:\"#a3b18a\",onPrimary:\"#ffffff\",outlineText:\"#111111\",border:\"1px solid rgba(0,0,0,.12)\",shadowSolid:\"0 6px 18px rgba(163,177,138,.35)\",brandBorder:\"1px solid #6b705c\",font:\"Montserrat, sans-serif\"};const baseBtn={fontFamily:TOKENS.font,border:TOKENS.border,borderRadius:8,width:34,height:34,cursor:\"pointer\",transition:\"all .2s ease\",background:\"#fff\",color:TOKENS.outlineText,display:\"flex\",alignItems:\"center\",justifyContent:\"center\"};const solidBtn={...baseBtn,background:TOKENS.primary,color:TOKENS.onPrimary,boxShadow:TOKENS.shadowSolid,border:TOKENS.brandBorder};const P=primaryColor||TOKENS.primary;const outline={...baseBtn,borderColor:\"rgba(0,0,0,.15)\"};const solid={...solidBtn,background:P};const footerBtnBase={fontFamily:TOKENS.font,border:TOKENS.border,borderRadius:12,height:40,padding:\"10px 16px\",fontSize:14,fontWeight:700,cursor:\"pointer\"};const footerBtnOutline={...footerBtnBase,background:\"#fff\",color:TOKENS.outlineText};const footerBtnSolid={...footerBtnBase,background:P,color:TOKENS.onPrimary,boxShadow:TOKENS.shadowSolid,border:TOKENS.brandBorder};function resetState(){setCurrentPassword(\"\");setNewPassword(\"\");setConfirmPassword(\"\");setError(null);setInfo(null);}function strengthOK(pw){return pw.length>=8&&/[A-Za-z]/.test(pw)&&/\\d/.test(pw);}async function handleSave(e){e.preventDefault();setError(null);setInfo(null);if(!currentPassword)return setError(\"Please confirm your current password.\");if(!newPassword)return setError(\"Enter a new password.\");if(newPassword!==confirmPassword)return setError(\"Passwords do not match.\");if(!strengthOK(newPassword))return setError(\"Password must be at least 8 characters and include letters and numbers.\");setLoading(true);try{const{data:userResp,error:userErr}=await supabase.auth.getUser();if(userErr||!userResp?.user?.email)throw new Error(\"Invalid session. Please log in again.\");const email=userResp.user.email;const{error:signinErr}=await supabase.auth.signInWithPassword({email,password:currentPassword});if(signinErr)throw new Error(\"Current password is incorrect.\");const{error:updErr}=await supabase.auth.updateUser({password:newPassword});if(updErr)throw updErr;setInfo(\"Password updated successfully.\");onSuccess?.(\"Password updated\");setTimeout(()=>{setOpen(false);resetState();},800);}catch(err){setError(err?.message??\"Error updating password.\");}finally{setLoading(false);}}const handleOpen=()=>{setOpen(true);};return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",style:variant===\"solid\"?solid:outline,onClick:handleOpen,\"aria-label\":\"Settings\",title:\"Settings\",children:/*#__PURE__*/_jsxs(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",style:{display:\"block\"},\"aria-hidden\":true,children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M19.4 15a2 2 0 0 0 .4 2.2l.1.1a1.8 1.8 0 1 1-2.5 2.5l-.1-.1a2 2 0 0 0-2.2-.4 2 2 0 0 0-1.1 1.1 2 2 0 0 0-.2.9V21a1.8 1.8 0 1 1-3.6 0v-.1a2 2 0 0 0-.2-.9 2 2 0 0 0-1.1-1.1 2 2 0 0 0-2.2.4l-.1.1a1.8 1.8 0 1 1-2.5-2.5l.1-.1a2 2 0 0 0 .4-2.2 2 2 0 0 0-1.1-1.1 2 2 0 0 0-.9-.2H3a1.8 1.8 0 1 1 0-3.6h.1a2 2 0 0 0 .9-.2 2 2 0 0 0 1.1-1.1 2 2 0 0 0-.4-2.2l-.1-.1A1.8 1.8 0 1 1 6.8 3.6l.1.1a2 2 0 0 0 2.2.4 2 2 0 0 0 1.1-1.1 2 2 0 0 0 .2-.9V3a1.8 1.8 0 1 1 3.6 0v.1a2 2 0 0 0 .2.9 2 2 0 0 0 1.1 1.1 2 2 0 0 0 2.2-.4l.1-.1A1.8 1.8 0 1 1 20.4 6.8l-.1.1a2 2 0 0 0-.4 2.2 2 2 0 0 0 1.1 1.1 2 2 0 0 0 .9.2H21a1.8 1.8 0 1 1 0 3.6h-.1a2 2 0 0 0-.9.2 2 2 0 0 0-1.1 1.1Z\"})]})}),open&&/*#__PURE__*/_jsx(OverlayModal,{onBackdrop:()=>{setOpen(false);resetState();},radius:12,children:/*#__PURE__*/_jsxs(\"div\",{style:{borderRadius:12,border:\"1px solid rgba(0,0,0,.08)\",boxShadow:\"0 24px 48px rgba(0,0,0,.18)\",padding:16,fontFamily:TOKENS.font},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\"},children:[/*#__PURE__*/_jsx(\"h3\",{style:{margin:0,fontSize:18,fontWeight:700},children:\"Update Password\"}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>{setOpen(false);resetState();},style:{background:\"transparent\",border:\"none\",cursor:\"pointer\",fontSize:18},\"aria-label\":\"Close\",children:\"✕\"})]}),/*#__PURE__*/_jsxs(\"form\",{onSubmit:handleSave,style:{display:\"grid\",gap:10,marginTop:10},children:[/*#__PURE__*/_jsx(Field,{type:\"password\",placeholder:\"Current password\",value:currentPassword,onChange:setCurrentPassword,autoComplete:\"current-password\"}),/*#__PURE__*/_jsx(Field,{type:\"password\",placeholder:\"New password\",value:newPassword,onChange:setNewPassword,autoComplete:\"new-password\"}),/*#__PURE__*/_jsx(Field,{type:\"password\",placeholder:\"Confirm new password\",value:confirmPassword,onChange:setConfirmPassword,autoComplete:\"new-password\"}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:10,justifyContent:\"flex-end\",marginTop:4},children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>{setOpen(false);resetState();},style:footerBtnOutline,children:\"Cancel\"}),/*#__PURE__*/_jsx(\"button\",{type:\"submit\",disabled:loading,style:{...footerBtnSolid,opacity:loading?.7:1},children:loading?\"Saving…\":\"Save\"})]}),(error||info)&&/*#__PURE__*/_jsx(\"div\",{style:{marginTop:6,fontSize:13,color:error?\"#c0392b\":\"#2c3e50\"},children:error||info})]})]})})]});}function AuthAwareActions(props){const{primaryColor=\"#a3b18a\",textOnPrimary=\"#ffffff\",outlineText=\"#111111\",buttonRadius=12,gap=6,fontWeight=700,// JOIN copy\njoinLabel=\"JOIN\",producerQuestion=\"How would you like to join?\",producerYesLabel=\"I'm a Local Merchant\",producerNoLabel=\"I'm a Conscious Consumer\",restaurantJoinLabel=\"I'm a Local-First Restaurant\",consumerTitle=\"Join as a Conscious Consumer\",consumerSubtitle=\"Verify your email to unlock features and access the marketplace.\",restaurantTitle=\"Join as a Local-First Restaurant\",restaurantSubtitle=\"Verify your email to start onboarding your restaurant.\",merchantTitle=\"Join as a Local Merchant\",merchantSubtitle=\"Verify your email to start your merchant profile.\",// kept but unused\nproducerUrl=\"https://buylocal.pt\",cartLabel=\"Cart\",cartHref=\"/cart\",cartBadgeMode=\"items\",cartShowCount=true,cartEmptyImage,cartFilledImage,cartBadgeBg=\"#a3b18a\",cartBadgeText=\"#fff\",supabaseUrl,supabaseAnonKey}=props;const supabase=useSupabase({url:supabaseUrl,anon:supabaseAnonKey});const[session,setSession]=React.useState(null);const[authReady,setAuthReady]=React.useState(false);React.useEffect(()=>{let alive=true;(async()=>{const{data}=await supabase.auth.getSession();if(!alive)return;setSession(data?.session||null);setAuthReady(true);})();const{data:sub}=supabase.auth.onAuthStateChange((_e,s)=>setSession(s));return()=>{alive=false;sub?.subscription?.unsubscribe?.();};},[supabase]);const{profile}=useRoleProfile(supabase,session);const[showJoinPrompt,setShowJoinPrompt]=React.useState(false);const[showConsumerForm,setShowConsumerForm]=React.useState(false);const[showRestaurantForm,setShowRestaurantForm]=React.useState(false);const[showMerchantForm,setShowMerchantForm]=React.useState(false);const[showLogin,setShowLogin]=React.useState(false);const[loginHeaderNote,setLoginHeaderNote]=React.useState(null);const logout=async()=>{try{await supabase.auth.signOut({scope:\"global\"});}catch(err){console.error(\"Supabase signOut failed:\",err);}try{sessionStorage.clear();}catch(err){console.warn(\"Could not clear sessionStorage:\",err);}try{localStorage.removeItem(\"buylocal_join_intent\");localStorage.removeItem(STASH_NEW);localStorage.removeItem(STASH_OLD);// Optional: keep cart if you want cart persistence across sessions; currently cleared for safety.\nlocalStorage.removeItem(CART_STORAGE_KEY);}catch(err){console.warn(\"Could not clear localStorage:\",err);}try{if(typeof window!==\"undefined\"){window.location.assign(BUYLOCAL_HOME);}}catch(err){console.error(\"Redirect failed:\",err);}};const goChat=()=>{if(!session){setLoginHeaderNote(\"Chat runs on buylocal.pt. Please sign in here to continue.\");setShowLogin(true);return;}try{window.location.assign(\"/chat\");}catch{}};const baseBtn={fontFamily:\"Montserrat, sans-serif\",border:\"1px solid rgba(0,0,0,.12)\",borderRadius:buttonRadius,padding:\"5px 10px\",fontSize:13,fontWeight,cursor:\"pointer\",transition:\"opacity .2s ease, box-shadow .2s ease\",whiteSpace:\"nowrap\"};const solid={...baseBtn,background:primaryColor,color:textOnPrimary,boxShadow:\"0 4px 12px rgba(163,177,138,.30)\",border:\"1px solid #6b705c\"};const outline={...baseBtn,background:\"#fff\",color:outlineText};const isIn=!!session;return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"flex-end\",gap,fontFamily:\"Montserrat, sans-serif\",flexWrap:\"wrap\",maxWidth:\"100%\"},children:[authReady&&!isIn&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"button\",{style:outline,onClick:()=>setShowJoinPrompt(true),children:joinLabel}),/*#__PURE__*/_jsx(\"button\",{style:solid,onClick:()=>{setLoginHeaderNote(null);setShowLogin(true);},children:\"LOGIN\"})]}),authReady&&isIn&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(AvatarButton,{profile:profile,buttonRadius:buttonRadius,outlineText:outlineText,size:30}),/*#__PURE__*/_jsx(EditLoginDetailsButton,{supabase:supabase,primaryColor:primaryColor,variant:\"outline\",onSuccess:()=>{}}),/*#__PURE__*/_jsx(CartIndicator,{cartHref:cartHref,cartEmptyImage:cartEmptyImage,cartFilledImage:cartFilledImage,badgeMode:cartBadgeMode,showCount:cartShowCount,outlineText:outlineText,badgeBg:cartBadgeBg,badgeText:cartBadgeText,buttonRadius:10,label:cartLabel}),/*#__PURE__*/_jsx(\"button\",{style:outline,onClick:goChat,children:\"Chat\"}),/*#__PURE__*/_jsx(\"button\",{style:solid,onClick:logout,children:\"Log out\"})]}),!authReady&&/*#__PURE__*/_jsx(\"span\",{style:{opacity:.7},children:\"…\"}),showJoinPrompt&&/*#__PURE__*/_jsx(OverlayModal,{onBackdrop:()=>setShowJoinPrompt(false),radius:buttonRadius,children:/*#__PURE__*/_jsxs(\"div\",{style:{padding:24,fontFamily:\"Montserrat, sans-serif\"},children:[/*#__PURE__*/_jsx(\"h3\",{style:{fontSize:18,margin:0,textAlign:\"center\"},children:producerQuestion}),/*#__PURE__*/_jsx(\"p\",{style:{marginTop:8,textAlign:\"center\",color:\"#555\",fontSize:14},children:\"Choose how you want to join the Buy Local movement.\"}),/*#__PURE__*/_jsxs(\"div\",{style:{marginTop:24,display:\"grid\",gap:12},children:[/*#__PURE__*/_jsxs(\"div\",{style:{borderRadius:14,border:\"1px solid rgba(0,0,0,.06)\",padding:16,background:\"#f7f9f5\",display:\"grid\",gap:8},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,fontSize:15},children:\"Local Merchant\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:13,color:\"#555\"},children:\"Showcase your products and connect with conscious consumers and restaurants.\"}),/*#__PURE__*/_jsx(\"button\",{style:solid,onClick:()=>{setShowJoinPrompt(false);setTimeout(()=>setShowMerchantForm(true),0);},children:producerYesLabel})]}),/*#__PURE__*/_jsxs(\"div\",{style:{borderRadius:14,border:\"1px solid rgba(0,0,0,.06)\",padding:16,background:\"#f9fafb\",display:\"grid\",gap:8},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,fontSize:15},children:\"Conscious Consumer\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:13,color:\"#555\"},children:\"Save favourites, follow local producers and stay close to what’s grown around you.\"}),/*#__PURE__*/_jsx(\"button\",{style:{...outline,color:primaryColor,borderColor:primaryColor},onClick:()=>{setShowJoinPrompt(false);setTimeout(()=>setShowConsumerForm(true),0);},children:producerNoLabel})]}),/*#__PURE__*/_jsxs(\"div\",{style:{borderRadius:14,border:\"1px solid rgba(0,0,0,.06)\",padding:16,background:\"#f9fafb\",display:\"grid\",gap:8},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,fontSize:15},children:\"Local-First Restaurant\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:13,color:\"#555\"},children:\"Build direct relationships with producers and tell a stronger local story on your menus.\"}),/*#__PURE__*/_jsx(\"button\",{style:outline,onClick:()=>{setShowJoinPrompt(false);setTimeout(()=>setShowRestaurantForm(true),0);},children:restaurantJoinLabel})]})]}),/*#__PURE__*/_jsxs(\"p\",{style:{marginTop:16,fontSize:11,color:\"#777\",textAlign:\"center\"},children:[\"Also interested in helping the movement grow as an\",\" \",/*#__PURE__*/_jsx(\"strong\",{children:\"Agent\"}),\"? You can join the Agent Programme and access your own tools on\",\" \",/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:600},children:\"buylocal.pt/agent\"}),\".\"]})]})}),showMerchantForm&&/*#__PURE__*/_jsx(RoleVerifyModal,{onClose:()=>setShowMerchantForm(false),title:merchantTitle,subtitle:merchantSubtitle,accentColor:primaryColor,borderRadius:buttonRadius,supabase:supabase,roleHint:\"merchant\"}),showConsumerForm&&/*#__PURE__*/_jsx(RoleVerifyModal,{onClose:()=>setShowConsumerForm(false),title:consumerTitle,subtitle:consumerSubtitle,accentColor:primaryColor,borderRadius:buttonRadius,supabase:supabase,roleHint:\"consumer\"}),showRestaurantForm&&/*#__PURE__*/_jsx(RoleVerifyModal,{onClose:()=>setShowRestaurantForm(false),title:restaurantTitle,subtitle:restaurantSubtitle,accentColor:primaryColor,borderRadius:buttonRadius,supabase:supabase,roleHint:\"restaurant\"}),/*#__PURE__*/_jsx(LoginModal,{open:showLogin,onClose:()=>setShowLogin(false),buttonColor:primaryColor,textColor:\"#ffffff\",borderRadius:buttonRadius,supabase:supabase,headerNote:loginHeaderNote})]});}/* ========= AuthAwareActions Property Controls ========= */addPropertyControls(AuthAwareActions,{primaryColor:{type:ControlType.Color,title:\"Primary\",defaultValue:\"#a3b18a\"},textOnPrimary:{type:ControlType.Color,title:\"On Primary\",defaultValue:\"#ffffff\"},outlineText:{type:ControlType.Color,title:\"Outline Text\",defaultValue:\"#111111\"},buttonRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:12,min:0,max:48},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:6,min:0,max:40},fontWeight:{type:ControlType.Enum,title:\"Font Weight\",options:[400,500,600,700],optionTitles:[\"Regular\",\"Medium\",\"SemiBold\",\"Bold\"],defaultValue:700},joinLabel:{type:ControlType.String,title:\"JOIN Label\",defaultValue:\"JOIN\"},producerQuestion:{type:ControlType.String,title:\"Join Prompt\",defaultValue:\"How would you like to join?\"},producerYesLabel:{type:ControlType.String,title:\"Merchant Button\",defaultValue:\"I'm a Local Merchant\"},producerNoLabel:{type:ControlType.String,title:\"Consumer Button\",defaultValue:\"I'm a Conscious Consumer\"},restaurantJoinLabel:{type:ControlType.String,title:\"Restaurant Button\",defaultValue:\"I'm a Local-First Restaurant\"},consumerTitle:{type:ControlType.String,title:\"Consumer Title\",defaultValue:\"Join as a Conscious Consumer\"},consumerSubtitle:{type:ControlType.String,title:\"Consumer Subtitle\",defaultValue:\"Verify your email to unlock features and access the marketplace.\"},restaurantTitle:{type:ControlType.String,title:\"Restaurant Title\",defaultValue:\"Join as a Local-First Restaurant\"},restaurantSubtitle:{type:ControlType.String,title:\"Restaurant Subtitle\",defaultValue:\"Verify your email to start onboarding your restaurant.\"},merchantTitle:{type:ControlType.String,title:\"Merchant Title\",defaultValue:\"Join as a Local Merchant\"},merchantSubtitle:{type:ControlType.String,title:\"Merchant Subtitle\",defaultValue:\"Verify your email to start your merchant profile.\"},producerUrl:{type:ControlType.String,title:\"Merchant Join URL (legacy)\",defaultValue:\"https://buylocal.pt\"},cartLabel:{type:ControlType.String,title:\"Cart Label\",defaultValue:\"Cart\"},cartHref:{type:ControlType.String,title:\"Cart URL\",defaultValue:\"/cart\"},cartBadgeMode:{type:ControlType.Enum,title:\"Cart Badge Mode\",options:[\"items\",\"qty\"],optionTitles:[\"Item count\",\"Sum of qty\"],defaultValue:\"items\"},cartShowCount:{type:ControlType.Boolean,title:\"Show Count Badge\",defaultValue:true},cartEmptyImage:{type:ControlType.ResponsiveImage,title:\"Cart (Empty)\"},cartFilledImage:{type:ControlType.ResponsiveImage,title:\"Cart (Filled)\"},cartBadgeBg:{type:ControlType.Color,title:\"Badge BG\",defaultValue:\"#a3b18a\"},cartBadgeText:{type:ControlType.Color,title:\"Badge Text\",defaultValue:\"#fff\"},supabaseUrl:{type:ControlType.String,title:\"Supabase URL (override)\",defaultValue:\"https://xnwbfkrbikpcvfzfajah.supabase.co\"},supabaseAnonKey:{type:ControlType.String,title:\"Supabase Anon (override)\",defaultValue:FALLBACK_ANON}});/**\n * ================================\n *  MOBILE NAVIGATION\n * ================================\n */function getBtnFont(font){return{fontSize:font?.fontSize,fontWeight:font?.variant===\"Bold\"?700:500,letterSpacing:font?.letterSpacing,lineHeight:font?.lineHeight,textAlign:font?.textAlign,fontStyle:font?.variant&&String(font.variant).includes(\"Italic\")?\"italic\":\"normal\"};}function MobileNavigationBuyLocal(props){const{background,activeColor,inactiveColor,shadow,borderRadius,font,menuItems}=props;const[menuOpen,setMenuOpen]=React.useState(false);const[activeIndex,setActiveIndex]=React.useState(0);const menuRef=React.useRef(null);const isStatic=useIsStaticRenderer();React.useEffect(()=>{if(!menuOpen)return;function handleClick(e){if(menuRef.current&&!menuRef.current.contains(e.target)){setMenuOpen(false);}}document.addEventListener(\"mousedown\",handleClick);return()=>document.removeEventListener(\"mousedown\",handleClick);},[menuOpen]);if(RenderTarget.current()===RenderTarget.thumbnail)return null;return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:60,position:\"relative\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"fixed\",top:0,left:0,padding:16,zIndex:9999},ref:menuRef,children:[/*#__PURE__*/_jsxs(\"button\",{onClick:()=>setMenuOpen(v=>!v),style:{background:\"none\",border:\"none\",padding:0,display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"center\",cursor:\"pointer\",gap:3},\"aria-label\":\"Open menu\",children:[/*#__PURE__*/_jsx(\"span\",{style:{width:24,height:2,background:\"#222\",borderRadius:1}}),/*#__PURE__*/_jsx(\"span\",{style:{width:24,height:2,background:\"#222\",borderRadius:1}})]}),menuOpen&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:70,left:0,background,border:\"1px solid #ccc\",borderRadius:borderRadius??8,boxShadow:shadow?\"0 4px 12px rgba(0,0,0,0.15)\":\"none\",padding:12,display:\"flex\",flexDirection:\"column\",gap:8,zIndex:9999,minWidth:180},children:menuItems.map((item,i)=>/*#__PURE__*/_jsx(\"button\",{onClick:()=>{setActiveIndex(i);setMenuOpen(false);if(typeof window!==\"undefined\")window.location.href=item.path;},style:{background:\"none\",border:\"none\",color:i===activeIndex?activeColor:inactiveColor,cursor:\"pointer\",padding:\"6px 10px\",borderRadius:6,textTransform:\"uppercase\",width:\"100%\",textAlign:\"left\",...getBtnFont(font)},children:item.label},item.label))})]}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",top:0,right:0,paddingTop:8,paddingRight:10,zIndex:9999,display:\"flex\",alignItems:\"center\",maxWidth:\"80%\"},children:/*#__PURE__*/_jsx(AuthAwareActions,{primaryColor:\"#a3b18a\",textOnPrimary:\"#ffffff\",outlineText:\"#111111\",buttonRadius:12,gap:6,fontWeight:700,joinLabel:\"JOIN\",producerQuestion:\"How would you like to join?\",producerYesLabel:\"I'm a Local Merchant\",producerNoLabel:\"I'm a Conscious Consumer\",restaurantJoinLabel:\"I'm a Local-First Restaurant\",consumerTitle:\"Join as a Conscious Consumer\",consumerSubtitle:\"Verify your email to unlock features and access the marketplace.\",restaurantTitle:\"Join as a Local-First Restaurant\",restaurantSubtitle:\"Verify your email to start onboarding your restaurant.\",merchantTitle:\"Join as a Local Merchant\",merchantSubtitle:\"Verify your email to start your merchant profile.\",cartLabel:\"Cart\",cartHref:\"/cart\",cartBadgeMode:\"items\",cartShowCount:true,cartBadgeBg:\"#a3b18a\",cartBadgeText:\"#ffffff\",supabaseUrl:\"https://xnwbfkrbikpcvfzfajah.supabase.co\",supabaseAnonKey:FALLBACK_ANON})})]});}export default MobileNavigationBuyLocal;/* ========= MobileNavigation Property Controls ========= */addPropertyControls(MobileNavigationBuyLocal,{background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#fff\"},activeColor:{type:ControlType.Color,title:\"Active Color\",defaultValue:\"#222\"},inactiveColor:{type:ControlType.Color,title:\"Inactive Color\",defaultValue:\"#888\"},shadow:{type:ControlType.Boolean,title:\"Shadow\",defaultValue:true},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:8,min:0,max:32},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:14,variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\",textAlign:\"left\"}},menuItems:{type:ControlType.Array,title:\"Menu Items\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,defaultValue:\"ABOUT US\"},path:{type:ControlType.String,defaultValue:\"/aboutus\"}}},defaultValue:[{label:\"ABOUT US\",path:\"/aboutus\"},{label:\"MARKETPLACE\",path:\"/marketplace\"},{label:\"MERCHANTS\",path:\"/merchants\"},{label:\"RESTAURANTS\",path:\"/restaurants\"}],maxCount:5}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MobileNavigationBuyLocal\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MobileNavigation_1.map"],"mappings":"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"}