xstate 5.0.0-beta.31 → 5.0.0-beta.32

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.
@@ -408,6 +408,10 @@ class StateMachine {
408
408
  this.version = this.config.version;
409
409
  this.types = this.config.types ?? {};
410
410
  this.transition = this.transition.bind(this);
411
+ this.getInitialState = this.getInitialState.bind(this);
412
+ this.restoreState = this.restoreState.bind(this);
413
+ this.start = this.start.bind(this);
414
+ this.getPersistedState = this.getPersistedState.bind(this);
411
415
  this.root = new StateNode(config, {
412
416
  _key: this.id,
413
417
  _machine: this
@@ -602,6 +606,7 @@ class StateMachine {
602
606
  const actorState = logic.restoreState?.(childState, _actorCtx);
603
607
  const actorRef = interpreter.createActor(logic, {
604
608
  id: actorId,
609
+ parent: _actorCtx?.self,
605
610
  state: actorState
606
611
  });
607
612
  children[actorId] = actorRef;
@@ -408,6 +408,10 @@ class StateMachine {
408
408
  this.version = this.config.version;
409
409
  this.types = this.config.types ?? {};
410
410
  this.transition = this.transition.bind(this);
411
+ this.getInitialState = this.getInitialState.bind(this);
412
+ this.restoreState = this.restoreState.bind(this);
413
+ this.start = this.start.bind(this);
414
+ this.getPersistedState = this.getPersistedState.bind(this);
411
415
  this.root = new StateNode(config, {
412
416
  _key: this.id,
413
417
  _machine: this
@@ -605,6 +609,7 @@ class StateMachine {
605
609
  const actorState = logic.restoreState?.(childState, _actorCtx);
606
610
  const actorRef = interpreter.createActor(logic, {
607
611
  id: actorId,
612
+ parent: _actorCtx?.self,
608
613
  state: actorState
609
614
  });
610
615
  children[actorId] = actorRef;
@@ -407,6 +407,10 @@ class StateMachine {
407
407
  this.version = this.config.version;
408
408
  this.types = this.config.types ?? {};
409
409
  this.transition = this.transition.bind(this);
410
+ this.getInitialState = this.getInitialState.bind(this);
411
+ this.restoreState = this.restoreState.bind(this);
412
+ this.start = this.start.bind(this);
413
+ this.getPersistedState = this.getPersistedState.bind(this);
410
414
  this.root = new StateNode(config, {
411
415
  _key: this.id,
412
416
  _machine: this
@@ -604,6 +608,7 @@ class StateMachine {
604
608
  const actorState = logic.restoreState?.(childState, _actorCtx);
605
609
  const actorRef = createActor(logic, {
606
610
  id: actorId,
611
+ parent: _actorCtx?.self,
607
612
  state: actorState
608
613
  });
609
614
  children[actorId] = actorRef;
@@ -407,6 +407,10 @@ class StateMachine {
407
407
  this.version = this.config.version;
408
408
  this.types = this.config.types ?? {};
409
409
  this.transition = this.transition.bind(this);
410
+ this.getInitialState = this.getInitialState.bind(this);
411
+ this.restoreState = this.restoreState.bind(this);
412
+ this.start = this.start.bind(this);
413
+ this.getPersistedState = this.getPersistedState.bind(this);
410
414
  this.root = new StateNode(config, {
411
415
  _key: this.id,
412
416
  _machine: this
@@ -601,6 +605,7 @@ class StateMachine {
601
605
  const actorState = logic.restoreState?.(childState, _actorCtx);
602
606
  const actorRef = createActor(logic, {
603
607
  id: actorId,
608
+ parent: _actorCtx?.self,
604
609
  state: actorState
605
610
  });
606
611
  children[actorId] = actorRef;
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).XState={})}(this,(function(t){"use strict";const e=".",n="",s="",i="xstate.init",o="xstate.error",r="xstate.stop",a=new WeakMap;function c(t,e,n){let s=a.get(t);return s?e in s||(s[e]=n()):(s={[e]:n()},a.set(t,s)),s[e]}function u(t,e){return{type:`xstate.done.state.${t}`,output:e}}function f(t,e){return{type:`xstate.error.actor.${t}`,data:e}}function h(t,e,n,{sendId:s}){return[e,"function"==typeof s?s(n):s]}function d(t,e){t.self.cancel(e)}function p(t){function e(t){}return e.type="xstate.cancel",e.sendId=t,e.resolve=h,e.execute=d,e}class l{constructor(t){this._process=t,this._active=!1,this._current=null,this._last=null}start(){this._active=!0,this.flush()}clear(){this._current&&(this._current.next=null,this._last=this._current)}prepend(t){this._current?this._current={value:t,next:this._current}:this.enqueue(t)}enqueue(t){const e={value:t,next:null};if(this._current)return this._last.next=e,void(this._last=e);this._current=e,this._last=e,this._active&&this.flush()}flush(){for(;this._current;){const t=this._current;this._process(t.value),t===this._current&&(this._current=this._current.next)}this._last=null}}function y(){const t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:window;if(t.__xstate__)return t.__xstate__}const v=t=>{const e=y();e&&e.register(t)};function g(t){setTimeout((()=>{throw t}))}const m="function"==typeof Symbol&&Symbol.observable||"@@observable";function _(t,e){const n=b(t),s=b(e);return"string"==typeof s?"string"==typeof n&&s===n:"string"==typeof n?n in s:Object.keys(n).every((t=>t in s&&_(n[t],s[t])))}function x(t){try{return I(t)?t:t.toString().split(e)}catch(e){throw new Error(`'${t}' is not a valid state path.`)}}function b(t){if("object"==typeof(e=t)&&"value"in e&&"context"in e&&"event"in e)return t.value;var e;if(I(t))return w(t);if("string"!=typeof t)return t;return w(x(t))}function w(t){if(1===t.length)return t[0];const e={};let n=e;for(let e=0;e<t.length-1;e++)if(e===t.length-2)n[t[e]]=t[e+1];else{const s=n;n={},s[t[e]]=n}return e}function S(t,e){const n={},s=Object.keys(t);for(let i=0;i<s.length;i++){const o=s[i];n[o]=e(t[o],o,t,i)}return n}function $(t){return[].concat(...t)}function k(t){return I(t)?t:[t]}function T(t){return void 0===t?[]:k(t)}function E(t,e,n,s){return"function"==typeof t?t({context:e,event:n,self:s}):t}function I(t){return Array.isArray(t)}function O(t){return k(t).map((t=>void 0===t||"string"==typeof t?{target:t}:t))}function j(t){if(void 0!==t&&t!==n)return T(t)}function M(t,e,n){const s="object"==typeof t,i=s?t:void 0;return{next:(s?t.next:t)?.bind(i),error:(s?t.error:e)?.bind(i),complete:(s?t.complete:n)?.bind(i)}}function N(t){return t?"transition"in t?{src:t,input:void 0}:t:void 0}let P=function(t){return t[t.NotStarted=0]="NotStarted",t[t.Running=1]="Running",t[t.Stopped=2]="Stopped",t}({});const A=P,C={clock:{setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t)},logger:console.log.bind(console),devTools:!1};class D{constructor(t,e){this.logic=t,this._state=void 0,this.clock=void 0,this.options=void 0,this.id=void 0,this.mailbox=new l(this._process.bind(this)),this.delayedEventsMap={},this.observers=new Set,this.logger=void 0,this.status=P.NotStarted,this._parent=void 0,this.ref=void 0,this._actorContext=void 0,this._systemId=void 0,this.sessionId=void 0,this.system=void 0,this._doneEvent=void 0,this.src=void 0,this._deferred=[];const n={...C,...e},{clock:s,logger:i,parent:o,id:r,systemId:a}=n;this.system=o?.system??function(){let t=0;const e=new Map,n=new Map,s=new WeakMap;return{_bookId:()=>"x:"+t++,_register:(t,n)=>(e.set(t,n),t),_unregister:t=>{e.delete(t.sessionId);const i=s.get(t);void 0!==i&&(n.delete(i),s.delete(t))},get:t=>n.get(t),_set:(t,e)=>{const i=n.get(t);if(i&&i!==e)throw new Error(`Actor with system ID '${t}' already exists.`);n.set(t,e),s.set(e,t)}}}(),a&&(this._systemId=a,this.system._set(a,this)),this.sessionId=this.system._bookId(),this.id=r??this.sessionId,this.logger=i,this.clock=s,this._parent=o,this.options=n,this.src=n.src,this.ref=this,this._actorContext={self:this,id:this.id,sessionId:this.sessionId,logger:this.logger,defer:t=>{this._deferred.push(t)},system:this.system,stopChild:t=>{if(t._parent!==this)throw new Error(`Cannot stop child actor ${t.id} of ${this.id} because it is not a child`);t._stop()}},this.send=this.send.bind(this),this._initState()}_initState(){this._state=this.options.state?this.logic.restoreState?this.logic.restoreState(this.options.state,this._actorContext):this.options.state:this.logic.getInitialState(this._actorContext,this.options?.input)}update(t){let e;for(this._state=t;e=this._deferred.shift();)e();for(const e of this.observers)try{e.next?.(t)}catch(t){g(t)}switch(this._state.status){case"done":this._stopProcedure(),this._complete(),this._doneEvent=(n=this.id,s=this._state.output,{type:`xstate.done.actor.${n}`,output:s}),this._parent?.send(this._doneEvent);break;case"error":this._stopProcedure(),this._error(this._state.error),this._parent?.send(f(this.id,this._state.error))}var n,s}subscribe(t,e,n){const s=M(t,e,n);if(this.status!==P.Stopped)this.observers.add(s);else try{s.complete?.()}catch(t){g(t)}return{unsubscribe:()=>{this.observers.delete(s)}}}start(){if(this.status===P.Running)return this;this.system._register(this.sessionId,this),this._systemId&&this.system._set(this._systemId,this),this.status=P.Running;switch(this._state.status){case"done":this.update(this._state);case"error":return this}if(this.logic.start)try{this.logic.start(this._state,this._actorContext)}catch(t){return this._stopProcedure(),this._error(t),this._parent?.send(f(this.id,t)),this}return this.update(this._state),this.options.devTools&&this.attachDevTools(),this.mailbox.start(),this}_process(t){let e,n;try{e=this.logic.transition(this._state,t,this._actorContext)}catch(t){n={err:t}}if(n){const{err:t}=n;return this._stopProcedure(),this._error(t),void this._parent?.send(f(this.id,t))}this.update(e),t.type===r&&(this._stopProcedure(),this._complete())}_stop(){return this.status===P.Stopped?this:(this.mailbox.clear(),this.status===P.NotStarted?(this.status=P.Stopped,this):(this.mailbox.enqueue({type:r}),this))}stop(){if(this._parent)throw new Error("A non-root actor cannot be stopped directly.");return this._stop()}_complete(){for(const t of this.observers)try{t.complete?.()}catch(t){g(t)}this.observers.clear()}_error(t){if(!this.observers.size)return void(this._parent||g(t));let e=!1;for(const n of this.observers){const s=n.error;e||=!s;try{s?.(t)}catch(t){g(t)}}this.observers.clear(),e&&g(t)}_stopProcedure(){if(this.status!==P.Running)return this;for(const t of Object.keys(this.delayedEventsMap))this.clock.clearTimeout(this.delayedEventsMap[t]);return this.mailbox.clear(),this.mailbox=new l(this._process.bind(this)),this.status=P.Stopped,this.system._unregister(this),this}send(t){if("string"==typeof t)throw new Error(`Only event objects may be sent to actors; use .send({ type: "${t}" }) instead`);this.status!==P.Stopped&&this.mailbox.enqueue(t)}delaySend({event:t,id:e,delay:n,to:s}){const i=this.clock.setTimeout((()=>{s?s.send(t):this.send(t)}),n);e&&(this.delayedEventsMap[e]=i)}cancel(t){this.clock.clearTimeout(this.delayedEventsMap[t]),delete this.delayedEventsMap[t]}attachDevTools(){const{devTools:t}=this.options;if(t){("function"==typeof t?t:v)(this)}}toJSON(){return{id:this.id}}getPersistedState(){return this.logic.getPersistedState?.(this._state)}[m](){return this}getSnapshot(){return this._state}}function R(t,e){return new D(t,e)}const Q=R;function V(t,e,n,{id:s,systemId:i,src:o,input:r,syncSnapshot:a}){const c=N(e.machine.implementations.actors[o]);let u;if(c){const f=r||c.input;u=R(c.src,{id:s,src:o,parent:t?.self,systemId:i,input:"function"==typeof f?f({context:e.context,event:n.event,self:t?.self}):f}),a&&u.subscribe({next:e=>{"active"===e.status&&t.self.send({type:`xstate.snapshot.${s}`,snapshot:e})},error:()=>{}})}return[At(e,{children:{...e.children,[s]:u}}),{id:s,actorRef:u}]}function J(t,{id:e,actorRef:n}){n&&t.defer((()=>{if(n.status!==P.Stopped)try{n.start?.()}catch(n){return void t.self.send(f(e,n))}}))}function B({id:t,systemId:e,src:n,input:s,onSnapshot:i}){function o(t){}return o.type="xstate.invoke",o.id=t,o.systemId=e,o.src=n,o.input=s,o.syncSnapshot=!!i,o.resolve=V,o.execute=J,o}function z(t,e,n,{actorRef:s}){const i="function"==typeof s?s(n):s,o="string"==typeof i?e.children[i]:i;let r=e.children;return o&&(r={...r},delete r[o.id]),[At(e,{children:r}),o]}function U(t,e){e&&(e.status===P.Running?t.defer((()=>{t.stopChild(e)})):t.stopChild(e))}function W(t){function e(t){}return e.type="xstate.stop",e.actorRef=t,e.resolve=z,e.execute=U,e}function q(t,e,{stateValue:n}){return"string"==typeof n&&it(n)?t.configuration.some((t=>t.id===n.slice(1))):t.matches(n)}function G(t,{context:e,event:n},{guards:s}){return!X(s[0],e,n,t)}function F(t,{context:e,event:n},{guards:s}){return s.every((s=>X(s,e,n,t)))}function L(t,{context:e,event:n},{guards:s}){return s.some((s=>X(s,e,n,t)))}function X(t,e,n,s){const{machine:i}=s,o="function"==typeof t,r=o?t:i.implementations.guards["string"==typeof t?t:t.type];if(!o&&!r)throw new Error(`Guard '${"string"==typeof t?t:t.type}' is not implemented.'.`);if("function"!=typeof r)return X(r,e,n,s);const a={context:e,event:n,guard:o?void 0:"string"==typeof t?{type:t}:"function"==typeof t.params?{type:t.type,params:t.params({context:e,event:n})}:t};if(!("check"in r))return r(a);return r.check(s,a,r)}const H=t=>"atomic"===t.type||"final"===t.type;function K(t){return Object.values(t.states).filter((t=>"history"!==t.type))}function Y(t,e){const n=[];let s=t.parent;for(;s&&s!==e;)n.push(s),s=s.parent;return n}function Z(t){const e=new Set(t),n=new Set(t),s=et(n);for(const t of e)if("compound"!==t.type||s.get(t)&&s.get(t).length){if("parallel"===t.type)for(const e of K(t))if("history"!==e.type&&!n.has(e))for(const t of ut(e))n.add(t)}else ut(t).forEach((t=>n.add(t)));for(const t of n){let e=t.parent;for(;e;)n.add(e),e=e.parent}return n}function tt(t,e){const n=e.get(t);if(!n)return{};if("compound"===t.type){const t=n[0];if(!t)return{};if(H(t))return t.key}const s={};for(const t of n)s[t.key]=tt(t,e);return s}function et(t){const e=new Map;for(const n of t)e.has(n)||e.set(n,[]),n.parent&&(e.has(n.parent)||e.set(n.parent,[]),e.get(n.parent).push(n));return e}function nt(t,e){return tt(t,et(Z(e)))}function st(t,e=t[0].machine.root){return"compound"===e.type?K(e).some((e=>"final"===e.type&&t.includes(e))):"parallel"===e.type&&K(e).every((e=>st(t,e)))}const it=t=>"#"===t[0];function ot(t,e,n){const s=j(n.target),i=n.reenter??!1,o=rt(t,s),r={...n,actions:T(n.actions),guard:n.guard,target:o,source:t,reenter:i,eventType:e,toJSON:()=>({...r,source:`#${t.id}`,target:o?o.map((t=>`#${t.id}`)):void 0})};return r}function rt(t,n){if(void 0!==n)return n.map((n=>{if("string"!=typeof n)return n;if(it(n))return t.machine.getStateNodeById(n);const s=n[0]===e;if(s&&!t.parent)return ht(t,n.slice(1));const i=s?t.key+n:n;if(!t.parent)throw new Error(`Invalid target: "${n}" is not a valid target from the root node. Did you mean ".${n}"?`);try{return ht(t.parent,i)}catch(e){throw new Error(`Invalid transition definition for state node '${t.id}':\n${e.message}`)}}))}function at(t){const e=j(t.config.target);return e?e.map((e=>"string"==typeof e?ht(t.parent,e):e)):t.parent.initial.target}function ct(t){return"history"===t.type}function ut(t){const e=new Set;return function n(s){if(!e.has(s))if(e.add(s),"compound"===s.type)for(const i of s.initial.target){for(const n of Y(i,t))e.add(n);n(i)}else if("parallel"===s.type)for(const t of K(s))n(t)}(t),[...e]}function ft(t,e){if(it(e))return t.machine.getStateNodeById(e);if(!t.states)throw new Error(`Unable to retrieve child state '${e}' from '${t.id}'; no child states exist.`);const n=t.states[e];if(!n)throw new Error(`Child state '${e}' does not exist on '${t.id}'`);return n}function ht(t,e){if("string"==typeof e&&it(e))try{return t.machine.getStateNodeById(e)}catch(t){}const n=x(e).slice();let s=t;for(;n.length;){const t=n.shift();if(!t.length)break;s=ft(s,t)}return s}function dt(t,e){const n=e instanceof Pt?e.value:b(e);if("string"==typeof n)return[t,t.states[n]];const s=Object.keys(n),i=s.map((e=>ft(t,e))).filter(Boolean);return[t.machine.root,t].concat(i,s.reduce(((e,s)=>{const i=ft(t,s);if(!i)return e;const o=dt(i,n[s]);return e.concat(o)}),[]))}function pt(t,e,n,s){return"string"==typeof e?function(t,e,n,s){const i=ft(t,e).next(n,s);return i&&i.length?i:t.next(n,s)}(t,e,n,s):1===Object.keys(e).length?function(t,e,n,s){const i=Object.keys(e),o=pt(ft(t,i[0]),e[i[0]],n,s);return o&&o.length?o:t.next(n,s)}(t,e,n,s):function(t,e,n,s){const i=[];for(const o of Object.keys(e)){const r=e[o];if(!r)continue;const a=pt(ft(t,o),r,n,s);a&&i.push(...a)}return i.length?i:t.next(n,s)}(t,e,n,s)}function lt(t){return Object.keys(t.states).map((e=>t.states[e])).filter((t=>"history"===t.type))}function yt(t,e){let n=t;for(;n.parent&&n.parent!==e;)n=n.parent;return n.parent===e}function vt(t){const e=[];let n=t.parent;for(;n;)e.unshift(n),n=n.parent;return e}function gt(t,e){const n=new Set(t),s=new Set(e);for(const t of n)if(s.has(t))return!0;for(const t of s)if(n.has(t))return!0;return!1}function mt(t,e,n){const s=new Set;for(const i of t){let t=!1;const o=new Set;for(const r of s)if(gt(bt([i],e,n),bt([r],e,n))){if(!yt(i.source,r.source)){t=!0;break}o.add(r)}if(!t){for(const t of o)s.delete(t);s.add(i)}}return Array.from(s)}function _t(t,e){if(!t.target)return[];const n=new Set;for(const s of t.target)if(ct(s))if(e[s.id])for(const t of e[s.id])n.add(t);else for(const t of _t({target:at(s)},e))n.add(t);else n.add(s);return[...n]}function xt(t,e){const n=_t(t,e);if(!n)return null;if(!t.reenter&&"parallel"!==t.source.type&&n.every((e=>yt(e,t.source))))return t.source;return function(t){const[e]=t;let n=vt(e),s=[];for(const e of t){const t=vt(e);s=n.filter((e=>t.includes(e))),n=s,s=[]}return n[n.length-1]}(n.concat(t.source))}function bt(t,e,n){const s=new Set;for(const i of t)if(i.target?.length){const t=xt(i,n);for(const n of e)yt(n,t)&&s.add(n)}return[...s]}function wt(t,e,n,s,i){const o=new Set(e.configuration);if(!t.length)return e;const r=function(t,e,n,s,i,o){const r=[],a={...e.historyValue},c=mt(t,n,a),f=[...e._internalQueue];o||function(t,e,n,s){const i=bt(t,e,n);i.sort(((t,e)=>e.order-t.order));for(const t of i)for(const s of lt(t)){let i;i="deep"===s.history?e=>H(e)&&yt(e,t):e=>e.parent===t,n[s.id]=Array.from(e).filter(i)}for(const t of i)s.push(...t.exit,...t.invoke.map((t=>W(t.id)))),e.delete(t)}(c,n,a,r);r.push(...c.flatMap((t=>t.actions))),function(t,e,n,s,i,o,r,a,c){const f=new Set,h=new Set;St(e,r,h,f),a&&h.add(o.machine.root);for(const e of[...f].sort(((t,e)=>t.order-e.order))){n.add(e);for(const t of e.invoke)s.push(B(t));if(s.push(...e.entry),h.has(e))for(const t of h){const e=t.initial.actions;s.push(...e)}if("final"===e.type){const s=e.parent;if(!s.parent)continue;if(i.push(u(s.id,e.output?E(e.output,o.context,t,c.self):void 0)),s.parent){const t=s.parent;"parallel"===t.type&&K(t).every((t=>st([...n],t)))&&i.push(u(t.id))}}}}(s,c,n,r,f,e,a,o,i);const h=[...n],d=st(h);if(d){const t=h.sort(((t,e)=>e.order-t.order)).flatMap((t=>t.exit));r.push(...t)}try{const t=Tt(r,s,e,i),n=d?function(t,e,n,s){const{machine:i}=t[0],{root:o}=i;if(!o.output)return;const r=t.find((t=>"final"===t.type&&t.parent===i.root)),a=u(r.id,r.output?E(r.output,e,n,s):void 0);return E(o.output,e,a,s)}(h,t.context,s,i.self):void 0;return f.push(...t._internalQueue),At(e,{configuration:h,historyValue:a,_internalQueue:f,context:t.context,status:d?"done":e.status,output:n,children:t.children})}catch(t){throw t}}(t,e,o,s,n,i);return At(r,{value:{}})}function St(t,e,n,s){for(const i of t){for(const t of i.target||[])$t(t,e,n,s);const t=xt(i,e),o=_t(i,e);for(const i of o)kt(i,t,s,e,n)}}function $t(t,e,n,s){if(ct(t))if(e[t.id]){const i=e[t.id];for(const t of i)$t(t,e,n,s);for(const o of i){kt(o,t.parent,s,e,n);for(const t of n)n.add(t)}}else{const i=at(t);for(const t of i)$t(t,e,n,s);for(const o of i){kt(o,t,s,e,n);for(const t of n)n.add(t)}}else if(s.add(t),"compound"===t.type){n.add(t);const i=t.initial.target;for(const t of i)$t(t,e,n,s);for(const o of i)kt(o,t,s,e,n)}else if("parallel"===t.type)for(const i of K(t).filter((t=>!ct(t))))[...s].some((t=>yt(t,i)))||$t(i,e,n,s)}function kt(t,e,n,s,i){const o=Y(t,e);for(const t of o)if(n.add(t),"parallel"===t.type)for(const e of K(t).filter((t=>!ct(t))))[...n].some((t=>yt(t,e)))||$t(e,s,i,n)}function Tt(t,e,n,s){const{machine:i}=n;let o=At(n,{_internalQueue:[]});for(const n of t){const t="function"==typeof n,r=t?n:i.implementations.actions["string"==typeof n?n:n.type];if(!r)continue;const a={context:o.context,event:e,self:s?.self,system:s?.system,action:t?void 0:"string"==typeof n?{type:n}:"function"==typeof n.params?{type:n.type,params:n.params({context:o.context,event:e})}:n};if(!("resolve"in r)){s?.self.status===P.Running?r(a):s?.defer((()=>r(a)));continue}const c=r,[u,f,h]=c.resolve(s,o,a,r);o=u,"execute"in r&&(s?.self.status===P.Running?c.execute(s,f):s?.defer(c.execute.bind(null,s,f))),h&&(o=Tt(h,e,o,s))}return o}function Et(t,e,n){let s=t;const o=[];if(e.type===r)return s=It(e,s,n),o.push(s),{state:s,microstates:o};let a=e;if(a.type!==i){s=wt(Ot(a,s),t,n,a,!1),o.push(s)}for(;"active"===s.status;){let t=jt(s,a);if(t.length)s=wt(t,s,n,a,!1),o.push(s);else{if(!s._internalQueue.length)break;a=s._internalQueue[0];s=wt(Ot(a,s),s,n,a,!1),s._internalQueue.shift(),o.push(s)}}return"active"!==s.status&&It(a,s,n),{state:s,microstates:o}}function It(t,e,n){const s=[];for(const t of e.configuration.sort(((t,e)=>e.order-t.order)))s.push(...t.exit);for(const t of Object.values(e.children))s.push(W(t));return Tt(s,t,e,n)}function Ot(t,e){return e.machine.getTransitionData(e,t)}function jt(t,e){const n=new Set,s=t.configuration.filter(H);for(const i of s)t:for(const s of[i].concat(Y(i,null)))if(s.always)for(const i of s.always)if(void 0===i.guard||X(i.guard,t.context,e,t)){n.add(i);break t}return mt(Array.from(n),new Set(t.configuration),t.historyValue)}function Mt(t,e){return nt(t,[...Z(dt(t,e))])}function Nt(t){const e=[],n=t.initial,s=new Set;St([n],{},new Set([t]),s);for(const t of[...s].sort(((t,e)=>t.order-e.order)))e.push(t);return e}class Pt{static from(t,e={},n){if(t instanceof Pt)return t.context!==e?new Pt({value:t.value,context:e,meta:{},configuration:[],children:{},status:"active"},n):t;const s=Z(dt(n.root,t));return new Pt({value:t,context:e,meta:void 0,configuration:Array.from(s),children:{},status:"active"},n)}constructor(t,e){this.machine=e,this.tags=void 0,this.value=void 0,this.status=void 0,this.error=void 0,this.context=void 0,this.historyValue={},this._internalQueue=void 0,this.configuration=void 0,this.children=void 0,this.context=t.context,this._internalQueue=t._internalQueue??[],this.historyValue=t.historyValue||{},this.matches=this.matches.bind(this),this.toStrings=this.toStrings.bind(this),this.configuration=t.configuration??Array.from(Z(dt(e.root,t.value))),this.children=t.children,this.value=nt(e.root,this.configuration),this.tags=new Set($(this.configuration.map((t=>t.tags)))),this.status=t.status,this.output=t.output,this.error=t.error}toStrings(t=this.value){if("string"==typeof t)return[t];const n=Object.keys(t);return n.concat(...n.map((n=>this.toStrings(t[n]).map((t=>n+e+t)))))}toJSON(){const{configuration:t,tags:e,machine:n,...s}=this;return{...s,tags:Array.from(e),meta:this.meta}}matches(t){return _(t,this.value)}hasTag(t){return this.tags.has(t)}can(t){const e=this.machine.getTransitionData(this,t);return!!e?.length&&e.some((t=>void 0!==t.target||t.actions.length))}get nextEvents(){return c(this,"nextEvents",(()=>[...new Set($([...this.configuration.map((t=>t.ownEvents))]))]))}get meta(){return this.configuration.reduce(((t,e)=>(void 0!==e.meta&&(t[e.id]=e.meta),t)),{})}}function At(t,e={}){return new Pt({...t,...e},t.machine)}function Ct(t,{machine:e,context:n},s,i){return(o,r)=>{const a=((o,r={})=>{const{systemId:a}=r;if("string"==typeof o){const c=N(e.implementations.actors[o]);if(!c)throw new Error(`Actor logic '${o}' not implemented in machine '${e.id}'`);const u="input"in r?r.input:c.input,f=R(c.src,{id:r.id,parent:t.self,input:"function"==typeof u?u({context:n,event:s,self:t.self}):u,systemId:a});return i[f.id]=f,r.syncSnapshot&&f.subscribe({next:e=>{"active"===e.status&&t.self.send({type:`xstate.snapshot.${f.id}`,snapshot:e})},error:()=>{}}),f}{const e=R(o,{id:r.id,parent:t.self,input:r.input,systemId:a});return r.syncSnapshot&&e.subscribe({next:n=>{"active"===n.status&&t.self.send({type:`xstate.snapshot.${e.id}`,snapshot:n,id:e.id})},error:()=>{}}),e}})(o,r);return i[a.id]=a,t.defer((()=>{if(a.status!==P.Stopped)try{a.start?.()}catch(e){return void t.self.send(f(a.id,e))}})),a}}function Dt(t,e,n,{assignment:s}){if(!e.context)throw new Error("Cannot assign to undefined `context`. Ensure that `context` is defined in the machine config.");const i={},o={context:e.context,event:n.event,action:n.action,spawn:Ct(t,e,n.event,i),self:t?.self,system:t?.system};let r={};if("function"==typeof s)r=s(o);else for(const t of Object.keys(s)){const e=s[t];r[t]="function"==typeof e?e(o):e}return[At(e,{context:Object.assign({},e.context,r),children:Object.keys(i).length?{...e.children,...i}:e.children})]}function Rt(t){function e(t){}return e.type="xstate.assign",e.assignment=t,e.resolve=Dt,e}function Qt(t,e,n,{branches:s}){const i=s.find((t=>!t.guard||X(t.guard,e.context,n.event,e)))?.actions;return[e,void 0,T(i)]}function Vt(t,e,n,{value:s,label:i}){return[e,{value:"function"==typeof s?s(n):s,label:i}]}function Jt({logger:t},{value:e,label:n}){n?t(n,e):t(e)}function Bt(t,e,n,{get:s}){return[e,void 0,T(s({context:n.context,event:n.event}))]}function zt(t,e,n,{event:s,id:i,delay:o}){const r=e.machine.implementations.delays;if("string"==typeof s)throw new Error(`Only event objects may be used with raise; use raise({ type: "${s}" }) instead`);const a="function"==typeof s?s(n):s;let c;if("string"==typeof o){const t=r&&r[o];c="function"==typeof t?t(n):t}else c="function"==typeof o?o(n):o;return["number"!=typeof c?At(e,{_internalQueue:e._internalQueue.concat(a)}):e,{event:a,id:i,delay:c}]}function Ut(t,e){"number"!=typeof e.delay||t.self.delaySend(e)}function Wt(t,e){function n(t){}return n.type="xstate.raise",n.event=t,n.id=e?.id,n.delay=e?.delay,n.resolve=zt,n.execute=Ut,n}let qt=function(t){return t.Parent="#_parent",t.Internal="#_internal",t}({});function Gt(t,e,n,{to:s,event:i,id:o,delay:r}){const a=e.machine.implementations.delays;if("string"==typeof i)throw new Error(`Only event objects may be used with sendTo; use sendTo({ type: "${i}" }) instead`);const c="function"==typeof i?i(n):i;let u;if("string"==typeof r){const t=a&&a[r];u="function"==typeof t?t(n):t}else u="function"==typeof r?r(n):r;const f="function"==typeof s?s(n):s;let h;if("string"==typeof f){if(h=f===qt.Parent?t?.self._parent:f===qt.Internal?t?.self:f.startsWith("#_")?e.children[f.slice(2)]:e.children[f],!h)throw new Error(`Unable to send event to actor '${f}' from machine '${e.machine.id}'.`)}else h=f||t?.self;return[e,{to:h,event:c,id:o,delay:u}]}function Ft(t,e){if("number"==typeof e.delay)return void t.self.delaySend(e);const{to:n,event:s}=e;t.defer((()=>{n.send(s.type===o?f(t.self.id,s.data):s)}))}function Lt(t,e,n){function s(t){}return s.type="xstate.sendTo",s.to=t,s.event=e,s.id=n?.id,s.delay=n?.delay,s.resolve=Gt,s.execute=Ft,s}function Xt(t,e){return Lt(qt.Parent,t,e)}function Ht(t,e){return{config:t,transition:(e,n,s)=>({...e,context:t(e.context,n,s)}),getInitialState:(t,n)=>({status:"active",output:void 0,error:void 0,context:"function"==typeof e?e({input:n}):e}),getPersistedState:t=>t,restoreState:t=>t}}const Kt="$$xstate.resolve",Yt="$$xstate.reject";const Zt=Ht((t=>{}),void 0);const te={},ee=t=>"string"==typeof t?{type:t}:"function"==typeof t?"resolve"in t?{type:t.type}:{type:t.name}:t;class ne{constructor(t,n){if(this.config=t,this.key=void 0,this.id=void 0,this.type=void 0,this.path=void 0,this.states=void 0,this.history=void 0,this.entry=void 0,this.exit=void 0,this.parent=void 0,this.machine=void 0,this.meta=void 0,this.output=void 0,this.order=-1,this.description=void 0,this.tags=[],this.transitions=void 0,this.always=void 0,this.parent=n._parent,this.key=n._key,this.machine=n._machine,this.path=this.parent?this.parent.path.concat(this.key):[],this.id=this.config.id||[this.machine.id,...this.path].join(e),this.type=this.config.type||(this.config.states&&Object.keys(this.config.states).length?"compound":this.config.history?"history":"atomic"),this.description=this.config.description,this.order=this.machine.idMap.size,this.machine.idMap.set(this.id,this),this.states=this.config.states?S(this.config.states,((t,e)=>new ne(t,{_parent:this,_key:e,_machine:this.machine}))):te,"compound"===this.type&&!this.config.initial)throw new Error(`No initial state specified for compound state node "#${this.id}". Try adding { initial: "${Object.keys(this.states)[0]}" } to the state config.`);this.history=!0===this.config.history?"shallow":this.config.history||!1,this.entry=T(this.config.entry).slice(),this.exit=T(this.config.exit).slice(),this.meta=this.config.meta,this.output="final"!==this.type&&this.parent?void 0:this.config.output,this.tags=T(t.tags).slice()}_initialize(){this.transitions=function(t){const e=new Map;if(t.config.on)for(const n of Object.keys(t.config.on)){if(n===s)throw new Error('Null events ("") cannot be specified as a transition key. Use `always: { ... }` instead.');const i=t.config.on[n];e.set(n,O(i).map((e=>ot(t,n,e))))}if(t.config.onDone){const n=`xstate.done.state.${t.id}`;e.set(n,O(t.config.onDone).map((e=>ot(t,n,e))))}for(const n of t.invoke){if(n.onDone){const s=`xstate.done.actor.${n.id}`;e.set(s,O(n.onDone).map((e=>ot(t,s,e))))}if(n.onError){const s=`xstate.error.actor.${n.id}`;e.set(s,O(n.onError).map((e=>ot(t,s,e))))}if(n.onSnapshot){const s=`xstate.snapshot.${n.id}`;e.set(s,O(n.onSnapshot).map((e=>ot(t,s,e))))}}for(const n of t.after){let t=e.get(n.eventType);t||(t=[],e.set(n.eventType,t)),t.push(n)}return e}(this),this.config.always&&(this.always=O(this.config.always).map((t=>ot(this,s,t)))),Object.keys(this.states).forEach((t=>{this.states[t]._initialize()}))}get definition(){return{id:this.id,key:this.key,version:this.machine.version,type:this.type,initial:this.initial?{target:this.initial.target,source:this,actions:this.initial.actions.map(ee),eventType:null,reenter:!1,toJSON:()=>({target:this.initial.target.map((t=>`#${t.id}`)),source:`#${this.id}`,actions:this.initial.actions.map(ee),eventType:null})}:void 0,history:this.history,states:S(this.states,(t=>t.definition)),on:this.on,transitions:[...this.transitions.values()].flat().map((t=>({...t,actions:t.actions.map(ee)}))),entry:this.entry.map(ee),exit:this.exit.map(ee),meta:this.meta,order:this.order||-1,output:this.output,invoke:this.invoke,description:this.description,tags:this.tags}}toJSON(){return this.definition}get invoke(){return c(this,"invoke",(()=>T(this.config.invoke).map(((t,e)=>{const{src:n,systemId:s}=t,i=t.id||`${this.id}:invocation[${e}]`;const o="string"==typeof n||"type"in n?n:i;return this.machine.implementations.actors[i]||"string"==typeof n||"type"in n||(this.machine.implementations.actors={...this.machine.implementations.actors,[i]:n}),{...t,src:o,id:i,systemId:s,toJSON(){const{onDone:e,onError:n,...s}=t;return{...s,type:"xstate.invoke",src:o,id:i}}}}))))}get on(){return c(this,"on",(()=>[...this.transitions].flatMap((([t,e])=>e.map((e=>[t,e])))).reduce(((t,[e,n])=>(t[e]=t[e]||[],t[e].push(n),t)),{})))}get after(){return c(this,"delayedTransitions",(()=>function(t){const e=t.config.after;if(!e)return[];const n=(e,n)=>{const s=(o="function"==typeof e?`${t.id}:delay[${n}]`:e,r=t.id,{type:`xstate.after(${o})${r?`#${r}`:""}`}),i=s.type;var o,r;return t.entry.push(Wt(s,{id:i,delay:e})),t.exit.push(p(i)),i};return(I(e)?e.map(((t,e)=>{const s=n(t.delay,e);return{...t,event:s}})):Object.keys(e).flatMap(((t,s)=>{const i=e[t],o="string"==typeof i?{target:i}:i,r=isNaN(+t)?t:+t,a=n(r,s);return T(o).map((t=>({...t,event:a,delay:r})))}))).map((e=>{const{delay:n}=e;return{...ot(t,e.event,e),delay:n}}))}(this)))}get initial(){return c(this,"initial",(()=>function(t,n){if("string"==typeof n||I(n)){const e=T(n).map((e=>{const n="string"==typeof e?it(e)?t.machine.getStateNodeById(e):t.states[e]:e;if(!n)throw new Error(`Initial state node "${e}" not found on parent state node #${t.id}`);if(!yt(n,t))throw new Error(`Invalid initial target: state node #${n.id} is not a descendant of #${t.id}`);return n})),s=rt(t,e),i={source:t,actions:[],eventType:null,reenter:!1,target:s,toJSON:()=>({...i,source:`#${t.id}`,target:s?s.map((t=>`#${t.id}`)):void 0})};return i}return ot(t,"__INITIAL__",{target:T(n.target).map((t=>"string"==typeof t?it(t)?t:`${e}${t}`:t)),actions:n.actions})}(this,this.config.initial||[])))}next(t,e){const n=e.type,s=[];let i;const o=c(this,`candidates-${n}`,(()=>{return e=n,(t=this).transitions.get(e)||[...t.transitions.keys()].filter((t=>{if("*"===t)return!0;if(!t.endsWith(".*"))return!1;const n=t.split("."),s=e.split(".");for(let t=0;t<n.length;t++){const e=n[t],i=s[t];if("*"===e)return t===n.length-1;if(e!==i)return!1}return!0})).sort(((t,e)=>e.length-t.length)).flatMap((e=>t.transitions.get(e)));var t,e}));for(const r of o){const{guard:o}=r,a=t.context;let c=!1;try{c=!o||X(o,a,e,t)}catch(t){const e="string"==typeof o?o:"object"==typeof o?o.type:void 0;throw new Error(`Unable to evaluate guard ${e?`'${e}' `:""}in transition for event '${n}' in state node '${this.id}':\n${t.message}`)}if(c){s.push(...r.actions),i=r;break}}return i?[i]:void 0}get events(){return c(this,"events",(()=>{const{states:t}=this,e=new Set(this.ownEvents);if(t)for(const n of Object.keys(t)){const s=t[n];if(s.states)for(const t of s.events)e.add(`${t}`)}return Array.from(e)}))}get ownEvents(){const t=new Set([...this.transitions.keys()].filter((t=>this.transitions.get(t).some((t=>!(!t.target&&!t.actions.length&&!t.reenter))))));return Array.from(t)}}class se{constructor(t,e){this.config=t,this.version=void 0,this.implementations=void 0,this.types=void 0,this.__xstatenode=!0,this.idMap=new Map,this.root=void 0,this.id=void 0,this.states=void 0,this.events=void 0,this.__TContext=void 0,this.__TEvent=void 0,this.__TActor=void 0,this.__TAction=void 0,this.__TGuard=void 0,this.__TDelay=void 0,this.__TTag=void 0,this.__TInput=void 0,this.__TOutput=void 0,this.__TResolvedTypesMeta=void 0,this.id=t.id||"(machine)",this.implementations={actors:e?.actors??{},actions:e?.actions??{},delays:e?.delays??{},guards:e?.guards??{}},this.version=this.config.version,this.types=this.config.types??{},this.transition=this.transition.bind(this),this.root=new ne(t,{_key:this.id,_machine:this}),this.root._initialize(),this.states=this.root.states,this.events=this.root.events}provide(t){const{actions:e,guards:n,actors:s,delays:i}=this.implementations;return new se(this.config,{actions:{...e,...t.actions},guards:{...n,...t.guards},actors:{...s,...t.actors},delays:{...i,...t.delays}})}resolveState(t){const e=Z(dt(this.root,t.value)),n=Array.from(e);return this.createState({...t,value:Mt(this.root,t.value),configuration:n,status:st(n)?"done":t.status})}resolveStateValue(t,...[e]){const n=Mt(this.root,t);return this.resolveState(Pt.from(n,e,this))}transition(t,e,n){if(function(t){return t.type.startsWith("xstate.error.actor")}(e)&&!t.nextEvents.some((t=>t===e.type)))return At(t,{status:"error",error:e.data});const{state:s}=Et(t,e,n);return s}microstep(t,e,n){return Et(t,e,n).microstates}getTransitionData(t,e){return pt(this.root,t.value,t,e)||[]}getPreInitialState(t,e){const{context:n}=this.config,s=this.resolveState(this.createState({value:{},context:"function"!=typeof n&&n?n:{},meta:void 0,configuration:Nt(this.root),children:{},status:"active"}));if("function"==typeof n){return Tt([Rt((({spawn:t,event:e})=>n({spawn:t,input:e.input})))],e,s,t)}return s}getInitialState(t,e){const n=function(t){return{type:i,input:t}}(e),s=this.getPreInitialState(t,n),o=wt([{target:[...s.configuration].filter(H),source:this.root,reenter:!0,actions:[],eventType:null,toJSON:null}],s,t,n,!0),{state:r}=Et(o,n,t);return r}start(t){Object.values(t.children).forEach((t=>{0===t.status&&t.start?.()}))}getStateNodeById(t){const n=t.split(e),s=n.slice(1),i=it(n[0])?n[0].slice(1):n[0],o=this.idMap.get(i);if(!o)throw new Error(`Child state node '#${i}' does not exist on machine '${this.id}'`);return ht(o,s)}get definition(){return this.root.definition}toJSON(){return this.definition}getPersistedState(t){return function(t){const{configuration:e,tags:n,machine:s,children:i,...o}=t,r={};for(const t in i){const e=i[t];r[t]={state:e.getPersistedState?.(),src:e.src}}return{...o,children:r}}(t)}createState(t){return t instanceof Pt?t:new Pt(t,this)}restoreState(t,e){const n={};Object.keys(t.children).forEach((s=>{const i=t.children[s],o=i.state,r=i.src,a=r?N(this.implementations.actors[r])?.src:void 0;if(!a)return;const c=a.restoreState?.(o,e),u=R(a,{id:s,state:c});n[s]=u}));const s=this.createState(new Pt({...t,children:n},this));return s.configuration.forEach((t=>{t.invoke&&t.invoke.forEach((t=>{const{id:s,src:i}=t;if(n[s])return;const o=N(this.implementations.actors[i]);if(o){const i=R(o.src,{id:s,parent:e?.self,input:"input"in t?t.input:o.input});n[s]=i}}))})),s}}const ie={timeout:1e4};t.Actor=D,t.ActorStatus=P,t.InterpreterStatus=A,t.SimulatedClock=class{constructor(){this.timeouts=new Map,this._now=0,this._id=0}now(){return this._now}getId(){return this._id++}setTimeout(t,e){const n=this.getId();return this.timeouts.set(n,{start:this.now(),timeout:e,fn:t}),n}clearTimeout(t){this.timeouts.delete(t)}set(t){if(this._now>t)throw new Error("Unable to travel back in time");this._now=t,this.flushTimeouts()}flushTimeouts(){[...this.timeouts].sort((([t,e],[n,s])=>{const i=e.start+e.timeout;return s.start+s.timeout>i?-1:1})).forEach((([t,e])=>{this.now()-e.start>=e.timeout&&(this.timeouts.delete(t),e.fn.call(null))}))}increment(t){this._now+=t,this.flushTimeouts()}},t.SpecialTargets=qt,t.State=Pt,t.StateMachine=se,t.StateNode=ne,t.and=function(t){function e(t){return!1}return e.check=F,e.guards=t,e},t.assign=Rt,t.cancel=p,t.choose=function(t){function e(t){}return e.type="xstate.choose",e.branches=t,e.resolve=Qt,e},t.createActor=R,t.createEmptyActor=function(){return R(Zt)},t.createMachine=function(t,e){return new se(t,e)},t.escalate=function(t,e){return Xt((e=>({type:o,data:"function"==typeof t?t(e):t})),e)},t.forwardTo=function(t,e){return Lt(t,(({event:t})=>t),e)},t.fromCallback=function(t){return{config:t,start:(t,{self:e})=>{e.send({type:i})},transition:(e,n,{self:s,id:o,system:a})=>{if(n.type===i){const n=t=>{"stopped"!==e.status&&s._parent?.send(t)},i=t=>{e._receivers.add(t)};return e._dispose=t({input:e.input,system:a,self:s,sendBack:n,receive:i}),e}return n.type===r?("function"==typeof(e={...e,status:"stopped",error:void 0})._dispose&&e._dispose(),e):(e._receivers.forEach((t=>t(n))),e)},getInitialState:(t,e)=>({status:"active",output:void 0,error:void 0,input:e,_receivers:new Set,_dispose:void 0}),getPersistedState:({_dispose:t,_receivers:e,...n})=>n,restoreState:t=>({_receivers:new Set,_dispose:void 0,...t})}},t.fromEventObservable=function(t){const e="$$xstate.error",n="$$xstate.complete";return{config:t,transition:(t,s)=>{if("active"!==t.status)return t;switch(s.type){case e:return{...t,status:"error",error:s.data,input:void 0,_subscription:void 0};case n:return{...t,status:"done",input:void 0,_subscription:void 0};case r:return t._subscription.unsubscribe(),{...t,status:"stopped",input:void 0,_subscription:void 0};default:return t}},getInitialState:(t,e)=>({status:"active",output:void 0,error:void 0,context:void 0,input:e,_subscription:void 0}),start:(s,{self:i,system:o})=>{"done"!==s.status&&(s._subscription=t({input:s.input,system:o,self:i}).subscribe({next:t=>{i._parent?.send(t)},error:t=>{i.send({type:e,data:t})},complete:()=>{i.send({type:n})}}))},getPersistedState:({_subscription:t,...e})=>e,restoreState:t=>({...t,_subscription:void 0})}},t.fromObservable=function(t){const e="$$xstate.next",n="$$xstate.error",s="$$xstate.complete";return{config:t,transition:(t,i,{self:o,id:a,defer:c})=>{if("active"!==t.status)return t;switch(i.type){case e:return{...t,context:i.data};case n:return{...t,status:"error",error:i.data,input:void 0,_subscription:void 0};case s:return{...t,status:"done",input:void 0,_subscription:void 0};case r:return t._subscription.unsubscribe(),{...t,status:"stopped",input:void 0,_subscription:void 0};default:return t}},getInitialState:(t,e)=>({status:"active",output:void 0,error:void 0,context:void 0,input:e,_subscription:void 0}),start:(i,{self:o,system:r})=>{"done"!==i.status&&(i._subscription=t({input:i.input,system:r,self:o}).subscribe({next:t=>{o.send({type:e,data:t})},error:t=>{o.send({type:n,data:t})},complete:()=>{o.send({type:s})}}))},getPersistedState:({_subscription:t,...e})=>e,restoreState:t=>({...t,_subscription:void 0})}},t.fromPromise=function(t){return{config:t,transition:(t,e)=>{if("active"!==t.status)return t;switch(e.type){case Kt:{const n=e.data;return{...t,status:"done",output:n,input:void 0}}case Yt:return{...t,status:"error",error:e.data,input:void 0};case r:return{...t,status:"stopped",input:void 0};default:return t}},start:(e,{self:n,system:s})=>{if("active"!==e.status)return;Promise.resolve(t({input:e.input,system:s,self:n})).then((t=>{"active"===n.getSnapshot().status&&n.send({type:Kt,data:t})}),(t=>{"active"===n.getSnapshot().status&&n.send({type:Yt,data:t})}))},getInitialState:(t,e)=>({status:"active",output:void 0,error:void 0,input:e}),getPersistedState:t=>t,restoreState:t=>t}},t.fromTransition=Ht,t.getStateNodes=dt,t.interpret=Q,t.log=function(t=(({context:t,event:e})=>({context:t,event:e})),e){function n(t){}return n.type="xstate.log",n.value=t,n.label=e,n.resolve=Vt,n.execute=Jt,n},t.mapState=function(t,e){let n;for(const s of Object.keys(t))_(s,e)&&(!n||e.length>n.length)&&(n=s);return t[n]},t.matchesState=_,t.not=function(t){function e(t){return!1}return e.check=G,e.guards=[t],e},t.or=function(t){function e(t){return!1}return e.check=L,e.guards=t,e},t.pathToStateValue=w,t.pure=function(t){function e(t){}return e.type="xstate.pure",e.get=t,e.resolve=Bt,e},t.raise=Wt,t.sendParent=Xt,t.sendTo=Lt,t.stateIn=function(t){function e(t){return!1}return e.check=q,e.stateValue=t,e},t.stop=W,t.toObserver=M,t.waitFor=function(t,e,n){const s={...ie,...n};return new Promise(((n,i)=>{let o=!1;const r=s.timeout===1/0?void 0:setTimeout((()=>{u.unsubscribe(),i(new Error(`Timeout of ${s.timeout} ms exceeded`))}),s.timeout),a=()=>{clearTimeout(r),o=!0,u?.unsubscribe()};function c(t){e(t)&&(a(),n(t))}let u;c(t.getSnapshot()),o||(u=t.subscribe({next:c,error:t=>{a(),i(t)},complete:()=>{a(),i(new Error("Actor terminated without satisfying predicate"))}}),o&&u.unsubscribe())}))},Object.defineProperty(t,"__esModule",{value:!0})}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).XState={})}(this,(function(t){"use strict";const e=".",n="",s="",i="xstate.init",o="xstate.error",r="xstate.stop",a=new WeakMap;function c(t,e,n){let s=a.get(t);return s?e in s||(s[e]=n()):(s={[e]:n()},a.set(t,s)),s[e]}function u(t,e){return{type:`xstate.done.state.${t}`,output:e}}function f(t,e){return{type:`xstate.error.actor.${t}`,data:e}}function h(t,e,n,{sendId:s}){return[e,"function"==typeof s?s(n):s]}function d(t,e){t.self.cancel(e)}function p(t){function e(t){}return e.type="xstate.cancel",e.sendId=t,e.resolve=h,e.execute=d,e}class l{constructor(t){this._process=t,this._active=!1,this._current=null,this._last=null}start(){this._active=!0,this.flush()}clear(){this._current&&(this._current.next=null,this._last=this._current)}prepend(t){this._current?this._current={value:t,next:this._current}:this.enqueue(t)}enqueue(t){const e={value:t,next:null};if(this._current)return this._last.next=e,void(this._last=e);this._current=e,this._last=e,this._active&&this.flush()}flush(){for(;this._current;){const t=this._current;this._process(t.value),t===this._current&&(this._current=this._current.next)}this._last=null}}function y(){const t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:window;if(t.__xstate__)return t.__xstate__}const v=t=>{const e=y();e&&e.register(t)};function g(t){setTimeout((()=>{throw t}))}const m="function"==typeof Symbol&&Symbol.observable||"@@observable";function _(t,e){const n=x(t),s=x(e);return"string"==typeof s?"string"==typeof n&&s===n:"string"==typeof n?n in s:Object.keys(n).every((t=>t in s&&_(n[t],s[t])))}function b(t){try{return E(t)?t:t.toString().split(e)}catch(e){throw new Error(`'${t}' is not a valid state path.`)}}function x(t){if("object"==typeof(e=t)&&"value"in e&&"context"in e&&"event"in e)return t.value;var e;if(E(t))return w(t);if("string"!=typeof t)return t;return w(b(t))}function w(t){if(1===t.length)return t[0];const e={};let n=e;for(let e=0;e<t.length-1;e++)if(e===t.length-2)n[t[e]]=t[e+1];else{const s=n;n={},s[t[e]]=n}return e}function S(t,e){const n={},s=Object.keys(t);for(let i=0;i<s.length;i++){const o=s[i];n[o]=e(t[o],o,t,i)}return n}function $(t){return[].concat(...t)}function k(t){return E(t)?t:[t]}function T(t){return void 0===t?[]:k(t)}function I(t,e,n,s){return"function"==typeof t?t({context:e,event:n,self:s}):t}function E(t){return Array.isArray(t)}function O(t){return k(t).map((t=>void 0===t||"string"==typeof t?{target:t}:t))}function j(t){if(void 0!==t&&t!==n)return T(t)}function M(t,e,n){const s="object"==typeof t,i=s?t:void 0;return{next:(s?t.next:t)?.bind(i),error:(s?t.error:e)?.bind(i),complete:(s?t.complete:n)?.bind(i)}}function P(t){return t?"transition"in t?{src:t,input:void 0}:t:void 0}let N=function(t){return t[t.NotStarted=0]="NotStarted",t[t.Running=1]="Running",t[t.Stopped=2]="Stopped",t}({});const A=N,C={clock:{setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t)},logger:console.log.bind(console),devTools:!1};class D{constructor(t,e){this.logic=t,this._state=void 0,this.clock=void 0,this.options=void 0,this.id=void 0,this.mailbox=new l(this._process.bind(this)),this.delayedEventsMap={},this.observers=new Set,this.logger=void 0,this.status=N.NotStarted,this._parent=void 0,this.ref=void 0,this._actorContext=void 0,this._systemId=void 0,this.sessionId=void 0,this.system=void 0,this._doneEvent=void 0,this.src=void 0,this._deferred=[];const n={...C,...e},{clock:s,logger:i,parent:o,id:r,systemId:a}=n;this.system=o?.system??function(){let t=0;const e=new Map,n=new Map,s=new WeakMap;return{_bookId:()=>"x:"+t++,_register:(t,n)=>(e.set(t,n),t),_unregister:t=>{e.delete(t.sessionId);const i=s.get(t);void 0!==i&&(n.delete(i),s.delete(t))},get:t=>n.get(t),_set:(t,e)=>{const i=n.get(t);if(i&&i!==e)throw new Error(`Actor with system ID '${t}' already exists.`);n.set(t,e),s.set(e,t)}}}(),a&&(this._systemId=a,this.system._set(a,this)),this.sessionId=this.system._bookId(),this.id=r??this.sessionId,this.logger=i,this.clock=s,this._parent=o,this.options=n,this.src=n.src,this.ref=this,this._actorContext={self:this,id:this.id,sessionId:this.sessionId,logger:this.logger,defer:t=>{this._deferred.push(t)},system:this.system,stopChild:t=>{if(t._parent!==this)throw new Error(`Cannot stop child actor ${t.id} of ${this.id} because it is not a child`);t._stop()}},this.send=this.send.bind(this),this._initState()}_initState(){this._state=this.options.state?this.logic.restoreState?this.logic.restoreState(this.options.state,this._actorContext):this.options.state:this.logic.getInitialState(this._actorContext,this.options?.input)}update(t){let e;for(this._state=t;e=this._deferred.shift();)e();for(const e of this.observers)try{e.next?.(t)}catch(t){g(t)}switch(this._state.status){case"done":this._stopProcedure(),this._complete(),this._doneEvent=(n=this.id,s=this._state.output,{type:`xstate.done.actor.${n}`,output:s}),this._parent?.send(this._doneEvent);break;case"error":this._stopProcedure(),this._error(this._state.error),this._parent?.send(f(this.id,this._state.error))}var n,s}subscribe(t,e,n){const s=M(t,e,n);if(this.status!==N.Stopped)this.observers.add(s);else try{s.complete?.()}catch(t){g(t)}return{unsubscribe:()=>{this.observers.delete(s)}}}start(){if(this.status===N.Running)return this;this.system._register(this.sessionId,this),this._systemId&&this.system._set(this._systemId,this),this.status=N.Running;switch(this._state.status){case"done":this.update(this._state);case"error":return this}if(this.logic.start)try{this.logic.start(this._state,this._actorContext)}catch(t){return this._stopProcedure(),this._error(t),this._parent?.send(f(this.id,t)),this}return this.update(this._state),this.options.devTools&&this.attachDevTools(),this.mailbox.start(),this}_process(t){let e,n;try{e=this.logic.transition(this._state,t,this._actorContext)}catch(t){n={err:t}}if(n){const{err:t}=n;return this._stopProcedure(),this._error(t),void this._parent?.send(f(this.id,t))}this.update(e),t.type===r&&(this._stopProcedure(),this._complete())}_stop(){return this.status===N.Stopped?this:(this.mailbox.clear(),this.status===N.NotStarted?(this.status=N.Stopped,this):(this.mailbox.enqueue({type:r}),this))}stop(){if(this._parent)throw new Error("A non-root actor cannot be stopped directly.");return this._stop()}_complete(){for(const t of this.observers)try{t.complete?.()}catch(t){g(t)}this.observers.clear()}_error(t){if(!this.observers.size)return void(this._parent||g(t));let e=!1;for(const n of this.observers){const s=n.error;e||=!s;try{s?.(t)}catch(t){g(t)}}this.observers.clear(),e&&g(t)}_stopProcedure(){if(this.status!==N.Running)return this;for(const t of Object.keys(this.delayedEventsMap))this.clock.clearTimeout(this.delayedEventsMap[t]);return this.mailbox.clear(),this.mailbox=new l(this._process.bind(this)),this.status=N.Stopped,this.system._unregister(this),this}send(t){if("string"==typeof t)throw new Error(`Only event objects may be sent to actors; use .send({ type: "${t}" }) instead`);this.status!==N.Stopped&&this.mailbox.enqueue(t)}delaySend({event:t,id:e,delay:n,to:s}){const i=this.clock.setTimeout((()=>{s?s.send(t):this.send(t)}),n);e&&(this.delayedEventsMap[e]=i)}cancel(t){this.clock.clearTimeout(this.delayedEventsMap[t]),delete this.delayedEventsMap[t]}attachDevTools(){const{devTools:t}=this.options;if(t){("function"==typeof t?t:v)(this)}}toJSON(){return{id:this.id}}getPersistedState(){return this.logic.getPersistedState?.(this._state)}[m](){return this}getSnapshot(){return this._state}}function R(t,e){return new D(t,e)}const Q=R;function V(t,e,n,{id:s,systemId:i,src:o,input:r,syncSnapshot:a}){const c=P(e.machine.implementations.actors[o]);let u;if(c){const f=r||c.input;u=R(c.src,{id:s,src:o,parent:t?.self,systemId:i,input:"function"==typeof f?f({context:e.context,event:n.event,self:t?.self}):f}),a&&u.subscribe({next:e=>{"active"===e.status&&t.self.send({type:`xstate.snapshot.${s}`,snapshot:e})},error:()=>{}})}return[At(e,{children:{...e.children,[s]:u}}),{id:s,actorRef:u}]}function J(t,{id:e,actorRef:n}){n&&t.defer((()=>{if(n.status!==N.Stopped)try{n.start?.()}catch(n){return void t.self.send(f(e,n))}}))}function B({id:t,systemId:e,src:n,input:s,onSnapshot:i}){function o(t){}return o.type="xstate.invoke",o.id=t,o.systemId=e,o.src=n,o.input=s,o.syncSnapshot=!!i,o.resolve=V,o.execute=J,o}function z(t,e,n,{actorRef:s}){const i="function"==typeof s?s(n):s,o="string"==typeof i?e.children[i]:i;let r=e.children;return o&&(r={...r},delete r[o.id]),[At(e,{children:r}),o]}function U(t,e){e&&(e.status===N.Running?t.defer((()=>{t.stopChild(e)})):t.stopChild(e))}function W(t){function e(t){}return e.type="xstate.stop",e.actorRef=t,e.resolve=z,e.execute=U,e}function q(t,e,{stateValue:n}){return"string"==typeof n&&it(n)?t.configuration.some((t=>t.id===n.slice(1))):t.matches(n)}function G(t,{context:e,event:n},{guards:s}){return!X(s[0],e,n,t)}function F(t,{context:e,event:n},{guards:s}){return s.every((s=>X(s,e,n,t)))}function L(t,{context:e,event:n},{guards:s}){return s.some((s=>X(s,e,n,t)))}function X(t,e,n,s){const{machine:i}=s,o="function"==typeof t,r=o?t:i.implementations.guards["string"==typeof t?t:t.type];if(!o&&!r)throw new Error(`Guard '${"string"==typeof t?t:t.type}' is not implemented.'.`);if("function"!=typeof r)return X(r,e,n,s);const a={context:e,event:n,guard:o?void 0:"string"==typeof t?{type:t}:"function"==typeof t.params?{type:t.type,params:t.params({context:e,event:n})}:t};if(!("check"in r))return r(a);return r.check(s,a,r)}const H=t=>"atomic"===t.type||"final"===t.type;function K(t){return Object.values(t.states).filter((t=>"history"!==t.type))}function Y(t,e){const n=[];let s=t.parent;for(;s&&s!==e;)n.push(s),s=s.parent;return n}function Z(t){const e=new Set(t),n=new Set(t),s=et(n);for(const t of e)if("compound"!==t.type||s.get(t)&&s.get(t).length){if("parallel"===t.type)for(const e of K(t))if("history"!==e.type&&!n.has(e))for(const t of ut(e))n.add(t)}else ut(t).forEach((t=>n.add(t)));for(const t of n){let e=t.parent;for(;e;)n.add(e),e=e.parent}return n}function tt(t,e){const n=e.get(t);if(!n)return{};if("compound"===t.type){const t=n[0];if(!t)return{};if(H(t))return t.key}const s={};for(const t of n)s[t.key]=tt(t,e);return s}function et(t){const e=new Map;for(const n of t)e.has(n)||e.set(n,[]),n.parent&&(e.has(n.parent)||e.set(n.parent,[]),e.get(n.parent).push(n));return e}function nt(t,e){return tt(t,et(Z(e)))}function st(t,e=t[0].machine.root){return"compound"===e.type?K(e).some((e=>"final"===e.type&&t.includes(e))):"parallel"===e.type&&K(e).every((e=>st(t,e)))}const it=t=>"#"===t[0];function ot(t,e,n){const s=j(n.target),i=n.reenter??!1,o=rt(t,s),r={...n,actions:T(n.actions),guard:n.guard,target:o,source:t,reenter:i,eventType:e,toJSON:()=>({...r,source:`#${t.id}`,target:o?o.map((t=>`#${t.id}`)):void 0})};return r}function rt(t,n){if(void 0!==n)return n.map((n=>{if("string"!=typeof n)return n;if(it(n))return t.machine.getStateNodeById(n);const s=n[0]===e;if(s&&!t.parent)return ht(t,n.slice(1));const i=s?t.key+n:n;if(!t.parent)throw new Error(`Invalid target: "${n}" is not a valid target from the root node. Did you mean ".${n}"?`);try{return ht(t.parent,i)}catch(e){throw new Error(`Invalid transition definition for state node '${t.id}':\n${e.message}`)}}))}function at(t){const e=j(t.config.target);return e?e.map((e=>"string"==typeof e?ht(t.parent,e):e)):t.parent.initial.target}function ct(t){return"history"===t.type}function ut(t){const e=new Set;return function n(s){if(!e.has(s))if(e.add(s),"compound"===s.type)for(const i of s.initial.target){for(const n of Y(i,t))e.add(n);n(i)}else if("parallel"===s.type)for(const t of K(s))n(t)}(t),[...e]}function ft(t,e){if(it(e))return t.machine.getStateNodeById(e);if(!t.states)throw new Error(`Unable to retrieve child state '${e}' from '${t.id}'; no child states exist.`);const n=t.states[e];if(!n)throw new Error(`Child state '${e}' does not exist on '${t.id}'`);return n}function ht(t,e){if("string"==typeof e&&it(e))try{return t.machine.getStateNodeById(e)}catch(t){}const n=b(e).slice();let s=t;for(;n.length;){const t=n.shift();if(!t.length)break;s=ft(s,t)}return s}function dt(t,e){const n=e instanceof Nt?e.value:x(e);if("string"==typeof n)return[t,t.states[n]];const s=Object.keys(n),i=s.map((e=>ft(t,e))).filter(Boolean);return[t.machine.root,t].concat(i,s.reduce(((e,s)=>{const i=ft(t,s);if(!i)return e;const o=dt(i,n[s]);return e.concat(o)}),[]))}function pt(t,e,n,s){return"string"==typeof e?function(t,e,n,s){const i=ft(t,e).next(n,s);return i&&i.length?i:t.next(n,s)}(t,e,n,s):1===Object.keys(e).length?function(t,e,n,s){const i=Object.keys(e),o=pt(ft(t,i[0]),e[i[0]],n,s);return o&&o.length?o:t.next(n,s)}(t,e,n,s):function(t,e,n,s){const i=[];for(const o of Object.keys(e)){const r=e[o];if(!r)continue;const a=pt(ft(t,o),r,n,s);a&&i.push(...a)}return i.length?i:t.next(n,s)}(t,e,n,s)}function lt(t){return Object.keys(t.states).map((e=>t.states[e])).filter((t=>"history"===t.type))}function yt(t,e){let n=t;for(;n.parent&&n.parent!==e;)n=n.parent;return n.parent===e}function vt(t){const e=[];let n=t.parent;for(;n;)e.unshift(n),n=n.parent;return e}function gt(t,e){const n=new Set(t),s=new Set(e);for(const t of n)if(s.has(t))return!0;for(const t of s)if(n.has(t))return!0;return!1}function mt(t,e,n){const s=new Set;for(const i of t){let t=!1;const o=new Set;for(const r of s)if(gt(xt([i],e,n),xt([r],e,n))){if(!yt(i.source,r.source)){t=!0;break}o.add(r)}if(!t){for(const t of o)s.delete(t);s.add(i)}}return Array.from(s)}function _t(t,e){if(!t.target)return[];const n=new Set;for(const s of t.target)if(ct(s))if(e[s.id])for(const t of e[s.id])n.add(t);else for(const t of _t({target:at(s)},e))n.add(t);else n.add(s);return[...n]}function bt(t,e){const n=_t(t,e);if(!n)return null;if(!t.reenter&&"parallel"!==t.source.type&&n.every((e=>yt(e,t.source))))return t.source;return function(t){const[e]=t;let n=vt(e),s=[];for(const e of t){const t=vt(e);s=n.filter((e=>t.includes(e))),n=s,s=[]}return n[n.length-1]}(n.concat(t.source))}function xt(t,e,n){const s=new Set;for(const i of t)if(i.target?.length){const t=bt(i,n);for(const n of e)yt(n,t)&&s.add(n)}return[...s]}function wt(t,e,n,s,i){const o=new Set(e.configuration);if(!t.length)return e;const r=function(t,e,n,s,i,o){const r=[],a={...e.historyValue},c=mt(t,n,a),f=[...e._internalQueue];o||function(t,e,n,s){const i=xt(t,e,n);i.sort(((t,e)=>e.order-t.order));for(const t of i)for(const s of lt(t)){let i;i="deep"===s.history?e=>H(e)&&yt(e,t):e=>e.parent===t,n[s.id]=Array.from(e).filter(i)}for(const t of i)s.push(...t.exit,...t.invoke.map((t=>W(t.id)))),e.delete(t)}(c,n,a,r);r.push(...c.flatMap((t=>t.actions))),function(t,e,n,s,i,o,r,a,c){const f=new Set,h=new Set;St(e,r,h,f),a&&h.add(o.machine.root);for(const e of[...f].sort(((t,e)=>t.order-e.order))){n.add(e);for(const t of e.invoke)s.push(B(t));if(s.push(...e.entry),h.has(e))for(const t of h){const e=t.initial.actions;s.push(...e)}if("final"===e.type){const s=e.parent;if(!s.parent)continue;if(i.push(u(s.id,e.output?I(e.output,o.context,t,c.self):void 0)),s.parent){const t=s.parent;"parallel"===t.type&&K(t).every((t=>st([...n],t)))&&i.push(u(t.id))}}}}(s,c,n,r,f,e,a,o,i);const h=[...n],d=st(h);if(d){const t=h.sort(((t,e)=>e.order-t.order)).flatMap((t=>t.exit));r.push(...t)}try{const t=Tt(r,s,e,i),n=d?function(t,e,n,s){const{machine:i}=t[0],{root:o}=i;if(!o.output)return;const r=t.find((t=>"final"===t.type&&t.parent===i.root)),a=u(r.id,r.output?I(r.output,e,n,s):void 0);return I(o.output,e,a,s)}(h,t.context,s,i.self):void 0;return f.push(...t._internalQueue),At(e,{configuration:h,historyValue:a,_internalQueue:f,context:t.context,status:d?"done":e.status,output:n,children:t.children})}catch(t){throw t}}(t,e,o,s,n,i);return At(r,{value:{}})}function St(t,e,n,s){for(const i of t){for(const t of i.target||[])$t(t,e,n,s);const t=bt(i,e),o=_t(i,e);for(const i of o)kt(i,t,s,e,n)}}function $t(t,e,n,s){if(ct(t))if(e[t.id]){const i=e[t.id];for(const t of i)$t(t,e,n,s);for(const o of i){kt(o,t.parent,s,e,n);for(const t of n)n.add(t)}}else{const i=at(t);for(const t of i)$t(t,e,n,s);for(const o of i){kt(o,t,s,e,n);for(const t of n)n.add(t)}}else if(s.add(t),"compound"===t.type){n.add(t);const i=t.initial.target;for(const t of i)$t(t,e,n,s);for(const o of i)kt(o,t,s,e,n)}else if("parallel"===t.type)for(const i of K(t).filter((t=>!ct(t))))[...s].some((t=>yt(t,i)))||$t(i,e,n,s)}function kt(t,e,n,s,i){const o=Y(t,e);for(const t of o)if(n.add(t),"parallel"===t.type)for(const e of K(t).filter((t=>!ct(t))))[...n].some((t=>yt(t,e)))||$t(e,s,i,n)}function Tt(t,e,n,s){const{machine:i}=n;let o=At(n,{_internalQueue:[]});for(const n of t){const t="function"==typeof n,r=t?n:i.implementations.actions["string"==typeof n?n:n.type];if(!r)continue;const a={context:o.context,event:e,self:s?.self,system:s?.system,action:t?void 0:"string"==typeof n?{type:n}:"function"==typeof n.params?{type:n.type,params:n.params({context:o.context,event:e})}:n};if(!("resolve"in r)){s?.self.status===N.Running?r(a):s?.defer((()=>r(a)));continue}const c=r,[u,f,h]=c.resolve(s,o,a,r);o=u,"execute"in r&&(s?.self.status===N.Running?c.execute(s,f):s?.defer(c.execute.bind(null,s,f))),h&&(o=Tt(h,e,o,s))}return o}function It(t,e,n){let s=t;const o=[];if(e.type===r)return s=Et(e,s,n),o.push(s),{state:s,microstates:o};let a=e;if(a.type!==i){s=wt(Ot(a,s),t,n,a,!1),o.push(s)}for(;"active"===s.status;){let t=jt(s,a);if(t.length)s=wt(t,s,n,a,!1),o.push(s);else{if(!s._internalQueue.length)break;a=s._internalQueue[0];s=wt(Ot(a,s),s,n,a,!1),s._internalQueue.shift(),o.push(s)}}return"active"!==s.status&&Et(a,s,n),{state:s,microstates:o}}function Et(t,e,n){const s=[];for(const t of e.configuration.sort(((t,e)=>e.order-t.order)))s.push(...t.exit);for(const t of Object.values(e.children))s.push(W(t));return Tt(s,t,e,n)}function Ot(t,e){return e.machine.getTransitionData(e,t)}function jt(t,e){const n=new Set,s=t.configuration.filter(H);for(const i of s)t:for(const s of[i].concat(Y(i,null)))if(s.always)for(const i of s.always)if(void 0===i.guard||X(i.guard,t.context,e,t)){n.add(i);break t}return mt(Array.from(n),new Set(t.configuration),t.historyValue)}function Mt(t,e){return nt(t,[...Z(dt(t,e))])}function Pt(t){const e=[],n=t.initial,s=new Set;St([n],{},new Set([t]),s);for(const t of[...s].sort(((t,e)=>t.order-e.order)))e.push(t);return e}class Nt{static from(t,e={},n){if(t instanceof Nt)return t.context!==e?new Nt({value:t.value,context:e,meta:{},configuration:[],children:{},status:"active"},n):t;const s=Z(dt(n.root,t));return new Nt({value:t,context:e,meta:void 0,configuration:Array.from(s),children:{},status:"active"},n)}constructor(t,e){this.machine=e,this.tags=void 0,this.value=void 0,this.status=void 0,this.error=void 0,this.context=void 0,this.historyValue={},this._internalQueue=void 0,this.configuration=void 0,this.children=void 0,this.context=t.context,this._internalQueue=t._internalQueue??[],this.historyValue=t.historyValue||{},this.matches=this.matches.bind(this),this.toStrings=this.toStrings.bind(this),this.configuration=t.configuration??Array.from(Z(dt(e.root,t.value))),this.children=t.children,this.value=nt(e.root,this.configuration),this.tags=new Set($(this.configuration.map((t=>t.tags)))),this.status=t.status,this.output=t.output,this.error=t.error}toStrings(t=this.value){if("string"==typeof t)return[t];const n=Object.keys(t);return n.concat(...n.map((n=>this.toStrings(t[n]).map((t=>n+e+t)))))}toJSON(){const{configuration:t,tags:e,machine:n,...s}=this;return{...s,tags:Array.from(e),meta:this.meta}}matches(t){return _(t,this.value)}hasTag(t){return this.tags.has(t)}can(t){const e=this.machine.getTransitionData(this,t);return!!e?.length&&e.some((t=>void 0!==t.target||t.actions.length))}get nextEvents(){return c(this,"nextEvents",(()=>[...new Set($([...this.configuration.map((t=>t.ownEvents))]))]))}get meta(){return this.configuration.reduce(((t,e)=>(void 0!==e.meta&&(t[e.id]=e.meta),t)),{})}}function At(t,e={}){return new Nt({...t,...e},t.machine)}function Ct(t,{machine:e,context:n},s,i){return(o,r)=>{const a=((o,r={})=>{const{systemId:a}=r;if("string"==typeof o){const c=P(e.implementations.actors[o]);if(!c)throw new Error(`Actor logic '${o}' not implemented in machine '${e.id}'`);const u="input"in r?r.input:c.input,f=R(c.src,{id:r.id,parent:t.self,input:"function"==typeof u?u({context:n,event:s,self:t.self}):u,systemId:a});return i[f.id]=f,r.syncSnapshot&&f.subscribe({next:e=>{"active"===e.status&&t.self.send({type:`xstate.snapshot.${f.id}`,snapshot:e})},error:()=>{}}),f}{const e=R(o,{id:r.id,parent:t.self,input:r.input,systemId:a});return r.syncSnapshot&&e.subscribe({next:n=>{"active"===n.status&&t.self.send({type:`xstate.snapshot.${e.id}`,snapshot:n,id:e.id})},error:()=>{}}),e}})(o,r);return i[a.id]=a,t.defer((()=>{if(a.status!==N.Stopped)try{a.start?.()}catch(e){return void t.self.send(f(a.id,e))}})),a}}function Dt(t,e,n,{assignment:s}){if(!e.context)throw new Error("Cannot assign to undefined `context`. Ensure that `context` is defined in the machine config.");const i={},o={context:e.context,event:n.event,action:n.action,spawn:Ct(t,e,n.event,i),self:t?.self,system:t?.system};let r={};if("function"==typeof s)r=s(o);else for(const t of Object.keys(s)){const e=s[t];r[t]="function"==typeof e?e(o):e}return[At(e,{context:Object.assign({},e.context,r),children:Object.keys(i).length?{...e.children,...i}:e.children})]}function Rt(t){function e(t){}return e.type="xstate.assign",e.assignment=t,e.resolve=Dt,e}function Qt(t,e,n,{branches:s}){const i=s.find((t=>!t.guard||X(t.guard,e.context,n.event,e)))?.actions;return[e,void 0,T(i)]}function Vt(t,e,n,{value:s,label:i}){return[e,{value:"function"==typeof s?s(n):s,label:i}]}function Jt({logger:t},{value:e,label:n}){n?t(n,e):t(e)}function Bt(t,e,n,{get:s}){return[e,void 0,T(s({context:n.context,event:n.event}))]}function zt(t,e,n,{event:s,id:i,delay:o}){const r=e.machine.implementations.delays;if("string"==typeof s)throw new Error(`Only event objects may be used with raise; use raise({ type: "${s}" }) instead`);const a="function"==typeof s?s(n):s;let c;if("string"==typeof o){const t=r&&r[o];c="function"==typeof t?t(n):t}else c="function"==typeof o?o(n):o;return["number"!=typeof c?At(e,{_internalQueue:e._internalQueue.concat(a)}):e,{event:a,id:i,delay:c}]}function Ut(t,e){"number"!=typeof e.delay||t.self.delaySend(e)}function Wt(t,e){function n(t){}return n.type="xstate.raise",n.event=t,n.id=e?.id,n.delay=e?.delay,n.resolve=zt,n.execute=Ut,n}let qt=function(t){return t.Parent="#_parent",t.Internal="#_internal",t}({});function Gt(t,e,n,{to:s,event:i,id:o,delay:r}){const a=e.machine.implementations.delays;if("string"==typeof i)throw new Error(`Only event objects may be used with sendTo; use sendTo({ type: "${i}" }) instead`);const c="function"==typeof i?i(n):i;let u;if("string"==typeof r){const t=a&&a[r];u="function"==typeof t?t(n):t}else u="function"==typeof r?r(n):r;const f="function"==typeof s?s(n):s;let h;if("string"==typeof f){if(h=f===qt.Parent?t?.self._parent:f===qt.Internal?t?.self:f.startsWith("#_")?e.children[f.slice(2)]:e.children[f],!h)throw new Error(`Unable to send event to actor '${f}' from machine '${e.machine.id}'.`)}else h=f||t?.self;return[e,{to:h,event:c,id:o,delay:u}]}function Ft(t,e){if("number"==typeof e.delay)return void t.self.delaySend(e);const{to:n,event:s}=e;t.defer((()=>{n.send(s.type===o?f(t.self.id,s.data):s)}))}function Lt(t,e,n){function s(t){}return s.type="xstate.sendTo",s.to=t,s.event=e,s.id=n?.id,s.delay=n?.delay,s.resolve=Gt,s.execute=Ft,s}function Xt(t,e){return Lt(qt.Parent,t,e)}function Ht(t,e){return{config:t,transition:(e,n,s)=>({...e,context:t(e.context,n,s)}),getInitialState:(t,n)=>({status:"active",output:void 0,error:void 0,context:"function"==typeof e?e({input:n}):e}),getPersistedState:t=>t,restoreState:t=>t}}const Kt="$$xstate.resolve",Yt="$$xstate.reject";const Zt=Ht((t=>{}),void 0);const te={},ee=t=>"string"==typeof t?{type:t}:"function"==typeof t?"resolve"in t?{type:t.type}:{type:t.name}:t;class ne{constructor(t,n){if(this.config=t,this.key=void 0,this.id=void 0,this.type=void 0,this.path=void 0,this.states=void 0,this.history=void 0,this.entry=void 0,this.exit=void 0,this.parent=void 0,this.machine=void 0,this.meta=void 0,this.output=void 0,this.order=-1,this.description=void 0,this.tags=[],this.transitions=void 0,this.always=void 0,this.parent=n._parent,this.key=n._key,this.machine=n._machine,this.path=this.parent?this.parent.path.concat(this.key):[],this.id=this.config.id||[this.machine.id,...this.path].join(e),this.type=this.config.type||(this.config.states&&Object.keys(this.config.states).length?"compound":this.config.history?"history":"atomic"),this.description=this.config.description,this.order=this.machine.idMap.size,this.machine.idMap.set(this.id,this),this.states=this.config.states?S(this.config.states,((t,e)=>new ne(t,{_parent:this,_key:e,_machine:this.machine}))):te,"compound"===this.type&&!this.config.initial)throw new Error(`No initial state specified for compound state node "#${this.id}". Try adding { initial: "${Object.keys(this.states)[0]}" } to the state config.`);this.history=!0===this.config.history?"shallow":this.config.history||!1,this.entry=T(this.config.entry).slice(),this.exit=T(this.config.exit).slice(),this.meta=this.config.meta,this.output="final"!==this.type&&this.parent?void 0:this.config.output,this.tags=T(t.tags).slice()}_initialize(){this.transitions=function(t){const e=new Map;if(t.config.on)for(const n of Object.keys(t.config.on)){if(n===s)throw new Error('Null events ("") cannot be specified as a transition key. Use `always: { ... }` instead.');const i=t.config.on[n];e.set(n,O(i).map((e=>ot(t,n,e))))}if(t.config.onDone){const n=`xstate.done.state.${t.id}`;e.set(n,O(t.config.onDone).map((e=>ot(t,n,e))))}for(const n of t.invoke){if(n.onDone){const s=`xstate.done.actor.${n.id}`;e.set(s,O(n.onDone).map((e=>ot(t,s,e))))}if(n.onError){const s=`xstate.error.actor.${n.id}`;e.set(s,O(n.onError).map((e=>ot(t,s,e))))}if(n.onSnapshot){const s=`xstate.snapshot.${n.id}`;e.set(s,O(n.onSnapshot).map((e=>ot(t,s,e))))}}for(const n of t.after){let t=e.get(n.eventType);t||(t=[],e.set(n.eventType,t)),t.push(n)}return e}(this),this.config.always&&(this.always=O(this.config.always).map((t=>ot(this,s,t)))),Object.keys(this.states).forEach((t=>{this.states[t]._initialize()}))}get definition(){return{id:this.id,key:this.key,version:this.machine.version,type:this.type,initial:this.initial?{target:this.initial.target,source:this,actions:this.initial.actions.map(ee),eventType:null,reenter:!1,toJSON:()=>({target:this.initial.target.map((t=>`#${t.id}`)),source:`#${this.id}`,actions:this.initial.actions.map(ee),eventType:null})}:void 0,history:this.history,states:S(this.states,(t=>t.definition)),on:this.on,transitions:[...this.transitions.values()].flat().map((t=>({...t,actions:t.actions.map(ee)}))),entry:this.entry.map(ee),exit:this.exit.map(ee),meta:this.meta,order:this.order||-1,output:this.output,invoke:this.invoke,description:this.description,tags:this.tags}}toJSON(){return this.definition}get invoke(){return c(this,"invoke",(()=>T(this.config.invoke).map(((t,e)=>{const{src:n,systemId:s}=t,i=t.id||`${this.id}:invocation[${e}]`;const o="string"==typeof n||"type"in n?n:i;return this.machine.implementations.actors[i]||"string"==typeof n||"type"in n||(this.machine.implementations.actors={...this.machine.implementations.actors,[i]:n}),{...t,src:o,id:i,systemId:s,toJSON(){const{onDone:e,onError:n,...s}=t;return{...s,type:"xstate.invoke",src:o,id:i}}}}))))}get on(){return c(this,"on",(()=>[...this.transitions].flatMap((([t,e])=>e.map((e=>[t,e])))).reduce(((t,[e,n])=>(t[e]=t[e]||[],t[e].push(n),t)),{})))}get after(){return c(this,"delayedTransitions",(()=>function(t){const e=t.config.after;if(!e)return[];const n=(e,n)=>{const s=(o="function"==typeof e?`${t.id}:delay[${n}]`:e,r=t.id,{type:`xstate.after(${o})${r?`#${r}`:""}`}),i=s.type;var o,r;return t.entry.push(Wt(s,{id:i,delay:e})),t.exit.push(p(i)),i};return(E(e)?e.map(((t,e)=>{const s=n(t.delay,e);return{...t,event:s}})):Object.keys(e).flatMap(((t,s)=>{const i=e[t],o="string"==typeof i?{target:i}:i,r=isNaN(+t)?t:+t,a=n(r,s);return T(o).map((t=>({...t,event:a,delay:r})))}))).map((e=>{const{delay:n}=e;return{...ot(t,e.event,e),delay:n}}))}(this)))}get initial(){return c(this,"initial",(()=>function(t,n){if("string"==typeof n||E(n)){const e=T(n).map((e=>{const n="string"==typeof e?it(e)?t.machine.getStateNodeById(e):t.states[e]:e;if(!n)throw new Error(`Initial state node "${e}" not found on parent state node #${t.id}`);if(!yt(n,t))throw new Error(`Invalid initial target: state node #${n.id} is not a descendant of #${t.id}`);return n})),s=rt(t,e),i={source:t,actions:[],eventType:null,reenter:!1,target:s,toJSON:()=>({...i,source:`#${t.id}`,target:s?s.map((t=>`#${t.id}`)):void 0})};return i}return ot(t,"__INITIAL__",{target:T(n.target).map((t=>"string"==typeof t?it(t)?t:`${e}${t}`:t)),actions:n.actions})}(this,this.config.initial||[])))}next(t,e){const n=e.type,s=[];let i;const o=c(this,`candidates-${n}`,(()=>{return e=n,(t=this).transitions.get(e)||[...t.transitions.keys()].filter((t=>{if("*"===t)return!0;if(!t.endsWith(".*"))return!1;const n=t.split("."),s=e.split(".");for(let t=0;t<n.length;t++){const e=n[t],i=s[t];if("*"===e)return t===n.length-1;if(e!==i)return!1}return!0})).sort(((t,e)=>e.length-t.length)).flatMap((e=>t.transitions.get(e)));var t,e}));for(const r of o){const{guard:o}=r,a=t.context;let c=!1;try{c=!o||X(o,a,e,t)}catch(t){const e="string"==typeof o?o:"object"==typeof o?o.type:void 0;throw new Error(`Unable to evaluate guard ${e?`'${e}' `:""}in transition for event '${n}' in state node '${this.id}':\n${t.message}`)}if(c){s.push(...r.actions),i=r;break}}return i?[i]:void 0}get events(){return c(this,"events",(()=>{const{states:t}=this,e=new Set(this.ownEvents);if(t)for(const n of Object.keys(t)){const s=t[n];if(s.states)for(const t of s.events)e.add(`${t}`)}return Array.from(e)}))}get ownEvents(){const t=new Set([...this.transitions.keys()].filter((t=>this.transitions.get(t).some((t=>!(!t.target&&!t.actions.length&&!t.reenter))))));return Array.from(t)}}class se{constructor(t,e){this.config=t,this.version=void 0,this.implementations=void 0,this.types=void 0,this.__xstatenode=!0,this.idMap=new Map,this.root=void 0,this.id=void 0,this.states=void 0,this.events=void 0,this.__TContext=void 0,this.__TEvent=void 0,this.__TActor=void 0,this.__TAction=void 0,this.__TGuard=void 0,this.__TDelay=void 0,this.__TTag=void 0,this.__TInput=void 0,this.__TOutput=void 0,this.__TResolvedTypesMeta=void 0,this.id=t.id||"(machine)",this.implementations={actors:e?.actors??{},actions:e?.actions??{},delays:e?.delays??{},guards:e?.guards??{}},this.version=this.config.version,this.types=this.config.types??{},this.transition=this.transition.bind(this),this.getInitialState=this.getInitialState.bind(this),this.restoreState=this.restoreState.bind(this),this.start=this.start.bind(this),this.getPersistedState=this.getPersistedState.bind(this),this.root=new ne(t,{_key:this.id,_machine:this}),this.root._initialize(),this.states=this.root.states,this.events=this.root.events}provide(t){const{actions:e,guards:n,actors:s,delays:i}=this.implementations;return new se(this.config,{actions:{...e,...t.actions},guards:{...n,...t.guards},actors:{...s,...t.actors},delays:{...i,...t.delays}})}resolveState(t){const e=Z(dt(this.root,t.value)),n=Array.from(e);return this.createState({...t,value:Mt(this.root,t.value),configuration:n,status:st(n)?"done":t.status})}resolveStateValue(t,...[e]){const n=Mt(this.root,t);return this.resolveState(Nt.from(n,e,this))}transition(t,e,n){if(function(t){return t.type.startsWith("xstate.error.actor")}(e)&&!t.nextEvents.some((t=>t===e.type)))return At(t,{status:"error",error:e.data});const{state:s}=It(t,e,n);return s}microstep(t,e,n){return It(t,e,n).microstates}getTransitionData(t,e){return pt(this.root,t.value,t,e)||[]}getPreInitialState(t,e){const{context:n}=this.config,s=this.resolveState(this.createState({value:{},context:"function"!=typeof n&&n?n:{},meta:void 0,configuration:Pt(this.root),children:{},status:"active"}));if("function"==typeof n){return Tt([Rt((({spawn:t,event:e})=>n({spawn:t,input:e.input})))],e,s,t)}return s}getInitialState(t,e){const n=function(t){return{type:i,input:t}}(e),s=this.getPreInitialState(t,n),o=wt([{target:[...s.configuration].filter(H),source:this.root,reenter:!0,actions:[],eventType:null,toJSON:null}],s,t,n,!0),{state:r}=It(o,n,t);return r}start(t){Object.values(t.children).forEach((t=>{0===t.status&&t.start?.()}))}getStateNodeById(t){const n=t.split(e),s=n.slice(1),i=it(n[0])?n[0].slice(1):n[0],o=this.idMap.get(i);if(!o)throw new Error(`Child state node '#${i}' does not exist on machine '${this.id}'`);return ht(o,s)}get definition(){return this.root.definition}toJSON(){return this.definition}getPersistedState(t){return function(t){const{configuration:e,tags:n,machine:s,children:i,...o}=t,r={};for(const t in i){const e=i[t];r[t]={state:e.getPersistedState?.(),src:e.src}}return{...o,children:r}}(t)}createState(t){return t instanceof Nt?t:new Nt(t,this)}restoreState(t,e){const n={};Object.keys(t.children).forEach((s=>{const i=t.children[s],o=i.state,r=i.src,a=r?P(this.implementations.actors[r])?.src:void 0;if(!a)return;const c=a.restoreState?.(o,e),u=R(a,{id:s,parent:e?.self,state:c});n[s]=u}));const s=this.createState(new Nt({...t,children:n},this));return s.configuration.forEach((t=>{t.invoke&&t.invoke.forEach((t=>{const{id:s,src:i}=t;if(n[s])return;const o=P(this.implementations.actors[i]);if(o){const i=R(o.src,{id:s,parent:e?.self,input:"input"in t?t.input:o.input});n[s]=i}}))})),s}}const ie={timeout:1e4};t.Actor=D,t.ActorStatus=N,t.InterpreterStatus=A,t.SimulatedClock=class{constructor(){this.timeouts=new Map,this._now=0,this._id=0}now(){return this._now}getId(){return this._id++}setTimeout(t,e){const n=this.getId();return this.timeouts.set(n,{start:this.now(),timeout:e,fn:t}),n}clearTimeout(t){this.timeouts.delete(t)}set(t){if(this._now>t)throw new Error("Unable to travel back in time");this._now=t,this.flushTimeouts()}flushTimeouts(){[...this.timeouts].sort((([t,e],[n,s])=>{const i=e.start+e.timeout;return s.start+s.timeout>i?-1:1})).forEach((([t,e])=>{this.now()-e.start>=e.timeout&&(this.timeouts.delete(t),e.fn.call(null))}))}increment(t){this._now+=t,this.flushTimeouts()}},t.SpecialTargets=qt,t.State=Nt,t.StateMachine=se,t.StateNode=ne,t.and=function(t){function e(t){return!1}return e.check=F,e.guards=t,e},t.assign=Rt,t.cancel=p,t.choose=function(t){function e(t){}return e.type="xstate.choose",e.branches=t,e.resolve=Qt,e},t.createActor=R,t.createEmptyActor=function(){return R(Zt)},t.createMachine=function(t,e){return new se(t,e)},t.escalate=function(t,e){return Xt((e=>({type:o,data:"function"==typeof t?t(e):t})),e)},t.forwardTo=function(t,e){return Lt(t,(({event:t})=>t),e)},t.fromCallback=function(t){return{config:t,start:(t,{self:e})=>{e.send({type:i})},transition:(e,n,{self:s,id:o,system:a})=>{if(n.type===i){const n=t=>{"stopped"!==e.status&&s._parent?.send(t)},i=t=>{e._receivers.add(t)};return e._dispose=t({input:e.input,system:a,self:s,sendBack:n,receive:i}),e}return n.type===r?("function"==typeof(e={...e,status:"stopped",error:void 0})._dispose&&e._dispose(),e):(e._receivers.forEach((t=>t(n))),e)},getInitialState:(t,e)=>({status:"active",output:void 0,error:void 0,input:e,_receivers:new Set,_dispose:void 0}),getPersistedState:({_dispose:t,_receivers:e,...n})=>n,restoreState:t=>({_receivers:new Set,_dispose:void 0,...t})}},t.fromEventObservable=function(t){const e="$$xstate.error",n="$$xstate.complete";return{config:t,transition:(t,s)=>{if("active"!==t.status)return t;switch(s.type){case e:return{...t,status:"error",error:s.data,input:void 0,_subscription:void 0};case n:return{...t,status:"done",input:void 0,_subscription:void 0};case r:return t._subscription.unsubscribe(),{...t,status:"stopped",input:void 0,_subscription:void 0};default:return t}},getInitialState:(t,e)=>({status:"active",output:void 0,error:void 0,context:void 0,input:e,_subscription:void 0}),start:(s,{self:i,system:o})=>{"done"!==s.status&&(s._subscription=t({input:s.input,system:o,self:i}).subscribe({next:t=>{i._parent?.send(t)},error:t=>{i.send({type:e,data:t})},complete:()=>{i.send({type:n})}}))},getPersistedState:({_subscription:t,...e})=>e,restoreState:t=>({...t,_subscription:void 0})}},t.fromObservable=function(t){const e="$$xstate.next",n="$$xstate.error",s="$$xstate.complete";return{config:t,transition:(t,i,{self:o,id:a,defer:c})=>{if("active"!==t.status)return t;switch(i.type){case e:return{...t,context:i.data};case n:return{...t,status:"error",error:i.data,input:void 0,_subscription:void 0};case s:return{...t,status:"done",input:void 0,_subscription:void 0};case r:return t._subscription.unsubscribe(),{...t,status:"stopped",input:void 0,_subscription:void 0};default:return t}},getInitialState:(t,e)=>({status:"active",output:void 0,error:void 0,context:void 0,input:e,_subscription:void 0}),start:(i,{self:o,system:r})=>{"done"!==i.status&&(i._subscription=t({input:i.input,system:r,self:o}).subscribe({next:t=>{o.send({type:e,data:t})},error:t=>{o.send({type:n,data:t})},complete:()=>{o.send({type:s})}}))},getPersistedState:({_subscription:t,...e})=>e,restoreState:t=>({...t,_subscription:void 0})}},t.fromPromise=function(t){return{config:t,transition:(t,e)=>{if("active"!==t.status)return t;switch(e.type){case Kt:{const n=e.data;return{...t,status:"done",output:n,input:void 0}}case Yt:return{...t,status:"error",error:e.data,input:void 0};case r:return{...t,status:"stopped",input:void 0};default:return t}},start:(e,{self:n,system:s})=>{if("active"!==e.status)return;Promise.resolve(t({input:e.input,system:s,self:n})).then((t=>{"active"===n.getSnapshot().status&&n.send({type:Kt,data:t})}),(t=>{"active"===n.getSnapshot().status&&n.send({type:Yt,data:t})}))},getInitialState:(t,e)=>({status:"active",output:void 0,error:void 0,input:e}),getPersistedState:t=>t,restoreState:t=>t}},t.fromTransition=Ht,t.getStateNodes=dt,t.interpret=Q,t.log=function(t=(({context:t,event:e})=>({context:t,event:e})),e){function n(t){}return n.type="xstate.log",n.value=t,n.label=e,n.resolve=Vt,n.execute=Jt,n},t.mapState=function(t,e){let n;for(const s of Object.keys(t))_(s,e)&&(!n||e.length>n.length)&&(n=s);return t[n]},t.matchesState=_,t.not=function(t){function e(t){return!1}return e.check=G,e.guards=[t],e},t.or=function(t){function e(t){return!1}return e.check=L,e.guards=t,e},t.pathToStateValue=w,t.pure=function(t){function e(t){}return e.type="xstate.pure",e.get=t,e.resolve=Bt,e},t.raise=Wt,t.sendParent=Xt,t.sendTo=Lt,t.stateIn=function(t){function e(t){return!1}return e.check=q,e.stateValue=t,e},t.stop=W,t.toObserver=M,t.waitFor=function(t,e,n){const s={...ie,...n};return new Promise(((n,i)=>{let o=!1;const r=s.timeout===1/0?void 0:setTimeout((()=>{u.unsubscribe(),i(new Error(`Timeout of ${s.timeout} ms exceeded`))}),s.timeout),a=()=>{clearTimeout(r),o=!0,u?.unsubscribe()};function c(t){e(t)&&(a(),n(t))}let u;c(t.getSnapshot()),o||(u=t.subscribe({next:c,error:t=>{a(),i(t)},complete:()=>{a(),i(new Error("Actor terminated without satisfying predicate"))}}),o&&u.unsubscribe())}))},Object.defineProperty(t,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=xstate.umd.min.js.map