@nhost/nhost-js 2.2.13 → 2.2.15

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nhost/nhost-js",
3
- "version": "2.2.13",
3
+ "version": "2.2.15",
4
4
  "description": "Nhost JavaScript SDK",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -46,8 +46,8 @@
46
46
  "dependencies": {
47
47
  "isomorphic-unfetch": "^3.1.0",
48
48
  "@nhost/graphql-js": "0.1.4",
49
- "@nhost/hasura-auth-js": "2.1.7",
50
- "@nhost/hasura-storage-js": "2.2.2"
49
+ "@nhost/hasura-auth-js": "2.1.8",
50
+ "@nhost/hasura-storage-js": "2.2.3"
51
51
  },
52
52
  "devDependencies": {
53
53
  "graphql": "16.7.1",
@@ -17,5 +17,5 @@ Event: `).concat(JSON.stringify(l.data)));return n.scheduler.schedule(function()
17
17
  Event: `).concat(JSON.stringify(event)));else if(this.status!==Y.Running)throw new Error("".concat(e.length,' event(s) were sent to uninitialized service "').concat(this.machine.id,'". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.'));if(e.length){var n=!!this.machine.config.predictableActionArguments&&this._exec;this.scheduler.schedule(function(){var i,s,o=r.state,u=!1,c=[],f=function(h){var v=J(h);r.forward(v),o=Ie(r,function(){return r.machine.transition(o,v,void 0,n||void 0)}),c.push.apply(c,F([],R(r.machine.config.predictableActionArguments?o.actions:o.actions.map(function(w){return Ni(w,o)})),!1)),u=u||!!o.changed};try{for(var a=P(e),d=a.next();!d.done;d=a.next()){var l=d.value;f(l)}}catch(h){i={error:h}}finally{try{d&&!d.done&&(s=a.return)&&s.call(a)}finally{if(i)throw i.error}}o.changed=u,o.actions=c,r.update(o,J(e[e.length-1]))})}},t.prototype.sender=function(e){return this.send.bind(this,e)},t.prototype._nextState=function(e,r){var n=this;r===void 0&&(r=!!this.machine.config.predictableActionArguments&&this._exec);var i=J(e);if(i.name.indexOf(Pt)===0&&!this.state.nextEvents.some(function(o){return o.indexOf(Pt)===0}))throw i.data.data;var s=Ie(this,function(){return n.machine.transition(n.state,i,void 0,r||void 0)});return s},t.prototype.nextState=function(e){return this._nextState(e,!1)},t.prototype.forward=function(e){var r,n;try{for(var i=P(this.forwardTo),s=i.next();!s.done;s=i.next()){var o=s.value,u=this.children.get(o);if(!u)throw new Error("Unable to forward event '".concat(e,"' from interpreter '").concat(this.id,"' to nonexistant child '").concat(o,"'."));u.send(e)}}catch(c){r={error:c}}finally{try{s&&!s.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}},t.prototype.defer=function(e){var r=this;this.delayedEventsMap[e.id]=this.clock.setTimeout(function(){e.to?r.sendTo(e._event,e.to,!0):r.send(e._event)},e.delay)},t.prototype.cancel=function(e){this.clock.clearTimeout(this.delayedEventsMap[e]),delete this.delayedEventsMap[e]},t.prototype.exec=function(e,r,n){n===void 0&&(n=this.machine.options.actions),this._exec(e,r.context,r._event,n)},t.prototype.removeChild=function(e){var r;this.children.delete(e),this.forwardTo.delete(e),(r=this.state)===null||r===void 0||delete r.children[e]},t.prototype.stopChild=function(e){var r=this.children.get(e);r&&(this.removeChild(e),$(r.stop)&&r.stop())},t.prototype.spawn=function(e,r,n){if(this.status!==Y.Running)return Lt(e,r);if(Er(e))return this.spawnPromise(Promise.resolve(e),r);if($(e))return this.spawnCallback(e,r);if(Oi(e))return this.spawnActor(e,r);if(oi(e))return this.spawnObservable(e,r);if(ce(e))return this.spawnMachine(e,m(m({},n),{id:r}));if(ni(e))return this.spawnBehavior(e,r);throw new Error('Unable to spawn entity "'.concat(r,'" of type "').concat(typeof e,'".'))},t.prototype.spawnMachine=function(e,r){var n=this;r===void 0&&(r={});var i=new t(e,m(m({},this.options),{parent:this,id:r.id||e.id})),s=m(m({},qt),r);s.sync&&i.onTransition(function(u){n.send(tt,{state:u,id:i.id})});var o=i;return this.children.set(i.id,o),s.autoForward&&this.forwardTo.add(i.id),i.onDone(function(u){n.removeChild(i.id),n.send(J(u,{origin:i.id}))}).start(),o},t.prototype.spawnBehavior=function(e,r){var n=Li(e,{id:r,parent:this});return this.children.set(r,n),n},t.prototype.spawnPromise=function(e,r){var n,i=this,s=!1,o;e.then(function(c){s||(o=c,i.removeChild(r),i.send(J(je(r,c),{origin:r})))},function(c){if(!s){i.removeChild(r);var f=Oe(r,c);try{i.send(J(f,{origin:r}))}catch(a){li(c,a,r),i.devTools&&i.devTools.send(f,i.state),i.machine.strict&&i.stop()}}});var u=(n={id:r,send:function(){},subscribe:function(c,f,a){var d=ot(c,f,a),l=!1;return e.then(function(h){l||(d.next(h),!l&&d.complete())},function(h){l||d.error(h)}),{unsubscribe:function(){return l=!0}}},stop:function(){s=!0},toJSON:function(){return{id:r}},getSnapshot:function(){return o}},n[he]=function(){return this},n);return this.children.set(r,u),u},t.prototype.spawnCallback=function(e,r){var n,i=this,s=!1,o=new Set,u=new Set,c,f=function(l){c=l,u.forEach(function(h){return h(l)}),!s&&i.send(J(l,{origin:r}))},a;try{a=e(f,function(l){o.add(l)})}catch(l){this.send(Oe(r,l))}if(Er(a))return this.spawnPromise(a,r);var d=(n={id:r,send:function(l){return o.forEach(function(h){return h(l)})},subscribe:function(l){var h=ot(l);return u.add(h.next),{unsubscribe:function(){u.delete(h.next)}}},stop:function(){s=!0,$(a)&&a()},toJSON:function(){return{id:r}},getSnapshot:function(){return c}},n[he]=function(){return this},n);return this.children.set(r,d),d},t.prototype.spawnObservable=function(e,r){var n,i=this,s,o=e.subscribe(function(c){s=c,i.send(J(c,{origin:r}))},function(c){i.removeChild(r),i.send(J(Oe(r,c),{origin:r}))},function(){i.removeChild(r),i.send(J(je(r),{origin:r}))}),u=(n={id:r,send:function(){},subscribe:function(c,f,a){return e.subscribe(c,f,a)},stop:function(){return o.unsubscribe()},getSnapshot:function(){return s},toJSON:function(){return{id:r}}},n[he]=function(){return this},n);return this.children.set(r,u),u},t.prototype.spawnActor=function(e,r){return this.children.set(r,e),e},t.prototype.spawnActivity=function(e){var r=this.machine.options&&this.machine.options.activities?this.machine.options.activities[e.type]:void 0;if(!r){G||z(!1,"No implementation found for activity '".concat(e.type,"'"));return}var n=r(this.state.context,e);this.spawnEffect(e.id,n)},t.prototype.spawnEffect=function(e,r){var n;this.children.set(e,(n={id:e,send:function(){},subscribe:function(){return{unsubscribe:function(){}}},stop:r||void 0,getSnapshot:function(){},toJSON:function(){return{id:e}}},n[he]=function(){return this},n))},t.prototype.attachDev=function(){var e=Ft();if(this.options.devTools&&e){if(e.__REDUX_DEVTOOLS_EXTENSION__){var r=typeof this.options.devTools=="object"?this.options.devTools:void 0;this.devTools=e.__REDUX_DEVTOOLS_EXTENSION__.connect(m(m({name:this.id,autoPause:!0,stateSanitizer:function(n){return{value:n.value,context:n.context,actions:n.actions}}},r),{features:m({jump:!1,skip:!1},r?r.features:void 0)}),this.machine),this.devTools.init(this.state)}Mi(this)}},t.prototype.toJSON=function(){return{id:this.id}},t.prototype[he]=function(){return this},t.prototype.getSnapshot=function(){return this.status===Y.NotStarted?this.initialState:this._state},t.defaultOptions={execute:!0,deferEvents:!0,clock:{setTimeout:function(e,r){return setTimeout(e,r)},clearTimeout:function(e){return clearTimeout(e)}},logger:console.log.bind(console),devTools:!1},t.interpret=xe,t}(),$i=function(t){return U(t)?m(m({},qt),{name:t}):m(m(m({},qt),{name:ci()}),t)};function Fi(t,e){var r=$i(e);return bi(function(n){if(!G){var i=ce(t)||$(t);z(!!n||i,'Attempted to spawn an Actor (ID: "'.concat(ce(t)?t.id:"undefined",'") outside of a service. This will have no effect.'))}return n?n.spawn(t,r.name,r):Lt(t,r.name)})}function xe(t,e){var r=new ji(t,e);return r}function qi(t){if(typeof t=="string"){var e={type:t};return e.toString=function(){return t},e}return t}function pt(t){return m(m({type:et},t),{toJSON:function(){t.onDone,t.onError;var e=xt(t,["onDone","onError"]);return m(m({},e),{type:et,src:qi(t.src)})}})}var Re="",Bt="#",Ge="*",Pe={},_e=function(t){return t[0]===Bt},Bi=function(){return{actions:{},guards:{},services:{},activities:{},delays:{}}},Gi=function(t,e,r){var n=r.slice(0,-1).some(function(s){return!("cond"in s)&&!("in"in s)&&(U(s.target)||ce(s.target))}),i=e===Re?"the transient event":"event '".concat(e,"'");z(!n,"One or more transitions for ".concat(i," on state '").concat(t.id,"' are unreachable. ")+"Make sure that the default transition is the last one defined.")},Vi=function(){function t(e,r,n,i){n===void 0&&(n="context"in e?e.context:void 0);var s=this,o;this.config=e,this._context=n,this.order=-1,this.__xstatenode=!0,this.__cache={events:void 0,relativeValue:new Map,initialStateValue:void 0,initialState:void 0,on:void 0,transitions:void 0,candidates:{},delayedTransitions:void 0},this.idMap={},this.tags=[],this.options=Object.assign(Bi(),r),this.parent=i==null?void 0:i.parent,this.key=this.config.key||(i==null?void 0:i.key)||this.config.id||"(machine)",this.machine=this.parent?this.parent.machine:this,this.path=this.parent?this.parent.path.concat(this.key):[],this.delimiter=this.config.delimiter||(this.parent?this.parent.delimiter:vr),this.id=this.config.id||F([this.machine.key],R(this.path),!1).join(this.delimiter),this.version=this.parent?this.parent.version:this.config.version,this.type=this.config.type||(this.config.parallel?"parallel":this.config.states&&Object.keys(this.config.states).length?"compound":this.config.history?"history":"atomic"),this.schema=this.parent?this.machine.schema:(o=this.config.schema)!==null&&o!==void 0?o:{},this.description=this.config.description,G||z(!("parallel"in this.config),'The "parallel" property is deprecated and will be removed in version 4.1. '.concat(this.config.parallel?"Replace with `type: 'parallel'`":"Use `type: '".concat(this.type,"'`")," in the config for state node '").concat(this.id,"' instead.")),this.initial=this.config.initial,this.states=this.config.states?Me(this.config.states,function(f,a){var d,l=new t(f,{},void 0,{parent:s,key:a});return Object.assign(s.idMap,m((d={},d[l.id]=l,d),l.idMap)),l}):Pe;var u=0;function c(f){var a,d;f.order=u++;try{for(var l=P(Lr(f)),h=l.next();!h.done;h=l.next()){var v=h.value;c(v)}}catch(w){a={error:w}}finally{try{h&&!h.done&&(d=l.return)&&d.call(l)}finally{if(a)throw a.error}}}c(this),this.history=this.config.history===!0?"shallow":this.config.history||!1,this._transient=!!this.config.always||(this.config.on?Array.isArray(this.config.on)?this.config.on.some(function(f){var a=f.event;return a===Re}):Re in this.config.on:!1),this.strict=!!this.config.strict,this.onEntry=te(this.config.entry||this.config.onEntry).map(function(f){return ke(f)}),this.onExit=te(this.config.exit||this.config.onExit).map(function(f){return ke(f)}),this.meta=this.config.meta,this.doneData=this.type==="final"?this.config.data:void 0,this.invoke=te(this.config.invoke).map(function(f,a){var d,l;if(ce(f)){var h=at(s.id,a);return s.machine.options.services=m((d={},d[h]=f,d),s.machine.options.services),pt({src:h,id:h})}else if(U(f.src)){var h=f.id||at(s.id,a);return pt(m(m({},f),{id:h,src:f.src}))}else if(ce(f.src)||$(f.src)){var h=f.id||at(s.id,a);return s.machine.options.services=m((l={},l[h]=f.src,l),s.machine.options.services),pt(m(m({id:h},f),{src:h}))}else{var v=f.src;return pt(m(m({id:at(s.id,a)},f),{src:v}))}}),this.activities=te(this.config.activities).concat(this.invoke).map(function(f){return ut(f)}),this.transition=this.transition.bind(this),this.tags=te(this.config.tags)}return t.prototype._init=function(){this.__cache.transitions||jr(this).forEach(function(e){return e.on})},t.prototype.withConfig=function(e,r){var n=this.options,i=n.actions,s=n.activities,o=n.guards,u=n.services,c=n.delays;return new t(this.config,{actions:m(m({},i),e.actions),activities:m(m({},s),e.activities),guards:m(m({},o),e.guards),services:m(m({},u),e.services),delays:m(m({},c),e.delays)},r!=null?r:this.context)},t.prototype.withContext=function(e){return new t(this.config,this.options,e)},Object.defineProperty(t.prototype,"context",{get:function(){return $(this._context)?this._context():this._context},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"definition",{get:function(){return{id:this.id,key:this.key,version:this.version,context:this.context,type:this.type,initial:this.initial,history:this.history,states:Me(this.states,function(e){return e.definition}),on:this.on,transitions:this.transitions,entry:this.onEntry,exit:this.onExit,activities:this.activities||[],meta:this.meta,order:this.order||-1,data:this.doneData,invoke:this.invoke,description:this.description,tags:this.tags}},enumerable:!1,configurable:!0}),t.prototype.toJSON=function(){return this.definition},Object.defineProperty(t.prototype,"on",{get:function(){if(this.__cache.on)return this.__cache.on;var e=this.transitions;return this.__cache.on=e.reduce(function(r,n){return r[n.eventType]=r[n.eventType]||[],r[n.eventType].push(n),r},{})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"after",{get:function(){return this.__cache.delayedTransitions||(this.__cache.delayedTransitions=this.getDelayedTransitions(),this.__cache.delayedTransitions)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"transitions",{get:function(){return this.__cache.transitions||(this.__cache.transitions=this.formatTransitions(),this.__cache.transitions)},enumerable:!1,configurable:!0}),t.prototype.getCandidates=function(e){if(this.__cache.candidates[e])return this.__cache.candidates[e];var r=e===Re,n=this.transitions.filter(function(i){var s=i.eventType===e;return r?s:s||i.eventType===Ge});return this.__cache.candidates[e]=n,n},t.prototype.getDelayedTransitions=function(){var e=this,r=this.config.after;if(!r)return[];var n=function(s,o){var u=$(s)?"".concat(e.id,":delay[").concat(o,"]"):s,c=Cr(u,e.id);return e.onEntry.push(pe(c,{delay:s})),e.onExit.push(Pr(c)),c},i=be(r)?r.map(function(s,o){var u=n(s.delay,o);return m(m({},s),{event:u})}):V(Object.keys(r).map(function(s,o){var u=r[s],c=U(u)?{target:u}:u,f=isNaN(+s)?s:+s,a=n(f,o);return te(c).map(function(d){return m(m({},d),{event:a,delay:f})})}));return i.map(function(s){var o=s.delay;return m(m({},e.formatTransition(s)),{delay:o})})},t.prototype.getStateNodes=function(e){var r,n=this;if(!e)return[];var i=e instanceof oe?e.value:Ce(e,this.delimiter);if(U(i)){var s=this.getStateNode(i).initial;return s!==void 0?this.getStateNodes((r={},r[i]=s,r)):[this,this.states[i]]}var o=Object.keys(i),u=[this];return u.push.apply(u,F([],R(V(o.map(function(c){return n.getStateNode(c).getStateNodes(i[c])}))),!1)),u},t.prototype.handles=function(e){var r=mr(e);return this.events.includes(r)},t.prototype.resolveState=function(e){var r=e instanceof oe?e:oe.create(e),n=Array.from(qe([],this.getStateNodes(r.value)));return new oe(m(m({},r),{value:this.resolve(r.value),configuration:n,done:ft(n,this),tags:Fr(n),machine:this.machine}))},t.prototype.transitionLeafNode=function(e,r,n){var i=this.getStateNode(e),s=i.next(r,n);return!s||!s.transitions.length?this.next(r,n):s},t.prototype.transitionCompoundNode=function(e,r,n){var i=Object.keys(e),s=this.getStateNode(i[0]),o=s._transition(e[i[0]],r,n);return!o||!o.transitions.length?this.next(r,n):o},t.prototype.transitionParallelNode=function(e,r,n){var i,s,o={};try{for(var u=P(Object.keys(e)),c=u.next();!c.done;c=u.next()){var f=c.value,a=e[f];if(a){var d=this.getStateNode(f),l=d._transition(a,r,n);l&&(o[f]=l)}}}catch(S){i={error:S}}finally{try{c&&!c.done&&(s=u.return)&&s.call(u)}finally{if(i)throw i.error}}var h=Object.keys(o).map(function(S){return o[S]}),v=V(h.map(function(S){return S.transitions})),w=h.some(function(S){return S.transitions.length>0});if(!w)return this.next(r,n);var T=V(h.map(function(S){return S.entrySet})),E=V(Object.keys(o).map(function(S){return o[S].configuration}));return{transitions:v,entrySet:T,exitSet:V(h.map(function(S){return S.exitSet})),configuration:E,source:r,actions:V(Object.keys(o).map(function(S){return o[S].actions}))}},t.prototype._transition=function(e,r,n){return U(e)?this.transitionLeafNode(e,r,n):Object.keys(e).length===1?this.transitionCompoundNode(e,r,n):this.transitionParallelNode(e,r,n)},t.prototype.getTransitionData=function(e,r){return this._transition(e.value,e,J(r))},t.prototype.next=function(e,r){var n,i,s=this,o=r.name,u=[],c=[],f;try{for(var a=P(this.getCandidates(o)),d=a.next();!d.done;d=a.next()){var l=d.value,h=l.cond,v=l.in,w=e.context,T=v?U(v)&&_e(v)?e.matches(Ce(this.getStateNodeById(v).path,this.delimiter)):Ut(Ce(v,this.delimiter),ei(this.path.slice(0,-2))(e.value)):!0,E=!1;try{E=!h||Ar(this.machine,h,w,r,e)}catch(I){throw new Error("Unable to evaluate guard '".concat(h.name||h.type,"' in transition for event '").concat(o,"' in state node '").concat(this.id,`':
18
18
  `).concat(I.message))}if(E&&T){l.target!==void 0&&(c=l.target),u.push.apply(u,F([],R(l.actions),!1)),f=l;break}}}catch(I){n={error:I}}finally{try{d&&!d.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}if(f){if(!c.length)return{transitions:[f],entrySet:[],exitSet:[],configuration:e.value?[this]:[],source:e,actions:u};var S=V(c.map(function(I){return s.getRelativeStateNodes(I,e.historyValue)})),b=!!f.internal,C=[];return b||c.forEach(function(I){C.push.apply(C,F([],R(s.getExternalReentryNodes(I)),!1))}),{transitions:[f],entrySet:C,exitSet:b?[]:[this],configuration:S,source:e,actions:u}}},t.prototype.getExternalReentryNodes=function(e){for(var r=[],n=R(e.order>this.order?[e,this]:[this,e],2),i=n[0],s=n[1];i&&i!==s;)r.push(i),i=i.parent;return i!==s?[]:(r.push(s),r)},t.prototype.getActions=function(e,r,n,i,s,o,u){var c,f,a,d,l=this,h=qe([],o?this.getStateNodes(o.value):[this]);try{for(var v=P(e),w=v.next();!w.done;w=v.next()){var T=w.value;(!Be(h,T)||Be(n.entrySet,T.parent))&&n.entrySet.push(T)}}catch(A){c={error:A}}finally{try{w&&!w.done&&(f=v.return)&&f.call(v)}finally{if(c)throw c.error}}try{for(var E=P(h),S=E.next();!S.done;S=E.next()){var T=S.value;(!Be(e,T)||Be(n.exitSet,T.parent))&&n.exitSet.push(T)}}catch(A){a={error:A}}finally{try{S&&!S.done&&(d=E.return)&&d.call(E)}finally{if(a)throw a.error}}var b=V(n.entrySet.map(function(A){var _=[];if(A.type!=="final")return _;var Z=A.parent;if(!Z.parent)return _;_.push(Le(A.id,A.doneData),Le(Z.id,A.doneData?st(A.doneData,i,s):void 0));var ee=Z.parent;return ee.type==="parallel"&&Fe(ee).every(function(H){return ft(n.configuration,H)})&&_.push(Le(ee.id)),_}));n.exitSet.sort(function(A,_){return _.order-A.order}),n.entrySet.sort(function(A,_){return A.order-_.order});var C=new Set(n.entrySet),I=new Set(n.exitSet),B=Array.from(C).map(function(A){var _=A.onEntry,Z=A.activities.map(function(ee){return _r(ee)});return ue(u?F(F([],R(_),!1),R(Z),!1):F(F([],R(Z),!1),R(_),!1),l.machine.options.actions)}).concat([b.map(Or)]),x=Array.from(I).map(function(A){return ue(F(F([],R(A.onExit),!1),R(A.activities.map(function(_){return Nr(_)})),!1),l.machine.options.actions)}),N=x.concat([ue(n.actions,this.machine.options.actions)]).concat(B);if(r){var M=ue(V(F([],R(e),!1).sort(function(A,_){return _.order-A.order}).map(function(A){return A.onExit})),this.machine.options.actions).filter(function(A){return A.type!==me&&(A.type!==ge||!!A.to&&A.to!==se.Internal)});return N.concat([M])}return N},t.prototype.transition=function(e,r,n,i){e===void 0&&(e=this.initialState);var s=J(r),o;if(e instanceof oe)o=n===void 0?e:this.resolveState(oe.from(e,n));else{var u=U(e)?this.resolve(nt(this.getResolvedPath(e))):this.resolve(e),c=n!=null?n:this.machine.context;o=this.resolveState(oe.from(u,c))}if(!G&&s.name===Ge)throw new Error("An event cannot have the wildcard type ('".concat(Ge,"')"));if(this.strict&&!this.events.includes(s.name)&&!ri(s.name))throw new Error("Machine '".concat(this.id,"' does not accept event '").concat(s.name,"'"));var f=this._transition(o.value,o,s)||{transitions:[],configuration:[],entrySet:[],exitSet:[],source:o,actions:[]},a=qe([],this.getStateNodes(o.value)),d=f.configuration.length?qe(a,f.configuration):a;return f.configuration=F([],R(d),!1),this.resolveTransition(f,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,F([],R(o),!1)),e},t.prototype.resolveTransition=function(e,r,n,i,s){var o,u,c,f,a=this;s===void 0&&(s=we);var d=e.configuration,l=!r||e.transitions.length>0,h=l?e.configuration:r?r.configuration:[],v=ft(h,this),w=l?xi(this.machine,d):void 0,T=r?r.historyValue?r.historyValue:e.source?this.machine.historyValue(r.value):void 0:void 0,E=this.getActions(new Set(h),v,e,n,s,r,i),S=r?m({},r.activities):{};try{for(var b=P(E),C=b.next();!C.done;C=b.next()){var I=C.value;try{for(var B=(c=void 0,P(I)),x=B.next();!x.done;x=B.next()){var N=x.value;N.type===Je?S[N.activity.id||N.activity.type]=N:N.type===Xe&&(S[N.activity.id||N.activity.type]=!1)}}catch(Q){c={error:Q}}finally{try{x&&!x.done&&(f=B.return)&&f.call(B)}finally{if(c)throw c.error}}}}catch(Q){o={error:Q}}finally{try{C&&!C.done&&(u=b.return)&&u.call(b)}finally{if(o)throw o.error}}var M=R($e(this,r,n,s,E,i,this.machine.config.predictableActionArguments||this.machine.config.preserveActionOrder),2),A=M[0],_=M[1],Z=R(ii(A,function(Q){return Q.type===me||Q.type===ge&&Q.to===se.Internal}),2),ee=Z[0],H=Z[1],ye=A.filter(function(Q){var K;return Q.type===Je&&((K=Q.activity)===null||K===void 0?void 0:K.type)===et}),Ye=ye.reduce(function(Q,K){return Q[K.activity.id]=Ai(K.activity,a.machine,_,s),Q},r?m({},r.children):{}),p=new oe({value:w||r.value,context:_,_event:s,_sessionid:r?r._sessionid:null,historyValue:w?T?si(T,w):void 0:r?r.historyValue:void 0,history:!w||e.source?r:void 0,actions:w?H:[],activities:w?S:r?r.activities:{},events:[],configuration:h,transitions:e.transitions,children:Ye,done:v,tags:Fr(h),machine:this}),g=n!==_;p.changed=s.name===tt||g;var k=p.history;k&&delete k.history;var q=!v&&(this._transient||d.some(function(Q){return Q._transient}));if(!l&&(!q||s.name===Re))return p;var D=p;if(!v)for(q&&(D=this.resolveRaisedTransition(D,{type:dr},s,i));ee.length;){var L=ee.shift();D=this.resolveRaisedTransition(D,L._event,s,i)}var De=D.changed||(k?!!D.actions.length||g||typeof k.value!=typeof D.value||!qr(D.value,k.value):void 0);return D.changed=De,D.history=k,D},t.prototype.getStateNode=function(e){if(_e(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=_e(e)?e.slice(Bt.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"&&_e(e))try{return this.getStateNodeById(e.slice(1))}catch{}for(var r=Dt(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 Me(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?Me(e,function(s,o){return s?n.getStateNode(o).resolve(s):Pe}):this.initialStateValue||{};default:return e||Pe}},t.prototype.getResolvedPath=function(e){if(_e(e)){var r=this.machine.idMap[e.slice(Bt.length)];if(!r)throw new Error("Unable to find state node '".concat(e,"'"));return r.path}return Dt(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=gr(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=dt(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,entrySet:F([],R(n),!1),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=_e(r.target)?nt(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(dt(this))return[this];if(this.type==="compound"&&!this.initial)return G||z(!1,"Compound state node '".concat(this.id,"' has no initial state.")),[this];var r=it(this.initialStateValue);return V(r.map(function(n){return e.getFromRelativePath(n)}))},enumerable:!1,configurable:!0}),t.prototype.getFromRelativePath=function(e){if(!e.length)return[this];var r=R(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:gr(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?V(it(i).map(function(o){return n.getFromRelativePath(o)})):n.initialStateNodes}var s=ti(n.path,"states")(e).current;return U(s)?[n.getStateNode(s)]:V(it(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=V(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=P(Object.keys(s)),c=u.next();!c.done;c=u.next()){var f=c.value,a=s[f];if(a.states)try{for(var d=(n=void 0,P(a.events)),l=d.next();!l.done;l=d.next()){var h=l.value;o.add("".concat(h))}}catch(v){n={error:v}}finally{try{l&&!l.done&&(i=d.return)&&i.call(d)}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=ui(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:ue(te(e.actions)),cond:br(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=Ge,u=s[o],c=u===void 0?[]:u,f=xt(s,[typeof o=="symbol"?o:o+""]);i=V(Object.keys(f).map(function(S){!G&&S===Re&&z(!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(S,f[S]);return G||Gi(n,S,b),b}).concat(Ae(Ge,c)))}var a=this.config.always?Ae("",this.config.always):[],d=this.config.onDone?Ae(String(Le(this.id)),this.config.onDone):[];G||z(!(this.config.onDone&&!this.parent),'Root nodes cannot have an ".onDone" transition. Please check the config of "'.concat(this.id,'".'));var l=V(this.invoke.map(function(S){var b=[];return S.onDone&&b.push.apply(b,F([],R(Ae(String(je(S.id)),S.onDone)),!1)),S.onError&&b.push.apply(b,F([],R(Ae(String(Oe(S.id)),S.onError)),!1)),b})),h=this.after,v=V(F(F(F(F([],R(d),!1),R(l),!1),R(i),!1),R(a),!1).map(function(S){return te(S).map(function(b){return n.formatTransition(b)})}));try{for(var w=P(h),T=w.next();!T.done;T=w.next()){var E=T.value;v.push(E)}}catch(S){e={error:S}}finally{try{T&&!T.done&&(r=w.return)&&r.call(w)}finally{if(e)throw e.error}}return v},t}(),Gr=!1;function ve(t,e){return!G&&!t.predictableActionArguments&&!Gr&&(Gr=!0,console.warn("It is highly recommended to set `predictableActionArguments` to `true` when using `createMachine`. https://xstate.js.org/docs/guides/actions.html")),new Vi(t,e)}var O=Dr,W=pe;/*! js-cookie v3.0.1 | MIT */function vt(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 Hi={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=vt({},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("="),f=c.slice(1).join("=");try{var a=decodeURIComponent(c[0]);if(o[a]=t.read(f,a),i===a)break}catch{}}return i?o[i]:o}}return Object.create({set:r,get:n,remove:function(i,s){r(i,"",vt({},s,{expires:-1}))},withAttributes:function(i){return Gt(this.converter,vt({},this.attributes,i))},withConverter:function(i){return Gt(vt({},this.converter,i),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(t)}})}var Vt=Gt(Hi,{path:"/"}),Ht=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Kt(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Ki(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var r=function n(){if(this instanceof n){var i=[null];i.push.apply(i,arguments);var s=Function.bind.apply(e,i);return new s}return 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 zt={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,f){f(e)}(this,function(c){var f=typeof u!="undefined"&&u||typeof self!="undefined"&&self||typeof f!="undefined"&&f,a={searchParams:"URLSearchParams"in f,iterable:"Symbol"in f&&"iterator"in Symbol,blob:"FileReader"in f&&"Blob"in f&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in f,arrayBuffer:"ArrayBuffer"in f};function d(p){return p&&DataView.prototype.isPrototypeOf(p)}if(a.arrayBuffer)var l=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],h=ArrayBuffer.isView||function(p){return p&&l.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 w(p){return typeof p!="string"&&(p=String(p)),p}function T(p){var g={next:function(){var k=p.shift();return{done:k===void 0,value:k}}};return a.iterable&&(g[Symbol.iterator]=function(){return g}),g}function E(p){this.map={},p instanceof E?p.forEach(function(g,k){this.append(k,g)},this):Array.isArray(p)?p.forEach(function(g){this.append(g[0],g[1])},this):p&&Object.getOwnPropertyNames(p).forEach(function(g){this.append(g,p[g])},this)}E.prototype.append=function(p,g){p=v(p),g=w(g);var k=this.map[p];this.map[p]=k?k+", "+g:g},E.prototype.delete=function(p){delete this.map[v(p)]},E.prototype.get=function(p){return p=v(p),this.has(p)?this.map[p]:null},E.prototype.has=function(p){return this.map.hasOwnProperty(v(p))},E.prototype.set=function(p,g){this.map[v(p)]=w(g)},E.prototype.forEach=function(p,g){for(var k in this.map)this.map.hasOwnProperty(k)&&p.call(g,this.map[k],k,this)},E.prototype.keys=function(){var p=[];return this.forEach(function(g,k){p.push(k)}),T(p)},E.prototype.values=function(){var p=[];return this.forEach(function(g){p.push(g)}),T(p)},E.prototype.entries=function(){var p=[];return this.forEach(function(g,k){p.push([k,g])}),T(p)},a.iterable&&(E.prototype[Symbol.iterator]=E.prototype.entries);function S(p){if(p.bodyUsed)return s.reject(new TypeError("Already read"));p.bodyUsed=!0}function b(p){return new s(function(g,k){p.onload=function(){g(p.result)},p.onerror=function(){k(p.error)}})}function C(p){var g=new FileReader,k=b(g);return g.readAsArrayBuffer(p),k}function I(p){var g=new FileReader,k=b(g);return g.readAsText(p),k}function B(p){for(var g=new Uint8Array(p),k=new Array(g.length),q=0;q<g.length;q++)k[q]=String.fromCharCode(g[q]);return k.join("")}function x(p){if(p.slice)return p.slice(0);var g=new Uint8Array(p.byteLength);return g.set(new Uint8Array(p)),g.buffer}function N(){return this.bodyUsed=!1,this._initBody=function(p){this.bodyUsed=this.bodyUsed,this._bodyInit=p,p?typeof p=="string"?this._bodyText=p:a.blob&&Blob.prototype.isPrototypeOf(p)?this._bodyBlob=p:a.formData&&FormData.prototype.isPrototypeOf(p)?this._bodyFormData=p:a.searchParams&&URLSearchParams.prototype.isPrototypeOf(p)?this._bodyText=p.toString():a.arrayBuffer&&a.blob&&d(p)?(this._bodyArrayBuffer=x(p.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):a.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(p)||h(p))?this._bodyArrayBuffer=x(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):a.searchParams&&URLSearchParams.prototype.isPrototypeOf(p)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},a.blob&&(this.blob=function(){var p=S(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=S(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(C)}),this.text=function(){var p=S(this);if(p)return p;if(this._bodyBlob)return I(this._bodyBlob);if(this._bodyArrayBuffer)return s.resolve(B(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return s.resolve(this._bodyText)},a.formData&&(this.formData=function(){return this.text().then(Z)}),this.json=function(){return this.text().then(JSON.parse)},this}var M=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function A(p){var g=p.toUpperCase();return M.indexOf(g)>-1?g:p}function _(p,g){if(!(this instanceof _))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');g=g||{};var k=g.body;if(p instanceof _){if(p.bodyUsed)throw new TypeError("Already read");this.url=p.url,this.credentials=p.credentials,g.headers||(this.headers=new E(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=g.credentials||this.credentials||"same-origin",(g.headers||!this.headers)&&(this.headers=new E(g.headers)),this.method=A(g.method||this.method||"GET"),this.mode=g.mode||this.mode||null,this.signal=g.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")&&(g.cache==="no-store"||g.cache==="no-cache")){var q=/([?&])_=[^&]*/;if(q.test(this.url))this.url=this.url.replace(q,"$1_="+new Date().getTime());else{var D=/\?/;this.url+=(D.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}_.prototype.clone=function(){return new _(this,{body:this._bodyInit})};function Z(p){var g=new FormData;return p.trim().split("&").forEach(function(k){if(k){var q=k.split("="),D=q.shift().replace(/\+/g," "),L=q.join("=").replace(/\+/g," ");g.append(decodeURIComponent(D),decodeURIComponent(L))}}),g}function ee(p){var g=new E,k=p.replace(/\r?\n[\t ]+/g," ");return k.split("\r").map(function(q){return q.indexOf(`
20
- `)===0?q.substr(1,q.length):q}).forEach(function(q){var D=q.split(":"),L=D.shift().trim();if(L){var De=D.join(":").trim();g.append(L,De)}}),g}N.call(_.prototype);function H(p,g){if(!(this instanceof H))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');g||(g={}),this.type="default",this.status=g.status===void 0?200:g.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in g?g.statusText:"",this.headers=new E(g.headers),this.url=g.url||"",this._initBody(p)}N.call(H.prototype),H.prototype.clone=function(){return new H(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new E(this.headers),url:this.url})},H.error=function(){var p=new H(null,{status:0,statusText:""});return p.type="error",p};var ye=[301,302,303,307,308];H.redirect=function(p,g){if(ye.indexOf(g)===-1)throw new RangeError("Invalid status code");return new H(null,{status:g,headers:{location:p}})},c.DOMException=f.DOMException;try{new c.DOMException}catch{c.DOMException=function(g,k){this.message=g,this.name=k;var q=Error(g);this.stack=q.stack},c.DOMException.prototype=Object.create(Error.prototype),c.DOMException.prototype.constructor=c.DOMException}function Ye(p,g){return new s(function(k,q){var D=new _(p,g);if(D.signal&&D.signal.aborted)return q(new c.DOMException("Aborted","AbortError"));var L=new o;function De(){L.abort()}L.onload=function(){var K={status:L.status,statusText:L.statusText,headers:ee(L.getAllResponseHeaders()||"")};K.url="responseURL"in L?L.responseURL:K.headers.get("X-Request-URL");var Ot="response"in L?L.response:L.responseText;setTimeout(function(){k(new H(Ot,K))},0)},L.onerror=function(){setTimeout(function(){q(new TypeError("Network request failed"))},0)},L.ontimeout=function(){setTimeout(function(){q(new TypeError("Network request failed"))},0)},L.onabort=function(){setTimeout(function(){q(new c.DOMException("Aborted","AbortError"))},0)};function Q(K){try{return K===""&&f.location.href?f.location.href:K}catch{return K}}L.open(D.method,Q(D.url),!0),D.credentials==="include"?L.withCredentials=!0:D.credentials==="omit"&&(L.withCredentials=!1),"responseType"in L&&(a.blob?L.responseType="blob":a.arrayBuffer&&D.headers.get("Content-Type")&&D.headers.get("Content-Type").indexOf("application/octet-stream")!==-1&&(L.responseType="arraybuffer")),g&&typeof g.headers=="object"&&!(g.headers instanceof E)?Object.getOwnPropertyNames(g.headers).forEach(function(K){L.setRequestHeader(K,w(g.headers[K]))}):D.headers.forEach(function(K,Ot){L.setRequestHeader(Ot,K)}),D.signal&&(D.signal.addEventListener("abort",De),L.onreadystatechange=function(){L.readyState===4&&D.signal.removeEventListener("abort",De)}),L.send(typeof D._bodyInit=="undefined"?null:D._bodyInit)})}Ye.polyfill=!0,f.fetch||(f.fetch=Ye,f.Headers=E,f.Request=_,f.Response=H),c.Headers=E,c.Request=_,c.Response=H,c.fetch=Ye,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:Ht)})(zt,zt.exports);var zi=zt.exports;const Yt=Kt(zi),Ne="nhostRefreshToken",Ve="nhostRefreshTokenId",Ee="nhostRefreshTokenExpiresAt",Vr=3,Hr=60,Wt=5,Jt=0,Xt=1,re=10,Ue=20;let He=class extends Error{constructor(e){super(e.message),Error.captureStackTrace(this,this.constructor),e instanceof Error?(this.name=e.name,this.error={error:e.name,status:Xt,message:e.message}):(this.name=e.error,this.error=e)}};const le={status:re,error:"invalid-email",message:"Email is incorrectly formatted"},Kr={status:re,error:"invalid-mfa-type",message:"MFA type is invalid"},zr={status:re,error:"invalid-mfa-code",message:"MFA code is invalid"},yt={status:re,error:"invalid-password",message:"Password is incorrectly formatted"},Qt={status:re,error:"invalid-phone-number",message:"Phone number is incorrectly formatted"},Yr={status:re,error:"invalid-mfa-ticket",message:"MFA ticket is invalid"},Wr={status:re,error:"no-mfa-ticket",message:"No MFA ticket has been provided"},Jr={status:re,error:"no-refresh-token",message:"No refresh token has been provided"},Xr={status:Ue,error:"refresher-already-running",message:"The token refresher is already running. You must wait until is has finished before submitting a new token."},ne={status:Ue,error:"already-signed-in",message:"User is already signed in"},Qr={status:Ue,error:"unauthenticated-user",message:"User is not authenticated"},Yi={status:Ue,error:"user-not-anonymous",message:"User is not anonymous"},Zr={status:Ue,error:"unverified-user",message:"Email needs verification"},en={status:re,error:"invalid-refresh-token",message:"Invalid or expired refresh token"},tn={status:Xt,error:"invalid-sign-in-method",message:"Invalid sign-in method"},mt={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 Wi(t){return new TextEncoder().encode(t)}function Se(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 Zt(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 rn(){return(window==null?void 0:window.PublicKeyCredential)!==void 0&&typeof window.PublicKeyCredential=="function"}function nn(t){const{id:e}=t;return{...t,id:Zt(e),transports:t.transports}}function sn(t){return t==="localhost"||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(t)}let X=class extends Error{constructor(e,r="WebAuthnError"){super(e),this.name=r}};function Ji({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===new AbortController().signal)return new X("Registration ceremony was sent an abort signal","AbortError")}else if(t.name==="ConstraintError"){if(((r=i.authenticatorSelection)===null||r===void 0?void 0:r.requireResidentKey)===!0)return new X("Discoverable credentials were required but no available authenticator supported it","ConstraintError");if(((n=i.authenticatorSelection)===null||n===void 0?void 0:n.userVerification)==="required")return new X("User verification was required but no available authenticator supported it","ConstraintError")}else{if(t.name==="InvalidStateError")return new X("The authenticator was previously registered","InvalidStateError");if(t.name==="NotAllowedError")return new X("User clicked cancel, or the registration ceremony timed out","NotAllowedError");if(t.name==="NotSupportedError")return i.pubKeyCredParams.filter(s=>s.type==="public-key").length===0?new X('No entry in pubKeyCredParams was of type "public-key"',"NotSupportedError"):new X("No available authenticator supported any of the specified pubKeyCredParams algorithms","NotSupportedError");if(t.name==="SecurityError"){const s=window.location.hostname;if(sn(s)){if(i.rp.id!==s)return new X(`The RP ID "${i.rp.id}" is invalid for this domain`,"SecurityError")}else return new X(`${window.location.hostname} is an invalid domain`,"SecurityError")}else if(t.name==="TypeError"){if(i.user.id.byteLength<1||i.user.id.byteLength>64)return new X("User ID was not between 1 and 64 characters","TypeError")}else if(t.name==="UnknownError")return new X("The authenticator was unable to process the specified options, or could not create a new credential","UnknownError")}return t}class Xi{createNewAbortSignal(){return this.controller&&this.controller.abort(),this.controller=new AbortController,this.controller.signal}reset(){this.controller=void 0}}const gt=new Xi;async function on(t){if(!rn())throw new Error("WebAuthn is not supported in this browser");const e={publicKey:{...t,challenge:Zt(t.challenge),user:{...t.user,id:Wi(t.user.id)},excludeCredentials:t.excludeCredentials.map(nn)}};e.signal=gt.createNewAbortSignal();let r;try{r=await navigator.credentials.create(e)}catch(c){throw Ji({error:c,options:e})}finally{gt.reset()}if(!r)throw new Error("Registration was not completed");const{id:n,rawId:i,response:s,type:o}=r,u={id:n,rawId:Se(i),response:{attestationObject:Se(s.attestationObject),clientDataJSON:Se(s.clientDataJSON)},type:o,clientExtensionResults:r.getClientExtensionResults(),authenticatorAttachment:r.authenticatorAttachment};return typeof s.getTransports=="function"&&(u.transports=s.getTransports()),u}function Qi(t){return new TextDecoder("utf-8").decode(t)}async function Zi(){if(navigator.credentials.conditionalMediationSupported)return!0;const t=window.PublicKeyCredential;return t.isConditionalMediationAvailable!==void 0&&t.isConditionalMediationAvailable()}function es({error:t,options:e}){var r;const{publicKey:n}=e;if(!n)throw Error("options was missing required publicKey property");if(t.name==="AbortError"){if(e.signal===new AbortController().signal)return new X("Authentication ceremony was sent an abort signal","AbortError")}else{if(t.name==="NotAllowedError")return!((r=n.allowCredentials)===null||r===void 0)&&r.length?new X("No available authenticator recognized any of the allowed credentials","NotAllowedError"):new X("User clicked cancel, or the authentication ceremony timed out","NotAllowedError");if(t.name==="SecurityError"){const i=window.location.hostname;if(sn(i)){if(n.rpId!==i)return new X(`The RP ID "${n.rpId}" is invalid for this domain`,"SecurityError")}else return new X(`${window.location.hostname} is an invalid domain`,"SecurityError")}else if(t.name==="UnknownError")return new X("The authenticator was unable to process the specified options, or could not create a new assertion signature","UnknownError")}return t}async function ts(t,e=!1){var r,n;if(!rn())throw new Error("WebAuthn is not supported in this browser");let i;((r=t.allowCredentials)===null||r===void 0?void 0:r.length)!==0&&(i=(n=t.allowCredentials)===null||n===void 0?void 0:n.map(nn));const s={...t,challenge:Zt(t.challenge),allowCredentials:i},o={};if(e){if(!await Zi())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete*='webauthn']").length<1)throw Error('No <input> with `"webauthn"` in its `autocomplete` attribute was detected');o.mediation="conditional",s.allowCredentials=[]}o.publicKey=s,o.signal=gt.createNewAbortSignal();let u;try{u=await navigator.credentials.get(o)}catch(h){throw es({error:h,options:o})}finally{gt.reset()}if(!u)throw new Error("Authentication was not completed");const{id:c,rawId:f,response:a,type:d}=u;let l;return a.userHandle&&(l=Qi(a.userHandle)),{id:c,rawId:Se(f),response:{authenticatorData:Se(a.authenticatorData),clientDataJSON:Se(a.clientDataJSON),signature:Se(a.signature),userHandle:l},type:d,clientExtensionResults:u.getClientExtensionResults(),authenticatorAttachment:u.authenticatorAttachment}}const wt=typeof window!="undefined",Et=new Map,rs=t=>{var e;return wt&&typeof localStorage!="undefined"?localStorage.getItem(t):(e=Et.get(t))!=null?e:null},ns=(t,e)=>{wt&&typeof localStorage!="undefined"?e?localStorage.setItem(t,e):localStorage.removeItem(t):e?Et.set(t,e):Et.has(t)&&Et.delete(t)},an=(t,e)=>{if(t==="localStorage"||t==="web")return rs;if(t==="cookie")return r=>{var n;return wt&&(n=Vt.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}`)},cn=(t,e)=>{if(t==="localStorage"||t==="web")return ns;if(t==="cookie")return(r,n)=>{wt&&(n?Vt.set(r,n,{expires:30,sameSite:"lax",httpOnly:!1}):Vt.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}`)},Ke=t=>!t||!t.accessToken.value||!t.refreshToken.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},de=({accessToken:t,isError:e,user:r,error:n})=>e?{session:null,error:n}:r&&t?{session:{accessToken:t,accessTokenExpiresIn:0,refreshToken:"",user:r},error:null}:{session:null,error:null},St=()=>typeof window!="undefined",{fetch:is}=Yt(),un=async(t,e,{token:r,body:n}={})=>{const i={"Content-Type":"application/json",Accept:"*/*"};r&&(i.Authorization=`Bearer ${r}`);const s={method:e,headers:i};n&&(s.body=JSON.stringify(n));try{const o=await is(t,s);if(!o.ok){const u=await o.json();return Promise.reject({error:u})}try{return{data:await o.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 o={message:"Network Error",status:Jt,error:"network"};return Promise.reject({error:o})}},ae=async(t,e,r)=>un(t,"POST",{token:r,body:e}),ln=(t,e)=>un(t,"GET",{token:e}),er=(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},ie=(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 f=i.pathname;return o.pathname.length>1&&(f+=o.pathname.slice(1)),{...n,redirectTo:er(o.origin+f,c)}};function ze(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 tr(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 fe=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,}))$/),Tt=t=>!!t&&typeof t=="string"&&t.length>=Vr,rr=t=>!!t&&typeof t=="string",dn=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),fn=({backendUrl:t,clientUrl:e,clientStorageType:r="web",clientStorage:n,refreshIntervalTime:i,autoRefreshToken:s=!0,autoSignIn:o=!0})=>{const u=an(r,n),c=cn(r,n),f=async(a,d,l)=>(await ae(`${t}${a}`,d,l)).data;return ve({schema:{context:{},events:{},services:{}},tsTypes:{},context:mt,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:["clearContextExceptRefreshToken"],exit:["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_MFA_TOTP:"authenticating.mfa.totp",SIGNIN_PAT:"authenticating.pat"}},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"}}},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"}]}}}},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:[{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"},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"}}},complete:{on:{SIGNED_OUT:"incomplete"}}}}}},{actions:{reportSignedIn:W("SIGNED_IN"),reportSignedOut:W("SIGNED_OUT"),reportTokenChanged:W("TOKEN_CHANGED"),incrementTokenImportAttempts:O({importTokenAttempts:({importTokenAttempts:a})=>a+1}),clearContext:O(()=>(c(Ee,null),c(Ne,null),c(Ve,null),{...mt})),clearContextExceptRefreshToken:O(({refreshToken:{value:a}})=>(c(Ee,null),{...mt,refreshToken:{value:a}})),saveSession:O({user:(a,{data:d})=>{var l;return((l=d==null?void 0:d.session)==null?void 0:l.user)||null},accessToken:(a,{data:d})=>{if(d.session){const{accessTokenExpiresIn:l,accessToken:h}=d.session,v=new Date(Date.now()+l*1e3);return c(Ee,v.toISOString()),{value:h,expiresAt:v,expiresInSeconds:l}}return c(Ee,null),{value:null,expiresAt:null,expiresInSeconds:null}},refreshToken:(a,{data:d})=>{var l,h;const v=((l=d.session)==null?void 0:l.refreshToken)||null,w=((h=d.session)==null?void 0:h.refreshTokenId)||null;return v&&c(Ne,v),w&&c(Ve,w),{value:v}}}),savePATSession:O({user:(a,{data:d})=>{var l;return((l=d==null?void 0:d.session)==null?void 0:l.user)||null},accessToken:(a,{data:d})=>{if(d.session){const{accessTokenExpiresIn:l,accessToken:h}=d.session,v=new Date(Date.now()+l*1e3);return c(Ee,v.toISOString()),{value:h,expiresAt:v,expiresInSeconds:l}}return c(Ee,null),{value:null,expiresAt:null,expiresInSeconds:null}},refreshToken:(a,{data:d})=>{var l,h;const v=((l=d.session)==null?void 0:l.refreshToken)||null,w=((h=d.session)==null?void 0:h.refreshTokenId)||null;return v&&c(Ne,v),w&&c(Ve,w),{value:v,isPAT:!0}}}),saveMfaTicket:O({mfa:(a,d)=>{var l;return(l=d.data)==null?void 0:l.mfa}}),resetTimer:O({refreshTimer:a=>({startedAt:new Date,attempts:0,lastAttempt:null})}),saveRefreshAttempt:O({refreshTimer:(a,d)=>({startedAt:a.refreshTimer.startedAt,attempts:a.refreshTimer.attempts+1,lastAttempt:new Date})}),saveAuthenticationError:O({errors:({errors:a},{data:{error:d}})=>({...a,authentication:d})}),resetErrors:O({errors:a=>({}),importTokenAttempts:a=>0}),saveRegistrationError:O({errors:({errors:a},{data:{error:d}})=>({...a,registration:d})}),destroyRefreshToken:O({refreshToken:a=>(c(Ne,null),c(Ve,null),{value:null})}),cleanUrl:()=>{o&&ze("refreshToken")&&(tr("refreshToken"),tr("type"))},broadcastToken:a=>{if(o)try{new BroadcastChannel("nhost").postMessage(a.refreshToken.value)}catch{}}},guards:{isAnonymous:(a,d)=>{var l;return!!((l=a.user)!=null&&l.isAnonymous)},isSignedIn:a=>!!a.user&&!!a.refreshToken.value&&!!a.accessToken.value,noToken:a=>!a.refreshToken.value,isRefreshTokenPAT:a=>{var d;return!!((d=a.refreshToken)!=null&&d.isPAT)},hasRefreshToken:a=>!!a.refreshToken.value,isAutoRefreshDisabled:()=>!s,refreshTimerShouldRefresh:a=>{const{expiresAt:d}=a.accessToken;if(!d)return!1;if(a.refreshTimer.lastAttempt)return a.refreshTimer.attempts>Wt?!1:Date.now()-a.refreshTimer.lastAttempt.getTime()>Math.pow(2,a.refreshTimer.attempts-1)*5e3;if(i&&Date.now()-a.refreshTimer.startedAt.getTime()>i*1e3)return!0;const l=a.accessToken.expiresInSeconds;return l?d.getTime()-Date.now()-1e3*Math.min(Hr,l*.5)<=0:!1},shouldRetryImportToken:(a,d)=>a.importTokenAttempts<Wt&&(d.data.error.status===Jt||d.data.error.status>=500),unverified:(a,{data:{error:d}})=>d.status===401&&(d.message==="Email is not verified"||d.error==="unverified-user"),hasSession:(a,d)=>{var l;return!!((l=d.data)!=null&&l.session)},hasMfaTicket:(a,d)=>{var l;return!!((l=d.data)!=null&&l.mfa)}},services:{signInPassword:(a,{email:d,password:l})=>fe(d)?Tt(l)?f("/signin/email-password",{email:d,password:l}):Promise.reject({error:yt}):Promise.reject({error:le}),signInPAT:(a,{pat:d})=>f("/signin/pat",{personalAccessToken:d}),passwordlessSms:(a,{phoneNumber:d,options:l})=>{var h;return rr(d)?(h=a.user)!=null&&h.isAnonymous?(console.warn("Deanonymisation from a phone number is not yet implemented in hasura-auth"),f("/user/deanonymize",{signInMethod:"passwordless",connection:"sms",phoneNumber:d,options:ie(e,l)},a.accessToken.value)):f("/signin/passwordless/sms",{phoneNumber:d,options:ie(e,l)}):Promise.reject({error:Qt})},passwordlessSmsOtp:(a,{phoneNumber:d,otp:l})=>rr(d)?f("/signin/passwordless/sms/otp",{phoneNumber:d,otp:l}):Promise.reject({error:Qt}),passwordlessEmail:(a,{email:d,options:l})=>{var h;return fe(d)?(h=a.user)!=null&&h.isAnonymous?f("/user/deanonymize",{signInMethod:"passwordless",connection:"email",email:d,options:ie(e,l)},a.accessToken.value):f("/signin/passwordless/email",{email:d,options:ie(e,l)}):Promise.reject({error:le})},signInAnonymous:a=>f("/signin/anonymous"),signInMfaTotp:(a,d)=>{var l;const h=d.ticket||((l=a.mfa)==null?void 0:l.ticket);return h?dn(h)?f("/signin/mfa/totp",{ticket:h,otp:d.otp}):Promise.reject({error:Yr}):Promise.reject({error:Wr})},signInSecurityKeyEmail:async(a,{email:d})=>{if(!fe(d))throw new He(le);const l=await f("/signin/webauthn",{email:d});let h;try{h=await ts(l)}catch(v){throw new He(v)}return f("/signin/webauthn/verify",{email:d,credential:h})},refreshToken:async(a,d)=>{const l=d.type==="TRY_TOKEN"?d.token:a.refreshToken.value;return{session:await f("/token",{refreshToken:l}),error:null}},signout:(a,d)=>f("/signout",{refreshToken:a.refreshToken.value,all:!!d.all}),signUpEmailPassword:async(a,{email:d,password:l,options:h})=>{var v;return fe(d)?Tt(l)?(v=a.user)!=null&&v.isAnonymous?f("/user/deanonymize",{signInMethod:"email-password",email:d,password:l,options:ie(e,h)},a.accessToken.value):f("/signup/email-password",{email:d,password:l,options:ie(e,h)}):Promise.reject({error:yt}):Promise.reject({error:le})},signUpSecurityKey:async(a,{email:d,options:l})=>{if(!fe(d))return Promise.reject({error:le});const h=l==null?void 0:l.nickname;h&&delete l.nickname;const v=await f("/signup/webauthn",{email:d,options:l});let w;try{w=await on(v)}catch(T){throw new He(T)}return f("/signup/webauthn/verify",{credential:w,options:{redirectTo:l==null?void 0:l.redirectTo,nickname:h}})},importRefreshToken:async a=>{if(a.user&&a.refreshToken.value&&a.accessToken.value&&a.accessToken.expiresAt)return{session:{accessToken:a.accessToken.value,accessTokenExpiresIn:a.accessToken.expiresAt.getTime()-Date.now(),refreshToken:a.refreshToken.value,user:a.user},error:null};let d=null;if(o){const h=ze("refreshToken")||null;if(h)try{return{session:await f("/token",{refreshToken:h}),error:null}}catch(v){d=v.error}else{const v=ze("error");if(v)return Promise.reject({session:null,error:{status:re,error:v,message:ze("errorDescription")||v}})}}const l=await u(Ne);if(l)try{return{session:await f("/token",{refreshToken:l}),error:null}}catch(h){d=h.error}return d?Promise.reject({error:d,session:null}):{error:null,session:null}}},delays:{RETRY_IMPORT_TOKEN_DELAY:({importTokenAttempts:a})=>Math.pow(2,a-1)*5e3}})},hn=({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:O({error:n=>le}),saveRequestError:O({error:(n,{data:{error:i}})=>i}),reportError:W(n=>({type:"ERROR",error:n.error})),reportSuccess:W("SUCCESS")},guards:{invalidEmail:(n,{email:i})=>!fe(i)},services:{requestChange:async(n,{email:i,options:s})=>(await ae(`${t}/user/email/change`,{newEmail:i,options:ie(e,s)},r==null?void 0:r.getSnapshot().context.accessToken.value)).data}}),pn=({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:O({error:r=>yt}),saveRequestError:O({error:(r,{data:{error:n}})=>n}),reportError:W(r=>({type:"ERROR",error:r.error})),reportSuccess:W("SUCCESS")},guards:{invalidPassword:(r,{password:n})=>!Tt(n)},services:{requestChange:(r,{password:n,ticket:i})=>ae(`${t}/user/password`,{newPassword:n,ticket:i},e==null?void 0:e.getSnapshot().context.accessToken.value)}}),ss=({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:O({error:r=>Kr}),saveInvalidMfaCodeError:O({error:r=>zr}),saveError:O({error:(r,{data:{error:n}})=>n}),saveGeneration:O({imageUrl:(r,{data:{imageUrl:n}})=>n,secret:(r,{data:{totpSecret:n}})=>n}),reportError:W((r,n)=>(console.log("REPORT",r,n),{type:"ERROR",error:r.error})),reportSuccess:W("SUCCESS"),reportGeneratedSuccess:W("GENERATED"),reportGeneratedError:W(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 ln(`${t}/mfa/totp/generate`,e==null?void 0:e.getSnapshot().context.accessToken.value);return n},activate:(r,{code:n,activeMfaType:i})=>ae(`${t}/user/mfa`,{code:n,activeMfaType:i},e==null?void 0:e.getSnapshot().context.accessToken.value)}}),vn=({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:O({error:r=>le}),saveRequestError:O({error:(r,{data:{error:n}})=>n}),reportError:W(r=>({type:"ERROR",error:r.error})),reportSuccess:W("SUCCESS")},guards:{invalidEmail:(r,{email:n})=>!fe(n)},services:{requestChange:(r,{email:n,options:i})=>ae(`${t}/user/password/reset`,{email:n,options:ie(e,i)})}}),yn=({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:O({error:r=>le}),saveRequestError:O({error:(r,{data:{error:n}})=>n}),reportError:W(r=>({type:"ERROR",error:r.error})),reportSuccess:W("SUCCESS")},guards:{invalidEmail:(r,{email:n})=>!fe(n)},services:{request:async(r,{email:n,options:i})=>(await ae(`${t}/user/email/send-verification-email`,{email:n,options:ie(e,i)})).data}});class nr{constructor({clientStorageType:e="web",autoSignIn:r=!0,autoRefreshToken:n=!0,start:i=!0,backendUrl:s,clientUrl:o,devTools:u,...c}){if(this._started=!1,this._subscriptionsQueue=new Set,this._subscriptions=new Set,this.backendUrl=s,this.clientUrl=o,this._machine=fn({...c,backendUrl:s,clientUrl:o,clientStorageType:e,autoSignIn:r,autoRefreshToken:n}),i&&this.start({devTools:u}),typeof window!="undefined"&&r)try{this._channel=new BroadcastChannel("nhost"),this._channel.addEventListener("message",f=>{var a;const d=(a=this.interpreter)==null?void 0:a.getSnapshot().context.refreshToken.value;this.interpreter&&f.data!==d&&this.interpreter.send("TRY_TOKEN",{token:f.data})})}catch{}}start({devTools:e=!1,initialSession:r,interpreter:n}={}){var i,s;const o={...this.machine.context};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 mn extends nr{constructor({...e}){super({...e,autoSignIn:St()&&e.autoSignIn,autoRefreshToken:St()&&e.autoRefreshToken,clientStorageType:"cookie"})}}const os=mn,gn=async({backendUrl:t,interpreter:e},r)=>{try{const{data:n}=await ae(`${t}/user/webauthn/add`,{},e==null?void 0:e.getSnapshot().context.accessToken.value);let i;try{i=await on(n)}catch(o){throw new He(o)}const{data:s}=await ae(`${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}}},wn=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})})}),En=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})})}),as=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:""})})}),cs=(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})})}),Sn=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})})}),Tn=(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})})}),bn=t=>new Promise(e=>{const{changed:r}=t.send("SIGNIN_ANONYMOUS");r||e({isSuccess:!1,isError:!0,error:ne,user:null,accessToken:null}),t.onTransition(n=>{n.matches({authentication:"signedIn"})&&e({isSuccess:!0,isError:!1,error:null,user:n.context.user,accessToken:n.context.accessToken.value}),n.matches({authentication:{signedOut:"failed"}})&&e({isSuccess:!1,isError:!0,error:n.context.errors.authentication||null,user:null,accessToken:null})})}),An=(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,error:ne,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,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,needsMfaOtp:!1,mfa:null,user:null}):o.matches({authentication:{signedOut:"needsMfa"}})?n({accessToken: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,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,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,needsMfaOtp:!1,mfa:null,user:o.context.user})})}),ir=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send("PASSWORDLESS_EMAIL",{email:e,options:r});if(!i)return n({error:ne,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})})}),kn=(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,error:ne,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:i.user});t.onTransition(s=>{s.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})?r({accessToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,user:null}):s.matches({authentication:{signedOut:"failed"}})?r({accessToken: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,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,user:s.context.user})})}),On=(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,error:ne,isError:!0,isSuccess:!1,user:s.user});t.onTransition(o=>{o.matches({authentication:{signedOut:"failed"}})?n({accessToken:null,error:o.context.errors.authentication||null,isError:!0,isSuccess:!1,user:null}):o.matches({authentication:"signedIn"})&&n({accessToken:o.context.accessToken.value,error:null,isError:!1,isSuccess:!0,user:o.context.user})})}),In=(t,e)=>new Promise(r=>{const{changed:n}=t.send("SIGNIN_PAT",{pat:e});n||r({isSuccess:!1,isError:!0,error:ne,user:null,accessToken:null}),t.onTransition(i=>{if(i.matches({authentication:{signedOut:"failed"}}))return r({accessToken: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,user:i.context.user,error:null,isError:!1,isSuccess:!0})})}),sr=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send("PASSWORDLESS_SMS",{phoneNumber:e,options:r});if(!i)return n({error:ne,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})})}),xn=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send({type:"PASSWORDLESS_SMS_OTP",phoneNumber:e,otp:r});if(!i)return n({error:ne,isError:!0,isSuccess:!1,user:null,accessToken:null});t.onTransition(s=>{s.matches({authentication:"signedIn"})?n({error:null,isError:!1,isSuccess:!0,user:s.context.user,accessToken:s.context.accessToken.value}):s.matches({registration:{incomplete:"failed"}})&&n({error:s.context.errors.authentication||null,isError:!0,isSuccess:!1,user:null,accessToken:null})})}),Rn=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:Qr});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})})}),or=(t,e,r,n)=>new Promise(i=>{const{changed:s,context:o}=t.send("SIGNUP_EMAIL_PASSWORD",{email:e,password:r,options:n});if(!s)return i({error:ne,accessToken:o.accessToken.value,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:o.user});t.onTransition(u=>{u.matches("registration.incomplete.failed")?i({accessToken:null,error:u.context.errors.registration||null,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:null}):u.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})?i({accessToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,user:null}):u.matches({authentication:"signedIn",registration:"complete"})&&i({accessToken:u.context.accessToken.value,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,user:u.context.user})})}),Pn=(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:ne,accessToken:s.accessToken.value,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:s.user});t.onTransition(o=>{o.matches("registration.incomplete.failed")?n({accessToken: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,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,user:null}):o.matches({authentication:"signedIn",registration:"complete"})&&n({accessToken:o.context.accessToken.value,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,user:o.context.user})})}),us=async({backendUrl:t,interpreter:e},{expiresAt:r,metadata:n})=>{try{const{data:i}=await ae(`${t}/pat`,{expiresAt:r.toUTCString(),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 _n{constructor({url:e,autoRefreshToken:r=!0,autoSignIn:n=!0,clientStorage:i,clientStorageType:s,refreshIntervalTime:o,start:u=!0}){var c;this.url=e,this._client=new nr({backendUrl:e,clientUrl:typeof window!="undefined"&&((c=window.location)==null?void 0:c.origin)||"",autoRefreshToken:r,autoSignIn:n,start:u,clientStorage:i,clientStorageType:s,refreshIntervalTime:o})}async signUp(e){const r=await this.waitUntilReady(),{email:n,options:i}=e;return"securityKey"in e?de(await Pn(r,n,i)):de(await or(r,n,e.password,i))}async signIn(e){const r=await this.waitUntilReady();if(!e){const n=await bn(r);return{...de(n),mfa:null}}if("provider"in e){const{provider:n,options:i}=e,s=er(`${this._client.backendUrl}/signin/provider/${n}`,ie(this._client.clientUrl,i));return St()&&(window.location.href=s),{providerUrl:s,provider:n,session:null,mfa:null,error:null}}if("email"in e&&"password"in e){const n=await An(r,e.email,e.password);return n.needsEmailVerification?{session:null,mfa:null,error:Zr}:n.needsMfaOtp?{session:null,mfa:n.mfa,error:null}:{...de(n),mfa:null}}if("email"in e&&"securityKey"in e){if(e.securityKey!==!0)throw Error("securityKey must be true");const n=await kn(r,e.email);return{...de(n),mfa:null}}if("email"in e){const{email:n,options:i}=e,{error:s}=await ir(r,n,i);return{session:null,mfa:null,error:s}}if("phoneNumber"in e&&"otp"in e){const n=await xn(r,e.phoneNumber,e.otp);return{...de(n),mfa:null}}if("phoneNumber"in e){const{error:n}=await sr(r,e.phoneNumber,e.options);return{error:n,mfa:null,session:null}}if("otp"in e){const n=await On(r,e.otp,e.ticket);return{...de(n),mfa:null}}return{error:tn,mfa:null,session:null}}async signInPAT(e){const r=await this.waitUntilReady(),n=await In(r,e);return de(n)}async signOut(e){const r=await this.waitUntilReady(),{error:n}=await Rn(r,e==null?void 0:e.all);return{error:n}}async resetPassword({email:e,options:r}){const n=xe(vn(this._client)).start(),{error:i}=await Sn(n,e,r);return{error:i}}async changePassword({newPassword:e,ticket:r}){const n=xe(pn(this._client)).start(),{error:i}=await En(n,e,r);return{error:i}}async sendVerificationEmail({email:e,options:r}){const n=xe(yn(this._client)).start(),{error:i}=await Tn(n,e,r);return{error:i}}async changeEmail({newEmail:e,options:r}){const n=xe(hn(this._client)).start(),{error:i}=await wn(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 ir(r,e.email,e.options);return{error:n}}if(e.connection==="sms"){const{error:n}=await sr(r,e.phoneNumber,e.options);return{error:n}}}if(e.signInMethod==="email-password"){const{error:n}=await or(r,e.email,e.password,e.options);return{error:n}}throw Error("Unknown deanonymization method")}async addSecurityKey(e){const{error:r,key:n}=await gn(this._client,e);return{error:r,key:n}}async createPAT(e,r){return us(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(Ke(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,Ke(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?zn(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:Jr});const{changed:s}=r.send("TRY_TOKEN",{token:i});if(!s)return n({session:null,error:Xr});r.onTransition(o=>{o.matches({token:{idle:"error"}})?n({session:null,error:en}):o.event.type==="TOKEN_CHANGED"&&n({session:Ke(o.context),error:null})})})}catch(r){return{session:null,error:r.message}}}getSession(){var e,r;return Ke((r=(e=this._client.interpreter)==null?void 0:e.getSnapshot())==null?void 0:r.context)}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 ls=typeof self=="object"?self.FormData:window.FormData;const Nn=Kt(ls),{fetch:ds}=Yt(),ar=async(t,e,{accessToken:r,name:n,fileId:i,bucketId:s,adminSecret:o,onUploadProgress:u,headers:c={}}={})=>{var f;const a={...c};s&&e.append("bucket-id",s),o&&(a["x-hasura-admin-secret"]=o),r&&(a.Authorization=`Bearer ${r}`);const d=`${t}/files`;if(typeof XMLHttpRequest=="undefined")try{const l=await ds(d,{method:"POST",headers:a,body:e}),h=await l.json();return l.ok?{fileMetadata:h,error:null}:{error:{status:l.status,message:((f=h==null?void 0:h.error)==null?void 0:f.message)||l.statusText,error:l.statusText},fileMetadata:null}}catch(l){return{error:{status:0,message:l.message,error:l.message},fileMetadata:null}}return new Promise(l=>{let h=new XMLHttpRequest;h.responseType="json",h.onload=()=>h.status<200&&h.status>=300?l({fileMetadata:null,error:{error:h.statusText,message:h.statusText,status:h.status}}):l({fileMetadata:h.response,error:null}),h.onerror=()=>l({fileMetadata:null,error:{error:h.statusText,message:h.statusText,status:h.status}}),u&&h.upload.addEventListener("progress",u,!1),h.open("POST",d,!0),Object.entries(a).forEach(([v,w])=>{h.setRequestHeader(v,w)}),h.send(e)})},{fetch:Un}=Yt();class Dn{constructor({url:e}){this.url=e}async uploadFormData({formData:e,headers:r,bucketId:n}){const{error:i,fileMetadata:s}=await ar(this.url,e,{accessToken:this.accessToken,adminSecret:this.adminSecret,bucketId:n,headers:r});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}){const s=new Nn;s.append("file[]",e),s.append("metadata[]",JSON.stringify({id:n,name:i}));const{error:o,fileMetadata:u}=await ar(this.url,s,{accessToken:this.accessToken,adminSecret:this.adminSecret,bucketId:r,fileId:n,name:i});return o?{fileMetadata:null,error:o}:u&&"processedFiles"in u?{fileMetadata:u.processedFiles[0],error:null}:{fileMetadata:u,error:null}}async getPresignedUrl(e){try{const{fileId:r}=e,n=await Un(`${this.url}/files/${r}/presignedurl`,{method:"GET",headers:this.generateAuthHeaders()});if(!n.ok)throw new Error(await n.text());return{presignedUrl:await n.json(),error:null}}catch(r){return{presignedUrl:null,error:r}}}async delete(e){try{const{fileId:r}=e,n=await Un(`${this.url}/files/${r}`,{method:"DELETE",headers:this.generateAuthHeaders()});if(!n.ok)throw new Error(await n.text());return{error:null}}catch(r){return{error:r}}}setAccessToken(e){return this.accessToken=e,this}setAdminSecret(e){return this.adminSecret=e,this}generateAuthHeaders(){if(!(!this.adminSecret&&!this.accessToken))return this.adminSecret?{"x-hasura-admin-secret":this.adminSecret}:{Authorization:`Bearer ${this.accessToken}`}}}function cr(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()}class Cn{constructor({url:e,adminSecret:r}){this.url=e,this.api=new Dn({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 cr(`${this.url}/files/${r}`,n)}async getPresignedUrl(e){const{fileId:r,...n}=e,{presignedUrl:i,error:s}=await this.api.getPresignedUrl(e);if(s)return{presignedUrl:null,error:s};if(!i)return{presignedUrl:null,error:new Error("Invalid file id")};const o=cr(i.url,n);return{presignedUrl:{...i,url:o},error:null}}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}}const bt={progress:null,loaded:0,error:null,bucketId:void 0,file:void 0,id:void 0},Mn=()=>ve({predictableActionArguments:!0,schema:{context:{},events:{}},tsTypes:{},context:{...bt},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:O({loaded:(t,{loaded:e})=>e,progress:(t,{progress:e})=>e}),setFileMetadata:O({id:(t,{id:e})=>e,bucketId:(t,{bucketId:e})=>e,progress:t=>100}),setError:O({error:(t,{error:e})=>e}),sendProgress:()=>{},sendError:()=>{},sendDestroy:()=>{},sendDone:()=>{},resetProgress:O({progress:t=>null,loaded:t=>0}),resetContext:O(t=>bt),addFile:O({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 Nn;i.append("file[]",n);let s=0;return ar(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:f}=o;r({type:"UPLOAD_DONE",id:c,bucketId:f})}if(o&&"processedFiles"in o){const{id:c,bucketId:f}=o.processedFiles[0];r({type:"UPLOAD_DONE",id:c,bucketId:f})}}),()=>{}}}}),{pure:ur,sendParent:At}=Ti,fs=()=>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:O((t,e)=>{const r=t.loaded+e.additions,n=Math.round(r*100/t.total);return{...t,loaded:r,progress:n}}),setUploaded:O({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:O({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:O({loaded:t=>0}),startProgress:O({progress:t=>0}),resetProgress:O({progress:t=>null}),addItem:O((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=>Fi(Mn().withConfig({actions:{sendProgress:At((u,{additions:c})=>({type:"UPLOAD_PROGRESS",additions:c})),sendDone:At("UPLOAD_DONE"),sendError:At("UPLOAD_ERROR"),sendDestroy:At("REMOVE")}}).withContext({...bt,file:o,bucketId:r}),{sync:!0}))],total:i,loaded:t.loaded,progress:s}}),removeItem:O({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:ur(t=>t.files.map(e=>W({type:"DESTROY"},{to:e.id}))),upload:ur((t,e)=>t.files.map(r=>W(e,{to:r.id}))),cancel:ur(t=>t.files.map(e=>W({type:"CANCEL"},{to:e.id})))}}),hs=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})})}),ps=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})})}),vs=/^((?<protocol>http[s]?):\/\/)?(?<host>(localhost|local))(:(?<port>(\d+|__\w+__)))?$/;function kt(t,e){const{backendUrl:r,subdomain:n,region:i}=t;if(r)return`${r}/v1/${e}`;if(!n)throw new Error("Either `backendUrl` or `subdomain` must be set.");const s=n.match(vs);if(s!=null&&s.groups){const{protocol:o,host:u,port:c}=s.groups,f=gs(e);return f||(u==="localhost"?(console.warn('The `subdomain` is set to "localhost". Support for this will be removed in a future release. Please use "local" instead.'),`${o||"http"}://localhost:${c||1337}/v1/${e}`):c?`${o||"https"}://local.${e}.nhost.run:${c}/v1`:`${o||"https"}://local.${e}.nhost.run/v1`)}if(!i)throw new Error('`region` must be set when using a `subdomain` other than "local".');return`https://${n}.${e}.${i}.nhost.run/v1`}function ys(){return typeof window!="undefined"}function ms(){return typeof process!="undefined"&&process.env}function gs(t){return ys()||!ms()?null:process.env[`NHOST_${t.toUpperCase()}_URL`]}function ws(t,e){const n=e.startsWith("/")?e:`/${e}`;return t+n}function Ln(t){const e="subdomain"in t||"backendUrl"in t?kt(t,"auth"):t.authUrl;if(!e)throw new Error("Please provide `subdomain` or `authUrl`.");return new _n({url:e,...t})}function Es(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(a){return u[a.toLowerCase()]},has:function(a){return a.toLowerCase()in u}}}};for(var f in i.open(e.method||"get",t,!0),i.onload=function(){i.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(a,d,l){s.push(d=d.toLowerCase()),o.push([d,l]),u[d]=u[d]?u[d]+","+l:l}),r(c())},i.onerror=n,i.withCredentials=e.credentials=="include",e.headers)i.setRequestHeader(f,e.headers[f]);i.send(e.body||null)})}const jn=Ki(Object.freeze(Object.defineProperty({__proto__:null,default:Es},Symbol.toStringTag,{value:"Module"})));var Ss=self.fetch||(self.fetch=jn.default||jn);const $n=Kt(Ss);function Fn(t){const e="subdomain"in t||"backendUrl"in t?kt(t,"functions"):t.functionsUrl;if(!e)throw new Error("Please provide `subdomain` or `functionsUrl`.");return new qn({url:e,...t})}class qn{constructor(e){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},s=ws(this.url,e);try{const c=await $n(s,{body:r?JSON.stringify(r):null,headers:i,method:"POST"});if(!c.ok){let a;return(o=c.headers.get("content-type"))!=null&&o.includes("application/json")?a=await c.json():a=await c.text(),{res:null,error:{message:a,error:c.statusText,status:c.status}}}let f;return(u=c.headers.get("content-type"))!=null&&u.includes("application/json")?f=await c.json():f=await c.text(),{res:{data:f,status:c.status,statusText:c.statusText},error:null}}catch(c){const f=c;return{res:null,error:{message:f.message,status:f.name==="AbortError"?0:500,error:f.name==="AbortError"?"abort-error":"unknown"}}}}setAccessToken(e){if(!e){this.accessToken=null;return}this.accessToken=e}generateAccessTokenHeaders(){return this.adminSecret?{"x-hasura-admin-secret":this.adminSecret}:this.accessToken?{Authorization:`Bearer ${this.accessToken}`}:{}}}function Ts(t,e,r){return t.document?t:{document:t,variables:e,config:r}}function Bn(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 bs(t){if(typeof t=="string"){let r;try{const n=Te.parse(t);r=Bn(n)}catch{}return{query:t,operationName:r}}const e=Bn(t);return{query:Te.print(t),operationName:e}}class As{constructor(e){const{url:r,adminSecret:n}=e;this._url=r,this.accessToken=null,this.adminSecret=n}async request(e,...r){const[n,i]=r,s=Ts(e,n,i),{headers:o,...u}=i||{},{query:c,operationName:f}=bs(s.document);try{const a=await $n(this.httpUrl,{method:"POST",body:JSON.stringify({operationName:f,query:c,variables:n}),headers:{"Content-Type":"application/json",...this.generateAccessTokenHeaders(),...o},...u});if(!a.ok)return{data:null,error:{error:a.statusText,message:a.statusText,status:a.status}};const{data:d,errors:l}=await a.json();return l?{data:null,error:l}:typeof d!="object"||Array.isArray(d)||d===null?{data:null,error:{error:"invalid-response",message:"incorrect response data from GraphQL server",status:0}}:{data:d,error:null}}catch(a){const d=a;return{data:null,error:{message:d.message,status:d.name==="AbortError"?0:500,error:d.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}generateAccessTokenHeaders(){return this.adminSecret?{"x-hasura-admin-secret":this.adminSecret}:this.accessToken?{Authorization:`Bearer ${this.accessToken}`}:{}}}function Gn(t){const e="subdomain"in t||"backendUrl"in t?kt(t,"graphql"):t.graphqlUrl;if(!e)throw new Error("Please provide `subdomain` or `graphqlUrl`.");return new As({url:e,...t})}function Vn(t){const e="subdomain"in t||"backendUrl"in t?kt(t,"storage"):t.storageUrl;if(!e)throw new Error("Please provide `subdomain` or `storageUrl`.");return new Cn({url:e,...t})}const ks=t=>new Hn(t);class Hn{constructor({refreshIntervalTime:e,clientStorage:r,clientStorageType:n,autoRefreshToken:i,autoSignIn:s,adminSecret:o,devTools:u,start:c=!0,...f}){this.auth=Ln({refreshIntervalTime:e,clientStorage:r,clientStorageType:n,autoRefreshToken:i,autoSignIn:s,start:c,...f}),this.storage=Vn({adminSecret:o,...f}),this.functions=Fn({adminSecret:o,...f}),this.graphql=Gn({adminSecret:o,...f}),this.auth.onAuthStateChanged((a,d)=>{if(a==="SIGNED_OUT"){this.storage.setAccessToken(void 0),this.functions.setAccessToken(void 0),this.graphql.setAccessToken(void 0);return}const l=d==null?void 0:d.accessToken;this.storage.setAccessToken(l),this.functions.setAccessToken(l),this.graphql.setAccessToken(l)}),this.auth.onTokenChanged(a=>{const d=a==null?void 0:a.accessToken;this.storage.setAccessToken(d),this.functions.setAccessToken(d),this.graphql.setAccessToken(d)}),this._adminSecret=o,this.devTools=u}get adminSecret(){return this._adminSecret}set adminSecret(e){this._adminSecret=e,this.storage.setAdminSecret(e)}}y.AuthClient=nr,y.AuthClientSSR=os,y.AuthCookieClient=mn,y.CodifiedError=He,y.EMAIL_NEEDS_VERIFICATION=Zr,y.HasuraAuthClient=_n,y.HasuraStorageApi=Dn,y.HasuraStorageClient=Cn,y.INITIAL_FILE_CONTEXT=bt,y.INITIAL_MACHINE_CONTEXT=mt,y.INVALID_EMAIL_ERROR=le,y.INVALID_MFA_CODE_ERROR=zr,y.INVALID_MFA_TICKET_ERROR=Yr,y.INVALID_MFA_TYPE_ERROR=Kr,y.INVALID_PASSWORD_ERROR=yt,y.INVALID_PHONE_NUMBER_ERROR=Qt,y.INVALID_REFRESH_TOKEN=en,y.INVALID_SIGN_IN_METHOD=tn,y.MIN_PASSWORD_LENGTH=Vr,y.NETWORK_ERROR_CODE=Jt,y.NHOST_JWT_EXPIRES_AT_KEY=Ee,y.NHOST_REFRESH_TOKEN_ID_KEY=Ve,y.NHOST_REFRESH_TOKEN_KEY=Ne,y.NO_MFA_TICKET_ERROR=Wr,y.NO_REFRESH_TOKEN=Jr,y.NhostClient=Hn,y.NhostFunctionsClient=qn,y.OTHER_ERROR_CODE=Xt,y.REFRESH_TOKEN_MAX_ATTEMPTS=Wt,y.STATE_ERROR_CODE=Ue,y.TOKEN_REFRESHER_RUNNING_ERROR=Xr,y.TOKEN_REFRESH_MARGIN_SECONDS=Hr,y.USER_ALREADY_SIGNED_IN=ne,y.USER_NOT_ANONYMOUS=Yi,y.USER_UNAUTHENTICATED=Qr,y.VALIDATION_ERROR_CODE=re,y.activateMfaPromise=cs,y.addSecurityKeyPromise=gn,y.appendImageTransformationParameters=cr,y.changeEmailPromise=wn,y.changePasswordPromise=En,y.createAuthClient=Ln,y.createAuthMachine=fn,y.createChangeEmailMachine=hn,y.createChangePasswordMachine=pn,y.createEnableMfaMachine=ss,y.createFileUploadMachine=Mn,y.createFunctionsClient=Fn,y.createGraphqlClient=Gn,y.createMultipleFilesUploadMachine=fs,y.createNhostClient=ks,y.createResetPasswordMachine=vn,y.createSendVerificationEmailMachine=yn,y.createStorageClient=Vn,y.encodeQueryParameters=er,y.generateQrCodePromise=as,y.getAuthenticationResult=de,y.getFetch=ln,y.getParameterByName=ze,y.getSession=Ke,y.isBrowser=St,y.isValidEmail=fe,y.isValidPassword=Tt,y.isValidPhoneNumber=rr,y.isValidTicket=dn,y.localStorageGetter=an,y.localStorageSetter=cn,y.postFetch=ae,y.removeParameterFromWindow=tr,y.resetPasswordPromise=Sn,y.rewriteRedirectTo=ie,y.sendVerificationEmailPromise=Tn,y.signInAnonymousPromise=bn,y.signInEmailPasswordPromise=An,y.signInEmailPasswordlessPromise=ir,y.signInEmailSecurityKeyPromise=kn,y.signInMfaTotpPromise=On,y.signInPATPromise=In,y.signInSmsPasswordlessOtpPromise=xn,y.signInSmsPasswordlessPromise=sr,y.signOutPromise=Rn,y.signUpEmailPasswordPromise=or,y.signUpEmailSecurityKeyPromise=Pn,y.uploadFilePromise=hs,y.uploadMultipleFilesPromise=ps,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})});
20
+ `)===0?q.substr(1,q.length):q}).forEach(function(q){var D=q.split(":"),L=D.shift().trim();if(L){var De=D.join(":").trim();g.append(L,De)}}),g}N.call(_.prototype);function H(p,g){if(!(this instanceof H))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');g||(g={}),this.type="default",this.status=g.status===void 0?200:g.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in g?g.statusText:"",this.headers=new E(g.headers),this.url=g.url||"",this._initBody(p)}N.call(H.prototype),H.prototype.clone=function(){return new H(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new E(this.headers),url:this.url})},H.error=function(){var p=new H(null,{status:0,statusText:""});return p.type="error",p};var ye=[301,302,303,307,308];H.redirect=function(p,g){if(ye.indexOf(g)===-1)throw new RangeError("Invalid status code");return new H(null,{status:g,headers:{location:p}})},c.DOMException=f.DOMException;try{new c.DOMException}catch{c.DOMException=function(g,k){this.message=g,this.name=k;var q=Error(g);this.stack=q.stack},c.DOMException.prototype=Object.create(Error.prototype),c.DOMException.prototype.constructor=c.DOMException}function Ye(p,g){return new s(function(k,q){var D=new _(p,g);if(D.signal&&D.signal.aborted)return q(new c.DOMException("Aborted","AbortError"));var L=new o;function De(){L.abort()}L.onload=function(){var K={status:L.status,statusText:L.statusText,headers:ee(L.getAllResponseHeaders()||"")};K.url="responseURL"in L?L.responseURL:K.headers.get("X-Request-URL");var Ot="response"in L?L.response:L.responseText;setTimeout(function(){k(new H(Ot,K))},0)},L.onerror=function(){setTimeout(function(){q(new TypeError("Network request failed"))},0)},L.ontimeout=function(){setTimeout(function(){q(new TypeError("Network request failed"))},0)},L.onabort=function(){setTimeout(function(){q(new c.DOMException("Aborted","AbortError"))},0)};function Q(K){try{return K===""&&f.location.href?f.location.href:K}catch{return K}}L.open(D.method,Q(D.url),!0),D.credentials==="include"?L.withCredentials=!0:D.credentials==="omit"&&(L.withCredentials=!1),"responseType"in L&&(a.blob?L.responseType="blob":a.arrayBuffer&&D.headers.get("Content-Type")&&D.headers.get("Content-Type").indexOf("application/octet-stream")!==-1&&(L.responseType="arraybuffer")),g&&typeof g.headers=="object"&&!(g.headers instanceof E)?Object.getOwnPropertyNames(g.headers).forEach(function(K){L.setRequestHeader(K,w(g.headers[K]))}):D.headers.forEach(function(K,Ot){L.setRequestHeader(Ot,K)}),D.signal&&(D.signal.addEventListener("abort",De),L.onreadystatechange=function(){L.readyState===4&&D.signal.removeEventListener("abort",De)}),L.send(typeof D._bodyInit=="undefined"?null:D._bodyInit)})}Ye.polyfill=!0,f.fetch||(f.fetch=Ye,f.Headers=E,f.Request=_,f.Response=H),c.Headers=E,c.Request=_,c.Response=H,c.fetch=Ye,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:Ht)})(zt,zt.exports);var zi=zt.exports;const Yt=Kt(zi),Ne="nhostRefreshToken",Ve="nhostRefreshTokenId",Ee="nhostRefreshTokenExpiresAt",Vr=3,Hr=60,Wt=5,Jt=0,Xt=1,re=10,Ue=20;class He 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:Xt,message:e.message}):(this.name=e.error,this.error=e)}}const le={status:re,error:"invalid-email",message:"Email is incorrectly formatted"},Kr={status:re,error:"invalid-mfa-type",message:"MFA type is invalid"},zr={status:re,error:"invalid-mfa-code",message:"MFA code is invalid"},yt={status:re,error:"invalid-password",message:"Password is incorrectly formatted"},Qt={status:re,error:"invalid-phone-number",message:"Phone number is incorrectly formatted"},Yr={status:re,error:"invalid-mfa-ticket",message:"MFA ticket is invalid"},Wr={status:re,error:"no-mfa-ticket",message:"No MFA ticket has been provided"},Jr={status:re,error:"no-refresh-token",message:"No refresh token has been provided"},Xr={status:Ue,error:"refresher-already-running",message:"The token refresher is already running. You must wait until is has finished before submitting a new token."},ne={status:Ue,error:"already-signed-in",message:"User is already signed in"},Qr={status:Ue,error:"unauthenticated-user",message:"User is not authenticated"},Yi={status:Ue,error:"user-not-anonymous",message:"User is not anonymous"},Zr={status:Ue,error:"unverified-user",message:"Email needs verification"},en={status:re,error:"invalid-refresh-token",message:"Invalid or expired refresh token"},tn={status:Xt,error:"invalid-sign-in-method",message:"Invalid sign-in method"},mt={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 Wi(t){return new TextEncoder().encode(t)}function Se(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 Zt(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 rn(){return(window==null?void 0:window.PublicKeyCredential)!==void 0&&typeof window.PublicKeyCredential=="function"}function nn(t){const{id:e}=t;return{...t,id:Zt(e),transports:t.transports}}function sn(t){return t==="localhost"||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(t)}let X=class extends Error{constructor(e,r="WebAuthnError"){super(e),this.name=r}};function Ji({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===new AbortController().signal)return new X("Registration ceremony was sent an abort signal","AbortError")}else if(t.name==="ConstraintError"){if(((r=i.authenticatorSelection)===null||r===void 0?void 0:r.requireResidentKey)===!0)return new X("Discoverable credentials were required but no available authenticator supported it","ConstraintError");if(((n=i.authenticatorSelection)===null||n===void 0?void 0:n.userVerification)==="required")return new X("User verification was required but no available authenticator supported it","ConstraintError")}else{if(t.name==="InvalidStateError")return new X("The authenticator was previously registered","InvalidStateError");if(t.name==="NotAllowedError")return new X("User clicked cancel, or the registration ceremony timed out","NotAllowedError");if(t.name==="NotSupportedError")return i.pubKeyCredParams.filter(s=>s.type==="public-key").length===0?new X('No entry in pubKeyCredParams was of type "public-key"',"NotSupportedError"):new X("No available authenticator supported any of the specified pubKeyCredParams algorithms","NotSupportedError");if(t.name==="SecurityError"){const s=window.location.hostname;if(sn(s)){if(i.rp.id!==s)return new X(`The RP ID "${i.rp.id}" is invalid for this domain`,"SecurityError")}else return new X(`${window.location.hostname} is an invalid domain`,"SecurityError")}else if(t.name==="TypeError"){if(i.user.id.byteLength<1||i.user.id.byteLength>64)return new X("User ID was not between 1 and 64 characters","TypeError")}else if(t.name==="UnknownError")return new X("The authenticator was unable to process the specified options, or could not create a new credential","UnknownError")}return t}class Xi{createNewAbortSignal(){return this.controller&&this.controller.abort(),this.controller=new AbortController,this.controller.signal}reset(){this.controller=void 0}}const gt=new Xi;async function on(t){if(!rn())throw new Error("WebAuthn is not supported in this browser");const e={publicKey:{...t,challenge:Zt(t.challenge),user:{...t.user,id:Wi(t.user.id)},excludeCredentials:t.excludeCredentials.map(nn)}};e.signal=gt.createNewAbortSignal();let r;try{r=await navigator.credentials.create(e)}catch(c){throw Ji({error:c,options:e})}finally{gt.reset()}if(!r)throw new Error("Registration was not completed");const{id:n,rawId:i,response:s,type:o}=r,u={id:n,rawId:Se(i),response:{attestationObject:Se(s.attestationObject),clientDataJSON:Se(s.clientDataJSON)},type:o,clientExtensionResults:r.getClientExtensionResults(),authenticatorAttachment:r.authenticatorAttachment};return typeof s.getTransports=="function"&&(u.transports=s.getTransports()),u}function Qi(t){return new TextDecoder("utf-8").decode(t)}async function Zi(){if(navigator.credentials.conditionalMediationSupported)return!0;const t=window.PublicKeyCredential;return t.isConditionalMediationAvailable!==void 0&&t.isConditionalMediationAvailable()}function es({error:t,options:e}){var r;const{publicKey:n}=e;if(!n)throw Error("options was missing required publicKey property");if(t.name==="AbortError"){if(e.signal===new AbortController().signal)return new X("Authentication ceremony was sent an abort signal","AbortError")}else{if(t.name==="NotAllowedError")return!((r=n.allowCredentials)===null||r===void 0)&&r.length?new X("No available authenticator recognized any of the allowed credentials","NotAllowedError"):new X("User clicked cancel, or the authentication ceremony timed out","NotAllowedError");if(t.name==="SecurityError"){const i=window.location.hostname;if(sn(i)){if(n.rpId!==i)return new X(`The RP ID "${n.rpId}" is invalid for this domain`,"SecurityError")}else return new X(`${window.location.hostname} is an invalid domain`,"SecurityError")}else if(t.name==="UnknownError")return new X("The authenticator was unable to process the specified options, or could not create a new assertion signature","UnknownError")}return t}async function ts(t,e=!1){var r,n;if(!rn())throw new Error("WebAuthn is not supported in this browser");let i;((r=t.allowCredentials)===null||r===void 0?void 0:r.length)!==0&&(i=(n=t.allowCredentials)===null||n===void 0?void 0:n.map(nn));const s={...t,challenge:Zt(t.challenge),allowCredentials:i},o={};if(e){if(!await Zi())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete*='webauthn']").length<1)throw Error('No <input> with `"webauthn"` in its `autocomplete` attribute was detected');o.mediation="conditional",s.allowCredentials=[]}o.publicKey=s,o.signal=gt.createNewAbortSignal();let u;try{u=await navigator.credentials.get(o)}catch(h){throw es({error:h,options:o})}finally{gt.reset()}if(!u)throw new Error("Authentication was not completed");const{id:c,rawId:f,response:a,type:d}=u;let l;return a.userHandle&&(l=Qi(a.userHandle)),{id:c,rawId:Se(f),response:{authenticatorData:Se(a.authenticatorData),clientDataJSON:Se(a.clientDataJSON),signature:Se(a.signature),userHandle:l},type:d,clientExtensionResults:u.getClientExtensionResults(),authenticatorAttachment:u.authenticatorAttachment}}const wt=typeof window!="undefined",Et=new Map,rs=t=>{var e;return wt&&typeof localStorage!="undefined"?localStorage.getItem(t):(e=Et.get(t))!=null?e:null},ns=(t,e)=>{wt&&typeof localStorage!="undefined"?e?localStorage.setItem(t,e):localStorage.removeItem(t):e?Et.set(t,e):Et.has(t)&&Et.delete(t)},an=(t,e)=>{if(t==="localStorage"||t==="web")return rs;if(t==="cookie")return r=>{var n;return wt&&(n=Vt.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}`)},cn=(t,e)=>{if(t==="localStorage"||t==="web")return ns;if(t==="cookie")return(r,n)=>{wt&&(n?Vt.set(r,n,{expires:30,sameSite:"lax",httpOnly:!1}):Vt.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}`)},Ke=t=>!t||!t.accessToken.value||!t.refreshToken.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},de=({accessToken:t,isError:e,user:r,error:n})=>e?{session:null,error:n}:r&&t?{session:{accessToken:t,accessTokenExpiresIn:0,refreshToken:"",user:r},error:null}:{session:null,error:null},St=()=>typeof window!="undefined",{fetch:is}=Yt(),un=async(t,e,{token:r,body:n}={})=>{const i={"Content-Type":"application/json",Accept:"*/*"};r&&(i.Authorization=`Bearer ${r}`);const s={method:e,headers:i};n&&(s.body=JSON.stringify(n));try{const o=await is(t,s);if(!o.ok){const u=await o.json();return Promise.reject({error:u})}try{return{data:await o.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 o={message:"Network Error",status:Jt,error:"network"};return Promise.reject({error:o})}},ae=async(t,e,r)=>un(t,"POST",{token:r,body:e}),ln=(t,e)=>un(t,"GET",{token:e}),er=(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},ie=(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 f=i.pathname;return o.pathname.length>1&&(f+=o.pathname.slice(1)),{...n,redirectTo:er(o.origin+f,c)}};function ze(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 tr(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 fe=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,}))$/),Tt=t=>!!t&&typeof t=="string"&&t.length>=Vr,rr=t=>!!t&&typeof t=="string",dn=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),fn=({backendUrl:t,clientUrl:e,clientStorageType:r="web",clientStorage:n,refreshIntervalTime:i,autoRefreshToken:s=!0,autoSignIn:o=!0})=>{const u=an(r,n),c=cn(r,n),f=async(a,d,l)=>(await ae(`${t}${a}`,d,l)).data;return ve({schema:{context:{},events:{},services:{}},tsTypes:{},context:mt,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:["clearContextExceptRefreshToken"],exit:["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_MFA_TOTP:"authenticating.mfa.totp",SIGNIN_PAT:"authenticating.pat"}},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"}}},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"}]}}}},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:[{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"},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"}}},complete:{on:{SIGNED_OUT:"incomplete"}}}}}},{actions:{reportSignedIn:W("SIGNED_IN"),reportSignedOut:W("SIGNED_OUT"),reportTokenChanged:W("TOKEN_CHANGED"),incrementTokenImportAttempts:O({importTokenAttempts:({importTokenAttempts:a})=>a+1}),clearContext:O(()=>(c(Ee,null),c(Ne,null),c(Ve,null),{...mt})),clearContextExceptRefreshToken:O(({refreshToken:{value:a}})=>(c(Ee,null),{...mt,refreshToken:{value:a}})),saveSession:O({user:(a,{data:d})=>{var l;return((l=d==null?void 0:d.session)==null?void 0:l.user)||null},accessToken:(a,{data:d})=>{if(d.session){const{accessTokenExpiresIn:l,accessToken:h}=d.session,v=new Date(Date.now()+l*1e3);return c(Ee,v.toISOString()),{value:h,expiresAt:v,expiresInSeconds:l}}return c(Ee,null),{value:null,expiresAt:null,expiresInSeconds:null}},refreshToken:(a,{data:d})=>{var l,h;const v=((l=d.session)==null?void 0:l.refreshToken)||null,w=((h=d.session)==null?void 0:h.refreshTokenId)||null;return v&&c(Ne,v),w&&c(Ve,w),{value:v}}}),savePATSession:O({user:(a,{data:d})=>{var l;return((l=d==null?void 0:d.session)==null?void 0:l.user)||null},accessToken:(a,{data:d})=>{if(d.session){const{accessTokenExpiresIn:l,accessToken:h}=d.session,v=new Date(Date.now()+l*1e3);return c(Ee,v.toISOString()),{value:h,expiresAt:v,expiresInSeconds:l}}return c(Ee,null),{value:null,expiresAt:null,expiresInSeconds:null}},refreshToken:(a,{data:d})=>{var l,h;const v=((l=d.session)==null?void 0:l.refreshToken)||null,w=((h=d.session)==null?void 0:h.refreshTokenId)||null;return v&&c(Ne,v),w&&c(Ve,w),{value:v,isPAT:!0}}}),saveMfaTicket:O({mfa:(a,d)=>{var l;return(l=d.data)==null?void 0:l.mfa}}),resetTimer:O({refreshTimer:a=>({startedAt:new Date,attempts:0,lastAttempt:null})}),saveRefreshAttempt:O({refreshTimer:(a,d)=>({startedAt:a.refreshTimer.startedAt,attempts:a.refreshTimer.attempts+1,lastAttempt:new Date})}),saveAuthenticationError:O({errors:({errors:a},{data:{error:d}})=>({...a,authentication:d})}),resetErrors:O({errors:a=>({}),importTokenAttempts:a=>0}),saveRegistrationError:O({errors:({errors:a},{data:{error:d}})=>({...a,registration:d})}),destroyRefreshToken:O({refreshToken:a=>(c(Ne,null),c(Ve,null),{value:null})}),cleanUrl:()=>{o&&ze("refreshToken")&&(tr("refreshToken"),tr("type"))},broadcastToken:a=>{if(o)try{new BroadcastChannel("nhost").postMessage(a.refreshToken.value)}catch{}}},guards:{isAnonymous:(a,d)=>{var l;return!!((l=a.user)!=null&&l.isAnonymous)},isSignedIn:a=>!!a.user&&!!a.refreshToken.value&&!!a.accessToken.value,noToken:a=>!a.refreshToken.value,isRefreshTokenPAT:a=>{var d;return!!((d=a.refreshToken)!=null&&d.isPAT)},hasRefreshToken:a=>!!a.refreshToken.value,isAutoRefreshDisabled:()=>!s,refreshTimerShouldRefresh:a=>{const{expiresAt:d}=a.accessToken;if(!d)return!1;if(a.refreshTimer.lastAttempt)return a.refreshTimer.attempts>Wt?!1:Date.now()-a.refreshTimer.lastAttempt.getTime()>Math.pow(2,a.refreshTimer.attempts-1)*5e3;if(i&&Date.now()-a.refreshTimer.startedAt.getTime()>i*1e3)return!0;const l=a.accessToken.expiresInSeconds;return l?d.getTime()-Date.now()-1e3*Math.min(Hr,l*.5)<=0:!1},shouldRetryImportToken:(a,d)=>a.importTokenAttempts<Wt&&(d.data.error.status===Jt||d.data.error.status>=500),unverified:(a,{data:{error:d}})=>d.status===401&&(d.message==="Email is not verified"||d.error==="unverified-user"),hasSession:(a,d)=>{var l;return!!((l=d.data)!=null&&l.session)},hasMfaTicket:(a,d)=>{var l;return!!((l=d.data)!=null&&l.mfa)}},services:{signInPassword:(a,{email:d,password:l})=>fe(d)?Tt(l)?f("/signin/email-password",{email:d,password:l}):Promise.reject({error:yt}):Promise.reject({error:le}),signInPAT:(a,{pat:d})=>f("/signin/pat",{personalAccessToken:d}),passwordlessSms:(a,{phoneNumber:d,options:l})=>{var h;return rr(d)?(h=a.user)!=null&&h.isAnonymous?(console.warn("Deanonymisation from a phone number is not yet implemented in hasura-auth"),f("/user/deanonymize",{signInMethod:"passwordless",connection:"sms",phoneNumber:d,options:ie(e,l)},a.accessToken.value)):f("/signin/passwordless/sms",{phoneNumber:d,options:ie(e,l)}):Promise.reject({error:Qt})},passwordlessSmsOtp:(a,{phoneNumber:d,otp:l})=>rr(d)?f("/signin/passwordless/sms/otp",{phoneNumber:d,otp:l}):Promise.reject({error:Qt}),passwordlessEmail:(a,{email:d,options:l})=>{var h;return fe(d)?(h=a.user)!=null&&h.isAnonymous?f("/user/deanonymize",{signInMethod:"passwordless",connection:"email",email:d,options:ie(e,l)},a.accessToken.value):f("/signin/passwordless/email",{email:d,options:ie(e,l)}):Promise.reject({error:le})},signInAnonymous:a=>f("/signin/anonymous"),signInMfaTotp:(a,d)=>{var l;const h=d.ticket||((l=a.mfa)==null?void 0:l.ticket);return h?dn(h)?f("/signin/mfa/totp",{ticket:h,otp:d.otp}):Promise.reject({error:Yr}):Promise.reject({error:Wr})},signInSecurityKeyEmail:async(a,{email:d})=>{if(!fe(d))throw new He(le);const l=await f("/signin/webauthn",{email:d});let h;try{h=await ts(l)}catch(v){throw new He(v)}return f("/signin/webauthn/verify",{email:d,credential:h})},refreshToken:async(a,d)=>{const l=d.type==="TRY_TOKEN"?d.token:a.refreshToken.value;return{session:await f("/token",{refreshToken:l}),error:null}},signout:(a,d)=>f("/signout",{refreshToken:a.refreshToken.value,all:!!d.all}),signUpEmailPassword:async(a,{email:d,password:l,options:h})=>{var v;return fe(d)?Tt(l)?(v=a.user)!=null&&v.isAnonymous?f("/user/deanonymize",{signInMethod:"email-password",email:d,password:l,options:ie(e,h)},a.accessToken.value):f("/signup/email-password",{email:d,password:l,options:ie(e,h)}):Promise.reject({error:yt}):Promise.reject({error:le})},signUpSecurityKey:async(a,{email:d,options:l})=>{if(!fe(d))return Promise.reject({error:le});const h=l==null?void 0:l.nickname;h&&delete l.nickname;const v=await f("/signup/webauthn",{email:d,options:l});let w;try{w=await on(v)}catch(T){throw new He(T)}return f("/signup/webauthn/verify",{credential:w,options:{redirectTo:l==null?void 0:l.redirectTo,nickname:h}})},importRefreshToken:async a=>{if(a.user&&a.refreshToken.value&&a.accessToken.value&&a.accessToken.expiresAt)return{session:{accessToken:a.accessToken.value,accessTokenExpiresIn:a.accessToken.expiresAt.getTime()-Date.now(),refreshToken:a.refreshToken.value,user:a.user},error:null};let d=null;if(o){const h=ze("refreshToken")||null;if(h)try{return{session:await f("/token",{refreshToken:h}),error:null}}catch(v){d=v.error}else{const v=ze("error");if(v)return Promise.reject({session:null,error:{status:re,error:v,message:ze("errorDescription")||v}})}}const l=await u(Ne);if(l)try{return{session:await f("/token",{refreshToken:l}),error:null}}catch(h){d=h.error}return d?Promise.reject({error:d,session:null}):{error:null,session:null}}},delays:{RETRY_IMPORT_TOKEN_DELAY:({importTokenAttempts:a})=>Math.pow(2,a-1)*5e3}})},hn=({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:O({error:n=>le}),saveRequestError:O({error:(n,{data:{error:i}})=>i}),reportError:W(n=>({type:"ERROR",error:n.error})),reportSuccess:W("SUCCESS")},guards:{invalidEmail:(n,{email:i})=>!fe(i)},services:{requestChange:async(n,{email:i,options:s})=>(await ae(`${t}/user/email/change`,{newEmail:i,options:ie(e,s)},r==null?void 0:r.getSnapshot().context.accessToken.value)).data}}),pn=({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:O({error:r=>yt}),saveRequestError:O({error:(r,{data:{error:n}})=>n}),reportError:W(r=>({type:"ERROR",error:r.error})),reportSuccess:W("SUCCESS")},guards:{invalidPassword:(r,{password:n})=>!Tt(n)},services:{requestChange:(r,{password:n,ticket:i})=>ae(`${t}/user/password`,{newPassword:n,ticket:i},e==null?void 0:e.getSnapshot().context.accessToken.value)}}),ss=({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:O({error:r=>Kr}),saveInvalidMfaCodeError:O({error:r=>zr}),saveError:O({error:(r,{data:{error:n}})=>n}),saveGeneration:O({imageUrl:(r,{data:{imageUrl:n}})=>n,secret:(r,{data:{totpSecret:n}})=>n}),reportError:W((r,n)=>(console.log("REPORT",r,n),{type:"ERROR",error:r.error})),reportSuccess:W("SUCCESS"),reportGeneratedSuccess:W("GENERATED"),reportGeneratedError:W(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 ln(`${t}/mfa/totp/generate`,e==null?void 0:e.getSnapshot().context.accessToken.value);return n},activate:(r,{code:n,activeMfaType:i})=>ae(`${t}/user/mfa`,{code:n,activeMfaType:i},e==null?void 0:e.getSnapshot().context.accessToken.value)}}),vn=({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:O({error:r=>le}),saveRequestError:O({error:(r,{data:{error:n}})=>n}),reportError:W(r=>({type:"ERROR",error:r.error})),reportSuccess:W("SUCCESS")},guards:{invalidEmail:(r,{email:n})=>!fe(n)},services:{requestChange:(r,{email:n,options:i})=>ae(`${t}/user/password/reset`,{email:n,options:ie(e,i)})}}),yn=({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:O({error:r=>le}),saveRequestError:O({error:(r,{data:{error:n}})=>n}),reportError:W(r=>({type:"ERROR",error:r.error})),reportSuccess:W("SUCCESS")},guards:{invalidEmail:(r,{email:n})=>!fe(n)},services:{request:async(r,{email:n,options:i})=>(await ae(`${t}/user/email/send-verification-email`,{email:n,options:ie(e,i)})).data}});class nr{constructor({clientStorageType:e="web",autoSignIn:r=!0,autoRefreshToken:n=!0,start:i=!0,backendUrl:s,clientUrl:o,devTools:u,...c}){if(this._started=!1,this._subscriptionsQueue=new Set,this._subscriptions=new Set,this.backendUrl=s,this.clientUrl=o,this._machine=fn({...c,backendUrl:s,clientUrl:o,clientStorageType:e,autoSignIn:r,autoRefreshToken:n}),i&&this.start({devTools:u}),typeof window!="undefined"&&r)try{this._channel=new BroadcastChannel("nhost"),this._channel.addEventListener("message",f=>{var a;const d=(a=this.interpreter)==null?void 0:a.getSnapshot().context.refreshToken.value;this.interpreter&&f.data!==d&&this.interpreter.send("TRY_TOKEN",{token:f.data})})}catch{}}start({devTools:e=!1,initialSession:r,interpreter:n}={}){var i,s;const o={...this.machine.context};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 mn extends nr{constructor({...e}){super({...e,autoSignIn:St()&&e.autoSignIn,autoRefreshToken:St()&&e.autoRefreshToken,clientStorageType:"cookie"})}}const os=mn,gn=async({backendUrl:t,interpreter:e},r)=>{try{const{data:n}=await ae(`${t}/user/webauthn/add`,{},e==null?void 0:e.getSnapshot().context.accessToken.value);let i;try{i=await on(n)}catch(o){throw new He(o)}const{data:s}=await ae(`${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}}},wn=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})})}),En=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})})}),as=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:""})})}),cs=(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})})}),Sn=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})})}),Tn=(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})})}),bn=t=>new Promise(e=>{const{changed:r}=t.send("SIGNIN_ANONYMOUS");r||e({isSuccess:!1,isError:!0,error:ne,user:null,accessToken:null}),t.onTransition(n=>{n.matches({authentication:"signedIn"})&&e({isSuccess:!0,isError:!1,error:null,user:n.context.user,accessToken:n.context.accessToken.value}),n.matches({authentication:{signedOut:"failed"}})&&e({isSuccess:!1,isError:!0,error:n.context.errors.authentication||null,user:null,accessToken:null})})}),An=(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,error:ne,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,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,needsMfaOtp:!1,mfa:null,user:null}):o.matches({authentication:{signedOut:"needsMfa"}})?n({accessToken: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,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,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,needsMfaOtp:!1,mfa:null,user:o.context.user})})}),ir=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send("PASSWORDLESS_EMAIL",{email:e,options:r});if(!i)return n({error:ne,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})})}),kn=(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,error:ne,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:i.user});t.onTransition(s=>{s.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})?r({accessToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,user:null}):s.matches({authentication:{signedOut:"failed"}})?r({accessToken: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,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,user:s.context.user})})}),On=(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,error:ne,isError:!0,isSuccess:!1,user:s.user});t.onTransition(o=>{o.matches({authentication:{signedOut:"failed"}})?n({accessToken:null,error:o.context.errors.authentication||null,isError:!0,isSuccess:!1,user:null}):o.matches({authentication:"signedIn"})&&n({accessToken:o.context.accessToken.value,error:null,isError:!1,isSuccess:!0,user:o.context.user})})}),In=(t,e)=>new Promise(r=>{const{changed:n}=t.send("SIGNIN_PAT",{pat:e});n||r({isSuccess:!1,isError:!0,error:ne,user:null,accessToken:null}),t.onTransition(i=>{if(i.matches({authentication:{signedOut:"failed"}}))return r({accessToken: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,user:i.context.user,error:null,isError:!1,isSuccess:!0})})}),sr=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send("PASSWORDLESS_SMS",{phoneNumber:e,options:r});if(!i)return n({error:ne,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})})}),xn=(t,e,r)=>new Promise(n=>{const{changed:i}=t.send({type:"PASSWORDLESS_SMS_OTP",phoneNumber:e,otp:r});if(!i)return n({error:ne,isError:!0,isSuccess:!1,user:null,accessToken:null});t.onTransition(s=>{s.matches({authentication:"signedIn"})?n({error:null,isError:!1,isSuccess:!0,user:s.context.user,accessToken:s.context.accessToken.value}):s.matches({registration:{incomplete:"failed"}})&&n({error:s.context.errors.authentication||null,isError:!0,isSuccess:!1,user:null,accessToken:null})})}),Rn=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:Qr});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})})}),or=(t,e,r,n)=>new Promise(i=>{const{changed:s,context:o}=t.send("SIGNUP_EMAIL_PASSWORD",{email:e,password:r,options:n});if(!s)return i({error:ne,accessToken:o.accessToken.value,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:o.user});t.onTransition(u=>{u.matches("registration.incomplete.failed")?i({accessToken:null,error:u.context.errors.registration||null,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:null}):u.matches({authentication:{signedOut:"noErrors"},registration:{incomplete:"needsEmailVerification"}})?i({accessToken:null,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,user:null}):u.matches({authentication:"signedIn",registration:"complete"})&&i({accessToken:u.context.accessToken.value,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,user:u.context.user})})}),Pn=(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:ne,accessToken:s.accessToken.value,isError:!0,isSuccess:!1,needsEmailVerification:!1,user:s.user});t.onTransition(o=>{o.matches("registration.incomplete.failed")?n({accessToken: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,error:null,isError:!1,isSuccess:!1,needsEmailVerification:!0,user:null}):o.matches({authentication:"signedIn",registration:"complete"})&&n({accessToken:o.context.accessToken.value,error:null,isError:!1,isSuccess:!0,needsEmailVerification:!1,user:o.context.user})})}),us=async({backendUrl:t,interpreter:e},{expiresAt:r,metadata:n})=>{try{const{data:i}=await ae(`${t}/pat`,{expiresAt:r.toUTCString(),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 _n{constructor({url:e,autoRefreshToken:r=!0,autoSignIn:n=!0,clientStorage:i,clientStorageType:s,refreshIntervalTime:o,start:u=!0}){var c;this.url=e,this._client=new nr({backendUrl:e,clientUrl:typeof window!="undefined"&&((c=window.location)==null?void 0:c.origin)||"",autoRefreshToken:r,autoSignIn:n,start:u,clientStorage:i,clientStorageType:s,refreshIntervalTime:o})}async signUp(e){const r=await this.waitUntilReady(),{email:n,options:i}=e;return"securityKey"in e?de(await Pn(r,n,i)):de(await or(r,n,e.password,i))}async signIn(e){const r=await this.waitUntilReady();if(!e){const n=await bn(r);return{...de(n),mfa:null}}if("provider"in e){const{provider:n,options:i}=e,s=er(`${this._client.backendUrl}/signin/provider/${n}`,ie(this._client.clientUrl,i));return St()&&(window.location.href=s),{providerUrl:s,provider:n,session:null,mfa:null,error:null}}if("email"in e&&"password"in e){const n=await An(r,e.email,e.password);return n.needsEmailVerification?{session:null,mfa:null,error:Zr}:n.needsMfaOtp?{session:null,mfa:n.mfa,error:null}:{...de(n),mfa:null}}if("email"in e&&"securityKey"in e){if(e.securityKey!==!0)throw Error("securityKey must be true");const n=await kn(r,e.email);return{...de(n),mfa:null}}if("email"in e){const{email:n,options:i}=e,{error:s}=await ir(r,n,i);return{session:null,mfa:null,error:s}}if("phoneNumber"in e&&"otp"in e){const n=await xn(r,e.phoneNumber,e.otp);return{...de(n),mfa:null}}if("phoneNumber"in e){const{error:n}=await sr(r,e.phoneNumber,e.options);return{error:n,mfa:null,session:null}}if("otp"in e){const n=await On(r,e.otp,e.ticket);return{...de(n),mfa:null}}return{error:tn,mfa:null,session:null}}async signInPAT(e){const r=await this.waitUntilReady(),n=await In(r,e);return de(n)}async signOut(e){const r=await this.waitUntilReady(),{error:n}=await Rn(r,e==null?void 0:e.all);return{error:n}}async resetPassword({email:e,options:r}){const n=xe(vn(this._client)).start(),{error:i}=await Sn(n,e,r);return{error:i}}async changePassword({newPassword:e,ticket:r}){const n=xe(pn(this._client)).start(),{error:i}=await En(n,e,r);return{error:i}}async sendVerificationEmail({email:e,options:r}){const n=xe(yn(this._client)).start(),{error:i}=await Tn(n,e,r);return{error:i}}async changeEmail({newEmail:e,options:r}){const n=xe(hn(this._client)).start(),{error:i}=await wn(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 ir(r,e.email,e.options);return{error:n}}if(e.connection==="sms"){const{error:n}=await sr(r,e.phoneNumber,e.options);return{error:n}}}if(e.signInMethod==="email-password"){const{error:n}=await or(r,e.email,e.password,e.options);return{error:n}}throw Error("Unknown deanonymization method")}async addSecurityKey(e){const{error:r,key:n}=await gn(this._client,e);return{error:r,key:n}}async createPAT(e,r){return us(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(Ke(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,Ke(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?zn(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:Jr});const{changed:s}=r.send("TRY_TOKEN",{token:i});if(!s)return n({session:null,error:Xr});r.onTransition(o=>{o.matches({token:{idle:"error"}})?n({session:null,error:en}):o.event.type==="TOKEN_CHANGED"&&n({session:Ke(o.context),error:null})})})}catch(r){return{session:null,error:r.message}}}getSession(){var e,r;return Ke((r=(e=this._client.interpreter)==null?void 0:e.getSnapshot())==null?void 0:r.context)}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 ls=typeof self=="object"?self.FormData:window.FormData;const Nn=Kt(ls),{fetch:ds}=Yt(),ar=async(t,e,{accessToken:r,name:n,fileId:i,bucketId:s,adminSecret:o,onUploadProgress:u,headers:c={}}={})=>{var f;const a={...c};s&&e.append("bucket-id",s),o&&(a["x-hasura-admin-secret"]=o),r&&(a.Authorization=`Bearer ${r}`);const d=`${t}/files`;if(typeof XMLHttpRequest=="undefined")try{const l=await ds(d,{method:"POST",headers:a,body:e}),h=await l.json();return l.ok?{fileMetadata:h,error:null}:{error:{status:l.status,message:((f=h==null?void 0:h.error)==null?void 0:f.message)||l.statusText,error:l.statusText},fileMetadata:null}}catch(l){return{error:{status:0,message:l.message,error:l.message},fileMetadata:null}}return new Promise(l=>{let h=new XMLHttpRequest;h.responseType="json",h.onload=()=>{var v,w,T,E,S;return h.status<200||h.status>=300?l({fileMetadata:null,error:{error:(w=(v=h.response)==null?void 0:v.error)!=null?w:h.response,message:(S=(E=(T=h.response)==null?void 0:T.error)==null?void 0:E.message)!=null?S:h.response,status:h.status}}):l({fileMetadata:h.response,error:null})},h.onerror=()=>l({fileMetadata:null,error:{error:h.statusText,message:h.statusText,status:h.status}}),u&&h.upload.addEventListener("progress",u,!1),h.open("POST",d,!0),Object.entries(a).forEach(([v,w])=>{h.setRequestHeader(v,w)}),h.send(e)})},{fetch:Un}=Yt();class Dn{constructor({url:e}){this.url=e}async uploadFormData({formData:e,headers:r,bucketId:n}){const{error:i,fileMetadata:s}=await ar(this.url,e,{accessToken:this.accessToken,adminSecret:this.adminSecret,bucketId:n,headers:r});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}){const s=new Nn;s.append("file[]",e),s.append("metadata[]",JSON.stringify({id:n,name:i}));const{error:o,fileMetadata:u}=await ar(this.url,s,{accessToken:this.accessToken,adminSecret:this.adminSecret,bucketId:r,fileId:n,name:i});return o?{fileMetadata:null,error:o}:u&&"processedFiles"in u?{fileMetadata:u.processedFiles[0],error:null}:{fileMetadata:u,error:null}}async getPresignedUrl(e){try{const{fileId:r}=e,n=await Un(`${this.url}/files/${r}/presignedurl`,{method:"GET",headers:this.generateAuthHeaders()});if(!n.ok)throw new Error(await n.text());return{presignedUrl:await n.json(),error:null}}catch(r){return{presignedUrl:null,error:r}}}async delete(e){try{const{fileId:r}=e,n=await Un(`${this.url}/files/${r}`,{method:"DELETE",headers:this.generateAuthHeaders()});if(!n.ok)throw new Error(await n.text());return{error:null}}catch(r){return{error:r}}}setAccessToken(e){return this.accessToken=e,this}setAdminSecret(e){return this.adminSecret=e,this}generateAuthHeaders(){if(!(!this.adminSecret&&!this.accessToken))return this.adminSecret?{"x-hasura-admin-secret":this.adminSecret}:{Authorization:`Bearer ${this.accessToken}`}}}function cr(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()}class Cn{constructor({url:e,adminSecret:r}){this.url=e,this.api=new Dn({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 cr(`${this.url}/files/${r}`,n)}async getPresignedUrl(e){const{fileId:r,...n}=e,{presignedUrl:i,error:s}=await this.api.getPresignedUrl(e);if(s)return{presignedUrl:null,error:s};if(!i)return{presignedUrl:null,error:new Error("Invalid file id")};const o=cr(i.url,n);return{presignedUrl:{...i,url:o},error:null}}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}}const bt={progress:null,loaded:0,error:null,bucketId:void 0,file:void 0,id:void 0},Mn=()=>ve({predictableActionArguments:!0,schema:{context:{},events:{}},tsTypes:{},context:{...bt},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:O({loaded:(t,{loaded:e})=>e,progress:(t,{progress:e})=>e}),setFileMetadata:O({id:(t,{id:e})=>e,bucketId:(t,{bucketId:e})=>e,progress:t=>100}),setError:O({error:(t,{error:e})=>e}),sendProgress:()=>{},sendError:()=>{},sendDestroy:()=>{},sendDone:()=>{},resetProgress:O({progress:t=>null,loaded:t=>0}),resetContext:O(t=>bt),addFile:O({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 Nn;i.append("file[]",n);let s=0;return ar(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:f}=o;r({type:"UPLOAD_DONE",id:c,bucketId:f})}if(o&&"processedFiles"in o){const{id:c,bucketId:f}=o.processedFiles[0];r({type:"UPLOAD_DONE",id:c,bucketId:f})}}),()=>{}}}}),{pure:ur,sendParent:At}=Ti,fs=()=>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:O((t,e)=>{const r=t.loaded+e.additions,n=Math.round(r*100/t.total);return{...t,loaded:r,progress:n}}),setUploaded:O({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:O({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:O({loaded:t=>0}),startProgress:O({progress:t=>0}),resetProgress:O({progress:t=>null}),addItem:O((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=>Fi(Mn().withConfig({actions:{sendProgress:At((u,{additions:c})=>({type:"UPLOAD_PROGRESS",additions:c})),sendDone:At("UPLOAD_DONE"),sendError:At("UPLOAD_ERROR"),sendDestroy:At("REMOVE")}}).withContext({...bt,file:o,bucketId:r}),{sync:!0}))],total:i,loaded:t.loaded,progress:s}}),removeItem:O({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:ur(t=>t.files.map(e=>W({type:"DESTROY"},{to:e.id}))),upload:ur((t,e)=>t.files.map(r=>W(e,{to:r.id}))),cancel:ur(t=>t.files.map(e=>W({type:"CANCEL"},{to:e.id})))}}),hs=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})})}),ps=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})})}),vs=/^((?<protocol>http[s]?):\/\/)?(?<host>(localhost|local))(:(?<port>(\d+|__\w+__)))?$/;function kt(t,e){const{backendUrl:r,subdomain:n,region:i}=t;if(r)return`${r}/v1/${e}`;if(!n)throw new Error("Either `backendUrl` or `subdomain` must be set.");const s=n.match(vs);if(s!=null&&s.groups){const{protocol:o,host:u,port:c}=s.groups,f=gs(e);return f||(u==="localhost"?(console.warn('The `subdomain` is set to "localhost". Support for this will be removed in a future release. Please use "local" instead.'),`${o||"http"}://localhost:${c||1337}/v1/${e}`):c?`${o||"https"}://local.${e}.nhost.run:${c}/v1`:`${o||"https"}://local.${e}.nhost.run/v1`)}if(!i)throw new Error('`region` must be set when using a `subdomain` other than "local".');return`https://${n}.${e}.${i}.nhost.run/v1`}function ys(){return typeof window!="undefined"}function ms(){return typeof process!="undefined"&&process.env}function gs(t){return ys()||!ms()?null:process.env[`NHOST_${t.toUpperCase()}_URL`]}function ws(t,e){const n=e.startsWith("/")?e:`/${e}`;return t+n}function Ln(t){const e="subdomain"in t||"backendUrl"in t?kt(t,"auth"):t.authUrl;if(!e)throw new Error("Please provide `subdomain` or `authUrl`.");return new _n({url:e,...t})}function Es(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(a){return u[a.toLowerCase()]},has:function(a){return a.toLowerCase()in u}}}};for(var f in i.open(e.method||"get",t,!0),i.onload=function(){i.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(a,d,l){s.push(d=d.toLowerCase()),o.push([d,l]),u[d]=u[d]?u[d]+","+l:l}),r(c())},i.onerror=n,i.withCredentials=e.credentials=="include",e.headers)i.setRequestHeader(f,e.headers[f]);i.send(e.body||null)})}const jn=Ki(Object.freeze(Object.defineProperty({__proto__:null,default:Es},Symbol.toStringTag,{value:"Module"})));var Ss=self.fetch||(self.fetch=jn.default||jn);const $n=Kt(Ss);function Fn(t){const e="subdomain"in t||"backendUrl"in t?kt(t,"functions"):t.functionsUrl;if(!e)throw new Error("Please provide `subdomain` or `functionsUrl`.");return new qn({url:e,...t})}class qn{constructor(e){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},s=ws(this.url,e);try{const c=await $n(s,{body:r?JSON.stringify(r):null,headers:i,method:"POST"});if(!c.ok){let a;return(o=c.headers.get("content-type"))!=null&&o.includes("application/json")?a=await c.json():a=await c.text(),{res:null,error:{message:a,error:c.statusText,status:c.status}}}let f;return(u=c.headers.get("content-type"))!=null&&u.includes("application/json")?f=await c.json():f=await c.text(),{res:{data:f,status:c.status,statusText:c.statusText},error:null}}catch(c){const f=c;return{res:null,error:{message:f.message,status:f.name==="AbortError"?0:500,error:f.name==="AbortError"?"abort-error":"unknown"}}}}setAccessToken(e){if(!e){this.accessToken=null;return}this.accessToken=e}generateAccessTokenHeaders(){return this.adminSecret?{"x-hasura-admin-secret":this.adminSecret}:this.accessToken?{Authorization:`Bearer ${this.accessToken}`}:{}}}function Ts(t,e,r){return t.document?t:{document:t,variables:e,config:r}}function Bn(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 bs(t){if(typeof t=="string"){let r;try{const n=Te.parse(t);r=Bn(n)}catch{}return{query:t,operationName:r}}const e=Bn(t);return{query:Te.print(t),operationName:e}}class As{constructor(e){const{url:r,adminSecret:n}=e;this._url=r,this.accessToken=null,this.adminSecret=n}async request(e,...r){const[n,i]=r,s=Ts(e,n,i),{headers:o,...u}=i||{},{query:c,operationName:f}=bs(s.document);try{const a=await $n(this.httpUrl,{method:"POST",body:JSON.stringify({operationName:f,query:c,variables:n}),headers:{"Content-Type":"application/json",...this.generateAccessTokenHeaders(),...o},...u});if(!a.ok)return{data:null,error:{error:a.statusText,message:a.statusText,status:a.status}};const{data:d,errors:l}=await a.json();return l?{data:null,error:l}:typeof d!="object"||Array.isArray(d)||d===null?{data:null,error:{error:"invalid-response",message:"incorrect response data from GraphQL server",status:0}}:{data:d,error:null}}catch(a){const d=a;return{data:null,error:{message:d.message,status:d.name==="AbortError"?0:500,error:d.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}generateAccessTokenHeaders(){return this.adminSecret?{"x-hasura-admin-secret":this.adminSecret}:this.accessToken?{Authorization:`Bearer ${this.accessToken}`}:{}}}function Gn(t){const e="subdomain"in t||"backendUrl"in t?kt(t,"graphql"):t.graphqlUrl;if(!e)throw new Error("Please provide `subdomain` or `graphqlUrl`.");return new As({url:e,...t})}function Vn(t){const e="subdomain"in t||"backendUrl"in t?kt(t,"storage"):t.storageUrl;if(!e)throw new Error("Please provide `subdomain` or `storageUrl`.");return new Cn({url:e,...t})}const ks=t=>new Hn(t);class Hn{constructor({refreshIntervalTime:e,clientStorage:r,clientStorageType:n,autoRefreshToken:i,autoSignIn:s,adminSecret:o,devTools:u,start:c=!0,...f}){this.auth=Ln({refreshIntervalTime:e,clientStorage:r,clientStorageType:n,autoRefreshToken:i,autoSignIn:s,start:c,...f}),this.storage=Vn({adminSecret:o,...f}),this.functions=Fn({adminSecret:o,...f}),this.graphql=Gn({adminSecret:o,...f}),this.auth.onAuthStateChanged((a,d)=>{if(a==="SIGNED_OUT"){this.storage.setAccessToken(void 0),this.functions.setAccessToken(void 0),this.graphql.setAccessToken(void 0);return}const l=d==null?void 0:d.accessToken;this.storage.setAccessToken(l),this.functions.setAccessToken(l),this.graphql.setAccessToken(l)}),this.auth.onTokenChanged(a=>{const d=a==null?void 0:a.accessToken;this.storage.setAccessToken(d),this.functions.setAccessToken(d),this.graphql.setAccessToken(d)}),this._adminSecret=o,this.devTools=u}get adminSecret(){return this._adminSecret}set adminSecret(e){this._adminSecret=e,this.storage.setAdminSecret(e)}}y.AuthClient=nr,y.AuthClientSSR=os,y.AuthCookieClient=mn,y.CodifiedError=He,y.EMAIL_NEEDS_VERIFICATION=Zr,y.HasuraAuthClient=_n,y.HasuraStorageApi=Dn,y.HasuraStorageClient=Cn,y.INITIAL_FILE_CONTEXT=bt,y.INITIAL_MACHINE_CONTEXT=mt,y.INVALID_EMAIL_ERROR=le,y.INVALID_MFA_CODE_ERROR=zr,y.INVALID_MFA_TICKET_ERROR=Yr,y.INVALID_MFA_TYPE_ERROR=Kr,y.INVALID_PASSWORD_ERROR=yt,y.INVALID_PHONE_NUMBER_ERROR=Qt,y.INVALID_REFRESH_TOKEN=en,y.INVALID_SIGN_IN_METHOD=tn,y.MIN_PASSWORD_LENGTH=Vr,y.NETWORK_ERROR_CODE=Jt,y.NHOST_JWT_EXPIRES_AT_KEY=Ee,y.NHOST_REFRESH_TOKEN_ID_KEY=Ve,y.NHOST_REFRESH_TOKEN_KEY=Ne,y.NO_MFA_TICKET_ERROR=Wr,y.NO_REFRESH_TOKEN=Jr,y.NhostClient=Hn,y.NhostFunctionsClient=qn,y.OTHER_ERROR_CODE=Xt,y.REFRESH_TOKEN_MAX_ATTEMPTS=Wt,y.STATE_ERROR_CODE=Ue,y.TOKEN_REFRESHER_RUNNING_ERROR=Xr,y.TOKEN_REFRESH_MARGIN_SECONDS=Hr,y.USER_ALREADY_SIGNED_IN=ne,y.USER_NOT_ANONYMOUS=Yi,y.USER_UNAUTHENTICATED=Qr,y.VALIDATION_ERROR_CODE=re,y.activateMfaPromise=cs,y.addSecurityKeyPromise=gn,y.appendImageTransformationParameters=cr,y.changeEmailPromise=wn,y.changePasswordPromise=En,y.createAuthClient=Ln,y.createAuthMachine=fn,y.createChangeEmailMachine=hn,y.createChangePasswordMachine=pn,y.createEnableMfaMachine=ss,y.createFileUploadMachine=Mn,y.createFunctionsClient=Fn,y.createGraphqlClient=Gn,y.createMultipleFilesUploadMachine=fs,y.createNhostClient=ks,y.createResetPasswordMachine=vn,y.createSendVerificationEmailMachine=yn,y.createStorageClient=Vn,y.encodeQueryParameters=er,y.generateQrCodePromise=as,y.getAuthenticationResult=de,y.getFetch=ln,y.getParameterByName=ze,y.getSession=Ke,y.isBrowser=St,y.isValidEmail=fe,y.isValidPassword=Tt,y.isValidPhoneNumber=rr,y.isValidTicket=dn,y.localStorageGetter=an,y.localStorageSetter=cn,y.postFetch=ae,y.removeParameterFromWindow=tr,y.resetPasswordPromise=Sn,y.rewriteRedirectTo=ie,y.sendVerificationEmailPromise=Tn,y.signInAnonymousPromise=bn,y.signInEmailPasswordPromise=An,y.signInEmailPasswordlessPromise=ir,y.signInEmailSecurityKeyPromise=kn,y.signInMfaTotpPromise=On,y.signInPATPromise=In,y.signInSmsPasswordlessOtpPromise=xn,y.signInSmsPasswordlessPromise=sr,y.signOutPromise=Rn,y.signUpEmailPasswordPromise=or,y.signUpEmailSecurityKeyPromise=Pn,y.uploadFilePromise=hs,y.uploadMultipleFilesPromise=ps,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})});
21
21
  //# sourceMappingURL=nhost-js.umd.js.map