@nhost/nhost-js 3.2.4 → 3.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +24 -24
- package/dist/index.esm.js.map +1 -1
- package/package.json +2 -2
- package/umd/nhost-js.umd.js +1 -1
- package/umd/nhost-js.umd.js.map +1 -1
package/umd/nhost-js.umd.js
CHANGED
|
@@ -18,5 +18,5 @@ Event: `).concat(JSON.stringify(event)));else if(this.status!==Y.Running)throw n
|
|
|
18
18
|
`).concat(O.message))}if(w&&S){a.target!==void 0&&(c=a.target),u.push.apply(u,q([],P(a.actions),!1)),d=a;break}}}catch(O){n={error:O}}finally{try{l&&!l.done&&(i=h.return)&&i.call(h)}finally{if(n)throw n.error}}if(d){if(!c.length)return{transitions:[d],exitSet:[],configuration:e.value?[this]:[],source:e,actions:u};var T=G(c.map(function(O){return s.getRelativeStateNodes(O,e.historyValue)})),b=!!d.internal;return{transitions:[d],exitSet:b?[]:G(c.map(function(O){return s.getPotentiallyReenteringNodes(O)})),configuration:T,source:e,actions:u}}},t.prototype.getPotentiallyReenteringNodes=function(e){if(this.order<e.order)return[this];for(var r=[],n=this,i=e;n&&n!==i;)r.push(n),n=n.parent;return n!==i?[]:(r.push(i),r)},t.prototype.getActions=function(e,r,n,i,s,o,u){var c,d,h,l,a=this,f=o?Ke([],this.getStateNodes(o.value)):[],v=new Set;try{for(var y=x(Array.from(e).sort(function(A,F){return A.order-F.order})),S=y.next();!S.done;S=y.next()){var w=S.value;(!Ge(f,w)||Ge(n.exitSet,w)||w.parent&&v.has(w.parent))&&v.add(w)}}catch(A){c={error:A}}finally{try{S&&!S.done&&(d=y.return)&&d.call(y)}finally{if(c)throw c.error}}try{for(var T=x(f),b=T.next();!b.done;b=T.next()){var w=b.value;(!Ge(e,w)||Ge(n.exitSet,w.parent))&&n.exitSet.push(w)}}catch(A){h={error:A}}finally{try{b&&!b.done&&(l=T.return)&&l.call(T)}finally{if(h)throw h.error}}n.exitSet.sort(function(A,F){return F.order-A.order});var O=Array.from(v).sort(function(A,F){return A.order-F.order}),M=new Set(n.exitSet),D=G(O.map(function(A){var F=[];if(A.type!=="final")return F;var z=A.parent;if(!z.parent)return F;F.push(Fe(A.id,A.doneData),Fe(z.id,A.doneData?ut(A.doneData,i,s):void 0));var V=z.parent;return V.type==="parallel"&&Ve(V).every(function(we){return gt(n.configuration,we)})&&F.push(Fe(V.id)),F})),_=O.map(function(A){var F=A.onEntry,z=A.activities.map(function(V){return Cr(V)});return{type:"entry",actions:de(u?q(q([],P(F),!1),P(z),!1):q(q([],P(z),!1),P(F),!1),a.machine.options.actions)}}).concat({type:"state_done",actions:D.map(function(A){return _r(A)})}),$=Array.from(M).map(function(A){return{type:"exit",actions:de(q(q([],P(A.onExit),!1),P(A.activities.map(function(F){return Mr(F)})),!1),a.machine.options.actions)}}),R=$.concat({type:"transition",actions:de(n.actions,this.machine.options.actions)}).concat(_);if(r){var B=de(G(q([],P(e),!1).sort(function(A,F){return F.order-A.order}).map(function(A){return A.onExit})),this.machine.options.actions).filter(function(A){return!Lt(A)});return R.concat({type:"stop",actions:B})}return R},t.prototype.transition=function(e,r,n,i){e===void 0&&(e=this.initialState);var s=Q(r),o;if(e instanceof ue)o=n===void 0?e:this.resolveState(ue.from(e,n));else{var u=U(e)?this.resolve(at(this.getResolvedPath(e))):this.resolve(e),c=n!=null?n:this.machine.context;o=this.resolveState(ue.from(u,c))}if(!K&&s.name===ze)throw new Error("An event cannot have the wildcard type ('".concat(ze,"')"));if(this.strict&&!this.events.includes(s.name)&&!pi(s.name))throw new Error("Machine '".concat(this.id,"' does not accept event '").concat(s.name,"'"));var d=this._transition(o.value,o,s)||{transitions:[],configuration:[],exitSet:[],source:o,actions:[]},h=Ke([],this.getStateNodes(o.value)),l=d.configuration.length?Ke(h,d.configuration):h;return d.configuration=q([],P(l),!1),this.resolveTransition(d,o,o.context,i,s)},t.prototype.resolveRaisedTransition=function(e,r,n,i){var s,o=e.actions;return e=this.transition(e,r,void 0,i),e._event=n,e.event=n.data,(s=e.actions).unshift.apply(s,q([],P(o),!1)),e},t.prototype.resolveTransition=function(e,r,n,i,s){var o,u,c,d,h=this;s===void 0&&(s=ge);var l=e.configuration,a=!r||e.transitions.length>0,f=a?e.configuration:r?r.configuration:[],v=gt(f,this),y=a?Fi(this.machine,l):void 0,S=r?r.historyValue?r.historyValue:e.source?this.machine.historyValue(r.value):void 0:void 0,w=this.getActions(new Set(f),v,e,n,s,r,i),T=r?m({},r.activities):{};try{for(var b=x(w),O=b.next();!O.done;O=b.next()){var M=O.value;try{for(var D=(c=void 0,x(M.actions)),_=D.next();!_.done;_=D.next()){var $=_.value;$.type===et?T[$.activity.id||$.activity.type]=$:$.type===tt&&(T[$.activity.id||$.activity.type]=!1)}}catch(ne){c={error:ne}}finally{try{_&&!_.done&&(d=D.return)&&d.call(D)}finally{if(c)throw c.error}}}}catch(ne){o={error:ne}}finally{try{O&&!O.done&&(u=b.return)&&u.call(b)}finally{if(o)throw o.error}}var R=P(qe(this,r,n,s,w,i,this.machine.config.predictableActionArguments||this.machine.config.preserveActionOrder),2),B=R[0],A=R[1],F=P(yi(B,Lt),2),z=F[0],V=F[1],we=B.filter(function(ne){var W;return ne.type===et&&((W=ne.activity)===null||W===void 0?void 0:W.type)===it}),Te=we.reduce(function(ne,W){return ne[W.activity.id]=Mi(W.activity,h.machine,A,s),ne},r?m({},r.children):{}),p=new ue({value:y||r.value,context:A,_event:s,_sessionid:r?r._sessionid:null,historyValue:y?S?gi(S,y):void 0:r?r.historyValue:void 0,history:!y||e.source?r:void 0,actions:y?V:[],activities:y?T:r?r.activities:{},events:[],configuration:f,transitions:e.transitions,children:Te,done:v,tags:Kr(f),machine:this}),E=n!==A;p.changed=s.name===st||E;var k=p.history;k&&delete k.history;var H=!v&&(this._transient||l.some(function(ne){return ne._transient}));if(!a&&(!H||s.name===_e))return p;var C=p;if(!v)for(H&&(C=this.resolveRaisedTransition(C,{type:vr},s,i));z.length;){var L=z.shift();C=this.resolveRaisedTransition(C,L._event,s,i)}var Ce=C.changed||(k?!!C.actions.length||E||typeof k.value!=typeof C.value||!Gr(C.value,k.value):void 0);return C.changed=Ce,C.history=k,C},t.prototype.getStateNode=function(e){if(Ne(e))return this.machine.getStateNodeById(e);if(!this.states)throw new Error("Unable to retrieve child state '".concat(e,"' from '").concat(this.id,"'; no child states exist."));var r=this.states[e];if(!r)throw new Error("Child state '".concat(e,"' does not exist on '").concat(this.id,"'"));return r},t.prototype.getStateNodeById=function(e){var r=Ne(e)?e.slice(Kt.length):e;if(r===this.id)return this;var n=this.machine.idMap[r];if(!n)throw new Error("Child state node '#".concat(r,"' does not exist on machine '").concat(this.id,"'"));return n},t.prototype.getStateNodeByPath=function(e){if(typeof e=="string"&&Ne(e))try{return this.getStateNodeById(e.slice(1))}catch{}for(var r=Mt(e,this.delimiter).slice(),n=this;r.length;){var i=r.shift();if(!i.length)break;n=n.getStateNode(i)}return n},t.prototype.resolve=function(e){var r,n=this;if(!e)return this.initialStateValue||Pe;switch(this.type){case"parallel":return $e(this.initialStateValue,function(s,o){return s?n.getStateNode(o).resolve(e[o]||s):Pe});case"compound":if(U(e)){var i=this.getStateNode(e);return i.type==="parallel"||i.type==="compound"?(r={},r[e]=i.initialStateValue,r):e}return Object.keys(e).length?$e(e,function(s,o){return s?n.getStateNode(o).resolve(s):Pe}):this.initialStateValue||{};default:return e||Pe}},t.prototype.getResolvedPath=function(e){if(Ne(e)){var r=this.machine.idMap[e.slice(Kt.length)];if(!r)throw new Error("Unable to find state node '".concat(e,"'"));return r.path}return Mt(e,this.delimiter)},Object.defineProperty(t.prototype,"initialStateValue",{get:function(){var e;if(this.__cache.initialStateValue)return this.__cache.initialStateValue;var r;if(this.type==="parallel")r=Sr(this.states,function(n){return n.initialStateValue||Pe},function(n){return n.type!=="history"});else if(this.initial!==void 0){if(!this.states[this.initial])throw new Error("Initial state '".concat(this.initial,"' not found on '").concat(this.key,"'"));r=yt(this.states[this.initial])?this.initial:(e={},e[this.initial]=this.states[this.initial].initialStateValue,e)}else r={};return this.__cache.initialStateValue=r,this.__cache.initialStateValue},enumerable:!1,configurable:!0}),t.prototype.getInitialState=function(e,r){this._init();var n=this.getStateNodes(e);return this.resolveTransition({configuration:n,exitSet:[],transitions:[],source:void 0,actions:[]},void 0,r!=null?r:this.machine.context,void 0)},Object.defineProperty(t.prototype,"initialState",{get:function(){var e=this.initialStateValue;if(!e)throw new Error("Cannot retrieve initial state from simple state '".concat(this.id,"'."));return this.getInitialState(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"target",{get:function(){var e;if(this.type==="history"){var r=this.config;U(r.target)?e=Ne(r.target)?at(this.machine.getStateNodeById(r.target).path.slice(this.path.length-1)):r.target:e=r.target}return e},enumerable:!1,configurable:!0}),t.prototype.getRelativeStateNodes=function(e,r,n){return n===void 0&&(n=!0),n?e.type==="history"?e.resolveHistory(r):e.initialStateNodes:[e]},Object.defineProperty(t.prototype,"initialStateNodes",{get:function(){var e=this;if(yt(this))return[this];if(this.type==="compound"&&!this.initial)return K||J(!1,"Compound state node '".concat(this.id,"' has no initial state.")),[this];var r=ct(this.initialStateValue);return G(r.map(function(n){return e.getFromRelativePath(n)}))},enumerable:!1,configurable:!0}),t.prototype.getFromRelativePath=function(e){if(!e.length)return[this];var r=P(e),n=r[0],i=r.slice(1);if(!this.states)throw new Error("Cannot retrieve subPath '".concat(n,"' from node with no states"));var s=this.getStateNode(n);if(s.type==="history")return s.resolveHistory();if(!this.states[n])throw new Error("Child state '".concat(n,"' does not exist on '").concat(this.id,"'"));return this.states[n].getFromRelativePath(i)},t.prototype.historyValue=function(e){if(Object.keys(this.states).length)return{current:e||this.initialStateValue,states:Sr(this.states,function(r,n){if(!e)return r.historyValue();var i=U(e)?void 0:e[n];return r.historyValue(i||r.initialStateValue)},function(r){return!r.history})}},t.prototype.resolveHistory=function(e){var r=this;if(this.type!=="history")return[this];var n=this.parent;if(!e){var i=this.target;return i?G(ct(i).map(function(o){return n.getFromRelativePath(o)})):n.initialStateNodes}var s=fi(n.path,"states")(e).current;return U(s)?[n.getStateNode(s)]:G(ct(s).map(function(o){return r.history==="deep"?n.getFromRelativePath(o):[n.states[o[0]]]}))},Object.defineProperty(t.prototype,"stateIds",{get:function(){var e=this,r=G(Object.keys(this.states).map(function(n){return e.states[n].stateIds}));return[this.id].concat(r)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"events",{get:function(){var e,r,n,i;if(this.__cache.events)return this.__cache.events;var s=this.states,o=new Set(this.ownEvents);if(s)try{for(var u=x(Object.keys(s)),c=u.next();!c.done;c=u.next()){var d=c.value,h=s[d];if(h.states)try{for(var l=(n=void 0,x(h.events)),a=l.next();!a.done;a=l.next()){var f=a.value;o.add("".concat(f))}}catch(v){n={error:v}}finally{try{a&&!a.done&&(i=l.return)&&i.call(l)}finally{if(n)throw n.error}}}}catch(v){e={error:v}}finally{try{c&&!c.done&&(r=u.return)&&r.call(u)}finally{if(e)throw e.error}}return this.__cache.events=Array.from(o)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"ownEvents",{get:function(){var e=new Set(this.transitions.filter(function(r){return!(!r.target&&!r.actions.length&&r.internal)}).map(function(r){return r.eventType}));return Array.from(e)},enumerable:!1,configurable:!0}),t.prototype.resolveTarget=function(e){var r=this;if(e!==void 0)return e.map(function(n){if(!U(n))return n;var i=n[0]===r.delimiter;if(i&&!r.parent)return r.getStateNodeByPath(n.slice(1));var s=i?r.key+n:n;if(r.parent)try{var o=r.parent.getStateNodeByPath(s);return o}catch(u){throw new Error("Invalid transition definition for state node '".concat(r.id,`':
|
|
19
19
|
`).concat(u.message))}else return r.getStateNodeByPath(s)})},t.prototype.formatTransition=function(e){var r=this,n=Ti(e.target),i="internal"in e?e.internal:n?n.some(function(c){return U(c)&&c[0]===r.delimiter}):!0,s=this.machine.options.guards,o=this.resolveTarget(n),u=m(m({},e),{actions:de(se(e.actions)),cond:Ir(e.cond,s),target:o,source:this,internal:i,eventType:e.event,toJSON:function(){return m(m({},u),{target:u.target?u.target.map(function(c){return"#".concat(c.id)}):void 0,source:"#".concat(r.id)})}});return u},t.prototype.formatTransitions=function(){var e,r,n=this,i;if(!this.config.on)i=[];else if(Array.isArray(this.config.on))i=this.config.on;else{var s=this.config.on,o=ze,u=s[o],c=u===void 0?[]:u,d=_t(s,[typeof o=="symbol"?o:o+""]);i=G(Object.keys(d).map(function(T){!K&&T===_e&&J(!1,"Empty string transition configs (e.g., `{ on: { '': ... }}`) for transient transitions are deprecated. Specify the transition in the `{ always: ... }` property instead. "+'Please check the `on` configuration for "#'.concat(n.id,'".'));var b=Ae(T,d[T]);return K||ts(n,T,b),b}).concat(Ae(ze,c)))}var h=this.config.always?Ae("",this.config.always):[],l=this.config.onDone?Ae(String(Fe(this.id)),this.config.onDone):[];K||J(!(this.config.onDone&&!this.parent),'Root nodes cannot have an ".onDone" transition. Please check the config of "'.concat(this.id,'".'));var a=G(this.invoke.map(function(T){var b=[];return T.onDone&&b.push.apply(b,q([],P(Ae(String(He(T.id)),T.onDone)),!1)),T.onError&&b.push.apply(b,q([],P(Ae(String(Ie(T.id)),T.onError)),!1)),b})),f=this.after,v=G(q(q(q(q([],P(l),!1),P(a),!1),P(i),!1),P(h),!1).map(function(T){return se(T).map(function(b){return n.formatTransition(b)})}));try{for(var y=x(f),S=y.next();!S.done;S=y.next()){var w=S.value;v.push(w)}}catch(T){e={error:T}}finally{try{S&&!S.done&&(r=y.return)&&r.call(y)}finally{if(e)throw e.error}}return v},t}(),zr=!1;function ve(t,e){return!K&&!("predictableActionArguments"in t)&&!zr&&(zr=!0,console.warn("It is highly recommended to set `predictableActionArguments` to `true` when using `createMachine`. https://xstate.js.org/docs/guides/actions.html")),new rs(t,e)}var I=jr,X=me;/*! js-cookie v3.0.5 | MIT */function Et(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)t[n]=r[n]}return t}var ns={read:function(t){return t[0]==='"'&&(t=t.slice(1,-1)),t.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(t){return encodeURIComponent(t).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function Gt(t,e){function r(i,s,o){if(typeof document!="undefined"){o=Et({},e,o),typeof o.expires=="number"&&(o.expires=new Date(Date.now()+o.expires*864e5)),o.expires&&(o.expires=o.expires.toUTCString()),i=encodeURIComponent(i).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var u="";for(var c in o)o[c]&&(u+="; "+c,o[c]!==!0&&(u+="="+o[c].split(";")[0]));return document.cookie=i+"="+t.write(s,i)+u}}function n(i){if(!(typeof document=="undefined"||arguments.length&&!i)){for(var s=document.cookie?document.cookie.split("; "):[],o={},u=0;u<s.length;u++){var c=s[u].split("="),d=c.slice(1).join("=");try{var h=decodeURIComponent(c[0]);if(o[h]=t.read(d,h),i===h)break}catch{}}return i?o[i]:o}}return Object.create({set:r,get:n,remove:function(i,s){r(i,"",Et({},s,{expires:-1}))},withAttributes:function(i){return Gt(this.converter,Et({},this.attributes,i))},withConverter:function(i){return Gt(Et({},this.converter,i),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(t)}})}var Bt=Gt(ns,{path:"/"}),zt=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Yt(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function is(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var r=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}),r}var Wt={exports:{}};(function(t,e){(function(r){function n(i){var s=i&&i.Promise||r.Promise,o=i&&i.XMLHttpRequest||r.XMLHttpRequest;return function(){var u=Object.create(r,{fetch:{value:void 0,writable:!0}});return function(c,d){d(e)}(this,function(c){var d=typeof u!="undefined"&&u||typeof self!="undefined"&&self||typeof d!="undefined"&&d,h={searchParams:"URLSearchParams"in d,iterable:"Symbol"in d&&"iterator"in Symbol,blob:"FileReader"in d&&"Blob"in d&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in d,arrayBuffer:"ArrayBuffer"in d};function l(p){return p&&DataView.prototype.isPrototypeOf(p)}if(h.arrayBuffer)var a=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],f=ArrayBuffer.isView||function(p){return p&&a.indexOf(Object.prototype.toString.call(p))>-1};function v(p){if(typeof p!="string"&&(p=String(p)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(p)||p==="")throw new TypeError("Invalid character in header field name");return p.toLowerCase()}function y(p){return typeof p!="string"&&(p=String(p)),p}function S(p){var E={next:function(){var k=p.shift();return{done:k===void 0,value:k}}};return h.iterable&&(E[Symbol.iterator]=function(){return E}),E}function w(p){this.map={},p instanceof w?p.forEach(function(E,k){this.append(k,E)},this):Array.isArray(p)?p.forEach(function(E){this.append(E[0],E[1])},this):p&&Object.getOwnPropertyNames(p).forEach(function(E){this.append(E,p[E])},this)}w.prototype.append=function(p,E){p=v(p),E=y(E);var k=this.map[p];this.map[p]=k?k+", "+E:E},w.prototype.delete=function(p){delete this.map[v(p)]},w.prototype.get=function(p){return p=v(p),this.has(p)?this.map[p]:null},w.prototype.has=function(p){return this.map.hasOwnProperty(v(p))},w.prototype.set=function(p,E){this.map[v(p)]=y(E)},w.prototype.forEach=function(p,E){for(var k in this.map)this.map.hasOwnProperty(k)&&p.call(E,this.map[k],k,this)},w.prototype.keys=function(){var p=[];return this.forEach(function(E,k){p.push(k)}),S(p)},w.prototype.values=function(){var p=[];return this.forEach(function(E){p.push(E)}),S(p)},w.prototype.entries=function(){var p=[];return this.forEach(function(E,k){p.push([k,E])}),S(p)},h.iterable&&(w.prototype[Symbol.iterator]=w.prototype.entries);function T(p){if(p.bodyUsed)return s.reject(new TypeError("Already read"));p.bodyUsed=!0}function b(p){return new s(function(E,k){p.onload=function(){E(p.result)},p.onerror=function(){k(p.error)}})}function O(p){var E=new FileReader,k=b(E);return E.readAsArrayBuffer(p),k}function M(p){var E=new FileReader,k=b(E);return E.readAsText(p),k}function D(p){for(var E=new Uint8Array(p),k=new Array(E.length),H=0;H<E.length;H++)k[H]=String.fromCharCode(E[H]);return k.join("")}function _(p){if(p.slice)return p.slice(0);var E=new Uint8Array(p.byteLength);return E.set(new Uint8Array(p)),E.buffer}function $(){return this.bodyUsed=!1,this._initBody=function(p){this.bodyUsed=this.bodyUsed,this._bodyInit=p,p?typeof p=="string"?this._bodyText=p:h.blob&&Blob.prototype.isPrototypeOf(p)?this._bodyBlob=p:h.formData&&FormData.prototype.isPrototypeOf(p)?this._bodyFormData=p:h.searchParams&&URLSearchParams.prototype.isPrototypeOf(p)?this._bodyText=p.toString():h.arrayBuffer&&h.blob&&l(p)?(this._bodyArrayBuffer=_(p.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):h.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(p)||f(p))?this._bodyArrayBuffer=_(p):this._bodyText=p=Object.prototype.toString.call(p):this._bodyText="",this.headers.get("content-type")||(typeof p=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):h.searchParams&&URLSearchParams.prototype.isPrototypeOf(p)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},h.blob&&(this.blob=function(){var p=T(this);if(p)return p;if(this._bodyBlob)return s.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return s.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return s.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var p=T(this);return p||(ArrayBuffer.isView(this._bodyArrayBuffer)?s.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):s.resolve(this._bodyArrayBuffer))}else return this.blob().then(O)}),this.text=function(){var p=T(this);if(p)return p;if(this._bodyBlob)return M(this._bodyBlob);if(this._bodyArrayBuffer)return s.resolve(D(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return s.resolve(this._bodyText)},h.formData&&(this.formData=function(){return this.text().then(F)}),this.json=function(){return this.text().then(JSON.parse)},this}var R=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function B(p){var E=p.toUpperCase();return R.indexOf(E)>-1?E:p}function A(p,E){if(!(this instanceof A))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');E=E||{};var k=E.body;if(p instanceof A){if(p.bodyUsed)throw new TypeError("Already read");this.url=p.url,this.credentials=p.credentials,E.headers||(this.headers=new w(p.headers)),this.method=p.method,this.mode=p.mode,this.signal=p.signal,!k&&p._bodyInit!=null&&(k=p._bodyInit,p.bodyUsed=!0)}else this.url=String(p);if(this.credentials=E.credentials||this.credentials||"same-origin",(E.headers||!this.headers)&&(this.headers=new w(E.headers)),this.method=B(E.method||this.method||"GET"),this.mode=E.mode||this.mode||null,this.signal=E.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&k)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(k),(this.method==="GET"||this.method==="HEAD")&&(E.cache==="no-store"||E.cache==="no-cache")){var H=/([?&])_=[^&]*/;if(H.test(this.url))this.url=this.url.replace(H,"$1_="+new Date().getTime());else{var C=/\?/;this.url+=(C.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}A.prototype.clone=function(){return new A(this,{body:this._bodyInit})};function F(p){var E=new FormData;return p.trim().split("&").forEach(function(k){if(k){var H=k.split("="),C=H.shift().replace(/\+/g," "),L=H.join("=").replace(/\+/g," ");E.append(decodeURIComponent(C),decodeURIComponent(L))}}),E}function z(p){var E=new w,k=p.replace(/\r?\n[\t ]+/g," ");return k.split("\r").map(function(H){return H.indexOf(`
|
|
20
20
|
`)===0?H.substr(1,H.length):H}).forEach(function(H){var C=H.split(":"),L=C.shift().trim();if(L){var Ce=C.join(":").trim();E.append(L,Ce)}}),E}$.call(A.prototype);function V(p,E){if(!(this instanceof V))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');E||(E={}),this.type="default",this.status=E.status===void 0?200:E.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in E?E.statusText:"",this.headers=new w(E.headers),this.url=E.url||"",this._initBody(p)}$.call(V.prototype),V.prototype.clone=function(){return new V(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new w(this.headers),url:this.url})},V.error=function(){var p=new V(null,{status:0,statusText:""});return p.type="error",p};var we=[301,302,303,307,308];V.redirect=function(p,E){if(we.indexOf(E)===-1)throw new RangeError("Invalid status code");return new V(null,{status:E,headers:{location:p}})},c.DOMException=d.DOMException;try{new c.DOMException}catch{c.DOMException=function(E,k){this.message=E,this.name=k;var H=Error(E);this.stack=H.stack},c.DOMException.prototype=Object.create(Error.prototype),c.DOMException.prototype.constructor=c.DOMException}function Te(p,E){return new s(function(k,H){var C=new A(p,E);if(C.signal&&C.signal.aborted)return H(new c.DOMException("Aborted","AbortError"));var L=new o;function Ce(){L.abort()}L.onload=function(){var W={status:L.status,statusText:L.statusText,headers:z(L.getAllResponseHeaders()||"")};W.url="responseURL"in L?L.responseURL:W.headers.get("X-Request-URL");var xt="response"in L?L.response:L.responseText;setTimeout(function(){k(new V(xt,W))},0)},L.onerror=function(){setTimeout(function(){H(new TypeError("Network request failed"))},0)},L.ontimeout=function(){setTimeout(function(){H(new TypeError("Network request failed"))},0)},L.onabort=function(){setTimeout(function(){H(new c.DOMException("Aborted","AbortError"))},0)};function ne(W){try{return W===""&&d.location.href?d.location.href:W}catch{return W}}L.open(C.method,ne(C.url),!0),C.credentials==="include"?L.withCredentials=!0:C.credentials==="omit"&&(L.withCredentials=!1),"responseType"in L&&(h.blob?L.responseType="blob":h.arrayBuffer&&C.headers.get("Content-Type")&&C.headers.get("Content-Type").indexOf("application/octet-stream")!==-1&&(L.responseType="arraybuffer")),E&&typeof E.headers=="object"&&!(E.headers instanceof w)?Object.getOwnPropertyNames(E.headers).forEach(function(W){L.setRequestHeader(W,y(E.headers[W]))}):C.headers.forEach(function(W,xt){L.setRequestHeader(xt,W)}),C.signal&&(C.signal.addEventListener("abort",Ce),L.onreadystatechange=function(){L.readyState===4&&C.signal.removeEventListener("abort",Ce)}),L.send(typeof C._bodyInit=="undefined"?null:C._bodyInit)})}Te.polyfill=!0,d.fetch||(d.fetch=Te,d.Headers=w,d.Request=A,d.Response=V),c.Headers=w,c.Request=A,c.Response=V,c.fetch=Te,Object.defineProperty(c,"__esModule",{value:!0})}),{fetch:u.fetch,Headers:u.Headers,Request:u.Request,Response:u.Response,DOMException:u.DOMException}}()}t.exports=n})(typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:zt)})(Wt,Wt.exports);var ss=Wt.exports;const Jt=Yt(ss),Ue="nhostRefreshToken",Ye="nhostRefreshTokenId",Ee="nhostRefreshTokenExpiresAt",Yr=3,Wr=60,Xt=5,Qt=0,Zt=1,oe=10,De=20;let ye=class extends Error{constructor(e){super(e.message),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),e instanceof Error?(this.name=e.name,this.error={error:e.name,status:Zt,message:e.message}):(this.name=e.error,this.error=e)}};const ae={status:oe,error:"invalid-email",message:"Email is incorrectly formatted"},Jr={status:oe,error:"invalid-mfa-type",message:"MFA type is invalid"},Xr={status:oe,error:"invalid-mfa-code",message:"MFA code is invalid"},wt={status:oe,error:"invalid-password",message:"Password is incorrectly formatted"},er={status:oe,error:"invalid-phone-number",message:"Phone number is incorrectly formatted"},Qr={status:oe,error:"invalid-mfa-ticket",message:"MFA ticket is invalid"},Zr={status:oe,error:"no-mfa-ticket",message:"No MFA ticket has been provided"},en={status:oe,error:"no-refresh-token",message:"No refresh token has been provided"},tn={status:De,error:"refresher-already-running",message:"The token refresher is already running. You must wait until is has finished before submitting a new token."},ee={status:De,error:"already-signed-in",message:"User is already signed in"},rn={status:De,error:"unauthenticated-user",message:"User is not authenticated"},os={status:De,error:"user-not-anonymous",message:"User is not anonymous"},nn={status:De,error:"unverified-user",message:"Email needs verification"},sn={status:oe,error:"invalid-refresh-token",message:"Invalid or expired refresh token"},on={status:Zt,error:"invalid-sign-in-method",message:"Invalid sign-in method"},Tt={user:null,mfa:null,accessToken:{value:null,expiresAt:null,expiresInSeconds:15},refreshTimer:{startedAt:null,attempts:0,lastAttempt:null},refreshToken:{value:null},importTokenAttempts:0,errors:{}};function as(t){return new TextEncoder().encode(t)}function he(t){const e=new Uint8Array(t);let r="";for(const n of e)r+=String.fromCharCode(n);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function tr(t){const e=t.replace(/-/g,"+").replace(/_/g,"/"),r=(4-e.length%4)%4,n=e.padEnd(e.length+r,"="),i=atob(n),s=new ArrayBuffer(i.length),o=new Uint8Array(s);for(let u=0;u<i.length;u++)o[u]=i.charCodeAt(u);return s}function an(){return(window==null?void 0:window.PublicKeyCredential)!==void 0&&typeof window.PublicKeyCredential=="function"}function cn(t){const{id:e}=t;return{...t,id:tr(e),transports:t.transports}}function un(t){return t==="localhost"||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(t)}class Z extends Error{constructor({message:e,code:r,cause:n,name:i}){super(e,{cause:n}),this.name=i!=null?i:n.name,this.code=r}}function cs({error:t,options:e}){var r,n;const{publicKey:i}=e;if(!i)throw Error("options was missing required publicKey property");if(t.name==="AbortError"){if(e.signal instanceof AbortSignal)return new Z({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:t})}else if(t.name==="ConstraintError"){if(((r=i.authenticatorSelection)==null?void 0:r.requireResidentKey)===!0)return new Z({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:t});if(((n=i.authenticatorSelection)==null?void 0:n.userVerification)==="required")return new Z({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:t})}else{if(t.name==="InvalidStateError")return new Z({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:t});if(t.name==="NotAllowedError")return new Z({message:t.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:t});if(t.name==="NotSupportedError")return i.pubKeyCredParams.filter(s=>s.type==="public-key").length===0?new Z({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:t}):new Z({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:t});if(t.name==="SecurityError"){const s=window.location.hostname;if(un(s)){if(i.rp.id!==s)return new Z({message:`The RP ID "${i.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:t})}else return new Z({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:t})}else if(t.name==="TypeError"){if(i.user.id.byteLength<1||i.user.id.byteLength>64)return new Z({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:t})}else if(t.name==="UnknownError")return new Z({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:t})}return t}class us{createNewAbortSignal(){if(this.controller){const r=new Error("Cancelling existing WebAuthn API call for new one");r.name="AbortError",this.controller.abort(r)}const e=new AbortController;return this.controller=e,e.signal}cancelCeremony(){if(this.controller){const e=new Error("Manually cancelling existing WebAuthn API call");e.name="AbortError",this.controller.abort(e),this.controller=void 0}}}const ln=new us,ls=["cross-platform","platform"];function dn(t){if(t&&!(ls.indexOf(t)<0))return t}async function hn(t){var e;if(!an())throw new Error("WebAuthn is not supported in this browser");const r={publicKey:{...t,challenge:tr(t.challenge),user:{...t.user,id:as(t.user.id)},excludeCredentials:(e=t.excludeCredentials)==null?void 0:e.map(cn)}};r.signal=ln.createNewAbortSignal();let n;try{n=await navigator.credentials.create(r)}catch(a){throw cs({error:a,options:r})}if(!n)throw new Error("Registration was not completed");const{id:i,rawId:s,response:o,type:u}=n;let c;typeof o.getTransports=="function"&&(c=o.getTransports());let d;if(typeof o.getPublicKeyAlgorithm=="function")try{d=o.getPublicKeyAlgorithm()}catch(a){rr("getPublicKeyAlgorithm()",a)}let h;if(typeof o.getPublicKey=="function")try{const a=o.getPublicKey();a!==null&&(h=he(a))}catch(a){rr("getPublicKey()",a)}let l;if(typeof o.getAuthenticatorData=="function")try{l=he(o.getAuthenticatorData())}catch(a){rr("getAuthenticatorData()",a)}return{id:i,rawId:he(s),response:{attestationObject:he(o.attestationObject),clientDataJSON:he(o.clientDataJSON),transports:c,publicKeyAlgorithm:d,publicKey:h,authenticatorData:l},type:u,clientExtensionResults:n.getClientExtensionResults(),authenticatorAttachment:dn(n.authenticatorAttachment)}}function rr(t,e){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${t}. You should report this error to them.
|
|
21
|
-
`,e)}function ds(t){return new TextDecoder("utf-8").decode(t)}function hs(){const t=window.PublicKeyCredential;return t.isConditionalMediationAvailable===void 0?new Promise(e=>e(!1)):t.isConditionalMediationAvailable()}function fs({error:t,options:e}){const{publicKey:r}=e;if(!r)throw Error("options was missing required publicKey property");if(t.name==="AbortError"){if(e.signal instanceof AbortSignal)return new Z({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:t})}else{if(t.name==="NotAllowedError")return new Z({message:t.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:t});if(t.name==="SecurityError"){const n=window.location.hostname;if(un(n)){if(r.rpId!==n)return new Z({message:`The RP ID "${r.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:t})}else return new Z({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:t})}else if(t.name==="UnknownError")return new Z({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:t})}return t}async function nr(t,e=!1){var r,n;if(!an())throw new Error("WebAuthn is not supported in this browser");let i;((r=t.allowCredentials)==null?void 0:r.length)!==0&&(i=(n=t.allowCredentials)==null?void 0:n.map(cn));const s={...t,challenge:tr(t.challenge),allowCredentials:i},o={};if(e){if(!await hs())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');o.mediation="conditional",s.allowCredentials=[]}o.publicKey=s,o.signal=ln.createNewAbortSignal();let u;try{u=await navigator.credentials.get(o)}catch(f){throw fs({error:f,options:o})}if(!u)throw new Error("Authentication was not completed");const{id:c,rawId:d,response:h,type:l}=u;let a;return h.userHandle&&(a=ds(h.userHandle)),{id:c,rawId:he(d),response:{authenticatorData:he(h.authenticatorData),clientDataJSON:he(h.clientDataJSON),signature:he(h.signature),userHandle:a},type:l,clientExtensionResults:u.getClientExtensionResults(),authenticatorAttachment:dn(u.authenticatorAttachment)}}const St=typeof window!="undefined",bt=new Map,ps=t=>{var e;return St&&typeof localStorage!="undefined"?localStorage.getItem(t):(e=bt.get(t))!=null?e:null},vs=(t,e)=>{St&&typeof localStorage!="undefined"?e?localStorage.setItem(t,e):localStorage.removeItem(t):e?bt.set(t,e):bt.has(t)&&bt.delete(t)},fn=(t,e)=>{if(t==="localStorage"||t==="web")return ps;if(t==="cookie")return r=>{var n;return St&&(n=Bt.get(r))!=null?n:null};if(!e)throw Error(`clientStorageType is set to '${t}' but no clientStorage has been given`);if(t==="react-native")return r=>{var n;return(n=e.getItem)==null?void 0:n.call(e,r)};if(t==="capacitor")return r=>{var n;return(n=e.get)==null?void 0:n.call(e,{key:r})};if(t==="expo-secure-storage")return r=>{var n;return(n=e.getItemAsync)==null?void 0:n.call(e,r)};if(t==="custom"){if(e.getItem&&e.removeItem)return e.getItem;if(e.getItemAsync)return e.getItemAsync;throw Error(`clientStorageType is set to 'custom' but clientStorage is missing either "getItem" and "removeItem" properties or "getItemAsync" property`)}throw Error(`Unknown storage type: ${t}`)},pn=(t,e)=>{if(t==="localStorage"||t==="web")return vs;if(t==="cookie")return(r,n)=>{St&&(n?Bt.set(r,n,{expires:30,sameSite:"lax",httpOnly:!1}):Bt.remove(r))};if(!e)throw Error(`clientStorageType is set to '${t}' but no clienStorage has been given`);if(t==="react-native")return(r,n)=>{var i,s;return n?(i=e.setItem)==null?void 0:i.call(e,r,n):(s=e.removeItem)==null?void 0:s.call(e,r)};if(t==="capacitor")return(r,n)=>{var i,s;return n?(i=e.set)==null?void 0:i.call(e,{key:r,value:n}):(s=e.remove)==null?void 0:s.call(e,{key:r})};if(t==="expo-secure-storage")return async(r,n)=>{var i,s;return n?(i=e.setItemAsync)==null?void 0:i.call(e,r,n):(s=e.deleteItemAsync)==null?void 0:s.call(e,r)};if(t==="custom"){if(!e.removeItem)throw Error("clientStorageType is set to 'custom' but clientStorage is missing a removeItem property");if(e.setItem)return(r,n)=>{var i,s;return n?(i=e.setItem)==null?void 0:i.call(e,r,n):(s=e.removeItem)==null?void 0:s.call(e,r)};if(e.setItemAsync)return async(r,n)=>{var i,s;return n?(i=e.setItemAsync)==null?void 0:i.call(e,r,n):(s=e.removeItem)==null?void 0:s.call(e,r)};throw Error("clientStorageType is set to 'custom' but clientStorage is missing setItem or setItemAsync property")}throw Error(`Unknown storage type: ${t}`)},We=t=>!t||!t.accessToken.value||!t.accessToken.expiresAt||!t.user?null:{accessToken:t.accessToken.value,accessTokenExpiresIn:(t.accessToken.expiresAt.getTime()-Date.now())/1e3,refreshToken:t.refreshToken.value,user:t.user},ie=({accessToken:t,refreshToken:e,isError:r,user:n,error:i})=>r?{session:null,error:i}:n&&t?{session:{accessToken:t,accessTokenExpiresIn:0,refreshToken:e,user:n},error:null}:{session:null,error:null},Je=()=>typeof window!="undefined"&&typeof window.location!="undefined";let vn=globalThis.fetch;typeof EdgeRuntime!="string"&&(vn=Jt().fetch);const yn=async(t,e,{token:r,body:n,extraHeaders:i}={})=>{const s={"Content-Type":"application/json",Accept:"*/*"};r&&(s.Authorization=`Bearer ${r}`);const o={...s,...i},u={method:e,headers:o};n&&(u.body=JSON.stringify(n));try{const c=await vn(t,u);if(!c.ok){const d=await c.json();return Promise.reject({error:d})}try{return{data:await c.json(),error:null}}catch{return console.warn(`Unexpected response: can't parse the response of the server at ${t}`),{data:"OK",error:null}}}catch{const c={message:"Network Error",status:Qt,error:"network"};return Promise.reject({error:c})}},te=async(t,e,r,n)=>yn(t,"POST",{token:r,body:e,extraHeaders:n}),gn=(t,e)=>yn(t,"GET",{token:e}),kt=(t,e)=>{const r=e&&Object.entries(e).map(([n,i])=>{const s=Array.isArray(i)?i.join(","):typeof i=="object"?JSON.stringify(i):i;return`${n}=${encodeURIComponent(s)}`}).join("&");return r?`${t}?${r}`:t},re=(t,e)=>{if(!(e!=null&&e.redirectTo))return e;const{redirectTo:r,...n}=e;if(!t)return r.startsWith("/")?n:e;const i=new URL(t),s=Object.fromEntries(new URLSearchParams(i.search)),o=new URL(r.startsWith("/")?i.origin+r:r),u=new URLSearchParams(o.search);let c=Object.fromEntries(u);r.startsWith("/")&&(c={...s,...c});let d=i.pathname;return o.pathname.length>1&&(d+=o.pathname.slice(1)),{...n,redirectTo:kt(o.origin+d,c)}};function Xe(t,e){var r;if(!e){if(typeof window=="undefined")return;e=((r=window.location)==null?void 0:r.href)||""}t=t.replace(/[\[\]]/g,"\\$&");const n=new RegExp("[?&#]"+t+"(=([^&#]*)|&|#|$)"),i=n.exec(e);return i?i[2]?decodeURIComponent(i[2].replace(/\+/g," ")):"":null}function ir(t){var e;if(typeof window=="undefined")return;const r=window==null?void 0:window.location;if(r&&r){const n=new URLSearchParams(r.search),i=new URLSearchParams((e=r.hash)==null?void 0:e.slice(1));n.delete(t),i.delete(t);let s=window.location.pathname;Array.from(n).length&&(s+=`?${n.toString()}`),Array.from(i).length&&(s+=`#${i.toString()}`),window.history.pushState({},"",s)}}const ce=t=>!!t&&typeof t=="string"&&!!String(t).toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/),At=t=>!!t&&typeof t=="string"&&t.length>=Yr,sr=t=>!!t&&typeof t=="string",mn=t=>t&&typeof t=="string"&&t.match(/^mfaTotp:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i),En=({backendUrl:t,clientUrl:e,broadcastKey:r,clientStorageType:n="web",clientStorage:i,refreshIntervalTime:s,autoRefreshToken:o=!0,autoSignIn:u=!0})=>{const c=fn(n,i),d=pn(n,i),h=async(l,a,f,v)=>(await te(`${t}${l}`,a,f,v)).data;return ve({schema:{context:{},events:{},services:{}},tsTypes:{},context:Tt,predictableActionArguments:!0,id:"nhost",type:"parallel",states:{authentication:{initial:"starting",on:{SESSION_UPDATE:[{cond:"hasSession",actions:["saveSession","resetTimer","reportTokenChanged"],target:".signedIn"}]},states:{starting:{tags:["loading"],always:{cond:"isSignedIn",target:"signedIn"},invoke:{id:"importRefreshToken",src:"importRefreshToken",onDone:[{cond:"hasSession",actions:["saveSession","reportTokenChanged"],target:"signedIn"},{target:"signedOut"}],onError:[{cond:"shouldRetryImportToken",actions:"incrementTokenImportAttempts",target:"retryTokenImport"},{actions:["saveAuthenticationError"],target:"signedOut"}]}},retryTokenImport:{tags:["loading"],after:{RETRY_IMPORT_TOKEN_DELAY:"starting"}},signedOut:{initial:"noErrors",entry:"reportSignedOut",states:{noErrors:{},success:{},needsSmsOtp:{},needsMfa:{},failed:{},signingOut:{entry:["clearContextExceptTokens"],exit:["destroyAccessToken","destroyRefreshToken","reportTokenChanged"],invoke:{src:"signout",id:"signingOut",onDone:{target:"success"},onError:{target:"failed",actions:["saveAuthenticationError"]}}}},on:{SIGNIN_PASSWORD:"authenticating.password",SIGNIN_ANONYMOUS:"authenticating.anonymous",SIGNIN_SECURITY_KEY_EMAIL:"authenticating.securityKeyEmail",SIGNIN_SECURITY_KEY:"authenticating.securityKey",SIGNIN_MFA_TOTP:"authenticating.mfa.totp",SIGNIN_PAT:"authenticating.pat",SIGNIN_ID_TOKEN:"authenticating.idToken"}},authenticating:{entry:"resetErrors",states:{password:{invoke:{src:"signInPassword",id:"authenticateUserWithPassword",onDone:[{cond:"hasMfaTicket",actions:["saveMfaTicket"],target:"#nhost.authentication.signedOut.needsMfa"},{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"}],onError:[{cond:"unverified",target:["#nhost.authentication.signedOut","#nhost.registration.incomplete.needsEmailVerification"]},{actions:"saveAuthenticationError",target:"#nhost.authentication.signedOut.failed"}]}},pat:{invoke:{src:"signInPAT",id:"authenticateWithPAT",onDone:{actions:["savePATSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:{actions:"saveAuthenticationError",target:"#nhost.authentication.signedOut.failed"}}},idToken:{invoke:{src:"signInIdToken",id:"authenticateWithIdToken",onDone:{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:{actions:"saveAuthenticationError",target:"#nhost.authentication.signedOut.failed"}}},anonymous:{invoke:{src:"signInAnonymous",id:"authenticateAnonymously",onDone:{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:{actions:"saveAuthenticationError",target:"#nhost.authentication.signedOut.failed"}}},mfa:{states:{totp:{invoke:{src:"signInMfaTotp",id:"signInMfaTotp",onDone:{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:{actions:["saveAuthenticationError"],target:"#nhost.authentication.signedOut.failed"}}}}},securityKeyEmail:{invoke:{src:"signInSecurityKeyEmail",id:"authenticateUserWithSecurityKey",onDone:{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:[{cond:"unverified",target:["#nhost.authentication.signedOut","#nhost.registration.incomplete.needsEmailVerification"]},{actions:"saveAuthenticationError",target:"#nhost.authentication.signedOut.failed"}]}},securityKey:{invoke:{src:"signInSecurityKey",id:"authenticateUserWithSecurityKey",onDone:{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:[{cond:"unverified",target:["#nhost.authentication.signedOut","#nhost.registration.incomplete.needsEmailVerification"]},{actions:"saveAuthenticationError",target:"#nhost.authentication.signedOut.failed"}]}}}},signedIn:{type:"parallel",entry:["reportSignedIn","cleanUrl","broadcastToken","resetErrors"],on:{SIGNOUT:"signedOut.signingOut"},states:{refreshTimer:{id:"timer",initial:"idle",states:{disabled:{type:"final"},stopped:{always:{cond:"noToken",target:"idle"}},idle:{always:[{cond:"isAutoRefreshDisabled",target:"disabled"},{cond:"isRefreshTokenPAT",target:"disabled"},{cond:"hasRefreshToken",target:"running"}]},running:{initial:"pending",entry:"resetTimer",states:{pending:{after:{1e3:{internal:!1,target:"pending"}},always:{cond:"refreshTimerShouldRefresh",target:"refreshing"}},refreshing:{invoke:{src:"refreshToken",id:"refreshToken",onDone:{actions:["saveSession","resetTimer","reportTokenChanged"],target:"pending"},onError:[{cond:"isUnauthorizedError",target:"#nhost.authentication.signedOut"},{actions:"saveRefreshAttempt",target:"pending"}]}}}}}}}}}},token:{initial:"idle",states:{idle:{on:{TRY_TOKEN:"running"},initial:"noErrors",states:{noErrors:{},error:{}}},running:{invoke:{src:"refreshToken",id:"authenticateWithToken",onDone:{actions:["saveSession","reportTokenChanged"],target:["#nhost.authentication.signedIn","idle.noErrors"]},onError:[{cond:"isSignedIn",target:"idle.error"},{actions:"saveAuthenticationError",target:["#nhost.authentication.signedOut.failed","idle.error"]}]}}}},registration:{initial:"incomplete",on:{SIGNED_IN:[{cond:"isAnonymous",target:".incomplete"},".complete"]},states:{incomplete:{on:{SIGNUP_EMAIL_PASSWORD:"emailPassword",SIGNUP_SECURITY_KEY:"securityKey",PASSWORDLESS_EMAIL:"passwordlessEmail",PASSWORDLESS_SMS:"passwordlessSms",PASSWORDLESS_SMS_OTP:"passwordlessSmsOtp",SIGNIN_EMAIL_OTP:"signInEmailOTP",VERIFY_EMAIL_OTP:"verifyEmailOTP"},initial:"noErrors",states:{noErrors:{},needsEmailVerification:{},needsOtp:{},failed:{}}},emailPassword:{entry:["resetErrors"],invoke:{src:"signUpEmailPassword",id:"signUpEmailPassword",onDone:[{cond:"hasSession",actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},{actions:"clearContext",target:["#nhost.authentication.signedOut","incomplete.needsEmailVerification"]}],onError:[{cond:"unverified",target:"incomplete.needsEmailVerification"},{actions:"saveRegistrationError",target:"incomplete.failed"}]}},securityKey:{entry:["resetErrors"],invoke:{src:"signUpSecurityKey",id:"signUpSecurityKey",onDone:[{cond:"hasSession",actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},{actions:"clearContext",target:["#nhost.authentication.signedOut","incomplete.needsEmailVerification"]}],onError:[{cond:"unverified",target:"incomplete.needsEmailVerification"},{actions:"saveRegistrationError",target:"incomplete.failed"}]}},passwordlessEmail:{entry:["resetErrors"],invoke:{src:"passwordlessEmail",id:"passwordlessEmail",onDone:{actions:"clearContext",target:["#nhost.authentication.signedOut","incomplete.needsEmailVerification"]},onError:{actions:"saveRegistrationError",target:"incomplete.failed"}}},passwordlessSms:{entry:["resetErrors"],invoke:{src:"passwordlessSms",id:"passwordlessSms",onDone:{actions:"clearContext",target:["#nhost.authentication.signedOut","incomplete.needsOtp"]},onError:{actions:"saveRegistrationError",target:"incomplete.failed"}}},passwordlessSmsOtp:{entry:["resetErrors"],invoke:{src:"passwordlessSmsOtp",id:"passwordlessSmsOtp",onDone:{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:{actions:"saveRegistrationError",target:"incomplete.failed"}}},signInEmailOTP:{entry:["resetErrors"],invoke:{src:"signInEmailOTP",id:"signInEmailOTP",onDone:{actions:"clearContext",target:["#nhost.authentication.signedOut","incomplete.needsOtp"]},onError:{actions:"saveRegistrationError",target:"incomplete.failed"}}},verifyEmailOTP:{entry:["resetErrors"],invoke:{src:"verifyEmailOTP",id:"verifyEmailOTP",onDone:{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:{actions:"saveRegistrationError",target:"incomplete.failed"}}},complete:{on:{SIGNED_OUT:"incomplete"}}}}}},{actions:{reportSignedIn:X("SIGNED_IN"),reportSignedOut:X("SIGNED_OUT"),reportTokenChanged:X("TOKEN_CHANGED"),incrementTokenImportAttempts:I({importTokenAttempts:({importTokenAttempts:l})=>l+1}),clearContext:I(()=>(d(Ee,null),d(Ue,null),d(Ye,null),{...Tt})),clearContextExceptTokens:I(({accessToken:l,refreshToken:a})=>({...Tt,accessToken:l,refreshToken:a})),saveSession:I({user:(l,{data:a})=>{var f;return((f=a==null?void 0:a.session)==null?void 0:f.user)||null},accessToken:(l,{data:a})=>{if(a.session){const{accessTokenExpiresIn:f,accessToken:v}=a.session,y=new Date(Date.now()+f*1e3);return d(Ee,y.toISOString()),{value:v,expiresAt:y,expiresInSeconds:f}}return d(Ee,null),{value:null,expiresAt:null,expiresInSeconds:null}},refreshToken:(l,{data:a})=>{var f,v;const y=((f=a.session)==null?void 0:f.refreshToken)||null,S=((v=a.session)==null?void 0:v.refreshTokenId)||null;return y&&d(Ue,y),S&&d(Ye,S),{value:y}}}),savePATSession:I({user:(l,{data:a})=>{var f;return((f=a==null?void 0:a.session)==null?void 0:f.user)||null},accessToken:(l,{data:a})=>{if(a.session){const{accessTokenExpiresIn:f,accessToken:v}=a.session,y=new Date(Date.now()+f*1e3);return d(Ee,y.toISOString()),{value:v,expiresAt:y,expiresInSeconds:f}}return d(Ee,null),{value:null,expiresAt:null,expiresInSeconds:null}},refreshToken:(l,{data:a})=>{var f,v;const y=((f=a.session)==null?void 0:f.refreshToken)||null,S=((v=a.session)==null?void 0:v.refreshTokenId)||null;return y&&d(Ue,y),S&&d(Ye,S),{value:y,isPAT:!0}}}),saveMfaTicket:I({mfa:(l,a)=>{var f;return(f=a.data)==null?void 0:f.mfa}}),resetTimer:I({refreshTimer:l=>({startedAt:new Date,attempts:0,lastAttempt:null})}),saveRefreshAttempt:I({refreshTimer:(l,a)=>({startedAt:l.refreshTimer.startedAt,attempts:l.refreshTimer.attempts+1,lastAttempt:new Date})}),saveAuthenticationError:I({errors:({errors:l},{data:{error:a}})=>({...l,authentication:a})}),resetErrors:I({errors:l=>({}),importTokenAttempts:l=>0}),saveRegistrationError:I({errors:({errors:l},{data:{error:a}})=>({...l,registration:a})}),destroyRefreshToken:I({refreshToken:l=>(d(Ue,null),d(Ye,null),{value:null})}),destroyAccessToken:I({accessToken:l=>(d(Ee,null),{value:null,expiresAt:null,expiresInSeconds:null})}),cleanUrl:()=>{u&&Xe("refreshToken")&&(ir("refreshToken"),ir("type"))},broadcastToken:l=>{if(u&&r)try{new BroadcastChannel(r).postMessage({type:"broadcast_token",payload:{token:l.refreshToken.value}})}catch{}}},guards:{isAnonymous:(l,a)=>{var f;return!!((f=l.user)!=null&&f.isAnonymous)},isSignedIn:l=>!!l.user&&!!l.accessToken.value,noToken:l=>!l.refreshToken.value,isRefreshTokenPAT:l=>{var a;return!!((a=l.refreshToken)!=null&&a.isPAT)},hasRefreshToken:l=>!!l.refreshToken.value,isAutoRefreshDisabled:()=>!o,refreshTimerShouldRefresh:l=>{const{expiresAt:a}=l.accessToken;if(!a)return!1;if(l.refreshTimer.lastAttempt)return l.refreshTimer.attempts>Xt?!1:Date.now()-l.refreshTimer.lastAttempt.getTime()>Math.pow(2,l.refreshTimer.attempts-1)*5e3;if(a.getTime()<Date.now()||s&&Date.now()-l.refreshTimer.startedAt.getTime()>s*1e3)return!0;const f=l.accessToken.expiresInSeconds;return f?a.getTime()-Date.now()-1e3*Math.min(Wr,f*.5)<=0:!1},shouldRetryImportToken:(l,a)=>l.importTokenAttempts<Xt&&(a.data.error.status===Qt||a.data.error.status>=500),unverified:(l,{data:{error:a}})=>a.status===401&&(a.message==="Email is not verified"||a.error==="unverified-user"),hasSession:(l,a)=>{var f;return!!((f=a.data)!=null&&f.session)},hasMfaTicket:(l,a)=>{var f;return!!((f=a.data)!=null&&f.mfa)},isUnauthorizedError:(l,{data:{error:a}})=>a.status===401},services:{signInPassword:(l,{email:a,password:f})=>ce(a)?At(f)?h("/signin/email-password",{email:a,password:f}):Promise.reject({error:wt}):Promise.reject({error:ae}),signInPAT:(l,{pat:a})=>h("/signin/pat",{personalAccessToken:a}),signInIdToken:(l,{provider:a,idToken:f,nonce:v})=>h("/signin/idtoken",{provider:a,idToken:f,...v&&{nonce:v}}),passwordlessSms:(l,{phoneNumber:a,options:f})=>{var v;return sr(a)?(v=l.user)!=null&&v.isAnonymous?(console.warn("Deanonymisation from a phone number is not yet implemented in hasura-auth"),h("/user/deanonymize",{signInMethod:"passwordless",connection:"sms",phoneNumber:a,options:re(e,f)},l.accessToken.value)):h("/signin/passwordless/sms",{phoneNumber:a,options:re(e,f)}):Promise.reject({error:er})},passwordlessSmsOtp:(l,{phoneNumber:a,otp:f})=>sr(a)?h("/signin/passwordless/sms/otp",{phoneNumber:a,otp:f}):Promise.reject({error:er}),signInEmailOTP:(l,{email:a,options:f})=>ce(a)?h("/signin/otp/email",{email:a,options:re(e,f)}):Promise.reject({error:ae}),verifyEmailOTP:(l,{email:a,otp:f})=>ce(a)?h("/signin/otp/email/verify",{email:a,otp:f}):Promise.reject({error:ae}),passwordlessEmail:(l,{email:a,options:f})=>{var v;return ce(a)?(v=l.user)!=null&&v.isAnonymous?h("/user/deanonymize",{signInMethod:"passwordless",connection:"email",email:a,options:re(e,f)},l.accessToken.value):h("/signin/passwordless/email",{email:a,options:re(e,f)}):Promise.reject({error:ae})},signInAnonymous:l=>h("/signin/anonymous"),signInMfaTotp:(l,a)=>{var f;const v=a.ticket||((f=l.mfa)==null?void 0:f.ticket);return v?mn(v)?h("/signin/mfa/totp",{ticket:v,otp:a.otp}):Promise.reject({error:Qr}):Promise.reject({error:Zr})},signInSecurityKeyEmail:async(l,{email:a})=>{if(!ce(a))throw new ye(ae);const f=await h("/signin/webauthn",{email:a});let v;try{v=await nr(f)}catch(y){throw new ye(y)}return h("/signin/webauthn/verify",{email:a,credential:v})},refreshToken:async(l,a)=>{const f=a.type==="TRY_TOKEN"?a.token:l.refreshToken.value;return{session:await h("/token",{refreshToken:f}),error:null}},signInSecurityKey:async()=>{try{const l=await h("/signin/webauthn",{});let a;try{a=await nr(l)}catch(f){throw new ye(f)}return h("/signin/webauthn/verify",{credential:a})}catch(l){throw new ye(l)}},signout:async(l,a)=>{const f=await h("/signout",{refreshToken:l.refreshToken.value,all:!!a.all},a.all?l.accessToken.value:void 0);if(r)try{new BroadcastChannel(r).postMessage({type:"signout"})}catch{}return f},signUpEmailPassword:async(l,{email:a,password:f,options:v,requestOptions:y})=>{var S;return ce(a)?At(f)?(S=l.user)!=null&&S.isAnonymous?h("/user/deanonymize",{signInMethod:"email-password",email:a,password:f,options:re(e,v)},l.accessToken.value,y==null?void 0:y.headers):h("/signup/email-password",{email:a,password:f,options:re(e,v)},null,y==null?void 0:y.headers):Promise.reject({error:wt}):Promise.reject({error:ae})},signUpSecurityKey:async(l,{email:a,options:f})=>{if(!ce(a))return Promise.reject({error:ae});const v=f==null?void 0:f.nickname;v&&delete f.nickname;const y=await h("/signup/webauthn",{email:a,options:f});let S;try{S=await hn(y)}catch(w){throw new ye(w)}return h("/signup/webauthn/verify",{credential:S,options:{redirectTo:f==null?void 0:f.redirectTo,nickname:v}})},importRefreshToken:async l=>{if(l.user&&l.refreshToken.value&&l.accessToken.value&&l.accessToken.expiresAt)return{session:{accessToken:l.accessToken.value,accessTokenExpiresIn:l.accessToken.expiresAt.getTime()-Date.now(),refreshToken:l.refreshToken.value,user:l.user},error:null};let a=null;if(u){const v=Xe("refreshToken")||null;if(v)try{return{session:await h("/token",{refreshToken:v}),error:null}}catch(y){a=y.error}else{const y=Xe("error"),S=Xe("errorDescription");if(y&&S!=="social user already exists")return Promise.reject({session:null,error:{status:oe,error:y,message:S||y}})}}const f=await c(Ue);if(f)try{return{session:await h("/token",{refreshToken:f}),error:null}}catch(v){a=v.error}return a?Promise.reject({error:a,session:null}):{error:null,session:null}}},delays:{RETRY_IMPORT_TOKEN_DELAY:({importTokenAttempts:l})=>Math.pow(2,l-1)*5e3}})},wn=({backendUrl:t,clientUrl:e,interpreter:r})=>ve({schema:{context:{},events:{},services:{}},tsTypes:{},predictableActionArguments:!0,id:"changeEmail",initial:"idle",context:{error:null},states:{idle:{on:{REQUEST:[{cond:"invalidEmail",actions:"saveInvalidEmailError",target:".error"},{target:"requesting"}]},initial:"initial",states:{initial:{},success:{},error:{}}},requesting:{invoke:{src:"requestChange",id:"requestChange",onDone:{target:"idle.success",actions:"reportSuccess"},onError:{actions:["saveRequestError","reportError"],target:"idle.error"}}}}},{actions:{saveInvalidEmailError:I({error:n=>ae}),saveRequestError:I({error:(n,{data:{error:i}})=>i}),reportError:X(n=>({type:"ERROR",error:n.error})),reportSuccess:X("SUCCESS")},guards:{invalidEmail:(n,{email:i})=>!ce(i)},services:{requestChange:async(n,{email:i,options:s})=>(await te(`${t}/user/email/change`,{newEmail:i,options:re(e,s)},r==null?void 0:r.getSnapshot().context.accessToken.value)).data}}),Tn=({backendUrl:t,interpreter:e})=>ve({schema:{context:{},events:{},services:{}},tsTypes:{},predictableActionArguments:!0,id:"changePassword",initial:"idle",context:{error:null},states:{idle:{on:{REQUEST:[{cond:"invalidPassword",actions:"saveInvalidPasswordError",target:".error"},{target:"requesting"}]},initial:"initial",states:{initial:{},success:{},error:{}}},requesting:{invoke:{src:"requestChange",id:"requestChange",onDone:{target:"idle.success",actions:"reportSuccess"},onError:{actions:["saveRequestError","reportError"],target:"idle.error"}}}}},{actions:{saveInvalidPasswordError:I({error:r=>wt}),saveRequestError:I({error:(r,{data:{error:n}})=>n}),reportError:X(r=>({type:"ERROR",error:r.error})),reportSuccess:X("SUCCESS")},guards:{invalidPassword:(r,{password:n})=>!At(n)},services:{requestChange:(r,{password:n,ticket:i})=>te(`${t}/user/password`,{newPassword:n,ticket:i},e==null?void 0:e.getSnapshot().context.accessToken.value)}}),ys=({backendUrl:t,interpreter:e})=>ve({schema:{context:{},events:{}},tsTypes:{},predictableActionArguments:!0,id:"enableMfa",initial:"idle",context:{error:null,imageUrl:null,secret:null},states:{idle:{initial:"initial",on:{GENERATE:"generating"},states:{initial:{},error:{}}},generating:{invoke:{src:"generate",id:"generate",onDone:{target:"generated",actions:["reportGeneratedSuccess","saveGeneration"]},onError:{actions:["saveError","reportGeneratedError"],target:"idle.error"}}},generated:{initial:"idle",states:{idle:{initial:"idle",on:{ACTIVATE:[{cond:"invalidMfaType",actions:"saveInvalidMfaTypeError",target:".error"},{cond:"invalidMfaCode",actions:"saveInvalidMfaCodeError",target:".error"},{target:"activating"}]},states:{idle:{},error:{}}},activating:{invoke:{src:"activate",id:"activate",onDone:{target:"activated",actions:"reportSuccess"},onError:{actions:["saveError","reportError"],target:"idle.error"}}},activated:{type:"final"}}}}},{actions:{saveInvalidMfaTypeError:I({error:r=>Jr}),saveInvalidMfaCodeError:I({error:r=>Xr}),saveError:I({error:(r,{data:{error:n}})=>n}),saveGeneration:I({imageUrl:(r,{data:{imageUrl:n}})=>n,secret:(r,{data:{totpSecret:n}})=>n}),reportError:X((r,n)=>(console.log("REPORT",r,n),{type:"ERROR",error:r.error})),reportSuccess:X("SUCCESS"),reportGeneratedSuccess:X("GENERATED"),reportGeneratedError:X(r=>({type:"GENERATED_ERROR",error:r.error}))},guards:{invalidMfaCode:(r,{code:n})=>!n,invalidMfaType:(r,{activeMfaType:n})=>!n||n!=="totp"},services:{generate:async r=>{const{data:n}=await gn(`${t}/mfa/totp/generate`,e==null?void 0:e.getSnapshot().context.accessToken.value);return n},activate:(r,{code:n,activeMfaType:i})=>te(`${t}/user/mfa`,{code:n,activeMfaType:i},e==null?void 0:e.getSnapshot().context.accessToken.value)}}),Sn=({backendUrl:t,clientUrl:e})=>ve({schema:{context:{},events:{},services:{}},tsTypes:{},predictableActionArguments:!0,id:"changePassword",initial:"idle",context:{error:null},states:{idle:{on:{REQUEST:[{cond:"invalidEmail",actions:"saveInvalidEmailError",target:".error"},{target:"requesting"}]},initial:"initial",states:{initial:{},success:{},error:{}}},requesting:{invoke:{src:"requestChange",id:"requestChange",onDone:{target:"idle.success",actions:"reportSuccess"},onError:{actions:["saveRequestError","reportError"],target:"idle.error"}}}}},{actions:{saveInvalidEmailError:I({error:r=>ae}),saveRequestError:I({error:(r,{data:{error:n}})=>n}),reportError:X(r=>({type:"ERROR",error:r.error})),reportSuccess:X("SUCCESS")},guards:{invalidEmail:(r,{email:n})=>!ce(n)},services:{requestChange:(r,{email:n,options:i})=>te(`${t}/user/password/reset`,{email:n,options:re(e,i)})}}),bn=({backendUrl:t,clientUrl:e})=>ve({schema:{context:{},events:{},services:{}},tsTypes:{},predictableActionArguments:!0,id:"sendVerificationEmail",initial:"idle",context:{error:null},states:{idle:{on:{REQUEST:[{cond:"invalidEmail",actions:"saveInvalidEmailError",target:".error"},{target:"requesting"}]},initial:"initial",states:{initial:{},success:{},error:{}}},requesting:{invoke:{src:"request",id:"request",onDone:{target:"idle.success",actions:"reportSuccess"},onError:{actions:["saveRequestError","reportError"],target:"idle.error"}}}}},{actions:{saveInvalidEmailError:I({error:r=>ae}),saveRequestError:I({error:(r,{data:{error:n}})=>n}),reportError:X(r=>({type:"ERROR",error:r.error})),reportSuccess:X("SUCCESS")},guards:{invalidEmail:(r,{email:n})=>!ce(n)},services:{request:async(r,{email:n,options:i})=>(await te(`${t}/user/email/send-verification-email`,{email:n,options:re(e,i)})).data}});class or{constructor({clientStorageType:e="web",autoSignIn:r=!0,autoRefreshToken:n=!0,start:i=!0,backendUrl:s,clientUrl:o,broadcastKey:u,devTools:c,...d}){var h;if(this._started=!1,this._subscriptionsQueue=new Set,this._subscriptions=new Set,this.backendUrl=s,this.clientUrl=o,this._machine=En({...d,backendUrl:s,clientUrl:o,broadcastKey:u,clientStorageType:e,autoSignIn:r,autoRefreshToken:n}),i&&this.start({devTools:c}),typeof window!="undefined"&&u)try{this._channel=new BroadcastChannel(u),r&&((h=this._channel)==null||h.addEventListener("message",l=>{var a;const{type:f,payload:v}=l.data;if(f==="broadcast_token"){const y=(a=this.interpreter)==null?void 0:a.getSnapshot().context.refreshToken.value;this.interpreter&&v.token&&v.token!==y&&this.interpreter.send("TRY_TOKEN",{token:v.token})}})),this._channel.addEventListener("message",l=>{const{type:a}=l.data;a==="signout"&&this.interpreter&&this.interpreter.send("SIGNOUT")})}catch{}}start({devTools:e=!1,initialSession:r,interpreter:n}={}){var i,s;const o={...this.machine.context,accessToken:{...this.machine.context.accessToken},refreshToken:{...this.machine.context.refreshToken}};r&&(o.user=r.user,o.refreshToken.value=(i=r.refreshToken)!=null?i:null,o.accessToken.value=(s=r.accessToken)!=null?s:null,o.accessToken.expiresAt=new Date(Date.now()+r.accessTokenExpiresIn*1e3));const u=this.machine.withContext(o);this._interpreter||(this._interpreter=n||xe(u,{devTools:e})),(!this._started||typeof window=="undefined")&&(this._interpreter.initialized&&(this._interpreter.stop(),this._subscriptions.forEach(c=>c())),this._interpreter.start(u.initialState),this._subscriptionsQueue.forEach(c=>c(this))),this._started=!0}get machine(){return this._machine}get interpreter(){return this._interpreter}get started(){return this._started}subscribe(e){if(this.started){const r=e(this);return this._subscriptions.add(r),r}else return this._subscriptionsQueue.add(e),()=>{console.log("onTokenChanged was added before the interpreter started. Cannot unsubscribe listener.")}}}class kn extends or{constructor({...e}){super({...e,autoSignIn:Je()&&e.autoSignIn,autoRefreshToken:Je()&&e.autoRefreshToken,clientStorageType:"cookie"})}}const gs=kn,An=async({backendUrl:t,interpreter:e},r)=>{try{const{data:n}=await te(`${t}/user/webauthn/add`,{},e==null?void 0:e.getSnapshot().context.accessToken.value);let i;try{i=await hn(n)}catch(o){throw new ye(o)}const{data:s}=await te(`${t}/user/webauthn/verify`,{credential:i,nickname:r},e==null?void 0:e.getSnapshot().context.accessToken.value);return{key:s,isError:!1,error:null,isSuccess:!0}}catch(n){const{error:i}=n;return{isError:!0,error:i,isSuccess:!1}}},On=async(t,e,r)=>new Promise(n=>{t.send("REQUEST",{email:e,options:r}),t.onTransition(i=>{i.matches({idle:"error"})?n({error:i.context.error,isError:!0,needsEmailVerification:!1}):i.matches({idle:"success"})&&n({error:null,isError:!1,needsEmailVerification:!0})})}),In=async(t,e,r)=>new Promise(n=>{t.send("REQUEST",{password:e,ticket:r}),t.onTransition(i=>{i.matches({idle:"error"})?n({error:i.context.error,isError:!0,isSuccess:!1}):i.matches({idle:"success"})&&n({error:null,isError:!1,isSuccess:!0})})}),ms=t=>new Promise(e=>{t.send("GENERATE"),t.onTransition(r=>{r.matches("generated")?e({error:null,isError:!1,isGenerated:!0,qrCodeDataUrl:r.context.imageUrl||""}):r.matches({idle:"error"})&&e({error:r.context.error||null,isError:!0,isGenerated:!1,qrCodeDataUrl:""})})}),Es=(t,e)=>new Promise(r=>{t.send("ACTIVATE",{activeMfaType:"totp",code:e}),t.onTransition(n=>{n.matches({generated:"activated"})?r({error:null,isActivated:!0,isError:!1}):n.matches({generated:{idle:"error"}})&&r({error:n.context.error,isActivated:!1,isError:!0})})}),Rn=async(t,e,r)=>new Promise(n=>{t.send("REQUEST",{email:e,options:r}),t.onTransition(i=>{i.matches({idle:"error"})?n({error:i.context.error,isError:!0,isSent:!1}):i.matches({idle:"success"})&&n({error:null,isError:!1,isSent:!0})})}),xn=(t,e,r)=>new Promise(n=>{t.send("REQUEST",{email:e,options:r}),t.onTransition(i=>{i.matches({idle:"error"})?n({error:i.context.error,isError:!0,isSent:!1}):i.matches({idle:"success"})&&n({error:null,isError:!1,isSent:!0})})}),_n=t=>new Promise(e=>{const{changed:r}=t.send("SIGNIN_ANONYMOUS");r||e({isSuccess:!1,isError:!0,error:ee,user:null,accessToken:null,refreshToken:null}),t.onTransition(n=>{n.matches({authentication:"signedIn"})&&e({isSuccess:!0,isError:!1,error:null,user:n.context.user,accessToken:n.context.accessToken.value,refreshToken:n.context.refreshToken.value}),n.matches({authentication:{signedOut:"failed"}})&&e({isSuccess:!1,isError:!0,error:n.context.errors.authentication||null,user:null,accessToken:null,refreshToken:null})})}),Pn=(t,e,r)=>new Promise(n=>{const{changed:i,context:s}=t.send("SIGNIN_PASSWORD",{email:e,password:r});if(!i)return n({accessToken:s.accessToken.value,refreshToken:s.refreshToken.value,error:ee,isError:!0,isSuccess:!1,needsEmailVerification:!1,needsMfaOtp:!1,mfa:null,user:s.user});t.onTransition(o=>{o.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})?n({accessToken:null,refreshToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,needsMfaOtp:!1,mfa:null,user:null}):o.matches({authentication:{signedOut:"needsMfa"}})?n({accessToken:null,refreshToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!1,needsMfaOtp:!0,mfa:o.context.mfa,user:null}):o.matches({authentication:{signedOut:"failed"}})?n({accessToken:null,refreshToken:null,error:o.context.errors.authentication||null,isError:!0,isSuccess:!1,needsEmailVerification:!1,needsMfaOtp:!1,mfa:null,user:null}):o.matches({authentication:"signedIn"})&&n({accessToken:o.context.accessToken.value,refreshToken:o.context.refreshToken.value,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,needsMfaOtp:!1,mfa:null,user:o.context.user})})}),ar=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send("PASSWORDLESS_EMAIL",{email:e,options:r});if(!i)return n({error:ee,isError:!0,isSuccess:!1});t.onTransition(s=>{s.matches("registration.incomplete.failed")?n({error:s.context.errors.registration||null,isError:!0,isSuccess:!1}):s.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})&&n({error:null,isError:!1,isSuccess:!0})})}),Nn=(t,e)=>new Promise(r=>{const{changed:n,context:i}=t.send({type:"SIGNIN_SECURITY_KEY_EMAIL",email:e});if(!n)return r({accessToken:i.accessToken.value,refreshToken:i.refreshToken.value,error:ee,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:i.user});t.onTransition(s=>{s.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})?r({accessToken:null,refreshToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,user:null}):s.matches({authentication:{signedOut:"failed"}})?r({accessToken:null,refreshToken:null,error:s.context.errors.authentication||null,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:null}):s.matches({authentication:"signedIn"})&&r({accessToken:s.context.accessToken.value,refreshToken:s.context.refreshToken.value,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,user:s.context.user})})}),Un=(t,e)=>new Promise(async r=>{var n,i;const s=(n=t.interpreter)==null?void 0:n.getSnapshot(),o=s==null?void 0:s.context.accessToken.value,{data:u}=await te(`${t.backendUrl}/elevate/webauthn`,{email:e},o);let c;try{c=await nr(u)}catch(d){throw new ye(d)}try{const{data:{session:d},error:h}=await te(`${t.backendUrl}/elevate/webauthn/verify`,{email:e,credential:c},o);d&&!h&&((i=t.interpreter)==null||i.send({type:"SESSION_UPDATE",data:{session:d}}),r({error:null,isError:!1,isSuccess:!0,elevated:!0}))}catch(d){const{error:h}=d;r({error:h,isError:!0,isSuccess:!1,elevated:!1})}}),Dn=(t,e,r)=>new Promise(n=>{const{changed:i,context:s}=t.send("SIGNIN_MFA_TOTP",{otp:e,ticket:r});if(!i)return n({accessToken:s.accessToken.value,refreshToken:s.refreshToken.value,error:ee,isError:!0,isSuccess:!1,user:s.user});t.onTransition(o=>{o.matches({authentication:{signedOut:"failed"}})?n({accessToken:null,refreshToken:null,error:o.context.errors.authentication||null,isError:!0,isSuccess:!1,user:null}):o.matches({authentication:"signedIn"})&&n({accessToken:o.context.accessToken.value,refreshToken:o.context.refreshToken.value,error:null,isError:!1,isSuccess:!0,user:o.context.user})})}),Cn=(t,e)=>new Promise(r=>{const{changed:n}=t.send("SIGNIN_PAT",{pat:e});n||r({isSuccess:!1,isError:!0,error:ee,user:null,accessToken:null,refreshToken:null}),t.onTransition(i=>{if(i.matches({authentication:{signedOut:"failed"}}))return r({accessToken:null,refreshToken:null,user:null,error:i.context.errors.authentication||null,isError:!0,isSuccess:!1});if(i.matches({authentication:"signedIn"}))return r({accessToken:i.context.accessToken.value,refreshToken:i.context.refreshToken.value,user:i.context.user,error:null,isError:!1,isSuccess:!0})})}),cr=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send("PASSWORDLESS_SMS",{phoneNumber:e,options:r});if(!i)return n({error:ee,isError:!0,isSuccess:!1,needsOtp:!1});t.onTransition(s=>{s.matches("registration.incomplete.needsOtp")?n({error:null,isError:!1,isSuccess:!1,needsOtp:!0}):s.matches("registration.incomplete.failed")&&n({error:s.context.errors.authentication||null,isError:!0,isSuccess:!1,needsOtp:!1})})}),Mn=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send({type:"PASSWORDLESS_SMS_OTP",phoneNumber:e,otp:r});if(!i)return n({error:ee,isError:!0,isSuccess:!1,user:null,accessToken:null,refreshToken:null});t.onTransition(s=>{s.matches({authentication:"signedIn"})?n({error:null,isError:!1,isSuccess:!0,user:s.context.user,accessToken:s.context.accessToken.value,refreshToken:s.context.refreshToken.value}):s.matches({registration:{incomplete:"failed"}})&&n({error:s.context.errors.authentication||null,isError:!0,isSuccess:!1,user:null,accessToken:null,refreshToken:null})})}),Ln=async(t,e)=>new Promise(r=>{const{event:n}=t.send("SIGNOUT",{all:e});if(n.type!=="SIGNED_OUT")return r({isSuccess:!1,isError:!0,error:rn});t.onTransition(i=>{i.matches({authentication:{signedOut:"success"}})?r({isSuccess:!0,isError:!1,error:null}):i.matches("authentication.signedOut.failed")&&r({isSuccess:!1,isError:!0,error:i.context.errors.signout||null})})}),ur=(t,e,r,n,i)=>new Promise(s=>{const{changed:o,context:u}=t.send("SIGNUP_EMAIL_PASSWORD",{email:e,password:r,options:n,requestOptions:i});if(!o)return s({error:ee,accessToken:u.accessToken.value,refreshToken:u.refreshToken.value,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:u.user});t.onTransition(c=>{c.matches("registration.incomplete.failed")?s({accessToken:null,refreshToken:null,error:c.context.errors.registration||null,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:null}):c.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})?s({accessToken:null,refreshToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,user:null}):c.matches({authentication:"signedIn",registration:"complete"})&&s({accessToken:c.context.accessToken.value,refreshToken:c.context.refreshToken.value,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,user:c.context.user})})}),jn=(t,e,r)=>new Promise(n=>{const{changed:i,context:s}=t.send("SIGNUP_SECURITY_KEY",{email:e,options:r});if(!i)return n({error:ee,accessToken:s.accessToken.value,refreshToken:s.refreshToken.value,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:s.user});t.onTransition(o=>{o.matches("registration.incomplete.failed")?n({accessToken:null,refreshToken:null,error:o.context.errors.registration||null,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:null}):o.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})?n({accessToken:null,refreshToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,user:null}):o.matches({authentication:"signedIn",registration:"complete"})&&n({accessToken:o.context.accessToken.value,refreshToken:o.context.refreshToken.value,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,user:o.context.user})})}),$n=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send("SIGNIN_EMAIL_OTP",{email:e,options:r});if(!i)return n({error:ee,isError:!0,isSuccess:!1,needsOtp:!1});t.onTransition(s=>{s.matches("registration.incomplete.needsOtp")?n({error:null,isError:!1,isSuccess:!0,needsOtp:!0}):s.matches("registration.incomplete.failed")&&n({error:s.context.errors.authentication||null,isError:!0,isSuccess:!1,needsOtp:!1})})}),Fn=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send({type:"VERIFY_EMAIL_OTP",email:e,otp:r});if(!i)return n({error:ee,isError:!0,isSuccess:!1,user:null,accessToken:null,refreshToken:null});t.onTransition(s=>{s.matches({authentication:"signedIn"})?n({error:null,isError:!1,isSuccess:!0,user:s.context.user,accessToken:s.context.accessToken.value,refreshToken:s.context.refreshToken.value}):s.matches({registration:{incomplete:"failed"}})&&n({error:s.context.errors.authentication||null,isError:!0,isSuccess:!1,user:null,accessToken:null,refreshToken:null})})}),Hn=(t,{provider:e,idToken:r,nonce:n})=>new Promise(i=>{const{changed:s}=t.send("SIGNIN_ID_TOKEN",{provider:e,idToken:r,...n&&{nonce:n}});s||i({isSuccess:!1,isError:!0,error:ee,user:null,accessToken:null,refreshToken:null}),t.onTransition(o=>{if(o.matches({authentication:{signedOut:"failed"}}))return i({accessToken:null,refreshToken:null,user:null,error:o.context.errors.authentication||null,isError:!0,isSuccess:!1});if(o.matches({authentication:"signedIn"}))return i({accessToken:o.context.accessToken.value,refreshToken:o.context.refreshToken.value,user:o.context.user,error:null,isError:!1,isSuccess:!0})})}),qn=async({backendUrl:t,interpreter:e},{provider:r,idToken:n,nonce:i})=>{try{return await te(`${t}/link/idtoken`,{provider:r,idToken:n,...i&&{nonce:i}},e==null?void 0:e.getSnapshot().context.accessToken.value),{isError:!1,error:null,isSuccess:!0}}catch(s){const{error:o}=s;return{isError:!0,error:o,isSuccess:!1}}},Vn=t=>new Promise(e=>{const{changed:r,context:n}=t.send({type:"SIGNIN_SECURITY_KEY"});if(!r)return e({accessToken:n.accessToken.value,refreshToken:n.refreshToken.value,error:ee,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:n.user});t.onTransition(i=>{i.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})?e({accessToken:null,refreshToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,user:null}):i.matches({authentication:{signedOut:"failed"}})?e({accessToken:null,refreshToken:null,error:i.context.errors.authentication||null,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:null}):i.matches({authentication:"signedIn"})&&e({accessToken:i.context.accessToken.value,refreshToken:i.context.refreshToken.value,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,user:i.context.user})})}),ws=async({backendUrl:t,interpreter:e},{expiresAt:r,metadata:n})=>{try{const{data:i}=await te(`${t}/pat`,{expiresAt:r.toISOString(),metadata:n},e==null?void 0:e.getSnapshot().context.accessToken.value);return{data:i?{id:i.id||null,personalAccessToken:i.personalAccessToken||null}:null,isError:!1,error:null,isSuccess:!0}}catch(i){const{error:s}=i;return{isError:!0,error:s,isSuccess:!1,data:null}}};class Kn{constructor({url:e,broadcastKey:r,autoRefreshToken:n=!0,autoSignIn:i=!0,clientStorage:s,clientStorageType:o,refreshIntervalTime:u,start:c=!0}){var d;this.url=e,this._client=new or({backendUrl:e,clientUrl:typeof window!="undefined"&&((d=window.location)==null?void 0:d.origin)||"",broadcastKey:r,autoRefreshToken:n,autoSignIn:i,start:c,clientStorage:s,clientStorageType:o,refreshIntervalTime:u})}async signUp(e){const r=await this.waitUntilReady(),{email:n,options:i}=e;return"securityKey"in e?ie(await jn(r,n,i)):ie(await ur(r,n,e.password,i))}async connectProvider(e){const r=(await this.waitUntilReady()).getSnapshot().context.accessToken.value,{provider:n,options:i}=e,s=kt(`${this._client.backendUrl}/signin/provider/${n}`,re(this._client.clientUrl,{...i,connect:r}));return Je()&&(window.location.href=s),{providerUrl:s}}async signInIdToken(e){const r=await this.waitUntilReady(),n=await Hn(r,e);return{...ie(n),mfa:null}}async linkIdToken(e){return qn(this._client,e)}async signIn(e){const r=await this.waitUntilReady();if(!e){const n=await _n(r);return{...ie(n),mfa:null}}if("provider"in e){const{provider:n,options:i}=e,s=kt(`${this._client.backendUrl}/signin/provider/${n}`,re(this._client.clientUrl,i));return Je()&&(window.location.href=s),{providerUrl:s,provider:n,session:null,mfa:null,error:null}}if("email"in e&&"password"in e){const n=await Pn(r,e.email,e.password);return n.needsEmailVerification?{session:null,mfa:null,error:nn}:n.needsMfaOtp?{session:null,mfa:n.mfa,error:null}:{...ie(n),mfa:null}}if("email"in e&&"securityKey"in e){if(e.securityKey!==!0)throw Error("securityKey must be true");const n=await Nn(r,e.email);return{...ie(n),mfa:null}}if("email"in e){const{email:n,options:i}=e,{error:s}=await ar(r,n,i);return{session:null,mfa:null,error:s}}if("phoneNumber"in e&&"otp"in e){const n=await Mn(r,e.phoneNumber,e.otp);return{...ie(n),mfa:null}}if("phoneNumber"in e){const{error:n}=await cr(r,e.phoneNumber,e.options);return{error:n,mfa:null,session:null}}if("otp"in e){const n=await Dn(r,e.otp,e.ticket);return{...ie(n),mfa:null}}return{error:on,mfa:null,session:null}}async signInPAT(e){const r=await this.waitUntilReady(),n=await Cn(r,e);return ie(n)}async signInEmailOTP(e,r){const n=await this.waitUntilReady(),{error:i}=await $n(n,e,r);return{error:i,session:null,mfa:null}}async verifyEmailOTP(e,r){const n=await this.waitUntilReady(),i=await Fn(n,e,r);return{...ie(i),mfa:null}}async signInSecurityKey(){const e=await this.waitUntilReady(),r=await Vn(e);return{...ie(r),mfa:null}}async signOut(e){const r=await this.waitUntilReady(),{error:n}=await Ln(r,e==null?void 0:e.all);return{error:n}}async resetPassword({email:e,options:r}){const n=xe(Sn(this._client)).start(),{error:i}=await Rn(n,e,r);return{error:i}}async changePassword({newPassword:e,ticket:r}){const n=xe(Tn(this._client)).start(),{error:i}=await In(n,e,r);return{error:i}}async sendVerificationEmail({email:e,options:r}){const n=xe(bn(this._client)).start(),{error:i}=await xn(n,e,r);return{error:i}}async changeEmail({newEmail:e,options:r}){const n=xe(wn(this._client)).start(),{error:i}=await On(n,e,r);return{error:i}}async deanonymize(e){const r=await this.waitUntilReady();if(e.signInMethod==="passwordless"){if(e.connection==="email"){const{error:n}=await ar(r,e.email,e.options);return{error:n}}if(e.connection==="sms"){const{error:n}=await cr(r,e.phoneNumber,e.options);return{error:n}}}if(e.signInMethod==="email-password"){const{error:n}=await ur(r,e.email,e.password,e.options);return{error:n}}throw Error("Unknown deanonymization method")}async addSecurityKey(e){const{error:r,key:n}=await An(this._client,e);return{error:r,key:n}}async elevateEmailSecurityKey(e){if(!e)throw Error("A user email is required");return{...await Un(this._client,e),mfa:null}}async createPAT(e,r){return ws(this._client,{expiresAt:e,metadata:r})}onTokenChanged(e){return this._client.subscribe(()=>{var r;const n=(r=this._client.interpreter)==null?void 0:r.onTransition(({event:i,context:s})=>{i.type==="TOKEN_CHANGED"&&e(We(s))});return()=>n==null?void 0:n.stop()})}onAuthStateChanged(e){return this._client.subscribe(()=>{var r;const n=(r=this._client.interpreter)==null?void 0:r.onTransition(({event:i,context:s})=>{(i.type==="SIGNED_IN"||i.type==="SIGNED_OUT")&&e(i.type,We(s))});return()=>n==null?void 0:n.stop()})}isAuthenticated(){var e;return!!((e=this._client.interpreter)!=null&&e.getSnapshot().matches({authentication:"signedIn"}))}async isAuthenticatedAsync(){return(await this.waitUntilReady()).getSnapshot().matches({authentication:"signedIn"})}getAuthenticationStatus(){var e;const r=((e=this.client.interpreter)==null?void 0:e.getSnapshot().context.importTokenAttempts)||0;return this.isReady()?{isAuthenticated:this.isAuthenticated(),isLoading:!1,connectionAttempts:r}:{isAuthenticated:!1,isLoading:!0,connectionAttempts:r}}getAccessToken(){var e,r;return(r=(e=this._client.interpreter)==null?void 0:e.getSnapshot().context.accessToken.value)!=null?r:void 0}getDecodedAccessToken(){const e=this.getAccessToken();return e?pr(e):null}getHasuraClaims(){var e;return((e=this.getDecodedAccessToken())==null?void 0:e["https://hasura.io/jwt/claims"])||null}getHasuraClaim(e){var r;return((r=this.getHasuraClaims())==null?void 0:r[e.startsWith("x-hasura-")?e:`x-hasura-${e}`])||null}async refreshSession(e){try{const r=await this.waitUntilReady();return new Promise(n=>{const i=e||r.getSnapshot().context.refreshToken.value;if(!i)return n({session:null,error:en});const{changed:s}=r.send("TRY_TOKEN",{token:i});if(!s)return n({session:null,error:tn});r.onTransition(o=>{o.matches({token:{idle:"error"}})?n({session:null,error:sn}):o.event.type==="TOKEN_CHANGED"&&n({session:We(o.context),error:null})})})}catch(r){return{session:null,error:r.message}}}getSession(){var e,r;return We((r=(e=this._client.interpreter)==null?void 0:e.getSnapshot())==null?void 0:r.context)}async initWithSession({session:e}){this.client.start({initialSession:e}),await this.waitUntilReady()}getUser(){var e,r,n;return((n=(r=(e=this._client.interpreter)==null?void 0:e.getSnapshot())==null?void 0:r.context)==null?void 0:n.user)||null}waitUntilReady(){const e=this._client.interpreter;if(!e)throw Error("Auth interpreter not set");return e.getSnapshot().hasTag("loading")?new Promise((r,n)=>{let i=setTimeout(()=>n("The state machine is not yet ready after 15 seconds."),15e3);e.onTransition(s=>{if(!s.hasTag("loading"))return clearTimeout(i),r(e)})}):Promise.resolve(e)}isReady(){var e,r;return!((r=(e=this._client.interpreter)==null?void 0:e.getSnapshot())!=null&&r.hasTag("loading"))}get client(){return this._client}}var Ts=typeof self=="object"?self.FormData:window.FormData;const lr=Yt(Ts);let Gn=globalThis.fetch;const dr=async(t,e,{accessToken:r,name:n,fileId:i,bucketId:s,adminSecret:o,onUploadProgress:u,headers:c={}}={})=>{var d;const h={...c};s&&e.append("bucket-id",s),o&&(h["x-hasura-admin-secret"]=o),r&&(h.Authorization=`Bearer ${r}`);const l=`${t}/files`;if(typeof XMLHttpRequest=="undefined")try{e instanceof lr&&(Gn=Jt().fetch);const a=await Gn(l,{method:"POST",headers:h,body:e}),f=await a.json();return a.ok?{fileMetadata:f,error:null}:{error:{status:a.status,message:((d=f==null?void 0:f.error)==null?void 0:d.message)||a.statusText,error:a.statusText},fileMetadata:null}}catch(a){return{error:{status:0,message:a.message,error:a.message},fileMetadata:null}}return new Promise(a=>{let f=new XMLHttpRequest;f.responseType="json",f.onload=()=>{var v,y,S,w,T,b,O,M;if(f.status<200||f.status>=300){const D={error:(T=(w=(y=(v=f.response)==null?void 0:v.error)==null?void 0:y.message)!=null?w:(S=f.response)==null?void 0:S.error)!=null?T:f.response,message:(M=(O=(b=f.response)==null?void 0:b.error)==null?void 0:O.message)!=null?M:f.response,status:f.status};return a({fileMetadata:null,error:D})}return a({fileMetadata:f.response,error:null})},f.onerror=()=>{const v={error:f.statusText,message:f.statusText,status:f.status};return a({fileMetadata:null,error:v})},u&&f.upload.addEventListener("progress",u,!1),f.open("POST",l,!0),Object.entries(h).forEach(([v,y])=>{f.setRequestHeader(v,y)}),f.send(e)})};function Ot(t,e){if(!e||Object.keys(e).length===0)return t;const r=new URL(t),n=Object.entries(e).reduce((i,[s,o])=>({...i,[s.charAt(0)]:o}),{});return Object.entries(n).forEach(([i,s])=>{s&&r.searchParams.set(i,s)}),r.toString()}let Qe;typeof Qe=="undefined"&&(Qe=Jt().fetch);class Bn{constructor({url:e}){this.headers={},this.url=e}async uploadFormData({formData:e,bucketId:r,headers:n}){const{error:i,fileMetadata:s}=await dr(this.url,e,{bucketId:r,headers:{...this.headers,...n},accessToken:this.accessToken,adminSecret:this.adminSecret});return i?{fileMetadata:null,error:i}:s&&!("processedFiles"in s)?{fileMetadata:{processedFiles:[s]},error:null}:{fileMetadata:s,error:null}}async uploadFile({file:e,bucketId:r,id:n,name:i,headers:s}){const o=typeof window=="undefined"?new lr:new FormData;o.append("file[]",e),o.append("metadata[]",JSON.stringify({id:n,name:i}));const{error:u,fileMetadata:c}=await dr(this.url,o,{accessToken:this.accessToken,adminSecret:this.adminSecret,bucketId:r,fileId:n,name:i,headers:{...this.headers,...s}});return u?{fileMetadata:null,error:u}:c&&"processedFiles"in c?{fileMetadata:c.processedFiles[0],error:null}:{fileMetadata:c,error:null}}async downloadFile(e){try{const{fileId:r,headers:n,...i}=e,s=Ot(`${this.url}/files/${r}`,i),o=await Qe(s,{method:"GET",headers:{...this.generateAuthHeaders(),...this.headers,...n}});if(!o.ok)throw new Error(await o.text());return{file:await o.blob(),error:null}}catch(r){return{file:null,error:r}}}async getPresignedUrl(e){try{const{fileId:r,headers:n}=e,i=await Qe(`${this.url}/files/${r}/presignedurl`,{method:"GET",headers:{...this.generateAuthHeaders(),...this.headers,...n}});if(!i.ok)throw new Error(await i.text());return{presignedUrl:await i.json(),error:null}}catch(r){return{presignedUrl:null,error:r}}}async delete(e){try{const{fileId:r,headers:n}=e,i=await Qe(`${this.url}/files/${r}`,{method:"DELETE",headers:{...this.generateAuthHeaders(),...this.headers,...n}});if(!i.ok)throw new Error(await i.text());return{error:null}}catch(r){return{error:r}}}setAccessToken(e){return this.accessToken=e,this}setAdminSecret(e){return this.adminSecret=e,this}getHeaders(){return this.headers}setHeaders(e){return e?(this.headers={...this.headers,...e},this):this}unsetHeaders(){const e=this.headers["x-hasura-role"];return this.headers=e?{"x-hasura-role":e}:{},this}generateAuthHeaders(){if(!(!this.adminSecret&&!this.accessToken))return this.adminSecret?{"x-hasura-admin-secret":this.adminSecret}:{Authorization:`Bearer ${this.accessToken}`}}}class zn{constructor({url:e,adminSecret:r}){this.url=e,this.api=new Bn({url:e}),this.setAdminSecret(r)}async upload(e){return"file"in e?this.api.uploadFile(e):this.api.uploadFormData(e)}getPublicUrl(e){const{fileId:r,...n}=e;return Ot(`${this.url}/files/${r}`,n)}async getPresignedUrl(e){const{fileId:r,headers:n,...i}=e,{presignedUrl:s,error:o}=await this.api.getPresignedUrl(e);if(o)return{presignedUrl:null,error:o};if(!s)return{presignedUrl:null,error:new Error("Invalid file id")};const u=Ot(s.url,i);return{presignedUrl:{...s,url:u},error:null}}async download(e){const{file:r,error:n}=await this.api.downloadFile(e);return n?{file:null,error:n}:r?{file:r,error:null}:{file:null,error:new Error("File does not exist")}}async delete(e){const{error:r}=await this.api.delete(e);return r?{error:r}:{error:null}}setAccessToken(e){return this.api.setAccessToken(e),this}setAdminSecret(e){return this.api.setAdminSecret(e),this}getHeaders(){return this.api.getHeaders()}setHeaders(e){return this.api.setHeaders(e),this}unsetHeaders(){return this.api.unsetHeaders(),this}}let hr;typeof hr=="undefined"&&(hr=lr);const It={progress:null,loaded:0,error:null,bucketId:void 0,file:void 0,id:void 0},Yn=()=>ve({predictableActionArguments:!0,schema:{context:{},events:{}},tsTypes:{},context:{...It},initial:"idle",on:{DESTROY:{actions:"sendDestroy",target:"stopped"}},states:{idle:{on:{ADD:{actions:"addFile"},UPLOAD:{cond:"hasFile",target:"uploading"}}},uploading:{entry:"resetProgress",on:{UPLOAD_PROGRESS:{actions:["incrementProgress","sendProgress"]},UPLOAD_DONE:"uploaded",UPLOAD_ERROR:"error",CANCEL:"idle"},invoke:{src:"uploadFile"}},uploaded:{entry:["setFileMetadata","sendDone"],on:{ADD:{actions:"addFile",target:"idle"},UPLOAD:{actions:"resetContext",target:"uploading"}}},error:{entry:["setError","sendError"],on:{ADD:{actions:"addFile",target:"idle"},UPLOAD:{actions:"resetContext",target:"uploading"}}},stopped:{type:"final"}}},{guards:{hasFile:(t,e)=>!!t.file||!!e.file},actions:{incrementProgress:I({loaded:(t,{loaded:e})=>e,progress:(t,{progress:e})=>e}),setFileMetadata:I({id:(t,{id:e})=>e,bucketId:(t,{bucketId:e})=>e,progress:t=>100}),setError:I({error:(t,{error:e})=>e}),sendProgress:()=>{},sendError:()=>{},sendDestroy:()=>{},sendDone:()=>{},resetProgress:I({progress:t=>null,loaded:t=>0}),resetContext:I(t=>It),addFile:I({file:(t,{file:e})=>e,bucketId:(t,{bucketId:e})=>e,id:(t,{id:e})=>e})},services:{uploadFile:(t,e)=>r=>{const n=e.file||t.file,i=new hr;i.append("file[]",n);let s=0;return dr(e.url,i,{fileId:e.id||t.id,bucketId:e.bucketId||t.bucketId,accessToken:e.accessToken,adminSecret:e.adminSecret,name:e.name||n.name,onUploadProgress:o=>{const u=o.total?Math.round(o.loaded*n.size/o.total):0,c=u-s;s=u,r({type:"UPLOAD_PROGRESS",progress:o.total?Math.round(u*100/o.total):0,loaded:u,additions:c})}}).then(({fileMetadata:o,error:u})=>{if(u&&r({type:"UPLOAD_ERROR",error:u}),o&&!("processedFiles"in o)){const{id:c,bucketId:d}=o;r({type:"UPLOAD_DONE",id:c,bucketId:d})}if(o&&"processedFiles"in o){const{id:c,bucketId:d}=o.processedFiles[0];r({type:"UPLOAD_DONE",id:c,bucketId:d})}}),()=>{}}}}),{pure:fr,sendParent:Rt}=Di,Ss=()=>ve({id:"files-list",schema:{context:{},events:{}},tsTypes:{},predictableActionArguments:!0,context:{progress:null,files:[],loaded:0,total:0},initial:"idle",on:{UPLOAD:{cond:"hasFileToDownload",actions:"addItem",target:"uploading"},ADD:{actions:"addItem"},REMOVE:{actions:"removeItem"}},states:{idle:{entry:["resetProgress","resetLoaded","resetTotal"],on:{CLEAR:{actions:"clearList",target:"idle"}}},uploading:{entry:["upload","startProgress","resetLoaded","resetTotal"],on:{UPLOAD_PROGRESS:{actions:["incrementProgress"]},UPLOAD_DONE:[{cond:"isAllUploaded",target:"uploaded"},{cond:"isAllUploadedOrError",target:"error"}],UPLOAD_ERROR:[{cond:"isAllUploaded",target:"uploaded"},{cond:"isAllUploadedOrError",target:"error"}],CANCEL:{actions:"cancel",target:"idle"}}},uploaded:{entry:"setUploaded",on:{CLEAR:{actions:"clearList",target:"idle"}}},error:{on:{CLEAR:{actions:"clearList",target:"idle"}}}}},{guards:{hasFileToDownload:(t,e)=>t.files.some(r=>r.getSnapshot().matches("idle"))||!!e.files,isAllUploaded:t=>t.files.every(e=>{var r;return(r=e.getSnapshot())==null?void 0:r.matches("uploaded")}),isAllUploadedOrError:t=>t.files.every(e=>{const r=e.getSnapshot();return(r==null?void 0:r.matches("error"))||(r==null?void 0:r.matches("uploaded"))})},actions:{incrementProgress:I((t,e)=>{const r=t.loaded+e.additions,n=Math.round(r*100/t.total);return{...t,loaded:r,progress:n}}),setUploaded:I({progress:t=>100,loaded:({files:t})=>t.map(e=>e.getSnapshot()).filter(e=>e.matches("uploaded")).reduce((e,r)=>{var n;return e+((n=r.context.file)==null?void 0:n.size)},0)}),resetTotal:I({total:({files:t})=>t.map(e=>e.getSnapshot()).filter(e=>!e.matches("uploaded")).reduce((e,r)=>{var n;return e+((n=r.context.file)==null?void 0:n.size)},0)}),resetLoaded:I({loaded:t=>0}),startProgress:I({progress:t=>0}),resetProgress:I({progress:t=>null}),addItem:I((t,{files:e,bucketId:r})=>{const n=e?Array.isArray(e)?e:"item"in e?Array.from(e):[e]:[],i=t.total+n.reduce((o,u)=>o+u.size,0),s=Math.round(t.loaded*100/i);return{files:[...t.files,...n.map(o=>Qi(Yn().withConfig({actions:{sendProgress:Rt((u,{additions:c})=>({type:"UPLOAD_PROGRESS",additions:c})),sendDone:Rt("UPLOAD_DONE"),sendError:Rt("UPLOAD_ERROR"),sendDestroy:Rt("REMOVE")}}).withContext({...It,file:o,bucketId:r}),{sync:!0}))],total:i,loaded:t.loaded,progress:s}}),removeItem:I({files:t=>t.files.filter(e=>{var r,n;const i=(r=e.getSnapshot())==null?void 0:r.matches("stopped");return i&&((n=e.stop)==null||n.call(e)),!i})}),clearList:fr(t=>t.files.map(e=>X({type:"DESTROY"},{to:e.id}))),upload:fr((t,e)=>t.files.map(r=>X(e,{to:r.id}))),cancel:fr(t=>t.files.map(e=>X({type:"CANCEL"},{to:e.id})))}}),bs=async(t,e)=>new Promise(r=>{e.send({type:"UPLOAD",...t}),e.subscribe(n=>{var i;n.matches("error")?r({error:n.context.error,isError:!0,isUploaded:!1}):n.matches("uploaded")&&r({error:null,isError:!1,isUploaded:!0,id:n.context.id,bucketId:n.context.id,name:(i=n.context.file)==null?void 0:i.name})})}),ks=async(t,e)=>new Promise(r=>{e.send({type:"UPLOAD",...t,files:t.files}),e.onTransition(n=>{n.matches("error")?r({errors:n.context.files.filter(i=>{var s;return(s=i.getSnapshot())==null?void 0:s.context.error}),isError:!0,files:[]}):n.matches("uploaded")&&r({errors:[],isError:!1,files:n.context.files})})}),As=/^((?<protocol>http[s]?):\/\/)?(?<host>(localhost|local))(:(?<port>(\d+|__\w+__)))?$/;function Ze(t,e){const{subdomain:r,region:n}=t;if(!r)throw new Error("A `subdomain` must be set.");const i=r.match(As);if(i!=null&&i.groups){const{protocol:s,host:o,port:u}=i.groups,c=Rs(e);return c||(o==="localhost"?(console.warn('The `subdomain` is set to "localhost". Support for this will be removed in a future release. Please use "local" instead.'),`${s||"http"}://localhost:${u||1337}/v1/${e}`):u?`${s||"https"}://local.${e}.nhost.run:${u}/v1`:`${s||"https"}://local.${e}.nhost.run/v1`)}if(!n)throw new Error('`region` must be set when using a `subdomain` other than "local".');return`https://${r}.${e}.${n}.nhost.run/v1`}function Os(){return typeof window!="undefined"}function Is(){return typeof process!="undefined"&&process.env}function Rs(t){return Os()||!Is()?null:process.env[`NHOST_${t.toUpperCase()}_URL`]}function xs(t,e){const n=e.startsWith("/")?e:`/${e}`;return t+n}function Wn(t){const e="subdomain"in t?Ze(t,"auth"):t.authUrl,{subdomain:r,region:n}=t;if(!e)throw new Error("Please provide `subdomain` or `authUrl`.");return new Kn({url:e,broadcastKey:`${r}${n!=null?n:"local"}`,...t})}function _s(t,e){return e=e||{},new Promise(function(r,n){var i=new XMLHttpRequest,s=[],o=[],u={},c=function(){return{ok:(i.status/100|0)==2,statusText:i.statusText,status:i.status,url:i.responseURL,text:function(){return Promise.resolve(i.responseText)},json:function(){return Promise.resolve(i.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([i.response]))},clone:c,headers:{keys:function(){return s},entries:function(){return o},get:function(h){return u[h.toLowerCase()]},has:function(h){return h.toLowerCase()in u}}}};for(var d in i.open(e.method||"get",t,!0),i.onload=function(){i.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(h,l,a){s.push(l=l.toLowerCase()),o.push([l,a]),u[l]=u[l]?u[l]+","+a:a}),r(c())},i.onerror=n,i.withCredentials=e.credentials=="include",e.headers)i.setRequestHeader(d,e.headers[d]);i.send(e.body||null)})}const Jn=is(Object.freeze(Object.defineProperty({__proto__:null,default:_s},Symbol.toStringTag,{value:"Module"})));var Ps=self.fetch||(self.fetch=Jn.default||Jn);const Xn=Yt(Ps);function Qn(t){const e="subdomain"in t?Ze(t,"functions"):t.functionsUrl;if(!e)throw new Error("Please provide `subdomain` or `functionsUrl`.");return new Zn({url:e,...t})}class Zn{constructor(e){this.headers={};const{url:r,adminSecret:n}=e;this.url=r,this.accessToken=null,this.adminSecret=n}async call(e,r,n){var o,u;const i={"Content-Type":"application/json",...this.generateAccessTokenHeaders(),...n==null?void 0:n.headers,...this.headers},s=xs(this.url,e);try{const c=await Xn(s,{body:r?JSON.stringify(r):null,headers:i,method:"POST"});if(!c.ok){let h;return(o=c.headers.get("content-type"))!=null&&o.includes("application/json")?h=await c.json():h=await c.text(),{res:null,error:{message:h,error:c.statusText,status:c.status}}}let d;return(u=c.headers.get("content-type"))!=null&&u.includes("application/json")?d=await c.json():d=await c.text(),{res:{data:d,status:c.status,statusText:c.statusText},error:null}}catch(c){const d=c;return{res:null,error:{message:d.message,status:d.name==="AbortError"?0:500,error:d.name==="AbortError"?"abort-error":"unknown"}}}}setAccessToken(e){if(!e){this.accessToken=null;return}this.accessToken=e}getHeaders(){return this.headers}setHeaders(e){e&&(this.headers={...this.headers,...e})}unsetHeaders(){const e=this.headers["x-hasura-role"];this.headers=e?{"x-hasura-role":e}:{}}generateAccessTokenHeaders(){return this.adminSecret?{"x-hasura-admin-secret":this.adminSecret}:this.accessToken?{Authorization:`Bearer ${this.accessToken}`}:{}}}function Ns(t,e,r){return t.document?t:{document:t,variables:e,config:r}}function ei(t){var e;let r;const n=t.definitions.filter(i=>i.kind==="OperationDefinition");return n.length===1&&(r=(e=n[0].name)==null?void 0:e.value),r}function Us(t){if(typeof t=="string"){let r;try{const n=Se.parse(t);r=ei(n)}catch{}return{query:t,operationName:r}}const e=ei(t);return{query:Se.print(t),operationName:e}}class Ds{constructor(e){this.headers={},this.isAccessTokenValidOrNull=()=>{if(!this.accessToken)return!0;try{const i=pr(this.accessToken);return i.exp!=null&&i.exp*1e3>Date.now()}catch(i){return console.error("Error decoding token:",i),!1}},this.awaitForValidAccessTokenOrNull=async()=>{if(this.isAccessTokenValidOrNull())return!0;const i=()=>this.isAccessTokenValidOrNull()?Promise.resolve(!0):new Promise(s=>{setTimeout(()=>i().then(s),100)});return i()};const{url:r,adminSecret:n}=e;this._url=r,this.accessToken=null,this.adminSecret=n}async request(e,...r){const[n,i]=r,s=Ns(e,n,i),{headers:o,...u}=i||{},{query:c,operationName:d}=Us(s.document);typeof process!="undefined"&&!process.env.TEST_MODE&&await this.awaitForValidAccessTokenOrNull();try{const h=await Xn(this.httpUrl,{method:"POST",body:JSON.stringify({operationName:d,query:c,variables:n}),headers:{"Content-Type":"application/json",...this.generateAccessTokenHeaders(),...this.headers,...o},...u});if(!h.ok)return{data:null,error:{error:h.statusText,message:h.statusText,status:h.status}};const{data:l,errors:a}=await h.json();return a?{data:null,error:a}:typeof l!="object"||Array.isArray(l)||l===null?{data:null,error:{error:"invalid-response",message:"incorrect response data from GraphQL server",status:0}}:{data:l,error:null}}catch(h){const l=h;return{data:null,error:{message:l.message,status:l.name==="AbortError"?0:500,error:l.name==="AbortError"?"abort-error":"unknown"}}}}get httpUrl(){return this._url}get wsUrl(){return this._url.replace(/^(http)(s?):\/\//,"ws$2://")}get url(){return this._url}getUrl(){return this._url}setAccessToken(e){if(!e){this.accessToken=null;return}this.accessToken=e}getHeaders(){return this.headers}setHeaders(e){e&&(this.headers={...this.headers,...e})}unsetHeaders(){const e=this.headers["x-hasura-role"];this.headers=e?{"x-hasura-role":e}:{}}generateAccessTokenHeaders(){return this.adminSecret?{"x-hasura-admin-secret":this.adminSecret}:this.accessToken?{Authorization:`Bearer ${this.accessToken}`}:{}}}function ti(t){const e="subdomain"in t?Ze(t,"graphql"):t.graphqlUrl;if(!e)throw new Error("Please provide `subdomain` or `graphqlUrl`.");return new Ds({url:e,...t})}function ri(t){const e="subdomain"in t?Ze(t,"storage"):t.storageUrl;if(!e)throw new Error("Please provide `subdomain` or `storageUrl`.");return new zn({url:e,...t})}const Cs=t=>new ni(t);class ni{constructor({refreshIntervalTime:e,clientStorage:r,clientStorageType:n,autoRefreshToken:i,autoSignIn:s,adminSecret:o,devTools:u,start:c=!0,...d}){this.auth=Wn({refreshIntervalTime:e,clientStorage:r,clientStorageType:n,autoRefreshToken:i,autoSignIn:s,start:c,...d}),this.storage=ri({adminSecret:o,...d}),this.functions=Qn({adminSecret:o,...d}),this.graphql=ti({adminSecret:o,...d}),this.auth.onAuthStateChanged((h,l)=>{if(h==="SIGNED_OUT"){this.storage.setAccessToken(void 0),this.functions.setAccessToken(void 0),this.graphql.setAccessToken(void 0);return}const a=l==null?void 0:l.accessToken;this.storage.setAccessToken(a),this.functions.setAccessToken(a),this.graphql.setAccessToken(a)}),this.auth.onTokenChanged(h=>{const l=h==null?void 0:h.accessToken;this.storage.setAccessToken(l),this.functions.setAccessToken(l),this.graphql.setAccessToken(l)}),this._adminSecret=o,this.devTools=u}get adminSecret(){return this._adminSecret}set adminSecret(e){this._adminSecret=e,this.storage.setAdminSecret(e)}setRole(e){this.graphql.setHeaders({"x-hasura-role":e}),this.storage.setHeaders({"x-hasura-role":e}),this.functions.setHeaders({"x-hasura-role":e})}unsetRole(){this.graphql.setHeaders((({"x-hasura-role":e,...r})=>r)(this.graphql.getHeaders())),this.storage.setHeaders((({"x-hasura-role":e,...r})=>r)(this.storage.getHeaders())),this.functions.setHeaders((({"x-hasura-role":e,...r})=>r)(this.functions.getHeaders()))}}g.AuthClient=or,g.AuthClientSSR=gs,g.AuthCookieClient=kn,g.CodifiedError=ye,g.EMAIL_NEEDS_VERIFICATION=nn,g.HasuraAuthClient=Kn,g.HasuraStorageApi=Bn,g.HasuraStorageClient=zn,g.INITIAL_FILE_CONTEXT=It,g.INITIAL_MACHINE_CONTEXT=Tt,g.INVALID_EMAIL_ERROR=ae,g.INVALID_MFA_CODE_ERROR=Xr,g.INVALID_MFA_TICKET_ERROR=Qr,g.INVALID_MFA_TYPE_ERROR=Jr,g.INVALID_PASSWORD_ERROR=wt,g.INVALID_PHONE_NUMBER_ERROR=er,g.INVALID_REFRESH_TOKEN=sn,g.INVALID_SIGN_IN_METHOD=on,g.MIN_PASSWORD_LENGTH=Yr,g.NETWORK_ERROR_CODE=Qt,g.NHOST_JWT_EXPIRES_AT_KEY=Ee,g.NHOST_REFRESH_TOKEN_ID_KEY=Ye,g.NHOST_REFRESH_TOKEN_KEY=Ue,g.NO_MFA_TICKET_ERROR=Zr,g.NO_REFRESH_TOKEN=en,g.NhostClient=ni,g.NhostFunctionsClient=Zn,g.OTHER_ERROR_CODE=Zt,g.REFRESH_TOKEN_MAX_ATTEMPTS=Xt,g.STATE_ERROR_CODE=De,g.TOKEN_REFRESHER_RUNNING_ERROR=tn,g.TOKEN_REFRESH_MARGIN_SECONDS=Wr,g.USER_ALREADY_SIGNED_IN=ee,g.USER_NOT_ANONYMOUS=os,g.USER_UNAUTHENTICATED=rn,g.VALIDATION_ERROR_CODE=oe,g.activateMfaPromise=Es,g.addSecurityKeyPromise=An,g.appendImageTransformationParameters=Ot,g.changeEmailPromise=On,g.changePasswordPromise=In,g.createAuthClient=Wn,g.createAuthMachine=En,g.createChangeEmailMachine=wn,g.createChangePasswordMachine=Tn,g.createEnableMfaMachine=ys,g.createFileUploadMachine=Yn,g.createFunctionsClient=Qn,g.createGraphqlClient=ti,g.createMultipleFilesUploadMachine=Ss,g.createNhostClient=Cs,g.createResetPasswordMachine=Sn,g.createSendVerificationEmailMachine=bn,g.createStorageClient=ri,g.elevateEmailSecurityKeyPromise=Un,g.encodeQueryParameters=kt,g.generateQrCodePromise=ms,g.getAuthenticationResult=ie,g.getFetch=gn,g.getParameterByName=Xe,g.getSession=We,g.isBrowser=Je,g.isValidEmail=ce,g.isValidPassword=At,g.isValidPhoneNumber=sr,g.isValidTicket=mn,g.linkIdTokenPromise=qn,g.localStorageGetter=fn,g.localStorageSetter=pn,g.postFetch=te,g.removeParameterFromWindow=ir,g.resetPasswordPromise=Rn,g.rewriteRedirectTo=re,g.sendVerificationEmailPromise=xn,g.signInAnonymousPromise=_n,g.signInEmailOTPPromise=$n,g.signInEmailPasswordPromise=Pn,g.signInEmailPasswordlessPromise=ar,g.signInEmailSecurityKeyPromise=Nn,g.signInIdTokenPromise=Hn,g.signInMfaTotpPromise=Dn,g.signInPATPromise=Cn,g.signInSecurityKeyPromise=Vn,g.signInSmsPasswordlessOtpPromise=Mn,g.signInSmsPasswordlessPromise=cr,g.signOutPromise=Ln,g.signUpEmailPasswordPromise=ur,g.signUpEmailSecurityKeyPromise=jn,g.uploadFilePromise=bs,g.uploadMultipleFilesPromise=ks,g.urlFromSubdomain=Ze,g.verifyEmailOTPPromise=Fn,Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})});
|
|
21
|
+
`,e)}function ds(t){return new TextDecoder("utf-8").decode(t)}function hs(){const t=window.PublicKeyCredential;return t.isConditionalMediationAvailable===void 0?new Promise(e=>e(!1)):t.isConditionalMediationAvailable()}function fs({error:t,options:e}){const{publicKey:r}=e;if(!r)throw Error("options was missing required publicKey property");if(t.name==="AbortError"){if(e.signal instanceof AbortSignal)return new Z({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:t})}else{if(t.name==="NotAllowedError")return new Z({message:t.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:t});if(t.name==="SecurityError"){const n=window.location.hostname;if(un(n)){if(r.rpId!==n)return new Z({message:`The RP ID "${r.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:t})}else return new Z({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:t})}else if(t.name==="UnknownError")return new Z({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:t})}return t}async function nr(t,e=!1){var r,n;if(!an())throw new Error("WebAuthn is not supported in this browser");let i;((r=t.allowCredentials)==null?void 0:r.length)!==0&&(i=(n=t.allowCredentials)==null?void 0:n.map(cn));const s={...t,challenge:tr(t.challenge),allowCredentials:i},o={};if(e){if(!await hs())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');o.mediation="conditional",s.allowCredentials=[]}o.publicKey=s,o.signal=ln.createNewAbortSignal();let u;try{u=await navigator.credentials.get(o)}catch(f){throw fs({error:f,options:o})}if(!u)throw new Error("Authentication was not completed");const{id:c,rawId:d,response:h,type:l}=u;let a;return h.userHandle&&(a=ds(h.userHandle)),{id:c,rawId:he(d),response:{authenticatorData:he(h.authenticatorData),clientDataJSON:he(h.clientDataJSON),signature:he(h.signature),userHandle:a},type:l,clientExtensionResults:u.getClientExtensionResults(),authenticatorAttachment:dn(u.authenticatorAttachment)}}const St=typeof window!="undefined",bt=new Map,ps=t=>{var e;return St&&typeof localStorage!="undefined"?localStorage.getItem(t):(e=bt.get(t))!=null?e:null},vs=(t,e)=>{St&&typeof localStorage!="undefined"?e?localStorage.setItem(t,e):localStorage.removeItem(t):e?bt.set(t,e):bt.has(t)&&bt.delete(t)},fn=(t,e)=>{if(t==="localStorage"||t==="web")return ps;if(t==="cookie")return r=>{var n;return St&&(n=Bt.get(r))!=null?n:null};if(!e)throw Error(`clientStorageType is set to '${t}' but no clientStorage has been given`);if(t==="react-native")return r=>{var n;return(n=e.getItem)==null?void 0:n.call(e,r)};if(t==="capacitor")return r=>{var n;return(n=e.get)==null?void 0:n.call(e,{key:r})};if(t==="expo-secure-storage")return r=>{var n;return(n=e.getItemAsync)==null?void 0:n.call(e,r)};if(t==="custom"){if(e.getItem&&e.removeItem)return e.getItem;if(e.getItemAsync)return e.getItemAsync;throw Error(`clientStorageType is set to 'custom' but clientStorage is missing either "getItem" and "removeItem" properties or "getItemAsync" property`)}throw Error(`Unknown storage type: ${t}`)},pn=(t,e)=>{if(t==="localStorage"||t==="web")return vs;if(t==="cookie")return(r,n)=>{St&&(n?Bt.set(r,n,{expires:30,sameSite:"lax",httpOnly:!1}):Bt.remove(r))};if(!e)throw Error(`clientStorageType is set to '${t}' but no clienStorage has been given`);if(t==="react-native")return(r,n)=>{var i,s;return n?(i=e.setItem)==null?void 0:i.call(e,r,n):(s=e.removeItem)==null?void 0:s.call(e,r)};if(t==="capacitor")return(r,n)=>{var i,s;return n?(i=e.set)==null?void 0:i.call(e,{key:r,value:n}):(s=e.remove)==null?void 0:s.call(e,{key:r})};if(t==="expo-secure-storage")return async(r,n)=>{var i,s;return n?(i=e.setItemAsync)==null?void 0:i.call(e,r,n):(s=e.deleteItemAsync)==null?void 0:s.call(e,r)};if(t==="custom"){if(!e.removeItem)throw Error("clientStorageType is set to 'custom' but clientStorage is missing a removeItem property");if(e.setItem)return(r,n)=>{var i,s;return n?(i=e.setItem)==null?void 0:i.call(e,r,n):(s=e.removeItem)==null?void 0:s.call(e,r)};if(e.setItemAsync)return async(r,n)=>{var i,s;return n?(i=e.setItemAsync)==null?void 0:i.call(e,r,n):(s=e.removeItem)==null?void 0:s.call(e,r)};throw Error("clientStorageType is set to 'custom' but clientStorage is missing setItem or setItemAsync property")}throw Error(`Unknown storage type: ${t}`)},We=t=>!t||!t.accessToken.value||!t.accessToken.expiresAt||!t.user?null:{accessToken:t.accessToken.value,accessTokenExpiresIn:(t.accessToken.expiresAt.getTime()-Date.now())/1e3,refreshToken:t.refreshToken.value,user:t.user},ie=({accessToken:t,refreshToken:e,isError:r,user:n,error:i})=>r?{session:null,error:i}:n&&t?{session:{accessToken:t,accessTokenExpiresIn:0,refreshToken:e,user:n},error:null}:{session:null,error:null},Je=()=>typeof window!="undefined"&&typeof window.location!="undefined";let vn=globalThis.fetch;typeof EdgeRuntime!="string"&&(vn=Jt().fetch);const yn=async(t,e,{token:r,body:n,extraHeaders:i}={})=>{const s={"Content-Type":"application/json",Accept:"*/*"};r&&(s.Authorization=`Bearer ${r}`);const o={...s,...i},u={method:e,headers:o};n&&(u.body=JSON.stringify(n));try{const c=await vn(t,u);if(!c.ok){const d=await c.json();return Promise.reject({error:d})}try{return{data:await c.json(),error:null}}catch{return console.warn(`Unexpected response: can't parse the response of the server at ${t}`),{data:"OK",error:null}}}catch{const c={message:"Network Error",status:Qt,error:"network"};return Promise.reject({error:c})}},te=async(t,e,r,n)=>yn(t,"POST",{token:r,body:e,extraHeaders:n}),gn=(t,e)=>yn(t,"GET",{token:e}),kt=(t,e)=>{const r=e&&Object.entries(e).map(([n,i])=>{const s=Array.isArray(i)?i.join(","):typeof i=="object"?JSON.stringify(i):i;return`${n}=${encodeURIComponent(s)}`}).join("&");return r?`${t}?${r}`:t},re=(t,e)=>{if(!(e!=null&&e.redirectTo))return e;const{redirectTo:r,...n}=e;if(!t)return r.startsWith("/")?n:e;const i=new URL(t),s=Object.fromEntries(new URLSearchParams(i.search)),o=new URL(r.startsWith("/")?i.origin+r:r),u=new URLSearchParams(o.search);let c=Object.fromEntries(u);r.startsWith("/")&&(c={...s,...c});let d=i.pathname;return o.pathname.length>1&&(d+=o.pathname.slice(1)),{...n,redirectTo:kt(o.origin+d,c)}};function Xe(t,e){var r;if(!e){if(typeof window=="undefined")return;e=((r=window.location)==null?void 0:r.href)||""}t=t.replace(/[\[\]]/g,"\\$&");const n=new RegExp("[?&#]"+t+"(=([^&#]*)|&|#|$)"),i=n.exec(e);return i?i[2]?decodeURIComponent(i[2].replace(/\+/g," ")):"":null}function ir(t){var e;if(typeof window=="undefined")return;const r=window==null?void 0:window.location;if(r&&r){const n=new URLSearchParams(r.search),i=new URLSearchParams((e=r.hash)==null?void 0:e.slice(1));n.delete(t),i.delete(t);let s=window.location.pathname;Array.from(n).length&&(s+=`?${n.toString()}`),Array.from(i).length&&(s+=`#${i.toString()}`),window.history.pushState({},"",s)}}const ce=t=>!!t&&typeof t=="string"&&!!String(t).toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/),At=t=>!!t&&typeof t=="string"&&t.length>=Yr,sr=t=>!!t&&typeof t=="string",mn=t=>t&&typeof t=="string"&&t.match(/^mfaTotp:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i),En=({backendUrl:t,clientUrl:e,broadcastKey:r,clientStorageType:n="web",clientStorage:i,refreshIntervalTime:s,autoRefreshToken:o=!0,autoSignIn:u=!0})=>{const c=fn(n,i),d=pn(n,i),h=async(l,a,f,v)=>(await te(`${t}${l}`,a,f,v)).data;return ve({schema:{context:{},events:{},services:{}},tsTypes:{},context:Tt,predictableActionArguments:!0,id:"nhost",type:"parallel",states:{authentication:{initial:"starting",on:{SESSION_UPDATE:[{cond:"hasSession",actions:["saveSession","resetTimer","reportTokenChanged"],target:".signedIn"}]},states:{starting:{tags:["loading"],always:{cond:"isSignedIn",target:"signedIn"},invoke:{id:"importRefreshToken",src:"importRefreshToken",onDone:[{cond:"hasSession",actions:["saveSession","reportTokenChanged"],target:"signedIn"},{target:"signedOut"}],onError:[{cond:"shouldRetryImportToken",actions:"incrementTokenImportAttempts",target:"retryTokenImport"},{actions:["saveAuthenticationError"],target:"signedOut"}]}},retryTokenImport:{tags:["loading"],after:{RETRY_IMPORT_TOKEN_DELAY:"starting"}},signedOut:{initial:"noErrors",entry:"reportSignedOut",states:{noErrors:{},success:{},needsSmsOtp:{},needsMfa:{},failed:{},signingOut:{entry:["clearContextExceptTokens"],exit:["destroyAccessToken","destroyRefreshToken","reportTokenChanged"],invoke:{src:"signout",id:"signingOut",onDone:{target:"success"},onError:{target:"failed",actions:["saveAuthenticationError"]}}}},on:{SIGNIN_PASSWORD:"authenticating.password",SIGNIN_ANONYMOUS:"authenticating.anonymous",SIGNIN_SECURITY_KEY_EMAIL:"authenticating.securityKeyEmail",SIGNIN_SECURITY_KEY:"authenticating.securityKey",SIGNIN_MFA_TOTP:"authenticating.mfa.totp",SIGNIN_PAT:"authenticating.pat",SIGNIN_ID_TOKEN:"authenticating.idToken"}},authenticating:{entry:"resetErrors",states:{password:{invoke:{src:"signInPassword",id:"authenticateUserWithPassword",onDone:[{cond:"hasMfaTicket",actions:["saveMfaTicket"],target:"#nhost.authentication.signedOut.needsMfa"},{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"}],onError:[{cond:"unverified",target:["#nhost.authentication.signedOut","#nhost.registration.incomplete.needsEmailVerification"]},{actions:"saveAuthenticationError",target:"#nhost.authentication.signedOut.failed"}]}},pat:{invoke:{src:"signInPAT",id:"authenticateWithPAT",onDone:{actions:["savePATSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:{actions:"saveAuthenticationError",target:"#nhost.authentication.signedOut.failed"}}},idToken:{invoke:{src:"signInIdToken",id:"authenticateWithIdToken",onDone:{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:{actions:"saveAuthenticationError",target:"#nhost.authentication.signedOut.failed"}}},anonymous:{invoke:{src:"signInAnonymous",id:"authenticateAnonymously",onDone:{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:{actions:"saveAuthenticationError",target:"#nhost.authentication.signedOut.failed"}}},mfa:{states:{totp:{invoke:{src:"signInMfaTotp",id:"signInMfaTotp",onDone:{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:{actions:["saveAuthenticationError"],target:"#nhost.authentication.signedOut.failed"}}}}},securityKeyEmail:{invoke:{src:"signInSecurityKeyEmail",id:"authenticateUserWithSecurityKey",onDone:{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:[{cond:"unverified",target:["#nhost.authentication.signedOut","#nhost.registration.incomplete.needsEmailVerification"]},{actions:"saveAuthenticationError",target:"#nhost.authentication.signedOut.failed"}]}},securityKey:{invoke:{src:"signInSecurityKey",id:"authenticateUserWithSecurityKey",onDone:{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:[{cond:"unverified",target:["#nhost.authentication.signedOut","#nhost.registration.incomplete.needsEmailVerification"]},{actions:"saveAuthenticationError",target:"#nhost.authentication.signedOut.failed"}]}}}},signedIn:{type:"parallel",entry:["reportSignedIn","cleanUrl","broadcastToken","resetErrors"],on:{SIGNOUT:"signedOut.signingOut"},states:{refreshTimer:{id:"timer",initial:"idle",states:{disabled:{type:"final"},stopped:{always:{cond:"noToken",target:"idle"}},idle:{always:[{cond:"isAutoRefreshDisabled",target:"disabled"},{cond:"isRefreshTokenPAT",target:"disabled"},{cond:"hasRefreshToken",target:"running"}]},running:{initial:"pending",entry:"resetTimer",states:{pending:{after:{1e3:{internal:!1,target:"pending"}},always:{cond:"refreshTimerShouldRefresh",target:"refreshing"}},refreshing:{invoke:{src:"refreshToken",id:"refreshToken",onDone:{actions:["saveSession","resetTimer","reportTokenChanged"],target:"pending"},onError:[{cond:"isUnauthorizedError",target:"#nhost.authentication.signedOut"},{actions:"saveRefreshAttempt",target:"pending"}]}}}}}}}}}},token:{initial:"idle",states:{idle:{on:{TRY_TOKEN:"running"},initial:"noErrors",states:{noErrors:{},error:{}}},running:{invoke:{src:"refreshToken",id:"authenticateWithToken",onDone:{actions:["saveSession","reportTokenChanged"],target:["#nhost.authentication.signedIn","idle.noErrors"]},onError:[{cond:"isSignedIn",target:"idle.error"},{actions:"saveAuthenticationError",target:["#nhost.authentication.signedOut.failed","idle.error"]}]}}}},registration:{initial:"incomplete",on:{SIGNED_IN:[{cond:"isAnonymous",target:".incomplete"},".complete"]},states:{incomplete:{on:{SIGNUP_EMAIL_PASSWORD:"emailPassword",SIGNUP_SECURITY_KEY:"securityKey",PASSWORDLESS_EMAIL:"passwordlessEmail",PASSWORDLESS_SMS:"passwordlessSms",PASSWORDLESS_SMS_OTP:"passwordlessSmsOtp",SIGNIN_EMAIL_OTP:"signInEmailOTP",VERIFY_EMAIL_OTP:"verifyEmailOTP"},initial:"noErrors",states:{noErrors:{},needsEmailVerification:{},needsOtp:{},failed:{}}},emailPassword:{entry:["resetErrors"],invoke:{src:"signUpEmailPassword",id:"signUpEmailPassword",onDone:[{cond:"hasSession",actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},{actions:"clearContext",target:["#nhost.authentication.signedOut","incomplete.needsEmailVerification"]}],onError:[{cond:"unverified",target:"incomplete.needsEmailVerification"},{actions:"saveRegistrationError",target:"incomplete.failed"}]}},securityKey:{entry:["resetErrors"],invoke:{src:"signUpSecurityKey",id:"signUpSecurityKey",onDone:[{cond:"hasSession",actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},{actions:"clearContext",target:["#nhost.authentication.signedOut","incomplete.needsEmailVerification"]}],onError:[{cond:"unverified",target:"incomplete.needsEmailVerification"},{actions:"saveRegistrationError",target:"incomplete.failed"}]}},passwordlessEmail:{entry:["resetErrors"],invoke:{src:"passwordlessEmail",id:"passwordlessEmail",onDone:{actions:"clearContext",target:["#nhost.authentication.signedOut","incomplete.needsEmailVerification"]},onError:{actions:"saveRegistrationError",target:"incomplete.failed"}}},passwordlessSms:{entry:["resetErrors"],invoke:{src:"passwordlessSms",id:"passwordlessSms",onDone:{actions:"clearContext",target:["#nhost.authentication.signedOut","incomplete.needsOtp"]},onError:{actions:"saveRegistrationError",target:"incomplete.failed"}}},passwordlessSmsOtp:{entry:["resetErrors"],invoke:{src:"passwordlessSmsOtp",id:"passwordlessSmsOtp",onDone:{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:{actions:"saveRegistrationError",target:"incomplete.failed"}}},signInEmailOTP:{entry:["resetErrors"],invoke:{src:"signInEmailOTP",id:"signInEmailOTP",onDone:{actions:"clearContext",target:["#nhost.authentication.signedOut","incomplete.needsOtp"]},onError:{actions:"saveRegistrationError",target:"incomplete.failed"}}},verifyEmailOTP:{entry:["resetErrors"],invoke:{src:"verifyEmailOTP",id:"verifyEmailOTP",onDone:{actions:["saveSession","reportTokenChanged"],target:"#nhost.authentication.signedIn"},onError:{actions:"saveRegistrationError",target:"incomplete.failed"}}},complete:{on:{SIGNED_OUT:"incomplete"}}}}}},{actions:{reportSignedIn:X("SIGNED_IN"),reportSignedOut:X("SIGNED_OUT"),reportTokenChanged:X("TOKEN_CHANGED"),incrementTokenImportAttempts:I({importTokenAttempts:({importTokenAttempts:l})=>l+1}),clearContext:I(()=>(d(Ee,null),d(Ue,null),d(Ye,null),{...Tt})),clearContextExceptTokens:I(({accessToken:l,refreshToken:a})=>({...Tt,accessToken:l,refreshToken:a})),saveSession:I({user:(l,{data:a})=>{var f;return((f=a==null?void 0:a.session)==null?void 0:f.user)||null},accessToken:(l,{data:a})=>{if(a.session){const{accessTokenExpiresIn:f,accessToken:v}=a.session,y=new Date(Date.now()+f*1e3);return d(Ee,y.toISOString()),{value:v,expiresAt:y,expiresInSeconds:f}}return d(Ee,null),{value:null,expiresAt:null,expiresInSeconds:null}},refreshToken:(l,{data:a})=>{var f,v;const y=((f=a.session)==null?void 0:f.refreshToken)||null,S=((v=a.session)==null?void 0:v.refreshTokenId)||null;return y&&d(Ue,y),S&&d(Ye,S),{value:y}}}),savePATSession:I({user:(l,{data:a})=>{var f;return((f=a==null?void 0:a.session)==null?void 0:f.user)||null},accessToken:(l,{data:a})=>{if(a.session){const{accessTokenExpiresIn:f,accessToken:v}=a.session,y=new Date(Date.now()+f*1e3);return d(Ee,y.toISOString()),{value:v,expiresAt:y,expiresInSeconds:f}}return d(Ee,null),{value:null,expiresAt:null,expiresInSeconds:null}},refreshToken:(l,{data:a})=>{var f,v;const y=((f=a.session)==null?void 0:f.refreshToken)||null,S=((v=a.session)==null?void 0:v.refreshTokenId)||null;return y&&d(Ue,y),S&&d(Ye,S),{value:y,isPAT:!0}}}),saveMfaTicket:I({mfa:(l,a)=>{var f;return(f=a.data)==null?void 0:f.mfa}}),resetTimer:I({refreshTimer:l=>({startedAt:new Date,attempts:0,lastAttempt:null})}),saveRefreshAttempt:I({refreshTimer:(l,a)=>({startedAt:l.refreshTimer.startedAt,attempts:l.refreshTimer.attempts+1,lastAttempt:new Date})}),saveAuthenticationError:I({errors:({errors:l},{data:{error:a}})=>({...l,authentication:a})}),resetErrors:I({errors:l=>({}),importTokenAttempts:l=>0}),saveRegistrationError:I({errors:({errors:l},{data:{error:a}})=>({...l,registration:a})}),destroyRefreshToken:I({refreshToken:l=>(d(Ue,null),d(Ye,null),{value:null})}),destroyAccessToken:I({accessToken:l=>(d(Ee,null),{value:null,expiresAt:null,expiresInSeconds:null})}),cleanUrl:()=>{u&&Xe("refreshToken")&&(ir("refreshToken"),ir("type"))},broadcastToken:l=>{if(u&&r)try{new BroadcastChannel(r).postMessage({type:"broadcast_token",payload:{token:l.refreshToken.value}})}catch{}}},guards:{isAnonymous:(l,a)=>{var f;return!!((f=l.user)!=null&&f.isAnonymous)},isSignedIn:l=>!!l.user&&!!l.accessToken.value,noToken:l=>!l.refreshToken.value,isRefreshTokenPAT:l=>{var a;return!!((a=l.refreshToken)!=null&&a.isPAT)},hasRefreshToken:l=>!!l.refreshToken.value,isAutoRefreshDisabled:()=>!o,refreshTimerShouldRefresh:l=>{const{expiresAt:a}=l.accessToken;if(!a)return!1;if(l.refreshTimer.lastAttempt)return l.refreshTimer.attempts>Xt?!1:Date.now()-l.refreshTimer.lastAttempt.getTime()>Math.pow(2,l.refreshTimer.attempts-1)*5e3;if(a.getTime()<Date.now()||s&&Date.now()-l.refreshTimer.startedAt.getTime()>s*1e3)return!0;const f=l.accessToken.expiresInSeconds;return f?a.getTime()-Date.now()-1e3*Math.min(Wr,f*.5)<=0:!1},shouldRetryImportToken:(l,a)=>l.importTokenAttempts<Xt&&(a.data.error.status===Qt||a.data.error.status>=500),unverified:(l,{data:{error:a}})=>a.status===401&&(a.message==="Email is not verified"||a.error==="unverified-user"),hasSession:(l,a)=>{var f;return!!((f=a.data)!=null&&f.session)},hasMfaTicket:(l,a)=>{var f;return!!((f=a.data)!=null&&f.mfa)},isUnauthorizedError:(l,{data:{error:a}})=>a.status===401},services:{signInPassword:(l,{email:a,password:f})=>ce(a)?At(f)?h("/signin/email-password",{email:a,password:f}):Promise.reject({error:wt}):Promise.reject({error:ae}),signInPAT:(l,{pat:a})=>h("/signin/pat",{personalAccessToken:a}),signInIdToken:(l,{provider:a,idToken:f,nonce:v})=>h("/signin/idtoken",{provider:a,idToken:f,...v&&{nonce:v}}),passwordlessSms:(l,{phoneNumber:a,options:f})=>{var v;return sr(a)?(v=l.user)!=null&&v.isAnonymous?(console.warn("Deanonymisation from a phone number is not yet implemented in hasura-auth"),h("/user/deanonymize",{signInMethod:"passwordless",connection:"sms",phoneNumber:a,options:re(e,f)},l.accessToken.value)):h("/signin/passwordless/sms",{phoneNumber:a,options:re(e,f)}):Promise.reject({error:er})},passwordlessSmsOtp:(l,{phoneNumber:a,otp:f})=>sr(a)?h("/signin/passwordless/sms/otp",{phoneNumber:a,otp:f}):Promise.reject({error:er}),signInEmailOTP:(l,{email:a,options:f})=>ce(a)?h("/signin/otp/email",{email:a,options:re(e,f)}):Promise.reject({error:ae}),verifyEmailOTP:(l,{email:a,otp:f})=>ce(a)?h("/signin/otp/email/verify",{email:a,otp:f}):Promise.reject({error:ae}),passwordlessEmail:(l,{email:a,options:f})=>{var v;return ce(a)?(v=l.user)!=null&&v.isAnonymous?h("/user/deanonymize",{signInMethod:"passwordless",connection:"email",email:a,options:re(e,f)},l.accessToken.value):h("/signin/passwordless/email",{email:a,options:re(e,f)}):Promise.reject({error:ae})},signInAnonymous:l=>h("/signin/anonymous"),signInMfaTotp:(l,a)=>{var f;const v=a.ticket||((f=l.mfa)==null?void 0:f.ticket);return v?mn(v)?h("/signin/mfa/totp",{ticket:v,otp:a.otp}):Promise.reject({error:Qr}):Promise.reject({error:Zr})},signInSecurityKeyEmail:async(l,{email:a})=>{if(!ce(a))throw new ye(ae);const f=await h("/signin/webauthn",{email:a});let v;try{v=await nr(f)}catch(y){throw new ye(y)}return h("/signin/webauthn/verify",{email:a,credential:v})},refreshToken:async(l,a)=>{const f=a.type==="TRY_TOKEN"?a.token:l.refreshToken.value;return{session:await h("/token",{refreshToken:f}),error:null}},signInSecurityKey:async()=>{try{const l=await h("/signin/webauthn",{});let a;try{a=await nr(l)}catch(f){throw new ye(f)}return h("/signin/webauthn/verify",{credential:a})}catch(l){throw new ye(l)}},signout:async(l,a)=>{const f=await h("/signout",{refreshToken:l.refreshToken.value,all:!!a.all},a.all?l.accessToken.value:void 0);if(r)try{new BroadcastChannel(r).postMessage({type:"signout"})}catch{}return f},signUpEmailPassword:async(l,{email:a,password:f,options:v,requestOptions:y})=>{var S;return ce(a)?At(f)?(S=l.user)!=null&&S.isAnonymous?h("/user/deanonymize",{signInMethod:"email-password",email:a,password:f,options:re(e,v)},l.accessToken.value,y==null?void 0:y.headers):h("/signup/email-password",{email:a,password:f,options:re(e,v)},null,y==null?void 0:y.headers):Promise.reject({error:wt}):Promise.reject({error:ae})},signUpSecurityKey:async(l,{email:a,options:f})=>{if(!ce(a))return Promise.reject({error:ae});const v=f==null?void 0:f.nickname;v&&delete f.nickname;const y=await h("/signup/webauthn",{email:a,options:f});let S;try{S=await hn(y)}catch(w){throw new ye(w)}return h("/signup/webauthn/verify",{credential:S,options:{redirectTo:f==null?void 0:f.redirectTo,nickname:v}})},importRefreshToken:async l=>{if(l.user&&l.refreshToken.value&&l.accessToken.value&&l.accessToken.expiresAt)return{session:{accessToken:l.accessToken.value,accessTokenExpiresIn:l.accessToken.expiresAt.getTime()-Date.now(),refreshToken:l.refreshToken.value,user:l.user},error:null};let a=null;if(u){const v=Xe("refreshToken")||null;if(v)try{return{session:await h("/token",{refreshToken:v}),error:null}}catch(y){a=y.error}else{const y=Xe("error"),S=Xe("errorDescription");if(y&&S!=="social user already exists")return Promise.reject({session:null,error:{status:oe,error:y,message:S||y}})}}const f=await c(Ue);if(f)try{return{session:await h("/token",{refreshToken:f}),error:null}}catch(v){a=v.error}return a?Promise.reject({error:a,session:null}):{error:null,session:null}}},delays:{RETRY_IMPORT_TOKEN_DELAY:({importTokenAttempts:l})=>Math.pow(2,l-1)*5e3}})},wn=({backendUrl:t,clientUrl:e,interpreter:r})=>ve({schema:{context:{},events:{},services:{}},tsTypes:{},predictableActionArguments:!0,id:"changeEmail",initial:"idle",context:{error:null},states:{idle:{on:{REQUEST:[{cond:"invalidEmail",actions:"saveInvalidEmailError",target:".error"},{target:"requesting"}]},initial:"initial",states:{initial:{},success:{},error:{}}},requesting:{invoke:{src:"requestChange",id:"requestChange",onDone:{target:"idle.success",actions:"reportSuccess"},onError:{actions:["saveRequestError","reportError"],target:"idle.error"}}}}},{actions:{saveInvalidEmailError:I({error:n=>ae}),saveRequestError:I({error:(n,{data:{error:i}})=>i}),reportError:X(n=>({type:"ERROR",error:n.error})),reportSuccess:X("SUCCESS")},guards:{invalidEmail:(n,{email:i})=>!ce(i)},services:{requestChange:async(n,{email:i,options:s})=>(await te(`${t}/user/email/change`,{newEmail:i,options:re(e,s)},r==null?void 0:r.getSnapshot().context.accessToken.value)).data}}),Tn=({backendUrl:t,interpreter:e})=>ve({schema:{context:{},events:{},services:{}},tsTypes:{},predictableActionArguments:!0,id:"changePassword",initial:"idle",context:{error:null},states:{idle:{on:{REQUEST:[{cond:"invalidPassword",actions:"saveInvalidPasswordError",target:".error"},{target:"requesting"}]},initial:"initial",states:{initial:{},success:{},error:{}}},requesting:{invoke:{src:"requestChange",id:"requestChange",onDone:{target:"idle.success",actions:"reportSuccess"},onError:{actions:["saveRequestError","reportError"],target:"idle.error"}}}}},{actions:{saveInvalidPasswordError:I({error:r=>wt}),saveRequestError:I({error:(r,{data:{error:n}})=>n}),reportError:X(r=>({type:"ERROR",error:r.error})),reportSuccess:X("SUCCESS")},guards:{invalidPassword:(r,{password:n})=>!At(n)},services:{requestChange:(r,{password:n,ticket:i})=>te(`${t}/user/password`,{newPassword:n,ticket:i},e==null?void 0:e.getSnapshot().context.accessToken.value)}}),ys=({backendUrl:t,interpreter:e})=>ve({schema:{context:{},events:{}},tsTypes:{},predictableActionArguments:!0,id:"enableMfa",initial:"idle",context:{error:null,imageUrl:null,secret:null},states:{idle:{initial:"initial",on:{GENERATE:"generating"},states:{initial:{},error:{}}},generating:{invoke:{src:"generate",id:"generate",onDone:{target:"generated",actions:["reportGeneratedSuccess","saveGeneration"]},onError:{actions:["saveError","reportGeneratedError"],target:"idle.error"}}},generated:{initial:"idle",states:{idle:{initial:"idle",on:{ACTIVATE:[{cond:"invalidMfaType",actions:"saveInvalidMfaTypeError",target:".error"},{cond:"invalidMfaCode",actions:"saveInvalidMfaCodeError",target:".error"},{target:"activating"}]},states:{idle:{},error:{}}},activating:{invoke:{src:"activate",id:"activate",onDone:{target:"activated",actions:"reportSuccess"},onError:{actions:["saveError","reportError"],target:"idle.error"}}},activated:{type:"final"}}}}},{actions:{saveInvalidMfaTypeError:I({error:r=>Jr}),saveInvalidMfaCodeError:I({error:r=>Xr}),saveError:I({error:(r,{data:{error:n}})=>n}),saveGeneration:I({imageUrl:(r,{data:{imageUrl:n}})=>n,secret:(r,{data:{totpSecret:n}})=>n}),reportError:X((r,n)=>(console.log("REPORT",r,n),{type:"ERROR",error:r.error})),reportSuccess:X("SUCCESS"),reportGeneratedSuccess:X("GENERATED"),reportGeneratedError:X(r=>({type:"GENERATED_ERROR",error:r.error}))},guards:{invalidMfaCode:(r,{code:n})=>!n,invalidMfaType:(r,{activeMfaType:n})=>!n||n!=="totp"},services:{generate:async r=>{const{data:n}=await gn(`${t}/mfa/totp/generate`,e==null?void 0:e.getSnapshot().context.accessToken.value);return n},activate:(r,{code:n,activeMfaType:i})=>te(`${t}/user/mfa`,{code:n,activeMfaType:i},e==null?void 0:e.getSnapshot().context.accessToken.value)}}),Sn=({backendUrl:t,clientUrl:e})=>ve({schema:{context:{},events:{},services:{}},tsTypes:{},predictableActionArguments:!0,id:"changePassword",initial:"idle",context:{error:null},states:{idle:{on:{REQUEST:[{cond:"invalidEmail",actions:"saveInvalidEmailError",target:".error"},{target:"requesting"}]},initial:"initial",states:{initial:{},success:{},error:{}}},requesting:{invoke:{src:"requestChange",id:"requestChange",onDone:{target:"idle.success",actions:"reportSuccess"},onError:{actions:["saveRequestError","reportError"],target:"idle.error"}}}}},{actions:{saveInvalidEmailError:I({error:r=>ae}),saveRequestError:I({error:(r,{data:{error:n}})=>n}),reportError:X(r=>({type:"ERROR",error:r.error})),reportSuccess:X("SUCCESS")},guards:{invalidEmail:(r,{email:n})=>!ce(n)},services:{requestChange:(r,{email:n,options:i})=>te(`${t}/user/password/reset`,{email:n,options:re(e,i)})}}),bn=({backendUrl:t,clientUrl:e})=>ve({schema:{context:{},events:{},services:{}},tsTypes:{},predictableActionArguments:!0,id:"sendVerificationEmail",initial:"idle",context:{error:null},states:{idle:{on:{REQUEST:[{cond:"invalidEmail",actions:"saveInvalidEmailError",target:".error"},{target:"requesting"}]},initial:"initial",states:{initial:{},success:{},error:{}}},requesting:{invoke:{src:"request",id:"request",onDone:{target:"idle.success",actions:"reportSuccess"},onError:{actions:["saveRequestError","reportError"],target:"idle.error"}}}}},{actions:{saveInvalidEmailError:I({error:r=>ae}),saveRequestError:I({error:(r,{data:{error:n}})=>n}),reportError:X(r=>({type:"ERROR",error:r.error})),reportSuccess:X("SUCCESS")},guards:{invalidEmail:(r,{email:n})=>!ce(n)},services:{request:async(r,{email:n,options:i})=>(await te(`${t}/user/email/send-verification-email`,{email:n,options:re(e,i)})).data}});class or{constructor({clientStorageType:e="web",autoSignIn:r=!0,autoRefreshToken:n=!0,start:i=!0,backendUrl:s,clientUrl:o,broadcastKey:u,devTools:c,...d}){var h;if(this._started=!1,this._subscriptionsQueue=new Set,this._subscriptions=new Set,this.backendUrl=s,this.clientUrl=o,this._machine=En({...d,backendUrl:s,clientUrl:o,broadcastKey:u,clientStorageType:e,autoSignIn:r,autoRefreshToken:n}),i&&this.start({devTools:c}),typeof window!="undefined"&&u)try{this._channel=new BroadcastChannel(u),r&&((h=this._channel)==null||h.addEventListener("message",l=>{var a;const{type:f,payload:v}=l.data;if(f==="broadcast_token"){const y=(a=this.interpreter)==null?void 0:a.getSnapshot().context.refreshToken.value;this.interpreter&&v.token&&v.token!==y&&this.interpreter.send("TRY_TOKEN",{token:v.token})}})),this._channel.addEventListener("message",l=>{const{type:a}=l.data;a==="signout"&&this.interpreter&&this.interpreter.send("SIGNOUT")})}catch{}}start({devTools:e=!1,initialSession:r,interpreter:n}={}){var i,s;const o={...this.machine.context,accessToken:{...this.machine.context.accessToken},refreshToken:{...this.machine.context.refreshToken}};r&&(o.user=r.user,o.refreshToken.value=(i=r.refreshToken)!=null?i:null,o.accessToken.value=(s=r.accessToken)!=null?s:null,o.accessToken.expiresAt=new Date(Date.now()+r.accessTokenExpiresIn*1e3));const u=this.machine.withContext(o);this._interpreter||(this._interpreter=n||xe(u,{devTools:e})),(!this._started||typeof window=="undefined")&&(this._interpreter.initialized&&(this._interpreter.stop(),this._subscriptions.forEach(c=>c())),this._interpreter.start(u.initialState),this._subscriptionsQueue.forEach(c=>c(this))),this._started=!0}get machine(){return this._machine}get interpreter(){return this._interpreter}get started(){return this._started}subscribe(e){if(this.started){const r=e(this);return this._subscriptions.add(r),r}else return this._subscriptionsQueue.add(e),()=>{console.log("onTokenChanged was added before the interpreter started. Cannot unsubscribe listener.")}}}class kn extends or{constructor({...e}){super({...e,autoSignIn:Je()&&e.autoSignIn,autoRefreshToken:Je()&&e.autoRefreshToken,clientStorageType:"cookie"})}}const gs=kn,An=async({backendUrl:t,interpreter:e},r)=>{try{const{data:n}=await te(`${t}/user/webauthn/add`,{},e==null?void 0:e.getSnapshot().context.accessToken.value);let i;try{i=await hn(n)}catch(o){throw new ye(o)}const{data:s}=await te(`${t}/user/webauthn/verify`,{credential:i,nickname:r},e==null?void 0:e.getSnapshot().context.accessToken.value);return{key:s,isError:!1,error:null,isSuccess:!0}}catch(n){const{error:i}=n;return{isError:!0,error:i,isSuccess:!1}}},On=async(t,e,r)=>new Promise(n=>{t.send("REQUEST",{email:e,options:r}),t.onTransition(i=>{i.matches({idle:"error"})?n({error:i.context.error,isError:!0,needsEmailVerification:!1}):i.matches({idle:"success"})&&n({error:null,isError:!1,needsEmailVerification:!0})})}),In=async(t,e,r)=>new Promise(n=>{t.send("REQUEST",{password:e,ticket:r}),t.onTransition(i=>{i.matches({idle:"error"})?n({error:i.context.error,isError:!0,isSuccess:!1}):i.matches({idle:"success"})&&n({error:null,isError:!1,isSuccess:!0})})}),ms=t=>new Promise(e=>{t.send("GENERATE"),t.onTransition(r=>{r.matches("generated")?e({error:null,isError:!1,isGenerated:!0,qrCodeDataUrl:r.context.imageUrl||""}):r.matches({idle:"error"})&&e({error:r.context.error||null,isError:!0,isGenerated:!1,qrCodeDataUrl:""})})}),Es=(t,e)=>new Promise(r=>{t.send("ACTIVATE",{activeMfaType:"totp",code:e}),t.onTransition(n=>{n.matches({generated:"activated"})?r({error:null,isActivated:!0,isError:!1}):n.matches({generated:{idle:"error"}})&&r({error:n.context.error,isActivated:!1,isError:!0})})}),Rn=async(t,e,r)=>new Promise(n=>{t.send("REQUEST",{email:e,options:r}),t.onTransition(i=>{i.matches({idle:"error"})?n({error:i.context.error,isError:!0,isSent:!1}):i.matches({idle:"success"})&&n({error:null,isError:!1,isSent:!0})})}),xn=(t,e,r)=>new Promise(n=>{t.send("REQUEST",{email:e,options:r}),t.onTransition(i=>{i.matches({idle:"error"})?n({error:i.context.error,isError:!0,isSent:!1}):i.matches({idle:"success"})&&n({error:null,isError:!1,isSent:!0})})}),_n=t=>new Promise(e=>{const{changed:r}=t.send("SIGNIN_ANONYMOUS");r||e({isSuccess:!1,isError:!0,error:ee,user:null,accessToken:null,refreshToken:null}),t.onTransition(n=>{n.matches({authentication:"signedIn"})&&e({isSuccess:!0,isError:!1,error:null,user:n.context.user,accessToken:n.context.accessToken.value,refreshToken:n.context.refreshToken.value}),n.matches({authentication:{signedOut:"failed"}})&&e({isSuccess:!1,isError:!0,error:n.context.errors.authentication||null,user:null,accessToken:null,refreshToken:null})})}),Pn=(t,e,r)=>new Promise(n=>{const{changed:i,context:s}=t.send("SIGNIN_PASSWORD",{email:e,password:r});if(!i)return n({accessToken:s.accessToken.value,refreshToken:s.refreshToken.value,error:ee,isError:!0,isSuccess:!1,needsEmailVerification:!1,needsMfaOtp:!1,mfa:null,user:s.user});t.onTransition(o=>{o.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})?n({accessToken:null,refreshToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,needsMfaOtp:!1,mfa:null,user:null}):o.matches({authentication:{signedOut:"needsMfa"}})?n({accessToken:null,refreshToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!1,needsMfaOtp:!0,mfa:o.context.mfa,user:null}):o.matches({authentication:{signedOut:"failed"}})?n({accessToken:null,refreshToken:null,error:o.context.errors.authentication||null,isError:!0,isSuccess:!1,needsEmailVerification:!1,needsMfaOtp:!1,mfa:null,user:null}):o.matches({authentication:"signedIn"})&&n({accessToken:o.context.accessToken.value,refreshToken:o.context.refreshToken.value,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,needsMfaOtp:!1,mfa:null,user:o.context.user})})}),ar=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send("PASSWORDLESS_EMAIL",{email:e,options:r});if(!i)return n({error:ee,isError:!0,isSuccess:!1});t.onTransition(s=>{s.matches("registration.incomplete.failed")?n({error:s.context.errors.registration||null,isError:!0,isSuccess:!1}):s.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})&&n({error:null,isError:!1,isSuccess:!0})})}),Nn=(t,e)=>new Promise(r=>{const{changed:n,context:i}=t.send({type:"SIGNIN_SECURITY_KEY_EMAIL",email:e});if(!n)return r({accessToken:i.accessToken.value,refreshToken:i.refreshToken.value,error:ee,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:i.user});t.onTransition(s=>{s.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})?r({accessToken:null,refreshToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,user:null}):s.matches({authentication:{signedOut:"failed"}})?r({accessToken:null,refreshToken:null,error:s.context.errors.authentication||null,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:null}):s.matches({authentication:"signedIn"})&&r({accessToken:s.context.accessToken.value,refreshToken:s.context.refreshToken.value,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,user:s.context.user})})}),Un=(t,e)=>new Promise(async r=>{var n,i;const s=(n=t.interpreter)==null?void 0:n.getSnapshot(),o=s==null?void 0:s.context.accessToken.value,{data:u}=await te(`${t.backendUrl}/elevate/webauthn`,{email:e},o);let c;try{c=await nr(u)}catch(d){throw new ye(d)}try{const{data:{session:d},error:h}=await te(`${t.backendUrl}/elevate/webauthn/verify`,{email:e,credential:c},o);d&&!h&&((i=t.interpreter)==null||i.send({type:"SESSION_UPDATE",data:{session:d}}),r({error:null,isError:!1,isSuccess:!0,elevated:!0}))}catch(d){const{error:h}=d;r({error:h,isError:!0,isSuccess:!1,elevated:!1})}}),Dn=(t,e,r)=>new Promise(n=>{const{changed:i,context:s}=t.send("SIGNIN_MFA_TOTP",{otp:e,ticket:r});if(!i)return n({accessToken:s.accessToken.value,refreshToken:s.refreshToken.value,error:ee,isError:!0,isSuccess:!1,user:s.user});t.onTransition(o=>{o.matches({authentication:{signedOut:"failed"}})?n({accessToken:null,refreshToken:null,error:o.context.errors.authentication||null,isError:!0,isSuccess:!1,user:null}):o.matches({authentication:"signedIn"})&&n({accessToken:o.context.accessToken.value,refreshToken:o.context.refreshToken.value,error:null,isError:!1,isSuccess:!0,user:o.context.user})})}),Cn=(t,e)=>new Promise(r=>{const{changed:n}=t.send("SIGNIN_PAT",{pat:e});n||r({isSuccess:!1,isError:!0,error:ee,user:null,accessToken:null,refreshToken:null}),t.onTransition(i=>{if(i.matches({authentication:{signedOut:"failed"}}))return r({accessToken:null,refreshToken:null,user:null,error:i.context.errors.authentication||null,isError:!0,isSuccess:!1});if(i.matches({authentication:"signedIn"}))return r({accessToken:i.context.accessToken.value,refreshToken:i.context.refreshToken.value,user:i.context.user,error:null,isError:!1,isSuccess:!0})})}),cr=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send("PASSWORDLESS_SMS",{phoneNumber:e,options:r});if(!i)return n({error:ee,isError:!0,isSuccess:!1,needsOtp:!1});t.onTransition(s=>{s.matches("registration.incomplete.needsOtp")?n({error:null,isError:!1,isSuccess:!1,needsOtp:!0}):s.matches("registration.incomplete.failed")&&n({error:s.context.errors.authentication||null,isError:!0,isSuccess:!1,needsOtp:!1})})}),Mn=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send({type:"PASSWORDLESS_SMS_OTP",phoneNumber:e,otp:r});if(!i)return n({error:ee,isError:!0,isSuccess:!1,user:null,accessToken:null,refreshToken:null});t.onTransition(s=>{s.matches({authentication:"signedIn"})?n({error:null,isError:!1,isSuccess:!0,user:s.context.user,accessToken:s.context.accessToken.value,refreshToken:s.context.refreshToken.value}):s.matches({registration:{incomplete:"failed"}})&&n({error:s.context.errors.authentication||null,isError:!0,isSuccess:!1,user:null,accessToken:null,refreshToken:null})})}),Ln=async(t,e)=>new Promise(r=>{const{event:n}=t.send("SIGNOUT",{all:e});if(n.type!=="SIGNED_OUT")return r({isSuccess:!1,isError:!0,error:rn});t.onTransition(i=>{i.matches({authentication:{signedOut:"success"}})?r({isSuccess:!0,isError:!1,error:null}):i.matches("authentication.signedOut.failed")&&r({isSuccess:!1,isError:!0,error:i.context.errors.signout||null})})}),ur=(t,e,r,n,i)=>new Promise(s=>{const{changed:o,context:u}=t.send("SIGNUP_EMAIL_PASSWORD",{email:e,password:r,options:n,requestOptions:i});if(!o)return s({error:ee,accessToken:u.accessToken.value,refreshToken:u.refreshToken.value,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:u.user});t.onTransition(c=>{c.matches("registration.incomplete.failed")?s({accessToken:null,refreshToken:null,error:c.context.errors.registration||null,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:null}):c.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})?s({accessToken:null,refreshToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,user:null}):c.matches({authentication:"signedIn",registration:"complete"})&&s({accessToken:c.context.accessToken.value,refreshToken:c.context.refreshToken.value,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,user:c.context.user})})}),jn=(t,e,r)=>new Promise(n=>{const{changed:i,context:s}=t.send("SIGNUP_SECURITY_KEY",{email:e,options:r});if(!i)return n({error:ee,accessToken:s.accessToken.value,refreshToken:s.refreshToken.value,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:s.user});t.onTransition(o=>{o.matches("registration.incomplete.failed")?n({accessToken:null,refreshToken:null,error:o.context.errors.registration||null,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:null}):o.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})?n({accessToken:null,refreshToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,user:null}):o.matches({authentication:"signedIn",registration:"complete"})&&n({accessToken:o.context.accessToken.value,refreshToken:o.context.refreshToken.value,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,user:o.context.user})})}),$n=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send("SIGNIN_EMAIL_OTP",{email:e,options:r});if(!i)return n({error:ee,isError:!0,isSuccess:!1,needsOtp:!1});t.onTransition(s=>{s.matches("registration.incomplete.needsOtp")?n({error:null,isError:!1,isSuccess:!0,needsOtp:!0}):s.matches("registration.incomplete.failed")&&n({error:s.context.errors.authentication||null,isError:!0,isSuccess:!1,needsOtp:!1})})}),Fn=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send({type:"VERIFY_EMAIL_OTP",email:e,otp:r});if(!i)return n({error:ee,isError:!0,isSuccess:!1,user:null,accessToken:null,refreshToken:null});t.onTransition(s=>{s.matches({authentication:"signedIn"})?n({error:null,isError:!1,isSuccess:!0,user:s.context.user,accessToken:s.context.accessToken.value,refreshToken:s.context.refreshToken.value}):s.matches({registration:{incomplete:"failed"}})&&n({error:s.context.errors.authentication||null,isError:!0,isSuccess:!1,user:null,accessToken:null,refreshToken:null})})}),Hn=(t,{provider:e,idToken:r,nonce:n})=>new Promise(i=>{const{changed:s}=t.send("SIGNIN_ID_TOKEN",{provider:e,idToken:r,...n&&{nonce:n}});s||i({isSuccess:!1,isError:!0,error:ee,user:null,accessToken:null,refreshToken:null}),t.onTransition(o=>{if(o.matches({authentication:{signedOut:"failed"}}))return i({accessToken:null,refreshToken:null,user:null,error:o.context.errors.authentication||null,isError:!0,isSuccess:!1});if(o.matches({authentication:"signedIn"}))return i({accessToken:o.context.accessToken.value,refreshToken:o.context.refreshToken.value,user:o.context.user,error:null,isError:!1,isSuccess:!0})})}),qn=async({backendUrl:t,interpreter:e},{provider:r,idToken:n,nonce:i})=>{try{return await te(`${t}/link/idtoken`,{provider:r,idToken:n,...i&&{nonce:i}},e==null?void 0:e.getSnapshot().context.accessToken.value),{isError:!1,error:null,isSuccess:!0}}catch(s){const{error:o}=s;return{isError:!0,error:o,isSuccess:!1}}},Vn=t=>new Promise(e=>{const{changed:r,context:n}=t.send({type:"SIGNIN_SECURITY_KEY"});if(!r)return e({accessToken:n.accessToken.value,refreshToken:n.refreshToken.value,error:ee,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:n.user});t.onTransition(i=>{i.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})?e({accessToken:null,refreshToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,user:null}):i.matches({authentication:{signedOut:"failed"}})?e({accessToken:null,refreshToken:null,error:i.context.errors.authentication||null,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:null}):i.matches({authentication:"signedIn"})&&e({accessToken:i.context.accessToken.value,refreshToken:i.context.refreshToken.value,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,user:i.context.user})})}),ws=async({backendUrl:t,interpreter:e},{expiresAt:r,metadata:n})=>{try{const{data:i}=await te(`${t}/pat`,{expiresAt:r.toISOString(),metadata:n},e==null?void 0:e.getSnapshot().context.accessToken.value);return{data:i?{id:i.id||null,personalAccessToken:i.personalAccessToken||null}:null,isError:!1,error:null,isSuccess:!0}}catch(i){const{error:s}=i;return{isError:!0,error:s,isSuccess:!1,data:null}}};class Kn{constructor({url:e,broadcastKey:r,autoRefreshToken:n=!0,autoSignIn:i=!0,clientStorage:s,clientStorageType:o,refreshIntervalTime:u,start:c=!0}){var d;this.url=e,this._client=new or({backendUrl:e,clientUrl:typeof window!="undefined"&&((d=window.location)==null?void 0:d.origin)||"",broadcastKey:r,autoRefreshToken:n,autoSignIn:i,start:c,clientStorage:s,clientStorageType:o,refreshIntervalTime:u})}async signUp(e){const r=await this.waitUntilReady(),{email:n,options:i}=e;return"securityKey"in e?ie(await jn(r,n,i)):ie(await ur(r,n,e.password,i))}async connectProvider(e){const r=(await this.waitUntilReady()).getSnapshot().context.accessToken.value,{provider:n,options:i}=e,s=kt(`${this._client.backendUrl}/signin/provider/${n}`,re(this._client.clientUrl,{...i,connect:r}));return Je()&&(window.location.href=s),{providerUrl:s}}async signInIdToken(e){const r=await this.waitUntilReady(),n=await Hn(r,e);return{...ie(n),mfa:null}}async linkIdToken(e){return qn(this._client,e)}async signIn(e){const r=await this.waitUntilReady();if(!e){const n=await _n(r);return{...ie(n),mfa:null}}if("provider"in e){const{provider:n,options:i}=e,s=kt(`${this._client.backendUrl}/signin/provider/${n}`,re(this._client.clientUrl,i));return Je()&&(window.location.href=s),{providerUrl:s,provider:n,session:null,mfa:null,error:null}}if("email"in e&&"password"in e){const n=await Pn(r,e.email,e.password);return n.needsEmailVerification?{session:null,mfa:null,error:nn}:n.needsMfaOtp?{session:null,mfa:n.mfa,error:null}:{...ie(n),mfa:null}}if("email"in e&&"securityKey"in e){if(e.securityKey!==!0)throw Error("securityKey must be true");const n=await Nn(r,e.email);return{...ie(n),mfa:null}}if("email"in e){const{email:n,options:i}=e,{error:s}=await ar(r,n,i);return{session:null,mfa:null,error:s}}if("phoneNumber"in e&&"otp"in e){const n=await Mn(r,e.phoneNumber,e.otp);return{...ie(n),mfa:null}}if("phoneNumber"in e){const{error:n}=await cr(r,e.phoneNumber,e.options);return{error:n,mfa:null,session:null}}if("otp"in e){const n=await Dn(r,e.otp,e.ticket);return{...ie(n),mfa:null}}return{error:on,mfa:null,session:null}}async signInPAT(e){const r=await this.waitUntilReady(),n=await Cn(r,e);return ie(n)}async signInEmailOTP(e,r){const n=await this.waitUntilReady(),{error:i}=await $n(n,e,r);return{error:i,session:null,mfa:null}}async verifyEmailOTP(e,r){const n=await this.waitUntilReady(),i=await Fn(n,e,r);return{...ie(i),mfa:null}}async signInSecurityKey(){const e=await this.waitUntilReady(),r=await Vn(e);return{...ie(r),mfa:null}}async signOut(e){const r=await this.waitUntilReady(),{error:n}=await Ln(r,e==null?void 0:e.all);return{error:n}}async resetPassword({email:e,options:r}){const n=xe(Sn(this._client)).start(),{error:i}=await Rn(n,e,r);return{error:i}}async changePassword({newPassword:e,ticket:r}){const n=xe(Tn(this._client)).start(),{error:i}=await In(n,e,r);return{error:i}}async sendVerificationEmail({email:e,options:r}){const n=xe(bn(this._client)).start(),{error:i}=await xn(n,e,r);return{error:i}}async changeEmail({newEmail:e,options:r}){const n=xe(wn(this._client)).start(),{error:i}=await On(n,e,r);return{error:i}}async deanonymize(e){const r=await this.waitUntilReady();if(e.signInMethod==="passwordless"){if(e.connection==="email"){const{error:n}=await ar(r,e.email,e.options);return{error:n}}if(e.connection==="sms"){const{error:n}=await cr(r,e.phoneNumber,e.options);return{error:n}}}if(e.signInMethod==="email-password"){const{error:n}=await ur(r,e.email,e.password,e.options);return{error:n}}throw Error("Unknown deanonymization method")}async addSecurityKey(e){const{error:r,key:n}=await An(this._client,e);return{error:r,key:n}}async elevateEmailSecurityKey(e){if(!e)throw Error("A user email is required");return{...await Un(this._client,e),mfa:null}}async createPAT(e,r){return ws(this._client,{expiresAt:e,metadata:r})}onTokenChanged(e){return this._client.subscribe(()=>{var r;const n=(r=this._client.interpreter)==null?void 0:r.onTransition(({event:i,context:s})=>{i.type==="TOKEN_CHANGED"&&e(We(s))});return()=>n==null?void 0:n.stop()})}onAuthStateChanged(e){return this._client.subscribe(()=>{var r;const n=(r=this._client.interpreter)==null?void 0:r.onTransition(({event:i,context:s})=>{(i.type==="SIGNED_IN"||i.type==="SIGNED_OUT")&&e(i.type,We(s))});return()=>n==null?void 0:n.stop()})}isAuthenticated(){var e;return!!((e=this._client.interpreter)!=null&&e.getSnapshot().matches({authentication:"signedIn"}))}async isAuthenticatedAsync(){return(await this.waitUntilReady()).getSnapshot().matches({authentication:"signedIn"})}getAuthenticationStatus(){var e;const r=((e=this.client.interpreter)==null?void 0:e.getSnapshot().context.importTokenAttempts)||0;return this.isReady()?{isAuthenticated:this.isAuthenticated(),isLoading:!1,connectionAttempts:r}:{isAuthenticated:!1,isLoading:!0,connectionAttempts:r}}getAccessToken(){var e,r;return(r=(e=this._client.interpreter)==null?void 0:e.getSnapshot().context.accessToken.value)!=null?r:void 0}getDecodedAccessToken(){const e=this.getAccessToken();return e?pr(e):null}getHasuraClaims(){var e;return((e=this.getDecodedAccessToken())==null?void 0:e["https://hasura.io/jwt/claims"])||null}getHasuraClaim(e){var r;return((r=this.getHasuraClaims())==null?void 0:r[e.startsWith("x-hasura-")?e:`x-hasura-${e}`])||null}async refreshSession(e){try{const r=await this.waitUntilReady();return new Promise(n=>{const i=e||r.getSnapshot().context.refreshToken.value;if(!i)return n({session:null,error:en});const{changed:s}=r.send("TRY_TOKEN",{token:i});if(!s)return n({session:null,error:tn});r.onTransition(o=>{o.matches({token:{idle:"error"}})?n({session:null,error:sn}):o.event.type==="TOKEN_CHANGED"&&n({session:We(o.context),error:null})})})}catch(r){return{session:null,error:r.message}}}getSession(){var e,r;return We((r=(e=this._client.interpreter)==null?void 0:e.getSnapshot())==null?void 0:r.context)}async initWithSession({session:e}){this.client.start({initialSession:e}),await this.waitUntilReady()}getUser(){var e,r,n;return((n=(r=(e=this._client.interpreter)==null?void 0:e.getSnapshot())==null?void 0:r.context)==null?void 0:n.user)||null}waitUntilReady(){const e=this._client.interpreter;if(!e)throw Error("Auth interpreter not set");return e.getSnapshot().hasTag("loading")?new Promise((r,n)=>{let i=setTimeout(()=>n("The state machine is not yet ready after 15 seconds."),15e3);e.onTransition(s=>{if(!s.hasTag("loading"))return clearTimeout(i),r(e)})}):Promise.resolve(e)}isReady(){var e,r;return!((r=(e=this._client.interpreter)==null?void 0:e.getSnapshot())!=null&&r.hasTag("loading"))}get client(){return this._client}}var Ts=typeof self=="object"?self.FormData:window.FormData;const lr=Yt(Ts);let Gn=globalThis.fetch;const dr=async(t,e,{accessToken:r,name:n,fileId:i,bucketId:s,adminSecret:o,onUploadProgress:u,headers:c={}}={})=>{var d;const h={...c};s&&e.append("bucket-id",s),o&&(h["x-hasura-admin-secret"]=o),r&&(h.Authorization=`Bearer ${r}`);const l=`${t}/files`;if(typeof XMLHttpRequest=="undefined")try{e instanceof lr&&(Gn=Jt().fetch);const a=await Gn(l,{method:"POST",headers:h,body:e}),f=await a.json();return a.ok?{fileMetadata:f,error:null}:{error:{status:a.status,message:((d=f==null?void 0:f.error)==null?void 0:d.message)||a.statusText,error:a.statusText},fileMetadata:null}}catch(a){return{error:{status:0,message:a.message,error:a.message},fileMetadata:null}}return new Promise(a=>{let f=new XMLHttpRequest;f.responseType="json",f.onload=()=>{var v,y,S,w,T,b,O,M;if(f.status<200||f.status>=300){const D={error:(T=(w=(y=(v=f.response)==null?void 0:v.error)==null?void 0:y.message)!=null?w:(S=f.response)==null?void 0:S.error)!=null?T:f.response,message:(M=(O=(b=f.response)==null?void 0:b.error)==null?void 0:O.message)!=null?M:f.response,status:f.status};return a({fileMetadata:null,error:D})}return a({fileMetadata:f.response,error:null})},f.onerror=()=>{const v={error:f.statusText,message:f.statusText,status:f.status};return a({fileMetadata:null,error:v})},u&&f.upload.addEventListener("progress",u,!1),f.open("POST",l,!0),Object.entries(h).forEach(([v,y])=>{f.setRequestHeader(v,y)}),f.send(e)})};function Ot(t,e){if(!e||Object.keys(e).length===0)return t;const r=new URL(t),n=Object.entries(e).reduce((i,[s,o])=>({...i,[s.charAt(0)]:o}),{});return Object.entries(n).forEach(([i,s])=>{s&&r.searchParams.set(i,s)}),r.toString()}let Qe;typeof Qe=="undefined"&&(Qe=Jt().fetch);class Bn{constructor({url:e}){this.headers={},this.url=e}async uploadFormData({formData:e,bucketId:r,headers:n}){const{error:i,fileMetadata:s}=await dr(this.url,e,{bucketId:r,headers:{...this.headers,...n},accessToken:this.accessToken,adminSecret:this.adminSecret});return i?{fileMetadata:null,error:i}:s&&!("processedFiles"in s)?{fileMetadata:{processedFiles:[s]},error:null}:{fileMetadata:s,error:null}}async uploadFile({file:e,bucketId:r,id:n,name:i,headers:s}){const o=typeof window=="undefined"?new lr:new FormData;o.append("file[]",e),o.append("metadata[]",JSON.stringify({id:n,name:i}));const{error:u,fileMetadata:c}=await dr(this.url,o,{accessToken:this.accessToken,adminSecret:this.adminSecret,bucketId:r,fileId:n,name:i,headers:{...this.headers,...s}});return u?{fileMetadata:null,error:u}:c&&"processedFiles"in c?{fileMetadata:c.processedFiles[0],error:null}:{fileMetadata:c,error:null}}async downloadFile(e){try{const{fileId:r,headers:n,...i}=e,s=Ot(`${this.url}/files/${r}`,i),o=await Qe(s,{method:"GET",headers:{...this.generateAuthHeaders(),...this.headers,...n}});if(!o.ok)throw new Error(await o.text());return{file:await o.blob(),error:null}}catch(r){return{file:null,error:r}}}async getPresignedUrl(e){try{const{fileId:r,headers:n}=e,i=await Qe(`${this.url}/files/${r}/presignedurl`,{method:"GET",headers:{...this.generateAuthHeaders(),...this.headers,...n}});if(!i.ok)throw new Error(await i.text());return{presignedUrl:await i.json(),error:null}}catch(r){return{presignedUrl:null,error:r}}}async delete(e){try{const{fileId:r,headers:n}=e,i=await Qe(`${this.url}/files/${r}`,{method:"DELETE",headers:{...this.generateAuthHeaders(),...this.headers,...n}});if(!i.ok)throw new Error(await i.text());return{error:null}}catch(r){return{error:r}}}setAccessToken(e){return this.accessToken=e,this}setAdminSecret(e){return this.adminSecret=e,this}getHeaders(){return this.headers}setHeaders(e){return e?(this.headers={...this.headers,...e},this):this}unsetHeaders(){const e=this.headers["x-hasura-role"];return this.headers=e?{"x-hasura-role":e}:{},this}generateAuthHeaders(){if(!(!this.adminSecret&&!this.accessToken))return this.adminSecret?{"x-hasura-admin-secret":this.adminSecret}:{Authorization:`Bearer ${this.accessToken}`}}}class zn{constructor({url:e,adminSecret:r}){this.url=e,this.api=new Bn({url:e}),this.setAdminSecret(r)}async upload(e){return"file"in e?this.api.uploadFile(e):this.api.uploadFormData(e)}getPublicUrl(e){const{fileId:r,...n}=e;return Ot(`${this.url}/files/${r}`,n)}async getPresignedUrl(e){const{fileId:r,headers:n,...i}=e,{presignedUrl:s,error:o}=await this.api.getPresignedUrl(e);if(o)return{presignedUrl:null,error:o};if(!s)return{presignedUrl:null,error:new Error("Invalid file id")};const u=Ot(s.url,i);return{presignedUrl:{...s,url:u},error:null}}async download(e){const{file:r,error:n}=await this.api.downloadFile(e);return n?{file:null,error:n}:r?{file:r,error:null}:{file:null,error:new Error("File does not exist")}}async delete(e){const{error:r}=await this.api.delete(e);return r?{error:r}:{error:null}}setAccessToken(e){return this.api.setAccessToken(e),this}setAdminSecret(e){return this.api.setAdminSecret(e),this}getHeaders(){return this.api.getHeaders()}setHeaders(e){return this.api.setHeaders(e),this}unsetHeaders(){return this.api.unsetHeaders(),this}}let hr;typeof hr=="undefined"&&(hr=lr);const It={progress:null,loaded:0,error:null,bucketId:void 0,file:void 0,id:void 0},Yn=()=>ve({predictableActionArguments:!0,schema:{context:{},events:{}},tsTypes:{},context:{...It},initial:"idle",on:{DESTROY:{actions:"sendDestroy",target:"stopped"}},states:{idle:{on:{ADD:{actions:"addFile"},UPLOAD:{cond:"hasFile",target:"uploading"}}},uploading:{entry:"resetProgress",on:{UPLOAD_PROGRESS:{actions:["incrementProgress","sendProgress"]},UPLOAD_DONE:"uploaded",UPLOAD_ERROR:"error",CANCEL:"idle"},invoke:{src:"uploadFile"}},uploaded:{entry:["setFileMetadata","sendDone"],on:{ADD:{actions:"addFile",target:"idle"},UPLOAD:{actions:"resetContext",target:"uploading"}}},error:{entry:["setError","sendError"],on:{ADD:{actions:"addFile",target:"idle"},UPLOAD:{actions:"resetContext",target:"uploading"}}},stopped:{type:"final"}}},{guards:{hasFile:(t,e)=>!!t.file||!!e.file},actions:{incrementProgress:I({loaded:(t,{loaded:e})=>e,progress:(t,{progress:e})=>e}),setFileMetadata:I({id:(t,{id:e})=>e,bucketId:(t,{bucketId:e})=>e,progress:t=>100}),setError:I({error:(t,{error:e})=>e}),sendProgress:()=>{},sendError:()=>{},sendDestroy:()=>{},sendDone:()=>{},resetProgress:I({progress:t=>null,loaded:t=>0}),resetContext:I(t=>It),addFile:I({file:(t,{file:e})=>e,bucketId:(t,{bucketId:e})=>e,id:(t,{id:e})=>e})},services:{uploadFile:(t,e)=>r=>{const n=e.file||t.file,i=new hr;i.append("file[]",n);let s=0;return dr(e.url,i,{fileId:e.id||t.id,bucketId:e.bucketId||t.bucketId,accessToken:e.accessToken,adminSecret:e.adminSecret,name:e.name||n.name,onUploadProgress:o=>{const u=o.total?Math.round(o.loaded*n.size/o.total):0,c=u-s;s=u,r({type:"UPLOAD_PROGRESS",progress:o.total?Math.round(u*100/o.total):0,loaded:u,additions:c})}}).then(({fileMetadata:o,error:u})=>{if(u&&r({type:"UPLOAD_ERROR",error:u}),o&&!("processedFiles"in o)){const{id:c,bucketId:d}=o;r({type:"UPLOAD_DONE",id:c,bucketId:d})}if(o&&"processedFiles"in o){const{id:c,bucketId:d}=o.processedFiles[0];r({type:"UPLOAD_DONE",id:c,bucketId:d})}}),()=>{}}}}),{pure:fr,sendParent:Rt}=Di,Ss=()=>ve({id:"files-list",schema:{context:{},events:{}},tsTypes:{},predictableActionArguments:!0,context:{progress:null,files:[],loaded:0,total:0},initial:"idle",on:{UPLOAD:{cond:"hasFileToDownload",actions:"addItem",target:"uploading"},ADD:{actions:"addItem"},REMOVE:{actions:"removeItem"}},states:{idle:{entry:["resetProgress","resetLoaded","resetTotal"],on:{CLEAR:{actions:"clearList",target:"idle"}}},uploading:{entry:["upload","startProgress","resetLoaded","resetTotal"],on:{UPLOAD_PROGRESS:{actions:["incrementProgress"]},UPLOAD_DONE:[{cond:"isAllUploaded",target:"uploaded"},{cond:"isAllUploadedOrError",target:"error"}],UPLOAD_ERROR:[{cond:"isAllUploaded",target:"uploaded"},{cond:"isAllUploadedOrError",target:"error"}],CANCEL:{actions:"cancel",target:"idle"}}},uploaded:{entry:"setUploaded",on:{CLEAR:{actions:"clearList",target:"idle"}}},error:{on:{CLEAR:{actions:"clearList",target:"idle"}}}}},{guards:{hasFileToDownload:(t,e)=>t.files.some(r=>r.getSnapshot().matches("idle"))||!!e.files,isAllUploaded:t=>t.files.every(e=>{var r;return(r=e.getSnapshot())==null?void 0:r.matches("uploaded")}),isAllUploadedOrError:t=>t.files.every(e=>{const r=e.getSnapshot();return(r==null?void 0:r.matches("error"))||(r==null?void 0:r.matches("uploaded"))})},actions:{incrementProgress:I((t,e)=>{const r=t.loaded+e.additions,n=Math.round(r*100/t.total);return{...t,loaded:r,progress:n}}),setUploaded:I({progress:t=>100,loaded:({files:t})=>t.map(e=>e.getSnapshot()).filter(e=>e.matches("uploaded")).reduce((e,r)=>{var n;return e+((n=r.context.file)==null?void 0:n.size)},0)}),resetTotal:I({total:({files:t})=>t.map(e=>e.getSnapshot()).filter(e=>!e.matches("uploaded")).reduce((e,r)=>{var n;return e+((n=r.context.file)==null?void 0:n.size)},0)}),resetLoaded:I({loaded:t=>0}),startProgress:I({progress:t=>0}),resetProgress:I({progress:t=>null}),addItem:I((t,{files:e,bucketId:r})=>{const n=e?Array.isArray(e)?e:"item"in e?Array.from(e):[e]:[],i=t.total+n.reduce((o,u)=>o+u.size,0),s=Math.round(t.loaded*100/i);return{files:[...t.files,...n.map(o=>Qi(Yn().withConfig({actions:{sendProgress:Rt((u,{additions:c})=>({type:"UPLOAD_PROGRESS",additions:c})),sendDone:Rt("UPLOAD_DONE"),sendError:Rt("UPLOAD_ERROR"),sendDestroy:Rt("REMOVE")}}).withContext({...It,file:o,bucketId:r}),{sync:!0}))],total:i,loaded:t.loaded,progress:s}}),removeItem:I({files:t=>t.files.filter(e=>{var r,n;const i=(r=e.getSnapshot())==null?void 0:r.matches("stopped");return i&&((n=e.stop)==null||n.call(e)),!i})}),clearList:fr(t=>t.files.map(e=>X({type:"DESTROY"},{to:e.id}))),upload:fr((t,e)=>t.files.map(r=>X(e,{to:r.id}))),cancel:fr(t=>t.files.map(e=>X({type:"CANCEL"},{to:e.id})))}}),bs=async(t,e)=>new Promise(r=>{e.send({type:"UPLOAD",...t}),e.subscribe(n=>{var i;n.matches("error")?r({error:n.context.error,isError:!0,isUploaded:!1}):n.matches("uploaded")&&r({error:null,isError:!1,isUploaded:!0,id:n.context.id,bucketId:n.context.id,name:(i=n.context.file)==null?void 0:i.name})})}),ks=async(t,e)=>new Promise(r=>{e.send({type:"UPLOAD",...t,files:t.files}),e.onTransition(n=>{n.matches("error")?r({errors:n.context.files.filter(i=>{var s;return(s=i.getSnapshot())==null?void 0:s.context.error}),isError:!0,files:[]}):n.matches("uploaded")&&r({errors:[],isError:!1,files:n.context.files})})}),As=/^((?<protocol>http[s]?):\/\/)?(?<host>(localhost|local))(:(?<port>(\d+|__\w+__)))?$/;function Ze(t,e){const{subdomain:r,region:n}=t;if(!r)throw new Error("A `subdomain` must be set.");const i=r.match(As);if(i!=null&&i.groups){const{protocol:s,host:o,port:u}=i.groups,c=Rs(e);return c||(o==="localhost"?(console.warn('The `subdomain` is set to "localhost". Support for this will be removed in a future release. Please use "local" instead.'),`${s||"http"}://localhost:${u||1337}/v1/${e}`):u?`${s||"https"}://local.${e}.local.nhost.run:${u}/v1`:`${s||"https"}://local.${e}.local.nhost.run/v1`)}if(!n)throw new Error('`region` must be set when using a `subdomain` other than "local".');return`https://${r}.${e}.${n}.nhost.run/v1`}function Os(){return typeof window!="undefined"}function Is(){return typeof process!="undefined"&&process.env}function Rs(t){return Os()||!Is()?null:process.env[`NHOST_${t.toUpperCase()}_URL`]}function xs(t,e){const n=e.startsWith("/")?e:`/${e}`;return t+n}function Wn(t){const e="subdomain"in t?Ze(t,"auth"):t.authUrl,{subdomain:r,region:n}=t;if(!e)throw new Error("Please provide `subdomain` or `authUrl`.");return new Kn({url:e,broadcastKey:`${r}${n!=null?n:"local"}`,...t})}function _s(t,e){return e=e||{},new Promise(function(r,n){var i=new XMLHttpRequest,s=[],o=[],u={},c=function(){return{ok:(i.status/100|0)==2,statusText:i.statusText,status:i.status,url:i.responseURL,text:function(){return Promise.resolve(i.responseText)},json:function(){return Promise.resolve(i.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([i.response]))},clone:c,headers:{keys:function(){return s},entries:function(){return o},get:function(h){return u[h.toLowerCase()]},has:function(h){return h.toLowerCase()in u}}}};for(var d in i.open(e.method||"get",t,!0),i.onload=function(){i.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(h,l,a){s.push(l=l.toLowerCase()),o.push([l,a]),u[l]=u[l]?u[l]+","+a:a}),r(c())},i.onerror=n,i.withCredentials=e.credentials=="include",e.headers)i.setRequestHeader(d,e.headers[d]);i.send(e.body||null)})}const Jn=is(Object.freeze(Object.defineProperty({__proto__:null,default:_s},Symbol.toStringTag,{value:"Module"})));var Ps=self.fetch||(self.fetch=Jn.default||Jn);const Xn=Yt(Ps);function Qn(t){const e="subdomain"in t?Ze(t,"functions"):t.functionsUrl;if(!e)throw new Error("Please provide `subdomain` or `functionsUrl`.");return new Zn({url:e,...t})}class Zn{constructor(e){this.headers={};const{url:r,adminSecret:n}=e;this.url=r,this.accessToken=null,this.adminSecret=n}async call(e,r,n){var o,u;const i={"Content-Type":"application/json",...this.generateAccessTokenHeaders(),...n==null?void 0:n.headers,...this.headers},s=xs(this.url,e);try{const c=await Xn(s,{body:r?JSON.stringify(r):null,headers:i,method:"POST"});if(!c.ok){let h;return(o=c.headers.get("content-type"))!=null&&o.includes("application/json")?h=await c.json():h=await c.text(),{res:null,error:{message:h,error:c.statusText,status:c.status}}}let d;return(u=c.headers.get("content-type"))!=null&&u.includes("application/json")?d=await c.json():d=await c.text(),{res:{data:d,status:c.status,statusText:c.statusText},error:null}}catch(c){const d=c;return{res:null,error:{message:d.message,status:d.name==="AbortError"?0:500,error:d.name==="AbortError"?"abort-error":"unknown"}}}}setAccessToken(e){if(!e){this.accessToken=null;return}this.accessToken=e}getHeaders(){return this.headers}setHeaders(e){e&&(this.headers={...this.headers,...e})}unsetHeaders(){const e=this.headers["x-hasura-role"];this.headers=e?{"x-hasura-role":e}:{}}generateAccessTokenHeaders(){return this.adminSecret?{"x-hasura-admin-secret":this.adminSecret}:this.accessToken?{Authorization:`Bearer ${this.accessToken}`}:{}}}function Ns(t,e,r){return t.document?t:{document:t,variables:e,config:r}}function ei(t){var e;let r;const n=t.definitions.filter(i=>i.kind==="OperationDefinition");return n.length===1&&(r=(e=n[0].name)==null?void 0:e.value),r}function Us(t){if(typeof t=="string"){let r;try{const n=Se.parse(t);r=ei(n)}catch{}return{query:t,operationName:r}}const e=ei(t);return{query:Se.print(t),operationName:e}}class Ds{constructor(e){this.headers={},this.isAccessTokenValidOrNull=()=>{if(!this.accessToken)return!0;try{const i=pr(this.accessToken);return i.exp!=null&&i.exp*1e3>Date.now()}catch(i){return console.error("Error decoding token:",i),!1}},this.awaitForValidAccessTokenOrNull=async()=>{if(this.isAccessTokenValidOrNull())return!0;const i=()=>this.isAccessTokenValidOrNull()?Promise.resolve(!0):new Promise(s=>{setTimeout(()=>i().then(s),100)});return i()};const{url:r,adminSecret:n}=e;this._url=r,this.accessToken=null,this.adminSecret=n}async request(e,...r){const[n,i]=r,s=Ns(e,n,i),{headers:o,...u}=i||{},{query:c,operationName:d}=Us(s.document);typeof process!="undefined"&&!process.env.TEST_MODE&&await this.awaitForValidAccessTokenOrNull();try{const h=await Xn(this.httpUrl,{method:"POST",body:JSON.stringify({operationName:d,query:c,variables:n}),headers:{"Content-Type":"application/json",...this.generateAccessTokenHeaders(),...this.headers,...o},...u});if(!h.ok)return{data:null,error:{error:h.statusText,message:h.statusText,status:h.status}};const{data:l,errors:a}=await h.json();return a?{data:null,error:a}:typeof l!="object"||Array.isArray(l)||l===null?{data:null,error:{error:"invalid-response",message:"incorrect response data from GraphQL server",status:0}}:{data:l,error:null}}catch(h){const l=h;return{data:null,error:{message:l.message,status:l.name==="AbortError"?0:500,error:l.name==="AbortError"?"abort-error":"unknown"}}}}get httpUrl(){return this._url}get wsUrl(){return this._url.replace(/^(http)(s?):\/\//,"ws$2://")}get url(){return this._url}getUrl(){return this._url}setAccessToken(e){if(!e){this.accessToken=null;return}this.accessToken=e}getHeaders(){return this.headers}setHeaders(e){e&&(this.headers={...this.headers,...e})}unsetHeaders(){const e=this.headers["x-hasura-role"];this.headers=e?{"x-hasura-role":e}:{}}generateAccessTokenHeaders(){return this.adminSecret?{"x-hasura-admin-secret":this.adminSecret}:this.accessToken?{Authorization:`Bearer ${this.accessToken}`}:{}}}function ti(t){const e="subdomain"in t?Ze(t,"graphql"):t.graphqlUrl;if(!e)throw new Error("Please provide `subdomain` or `graphqlUrl`.");return new Ds({url:e,...t})}function ri(t){const e="subdomain"in t?Ze(t,"storage"):t.storageUrl;if(!e)throw new Error("Please provide `subdomain` or `storageUrl`.");return new zn({url:e,...t})}const Cs=t=>new ni(t);class ni{constructor({refreshIntervalTime:e,clientStorage:r,clientStorageType:n,autoRefreshToken:i,autoSignIn:s,adminSecret:o,devTools:u,start:c=!0,...d}){this.auth=Wn({refreshIntervalTime:e,clientStorage:r,clientStorageType:n,autoRefreshToken:i,autoSignIn:s,start:c,...d}),this.storage=ri({adminSecret:o,...d}),this.functions=Qn({adminSecret:o,...d}),this.graphql=ti({adminSecret:o,...d}),this.auth.onAuthStateChanged((h,l)=>{if(h==="SIGNED_OUT"){this.storage.setAccessToken(void 0),this.functions.setAccessToken(void 0),this.graphql.setAccessToken(void 0);return}const a=l==null?void 0:l.accessToken;this.storage.setAccessToken(a),this.functions.setAccessToken(a),this.graphql.setAccessToken(a)}),this.auth.onTokenChanged(h=>{const l=h==null?void 0:h.accessToken;this.storage.setAccessToken(l),this.functions.setAccessToken(l),this.graphql.setAccessToken(l)}),this._adminSecret=o,this.devTools=u}get adminSecret(){return this._adminSecret}set adminSecret(e){this._adminSecret=e,this.storage.setAdminSecret(e)}setRole(e){this.graphql.setHeaders({"x-hasura-role":e}),this.storage.setHeaders({"x-hasura-role":e}),this.functions.setHeaders({"x-hasura-role":e})}unsetRole(){this.graphql.setHeaders((({"x-hasura-role":e,...r})=>r)(this.graphql.getHeaders())),this.storage.setHeaders((({"x-hasura-role":e,...r})=>r)(this.storage.getHeaders())),this.functions.setHeaders((({"x-hasura-role":e,...r})=>r)(this.functions.getHeaders()))}}g.AuthClient=or,g.AuthClientSSR=gs,g.AuthCookieClient=kn,g.CodifiedError=ye,g.EMAIL_NEEDS_VERIFICATION=nn,g.HasuraAuthClient=Kn,g.HasuraStorageApi=Bn,g.HasuraStorageClient=zn,g.INITIAL_FILE_CONTEXT=It,g.INITIAL_MACHINE_CONTEXT=Tt,g.INVALID_EMAIL_ERROR=ae,g.INVALID_MFA_CODE_ERROR=Xr,g.INVALID_MFA_TICKET_ERROR=Qr,g.INVALID_MFA_TYPE_ERROR=Jr,g.INVALID_PASSWORD_ERROR=wt,g.INVALID_PHONE_NUMBER_ERROR=er,g.INVALID_REFRESH_TOKEN=sn,g.INVALID_SIGN_IN_METHOD=on,g.MIN_PASSWORD_LENGTH=Yr,g.NETWORK_ERROR_CODE=Qt,g.NHOST_JWT_EXPIRES_AT_KEY=Ee,g.NHOST_REFRESH_TOKEN_ID_KEY=Ye,g.NHOST_REFRESH_TOKEN_KEY=Ue,g.NO_MFA_TICKET_ERROR=Zr,g.NO_REFRESH_TOKEN=en,g.NhostClient=ni,g.NhostFunctionsClient=Zn,g.OTHER_ERROR_CODE=Zt,g.REFRESH_TOKEN_MAX_ATTEMPTS=Xt,g.STATE_ERROR_CODE=De,g.TOKEN_REFRESHER_RUNNING_ERROR=tn,g.TOKEN_REFRESH_MARGIN_SECONDS=Wr,g.USER_ALREADY_SIGNED_IN=ee,g.USER_NOT_ANONYMOUS=os,g.USER_UNAUTHENTICATED=rn,g.VALIDATION_ERROR_CODE=oe,g.activateMfaPromise=Es,g.addSecurityKeyPromise=An,g.appendImageTransformationParameters=Ot,g.changeEmailPromise=On,g.changePasswordPromise=In,g.createAuthClient=Wn,g.createAuthMachine=En,g.createChangeEmailMachine=wn,g.createChangePasswordMachine=Tn,g.createEnableMfaMachine=ys,g.createFileUploadMachine=Yn,g.createFunctionsClient=Qn,g.createGraphqlClient=ti,g.createMultipleFilesUploadMachine=Ss,g.createNhostClient=Cs,g.createResetPasswordMachine=Sn,g.createSendVerificationEmailMachine=bn,g.createStorageClient=ri,g.elevateEmailSecurityKeyPromise=Un,g.encodeQueryParameters=kt,g.generateQrCodePromise=ms,g.getAuthenticationResult=ie,g.getFetch=gn,g.getParameterByName=Xe,g.getSession=We,g.isBrowser=Je,g.isValidEmail=ce,g.isValidPassword=At,g.isValidPhoneNumber=sr,g.isValidTicket=mn,g.linkIdTokenPromise=qn,g.localStorageGetter=fn,g.localStorageSetter=pn,g.postFetch=te,g.removeParameterFromWindow=ir,g.resetPasswordPromise=Rn,g.rewriteRedirectTo=re,g.sendVerificationEmailPromise=xn,g.signInAnonymousPromise=_n,g.signInEmailOTPPromise=$n,g.signInEmailPasswordPromise=Pn,g.signInEmailPasswordlessPromise=ar,g.signInEmailSecurityKeyPromise=Nn,g.signInIdTokenPromise=Hn,g.signInMfaTotpPromise=Dn,g.signInPATPromise=Cn,g.signInSecurityKeyPromise=Vn,g.signInSmsPasswordlessOtpPromise=Mn,g.signInSmsPasswordlessPromise=cr,g.signOutPromise=Ln,g.signUpEmailPasswordPromise=ur,g.signUpEmailSecurityKeyPromise=jn,g.uploadFilePromise=bs,g.uploadMultipleFilesPromise=ks,g.urlFromSubdomain=Ze,g.verifyEmailOTPPromise=Fn,Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})});
|
|
22
22
|
//# sourceMappingURL=nhost-js.umd.js.map
|