xstate 6.0.0-alpha.39 → 6.0.0-alpha.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{StateMachine-94084ac7.cjs.js → StateMachine-1464d5e4.cjs.js} +132 -0
- package/dist/{StateMachine-2f47d890.esm.js → StateMachine-6082c3cf.esm.js} +132 -0
- package/dist/{StateMachine-144215d2.development.cjs.js → StateMachine-76ee1d6e.development.cjs.js} +132 -0
- package/dist/{StateMachine-da29dd2e.development.esm.js → StateMachine-f8c7feca.development.esm.js} +132 -0
- package/dist/declarations/src/StateMachine.d.ts +9 -1
- package/dist/declarations/src/createActor.d.ts +2 -2
- package/dist/declarations/src/index.d.ts +1 -1
- package/dist/declarations/src/machineVersion.types.d.ts +37 -0
- package/dist/declarations/src/machineVersions.d.ts +58 -28
- package/dist/declarations/src/types.d.ts +19 -3
- package/dist/xstate-actors.umd.min.js.map +1 -1
- package/dist/xstate-durable.umd.min.js.map +1 -1
- package/dist/xstate-graph.cjs.js +1 -1
- package/dist/xstate-graph.development.cjs.js +1 -1
- package/dist/xstate-graph.development.esm.js +1 -1
- package/dist/xstate-graph.esm.js +1 -1
- package/dist/xstate-graph.umd.min.js +1 -1
- package/dist/xstate-graph.umd.min.js.map +1 -1
- package/dist/xstate.cjs.js +71 -55
- package/dist/xstate.development.cjs.js +71 -55
- package/dist/xstate.development.esm.js +72 -56
- package/dist/xstate.esm.js +72 -56
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/package.json +1 -1
package/dist/xstate.umd.min.js
CHANGED
|
@@ -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";class e{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)}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),this._current=t.next}this._last=null}}const n="@xstate.init",s="@xstate.spawn",o="@xstate.stop",r="@xstate.terminate",i="xstate.timer";function c(t,e){return{type:"xstate.after",delay:t,stateId:e}}function a(t,e){return`xstate.after.${t}.${e}`}function u(t){return`xstate.timeout.${t}`}function d(t,e){return{type:"xstate.timeout.actor",actorId:t,sessionId:e}}function h(t){return`xstate.timeout.actor.${t}`}function f(t,e){return{type:"xstate.done.state",stateId:t,output:e}}function l(t,e){return{type:`xstate.error.${t}`,error:e}}function p(t){return{type:n,input:t}}function y(t){setTimeout(()=>{throw t})}const v="function"==typeof Symbol&&Symbol.observable||"@@observable";function m(t){if("string"==typeof t)throw new Error("Only event objects may be used with sendTo")}const g={"@xstate.spawn":t=>t.system.spawnActor(t._parent,t),"@xstate.start":t=>t.system.startActor(t),"@xstate.raise":(t,e,n)=>t.system.scheduleTimer(t.self,n.id,n?.delay??0),"@xstate.sendTo":(t,e,n,s)=>(m(n),void 0!==s?.delay?t.system.scheduleTimer(t.self,s.id,s?.delay??0):t.system._relay(t.self,e,n)),"@xstate.cancel":(t,e)=>t.system.cancelTimer(t.self,e),"@xstate.stop":(t,e)=>t.system.stopActor(e),"@xstate.terminate":(t,e)=>t.system.terminateActor(t,e)},_=new WeakMap;function x(t){const e=(t,e)=>[{status:"active",output:void 0,error:void 0,input:t},[]];return{start:(e,{self:n,system:s})=>{const o=e.input.actor;if(!o||"stopped"===o.getSnapshot().status)return;const r=t(e.input,{self:n,system:s});if(!r)return;let i,c=!1;const a=()=>{c||(c=!0,r.unsubscribe(),i?.unsubscribe())},u=n._parent;u&&(i=u.subscribe({complete:a,error:a})),_.set(n,{unsubscribe:a})},transition:(t,e,{self:n})=>e.type===o?(_.get(n)?.unsubscribe(),_.delete(n),[{...t,status:"stopped",error:void 0},[]]):[t,[]],initialTransition:e,getInitialSnapshot:(t,n)=>e(n)[0],getPersistedSnapshot:t=>t,restoreSnapshot:t=>t}}function b(t,e,n){"stopped"!==t.getSnapshot().status&&t._parent&&e._relay(t,t._parent,n())}function w(){return x(({actor:t,eventType:e,mapper:n},{self:s,system:o})=>{const r="*"!==e&&e.endsWith(".*");return t.on(r?"*":e,t=>{r&&!Fe(t.type,e)||b(s,o,()=>n(t))})})}const $=w();function S(){return x(({actor:t,mappers:e},{self:n,system:s})=>{const{done:o,error:r,snapshot:i}=e;return t.subscribe({next:t=>{"done"===t.status&&o?b(n,s,()=>o(t.output)):"error"===t.status&&r?b(n,s,()=>r(t.error)):"active"===t.status&&i&&b(n,s,()=>i(t))},error:t=>{r&&b(n,s,()=>r(t))},complete:()=>{}})})}const E=S(),k=Symbol();function I(t){return!!t[k]}function A(t){return I(t)?t._parent:t.self._parent}function j(t,e){if(!I(e)){const n=t,s=e.self;return n.self=s,n.system=e.system,n.parent=s._parent,n}return Object.defineProperties(t,{self:{enumerable:!0,get:()=>e.self},system:{enumerable:!0,get:()=>e.system},parent:{enumerable:!0,get:()=>A(e)}}),t}function T(){return this.action?.(...this.args)}function O(t=this.source.system){return t.emitEvent(this.source,this.event)}function M(t,e,n){return{kind:"action",exec:e,type:t,action:e,params:n,args:[]}}function N(t=this.actor.system){return t.spawnActor(this.source,this.actor)}function P(t=this.actor.system){return t.startActor(this.actor)}function R(t=this.source.system){return t.stopActor(this.actor)}function C(t=this.actor.system){const e="done"===this.status?{status:"done",output:this.output,error:void 0}:{status:"error",output:void 0,error:this.error};return t.terminateActor(this.actor,e)}function D(t=this.source.system){return t.scheduleTimer(this.source,this.id,this.delay??0)}function K(t=this.source.system){return m(this.event),void 0!==this.delay?t.scheduleTimer(this.source,this.id,this.delay):t.sendEvent(this.source,this.target,this.event)}function z(t=this.source.system){return t.cancelTimer(this.source,this.id)}function V(t,e,n){if(!Y(e))return t;if("@xstate.cancel"===e.type){if(!t.timers?.[e.id])return t;const n={...t.timers};return delete n[e.id],{...t,timers:n}}if("@xstate.raise"!==e.type&&"@xstate.sendTo"!==e.type||void 0===e.delay)return t;let s=t._nextTimerId??0;const o=e.id??"xstate.timer.auto."+s++;e.id=o;const r="@xstate.raise"===e.type||e.target===n.self?"self":e.target;return{...t,timers:{...t.timers,[o]:{id:o,delay:e.delay,type:e.type,event:e.event,target:r}},_nextTimerId:s}}function W(t,e){return{...t,...e}}function L(t,e,...n){const s={action:e,args:n};return t.push(s),s}function U(t,e,n){if("add"===e.type)return{...t,children:{...t.children,[e.id]:e.actor}};const s={...t.children};let o=e.actor._parent===n.self;for(const t of Object.keys(s))s[t]===e.actor&&(o=!0,delete s[t]);if(!o)throw new Error(`Cannot stop non-child actor ${e.actor.id}`);return n.system._unregister(e.actor),{...t,children:s}}function B(t){if("object"==typeof t&&null!==t&&"action"in t&&"function"==typeof t.action)return t}function J(t,e,n,s=!1,o=!0){const r={cancel:n=>{L(e,g["@xstate.cancel"],t,n)},emit:t=>{e.push(t)},log:(...n)=>{L(e,t.logger,...n)},raise:(s,o)=>{if("string"==typeof s)throw new Error("Only event objects may be used with raise");void 0!==o?.delay?L(e,g["@xstate.raise"],t,s,o):n.push(s)},spawn:(n,s)=>{if(!o)return{id:s?.id??s?.registryKey??n.id};const r=t.system.createActorRef(n,{...s,parent:t.self});return function(t,e,n){L(t,g["@xstate.spawn"],e).childUpdate={type:"add",actor:e,id:n??e.id}}(e,r,s?.id),r},sendTo:(s,o,r)=>{s?L(e,g["@xstate.sendTo"],t,s,o,r):n.push(l("communication",{message:"Unable to send event to an undefined actor",event:o}))},stop:n=>{if(n){L(e,g["@xstate.stop"],t,n).childUpdate={type:"remove",actor:n}}}};return s&&Object.assign(r,{listen:(n,s,r)=>{if(!o)return{id:void 0};const i={actor:n,eventType:s,mapper:r},c=t.system.createActorRef($,{input:i,parent:t.self});return L(e,g["@xstate.spawn"],c),c},subscribeTo:(n,s)=>{if(!o)return{id:void 0};const r={actor:n,mappers:"function"==typeof s?{snapshot:s}:s},i=t.system.createActorRef(E,{input:r,parent:t.self});return L(e,g["@xstate.spawn"],i),i}}),et(r,(t,...n)=>{L(e,t,...n)})}function F(t,e){switch(t){case g["@xstate.spawn"]:{const[t]=e;return{kind:"builtin",exec:N,source:t._parent,actor:t,id:t.id,logic:t.logic,src:t.src,input:t.options?.input}}case g["@xstate.raise"]:{const[,t,n]=e;return{kind:"builtin",exec:D,source:e[0].self,event:t,id:n?.id,delay:n?.delay}}case g["@xstate.sendTo"]:{const[,t,n,s]=e;return{kind:"builtin",exec:K,source:e[0].self,target:t,event:n,id:s?.id,delay:s?.delay}}case g["@xstate.cancel"]:{const[,t]=e;return{kind:"builtin",exec:z,source:e[0].self,id:t}}case g["@xstate.stop"]:{const[,t]=e;return{kind:"builtin",exec:R,source:e[0].self,actor:t,id:t.id}}default:return}}function q(t){const e=[t];return{kind:"builtin",exec:P,type:"@xstate.start",source:t._parent,params:void 0,args:e,actor:t,id:t.id}}function H(t){const e=[t];return{kind:"builtin",exec:N,type:s,source:t._parent,params:void 0,args:e,actor:t,id:t.id,logic:t.logic,src:t.src,input:t.options?.input}}function G(t,e,n){const s=[t,e,n,{}];return{kind:"builtin",exec:K,type:"@xstate.sendTo",source:t.self,target:e,event:n,id:void 0,delay:void 0,params:void 0,args:s}}function X(t,e){if("done"!==e.status&&"error"!==e.status)throw new Error("Cannot terminate an active or stopped actor");const n="done"===e.status?{status:"done",output:e.output,error:void 0}:{status:"error",output:void 0,error:e.error},s=[t.self,n];return{kind:"builtin",exec:C,type:r,source:t.self,actor:t.self,id:t.self.id,...n,params:void 0,args:s}}function Z(t,e,[n,s]){const o="done"===n.status||"error"===n.status,i="done"===e?.status||"error"===e?.status,c=s.some(t=>"object"==typeof t&&null!==t&&"type"in t&&t.type===r);return!o||i||c?[n,s]:[n,[...s,X(t,n)]]}function Q(t){const e=[],n=[];for(const o of t){if(!Y(o)||o.type!==s)continue;const{actor:t,logic:r}=o,i=q(t);r===$||r===E?e.push(i):n.push(i)}return[...e,...n]}function Y(t){return"builtin"===t.kind}function tt(t,e,n,s){let o=t;const r=[];for(const i of s){const s=I(n)?j({context:o.context,event:e,output:Ve(e),children:o.children,actions:t.machine.sources.actions,actors:t.machine.sources.actors},n):{context:o.context,event:e,output:Ve(e),self:n.self,system:n.system,parent:n.self._parent,children:o.children,actions:t.machine.sources.actions,actors:t.machine.sources.actors},c="function"==typeof i,a=B(i),u=c?i:!!a&&a.action.bind(null,...a.args);let d;if("object"==typeof i&&null!==i){const{type:t,childUpdate:e,...n}=i;d=n}if(a?.childUpdate&&(o=U(o,a.childUpdate,n)),u&&"_special"in u){r.push({kind:"action",exec:T,type:"object"==typeof i?"action"in i&&"function"==typeof i.action?i.action.name??"(anonymous)":i.type??"(anonymous)":i.name||"(anonymous)",params:d,args:[],action:void 0});const t=u(s,ot);t&&("context"in t||"children"in t)&&(o={...o,...void 0!==t.context?{context:W(o.context,t.context)}:{},..."children"in t?{children:t.children}:{}});continue}if(!u||!("resolve"in u)){const t="object"==typeof i&&null!==i&&"action"in i&&"function"==typeof i.action?F(i.action,i.args):void 0,e="object"==typeof i&&null!==i&&!a,s={kind:t?"builtin":e?"emit":"action",type:"object"==typeof i?"action"in i&&"function"==typeof i.action?i.action.name??"(anonymous)":i.type:i.name||"(anonymous)",params:t?void 0:d,args:"object"==typeof i&&"action"in i?i.args:[],...t?{}:e?{source:n.self,event:i}:{action:a?.action??(c?i:void 0)},...t?{}:{exec:e?O:T},...t};o=V(o,s,n),r.push(s);continue}}return[o,r]}function et(t,e){const n=(t,...n)=>{e(t,...n)};return Object.assign(n,{cancel:nt,emit:nt,log:nt,raise:nt,spawn:st,sendTo:nt,stop:nt,listen:st,subscribeTo:st,...t}),n}const nt=()=>{},st=()=>({}),ot=et({},nt);function rt(t){const e=t.trim(),n=e.match(/^(\d+)ms$/i);if(n)return parseInt(n[1],10);const s=e.match(/^(\d*)(\.?)(\d*)s$/i);if(s){const t=s[1]?parseInt(s[1],10):0,e=!!s[2],n=s[3]?parseInt(s[3].padEnd(3,"0").slice(0,3),10):0;return 1e3*t+(e?n:0)}const o=e.match(/^P(?:(?<weeks>\d+(?:[.,]\d+)?)W)?(?:(?<days>\d+(?:[.,]\d+)?)D)?(?:T(?:(?<hours>\d+(?:[.,]\d+)?)H)?(?:(?<minutes>\d+(?:[.,]\d+)?)M)?(?:(?<seconds>\d+(?:[.,]\d+)?)S)?)?$/i);if(!o?.groups)return;const{weeks:r,days:i,hours:c,minutes:a,seconds:u}=o.groups;if(!(r||i||c||a||u))return;const d=t=>t?Number(t.replace(",",".")):0;return 7*d(r)*24*60*60*1e3+24*d(i)*60*60*1e3+60*d(c)*60*1e3+60*d(a)*1e3+1e3*d(u)}function it(t){if(void 0!==t)return"number"==typeof t?t:rt(t)}const ct=new WeakMap,at=new WeakMap,ut=new Map;function dt(t){const e=t._peekKeyedActors;return e?e.call(t)??ut:t.keyedActors}function ht(t){t._snapshotVersion++}function ft(t){return t._snapshotVersion}function lt(t,e,n){const s=function(t,e){if(e){const t=new Map(e.children);return e.root?.sessionId&&t.set(e.root.sessionId,e.root),t}return new Map(t.children)}(t,n),o=new Map(n?.keyedActors??dt(t)),r=new WeakMap,i=Object.assign(Object.create(t),{children:s,keyedActors:o,reverseKeyedActors:r,_snapshot:{...n?.snapshot??t._snapshot},_snapshotVersion:n?.sourceVersion??t._snapshotVersion,_register:(t,e)=>(s.set(t,e),ht(i),t),_unregister:t=>{t.sessionId&&s.delete(t.sessionId);const e=r.get(t);void 0!==e&&o.get(e)===t&&o.delete(e),r.delete(t),ht(i)},_set:(t,e)=>{const n=o.get(t);if(n&&n!==e)throw new Error(`Actor with registry key '${String(t)}' already exists.`);o.set(t,e),r.set(e,t),ht(i)},get:t=>o.get(t),getAll:()=>Object.fromEntries(o),_hasInspectionObservers:()=>!1,_sendInspectionEvent:()=>{}});for(const[t,e]of o)e&&r.set(e,t);for(const t of Object.values(e)){if(!t)continue;t.sessionId&&s.set(t.sessionId,t);const e=t.registryKey;e&&(o.set(e,t),r.set(t,e))}return i}function pt(t){const e=ct.get(t);if(e)return e;const n=at.get(t);if(!n)return;const s=n();return ct.set(t,s),at.delete(t),s}function yt(t,e){const n=ct.get(t);if(n)return ct.set(e,n),!0;const s=at.get(t);return!!s&&(at.set(e,s),!0)}function vt(t,e,n=e.system,s){at.delete(t);const o=ft(n),r=s?pt(s):void 0,i=r?.actor===e?r:pt(t);if(i?.actor===e&&i.systemState.sourceSystem===n&&i.systemState.sourceVersion===o)return void ct.set(t,i);const c=function(t){const e=t._getRootActor?.(),n=t._peekChildren?.();if(!e&&!n){if(t._getRootActor&&t._peekChildren)return{};const e=new Map(t.children);return e.size?{children:e}:{}}return n?.size?{children:new Map(t.children)}:e?{root:e}:{}}(n);let a=c.children;const u=dt(n);let d=u.size?new Map(u):ut;for(const e of Object.values(function(t){return"children"in t&&t.children?t.children:{}}(t))){if(!e)continue;e.sessionId&&(a??=new Map).set(e.sessionId,e);const t=e.registryKey;t&&(d===ut&&(d=new Map),d.set(t,e))}ct.set(t,{actor:e,systemState:{...c,children:a,keyedActors:d,snapshot:{...n._snapshot},sourceSystem:n,sourceVersion:o}})}function mt(t,e,n=!0){const s=wt(t);return s?(s.snapshot=e,s.materialized&&(s.materialized.self._snapshot=e)):t.self._snapshot=e,n&&e&&"object"==typeof e&&vt(e,t.self),e}function gt(t){return!!wt(t)||!!t.self.options?._inert}function _t(t,e){mt(t,e,!1);const n=wt(t);bt.set(e,t);const s=()=>(vt(e,t.self,t.system),pt(e));return n&&(n.materialized?n.identityProvider=s:n.identityProvider??=s),function(t,e){ct.delete(t),at.set(t,e)}(e,s),e}const xt=Symbol(),bt=new WeakMap;function wt(t){return t[xt]}function $t(t){return wt(t).materialize()}const St={[k]:!0,get _parent(){const t=wt(this);return t.parentKnown?t.parent:$t(this).self._parent},get self(){return $t(this).self},get defer(){return $t(this).defer},get id(){return $t(this).id},get logger(){return $t(this).logger},get sessionId(){return $t(this).sessionId},get stopChild(){return $t(this).stopChild},get system(){return $t(this).system},get emit(){return $t(this).emit},get actionExecutor(){return $t(this).actionExecutor}};function Et(t,e,n,s,o){const r=e?.(),i=o??r?.actor,c=i?.system,a=i&&c?lt(c,n,o?void 0:r?.systemState):void 0,u=hn(t,{_inert:!0,...i?{id:i.id,_sessionId:i.sessionId}:{},...a?{_systemRef:{current:a}}:{}});return i?._parent&&(u._parent=i._parent),s&&(u._snapshot=s),Object.create(u._actorScope,{defer:{value:()=>{}},stopChild:{value:t=>t._stop()},actionExecutor:{value:()=>{}}})}function kt(t,e,n,s){const o=s??(e&&"object"==typeof e?bt.get(e):void 0),r=o?wt(o):void 0,i=e&&"object"==typeof e?function(t){return ct.get(t)}(e):void 0,c=r?.identityProvider??(e&&"object"==typeof e?function(t){const e=ct.get(t);return e?()=>e:at.get(t)}(e):void 0),a={snapshot:e,sourceRef:c,sourceChildren:be(e)?e.children:{},identityProvider:r?.identityProvider??c,parent:n?._parent??r?.parent??i?.actor._parent,parentKnown:!(!n&&!r?.parentKnown&&!i&&e),materialize:()=>a.materialized??=Et(t,a.sourceRef,a.sourceChildren,a.snapshot,n)};if(!a.identityProvider&&!e){const e={},s=a.sourceRef,o=a.sourceChildren;let r,i;const c=()=>r??=Et(t,s,o,void 0,n);a.materialize=()=>{const t=c();return void 0!==a.snapshot&&(t.self._snapshot=a.snapshot),a.materialized=t},a.identityProvider=()=>{if(i)return i;const t=c();return vt(e,t.self,t.system),i=pt(e)}}const u=Object.create(St);return u[xt]=a,u}function It(t,e,n){if("function"==typeof t)return t(n);const s=function(t,e){if("string"!=typeof t)return t;const n=e[t];return void 0!==n?n:rt(t)??t}(t,e);return"function"==typeof s?s(n):s}function At(t,e){return t._stateInputs?.[e]}function jt(t){return"atomic"===t.type||"final"===t.type||"choice"===t.type}function Tt(t){return Object.values(t.states).filter(t=>"history"!==t.type)}function Ot(t,e){const n=[];if(e===t)return n;let s=t.parent;for(;s&&s!==e;)n.push(s),s=s.parent;return n}function Mt(t){const e=new Set(t),n=new Set;for(const t of e)t.parent&&n.add(t.parent);for(const t of e)if("compound"!==t.type||n.has(t)){if("parallel"===t.type)for(const n of Tt(t))if(!e.has(n)){const t=qt(n);for(const n of t)e.add(n)}}else for(const n of qt(t))e.add(n);for(const t of e){let n=t.parent;for(;n&&!e.has(n);)e.add(n),n=n.parent}return e}function Nt(t,e){const n=Mt(e),s=new Map;for(const t of n)s.has(t)||s.set(t,[]),t.parent&&(s.has(t.parent)||s.set(t.parent,[]),s.get(t.parent).push(t));const o=t=>{const e=s.get(t);if(!e)return{};if("compound"===t.type){const t=e[0];if(!t)return{};if(jt(t))return t.key}const n={};for(const t of e)n[t.key]=o(t);return n};return o(t)}function Pt(t,e){return"compound"===e.type?Tt(e).some(e=>"final"===e.type&&t.has(e)):"parallel"===e.type?Tt(e).every(e=>Pt(t,e)):"final"===e.type}const Rt=t=>"#"===t[0];function Ct(t){switch(t.type){case"xstate.done.actor":case"xstate.error.actor":return`${t.type}.${t.actorId}`;case"xstate.snapshot.actor":return`xstate.snapshot.${t.actorId}`;case"xstate.done.state":return`xstate.done.state.${t.stateId}`;case"xstate.after":return`xstate.after.${t.delay}.${t.stateId}`;case"xstate.timeout":return`xstate.timeout.${t.stateId}`;case"xstate.timeout.actor":return`xstate.timeout.actor.${t.actorId}`;default:return}}function Dt(t,e,n){return!e.children[n]||!("sessionId"in t)||e.children[n]?.sessionId===t.sessionId}function Kt(t,e){const n=function(t){const e=Ct(t);return e?[t.type,e]:[t.type]}(e),s=n.flatMap(e=>t.transitions.get(e)??[]),o=[...t.transitions.keys()].filter(t=>!n.includes(t)&&n.some(e=>Fe(e,t))).sort((t,e)=>e.length-t.length).flatMap(e=>t.transitions.get(e));return s.length?[...s,...o]:o}function zt(t,e,n,s){const o=t.entry;t.entry=(t,r)=>(r.raise(n(t),{id:e,delay:s(t)}),"function"==typeof o?o(t,r):void 0);const r=t.exit;t.exit=(t,n)=>(n.cancel(e),"function"==typeof r?r(t,n):void 0)}function Vt(t,e,n){const s=Ue(n.target),o=n.reenter??!1,r=Bt(t,s);Ut(t,r);const i={...n,target:r,source:t,reenter:o,eventType:e,toJSON:()=>({...i,source:`#${t.id}`,target:r?r.map(t=>`#${t.id}`):void 0})};return i}function Wt(t,e){for(let n=t.parent;n;n=n.parent)if(n===e)return!0;return!1}function Lt(t,e){const n=new Set;for(let e=t;e;e=e.parent)n.add(e);for(let t=e;t;t=t.parent)if(n.has(t))return t}function Ut(t,e){if(e&&!(e.length<2))for(let n=0;n<e.length;n++)for(let s=n+1;s<e.length;s++){const o=e[n],r=e[s],i=Lt(o,r);if(o===r||Wt(o,r)||Wt(r,o)||"parallel"!==i?.type)throw new Error(`Invalid target set for '${t.id}'`)}}function Bt(t,e){if(void 0!==e)return e.map(e=>{if("string"!=typeof e)return e;if(Rt(e))return t.machine.getStateNodeById(e);const n="."===e[0];if(n&&!t.parent)return Gt(t,e.slice(1));const s=n?t.key+e:e;if(!t.parent)throw new Error(`Invalid target: "${e}"`);try{return Gt(t.parent,s)}catch(e){throw new Error(`Invalid transition for '${t.id}': ${e.message}`)}})}function Jt(t){const e=Ue(t.config.target);if(!e)return"parallel"===t.parent.type?{target:[t.parent],source:t,reenter:!1,eventType:""}:t.parent.initial;const n=e.map(e=>"string"==typeof e?Gt(t.parent,e):e);return Ut(t,n),{target:n,source:t,reenter:!1,eventType:""}}function Ft(t){return"history"===t.type}function qt(t){const e=new Set;!function t(n){if(!e.has(n))if(e.add(n),"compound"===n.type)t(n.initial.target[0]);else if("parallel"===n.type)for(const e of Tt(n))t(e)}(t);for(const n of e)for(const s of Ot(n,t))e.add(s);return e}function Ht(t,e){if(Rt(e))return t.machine.getStateNodeById(e);const n=t.states?.[e];if(!n)throw new Error(`Child state '${e}' does not exist on '${t.id}'`);return n}function Gt(t,e){if("string"==typeof e&&Rt(e))try{return t.machine.getStateNodeById(e)}catch{}const n=Pe(e).slice();let s=t;for(;n.length;){const t=n.shift();if(!t.length)break;s=Ht(s,t)}return s}function Xt(t,e){if("string"==typeof e){const n=t.states[e];if(!n)throw new Error(`State '${e}' does not exist on '${t.id}'`);return[t,n]}const n=Object.keys(e),s=new Array(n.length),o=[t.machine.root,t];for(let e=0;e<n.length;e++){const r=Ht(t,n[e]);s[e]=r,o.push(r)}for(let t=0;t<n.length;t++)o.push(...Xt(s[t],e[n[t]]));return o}function Zt(t,e,n,s,o,r){if("string"==typeof e){const i=Ht(t,e).next(n,s,o,r);return i&&i.length?i:t.next(n,s,o,r)}const i=Object.keys(e),c=i[0];if(1===i.length){const i=Zt(Ht(t,c),e[c],n,s,o,r);return i&&i.length?i:t.next(n,s,o,r)}const a=[];for(const c of i){const i=e[c];if(!i)continue;const u=Zt(Ht(t,c),i,n,s,o,r);u&&a.push(...u)}return a.length?a:t.next(n,s,o,r)}function Qt(t,e){let n=t;for(;n.parent&&n.parent!==e;)n=n.parent;return n.parent===e}function Yt(t,e){for(const n of t)if(Qt(n,e))return!0;return!1}function te(t,e){const n=t instanceof Set?t.size:Array.isArray(t)?t.length:void 0,s=e instanceof Set?e.size:Array.isArray(e)?e.length:void 0;void 0!==n&&void 0!==s&&s<n&&([t,e]=[e,t]);const o=t instanceof Set?t:new Set(t);for(const t of e)if(o.has(t))return!0;return!1}function ee(t,e,n,s){const o=new Set,r=new Map,i=t=>{let o=r.get(t);return o||(o=ie([t],e,n,s),r.set(t,o)),o};for(const e of t){let t=!1;const n=new Set;for(const s of o)if(te(i(e),i(s)))if(Qt(e.source,s.source))n.add(s);else{if("final"!==s.source.type||"final"===e.source.type){t=!0;break}n.add(s)}if(!t){for(const t of n)o.delete(t);o.add(e)}}return Array.from(o)}function ne(t,e,n,s,o){let r;return i=>{if(!i.to)return ue(i,t,e,n,{resolveActions:s,selectionResult:o?.get(i)});let c=r?.get(i);return c||(c=ue(i,t,e,n,{resolveActions:s,selectionResult:o?.get(i)}),(r??=new Map).set(i,c)),c}}function se(t,e,n){const s=e.historyValue,{targets:o}=n(t);if(!o)return[];const r=new Set;for(const t of o)if(Ft(t))if(s[t.id])for(const e of s[t.id])r.add(e);else for(const s of se(Jt(t),e,n))r.add(s);else r.add(t);return[...r]}function oe(t,e){let n=t;for(;"parallel"===n.type;){const t=Tt(n).find(t=>e.every(e=>e===t||Qt(e,t)));if(!t)break;n=t}return n}function re(t,e,n){const s=se(t,e,n),{reenter:o}=n(t);if(s.every(e=>e===t.source||Qt(e,t.source)))return o?t.source:oe(t.source,s);const[r,...i]=s.concat(t.source);for(const t of Ot(r,void 0))if(i.every(e=>Qt(e,t)))return o?t:oe(t,s);return o?void 0:oe(t.source.machine.root,s)}function ie(t,e,n,s){const o=new Set;for(const r of t){const{targets:t,reenter:i}=s(r);if(t?.length){const t=re(r,n,s);i&&r.source===t&&o.add(t);for(const n of e)Qt(n,t)&&o.add(n)}}return[...o]}function ce(t,e,n,s,o){return ae([{target:[...qt(t)],source:t,reenter:!0,eventType:null,toJSON:null}],e,n,s,!0,o)}function ae(t,e,n,s,o,r,i){const c=[];if(!t.length)return[e,c];{const a=new Set(e.nodes);let u=e.historyValue;const d=e.context,h=1===t.length?t:ee(t,a,e,ne(e,s,n,!1,i)),l=ne(e,s,n,!0,i),p=h.some(t=>{const{targets:e,reenter:n}=l(t);return!!e?.length||!!n}),y=(t,o,r,i)=>{if(2===t.length){const c=[],a=[];let u;const d=J(n,c,a,!0),h=I(n)?j({context:o,event:s,children:r,actions:e.machine.sources.actions,actors:e.machine.sources.actors,guards:e.machine.sources.guards,delays:e.machine.sources.delays,input:i},n):{context:o,event:s,parent:n.self._parent,self:n.self,children:r,system:n.system,actions:e.machine.sources.actions,actors:e.machine.sources.actors,guards:e.machine.sources.guards,delays:e.machine.sources.delays,input:i},f=t(h,d);return void 0!==f?.context&&(u=W(o,f.context)),[c,u,a]}return[[Object.assign((e,s)=>t(I(n)?j({context:e.context,event:e.event,output:e.output,children:e.children,actions:e.actions,actors:e.actors,input:i},n):{...e,input:i},s),"_special"in t?{_special:!0}:{})],void 0,void 0]};let v=e;const m=(t,e)=>{const s=[],o=J(n,s,[]);for(const n of t.invoke){const t=e[n.id];t&&o.stop(t)}return s},_=()=>{const t=ie(h,a,e,l);let o;t.sort((t,e)=>e.order-t.order);const i=[...a];for(const e of t)for(const t of Object.values(e.states)){if("history"!==t.type)continue;const n="deep"===t.history?t=>jt(t)&&Qt(t,e):t=>t.parent===e;o??={...u},o[t.id]=i.filter(n)}for(const o of t){const t=At(e,o.id),[i,u,d]=o.exit?y(o.exit,v.context,e.children,t):[[],void 0,void 0];d?.length&&r.push(...d),u&&(v=Te(v,{context:u}));const[h,f]=tt(v,s,n,i);v=h,c.push(...f);const l=m(o,v.children);if(l.length){const[t,e]=tt(v,s,n,l);v=t,c.push(...e)}a.delete(o)}u=o||u};!o&&p&&_();let x=v.context;const b=[],w=[];for(const t of h){t.actions&&b.push(...Ke(t.actions));const e=l(t);void 0!==e.context&&(x=W(x,e.context)),e.actions&&b.push(...e.actions),e.internalEvents&&w.push(...e.internalEvents)}w.length&&r.push(...w);const $=()=>{const t=t=>{const e=v.machine.root;let o;if(void 0!==t.output&&t.parent){const i=r.find(t=>"xstate.done.state"===t.type&&t.stateId===e.id);o=i&&t.parent===e?i.output:ze(t.output,v.context,s,n.self,_[t.id])}else if("parallel"===t.type){const e=r.find(e=>"xstate.done.state"===e.type&&e.stateId===t.id);o=e?.output}return void 0===e.output?t.parent===e?o:void 0:ze(e.output,v.context,f(t.id,o),n.self)},i=new Set,d=new Set,p=(t,e)=>{for(const n of t)if(e&&!Qt(n,e)||i.add(n),"parallel"===n.type)for(const t of Tt(n))Yt(i,t)||(i.add(t),m(t))},m=t=>{if(Ft(t))if(u[t.id]){const e=u[t.id];for(const t of e)i.add(t),m(t);for(const n of e)p(Ot(n,t.parent),void 0)}else{const e=Jt(t),{targets:n}=l(e);for(const s of n??[])i.add(s),e===t.parent?.initial&&d.add(t.parent),m(s);for(const e of n??[])p(Ot(e,t.parent),void 0)}else{if("compound"===t.type){const[e]=l(t.initial).targets;return Ft(e)||(i.add(e),d.add(e)),m(e),void p(Ot(e,t),void 0)}if("parallel"===t.type)for(const e of Tt(t))Yt(i,e)||(i.add(e),d.add(e),m(e))}};for(const t of h){const n=re(t,e,l),{targets:s,reenter:o}=l(t);for(const e of s??[])Ft(e)||t.source===e&&t.source===n&&!o||(i.add(e),d.add(e)),m(e);const r=se(t,e,l);for(const e of r){const s=Ot(e,n);"parallel"===n?.type&&s.push(n),p(s,!t.source.parent&&o?void 0:n)}o&&n===t.source&&i.add(t.source)}o&&d.add(e.machine.root);const _={...e._stateInputs};let x=!1;for(const t of h){const{targets:e,input:n}=l(t);if(n&&e)for(const t of e)_[t.id]=n,x=!0}const b=new Set,w={...v.children};for(const o of[...i].sort((t,e)=>t.order-e.order)){a.add(o);const i=[];let u=!1;for(const t of o.invoke){u=!0;let o=t.logic;"function"==typeof o&&(o=o({actors:e.machine.sources.actors,context:v.context,event:s,self:n.self}));const r="string"==typeof o?Je(e.machine,o):o;if(!r)throw new Error(`Actor logic '${"string"==typeof o?o:"inline"}' not implemented`);const c="function"==typeof t.input?t.input({self:n.self,context:v.context,event:s,output:Ve(s)}):t.input,a=n.system.createActorRef(r,{...t,input:c,parent:n.self,syncSnapshot:!!t.onSnapshot});i.push({action:g["@xstate.spawn"],args:[a]}),t.id&&(w[t.id]=a)}u&&(v=Te(v,{children:w}));let h=v.context,l=!1;const p=_[o.id];if(o.entry){const[t,e,n]=y(o.entry,h,w,p);i.push(...t),n?.length&&r.push(...n),e&&(h=e,l=!0)}if(l&&(v.context=h),d.has(o)){const{actions:t,input:e}=ue(o.initial,v,s,n);if(t&&i.push(...t),e&&o.initial?.target)for(const t of o.initial.target)_[t.id]=e,x=!0}const[m,$]=tt(v,s,n,i);if(v=m,i.length=0,c.push(...$),"final"!==o.type)continue;const S=o.parent;let E="parallel"===S?.type?S:S?.parent,k=E||o;for("compound"===S?.type&&r.push(f(S.id,void 0!==o.output?ze(o.output,v.context,s,n.self,p):void 0));"parallel"===E?.type&&!b.has(E)&&Pt(a,E);){b.add(E);const t={};for(const e of Tt(E)){if("final"===e.type){t[e.key]=void 0!==e.output?ze(e.output,v.context,s,n.self,_[e.id]):void 0;continue}if("parallel"===e.type){const n=r.find(t=>"xstate.done.state"===t.type&&t.stateId===e.id);t[e.key]=n?.output;continue}const o=Tt(e).find(t=>"final"===t.type&&a.has(t));t[e.key]=void 0!==o?.output?ze(o.output,v.context,s,n.self,_[o.id]):void 0}r.push(f(E.id,t)),k=E,E=E.parent}E||(v=Te(v,{status:"done",output:t(k)}))}x&&(v=Te(v,{_stateInputs:_}))},[S,E]=tt(v,s,n,b);v=S,c.push(...E),x&&x!==e.context&&(v=Te(v,{context:x})),(o||p)&&$();const k=[...a];if("done"===v.status){const t=[];k.sort((t,e)=>e.order-t.order).forEach(e=>{if(e.exit){const n=At(v,e.id),[s,,o]=y(e.exit,v.context,v.children,n);t.push(...s),o?.length&&r.push(...o)}});const[e,o]=tt(v,s,n,t);v=e,c.push(...o);const[i,a]=ye(v,s,n);v=i,c.push(...a);const[u,d]=ve(v,s,n);v=u,c.push(...d)}return u===e.historyValue&&e.nodes.length===a.size&&e.nodes.every(t=>a.has(t))?v.context!==d?[v===e?Te(v):v,c]:[v,c]:[Te(v,{_nodes:k,historyValue:u}),c]}}function ue(t,e,n,s,o){let r;const i=()=>r??=I(s)?j({context:e.context,event:n,output:Ve(n),value:e.value,children:e.children,actions:e.machine.sources.actions,actors:e.machine.sources.actors,guards:e.machine.sources.guards,delays:e.machine.sources.delays,input:At(e,t.source.id)},s):{context:e.context,event:n,output:Ve(n),value:e.value,children:e.children,system:s.system,parent:s.self._parent,self:s.self,actions:e.machine.sources.actions,actors:e.machine.sources.actors,guards:e.machine.sources.guards,delays:e.machine.sources.delays,input:At(e,t.source.id)};if(t.to){const r=[],c=[],a=o?.selectionResult?.reusable?o.selectionResult.result:t.to(i(),J(s,r,c,!0,o?.resolveActions??!0)),u=a?.target?Bt(t.source,Ke(a.target)):void 0,d=a?.input??("function"==typeof t.input?t.input({context:e.context,event:n,output:Ve(n)}):t.input);return{targets:u,context:a?.context,reenter:a?.reenter,actions:r,internalEvents:c,input:d}}const c="function"==typeof t.input?t.input({context:e.context,event:n,output:Ve(n)}):t.input,a="function"==typeof t.context?t.context(i()):t.context;return{targets:t.target,context:a,reenter:t.reenter,actions:void 0,internalEvents:void 0,input:c}}function de(t,e,s,r,c=[]){let a=t;const u=c.slice();function d(t){if("xstate.done.actor"!==t.type&&"xstate.error.actor"!==t.type)return;const{actorId:e,sessionId:n}=t;if(!e)return;const o=a.children[e];if(!o||o.sessionId!==n)return;const r={...a.children};if(delete r[e],s.system._unregister(o),a=Te(a,{children:r}),u.length){const[,t]=u.at(-1);u[u.length-1]=[a,t]}else u.push([a,[]])}function h(){const e=Q(u.flatMap(([,t])=>t)),n=("active"===t.status||c.length>0)&&("done"===a.status||"error"===a.status);if(e.length||n){const t=n?[...e,X(s,a)]:e;if(u.length){const[e,n]=u.at(-1);u[u.length-1]=[e,[...n,...t]]}else u.push([a,t])}return{snapshot:a,microsteps:u}}function f(t,o){if(!gt(s)&&(e.type===n||(s.system._hasInspectionObservers?.()??1))){const t=s.self._collectedMicrosteps||[];t.push(...o),s.self._collectedMicrosteps=t}u.push(t)}if(e.type===o){const[t,n]=ye(a,e,s),[o,r]=ve(t,e,s);return a=Te(o,{status:"stopped"}),f([a,[...n,...r]],[]),h()}let l=function(t,e){if("xstate.done.actor"===t.type||"xstate.error.actor"===t.type||"xstate.snapshot.actor"===t.type||"xstate.done.state"===t.type||"xstate.after"===t.type||"xstate.timeout"===t.type||"xstate.timeout.actor"===t.type)return t;const n=(e,n,s)=>t.type.startsWith(e)?{...t,type:n,[s]:t[s]??t.type.slice(e.length)}:void 0,s=n("xstate.done.actor.","xstate.done.actor","actorId")??n("xstate.error.actor.","xstate.error.actor","actorId")??n("xstate.snapshot.","xstate.snapshot.actor","actorId")??n("xstate.done.state.","xstate.done.state","stateId")??n("xstate.timeout.actor.","xstate.timeout.actor","actorId")??n("xstate.timeout.","xstate.timeout","stateId");if(s)return s;const o="xstate.after.";if(!t.type.startsWith(o))return t;const r=[...e.idMap.keys()].sort((t,e)=>e.length-t.length).find(e=>t.type.endsWith(`.${e}`));if(!r)return t;const i=t.type.slice(13,-r.length-1);return{...t,type:"xstate.after",delay:Number.isNaN(+i)?i:+i,stateId:r}}(e,t.machine);if(e.type===i){const t=a.timers[e.id];if(!t)return h();const n={...a.timers};if(delete n[t.id],a=Te(a,{timers:n}),"@xstate.raise"===t.type)r.push(t.event),f([a,[]],[]);else{const e="self"===t.target?s.self:t.target;f([a,[G(s,e,t.event)]],[])}}if(l.type!==n&&l.type!==i){const e=l,n=function(t){return t.type.startsWith("xstate.error.")}(e),o=new Map,i=a.machine.getTransitionData(a,e,s,o);if(n&&!i.length)return"xstate.error.actor"!==e.type||Dt(e,a,e.actorId)?(a=Te(t,{status:"error",error:e.error}),f([a,[]],[]),d(e),h()):h();const c=ae(i,t,s,l,!1,r,o);a=c[0],f(c,i),d(e)}if(!r.length&&!1===t.machine._hasEventlessTransitions)return h();let p=!0;const y=t.machine.options?.maxIterations??1/0;let v=0,m=0;for(;"active"===a.status;){if(m++,m>1e3)throw new Error("Microstep count exceeded 1000");if(v++,v>y)throw new Error(`Infinite loop detected (>${y} microsteps)`);let t,e=p?me(a,l,s):[];const n=e.length?a:void 0;if(!e.length){if(!r.length)break;l=r.shift(),t=new Map,e=a.machine.getTransitionData(a,l,s,t)}const o=ae(e,a,s,l,!1,r,t);a=o[0],p=a!==n,f(o,e),d(l)}return h()}function he(t,e,n,s,o){return!!t.to&&pe(t.to,e,n,s,o,s.machine.sources,t.source.id).enabled}const fe=()=>{throw Ge};let le;function pe(t,e,n,s,o,r,i){let c;const a=A(o);a&&Xe.push(a);try{c=t(j({context:e,event:n,output:Ve(n),value:s.value,children:s.children,actions:r.actions,actors:r.actors,guards:r.guards,delays:r.delays,input:At(s,i)},o),le??=et({emit:fe,cancel:fe,log:fe,raise:fe,spawn:fe,sendTo:fe,stop:fe,listen:fe,subscribeTo:fe},fe))}catch(t){if(t===Ge)return{enabled:!0,result:void 0,reusable:!1};throw t}finally{a&&Xe.pop()}return{enabled:void 0!==c,result:c,reusable:!0}}function ye(t,e,n){let s;if(!t.children||0===(s=Object.values(t.children).filter(Boolean)).length)return[t,[]];const o=[],r=J(n,o,[]);for(const t of s)r.stop(t);return tt(t,e,n,o)}function ve(t,e,n){const s=Object.keys(t.timers);if(!s.length)return[t,[]];const o=[],r=J(n,o,[]);for(const t of s)r.cancel(t);return tt(t,e,n,o)}function me(t,e,n){const s=new Set,o=t.nodes.filter(jt);for(const r of o)t:for(let o=r;o;o=o.parent)if(o.always)for(const r of o.always)if(ge(r,e,t,o,n)){s.add(r);break t}return ee(Array.from(s),new Set(t.nodes),t,ne(t,e,n,!1))}function ge(t,e,n,s,o,r){if(t.matches&&!function(t,e){return Object.entries(e).every(([e,n])=>Object.is(t[e],n))}(e,t.matches))return!1;if(t._eventMatcher&&!t._eventMatcher(e,n))return!1;if(t.guard){const r=function(t,e){if(!I(e)){const n=e.self;return Object.assign(t,{self:n,parent:n._parent})}return Object.defineProperties(t,{self:{enumerable:!0,get:()=>e.self},parent:{enumerable:!0,get:()=>A(e)}}),t}({context:n.context,event:e,output:Ve(e),children:n.children,actions:s.machine.sources.actions,actors:s.machine.sources.actors,guards:s.machine.sources.guards,delays:s.machine.sources.delays,_snapshot:n},o);if(!t.guard(r))return!1}if(t.to){const i=pe(t.to,n.context,e,n,o,s.machine.sources,t.source.id);return r?.set(t,i),i.enabled}return!0}const _e=Object.freeze({});function xe(t){return t===_e||t&&Object.keys(t).length?t:_e}function be(t){return!!t&&"object"==typeof t&&"machine"in t&&"value"in t}const we=function(t){return Ne(t,this.value)},$e=function(t){return this.tags.has(t)},Se=function(t){return this.machine?._canTransition(this,t)??!1},Ee=function(){const{nodes:t,_stateInputs:e,tags:n,machine:s,getMeta:o,getInputs:r,toJSON:i,can:c,hasTag:a,matches:u,...d}=this;return{...d,tags:Array.from(n)}},ke=function(){const t={};for(const e of this.nodes)void 0!==e.meta&&(t[e.id]=e.meta);return t},Ie=function(){return this._stateInputs};function Ae(t){const e=new Set;for(const n of t)for(const t of n.tags)e.add(t);return e}function je(t,e,n){const s={status:t.status,output:t.output,error:t.error,machine:e,context:t.context,nodes:t._nodes,value:t.value??Nt(e.root,t._nodes),tags:Ae(t._nodes),children:xe(t.children),timers:xe(t.timers),historyValue:xe(t.historyValue),_stateInputs:xe(t._stateInputs),_nextTimerId:t._nextTimerId??0,matches:we,hasTag:$e,can:Se,getMeta:ke,getInputs:Ie,toJSON:Ee};return n&&vt(s,n),s}function Te(t,e={}){const n={...t,...e};if((e._nodes??t.nodes)===t.nodes){const e={status:n.status,output:n.output,error:n.error,machine:t.machine,context:n.context,nodes:t.nodes,value:t.value,tags:t.tags,children:xe(n.children),timers:xe(n.timers),historyValue:xe(n.historyValue),_stateInputs:xe(n._stateInputs),_nextTimerId:n._nextTimerId??0,matches:we,hasTag:$e,can:Se,getMeta:ke,getInputs:Ie,toJSON:Ee};return yt(t,e),e}const s=je({...n,value:void 0},t.machine);return yt(t,s),s}function Oe(t){const e={};for(const n in t){const s=t[n];Array.isArray(s)&&(e[n]=s.map(t=>({id:t.id})))}return e}function Me(t){let e;for(const n in t){const s=t[n];if(s&&"object"==typeof s)if("sessionId"in s&&"send"in s&&"ref"in s)e??=Array.isArray(t)?t.slice():{...t},e[n]={xstate$$type:nn,id:s.id};else{const o=Me(s);o!==s&&(e??=Array.isArray(t)?t.slice():{...t},e[n]=o)}}return e??t}function Ne(t,e){const n=Re(t),s=Re(e);return"string"==typeof s?"string"==typeof n&&s===n:"string"==typeof n?n in s:Object.keys(n).every(t=>t in s&&Ne(n[t],s[t]))}function Pe(t){if(We(t))return t;const e=[];let n="";for(let s=0;s<t.length;s++){switch(t.charCodeAt(s)){case 92:n+=t[s+1],s++;continue;case 46:e.push(n),n="";continue}n+=t[s]}return e.push(n),e}function Re(t){if(be(t))return t.value;if("string"!=typeof t)return t;return Ce(Pe(t))}function Ce(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 De(t){return We(t)?t:[t]}function Ke(t){return void 0===t?[]:De(t)}function ze(t,e,n,s,o){if("function"==typeof t){return t({context:e,event:n,output:Ve(n),self:s,input:o})}return t}function Ve(t){if(function(t){return"xstate.done.actor"===t.type||"xstate.done.state"===t.type}(t)){return t.output}}function We(t){return Array.isArray(t)}function Le(t){return De(t).map(t=>void 0===t||"string"==typeof t?{target:t}:"function"==typeof t?{to:t}:t)}function Ue(t){if(void 0!==t&&""!==t)return Ke(t)}function Be(t,e,n){const s="object"==typeof t,o=s?t:void 0;return{next:(s?t.next:t)?.bind(o),error:(s?t.error:e)?.bind(o),complete:(s?t.complete:n)?.bind(o)}}function Je(t,e){const n=e.match(/^xstate\.invoke\.(\d+)\.(.*)/);if(!n)return t.sources.actors[e];const[,s,o]=n,r=t.getStateNodeById(o).config.invoke,i=(Array.isArray(r)?r[s]:r).src;return"string"==typeof i?t.sources.actors[i]:i}function Fe(t,e){if(e===t)return!0;if("*"===e)return!0;if(!e.endsWith(".*"))return!1;const n=e.split("."),s=t.split(".");for(let t=0;t<n.length;t++){const e=n[t],o=s[t];if("*"===e){return t===n.length-1}if(e!==o)return!1}return!0}let qe,He=0;const Ge=new Error("Transition effect"),Xe=[];function Ze(){return qe??=function(){let t;try{t=globalThis.crypto}catch{}if(t?.getRandomValues)try{const e=new Uint32Array(4);return t.getRandomValues(e),Array.from(e,t=>t.toString(36).padStart(7,"0")).join("")}catch{}if(t?.randomUUID)try{return t.randomUUID().replaceAll("-","")}catch{}return`xstate-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),`${qe}:${(He++).toString(36)}`}const Qe=Object.freeze({});function Ye(t,e){return`${t.sessionId}.${e}`}class tn{get children(){const t=this._children??=new Map;return this._getRootActor()&&t.set(this._rootActor.sessionId,this._rootActor),t}set children(t){this._children=t}_getRootActor(){return this._rootActor._isRunning()?this._rootActor:void 0}_peekChildren(){return this._children}get keyedActors(){return this._keyedActors??=new Map}set keyedActors(t){this._keyedActors=t}get reverseKeyedActors(){return this._reverseKeyedActors??=new WeakMap}set reverseKeyedActors(t){this._reverseKeyedActors=t}_peekKeyedActors(){return this._keyedActors}constructor(t,e){this._rootActor=t,this._identity={systemId:Ze(),nextSessionId:0},this._snapshot=void 0,this._snapshotVersion=0,this.scheduler=this,this._clock=void 0,this._logger=void 0,this.createActorRef=void 0;const n="object"==typeof e.snapshot&&null!==e.snapshot?e.snapshot:void 0;this._clock=e.clock,this._logger=e.logger,this.createActorRef=e.createActorRef,this._snapshot={_scheduledTimers:n?.scheduler??Qe,_nextActorId:n?._nextActorId??0}}_recordSent(t,e,n,s,o){if(!this._inspectionObservers?.size||!t)return;const r=t;(r._collectedSent??=[]).push({targetRef:e,targetId:e.id,event:n,delay:s,id:o})}schedule(t,e,n){const s=Ye(t,e);void 0!==this._timerMap?.[s]&&this.cancel(t,e);const o=t.getSnapshot()?.timers?.[e];if(o){const s="self"===o.target?t:o.target;this._recordSent(t,s,o.event,n,e)}const r=this._clock.now?.()??Date.now(),c={source:t,delay:n,id:e,scheduledAt:r,dueAt:r+n},a=Ye(t,e);this._snapshot._scheduledTimers===Qe&&(this._snapshot._scheduledTimers={}),this._snapshot._scheduledTimers[a]=c,ht(this);const u=this._clock.setTimeout(()=>{this._timerMap&&delete this._timerMap[a],delete this._snapshot._scheduledTimers[a],ht(this),this._deliver(t,t,{type:i,id:e})},n);(this._timerMap??={})[a]=u}cancel(t,e){const n=Ye(t,e),s=this._timerMap?.[n];this._timerMap&&delete this._timerMap[n],this._snapshot._scheduledTimers!==Qe&&delete this._snapshot._scheduledTimers[n],ht(this),void 0!==s&&this._clock.clearTimeout(s)}cancelAll(t){for(const e in this._snapshot._scheduledTimers){const n=this._snapshot._scheduledTimers[e];n.source===t&&this.cancel(t,n.id)}}_deliver(t,e,n){const s=e,o=s.logic;if("function"==typeof o?.isInternalEventType&&o.isInternalEventType(n.type)&&t!==e)throw new Error(`Internal event "${n.type}" cannot be sent to actor "${e.id}" from outside.`);s._lastSourceRef=t,e._send(n)}_register(t,e){return e===this._rootActor?this._children?.set(t,e):(this._children??=new Map).set(t,e),ht(this),t}_unregister(t){let e;t===this._rootActor?(e=void 0!==this._getRootActor(),e=(this._children?.delete(t.sessionId)??!1)||e):e=this._children?.delete(t.sessionId)??!1;const n=this._reverseKeyedActors?.get(t);void 0!==n&&(this._keyedActors?.get(n)===t&&(this._keyedActors.delete(n),e=!0),this._reverseKeyedActors?.delete(t)),e&&ht(this)}get(t){return this._keyedActors?.get(t)}getAll(){return Object.fromEntries(this._keyedActors?.entries()??[])}_set(t,e){const n=this._keyedActors?.get(t);if(n&&n!==e)throw new Error(`Actor with registry key '${t}' already exists.`);(this._keyedActors??=new Map).set(t,e),(this._reverseKeyedActors??=new WeakMap).set(e,t),n!==e&&ht(this)}inspect(t){const e=Be(t);return(this._inspectionObservers??=new Set).add(e),{unsubscribe:()=>{this._inspectionObservers?.delete(e)}}}_hasInspectionObservers(){return!!this._inspectionObservers?.size}_sendInspectionEvent(t){if(!this._inspectionObservers?.size)return;const e={...t,rootId:this._rootActor.sessionId};this._inspectionObservers.forEach(t=>t.next?.(e))}spawnActor(){}startActor(t){t.start()}stopActor(t){t._stop()}terminateActor(t,e){t._terminate(e)}sendEvent(t,e,n){this._recordSent(t,e,n),this._deliver(t,e,n)}emitEvent(t,e){t._emit(e)}scheduleTimer(t,e,n){this.schedule(t,e,n)}cancelTimer(t,e){this.cancel(t,e)}cancelAllTimers(t){this.cancelAll(t)}_relay(t,e,n){if(Xe.length&&Xe.includes(e))throw Ge;this.sendEvent(t,e,n)}getSnapshot(){return{_scheduledTimers:{...this._snapshot._scheduledTimers}}}start(){const t=this._snapshot._scheduledTimers;let e=!0;for(const n in t){e&&(this._snapshot._scheduledTimers={},e=!1);const{source:s,dueAt:o,id:r}=t[n];this.scheduleTimer(s,r,Math.max(0,o-(this._clock.now?.()??Date.now())))}}}let en=!1;const nn=1,sn=Object.freeze([]);let on=function(t){return t[t.NotStarted=0]="NotStarted",t[t.Running=1]="Running",t[t.Stopped=2]="Stopped",t}({});const rn=Object.freeze({clock:{setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t)},logger:console.log.bind(console)});function cn(t,e){try{t?.(e)}catch(t){y(t)}}function an(t,e){if(t?.length)for(const n of t)e.actionExecutor(n)}function un(t,e){return new dn(t,e)}class dn{get trigger(){return this._trigger??=new Proxy({},{get:(t,e)=>t=>{this.send({...t,type:e})}})}get send(){return this._boundSend??=this._sendPublic.bind(this)}constructor(t,e){this.logic=t,this._snapshot=void 0,this.clock=void 0,this.options=void 0,this.id=void 0,this._boundProcess=void 0,this.mailbox=void 0,this._mailboxStarted=!1,this.observers=void 0,this.eventListeners=void 0,this.logger=void 0,this._processingStatus=on.NotStarted,this._forceDeferredActions=!1,this._parent=void 0,this._syncSnapshot=void 0,this.ref=void 0,this._actorScope=void 0,this._lastSourceRef=void 0,this._collectedMicrosteps=void 0,this._collectedActions=void 0,this._collectedSent=void 0,this._initialEffects=void 0,this.registryKey=void 0,this.sessionId=void 0,this.system=void 0,this._trigger=void 0,this._boundSend=void 0,this.src=void 0,this._deferred=void 0,this._restored=!1;const n=e?{...rn,...e}:rn,{clock:s,logger:o,parent:r,syncSnapshot:i,id:c,registryKey:a,inspect:u}=n;var d;this.system=r?r.system:n._systemRef?.current??function(t,e){return new tn(t,e)}(this,{clock:s,logger:o,snapshot:n.snapshot??n.state,createActorRef:un}),r||!n._systemRef||n._systemRef.current||(n._systemRef.current=this.system),u&&!r&&this.system.inspect(Be(u)),this.sessionId=n._sessionId??`${(d=this.system)._identity.systemId}:${d._identity.nextSessionId++}`,this.id=function(t,e){if(void 0!==e){const n=/^x:(\d+)$/.exec(e),s=n?Number(n[1]):void 0;if(void 0!==s&&Number.isSafeInteger(s)){const e=Math.max(t._snapshot._nextActorId,s+1);e!==t._snapshot._nextActorId&&(t._snapshot._nextActorId=e,ht(t))}return e}const n="x:"+t._snapshot._nextActorId++;return ht(t),n}(this.system,c),this.logger=e?.logger??this.system._logger,this.clock=e?.clock??this.system._clock,this._parent=r,this._syncSnapshot=i,this.options=n,this.src=n.src??t,this.ref=this,this._actorScope=this,a&&(this.registryKey=a,this.system._set(a,this)),this._collectedMicrosteps=void 0;const h=e?.snapshot??e?.state;this._restored=void 0!==h;try{if(h)this._setSnapshot(this.logic.restoreSnapshot?this.logic.restoreSnapshot(h,this._actorScope):h);else if(e?._inert);else{const[t,e]=Z(this._actorScope,void 0,this.logic.initialTransition(this.options?.input,this._actorScope));this._setSnapshot(t),this._initialEffects=e.length?e:void 0}}catch(t){this._setSnapshot({status:"error",output:void 0,error:t}),this._deferred&&(this._deferred.length=0)}a&&"active"!==this._snapshot.status&&this.system._unregister(this),(this.system._hasInspectionObservers?.()??1)&&this.system._sendInspectionEvent({type:"@xstate.actor",actorRef:this,parentRef:this._parent,id:this.id,src:this.src,snapshot:this._snapshot})}_getLogger(){return this.logger}get self(){return this}get defer(){const t=t=>this._defer(t);return Object.defineProperty(this,"defer",{value:t}),t}get stopChild(){const t=t=>this._stopChild(t);return Object.defineProperty(this,"stopChild",{value:t}),t}get emit(){const t=t=>this.system.emitEvent(this,t);return Object.defineProperty(this,"emit",{value:t}),t}get actionExecutor(){const t=t=>this._executeAction(t);return Object.defineProperty(this,"actionExecutor",{value:t}),t}_isRunning(){return this._processingStatus===on.Running}_defer(t){(this._deferred??=[]).push(t)}_stopChild(t){if(t._parent!==this)throw new Error(`Cannot stop non-child actor ${t.id}`);t._stop()}_executeAction(t){const e=()=>{(this.system._hasInspectionObservers?.()??1)&&(this._collectedActions??=[]).push({type:t.type,params:t.params});const e=en;try{en=!0,t.exec()}finally{en=e}};this._processingStatus!==on.Running||this._forceDeferredActions?(this._deferred??=[]).push(e):e()}_setSnapshot(t){const e=this._snapshot;this._snapshot=t,vt(t,this,this.system,e)}_setErrorSnapshot(t,e=this._snapshot){this._setSnapshot({...e,status:"error",error:t})}_recoverOrError(t,e){return!!this._tryHandleExecutionError(t,e)||(this._setErrorSnapshot(t),this._error(t),!1)}_tryHandleExecutionError(t,e=this._snapshot){const n=this.logic.getExecutionErrorEvent?.(e,t);if(!n)return!1;try{const[t,s]=Z(this._actorScope,e,this.logic.transition(e,n,this._actorScope));return this._setSnapshot(t),an(s,this._actorScope),this.update(t,n),!0}catch{return!1}}_next(t){for(const e of this.observers??sn)cn(e.next,t)}update(t,e){this._setSnapshot(t);const n=this._deferred;for(let e=0;e<(n?.length??0);e++){const s=n[e];try{s()}catch(e){if(n.length=0,this._tryHandleExecutionError(e,t))return;this._setErrorSnapshot(e,t),this._error(e);break}}if(n&&(n.length=0),"active"===this._snapshot.status)this._next(t);this._inspectTransition(this._snapshot,e)}_inspectTransition(t,e){(this.system._hasInspectionObservers?.()??1)&&this.system._sendInspectionEvent({type:"@xstate.transition",actorRef:this,event:e,sourceRef:this._lastSourceRef,targetRef:this,snapshot:t,microsteps:this._collectedMicrosteps??sn,actions:this._collectedActions??sn,sent:this._collectedSent??sn,eventType:e.type}),this._collectedMicrosteps=void 0,this._collectedActions=void 0,this._collectedSent=void 0}_flushInitialEffects(){if(!this._initialEffects?.length)return!0;this._forceDeferredActions=!0;try{return an(this._initialEffects,this._actorScope),this._initialEffects=void 0,!0}catch(t){return this._initialEffects=void 0,this._deferred&&(this._deferred.length=0),this._recoverOrError(t),"active"===this._snapshot.status}finally{this._forceDeferredActions=!1}}subscribe(t,e,n){const s=Be(t,e,n);if(this._processingStatus!==on.Stopped)(this.observers??=new Set).add(s);else switch(this._snapshot.status){case"done":cn(s.complete);break;case"error":{const t=this._snapshot.error;s.error?cn(s.error,t):y(t);break}}return{unsubscribe:()=>{this.observers?.delete(s)}}}on(t,e){let n=this.eventListeners?.get(t);return n||(n=new Set,(this.eventListeners??=new Map).set(t,n)),n.add(e),{unsubscribe:()=>{n.delete(e)}}}select(t,e=Object.is){return{subscribe:(n,s,o)=>{const r=Be(n,s,o);let i=t(this.getSnapshot());return this.subscribe({next:n=>{const s=t(n);e(i,s)||(i=s,r.next?.(s))},error:r.error,complete:r.complete})},get:()=>t(this.getSnapshot())}}start(){if(this._processingStatus===on.Running)return this;if(this._processingStatus===on.Stopped)return this;this._syncSnapshot&&this.subscribe({next:t=>{"active"===t.status&&this.system._relay(this,this._parent,{type:"xstate.snapshot.actor",actorId:this.id,sessionId:this.sessionId,snapshot:t})},error:()=>{}}),this.system._register(this.sessionId,this),this.registryKey&&this.system._set(this.registryKey,this),this._processingStatus=on.Running,this._lastSourceRef=this._parent;switch(this._snapshot.status){case"done":return this._restored?(this._next(this._snapshot),this._stopProcedure(),this._complete(),this):this._flushInitialEffects()?(this.update(this._snapshot,p(this.options.input)),this):this;case"error":return this._error(this._snapshot.error),this}if(this._parent||this.system.start(),!this._flushInitialEffects())return this;if(this.logic.start)try{this.logic.start(this._snapshot,this._actorScope,{restored:this._restored})}catch(t){return this._setErrorSnapshot(t),this._error(t),this}if(this._restored||this._deferred?.length||this.observers?.size||(this.system._hasInspectionObservers?.()??1)?this.update(this._snapshot,p(this.options.input)):(function(t,e,n){const s=ct.get(t),o=ft(n);return s?.actor===e&&s.systemState.sourceSystem===n&&s.systemState.sourceVersion+1===o&&n._getRootActor?.()===e&&!n._peekChildren?.()&&(s.systemState.root=e,s.systemState.sourceVersion=o,!0)}(this._snapshot,this,this.system)||this._setSnapshot(this._snapshot),this._collectedMicrosteps=void 0,this._collectedActions=void 0,this._collectedSent=void 0),this._restored){const t=this._snapshot.timers??{};for(const e of Object.values(t))this.system.scheduleTimer(this,e.id,e.delay);this._restored=!1}return this._mailboxStarted=!0,this.mailbox?.start(),this}_process(t){let e,n;try{e=Z(this._actorScope,this._snapshot,this.logic.transition(this._snapshot,t,this._actorScope))}catch(t){n={err:t}}if(n)return this._collectedMicrosteps=void 0,this._collectedActions=void 0,this._collectedSent=void 0,void(this._recoverOrError(n.err)||this._inspectTransition(this._snapshot,t));if(!e)return;let s=this._snapshot;try{const[n,o]=e;s=n,this._setSnapshot(s),an(o,this._actorScope),this.update(s,t)}catch(e){return void(this._recoverOrError(e,s)||this._inspectTransition(this._snapshot,t))}t.type===o&&(this._stopProcedure(),this._complete())}_emit(t){for(const e of[this.eventListeners?.get(t.type),this.eventListeners?.get("*")])if(e)for(const n of e)cn(n,t)}_terminate(t){if("done"===t.status)return this._next(this._snapshot),this._stopProcedure(),this._complete(),void(this._parent&&this.system._relay(this,this._parent,(e=this.id,n=t.output,s=this.sessionId,{type:"xstate.done.actor",output:n,actorId:e,sessionId:s})));var e,n,s;"error"===t.status&&this._error(t.error)}_stop(){return this._processingStatus===on.Stopped?this:(this.mailbox?.clear(),this._processingStatus===on.NotStarted?(this._processingStatus=on.Stopped,this.system._unregister(this),this):(this._send({type:o}),this.system._unregister(this),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??sn)cn(t.complete);this.observers?.clear(),this.eventListeners?.clear()}_error(t){if(this._stopProcedure(),this.observers?.size){let e=!1;for(const n of this.observers){const s=n.error;e||=!s,cn(s,t)}this.observers.clear(),e&&y(t)}else this._parent||y(t);var e,n,s;this.eventListeners?.clear(),this._parent&&this.system._relay(this,this._parent,(e=this.id,n=t,s=this.sessionId,{type:"xstate.error.actor",error:n,actorId:e,sessionId:s}))}_stopProcedure(){this._processingStatus===on.Running&&(this.system.cancelAllTimers(this),this.mailbox?.clear(),this.mailbox=void 0,this._boundProcess=void 0,this._mailboxStarted=!1,this._processingStatus=on.Stopped,this.system._unregister(this))}_send(t){if(this._processingStatus===on.Stopped)return;let n=this.mailbox;n||(this._boundProcess??=this._process.bind(this),n=this.mailbox=new e(this._boundProcess),this._mailboxStarted&&n.start()),n.enqueue(t)}_sendPublic(t){this.system._relay(void 0,this,t)}toJSON(){return{xstate$$type:nn,id:this.id}}getPersistedSnapshot(t){return this.logic.getPersistedSnapshot(this._snapshot,t)}[v](){return this}getSnapshot(){return this._snapshot}}function hn(t,e){return new dn(t,e)}function fn(t,e){const n=t.check(e);if(n)throw n}const ln=new WeakMap,pn="xstate.logic.effect.resolve",yn="xstate.logic.effect.reject",vn="xstate.logic.effect.start";function mn(t,e,n){const s=function(t){let e=ln.get(t);return e||(e=new Map,ln.set(t,e)),e}(t);if(void 0!==e&&s.has(e))return;const o=n();s.set(e??Symbol(),{cleanup:"function"==typeof o?o:void 0})}function gn(t){const e=(e,n,s)=>{if("active"!==e.status)return[e,[]];if(n.type===o)return[{...e,status:"stopped",input:void 0},[M("xstate.logic.cleanup",()=>function(t){const e=ln.get(t);if(e){for(const{cleanup:t}of e.values())t?.();ln.delete(t)}}(s.self))]];if(n.type===vn)return[{...e,effects:{...e.effects,[n.key]:{status:"active"}}},[]];if(n.type===pn)return[{...e,effects:{...e.effects,[n.key]:{status:"done",output:n.output}}},[]];if(n.type===yn)return[{...e,effects:{...e.effects,[n.key]:{status:"error",error:n.error}}},[]];const r=[],i={},c={emit:t=>{r.push(function(t,e){return{kind:"emit",exec:O,type:e.type,source:t.self,event:e,params:void 0,args:[]}}(s,t))},sendBack:t=>{const e=s.self._parent;e&&r.push(G(s,e,t))},raise:t=>{r.push(G(s,s.self,t))},effect:(t,n)=>{if("string"==typeof t)return void((t,n)=>{e.effects?.[t]||(r.push(M("xstate.logic.effect",(e=s.self.system)=>mn(s.self,t,()=>n(e)),{key:t})),i[t]={status:"active"})})(t,n);const o=t;r.push(M("xstate.logic.effect",(t=s.self.system)=>mn(s.self,void 0,()=>o(t))))}},a=t.run({context:e.context,event:n,input:e.input,system:s.system,self:s.self,emit:s.emit},c),u={...e,...a||{}};return("context"in e||void 0!==a?.context)&&(u.context=a?.context??e.context),(a?.effects||Object.keys(i).length)&&(u.effects={...e.effects,...a?.effects,...i}),Z(s,e,[u,r])},n=(n,o,r)=>{t.validator&&fn(t.validator,{kind:"event",logic:s,event:o,eventOrigin:r.self._lastSourceRef?"actor":"external"});const i=e(n,o,r);return t.validator&&fn(t.validator,{kind:"result",logic:s,snapshot:i[0],effects:i[1]}),i},s={id:t.id,config:t,validator:t.validator,transition:n,start:(t,e,s)=>{if(!s?.restored)return;const[o,r]=n(t,p(t.input),e);Object.assign(t,o);for(const t of r)e.actionExecutor(t)},initialTransition:(e,o)=>{t.validator&&fn(t.validator,{kind:"input",logic:s,input:e});const r=function(t,e){return"function"==typeof t?t({input:e}):t}(t.context,e),i={status:"active",output:void 0,error:void 0,input:e};return void 0!==r&&(i.context=r),n({...i},p(e),o)},getInitialSnapshot:(t,e)=>s.initialTransition(e,t)[0],getPersistedSnapshot:t=>t,restoreSnapshot:t=>t};return s}const _n=new WeakMap;const xn="xstate.observable.next",bn="xstate.observable.error",wn="xstate.observable.complete";const $n="xstate.async.resolve",Sn="xstate.async.reject";class En extends Error{constructor(t){super(`Async logic timed out after ${t}.`),this.name="TimeoutError"}}const kn=gn({context:void 0,run:()=>{}});const In=new WeakMap;const An={};class jn{constructor(t,e){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.schemas=void 0,this.tags=[],this.transitions=void 0,this.always=void 0,this.invoke=void 0,this.on=void 0,this.after=void 0,this.events=void 0,this.ownEvents=void 0,this._candidateCache=void 0,this.parent=e._parent,this.key=e._key,this.machine=e._machine,this.path=this.parent?this.parent.path.concat(this.key):[];const n=this.config.states?Object.keys(this.config.states)[0]:void 0;if(this.id=this.config.id||[this.machine.id,...this.path].join("."),this.type=this.config.type||(void 0!==n?"compound":this.config.history?"history":"atomic"),this.description=this.config.description,this.schemas=this.config.schemas,function(t){const e=t.config;if("history"===t.type&&!("string"==typeof e.target&&e.target.trim().length>0||Array.isArray(e.target)&&e.target.length>0&&e.target.every(t=>"string"==typeof t&&t.trim().length>0)))throw new Error(`Missing history target on "${t.id}"`);if("choice"!==t.type)return;if("function"!=typeof e.choice)throw new Error(`Missing \`choice\` function on "${t.id}"`)}(this),this.order=this.machine.idMap.size,this.machine.idMap.set(this.id,this),this.states=this.config.states?function(t,e){const n={},s=Object.keys(t);for(let o=0;o<s.length;o++){const r=s[o];n[r]=e(t[r],r,t,o)}return n}(this.config.states,(t,e)=>new jn(t,{_parent:this,_key:e,_machine:this.machine})):An,"compound"===this.type&&!this.config.initial)throw new Error(`No initial state specified for compound state node "#${this.id}".`);this.history=!0===this.config.history?"shallow":this.config.history||!1,this.entry=this.config.entry,this.exit=this.config.exit,this.entry&&(this.entry._special=!0),this.exit&&(this.exit._special=!0),this.meta=this.config.meta,this.output="final"!==this.type&&this.parent?void 0:this.config.output,this.tags=Ke(t.tags).slice(),this.invoke=Ke(this.config.invoke).map((t,e)=>{const{src:n,registryKey:s}=t,o=(r=this.id,`${e}.${r}`);var r;const i=t.id??o,c="string"==typeof n?n:`xstate.invoke.${o}`;return{...t,src:c,logic:n,id:i,registryKey:s}})}_initialize(){this.after=function(t){const e=t.config.after,n=t.config.timeout,s=t.config.onTimeout,o=t.invoke.filter(t=>void 0!==t.timeout);if(!e&&void 0===n&&0===o.length)return[];const r=[];if(e)for(const n of Object.keys(e)){const s=Number.isNaN(+n)?n:+n;r.push({event:c(s,t.id),timerId:a(s,t.id),delay:s,transitions:e[n],fromDelaysMap:!0})}var i;void 0!==n&&s&&r.push({event:(i=t.id,{type:"xstate.timeout",stateId:i}),timerId:u(t.id),delay:n,transitions:s,fromDelaysMap:!0});for(const t of o)r.push({event:d(t.id),timerId:h(t.id),resolveEvent:({children:e})=>d(t.id,e[t.id]?.sessionId),eventMatcher:(e,n)=>Dt(e,n,t.id),delay:t.timeout,transitions:t.onTimeout,fromDelaysMap:!1});const f=[];for(const{event:e,timerId:n,resolveEvent:s,eventMatcher:o,delay:i,transitions:c,fromDelaysMap:a}of r){zt(t,n,s??(()=>e),e=>It(i,a?e.delays:{},{context:e.context,event:e.event,stateNode:t,input:e.input}));const{type:r,...u}=e;for(const t of Le(c))f.push({...t,matches:{...t.matches,...Object.fromEntries(Object.entries(u).filter(([,t])=>void 0!==t))},event:r,delay:i,_eventMatcher:o})}return f.map(e=>({...Vt(t,e.event,e),delay:e.delay}))}(this),this.transitions=function(t){const e=new Map,n=(t,n)=>{e.set(t,[...e.get(t)??[],...n])};if(t.config.on)for(const n of Object.keys(t.config.on)){if(""===n)throw new Error("Null event transition key");const s=t.config.on[n];e.set(n,Tn(s,e=>Vt(t,n,e)))}if(t.config.onDone){const e="xstate.done.state";n(e,Tn(t.config.onDone,n=>Vt(t,e,{...n,matches:{...n.matches,stateId:t.id}})))}if(t.config.onError){const n="xstate.error.*";e.set(n,Tn(t.config.onError,e=>Vt(t,n,e)))}const s=(e,n,s)=>Vt(t,e,{matches:{actorId:s},_eventMatcher:(t,e)=>Dt(t,e,s),to:(t,e)=>(e.cancel(n),{})}),o=(e,n,s)=>{const{target:o,to:r,reenter:i,...c}=n;return Vt(t,e,{...c,reenter:i,to:(t,e)=>{if(r){let n=!1;const o=new Proxy(e,{apply:(t,e,s)=>(n=!0,Reflect.apply(t,e,s)),get(t,e,s){const o=Reflect.get(t,e,s);return"function"!=typeof o?o:(...e)=>(n=!0,o.apply(t,e))}}),i=r(t,o);return(void 0!==i||n)&&e.cancel(s),i}return e.cancel(s),{target:o,reenter:i}}})};for(const e of t.invoke){const r=t=>({...t,matches:{...t.matches,actorId:e.id},_eventMatcher:(t,n)=>Dt(t,n,e.id)}),i=void 0!==e.timeout?h(e.id):void 0;if(e.onDone){const c="xstate.done.actor",a=Tn(e.onDone,e=>{const n=r(e);return i?o(c,n,i):Vt(t,c,n)});i&&a.push(s(c,i,e.id)),n(c,a)}else if(i){const t="xstate.done.actor";n(t,[s(t,i,e.id)])}if(e.onError){const s="xstate.error.actor";n(s,Tn(e.onError,e=>{const n=r(e);return i?o(s,n,i):Vt(t,s,n)}))}if(e.onSnapshot){const s="xstate.snapshot.actor";n(s,Tn(e.onSnapshot,e=>Vt(t,s,r(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),"choice"===this.type?this.always=function(t){const e=t.config.choice,n=e=>{if(!e||void 0===e.target)throw new Error(`Choice "${t.id}" has no target`);return e};return[Vt(t,"",{to:t=>n(e(t))})]}(this):this.config.always&&(this.always=Tn(this.config.always,t=>Vt(this,"",t)));for(const t of Object.keys(this.states))this.states[t]._initialize();this._refreshEventMetadata()}_refreshEventMetadata(){const t={},e=[];for(const[n,s]of this.transitions)t[n]=s.slice(),s.some(t=>t.target||t.reenter||t.to)&&e.push(n);this.on=t,this.ownEvents=e;const n=new Set(e);for(const t of Object.values(this.states))for(const e of t.events)n.add(e);this.events=Array.from(n)}get initial(){return function(t,e,n){let s=In.get(t);return s?e in s||(s[e]=n()):(s={[e]:n()},In.set(t,s)),s[e]}(this,"initial",()=>function(t,e){const n="object"==typeof e&&null!==e?e.target:e,s="object"==typeof e&&null!==e?e.input:void 0,o="string"==typeof n?t.states[n]:void 0;if(!o&&n)throw new Error(`Initial state "${n}" not found on "#${t.id}"`);const r={source:t,target:o?[o]:void 0,input:s};return r}(this,this.config.initial))}next(t,e,n,s){const o=function(t){const e=Ct(t);return e?`${t.type}|${e}`:t.type}(e);let r=this._candidateCache?.get(o);r||(r=Kt(this,e),(this._candidateCache??=new Map).set(o,r));for(const o of r){if(ge(o,e,t,this,n,s))return[o]}}}function Tn(t,e){const n=Le(t),s=new Array(n.length);for(let t=0;t<n.length;t++)s[t]=e(n[t]);return s}let On,Mn;function Nn(){if(Mn)return Mn;const t=On??=hn({transition:t=>[t,[]],initialTransition:()=>[{status:"active",output:void 0,error:void 0},[]],getInitialSnapshot:()=>({status:"active",output:void 0,error:void 0}),getPersistedSnapshot:t=>t});return Mn={self:t,logger:()=>{},id:"",sessionId:"",defer:()=>{},system:t.system,stopChild:()=>{},emit:()=>{},actionExecutor:()=>{}},Mn}class Pn{constructor(t,e,n){this.config=t,this.validator=n,this.version=void 0,this.schemas=void 0,this.sources=void 0,this.options=void 0,this.idMap=new Map,this.root=void 0,this.id=void 0,this.states=void 0,this.events=void 0,this.internalEventDescriptors=void 0,this._hasEventlessTransitions=void 0,this._json=void 0,this.id=t.id||"(machine)",this.sources={actors:t.actors??{},actions:t.actions??{},delays:t.delays??{},guards:t.guards??{},...e},this.version=this.config.version,this.schemas=this.config.schemas,this.internalEventDescriptors=this.config.internalEvents??[],this.options={maxIterations:1/0,...this.config.options},this.transition=this.transition.bind(this),this.initialTransition=this.initialTransition.bind(this),this.getInitialSnapshot=this.getInitialSnapshot.bind(this),this.getPersistedSnapshot=this.getPersistedSnapshot.bind(this),this.restoreSnapshot=this.restoreSnapshot.bind(this),this.start=this.start.bind(this),this.root=new jn(t,{_key:this.id,_machine:this}),this.root._initialize(),function(t){const e=[],n=s=>{Object.values(s).forEach(s=>{if(s.config.route&&s.config.id){const o=s.config.id,r=s.config.route,i=({event:t})=>t.to===`#${o}`;if("function"==typeof r)return e.push(Vt(t,"xstate.route",{guard:i,to:t=>{const e=r(t);if(e)return{...!0===e?{}:e,target:`#${o}`}}})),void(s.states&&n(s.states));const{guard:c,...a}=r,u={...a,guard:i,target:`#${o}`};e.push(Vt(t,"xstate.route",u))}s.states&&n(s.states)})};n(t.states),e.length>0&&t.transitions.set("xstate.route",e)}(this.root),this.root._refreshEventMetadata(),this._hasEventlessTransitions=Array.from(this.idMap.values()).some(t=>!!t.always?.length),this.states=this.root.states,this.events=this.root.events}provide(t){const{actions:e,guards:n,actors:s,delays:o}=this.sources,r=new Pn(this.config,{actions:{...e,...t.actions},guards:{...n,...t.guards},actors:{...s,...t.actors},delays:{...o,...t.delays}},this.validator);return r._json=this._json,r}resolveState(t){const e=(n=this.root,s=t.value,Nt(n,Mt(Xt(n,s))));var n,s;const o=Mt(Xt(this.root,e));return je({_nodes:[...o],value:e,context:t.context||{},children:{},status:Pt(o,this.root)?"done":t.status||"active",output:t.output,error:t.error,historyValue:t.historyValue},this)}transition(t,e,n){const s=!n,o=n??kt(this,t);this.validator&&fn(this.validator,{kind:"event",logic:this,event:e,eventOrigin:n&&n.self._lastSourceRef?"actor":"external"}),s&&mt(o,t,!1);const r=this._transitionFast(t,e,o);if(r){s&&mt(o,r,!1);const e=s&&r!==t?_t(o,r):this._attachPureActorRef(r,o);return this.validator&&fn(this.validator,{kind:"result",logic:this,snapshot:e,effects:[]}),[e,[]]}const{snapshot:i,microsteps:c}=de(t,e,o,[]);s&&mt(o,i,!1);const a=s?i===t?i:_t(o,i):this._attachPureActorRef(i,o),u=this._collectEffects(c);return this.validator&&fn(this.validator,{kind:"result",logic:this,snapshot:a,effects:u}),[a,u]}_collectEffects(t){return t.flatMap(([,t])=>t)}_attachPureActorRef(t,e,n=!1){return gt(e)||n&&e.self._actorScope===e&&void 0===e.self._snapshot||vt(t,e.self,e.system),t}_transitionFast(t,e,n){if("active"!==t.status||"string"!=typeof t.value||this.root.always?.length)return;const s=this.root.states[t.value];if(!s||"atomic"!==s.type||s.exit||s.invoke.length||s.always?.length||s.after?.length)return;const o=s.transitions.get(e.type);if(1!==o?.length)return;const r=o[0];if(r.guard||r.actions||r.to||r.reenter||r.input||"function"==typeof r.context||r.target&&1!==r.target.length)return;const i=r.target?.[0]??s,c=i!==s;if(i.parent!==this.root||"atomic"!==i.type||c&&(i.entry||i.invoke.length||i.always?.length||i.after?.length))return;const a=void 0!==r.context?{...t.context,...r.context}:t.context;if(!gt(n)&&(n.system._hasInspectionObservers?.()??1)){const t=n.self._collectedMicrosteps||[];t.push(r),n.self._collectedMicrosteps=t}return Te(t,{...a!==t.context?{context:a}:{},...c?{_nodes:[this.root,i]}:{}})}microstep(t,e,n){const{microsteps:s}=de(t,e,n,[]),o=new Array(s.length);for(let t=0;t<s.length;t++)o[t]=s[t][0];return o}getTransitionData(t,e,n,s){return Zt(this.root,t.value,t,e,n,s)||[]}isInternalEventType(t){if(t===i)return!0;for(const e of this.internalEventDescriptors)if(Fe(t,e))return!0;return!1}_canTransition(t,e){const n=Nn(),s=this.getTransitionData(t,e,n);if(!s?.length)return!1;for(const o of s){if(void 0!==o.target)return!0;const s=ue(o,t,e,n,{resolveActions:!1});if(s.targets?.length||s.context||he(o,t.context,e,t,n))return!0}return!1}getExecutionErrorEvent(t,e){if("active"===t?.status&&t.nodes?.some(t=>t.config.onError))return l("execution",e)}_getPreInitialState(t,e){const{context:n}=this.config,s=je({context:"function"!=typeof n&&n?n:{},_nodes:[this.root],children:{},status:"active"},this);if("function"==typeof n){const o={},r=function(t,e,n){return(s,o)=>{const r=Object.entries(e).find(([,t])=>t===s)?.[0],i=t.system.createActorRef(s,{id:o?.id,parent:t.self,syncSnapshot:o?.syncSnapshot,input:o?.input,src:r??s,registryKey:o?.registryKey});return n[i.id]=i,i}}(t,this.sources.actors,o),i=n(function(t,e){return I(e)?(Object.defineProperty(t,"self",{enumerable:!0,get:()=>e.self}),t):Object.assign(t,{self:e.self})}({spawn:r,input:e.input,actors:this.sources.actors},t)),[c]=tt(s,e,t,[]);return i&&(c.context=i),Object.keys(o).length>0&&(c.children={...c.children,...o}),c}return s}getInitialSnapshot(t,e){return this.initialTransition(e,t)[0]}initialTransition(t,e){this.validator&&fn(this.validator,{kind:"input",logic:this,input:t});const n=!e,s=e??kt(this),o=p(t),r=[],i=this._getPreInitialState(s,o),c=Object.values(i.children).filter(Boolean).map(t=>H(t)),a=(t,e)=>{n&&mt(s,t,!1);const o=n?_t(s,t):this._attachPureActorRef(t,s,!0),r=this._collectEffects(e);return this.validator&&fn(this.validator,{kind:"result",logic:this,snapshot:o,effects:r}),[o,r]};try{const[t,e]=ce(this.root,i,s,o,r),{snapshot:n,microsteps:u}=de(t,o,s,r,[[t,[...c,...e]]]);return a(n,u)}catch(t){if(!this.root.config.onError)throw t;const e=de(i,l("execution",t),s,[],[[i,c]]);return a(e.snapshot,e.microsteps)}}start(t){if(!t?.children)return;const e=t.children;for(const t in e){if(!Object.hasOwn(e,t))continue;const n=e[t];n._rehydrated&&"active"===n.getSnapshot?.().status&&n.start()}}getStateNodeById(t){const e=Pe(t),n=e.slice(1),s=Rt(e[0])?e[0].slice(1):e[0],o=this.idMap.get(s);if(!o)throw new Error(`Child state node '#${s}' does not exist on machine '${this.id}'`);return Gt(o,n)}getPersistedSnapshot(t,e){return function(t,e){const{nodes:n,_stateInputs:s,tags:o,machine:r,children:i,timers:c,context:a,can:u,hasTag:d,matches:h,getMeta:f,getInputs:l,toJSON:p,...y}=t,v={},m={};for(const t in i){const n=i[t];v[t]={snapshot:n.getPersistedSnapshot(e),src:n.src,registryKey:n.registryKey,syncSnapshot:n._syncSnapshot}}for(const e in c){const n=c[e];let s,o=n.event;if("xstate.timeout.actor"===o.type&&(o={...o},delete o.sessionId),"self"===n.target)s="self";else{const o=Object.entries(i).find(([,t])=>t===n.target)?.[0];if(o)s=o;else{if(n.target!==pt(t)?.actor._parent)throw new Error(`Unable to persist timer '${e}': target actor '${n.target.id}' is no longer addressable from this snapshot.`);s={type:"parent"}}}m[e]={id:n.id,delay:n.delay,type:n.type,event:o,target:s}}const g={...y,_nextActorId:pt(t)?.systemState.snapshot._nextActorId,context:Me(a),children:v,timers:m,historyValue:Oe(y.historyValue)};return s&&Object.keys(s).length>0&&(g.stateInputs=s),void 0!==r.version&&(g.machine={id:r.id,version:r.version},g.version=r.version),g}(t,e)}restoreSnapshot(t,e){const n=!e,s=e??kt(this),o=t.machine,r=t.version,i="string"==typeof o?.version?o.version:r;if(void 0!==r&&void 0!==o?.version&&o.version!==r)throw new Error(`Persisted snapshot version '${r}' conflicts with machine version '${o.version}'.`);if(o&&"string"==typeof o.id&&o.id!==this.id)throw new Error(`Machine ID mismatch: persisted snapshot machine '${o.id}' does not match '${this.id}'.`);if(i!==this.version){const e=this.config.migrate;if("function"!=typeof e)throw new Error(`Persisted snapshot version '${i}' does not match machine version '${this.version}'.`);t=e(t,i)}const c=t,a={},u=c.children;for(const t of Object.keys(u)){const e=u[t],n=e.snapshot,o=e.src,r="string"==typeof o?Je(this,o):o;if(!r){throw new Error(`Unable to restore child actor '${t}': child source '${"string"==typeof o?o:"<unknown>"}' is not provided in machine '${this.id}'.`)}const i=s.system.createActorRef(r,{id:t,parent:s.self,syncSnapshot:e.syncSnapshot,snapshot:n,src:o,registryKey:e.registryKey});i._rehydrated=!0,a[t]=i}const h={},f=c.timers??{};for(const[t,e]of Object.entries(f)){let n=e.event;if("xstate.timeout.actor"===n.type){const t=n.actorId,e=a[t];e&&(n=d(t,e.sessionId))}const o="string"==typeof e.target?"self"===e.target?"self":a[e.target]:s.self._parent;if(!o){const n="string"==typeof e.target?e.target:e.target.type;throw new Error(`Unable to restore timer '${t}': target actor '${n}' is unavailable.`)}h[t]={...e,event:n,target:o}}const l=(t=>{if(!t||"object"!=typeof t)return{};const e={};for(const n of Object.keys(t)){const s=t[n];for(const t of s){let s;if(t instanceof jn)s=t;else try{s=this.root.machine.getStateNodeById(t.id)}catch{}s&&(e[n]??=[],e[n].push(s))}}return e})(c.historyValue),p=(t,e,n)=>{const s=t=>new Error(`Persisted snapshot references state '${t.join(".")}' which does not exist on machine '${this.id}'.`);if("string"!=typeof t){if(t&&"object"==typeof t)for(const o of Object.keys(t)){const r=e.states[o];if(!r)throw s(n.concat(o));p(t[o],r,n.concat(o))}}else if(!e.states[t])throw s(n.concat(t))};p(c.value,this.root,[]);const y=Array.from(Mt(Xt(this.root,c.value))),{version:v,...m}=t,g=je({...m,children:a,timers:h,_nodes:y,value:c.value,historyValue:l,_stateInputs:c.stateInputs??{}},this,s.self),_=new WeakSet;return function t(e){if(!_.has(e)){_.add(e);for(const n of Object.keys(e)){const s=e[n];if(s&&"object"==typeof s){if("xstate$$type"in s&&s.xstate$$type===nn){e[n]=a[s.id];continue}t(s)}}}}(g.context),n?(mt(s,g,!1),_t(s,g)):this._attachPureActorRef(g,s)}}function Rn(t){return new Pn(t)}const Cn={actions:{},actors:{},guards:{},delays:{}},Dn=[],Kn=[],zn=new Set(Object.values(g));function Vn(t){return void 0===t?[]:Array.isArray(t)?t:[t]}function Wn(t,e){return"function"==typeof t?t(e):t}function Ln(t,e,n){return"function"==typeof t?t({context:e,event:n}):t}function Un(t,e){for(const n of Object.keys(e))if(!Object.prototype.hasOwnProperty.call(t,n)||!Object.is(t[n],e[n]))return{...t,...e};return t}function Bn(t,e,n,s){return{status:t.status,output:t.output,error:t.error,value:e,context:n,input:t.input,children:t.children,timers:t.timers,_nextTimerId:t._nextTimerId,_stateInput:s,machine:t.machine}}function Jn(t){return{status:"stopped",output:void 0,error:void 0,value:t.value,context:t.context,input:void 0,children:t.children,timers:t.timers,_nextTimerId:t._nextTimerId,_stateInput:t._stateInput,machine:t.machine}}function Fn(t){const e=it(t);return void 0!==e?e:"string"==typeof t?parseFloat(t)||0:t}function qn(t){return/^error(\.|$)/.test(t)?`xstate.${t}`:t}function Hn(t){return t.startsWith("xstate.error.")?t.slice(7):t}function Gn(t){return!!t&&"object"==typeof t&&"string"==typeof t["@expr"]}function Xn(t){return Gn(t)||function(t){return!!t&&"object"==typeof t&&"string"==typeof t["@code"]}(t)}function Zn(t,e){return"number"==typeof e?`${t}[${e}]`:`${t}.${e}`}function Qn(t){const e={};if(!t)return e;for(const n of Object.keys(t)){const s=t[n];"number"==typeof s?e[n]=s:s&&"object"==typeof s&&"number"==typeof s.duration&&(e[n]=s.duration)}return e}function Yn(t){return void 0===t?[]:Array.isArray(t)?t:[t]}function ts(t,e){Array.isArray(t)&&t.forEach((n,s)=>{if(void 0===n.when&&s!==t.length-1)throw new Error(`Choice fallback branch at ${e}[${s}] must be last.`)})}let es="session_scxml",ns="";function ss(t,e,n,s){const o=`\nwith (context) {\n return (${e});\n}\n `.trim(),r=new Function("context","_event","_sessionid","_name","_ioprocessors","In",o),i=`#_scxml_${es}`,c=n&&n._scxmlExternal,a=n&&"@xstate.init"===n.type,u=n&&"string"==typeof n.type&&n.type.startsWith("xstate.done."),d=n&&n._scxmlEventType;return r(t,n&&!a?{name:n._scxmlEventName??Hn(n.type),type:d||(c?"external":"internal"),sendid:n._scxmlSendId,origin:c?i:void 0,origintype:c?"http://www.w3.org/TR/scxml/#SCXMLEventProcessor":void 0,invokeid:n._scxmlInvokeId,data:u?n.output:void 0!==n._scxmlEventData?n._scxmlEventData:n}:void 0,es,ns,{scxml:{location:`#_scxml_${es}`}},t=>{if(!s)return!1;try{const e=s.getSnapshot?.();if(e?.nodes){const n=t.replace(/\./g,"$");return e.nodes.some(t=>t.id===n||t.id.endsWith("."+n))}}catch{}return!1})}function os(t,e){const n=Object.keys(t),s=n.map(t=>`let ${t} = context.${t};`).join("\n"),o=n.map(t=>`updates.${t} = ${t};`).join("\n");return new Function("context","updates",`\n${s}\n${e}\n${o}\nreturn updates;\n `)(t,{})}function rs(t){return!Xn(t)&&t.type.startsWith("@xstate.")}function is(t){if("function"==typeof t)return{"@code":t.toString(),"@lang":"ts"};if(null===t||"object"!=typeof t)return"bigint"==typeof t||"symbol"==typeof t?void 0:t;if(function(t){return!!t&&"object"==typeof t&&"function"==typeof t.transition&&"function"==typeof t.getInitialSnapshot}(t))return;if(function(t){return!!t&&"object"==typeof t&&"~standard"in t}(t))return;if(Array.isArray(t))return t.map(is).filter(t=>void 0!==t);if(t.constructor!==Object&&void 0!==t.constructor)return;const e={};for(const n of Object.keys(t)){const s=t[n];if(void 0!==s){const t=is(s);void 0!==t&&(e[n]=t)}}return e}function cs(t){if(Array.isArray(t)){const e=t.map(cs).filter(t=>void 0!==t);return e.length?e:void 0}const e=t,n={};for(const t of Object.keys(e)){const s=e[t];void 0!==s&&(n[t]="src"===t&&"string"!=typeof s?s.id:is(s),void 0===n[t]&&delete n[t])}return void 0===n.src?void 0:n}function as(t){if(!t)return;const e={};for(const n of Object.keys(t)){const s=t[n];e[n]="function"==typeof s?void 0:is(s),void 0===e[n]&&delete e[n]}return e}function us(t){const e={};for(const n of Object.keys(t)){if("states"===n||"invoke"===n)continue;const s=t[n];void 0!==s&&(e[n]=is(s))}if(void 0!==t.invoke){const n=cs(t.invoke);void 0!==n&&(e.invoke=n)}if(t.states){const n={};for(const e of Object.keys(t.states))n[e]=us(t.states[e]);e.states=n}return e}function ds(t){const e=us(t);if(void 0!==t.internalEvents&&(e.internalEvents=is(t.internalEvents)),t.schemas){const n={};for(const e of Object.keys(t.schemas)){const s=t.schemas[e];n[e]=s&&"object"==typeof s&&!("~standard"in s)?as(s):is(s),void 0===n[e]&&delete n[e]}e.schemas=n}for(const n of["actions","guards","actors","delays"])if(t[n]){const s=as(t[n]);s&&Object.keys(s).length?e[n]=s:delete e[n]}return e}function hs(t){return null!==t&&"object"==typeof t}async function fs(t,e,n){if(!t)return e;const s=await t["~standard"].validate(e);if(s.issues)throw new Error(`Invalid ${n}: ${s.issues[0]?.message}`);return s.value}async function ls(t,e){const n=await fs(e.schemas?.context,t.context,`context for machine '${e.id}' version '${e.version}'`);return{...t,context:n,machine:{id:e.id,version:e.version},version:e.version}}async function ps(t,e){return Promise.all(t.map(async(t,n)=>{if(!hs(t)||"string"!=typeof t.type)throw new Error(`Invalid event at index ${n}.`);const s=e.schemas?.events,o=t.type.startsWith("xstate.")||t.type.startsWith("@xstate."),r=s&&Object.hasOwn(s,t.type)?s[t.type]:void 0;if(s&&!r&&!o)throw new Error(`Unknown event '${t.type}' for machine '${e.id}' version '${e.version}'.`);if(!r)return t;const{type:i,...c}=t,a=await fs(r,c,`event '${i}' at index ${n}`);if(!hs(a))throw new Error(`Invalid event '${i}' at index ${n}.`);return{...a,type:i}}))}const ys=function(t={}){const{validator:e,states:n={},schemas:s,actions:o,actors:r,guards:i,delays:c}=t;return{extend:e=>ys(function(t,e){return{...t,...e,schemas:ms(t.schemas,e.schemas),states:vs(t.states,e.states),actions:vs(t.actions,e.actions),actors:vs(t.actors,e.actors),guards:vs(t.guards,e.guards),delays:vs(t.delays,e.delays)}}(t,e)),createMachine(t){const a=ms(t.schemas,s),u=gs(t.states,n),d=vs(o,t.actions),h=vs(r,t.actors),f=vs(i,t.guards),l=vs(c,t.delays);return new Pn({...t,...a?{schemas:a}:void 0,...u?{states:u}:void 0,...d?{actions:d}:void 0,...h?{actors:h}:void 0,...f?{guards:f}:void 0,...l?{delays:l}:void 0},void 0,e)},createStateConfig:(...t)=>t.length>1?t[1]:t[0],states:n,schemas:s??{}}};function vs(t,e){return t||e?{...t,...e}:void 0}function ms(t,e){if(t||e)return{...t,...e,events:vs(t?.events,e?.events),actions:vs(t?.actions,e?.actions),guards:vs(t?.guards,e?.guards),emitted:vs(t?.emitted,e?.emitted),children:vs(t?.children,e?.children)}}function gs(t,e){return t&&e?Object.fromEntries(Object.entries(t).map(([t,n])=>{const s=e[t];if(!s)return[t,n];const o=vs(n.schemas,s.schemas),r=gs(n.states,s.states);return[t,{...n,...o?{schemas:o}:void 0,...r?{states:r}:void 0}]})):t}let _s=function(t){return t.Internal="#_internal",t}({});function xs(t,e,n){if(!t.length)return t;const s=t.slice(),o=s.at(-1)[0];mt(e,o,!1),o!==n&&_t(e,o);for(const[t]of s)if(t!==n&&t!==o){_t(kt(t.machine,t,void 0,e),t)}return s}const bs={timeout:1/0};t.Actor=dn,t.SimulatedClock=class{constructor(){this.timeouts=new Map,this._now=0,this._id=0,this._flushing=!1,this._flushingInvalidated=!1}now(){return this._now}getId(){return this._id++}setTimeout(t,e){this._flushingInvalidated=this._flushing;const n=this.getId();return this.timeouts.set(n,{start:this.now(),timeout:e,fn:t}),n}clearTimeout(t){this._flushingInvalidated=this._flushing,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(){if(this._flushing)return void(this._flushingInvalidated=!0);this._flushing=!0;const t=[...this.timeouts].sort(([t,e],[n,s])=>{const o=e.start+e.timeout;return s.start+s.timeout>o?-1:1});for(const[e,n]of t){if(this._flushingInvalidated)return this._flushingInvalidated=!1,this._flushing=!1,void this.flushTimeouts();this.now()-n.start>=n.timeout&&(this.timeouts.delete(e),n.fn.call(null))}this._flushing=!1,this._flushingInvalidated&&(this._flushingInvalidated=!1,this.flushTimeouts())}increment(t){this._now+=t,this.flushTimeouts()}},t.SpecialTargets=_s,t.StateMachine=Pn,t.StateNode=jn,t.TimeoutError=En,t.__unsafe_getAllOwnEventDescriptors=function(t){return[...new Set([...t.nodes.flatMap(t=>t.ownEvents)])]},t.assertEvent=function(t,e){const n=Ke(e);if(!n.some(e=>Fe(t.type,e))){const e=1===n.length?`type matching "${n[0]}"`:`one of types matching "${n.join('", "')}"`;throw new Error(`Expected event ${JSON.stringify(t)} to have ${e}`)}},t.checkStateIn=function(t,e){if("string"==typeof e&&Rt(e)){const n=t.machine.getStateNodeById(e);return t.nodes.some(t=>t===n)}return t.matches(e)},t.createActor=hn,t.createAsyncLogic=function(t){const e=t;return gn({id:e.id,validator:e.validator,schemas:e.schemas,context:void 0,run:({event:t,input:s,self:o,system:r},i)=>{switch(t.type){case $n:{const e=t.data??t.output;return{status:"done",output:e,input:void 0,effects:{async:{status:"done",output:e}}}}case Sn:{const e=t.data??t.error;return{status:"error",error:e,input:void 0,effects:{async:{status:"error",error:e}}}}}if(t.type===n)return i.effect((t=r)=>{const n=o,i=e=>{t.sendEvent(n,n,e)},c=new AbortController,a=e.timeout,u=it(a),d=void 0===u?void 0:r._clock.setTimeout(()=>{"active"===o.getSnapshot().status&&(c.abort(),i({type:Sn,data:new En(a)}))},u),h=()=>{void 0!==d&&r._clock.clearTimeout(d)},f=Promise.resolve(e.run({input:s,system:r,self:o,signal:c.signal},{emit:e=>{t.emitEvent(n,e)},step:async(t,e)=>{const n=o.getSnapshot().effects?.[t];if("done"===n?.status)return n.output;if("error"===n?.status)throw n.error;if("active"===n?.status)return function(t,e){return new Promise((n,s)=>{const o=t.subscribe(t=>{const r=t.effects?.[e];"done"===r?.status?(o.unsubscribe(),n(r.output)):"error"===r?.status&&(o.unsubscribe(),s(r.error))})})}(o,t);i({type:vn,key:t});try{const n=await e();return i({type:pn,key:t,output:n}),n}catch(e){throw i({type:yn,key:t,error:e}),e}}}));return f.then(t=>{h(),"active"===o.getSnapshot().status&&i({type:$n,data:t})},t=>{h(),"active"===o.getSnapshot().status&&i({type:Sn,data:t})}),()=>{c.abort(),h()}}),{effects:{async:{status:"active"}}}}})},t.createCallbackLogic=function(t){const e="function"==typeof t?t:t.run,n="function"==typeof t?void 0:t.schemas;return gn({validator:"function"==typeof t?void 0:t.validator,schemas:n,context:void 0,run:(t,n)=>{const{event:s,input:o,self:r,system:i}=t,c=t.emit,a=_n.get(r);a?.receivers?.forEach(t=>t(s)),n.effect("callback",()=>{const t={receivers:void 0,dispose:void 0};return _n.set(r,t),t.dispose=e({input:o,system:i,self:r,sendBack:t=>{if("stopped"===r.getSnapshot().status)return;const e=r._parent;e&&i._relay(r,e,t)},receive:e=>{t.receivers??=new Set,t.receivers.add(e)},emit:c}),()=>{_n.delete(r),t.receivers?.clear(),t.dispose?.()}})}})},t.createEmptyActor=function(){return hn(kn)},t.createEventObservableLogic=function(t){const e="function"==typeof t?t:t.run,n="function"==typeof t?void 0:t.validator,s={config:t,validator:n,transition:(t,e,n)=>{if("active"!==t.status)return[t,[]];switch(e.type){case bn:return Z(n,t,[{...t,status:"error",error:e.data,input:void 0,_subscription:void 0},[]]);case wn:return Z(n,t,[{...t,status:"done",input:void 0,_subscription:void 0},[]]);case o:return t._subscription.unsubscribe(),[{...t,status:"stopped",input:void 0,_subscription:void 0},[]];default:return[t,[]]}},initialTransition:(t,e)=>{n&&fn(n,{kind:"input",logic:s,input:t});return[{status:"active",output:void 0,error:void 0,context:void 0,input:t,_subscription:void 0},[]]},getInitialSnapshot:(t,e)=>s.initialTransition(e,t)[0],start:(t,{self:n,system:s,emit:o})=>{"done"!==t.status&&(t._subscription=e({input:t.input,system:s,self:n,emit:t=>{o(t)}}).subscribe({next:t=>{n._parent&&s._relay(n,n._parent,t)},error:t=>{s._relay(n,n,{type:bn,data:t})},complete:()=>{s._relay(n,n,{type:wn})}}))},getPersistedSnapshot:({_subscription:t,...e})=>e,restoreSnapshot:t=>({...t,_subscription:void 0})};return s},t.createFSM=function(t){const e={id:t.id??"(fsm)",sources:Cn};!function(t){for(const[e,n]of Object.entries(t.states))for(const[t,s]of Object.entries(n.on??{}))for(const n of Vn(s))if("string"==typeof n)throw new Error(`Invalid transition for "${e}.${t}": use { target: "${n}" } instead of a string target.`)}(t);const s=(t,e,n,s)=>{if(!s?.length)return[t,Dn];const o=function(t){const e=[];for(const n of t){if(!n||"object"!=typeof n||!("action"in n)||"function"!=typeof n.action||zn.has(n.action)||"_special"in n.action)return;e.push({kind:"action",type:n.action.name||"(anonymous)",params:void 0,args:n.args,action:n.action,exec(){return this.action?.(...this.args)}})}return e}(s);return o?[t,o]:tt(t,e,n,s)},r=(t,e,n,o,r,i)=>{if(!o)return[t,Dn];const c=[],a=J(n,c,i,!0);let u;const d=Array.isArray(o)?o.length:1;for(let s=0;s<d;s++){const i=(Array.isArray(o)?o[s]:o)(j({context:u??t.context,event:e,input:r,value:t.value,children:t.children},n),a);if(void 0!==i?.context){const e=u??t.context,n=Un(e,i.context);n!==e&&(u=n)}}const h=void 0!==u?Bn(t,t.value,u,t._stateInput):t;return s(h,e,n,c)},c=(e,n,s,o)=>{const r=t.states[e.value],i=r?.on?.[n.type];if(!i)return;const c=Array.isArray(i)?i.length:1;for(let t=0;t<c;t++){const r=Array.isArray(i)?i[t]:i,c=j({context:e.context,event:n,input:e.input,value:e.value,children:e.children},s);if("function"==typeof r){const t=[],e=r(c,J(s,t,o,!0));if(!e){if(t.length)return{actions:t};continue}return{target:e.target,context:e.context,input:e.input,actions:t}}if(!("guard"in r)||!r.guard||r.guard(c))return{target:r.target,context:Wn(r.context,c),input:r.input,actions:"actions"in r&&r.actions?Vn(r.actions):Kn}}},a=(e,n,u)=>{if("active"!==e.status)return[e,[]];if(n.type===o){const t=[],s=J(u,t,[]);for(const t of Object.keys(e.timers))s.cancel(t);const[o,r]=tt(e,n,u,t);return[Jn(o),r]}if(n.type===i){const t=e.timers[n.id];if(!t)return[e,Dn];const s={...e.timers};delete s[t.id];const o={...e,timers:s};if("@xstate.raise"===t.type)return a(o,t.event,u);return[o,[G(u,"self"===t.target?u.self:t.target,t.event)]]}const d=t.states[e.value],h=d?.on?.[n.type];if(!h)return[e,Dn];if(!(Array.isArray(h)||"function"==typeof h||"guard"in h||"actions"in h&&h.actions||"function"==typeof h.input)){const s=h.target??e.value,o=s!==e.value;if(!o||!d.exit&&!t.states[s]?.entry){const t=void 0!==h.context,r=void 0!==h.input,i=I(u)?"function"==typeof h.context?h.context(j({context:e.context,event:n,input:e.input,value:e.value,children:e.children},u)):h.context:Wn(h.context,{context:e.context,event:n,input:e.input,value:e.value,self:u.self,system:u.system,parent:u.self._parent,children:e.children}),c=t&&i?Un(e.context,i):e.context;return o||c!==e.context||r||void 0!==e._stateInput?[Bn(e,s,c,r?Ln(h.input,c,n):void 0),Dn]:[e,Dn]}}if("function"==typeof h&&h.length<2&&!d?.exit){const s=h(j({context:e.context,event:n,input:e.input,value:e.value,children:e.children},u),void 0);if(s){const o=s.target??e.value;if(!t.states[o]?.entry){const t=void 0!==s.context,r=void 0!==s.input,i=t&&s.context?Un(e.context,s.context):e.context;return o!==e.value||i!==e.context||r||void 0!==e._stateInput?[Bn(e,o,i,r?Ln(s.input,i,n):void 0),Dn]:[e,Dn]}}}let f=e;const l=[],p=[n];let y=0;for(;p.length;){if(++y>1e3)throw new Error("FSM microstep count exceeded 1000");const e=p.shift(),n=c(f,e,u,p);if(!n)continue;const o=n.target??f.value,i=o!==f.value;if(i){const[n,s]=r(f,e,u,t.states[f.value]?.exit,f._stateInput,p);f=n,l.push(...s)}let a=f.context;void 0!==n.context&&(a=Un(a,n.context));const d=void 0!==n.input,h=d?Ln(n.input,a,e):void 0;(i||a!==f.context||d||void 0!==f._stateInput)&&(f=Bn(f,o,a,h));const[v,m]=s(f,e,u,n.actions);if(f=v,l.push(...m),i){const[n,s]=r(f,e,u,t.states[o]?.entry,h,p);f=n,l.push(...s)}}return[f,l]},u={id:t.id,config:t,transition:(...t)=>{const[e,n]=a(...t);return Z(t[2],t[0],[e,[...n,...Q(n)]])},initialTransition:(s,o)=>{const i=function(t,e){return"function"==typeof t?t({input:e}):t??{}}(t.context,s),c=function(t,e,n,s,o){return{status:"active",output:void 0,error:void 0,value:t,context:e,input:n,children:{},timers:{},_nextTimerId:0,_stateInput:o,machine:s}}(t.initial,i,s,e),u=[];let[d,h]=r(c,{type:n},o,t.states[t.initial]?.entry,void 0,u);for(h.length||(h=[]);u.length;){const[t,e]=a(d,u.shift(),o);d=t,h.push(...e)}return Z(o,void 0,[d,[...h,...Q(h)]])},getInitialSnapshot:(t,e)=>u.initialTransition(e,t)[0],getPersistedSnapshot:({machine:t,...e})=>e,restoreSnapshot:t=>({...t,machine:e})};return u},t.createListenerLogic=w,t.createLogic=gn,t.createMachine=Rn,t.createMachineFromConfig=function t(e,n={}){const s=function(t,e){return{actions:e.actions??{},guards:e.guards??{},actors:e.actors??{},delays:{...Qn(t.delays),...e.delays??{}},evaluators:e.evaluators??{}}}(e,n),o=function(t,e){function n(n,s){const o=n["@lang"]??t;if(!o)throw new Error(`Missing @exprLang for expression at ${s}`);const r=e.evaluators[o];if(!r)throw new Error(`Missing evaluator for @lang '${o}' at ${s}`);return r}function s(t,e,s,o){const r=Gn(t)?"expr":"code",i=Gn(t)?t["@expr"]:t["@code"];return n(t,o)({source:i,kind:r,slot:e,scope:s,path:o})}function o(t,e,n,r){if(Xn(t))return s(t,e,n,r);if(Array.isArray(t))return t.map((t,s)=>o(t,e,n,Zn(r,s)));if(!t||"object"!=typeof t)return t;const i={};for(const s of Object.keys(t))i[s]=o(t[s],e,n,Zn(r,s));return i}function r(t,e){return{context:t.context,event:t.event,input:t.input,self:t.self,children:t.children,params:t.params,...e}}return{evaluateResolvable:s,resolveValue:o,makeScope:r,getDurationConfig:function(t,e){return Xn(t)?n=>Fn(o(t,"delay",r(n),e)):t},assertResolvable:function t(e,s){if(Xn(e))n(e,s);else if(Array.isArray(e))e.forEach((e,n)=>t(e,Zn(s,n)));else if(e&&"object"==typeof e)for(const n of Object.keys(e))t(e[n],Zn(s,n))}}}(e["@exprLang"],s),{evaluateResolvable:r,resolveValue:i,makeScope:c,getDurationConfig:a}=o;function u(t,n,s){if(t)return Xn(t)?e=>!!r(t,n,c(e),s):o=>{const r=i(t.params,n,c(o),`${s}.params`),a=e.guards?.[t.type];if(a){const e=u(a.when,"guard",`$.guards.${t.type}.when`);return!!e?.({...o,params:r})}const d=o.guards?.[t.type];if(!d)throw new Error((h=t.type,f=o.guards??{},`Guard '${h}' is not implemented in machine '${e.id??"(machine)"}'. Available guards: ${Object.keys(f).map(t=>`'${t}'`).join(", ")||"(none)"}.`));var h,f;return d(o,r)}}function d(t,e){if(t)return Xn(t)?n=>r(t,"choice",c(n),e):(ts(t,e),n=>{for(let s=0;s<t.length;s++){const o=t[s],r=u(o.when,"choice",`${e}[${s}].when`);if(!r||r(n))return{target:o.target,context:o.context?i(o.context,"transitionContext",c(n),`${e}[${s}].context`):void 0,input:void 0!==o.input?i(o.input,"input",c(n),`${e}[${s}].input`):void 0,description:o.description,reenter:o.reenter,meta:o.meta}}throw new Error(`Choice state at ${e} did not match any branch.`)})}const h={},f=[];let l=null;const p=[];function y(t,e){if(!t||"function"==typeof t)return t;if(Xn(t))return n=>r(t,"transition",c(n),e);const{guard:n,...s}=t;if(!n)return s;const o=u({type:n},"guard",e);return t=>o(t)?s:void 0}function v(e){return(Array.isArray(e)?e:[e]).map(e=>{const n=e;let o;return o=n._nestedMachineJSON?t(n._nestedMachineJSON,s):s.actors[e.src]??e.src,{src:o,id:e.id,registryKey:e.registryKey,input:void 0!==e.input?t=>i(e.input,"input",c(t),"$.invoke.input"):void 0,onDone:e.onDone?x(e.onDone):void 0,onError:e.onError?x(e.onError):void 0,onSnapshot:e.onSnapshot?x(e.onSnapshot):void 0,timeout:a(e.timeout,"$.invoke.timeout"),onTimeout:e.onTimeout?x(e.onTimeout):void 0}})}function m(t,e,n){const s=n instanceof Error?n.message:"string"==typeof n?n:"unknown error";t.enq.raise({type:"xstate.error.execution",error:{tagname:e,message:s,line:NaN,column:NaN,reason:s},_scxmlEventType:"platform",_scxmlEventName:"error.execution",_scxmlEventData:{tagname:e,message:s,line:NaN,column:NaN,reason:s}}),t.errored=!0}function g(t,n,s,o,r,i){const c=e.actions?.[t.type];if(!c)return s(n.actions[t.type],o),{context:void 0,errored:r.errored};if(i.includes(t.type))return m(r,"action",new Error(`Circular action reference: ${i.concat(t.type).join(" -> ")}`)),{context:void 0,errored:!0};return _(Array.isArray(c)?c:[c],{...n,params:o},s,r,i.concat(t.type))}function _(t,e,n,s,o=[]){const a=s??{enq:n,errored:!1};let u;for(const s of t){if(a.errored)break;if(Xn(s)){const t=r(s,"action",c(e,{params:e.params,enq:n}),"$.actions");t&&"object"==typeof t&&"context"in t&&t.context&&(u??={},Object.assign(u,t.context))}else if(rs(s))switch(s.type){case"@xstate.raise":{const t=void 0!==s.delay,o=i(s.event,"actionParams",c(e,{params:e.params}),"$.actions.event"),r=t||void 0!==s.id?{...o,...t?{_scxmlExternal:!0}:{},...void 0!==s.id?{_scxmlSendId:s.id}:{}}:o;n.raise(r,{id:s.id,delay:s.delay});break}case"@xstate.cancel":n.cancel(s.id);break;case"@xstate.log":n.log(...s.args);break;case"@xstate.emit":n.emit(i(s.event,"actionParams",c(e,{params:e.params}),"$.actions.event"));break;case"@xstate.assign":u??={},Object.assign(u,i(s.context,"transitionContext",c(e,{params:e.params}),"$.actions.context"));break;default:throw new Error(`Unknown built-in action: ${s.type}`)}else if("scxml.assign"===s.type){const t=s,n={...e.context,...u};let o;try{o=ss(n,t.expr,e.event,e.self)}catch(t){m(a,"assign",t);continue}if(t.location.includes(".")){m(a,"assign",new Error(`Invalid assign location: ${t.location}`));continue}u??={},u[t.location]=o}else if("scxml.raise"===s.type){const t=s,o={...e.context,...u};let r,i,c,d;try{if(r=t.eventexpr?ss(o,t.eventexpr,e.event,e.self):t.event||"unknown",r=qn(r),i={type:r,_scxmlEventName:Hn(r)},t.params)for(const n of t.params)i[n.name]=ss(o,n.expr,e.event,e.self);c=t.targetexpr?ss(o,t.targetexpr,e.event,e.self):t.target;const n="#_internal"===c;d=t.delayexpr?Fn(ss(o,t.delayexpr,e.event,e.self)):n?void 0:t.delay}catch(t){m(a,"send",t);continue}const h="#_internal"===c,f="#_parent"===c;if("string"==typeof c&&c.length>0&&!c.startsWith("#_")){m(a,"send",new Error(`Invalid send target: ${c}`));continue}if(void 0!==t.id&&(i._scxmlSendId=t.id),f&&e.parent)n.sendTo(e.parent,i,void 0!==d?{delay:d}:void 0);else if("string"!=typeof c||!c.startsWith("#_")||f||h)h?n.raise(i,{id:t.id,delay:d}):(i._scxmlExternal=!0,n.sendTo(e.self,i,{id:t.id,delay:d}));else{const s=c.slice(2),o=e.children?.[s];if(o)n.sendTo(o,i);else if(s.startsWith("scxml_")&&s!==`scxml_${es}`){const t=`Unable to dispatch event to target: ${c}`;n.raise({type:"xstate.error.communication",error:{tagname:"send",message:t,line:NaN,column:NaN,reason:t},_scxmlEventType:"platform",_scxmlEventName:"error.communication",_scxmlEventData:{tagname:"send",message:t,line:NaN,column:NaN,reason:t}})}else i._scxmlExternal=!0,n.sendTo(e.self,i,{id:t.id,delay:d})}}else if("scxml.cancel"===s.type){const t=s,o={...e.context,...u};try{const s=ss(o,t.sendidexpr,e.event,e.self);s&&n.cancel(s)}catch{}}else if("scxml.script"===s.type){const t=s,n={...e.context,...u};try{const e=os(n,t.code);u??={},Object.assign(u,e)}catch(t){m(a,"script",t)}}else if("scxml.foreach"===s.type){const t=s,o={...e.context,...u},r=t=>/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(t);if(!r(t.item)||t.index&&!r(t.index)){m(a,"foreach",new Error("foreach item/index is not a legal location"));continue}let i;try{i=ss(o,t.array,e.event,e.self)}catch(t){m(a,"foreach",t);continue}if(!Array.isArray(i)){m(a,"foreach",new Error("foreach array is not iterable"));continue}u??={};for(let s=0;s<i.length;s++){u[t.item]=i[s],t.index&&(u[t.index]=s);const o={...e,context:{...e.context,...u}},r=_(t.actions,o,n,a);if(r.context&&Object.assign(u,r.context),a.errored)break}}else if("scxml.block"===s.type){const t=s,o={...e,context:{...e.context,...u}},r=_(t.actions,o,n);if(r.context){u??={};for(const t of Object.keys(r.context))r.context[t]!==e.context[t]&&(u[t]=r.context[t])}}else if("scxml.if"===s.type){const t=s,o={...e.context,...u};for(const s of t.branches){let t;if(s.cond)try{t=!!ss(o,s.cond,e.event,e.self)}catch(e){m(a,"if",e),t=!1}else t=!0;if(t){if(s.actions.length){const t={...e,context:o},r=_(s.actions,t,n,a);if(r.context){u??={};for(const t of Object.keys(r.context))r.context[t]!==e.context[t]&&(u[t]=r.context[t])}}break}}}else{const t=g(s,e,n,i(s.params,"actionParams",c(e,{params:e.params}),"$.actions.params"),a,o);t.context&&(u??={},Object.assign(u,t.context))}}return{context:u?{...e.context,...u}:void 0,errored:a.errored}}function x(t){const e=Array.isArray(t)?t:[t];return e.map((t,n)=>{if(Xn(t))return(s,o)=>r(t,"transition",c(s,{enq:o}),"$.transition"+(e.length>1?`[${n}]`:""));const s=Array.isArray(t.target)?t.target[0]:t.target,o=t.target,a=u(t.guard,"guard","$.transition.guard"),d=e=>t.context?i(t.context,"transitionContext",c(e),"$.transition.context"):void 0,p=e=>void 0!==t.input?i(t.input,"input",c(e),"$.transition.input"):void 0;return a||t.actions?.length?a&&!t.actions?.length?t.context?{matches:t.matches,guard:a,to:e=>({target:o,context:d(e),reenter:t.reenter}),description:t.description,meta:t.meta,input:void 0!==t.input?p:void 0}:{matches:t.matches,target:o,guard:a,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0}:s?{matches:t.matches,guard:a,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0,to:(e,n)=>{const r=d(e);if(t.actions?.length){const e=s.replace(/^#/,"");h[e]=t.actions,f.includes(t.actions)||f.push(t.actions)}return{target:o,context:r,reenter:t.reenter}}}:{matches:t.matches,guard:a,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0,to:(e,n)=>{const s=d(e);if(t.actions?.length){f.includes(t.actions)||f.push(t.actions),l??=e.context;const o=_(t.actions,e,n);if(o.context)return{context:{...s,...o.context}}}return s?{context:s}:{}}}:t.context?{matches:t.matches,to:e=>({target:o,context:d(e),reenter:t.reenter}),description:t.description,meta:t.meta,input:void 0!==t.input?p:void 0}:{matches:t.matches,target:o,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0}})}if(e.delays)for(const t of Object.keys(e.delays)){const n=e.delays[t];"number"==typeof n?s.delays[t]=n:"string"==typeof n?s.delays[t]=Fn(n):n&&"object"==typeof n&&(s.delays[t]=e=>Fn(i(n.duration,"delay",c(e),`$.delays.${t}.duration`)))}!function(t,e,n){const{assertResolvable:s}=n;function o(n,r){if(n)if(Xn(n))s(n,r);else if(s(n.params,`${r}.params`),t.guards?.[n.type])o(t.guards[n.type].when,`$.guards.${n.type}.when`);else if(!e.guards[n.type]&&!["scxml.cond","xstate.stateIn","xstate.not"].includes(n.type))throw new Error(`Missing guard source "${n.type}"`)}function r(n,o,i=[]){if(Xn(n))return void s(n,o);if(!n||"string"!=typeof n.type)throw new Error(`Invalid action at ${o}`);if(s(n.params,`${o}.params`),n.type.startsWith("@xstate.")||n.type.startsWith("scxml."))return void s(n,o);const c=t.actions?.[n.type];if(c){if(i.includes(n.type))throw new Error(`Circular action reference: ${i.concat(n.type).join(" -> ")}`);const t=Array.isArray(c)?c:[c];return void t.forEach((e,s)=>r(e,`${o}.actions.${n.type}${t.length>1?`[${s}]`:""}`,i.concat(n.type)))}if(!e.actions[n.type])throw new Error(`Missing action source "${n.type}"`)}function i(t,e){Yn(t).forEach((t,n)=>r(t,`${e}[${n}]`))}function c(t,e){(Array.isArray(t)?t:t?[t]:[]).forEach((n,r)=>{const c=Array.isArray(t)?`${e}[${r}]`:e;Xn(n)?s(n,c):(o(n.guard,`${c}.guard`),i(n.actions,`${c}.actions`),s(n.context,`${c}.context`),s(n.input,`${c}.input`))})}if(t.actions)for(const e of Object.keys(t.actions)){const n=Array.isArray(t.actions[e])?t.actions[e]:[t.actions[e]];n.forEach((t,s)=>r(t,`$.actions.${e}${n.length>1?`[${s}]`:""}`,[e]))}if(t.guards)for(const e of Object.keys(t.guards))o(t.guards[e].when,`$.guards.${e}.when`);if(t.delays)for(const e of Object.keys(t.delays)){const n=t.delays[e];s(n&&"object"==typeof n&&"duration"in n?n.duration:n,`$.delays.${e}`)}!function n(r,a){if(("history"===r.type||void 0!==r.history)&&!("string"==typeof r.target&&r.target.trim().length>0||Array.isArray(r.target)&&r.target.length>0&&r.target.every(t=>t.trim().length>0)))throw new Error(`History state at ${a} must declare a non-empty target.`);if(s(r.context,`${a}.context`),s(r.input,`${a}.input`),s(r.output,`${a}.output`),s(r.timeout,`${a}.timeout`),i(r.entry,`${a}.entry`),i(r.exit,`${a}.exit`),"choice"===r.type){if(!r.choice)throw new Error(`Choice state at ${a} must declare choice.`);Array.isArray(r.choice)?(ts(r.choice,`${a}.choice`),r.choice.forEach((t,e)=>{o(t.when,`${a}.choice[${e}].when`),s(t.context,`${a}.choice[${e}].context`),s(t.input,`${a}.choice[${e}].input`)})):s(r.choice,`${a}.choice`)}if(Xn(r.route)&&s(r.route,`${a}.route`),r.invoke&&(Array.isArray(r.invoke)?r.invoke:[r.invoke]).forEach((t,n)=>{const o=`${a}.invoke${Array.isArray(r.invoke)?`[${n}]`:""}`;if(!t._nestedMachineJSON&&!e.actors[t.src])throw new Error(`Missing actor source "${t.src}"`);s(t.input,`${o}.input`),s(t.timeout,`${o}.timeout`),c(t.onDone,`${o}.onDone`),c(t.onError,`${o}.onError`),c(t.onSnapshot,`${o}.onSnapshot`),c(t.onTimeout,`${o}.onTimeout`)}),r.on)for(const t of Object.keys(r.on))c(r.on[t],`${a}.on.${t}`);if(r.after)for(const n of Object.keys(r.after)){if(Number.isNaN(Number(n))&&void 0===it(n)&&!t.delays?.[n]&&!e.delays[n])throw new Error(`Missing delay source "${n}"`);c(r.after[n],`${a}.after.${n}`)}if(c(r.always,`${a}.always`),c(r.onError,`${a}.onError`),c(r.onTimeout,`${a}.onTimeout`),r.states)for(const t of Object.keys(r.states))n(r.states[t],`${a}.states.${t}`)}(t,"$")}(e,s,o);const b=function t(e,n){const s=Yn(e.entry),o=e.id||n;var i,c;return{id:e.id,initial:e.initial,type:e.type,history:e.history,target:e.target,description:e.description,tags:e.tags,input:e.input,timeout:a(e.timeout,`$.states.${n}.timeout`),states:e.states?Object.entries(e.states).reduce((e,[n,s])=>(e[n]=t(s,n),e),{}):void 0,on:e.on?Object.entries(e.on).reduce((t,[e,n])=>(t[e]=x(n),t),{}):void 0,always:e.always?x(e.always):void 0,onError:e.onError?x(e.onError):void 0,choice:d(e.choice,`$.states.${n}.choice`),route:y(e.route,`$.states.${n}.route`),after:e.after?Object.entries(e.after).reduce((t,[e,n])=>(t[e]=x(n),t),{}):void 0,onTimeout:e.onTimeout?x(e.onTimeout):void 0,entry:"choice"===e.type?void 0:(t,e)=>{for(;p.length;){const t=p.shift();e.raise({type:"xstate.error.execution",error:t,_scxmlEventType:"platform",_scxmlEventName:"error.execution",_scxmlEventData:t})}let n;if(l&&f.length>0&&Object.keys(h).length>0){let s=l;for(const n of f){const o=_(n,{...t,context:s},e);o.context&&(s=o.context)}f.length=0,l=null;for(const t of Object.keys(h))delete h[t];n=s}else{const s=o?h[o]:void 0;if(s){delete h[o];const r=_(s,t,e);r.context&&(n=r.context)}l=null,f.length=0}if(s.length){const o=n?{...t,context:n}:t,r=_(s,o,e);r.context&&(n=r.context)}return{context:n}},exit:e.exit?(c=Yn(e.exit),(t,e)=>_(c,t,e)):void 0,invoke:e.invoke?v(e.invoke):void 0,meta:e.meta,output:e._scxmlDonedata?(i=e._scxmlDonedata,({context:t,event:e,self:n})=>{try{if(i.params&&i.params.length){const s={};for(const o of i.params)s[o.name]=ss(t,o.expr,e,n);return s}if(void 0!==i.contentExpr)return ss(t,i.contentExpr,e,n);if(void 0!==i.contentText)try{return ss(t,i.contentText,e,n)}catch{return i.contentText}}catch(t){const e=t instanceof Error?t.message:"string"==typeof t?t:"unknown error";p.push({tagname:"donedata",message:e,line:NaN,column:NaN,reason:e})}}):Xn(e.output)?({context:t,event:s,self:o})=>r(e.output,"output",{context:t,event:s,self:o},`$.states.${n}.output`):e.output}}(e),w=e.context?{context:t=>i(e.context,"context",t,"$.context")}:{};ns=e.id||"",es="session_scxml";const $={"scxml.cond":({context:t,event:e,self:n},s)=>{const o=s?.expr;if(!o)return!0;try{return!!ss(t,o,e,n)}catch(t){const e=t instanceof Error?t.message:"string"==typeof t?t:"unknown error";return p.push({tagname:"cond",message:e,line:NaN,column:NaN,reason:e}),!1}},"xstate.stateIn":(t,e)=>{const n=e?.stateId;if(!n)return!1;const s=n.replace(/^#/,""),o=t._snapshot;return!!o?.nodes&&o.nodes.some(t=>t.id===s)},"xstate.not":(t,e)=>{const n=e?.guard,s=n&&t.guards?.[n.type];if(!s)throw new Error(`Guard '${n?.type}' referenced by 'xstate.not' is not implemented.`);return!s(t,n.params)}},S=Rn({...b,...w,version:e.version}).provide({actions:s.actions,actors:s.actors,guards:{...$,...s.guards},delays:s.delays});return S._json=e,S},t.createObservableLogic=function(t){const e="function"==typeof t?t:t.run,s="function"==typeof t?void 0:t.schemas;return gn({validator:"function"==typeof t?void 0:t.validator,schemas:s,context:void 0,run:(t,s)=>{const{event:o,input:r,self:i,system:c}=t;switch(o.type){case xn:return{context:o.data};case bn:return{status:"error",error:o.data,input:void 0,effects:{observable:{status:"error",error:o.data}}};case wn:return{status:"done",input:void 0,effects:{observable:{status:"done"}}}}o.type===n&&s.effect((t=c)=>{const n=i,s=e=>{t.sendEvent(n,n,e)},o=e({input:r,system:c,self:i,emit:e=>{t.emitEvent(n,e)}}).subscribe({next:t=>{s({type:xn,data:t})},error:t=>{s({type:bn,data:t})},complete:()=>{s({type:wn})}});return()=>o.unsubscribe()})}})},t.createStateConfig=function(t){return t},t.createSubscriptionLogic=S,t.createSystem=function(t={}){const e={},n=[];return{createActor(t,s){const o=hn(t,{...s,_systemRef:e});return(()=>{const t=e.current;if(t)for(const e of n)e.active&&!e.subscription&&(e.subscription=t.inspect(e.observer))})(),o},get:t=>e.current?.get(t),getAll:()=>e.current?.getAll()??{},inspect(t){const s=e.current;if(s)return s.inspect(t);const o={observer:t,active:!0};return n.push(o),{unsubscribe(){o.active=!1,o.subscription?.unsubscribe()}}},setup:ys}},t.executeEffects=async function(t,e){for(const n of t)await n.exec(e)},t.getInitialMicrosteps=function(t,...[e]){const n=kt(t),s=p(e),o=[],r=t._getPreInitialState(n,s),i=Object.values(r.children).filter(Boolean).map(t=>H(t)),c=ce(t.root,r,n,s,o),{microsteps:a}=de(c[0],s,n,o,[[c[0],[...i,...c[1]]]]);return xs(a,n)},t.getInitialSnapshot=function(t,...[e]){const n=kt(t);return t.initialTransition(e,n)[0]},t.getMicrosteps=function(t,e,n){const s=kt(t,e),{microsteps:o}=de(e,n,s,[]);return xs(o,s,e)},t.getNextSnapshot=function(t,e,n){const s=kt(t,e),o=t.transition(e,n,s),r=Array.isArray(o)?o[0]:o;return mt(s,r,!1),r===e?r:_t(s,r)},t.getNextTransitions=function(t){const e=[],n=t.nodes.filter(jt),s=new Set;for(const t of n)for(const n of[t].concat(Ot(t,void 0)))if(!s.has(n.id)){s.add(n.id);for(const[,t]of n.transitions.entries())e.push(...t);n.always&&e.push(...n.always)}return e},t.getStateNodes=Xt,t.initialTransition=function(t,...[e]){const n=kt(t),[s,o]=Z(n,void 0,t.initialTransition(e,n));return mt(n,s,!1),[_t(n,s),o]},t.isBuiltInExecutableAction=Y,t.isMachineSnapshot=be,t.isTypeSchema=function(t){return!!t&&"object"==typeof t&&"~standard"in t&&"xstate.types"===t["~standard"].vendor},t.listenerLogic=$,t.machineConfigToJSON=ds,t.machineVersions=function(t,e){const n=new Map,s=t[0].id;for(const e of t){if(void 0===e.version)throw new Error(`Machine '${e.id}' must define a version.`);if("*"===e.version)throw new Error("Machine version '*' is reserved for wildcard migrations.");if(e.id!==s)throw new Error(`Machine '${e.id}' does not match machine ID '${s}'.`);const t=`${e.id}\0${e.version}`;if(n.has(t))throw new Error(`Duplicate machine identity '${e.id}' version '${e.version}'.`);n.set(t,e)}if(void 0!==e?.unversioned&&!n.has(`${s}\0${e.unversioned}`))throw new Error(`Unversioned snapshot version '${e.unversioned}' is not retained for machine '${s}'.`);const o=async t=>{if(!hs(t))throw new Error("Persisted snapshot is missing machine identity.");let o,r;if(hs(t.machine)){if(({id:o,version:r}=t.machine),"string"!=typeof o||"string"!=typeof r)throw new Error("Persisted snapshot has an invalid machine identity.")}else if("string"==typeof t.version)o=s,r=t.version;else{if(void 0!==t.version||void 0===e?.unversioned)throw new Error("Persisted snapshot is missing machine identity.");o=s,r=e.unversioned}if(void 0!==t.version&&"string"!=typeof t.version)throw new Error("Persisted snapshot has an invalid version.");if(void 0!==t.version&&t.version!==r)throw new Error(`Persisted snapshot version '${t.version}' conflicts with machine version '${r}'.`);const i=n.get(`${o}\0${r}`);if(!i)throw new Error(`Unknown machine identity '${o}' version '${r}'.`);const c=await fs(i.schemas?.context,t.context,`context for machine '${o}' version '${r}'`);return{machine:i,snapshot:{...t,context:c,machine:{id:o,version:r}}}};return{parseSnapshot:o,async adaptEvents(t,e){const o=n.get(`${s}\0${e.to}`);if(!o)throw new Error(`Target version '${e.to}' is not retained for machine '${s}'.`);const r=e.from.id??s,i=n.get(`${r}\0${e.from.version}`);let c,a=!1;if(i){let n;try{n=await ps(t,i)}catch(t){c=t,a=!0}if(n){if(i===o)return n;const t=e.adapters[i.version];if(t)return ps(await t(n),o)}}const u=e.adapters["*"];if(u)return ps(await u(t,e.from),o);if(i){if(a)throw c instanceof Error?c:new Error(`Unable to validate event history for machine '${i.id}' version '${i.version}'.`,{cause:c});throw new Error(`No event adapter from version '${i.version}' to '${o.version}' for machine '${o.id}'.`)}throw new Error(`Unknown event history source '${r}' version '${e.from.version}'.`)},async migrateSnapshot(t,e){const r=n.get(`${s}\0${e.to}`);if(!r)throw new Error(`Target version '${e.to}' is not retained for machine '${s}'.`);let i,c;try{i=await o(t)}catch(t){c=t}if(i){if(i.machine.version===r.version)return ls(i.snapshot,r);const t=e.migrations[i.machine.version];if(t)return ls(await t(i.snapshot),r)}const a=e.migrations["*"];if(!a){if(i)throw new Error(`No snapshot migration from version '${i.machine.version}' to '${r.version}' for machine '${r.id}'.`);throw c}const u=await a(t,function(t,e){return hs(t)?hs(t.machine)?{id:"string"==typeof t.machine.id?t.machine.id:void 0,version:"string"==typeof t.machine.version?t.machine.version:void 0}:{id:"string"==typeof t.version?e:void 0,version:"string"==typeof t.version?t.version:void 0}:{}}(t,s));return ls(u,r)}}},t.mapState=function(t,e){const n=[],s=(t,e)=>{let n=t;for(const t of e){if(!n?.states)return;const e=n.states;if(!(t in e))return;n=e[t]}return n},o=new Set;for(const r of t.nodes.filter(jt)){let i=r;for(;i&&!o.has(i);){o.add(i);const r=s(e,i.path);r?.map&&n.push({stateNode:i,result:r.map(t)}),i=i.parent}}return n},t.matchesState=Ne,t.pathToStateValue=Ce,t.serializeMachine=function(t){return t._json??ds(t.config)},t.setup=ys,t.subscriptionLogic=E,t.toObserver=Be,t.toPromise=function(t){return new Promise((e,n)=>{t.subscribe({complete:()=>{e(t.getSnapshot().output)},error:n})})},t.transition=function(t,e,n){const s=kt(t,e);mt(s,e,!1);const[o,r]=Z(s,e,t.transition(e,n,s));return mt(s,o,!1),[o===e?o:_t(s,o),r]},t.types=function(){return{"~standard":{version:1,vendor:"xstate.types",validate:t=>({value:t})}}},t.waitFor=function(t,e,n){const s={...bs,...n};return new Promise((n,o)=>{const{signal:r}=s;if(r?.aborted)return void o(r.reason);let i=!1;const c=s.timeout===1/0?void 0:setTimeout(()=>{a(),o(new Error(`Timeout of ${s.timeout} ms exceeded`))},s.timeout),a=()=>{clearTimeout(c),i=!0,h?.unsubscribe(),d&&r.removeEventListener("abort",d)};function u(t){e(t)&&(a(),n(t))}let d,h;u(t.getSnapshot()),i||(r&&(d=()=>{a(),o(r.reason)},r.addEventListener("abort",d)),h=t.subscribe({next:u,error:t=>{a(),o(t)},complete:()=>{a(),o(new Error("Actor terminated without satisfying predicate"))}}),i&&h.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";class e{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)}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),this._current=t.next}this._last=null}}const s="@xstate.init",n="@xstate.spawn",o="@xstate.stop",r="@xstate.terminate",i="xstate.timer";function c(t,e){return{type:"xstate.after",delay:t,stateId:e}}function a(t,e){return`xstate.after.${t}.${e}`}function u(t){return`xstate.timeout.${t}`}function d(t,e){return{type:"xstate.timeout.actor",actorId:t,sessionId:e}}function h(t){return`xstate.timeout.actor.${t}`}function f(t,e){return{type:"xstate.done.state",stateId:t,output:e}}function l(t,e){return{type:`xstate.error.${t}`,error:e}}function p(t){return{type:s,input:t}}function y(t){setTimeout(()=>{throw t})}const v="function"==typeof Symbol&&Symbol.observable||"@@observable";function m(t){if("string"==typeof t)throw new Error("Only event objects may be used with sendTo")}const g={"@xstate.spawn":t=>t.system.spawnActor(t._parent,t),"@xstate.start":t=>t.system.startActor(t),"@xstate.raise":(t,e,s)=>t.system.scheduleTimer(t.self,s.id,s?.delay??0),"@xstate.sendTo":(t,e,s,n)=>(m(s),void 0!==n?.delay?t.system.scheduleTimer(t.self,n.id,n?.delay??0):t.system._relay(t.self,e,s)),"@xstate.cancel":(t,e)=>t.system.cancelTimer(t.self,e),"@xstate.stop":(t,e)=>t.system.stopActor(e),"@xstate.terminate":(t,e)=>t.system.terminateActor(t,e)},_=new WeakMap;function x(t){const e=(t,e)=>[{status:"active",output:void 0,error:void 0,input:t},[]];return{start:(e,{self:s,system:n})=>{const o=e.input.actor;if(!o||"stopped"===o.getSnapshot().status)return;const r=t(e.input,{self:s,system:n});if(!r)return;let i,c=!1;const a=()=>{c||(c=!0,r.unsubscribe(),i?.unsubscribe())},u=s._parent;u&&(i=u.subscribe({complete:a,error:a})),_.set(s,{unsubscribe:a})},transition:(t,e,{self:s})=>e.type===o?(_.get(s)?.unsubscribe(),_.delete(s),[{...t,status:"stopped",error:void 0},[]]):[t,[]],initialTransition:e,getInitialSnapshot:(t,s)=>e(s)[0],getPersistedSnapshot:t=>t,restoreSnapshot:t=>t}}function b(t,e,s){"stopped"!==t.getSnapshot().status&&t._parent&&e._relay(t,t._parent,s())}function w(){return x(({actor:t,eventType:e,mapper:s},{self:n,system:o})=>{const r="*"!==e&&e.endsWith(".*");return t.on(r?"*":e,t=>{r&&!Fe(t.type,e)||b(n,o,()=>s(t))})})}const $=w();function S(){return x(({actor:t,mappers:e},{self:s,system:n})=>{const{done:o,error:r,snapshot:i}=e;return t.subscribe({next:t=>{"done"===t.status&&o?b(s,n,()=>o(t.output)):"error"===t.status&&r?b(s,n,()=>r(t.error)):"active"===t.status&&i&&b(s,n,()=>i(t))},error:t=>{r&&b(s,n,()=>r(t))},complete:()=>{}})})}const E=S(),k=Symbol();function I(t){return!!t[k]}function A(t){return I(t)?t._parent:t.self._parent}function j(t,e){if(!I(e)){const s=t,n=e.self;return s.self=n,s.system=e.system,s.parent=n._parent,s}return Object.defineProperties(t,{self:{enumerable:!0,get:()=>e.self},system:{enumerable:!0,get:()=>e.system},parent:{enumerable:!0,get:()=>A(e)}}),t}function T(){return this.action?.(...this.args)}function O(t=this.source.system){return t.emitEvent(this.source,this.event)}function M(t,e,s){return{kind:"action",exec:e,type:t,action:e,params:s,args:[]}}function N(t=this.actor.system){return t.spawnActor(this.source,this.actor)}function P(t=this.actor.system){return t.startActor(this.actor)}function R(t=this.source.system){return t.stopActor(this.actor)}function C(t=this.actor.system){const e="done"===this.status?{status:"done",output:this.output,error:void 0}:{status:"error",output:void 0,error:this.error};return t.terminateActor(this.actor,e)}function D(t=this.source.system){return t.scheduleTimer(this.source,this.id,this.delay??0)}function V(t=this.source.system){return m(this.event),void 0!==this.delay?t.scheduleTimer(this.source,this.id,this.delay):t.sendEvent(this.source,this.target,this.event)}function K(t=this.source.system){return t.cancelTimer(this.source,this.id)}function z(t,e,s){if(!Y(e))return t;if("@xstate.cancel"===e.type){if(!t.timers?.[e.id])return t;const s={...t.timers};return delete s[e.id],{...t,timers:s}}if("@xstate.raise"!==e.type&&"@xstate.sendTo"!==e.type||void 0===e.delay)return t;let n=t._nextTimerId??0;const o=e.id??"xstate.timer.auto."+n++;e.id=o;const r="@xstate.raise"===e.type||e.target===s.self?"self":e.target;return{...t,timers:{...t.timers,[o]:{id:o,delay:e.delay,type:e.type,event:e.event,target:r}},_nextTimerId:n}}function W(t,e){return{...t,...e}}function L(t,e,...s){const n={action:e,args:s};return t.push(n),n}function U(t,e,s){if("add"===e.type)return{...t,children:{...t.children,[e.id]:e.actor}};const n={...t.children};let o=e.actor._parent===s.self;for(const t of Object.keys(n))n[t]===e.actor&&(o=!0,delete n[t]);if(!o)throw new Error(`Cannot stop non-child actor ${e.actor.id}`);return s.system._unregister(e.actor),{...t,children:n}}function B(t){if("object"==typeof t&&null!==t&&"action"in t&&"function"==typeof t.action)return t}function J(t,e,s,n=!1,o=!0){const r={cancel:s=>{L(e,g["@xstate.cancel"],t,s)},emit:t=>{e.push(t)},log:(...s)=>{L(e,t.logger,...s)},raise:(n,o)=>{if("string"==typeof n)throw new Error("Only event objects may be used with raise");void 0!==o?.delay?L(e,g["@xstate.raise"],t,n,o):s.push(n)},spawn:(s,n)=>{if(!o)return{id:n?.id??n?.registryKey??s.id};const r=t.system.createActorRef(s,{...n,parent:t.self});return function(t,e,s){L(t,g["@xstate.spawn"],e).childUpdate={type:"add",actor:e,id:s??e.id}}(e,r,n?.id),r},sendTo:(n,o,r)=>{n?L(e,g["@xstate.sendTo"],t,n,o,r):s.push(l("communication",{message:"Unable to send event to an undefined actor",event:o}))},stop:s=>{if(s){L(e,g["@xstate.stop"],t,s).childUpdate={type:"remove",actor:s}}}};return n&&Object.assign(r,{listen:(s,n,r)=>{if(!o)return{id:void 0};const i={actor:s,eventType:n,mapper:r},c=t.system.createActorRef($,{input:i,parent:t.self});return L(e,g["@xstate.spawn"],c),c},subscribeTo:(s,n)=>{if(!o)return{id:void 0};const r={actor:s,mappers:"function"==typeof n?{snapshot:n}:n},i=t.system.createActorRef(E,{input:r,parent:t.self});return L(e,g["@xstate.spawn"],i),i}}),et(r,(t,...s)=>{L(e,t,...s)})}function F(t,e){switch(t){case g["@xstate.spawn"]:{const[t]=e;return{kind:"builtin",exec:N,source:t._parent,actor:t,id:t.id,logic:t.logic,src:t.src,input:t.options?.input}}case g["@xstate.raise"]:{const[,t,s]=e;return{kind:"builtin",exec:D,source:e[0].self,event:t,id:s?.id,delay:s?.delay}}case g["@xstate.sendTo"]:{const[,t,s,n]=e;return{kind:"builtin",exec:V,source:e[0].self,target:t,event:s,id:n?.id,delay:n?.delay}}case g["@xstate.cancel"]:{const[,t]=e;return{kind:"builtin",exec:K,source:e[0].self,id:t}}case g["@xstate.stop"]:{const[,t]=e;return{kind:"builtin",exec:R,source:e[0].self,actor:t,id:t.id}}default:return}}function q(t){const e=[t];return{kind:"builtin",exec:P,type:"@xstate.start",source:t._parent,params:void 0,args:e,actor:t,id:t.id}}function H(t){const e=[t];return{kind:"builtin",exec:N,type:n,source:t._parent,params:void 0,args:e,actor:t,id:t.id,logic:t.logic,src:t.src,input:t.options?.input}}function G(t,e,s){const n=[t,e,s,{}];return{kind:"builtin",exec:V,type:"@xstate.sendTo",source:t.self,target:e,event:s,id:void 0,delay:void 0,params:void 0,args:n}}function X(t,e){if("done"!==e.status&&"error"!==e.status)throw new Error("Cannot terminate an active or stopped actor");const s="done"===e.status?{status:"done",output:e.output,error:void 0}:{status:"error",output:void 0,error:e.error},n=[t.self,s];return{kind:"builtin",exec:C,type:r,source:t.self,actor:t.self,id:t.self.id,...s,params:void 0,args:n}}function Z(t,e,[s,n]){const o="done"===s.status||"error"===s.status,i="done"===e?.status||"error"===e?.status,c=n.some(t=>"object"==typeof t&&null!==t&&"type"in t&&t.type===r);return!o||i||c?[s,n]:[s,[...n,X(t,s)]]}function Q(t){const e=[],s=[];for(const o of t){if(!Y(o)||o.type!==n)continue;const{actor:t,logic:r}=o,i=q(t);r===$||r===E?e.push(i):s.push(i)}return[...e,...s]}function Y(t){return"builtin"===t.kind}function tt(t,e,s,n){let o=t;const r=[];for(const i of n){const n=I(s)?j({context:o.context,event:e,output:ze(e),children:o.children,actions:t.machine.sources.actions,actors:t.machine.sources.actors},s):{context:o.context,event:e,output:ze(e),self:s.self,system:s.system,parent:s.self._parent,children:o.children,actions:t.machine.sources.actions,actors:t.machine.sources.actors},c="function"==typeof i,a=B(i),u=c?i:!!a&&a.action.bind(null,...a.args);let d;if("object"==typeof i&&null!==i){const{type:t,childUpdate:e,...s}=i;d=s}if(a?.childUpdate&&(o=U(o,a.childUpdate,s)),u&&"_special"in u){r.push({kind:"action",exec:T,type:"object"==typeof i?"action"in i&&"function"==typeof i.action?i.action.name??"(anonymous)":i.type??"(anonymous)":i.name||"(anonymous)",params:d,args:[],action:void 0});const t=u(n,ot);t&&("context"in t||"children"in t)&&(o={...o,...void 0!==t.context?{context:W(o.context,t.context)}:{},..."children"in t?{children:t.children}:{}});continue}if(!u||!("resolve"in u)){const t="object"==typeof i&&null!==i&&"action"in i&&"function"==typeof i.action?F(i.action,i.args):void 0,e="object"==typeof i&&null!==i&&!a,n={kind:t?"builtin":e?"emit":"action",type:"object"==typeof i?"action"in i&&"function"==typeof i.action?i.action.name??"(anonymous)":i.type:i.name||"(anonymous)",params:t?void 0:d,args:"object"==typeof i&&"action"in i?i.args:[],...t?{}:e?{source:s.self,event:i}:{action:a?.action??(c?i:void 0)},...t?{}:{exec:e?O:T},...t};o=z(o,n,s),r.push(n);continue}}return[o,r]}function et(t,e){const s=(t,...s)=>{e(t,...s)};return Object.assign(s,{cancel:st,emit:st,log:st,raise:st,spawn:nt,sendTo:st,stop:st,listen:nt,subscribeTo:nt,...t}),s}const st=()=>{},nt=()=>({}),ot=et({},st);function rt(t){const e=t.trim(),s=e.match(/^(\d+)ms$/i);if(s)return parseInt(s[1],10);const n=e.match(/^(\d*)(\.?)(\d*)s$/i);if(n){const t=n[1]?parseInt(n[1],10):0,e=!!n[2],s=n[3]?parseInt(n[3].padEnd(3,"0").slice(0,3),10):0;return 1e3*t+(e?s:0)}const o=e.match(/^P(?:(?<weeks>\d+(?:[.,]\d+)?)W)?(?:(?<days>\d+(?:[.,]\d+)?)D)?(?:T(?:(?<hours>\d+(?:[.,]\d+)?)H)?(?:(?<minutes>\d+(?:[.,]\d+)?)M)?(?:(?<seconds>\d+(?:[.,]\d+)?)S)?)?$/i);if(!o?.groups)return;const{weeks:r,days:i,hours:c,minutes:a,seconds:u}=o.groups;if(!(r||i||c||a||u))return;const d=t=>t?Number(t.replace(",",".")):0;return 7*d(r)*24*60*60*1e3+24*d(i)*60*60*1e3+60*d(c)*60*1e3+60*d(a)*1e3+1e3*d(u)}function it(t){if(void 0!==t)return"number"==typeof t?t:rt(t)}const ct=new WeakMap,at=new WeakMap,ut=new Map;function dt(t){const e=t._peekKeyedActors;return e?e.call(t)??ut:t.keyedActors}function ht(t){t._snapshotVersion++}function ft(t){return t._snapshotVersion}function lt(t,e,s){const n=function(t,e){if(e){const t=new Map(e.children);return e.root?.sessionId&&t.set(e.root.sessionId,e.root),t}return new Map(t.children)}(t,s),o=new Map(s?.keyedActors??dt(t)),r=new WeakMap,i=Object.assign(Object.create(t),{children:n,keyedActors:o,reverseKeyedActors:r,_snapshot:{...s?.snapshot??t._snapshot},_snapshotVersion:s?.sourceVersion??t._snapshotVersion,_register:(t,e)=>(n.set(t,e),ht(i),t),_unregister:t=>{t.sessionId&&n.delete(t.sessionId);const e=r.get(t);void 0!==e&&o.get(e)===t&&o.delete(e),r.delete(t),ht(i)},_set:(t,e)=>{const s=o.get(t);if(s&&s!==e)throw new Error(`Actor with registry key '${String(t)}' already exists.`);o.set(t,e),r.set(e,t),ht(i)},get:t=>o.get(t),getAll:()=>Object.fromEntries(o),_hasInspectionObservers:()=>!1,_sendInspectionEvent:()=>{}});for(const[t,e]of o)e&&r.set(e,t);for(const t of Object.values(e)){if(!t)continue;t.sessionId&&n.set(t.sessionId,t);const e=t.registryKey;e&&(o.set(e,t),r.set(t,e))}return i}function pt(t){const e=ct.get(t);if(e)return e;const s=at.get(t);if(!s)return;const n=s();return ct.set(t,n),at.delete(t),n}function yt(t,e){const s=ct.get(t);if(s)return ct.set(e,s),!0;const n=at.get(t);return!!n&&(at.set(e,n),!0)}function vt(t,e,s=e.system,n){at.delete(t);const o=ft(s),r=n?pt(n):void 0,i=r?.actor===e?r:pt(t);if(i?.actor===e&&i.systemState.sourceSystem===s&&i.systemState.sourceVersion===o)return void ct.set(t,i);const c=function(t){const e=t._getRootActor?.(),s=t._peekChildren?.();if(!e&&!s){if(t._getRootActor&&t._peekChildren)return{};const e=new Map(t.children);return e.size?{children:e}:{}}return s?.size?{children:new Map(t.children)}:e?{root:e}:{}}(s);let a=c.children;const u=dt(s);let d=u.size?new Map(u):ut;for(const e of Object.values(function(t){return"children"in t&&t.children?t.children:{}}(t))){if(!e)continue;e.sessionId&&(a??=new Map).set(e.sessionId,e);const t=e.registryKey;t&&(d===ut&&(d=new Map),d.set(t,e))}ct.set(t,{actor:e,systemState:{...c,children:a,keyedActors:d,snapshot:{...s._snapshot},sourceSystem:s,sourceVersion:o}})}function mt(t,e,s=!0){const n=wt(t);return n?(n.snapshot=e,n.materialized&&(n.materialized.self._snapshot=e)):t.self._snapshot=e,s&&e&&"object"==typeof e&&vt(e,t.self),e}function gt(t){return!!wt(t)||!!t.self.options?._inert}function _t(t,e){mt(t,e,!1);const s=wt(t);bt.set(e,t);const n=()=>(vt(e,t.self,t.system),pt(e));return s&&(s.materialized?s.identityProvider=n:s.identityProvider??=n),function(t,e){ct.delete(t),at.set(t,e)}(e,n),e}const xt=Symbol(),bt=new WeakMap;function wt(t){return t[xt]}function $t(t){return wt(t).materialize()}const St={[k]:!0,get _parent(){const t=wt(this);return t.parentKnown?t.parent:$t(this).self._parent},get self(){return $t(this).self},get defer(){return $t(this).defer},get id(){return $t(this).id},get logger(){return $t(this).logger},get sessionId(){return $t(this).sessionId},get stopChild(){return $t(this).stopChild},get system(){return $t(this).system},get emit(){return $t(this).emit},get actionExecutor(){return $t(this).actionExecutor}};function Et(t,e,s,n,o){const r=e?.(),i=o??r?.actor,c=i?.system,a=i&&c?lt(c,s,o?void 0:r?.systemState):void 0,u=ds(t,{_inert:!0,...i?{id:i.id,_sessionId:i.sessionId}:{},...a?{_systemRef:{current:a}}:{}});return i?._parent&&(u._parent=i._parent),n&&(u._snapshot=n),Object.create(u._actorScope,{defer:{value:()=>{}},stopChild:{value:t=>t._stop()},actionExecutor:{value:()=>{}}})}function kt(t,e,s,n){const o=n??(e&&"object"==typeof e?bt.get(e):void 0),r=o?wt(o):void 0,i=e&&"object"==typeof e?function(t){return ct.get(t)}(e):void 0,c=r?.identityProvider??(e&&"object"==typeof e?function(t){const e=ct.get(t);return e?()=>e:at.get(t)}(e):void 0),a={snapshot:e,sourceRef:c,sourceChildren:be(e)?e.children:{},identityProvider:r?.identityProvider??c,parent:s?._parent??r?.parent??i?.actor._parent,parentKnown:!(!s&&!r?.parentKnown&&!i&&e),materialize:()=>a.materialized??=Et(t,a.sourceRef,a.sourceChildren,a.snapshot,s)};if(!a.identityProvider&&!e){const e={},n=a.sourceRef,o=a.sourceChildren;let r,i;const c=()=>r??=Et(t,n,o,void 0,s);a.materialize=()=>{const t=c();return void 0!==a.snapshot&&(t.self._snapshot=a.snapshot),a.materialized=t},a.identityProvider=()=>{if(i)return i;const t=c();return vt(e,t.self,t.system),i=pt(e)}}const u=Object.create(St);return u[xt]=a,u}function It(t,e,s){if("function"==typeof t)return t(s);const n=function(t,e){if("string"!=typeof t)return t;const s=e[t];return void 0!==s?s:rt(t)??t}(t,e);return"function"==typeof n?n(s):n}function At(t,e){return t._stateInputs?.[e]}function jt(t){return"atomic"===t.type||"final"===t.type||"choice"===t.type}function Tt(t){return Object.values(t.states).filter(t=>"history"!==t.type)}function Ot(t,e){const s=[];if(e===t)return s;let n=t.parent;for(;n&&n!==e;)s.push(n),n=n.parent;return s}function Mt(t){const e=new Set(t),s=new Set;for(const t of e)t.parent&&s.add(t.parent);for(const t of e)if("compound"!==t.type||s.has(t)){if("parallel"===t.type)for(const s of Tt(t))if(!e.has(s)){const t=qt(s);for(const s of t)e.add(s)}}else for(const s of qt(t))e.add(s);for(const t of e){let s=t.parent;for(;s&&!e.has(s);)e.add(s),s=s.parent}return e}function Nt(t,e){const s=Mt(e),n=new Map;for(const t of s)n.has(t)||n.set(t,[]),t.parent&&(n.has(t.parent)||n.set(t.parent,[]),n.get(t.parent).push(t));const o=t=>{const e=n.get(t);if(!e)return{};if("compound"===t.type){const t=e[0];if(!t)return{};if(jt(t))return t.key}const s={};for(const t of e)s[t.key]=o(t);return s};return o(t)}function Pt(t,e){return"compound"===e.type?Tt(e).some(e=>"final"===e.type&&t.has(e)):"parallel"===e.type?Tt(e).every(e=>Pt(t,e)):"final"===e.type}const Rt=t=>"#"===t[0];function Ct(t){switch(t.type){case"xstate.done.actor":case"xstate.error.actor":return`${t.type}.${t.actorId}`;case"xstate.snapshot.actor":return`xstate.snapshot.${t.actorId}`;case"xstate.done.state":return`xstate.done.state.${t.stateId}`;case"xstate.after":return`xstate.after.${t.delay}.${t.stateId}`;case"xstate.timeout":return`xstate.timeout.${t.stateId}`;case"xstate.timeout.actor":return`xstate.timeout.actor.${t.actorId}`;default:return}}function Dt(t,e,s){return!e.children[s]||!("sessionId"in t)||e.children[s]?.sessionId===t.sessionId}function Vt(t,e){const s=function(t){const e=Ct(t);return e?[t.type,e]:[t.type]}(e),n=s.flatMap(e=>t.transitions.get(e)??[]),o=[...t.transitions.keys()].filter(t=>!s.includes(t)&&s.some(e=>Fe(e,t))).sort((t,e)=>e.length-t.length).flatMap(e=>t.transitions.get(e));return n.length?[...n,...o]:o}function Kt(t,e,s,n){const o=t.entry;t.entry=(t,r)=>(r.raise(s(t),{id:e,delay:n(t)}),"function"==typeof o?o(t,r):void 0);const r=t.exit;t.exit=(t,s)=>(s.cancel(e),"function"==typeof r?r(t,s):void 0)}function zt(t,e,s){const n=Ue(s.target),o=s.reenter??!1,r=Bt(t,n);Ut(t,r);const i={...s,target:r,source:t,reenter:o,eventType:e,toJSON:()=>({...i,source:`#${t.id}`,target:r?r.map(t=>`#${t.id}`):void 0})};return i}function Wt(t,e){for(let s=t.parent;s;s=s.parent)if(s===e)return!0;return!1}function Lt(t,e){const s=new Set;for(let e=t;e;e=e.parent)s.add(e);for(let t=e;t;t=t.parent)if(s.has(t))return t}function Ut(t,e){if(e&&!(e.length<2))for(let s=0;s<e.length;s++)for(let n=s+1;n<e.length;n++){const o=e[s],r=e[n],i=Lt(o,r);if(o===r||Wt(o,r)||Wt(r,o)||"parallel"!==i?.type)throw new Error(`Invalid target set for '${t.id}'`)}}function Bt(t,e){if(void 0!==e)return e.map(e=>{if("string"!=typeof e)return e;if(Rt(e))return t.machine.getStateNodeById(e);const s="."===e[0];if(s&&!t.parent)return Gt(t,e.slice(1));const n=s?t.key+e:e;if(!t.parent)throw new Error(`Invalid target: "${e}"`);try{return Gt(t.parent,n)}catch(e){throw new Error(`Invalid transition for '${t.id}': ${e.message}`)}})}function Jt(t){const e=Ue(t.config.target);if(!e)return"parallel"===t.parent.type?{target:[t.parent],source:t,reenter:!1,eventType:""}:t.parent.initial;const s=e.map(e=>"string"==typeof e?Gt(t.parent,e):e);return Ut(t,s),{target:s,source:t,reenter:!1,eventType:""}}function Ft(t){return"history"===t.type}function qt(t){const e=new Set;!function t(s){if(!e.has(s))if(e.add(s),"compound"===s.type)t(s.initial.target[0]);else if("parallel"===s.type)for(const e of Tt(s))t(e)}(t);for(const s of e)for(const n of Ot(s,t))e.add(n);return e}function Ht(t,e){if(Rt(e))return t.machine.getStateNodeById(e);const s=t.states?.[e];if(!s)throw new Error(`Child state '${e}' does not exist on '${t.id}'`);return s}function Gt(t,e){if("string"==typeof e&&Rt(e))try{return t.machine.getStateNodeById(e)}catch{}const s=Pe(e).slice();let n=t;for(;s.length;){const t=s.shift();if(!t.length)break;n=Ht(n,t)}return n}function Xt(t,e){if("string"==typeof e){const s=t.states[e];if(!s)throw new Error(`State '${e}' does not exist on '${t.id}'`);return[t,s]}const s=Object.keys(e),n=new Array(s.length),o=[t.machine.root,t];for(let e=0;e<s.length;e++){const r=Ht(t,s[e]);n[e]=r,o.push(r)}for(let t=0;t<s.length;t++)o.push(...Xt(n[t],e[s[t]]));return o}function Zt(t,e,s,n,o,r){if("string"==typeof e){const i=Ht(t,e).next(s,n,o,r);return i&&i.length?i:t.next(s,n,o,r)}const i=Object.keys(e),c=i[0];if(1===i.length){const i=Zt(Ht(t,c),e[c],s,n,o,r);return i&&i.length?i:t.next(s,n,o,r)}const a=[];for(const c of i){const i=e[c];if(!i)continue;const u=Zt(Ht(t,c),i,s,n,o,r);u&&a.push(...u)}return a.length?a:t.next(s,n,o,r)}function Qt(t,e){let s=t;for(;s.parent&&s.parent!==e;)s=s.parent;return s.parent===e}function Yt(t,e){for(const s of t)if(Qt(s,e))return!0;return!1}function te(t,e){const s=t instanceof Set?t.size:Array.isArray(t)?t.length:void 0,n=e instanceof Set?e.size:Array.isArray(e)?e.length:void 0;void 0!==s&&void 0!==n&&n<s&&([t,e]=[e,t]);const o=t instanceof Set?t:new Set(t);for(const t of e)if(o.has(t))return!0;return!1}function ee(t,e,s,n){const o=new Set,r=new Map,i=t=>{let o=r.get(t);return o||(o=ie([t],e,s,n),r.set(t,o)),o};for(const e of t){let t=!1;const s=new Set;for(const n of o)if(te(i(e),i(n)))if(Qt(e.source,n.source))s.add(n);else{if("final"!==n.source.type||"final"===e.source.type){t=!0;break}s.add(n)}if(!t){for(const t of s)o.delete(t);o.add(e)}}return Array.from(o)}function se(t,e,s,n,o){let r;return i=>{if(!i.to)return ue(i,t,e,s,{resolveActions:n,selectionResult:o?.get(i)});let c=r?.get(i);return c||(c=ue(i,t,e,s,{resolveActions:n,selectionResult:o?.get(i)}),(r??=new Map).set(i,c)),c}}function ne(t,e,s){const n=e.historyValue,{targets:o}=s(t);if(!o)return[];const r=new Set;for(const t of o)if(Ft(t))if(n[t.id])for(const e of n[t.id])r.add(e);else for(const n of ne(Jt(t),e,s))r.add(n);else r.add(t);return[...r]}function oe(t,e){let s=t;for(;"parallel"===s.type;){const t=Tt(s).find(t=>e.every(e=>e===t||Qt(e,t)));if(!t)break;s=t}return s}function re(t,e,s){const n=ne(t,e,s),{reenter:o}=s(t);if(n.every(e=>e===t.source||Qt(e,t.source)))return o?t.source:oe(t.source,n);const[r,...i]=n.concat(t.source);for(const t of Ot(r,void 0))if(i.every(e=>Qt(e,t)))return o?t:oe(t,n);return o?void 0:oe(t.source.machine.root,n)}function ie(t,e,s,n){const o=new Set;for(const r of t){const{targets:t,reenter:i}=n(r);if(t?.length){const t=re(r,s,n);i&&r.source===t&&o.add(t);for(const s of e)Qt(s,t)&&o.add(s)}}return[...o]}function ce(t,e,s,n,o){return ae([{target:[...qt(t)],source:t,reenter:!0,eventType:null,toJSON:null}],e,s,n,!0,o)}function ae(t,e,s,n,o,r,i){const c=[];if(!t.length)return[e,c];{const a=new Set(e.nodes);let u=e.historyValue;const d=e.context,h=1===t.length?t:ee(t,a,e,se(e,n,s,!1,i)),l=se(e,n,s,!0,i),p=h.some(t=>{const{targets:e,reenter:s}=l(t);return!!e?.length||!!s}),y=(t,o,r,i)=>{if(2===t.length){const c=[],a=[];let u;const d=J(s,c,a,!0),h=I(s)?j({context:o,event:n,children:r,actions:e.machine.sources.actions,actors:e.machine.sources.actors,guards:e.machine.sources.guards,delays:e.machine.sources.delays,input:i},s):{context:o,event:n,parent:s.self._parent,self:s.self,children:r,system:s.system,actions:e.machine.sources.actions,actors:e.machine.sources.actors,guards:e.machine.sources.guards,delays:e.machine.sources.delays,input:i},f=t(h,d);return void 0!==f?.context&&(u=W(o,f.context)),[c,u,a]}return[[Object.assign((e,n)=>t(I(s)?j({context:e.context,event:e.event,output:e.output,children:e.children,actions:e.actions,actors:e.actors,input:i},s):{...e,input:i},n),"_special"in t?{_special:!0}:{})],void 0,void 0]};let v=e;const m=(t,e)=>{const n=[],o=J(s,n,[]);for(const s of t.invoke){const t=e[s.id];t&&o.stop(t)}return n},_=()=>{const t=ie(h,a,e,l);let o;t.sort((t,e)=>e.order-t.order);const i=[...a];for(const e of t)for(const t of Object.values(e.states)){if("history"!==t.type)continue;const s="deep"===t.history?t=>jt(t)&&Qt(t,e):t=>t.parent===e;o??={...u},o[t.id]=i.filter(s)}for(const o of t){const t=At(e,o.id),[i,u,d]=o.exit?y(o.exit,v.context,e.children,t):[[],void 0,void 0];d?.length&&r.push(...d),u&&(v=Te(v,{context:u}));const[h,f]=tt(v,n,s,i);v=h,c.push(...f);const l=m(o,v.children);if(l.length){const[t,e]=tt(v,n,s,l);v=t,c.push(...e)}a.delete(o)}u=o||u};!o&&p&&_();let x=v.context;const b=[],w=[];for(const t of h){t.actions&&b.push(...Ve(t.actions));const e=l(t);void 0!==e.context&&(x=W(x,e.context)),e.actions&&b.push(...e.actions),e.internalEvents&&w.push(...e.internalEvents)}w.length&&r.push(...w);const $=()=>{const t=t=>{const e=v.machine.root;let o;if(void 0!==t.output&&t.parent){const i=r.find(t=>"xstate.done.state"===t.type&&t.stateId===e.id);o=i&&t.parent===e?i.output:Ke(t.output,v.context,n,s.self,_[t.id])}else if("parallel"===t.type){const e=r.find(e=>"xstate.done.state"===e.type&&e.stateId===t.id);o=e?.output}return void 0===e.output?t.parent===e?o:void 0:Ke(e.output,v.context,f(t.id,o),s.self)},i=new Set,d=new Set,p=(t,e)=>{for(const s of t)if(e&&!Qt(s,e)||i.add(s),"parallel"===s.type)for(const t of Tt(s))Yt(i,t)||(i.add(t),m(t))},m=t=>{if(Ft(t))if(u[t.id]){const e=u[t.id];for(const t of e)i.add(t),m(t);for(const s of e)p(Ot(s,t.parent),void 0)}else{const e=Jt(t),{targets:s}=l(e);for(const n of s??[])i.add(n),e===t.parent?.initial&&d.add(t.parent),m(n);for(const e of s??[])p(Ot(e,t.parent),void 0)}else{if("compound"===t.type){const[e]=l(t.initial).targets;return Ft(e)||(i.add(e),d.add(e)),m(e),void p(Ot(e,t),void 0)}if("parallel"===t.type)for(const e of Tt(t))Yt(i,e)||(i.add(e),d.add(e),m(e))}};for(const t of h){const s=re(t,e,l),{targets:n,reenter:o}=l(t);for(const e of n??[])Ft(e)||t.source===e&&t.source===s&&!o||(i.add(e),d.add(e)),m(e);const r=ne(t,e,l);for(const e of r){const n=Ot(e,s);"parallel"===s?.type&&n.push(s),p(n,!t.source.parent&&o?void 0:s)}o&&s===t.source&&i.add(t.source)}o&&d.add(e.machine.root);const _={...e._stateInputs};let x=!1;for(const t of h){const{targets:e,input:s}=l(t);if(s&&e)for(const t of e)_[t.id]=s,x=!0}const b=new Set,w={...v.children};for(const o of[...i].sort((t,e)=>t.order-e.order)){a.add(o);const i=[];let u=!1;for(const t of o.invoke){u=!0;let o=t.logic;"function"==typeof o&&(o=o({actors:e.machine.sources.actors,context:v.context,event:n,self:s.self}));const r="string"==typeof o?Je(e.machine,o):o;if(!r)throw new Error(`Actor logic '${"string"==typeof o?o:"inline"}' not implemented`);const c="function"==typeof t.input?t.input({self:s.self,context:v.context,event:n,output:ze(n)}):t.input,a=s.system.createActorRef(r,{...t,input:c,parent:s.self,syncSnapshot:!!t.onSnapshot});i.push({action:g["@xstate.spawn"],args:[a]}),t.id&&(w[t.id]=a)}u&&(v=Te(v,{children:w}));let h=v.context,l=!1;const p=_[o.id];if(o.entry){const[t,e,s]=y(o.entry,h,w,p);i.push(...t),s?.length&&r.push(...s),e&&(h=e,l=!0)}if(l&&(v.context=h),d.has(o)){const{actions:t,input:e}=ue(o.initial,v,n,s);if(t&&i.push(...t),e&&o.initial?.target)for(const t of o.initial.target)_[t.id]=e,x=!0}const[m,$]=tt(v,n,s,i);if(v=m,i.length=0,c.push(...$),"final"!==o.type)continue;const S=o.parent;let E="parallel"===S?.type?S:S?.parent,k=E||o;for("compound"===S?.type&&r.push(f(S.id,void 0!==o.output?Ke(o.output,v.context,n,s.self,p):void 0));"parallel"===E?.type&&!b.has(E)&&Pt(a,E);){b.add(E);const t={};for(const e of Tt(E)){if("final"===e.type){t[e.key]=void 0!==e.output?Ke(e.output,v.context,n,s.self,_[e.id]):void 0;continue}if("parallel"===e.type){const s=r.find(t=>"xstate.done.state"===t.type&&t.stateId===e.id);t[e.key]=s?.output;continue}const o=Tt(e).find(t=>"final"===t.type&&a.has(t));t[e.key]=void 0!==o?.output?Ke(o.output,v.context,n,s.self,_[o.id]):void 0}r.push(f(E.id,t)),k=E,E=E.parent}E||(v=Te(v,{status:"done",output:t(k)}))}x&&(v=Te(v,{_stateInputs:_}))},[S,E]=tt(v,n,s,b);v=S,c.push(...E),x&&x!==e.context&&(v=Te(v,{context:x})),(o||p)&&$();const k=[...a];if("done"===v.status){const t=[];k.sort((t,e)=>e.order-t.order).forEach(e=>{if(e.exit){const s=At(v,e.id),[n,,o]=y(e.exit,v.context,v.children,s);t.push(...n),o?.length&&r.push(...o)}});const[e,o]=tt(v,n,s,t);v=e,c.push(...o);const[i,a]=ye(v,n,s);v=i,c.push(...a);const[u,d]=ve(v,n,s);v=u,c.push(...d)}return u===e.historyValue&&e.nodes.length===a.size&&e.nodes.every(t=>a.has(t))?v.context!==d?[v===e?Te(v):v,c]:[v,c]:[Te(v,{_nodes:k,historyValue:u}),c]}}function ue(t,e,s,n,o){let r;const i=()=>r??=I(n)?j({context:e.context,event:s,output:ze(s),value:e.value,children:e.children,actions:e.machine.sources.actions,actors:e.machine.sources.actors,guards:e.machine.sources.guards,delays:e.machine.sources.delays,input:At(e,t.source.id)},n):{context:e.context,event:s,output:ze(s),value:e.value,children:e.children,system:n.system,parent:n.self._parent,self:n.self,actions:e.machine.sources.actions,actors:e.machine.sources.actors,guards:e.machine.sources.guards,delays:e.machine.sources.delays,input:At(e,t.source.id)};if(t.to){const r=[],c=[],a=o?.selectionResult?.reusable?o.selectionResult.result:t.to(i(),J(n,r,c,!0,o?.resolveActions??!0)),u=a?.target?Bt(t.source,Ve(a.target)):void 0,d=a?.input??("function"==typeof t.input?t.input({context:e.context,event:s,output:ze(s)}):t.input);return{targets:u,context:a?.context,reenter:a?.reenter,actions:r,internalEvents:c,input:d}}const c="function"==typeof t.input?t.input({context:e.context,event:s,output:ze(s)}):t.input,a="function"==typeof t.context?t.context(i()):t.context;return{targets:t.target,context:a,reenter:t.reenter,actions:void 0,internalEvents:void 0,input:c}}function de(t,e,n,r,c=[]){let a=t;const u=c.slice();function d(t){if("xstate.done.actor"!==t.type&&"xstate.error.actor"!==t.type)return;const{actorId:e,sessionId:s}=t;if(!e)return;const o=a.children[e];if(!o||o.sessionId!==s)return;const r={...a.children};if(delete r[e],n.system._unregister(o),a=Te(a,{children:r}),u.length){const[,t]=u.at(-1);u[u.length-1]=[a,t]}else u.push([a,[]])}function h(){const e=Q(u.flatMap(([,t])=>t)),s=("active"===t.status||c.length>0)&&("done"===a.status||"error"===a.status);if(e.length||s){const t=s?[...e,X(n,a)]:e;if(u.length){const[e,s]=u.at(-1);u[u.length-1]=[e,[...s,...t]]}else u.push([a,t])}return{snapshot:a,microsteps:u}}function f(t,o){if(!gt(n)&&(e.type===s||(n.system._hasInspectionObservers?.()??1))){const t=n.self._collectedMicrosteps||[];t.push(...o),n.self._collectedMicrosteps=t}u.push(t)}if(e.type===o){const[t,s]=ye(a,e,n),[o,r]=ve(t,e,n);return a=Te(o,{status:"stopped"}),f([a,[...s,...r]],[]),h()}let l=function(t,e){if("xstate.done.actor"===t.type||"xstate.error.actor"===t.type||"xstate.snapshot.actor"===t.type||"xstate.done.state"===t.type||"xstate.after"===t.type||"xstate.timeout"===t.type||"xstate.timeout.actor"===t.type)return t;const s=(e,s,n)=>t.type.startsWith(e)?{...t,type:s,[n]:t[n]??t.type.slice(e.length)}:void 0,n=s("xstate.done.actor.","xstate.done.actor","actorId")??s("xstate.error.actor.","xstate.error.actor","actorId")??s("xstate.snapshot.","xstate.snapshot.actor","actorId")??s("xstate.done.state.","xstate.done.state","stateId")??s("xstate.timeout.actor.","xstate.timeout.actor","actorId")??s("xstate.timeout.","xstate.timeout","stateId");if(n)return n;const o="xstate.after.";if(!t.type.startsWith(o))return t;const r=[...e.idMap.keys()].sort((t,e)=>e.length-t.length).find(e=>t.type.endsWith(`.${e}`));if(!r)return t;const i=t.type.slice(13,-r.length-1);return{...t,type:"xstate.after",delay:Number.isNaN(+i)?i:+i,stateId:r}}(e,t.machine);if(e.type===i){const t=a.timers[e.id];if(!t)return h();const s={...a.timers};if(delete s[t.id],a=Te(a,{timers:s}),"@xstate.raise"===t.type)r.push(t.event),f([a,[]],[]);else{const e="self"===t.target?n.self:t.target;f([a,[G(n,e,t.event)]],[])}}if(l.type!==s&&l.type!==i){const e=l,s=function(t){return t.type.startsWith("xstate.error.")}(e),o=new Map,i=a.machine.getTransitionData(a,e,n,o);if(s&&!i.length)return"xstate.error.actor"!==e.type||Dt(e,a,e.actorId)?(a=Te(t,{status:"error",error:e.error}),f([a,[]],[]),d(e),h()):h();const c=ae(i,t,n,l,!1,r,o);a=c[0],f(c,i),d(e)}if(!r.length&&!1===t.machine._hasEventlessTransitions)return h();let p=!0;const y=t.machine.options?.maxIterations??1/0;let v=0,m=0;for(;"active"===a.status;){if(m++,m>1e3)throw new Error("Microstep count exceeded 1000");if(v++,v>y)throw new Error(`Infinite loop detected (>${y} microsteps)`);let t,e=p?me(a,l,n):[];const s=e.length?a:void 0;if(!e.length){if(!r.length)break;l=r.shift(),t=new Map,e=a.machine.getTransitionData(a,l,n,t)}const o=ae(e,a,n,l,!1,r,t);a=o[0],p=a!==s,f(o,e),d(l)}return h()}function he(t,e,s,n,o){return!!t.to&&pe(t.to,e,s,n,o,n.machine.sources,t.source.id).enabled}const fe=()=>{throw Ge};let le;function pe(t,e,s,n,o,r,i){let c;const a=A(o);a&&Xe.push(a);try{c=t(j({context:e,event:s,output:ze(s),value:n.value,children:n.children,actions:r.actions,actors:r.actors,guards:r.guards,delays:r.delays,input:At(n,i)},o),le??=et({emit:fe,cancel:fe,log:fe,raise:fe,spawn:fe,sendTo:fe,stop:fe,listen:fe,subscribeTo:fe},fe))}catch(t){if(t===Ge)return{enabled:!0,result:void 0,reusable:!1};throw t}finally{a&&Xe.pop()}return{enabled:void 0!==c,result:c,reusable:!0}}function ye(t,e,s){let n;if(!t.children||0===(n=Object.values(t.children).filter(Boolean)).length)return[t,[]];const o=[],r=J(s,o,[]);for(const t of n)r.stop(t);return tt(t,e,s,o)}function ve(t,e,s){const n=Object.keys(t.timers);if(!n.length)return[t,[]];const o=[],r=J(s,o,[]);for(const t of n)r.cancel(t);return tt(t,e,s,o)}function me(t,e,s){const n=new Set,o=t.nodes.filter(jt);for(const r of o)t:for(let o=r;o;o=o.parent)if(o.always)for(const r of o.always)if(ge(r,e,t,o,s)){n.add(r);break t}return ee(Array.from(n),new Set(t.nodes),t,se(t,e,s,!1))}function ge(t,e,s,n,o,r){if(t.matches&&!function(t,e){return Object.entries(e).every(([e,s])=>Object.is(t[e],s))}(e,t.matches))return!1;if(t._eventMatcher&&!t._eventMatcher(e,s))return!1;if(t.guard){const r=function(t,e){if(!I(e)){const s=e.self;return Object.assign(t,{self:s,parent:s._parent})}return Object.defineProperties(t,{self:{enumerable:!0,get:()=>e.self},parent:{enumerable:!0,get:()=>A(e)}}),t}({context:s.context,event:e,output:ze(e),children:s.children,actions:n.machine.sources.actions,actors:n.machine.sources.actors,guards:n.machine.sources.guards,delays:n.machine.sources.delays,_snapshot:s},o);if(!t.guard(r))return!1}if(t.to){const i=pe(t.to,s.context,e,s,o,n.machine.sources,t.source.id);return r?.set(t,i),i.enabled}return!0}const _e=Object.freeze({});function xe(t){return t===_e||t&&Object.keys(t).length?t:_e}function be(t){return!!t&&"object"==typeof t&&"machine"in t&&"value"in t}const we=function(t){return Ne(t,this.value)},$e=function(t){return this.tags.has(t)},Se=function(t){return this.machine?._canTransition(this,t)??!1},Ee=function(){const{nodes:t,_stateInputs:e,tags:s,machine:n,getMeta:o,getInputs:r,toJSON:i,can:c,hasTag:a,matches:u,...d}=this;return{...d,tags:Array.from(s)}},ke=function(){const t={};for(const e of this.nodes)void 0!==e.meta&&(t[e.id]=e.meta);return t},Ie=function(){return this._stateInputs};function Ae(t){const e=new Set;for(const s of t)for(const t of s.tags)e.add(t);return e}function je(t,e,s){const n={status:t.status,output:t.output,error:t.error,machine:e,context:t.context,nodes:t._nodes,value:t.value??Nt(e.root,t._nodes),tags:Ae(t._nodes),children:xe(t.children),timers:xe(t.timers),historyValue:xe(t.historyValue),_stateInputs:xe(t._stateInputs),_nextTimerId:t._nextTimerId??0,matches:we,hasTag:$e,can:Se,getMeta:ke,getInputs:Ie,toJSON:Ee};return s&&vt(n,s),n}function Te(t,e={}){const s={...t,...e};if((e._nodes??t.nodes)===t.nodes){const e={status:s.status,output:s.output,error:s.error,machine:t.machine,context:s.context,nodes:t.nodes,value:t.value,tags:t.tags,children:xe(s.children),timers:xe(s.timers),historyValue:xe(s.historyValue),_stateInputs:xe(s._stateInputs),_nextTimerId:s._nextTimerId??0,matches:we,hasTag:$e,can:Se,getMeta:ke,getInputs:Ie,toJSON:Ee};return yt(t,e),e}const n=je({...s,value:void 0},t.machine);return yt(t,n),n}function Oe(t){const e={};for(const s in t){const n=t[s];Array.isArray(n)&&(e[s]=n.map(t=>({id:t.id})))}return e}function Me(t){let e;for(const s in t){const n=t[s];if(n&&"object"==typeof n)if("sessionId"in n&&"send"in n&&"ref"in n)e??=Array.isArray(t)?t.slice():{...t},e[s]={xstate$$type:ss,id:n.id};else{const o=Me(n);o!==n&&(e??=Array.isArray(t)?t.slice():{...t},e[s]=o)}}return e??t}function Ne(t,e){const s=Re(t),n=Re(e);return"string"==typeof n?"string"==typeof s&&n===s:"string"==typeof s?s in n:Object.keys(s).every(t=>t in n&&Ne(s[t],n[t]))}function Pe(t){if(We(t))return t;const e=[];let s="";for(let n=0;n<t.length;n++){switch(t.charCodeAt(n)){case 92:s+=t[n+1],n++;continue;case 46:e.push(s),s="";continue}s+=t[n]}return e.push(s),e}function Re(t){if(be(t))return t.value;if("string"!=typeof t)return t;return Ce(Pe(t))}function Ce(t){if(1===t.length)return t[0];const e={};let s=e;for(let e=0;e<t.length-1;e++)if(e===t.length-2)s[t[e]]=t[e+1];else{const n=s;s={},n[t[e]]=s}return e}function De(t){return We(t)?t:[t]}function Ve(t){return void 0===t?[]:De(t)}function Ke(t,e,s,n,o){if("function"==typeof t){return t({context:e,event:s,output:ze(s),self:n,input:o})}return t}function ze(t){if(function(t){return"xstate.done.actor"===t.type||"xstate.done.state"===t.type}(t)){return t.output}}function We(t){return Array.isArray(t)}function Le(t){return De(t).map(t=>void 0===t||"string"==typeof t?{target:t}:"function"==typeof t?{to:t}:t)}function Ue(t){if(void 0!==t&&""!==t)return Ve(t)}function Be(t,e,s){const n="object"==typeof t,o=n?t:void 0;return{next:(n?t.next:t)?.bind(o),error:(n?t.error:e)?.bind(o),complete:(n?t.complete:s)?.bind(o)}}function Je(t,e){const s=e.match(/^xstate\.invoke\.(\d+)\.(.*)/);if(!s)return t.sources.actors[e];const[,n,o]=s,r=t.getStateNodeById(o).config.invoke,i=(Array.isArray(r)?r[n]:r).src;return"string"==typeof i?t.sources.actors[i]:i}function Fe(t,e){if(e===t)return!0;if("*"===e)return!0;if(!e.endsWith(".*"))return!1;const s=e.split("."),n=t.split(".");for(let t=0;t<s.length;t++){const e=s[t],o=n[t];if("*"===e){return t===s.length-1}if(e!==o)return!1}return!0}let qe,He=0;const Ge=new Error("Transition effect"),Xe=[];function Ze(){return qe??=function(){let t;try{t=globalThis.crypto}catch{}if(t?.getRandomValues)try{const e=new Uint32Array(4);return t.getRandomValues(e),Array.from(e,t=>t.toString(36).padStart(7,"0")).join("")}catch{}if(t?.randomUUID)try{return t.randomUUID().replaceAll("-","")}catch{}return`xstate-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}(),`${qe}:${(He++).toString(36)}`}const Qe=Object.freeze({});function Ye(t,e){return`${t.sessionId}.${e}`}class ts{get children(){const t=this._children??=new Map;return this._getRootActor()&&t.set(this._rootActor.sessionId,this._rootActor),t}set children(t){this._children=t}_getRootActor(){return this._rootActor._isRunning()?this._rootActor:void 0}_peekChildren(){return this._children}get keyedActors(){return this._keyedActors??=new Map}set keyedActors(t){this._keyedActors=t}get reverseKeyedActors(){return this._reverseKeyedActors??=new WeakMap}set reverseKeyedActors(t){this._reverseKeyedActors=t}_peekKeyedActors(){return this._keyedActors}constructor(t,e){this._rootActor=t,this._identity={systemId:Ze(),nextSessionId:0},this._snapshot=void 0,this._snapshotVersion=0,this.scheduler=this,this._clock=void 0,this._logger=void 0,this.createActorRef=void 0;const s="object"==typeof e.snapshot&&null!==e.snapshot?e.snapshot:void 0;this._clock=e.clock,this._logger=e.logger,this.createActorRef=e.createActorRef,this._snapshot={_scheduledTimers:s?.scheduler??Qe,_nextActorId:s?._nextActorId??0}}_recordSent(t,e,s,n,o){if(!this._inspectionObservers?.size||!t)return;const r=t;(r._collectedSent??=[]).push({targetRef:e,targetId:e.id,event:s,delay:n,id:o})}schedule(t,e,s){const n=Ye(t,e);void 0!==this._timerMap?.[n]&&this.cancel(t,e);const o=t.getSnapshot()?.timers?.[e];if(o){const n="self"===o.target?t:o.target;this._recordSent(t,n,o.event,s,e)}const r=this._clock.now?.()??Date.now(),c={source:t,delay:s,id:e,scheduledAt:r,dueAt:r+s},a=Ye(t,e);this._snapshot._scheduledTimers===Qe&&(this._snapshot._scheduledTimers={}),this._snapshot._scheduledTimers[a]=c,ht(this);const u=this._clock.setTimeout(()=>{this._timerMap&&delete this._timerMap[a],delete this._snapshot._scheduledTimers[a],ht(this),this._deliver(t,t,{type:i,id:e})},s);(this._timerMap??={})[a]=u}cancel(t,e){const s=Ye(t,e),n=this._timerMap?.[s];this._timerMap&&delete this._timerMap[s],this._snapshot._scheduledTimers!==Qe&&delete this._snapshot._scheduledTimers[s],ht(this),void 0!==n&&this._clock.clearTimeout(n)}cancelAll(t){for(const e in this._snapshot._scheduledTimers){const s=this._snapshot._scheduledTimers[e];s.source===t&&this.cancel(t,s.id)}}_deliver(t,e,s){const n=e,o=n.logic;if("function"==typeof o?.isInternalEventType&&o.isInternalEventType(s.type)&&t!==e)throw new Error(`Internal event "${s.type}" cannot be sent to actor "${e.id}" from outside.`);n._lastSourceRef=t,e._send(s)}_register(t,e){return e===this._rootActor?this._children?.set(t,e):(this._children??=new Map).set(t,e),ht(this),t}_unregister(t){let e;t===this._rootActor?(e=void 0!==this._getRootActor(),e=(this._children?.delete(t.sessionId)??!1)||e):e=this._children?.delete(t.sessionId)??!1;const s=this._reverseKeyedActors?.get(t);void 0!==s&&(this._keyedActors?.get(s)===t&&(this._keyedActors.delete(s),e=!0),this._reverseKeyedActors?.delete(t)),e&&ht(this)}get(t){return this._keyedActors?.get(t)}getAll(){return Object.fromEntries(this._keyedActors?.entries()??[])}_set(t,e){const s=this._keyedActors?.get(t);if(s&&s!==e)throw new Error(`Actor with registry key '${t}' already exists.`);(this._keyedActors??=new Map).set(t,e),(this._reverseKeyedActors??=new WeakMap).set(e,t),s!==e&&ht(this)}inspect(t){const e=Be(t);return(this._inspectionObservers??=new Set).add(e),{unsubscribe:()=>{this._inspectionObservers?.delete(e)}}}_hasInspectionObservers(){return!!this._inspectionObservers?.size}_sendInspectionEvent(t){if(!this._inspectionObservers?.size)return;const e={...t,rootId:this._rootActor.sessionId};this._inspectionObservers.forEach(t=>t.next?.(e))}spawnActor(){}startActor(t){t.start()}stopActor(t){t._stop()}terminateActor(t,e){t._terminate(e)}sendEvent(t,e,s){this._recordSent(t,e,s),this._deliver(t,e,s)}emitEvent(t,e){t._emit(e)}scheduleTimer(t,e,s){this.schedule(t,e,s)}cancelTimer(t,e){this.cancel(t,e)}cancelAllTimers(t){this.cancelAll(t)}_relay(t,e,s){if(Xe.length&&Xe.includes(e))throw Ge;this.sendEvent(t,e,s)}getSnapshot(){return{_scheduledTimers:{...this._snapshot._scheduledTimers}}}start(){const t=this._snapshot._scheduledTimers;let e=!0;for(const s in t){e&&(this._snapshot._scheduledTimers={},e=!1);const{source:n,dueAt:o,id:r}=t[s];this.scheduleTimer(n,r,Math.max(0,o-(this._clock.now?.()??Date.now())))}}}let es=!1;const ss=1,ns=Object.freeze([]);let os=function(t){return t[t.NotStarted=0]="NotStarted",t[t.Running=1]="Running",t[t.Stopped=2]="Stopped",t}({});const rs=Object.freeze({clock:{setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t)},logger:console.log.bind(console)});function is(t,e){try{t?.(e)}catch(t){y(t)}}function cs(t,e){if(t?.length)for(const s of t)e.actionExecutor(s)}function as(t,e){return new us(t,e)}class us{get trigger(){return this._trigger??=new Proxy({},{get:(t,e)=>t=>{this.send({...t,type:e})}})}get send(){return this._boundSend??=this._sendPublic.bind(this)}constructor(t,e){this.logic=t,this._snapshot=void 0,this.clock=void 0,this.options=void 0,this.id=void 0,this._boundProcess=void 0,this.mailbox=void 0,this._mailboxStarted=!1,this.observers=void 0,this.eventListeners=void 0,this.logger=void 0,this._processingStatus=os.NotStarted,this._forceDeferredActions=!1,this._parent=void 0,this._syncSnapshot=void 0,this.ref=void 0,this._actorScope=void 0,this._lastSourceRef=void 0,this._collectedMicrosteps=void 0,this._collectedActions=void 0,this._collectedSent=void 0,this._initialEffects=void 0,this.registryKey=void 0,this.sessionId=void 0,this.system=void 0,this._trigger=void 0,this._boundSend=void 0,this.src=void 0,this._deferred=void 0,this._restored=!1;const s=e?{...rs,...e}:rs,{clock:n,logger:o,parent:r,syncSnapshot:i,id:c,registryKey:a,inspect:u}=s;var d;this.system=r?r.system:s._systemRef?.current??function(t,e){return new ts(t,e)}(this,{clock:n,logger:o,snapshot:s.snapshot??s.state,createActorRef:as}),r||!s._systemRef||s._systemRef.current||(s._systemRef.current=this.system),u&&!r&&this.system.inspect(Be(u)),this.sessionId=s._sessionId??`${(d=this.system)._identity.systemId}:${d._identity.nextSessionId++}`,this.id=function(t,e){if(void 0!==e){const s=/^x:(\d+)$/.exec(e),n=s?Number(s[1]):void 0;if(void 0!==n&&Number.isSafeInteger(n)){const e=Math.max(t._snapshot._nextActorId,n+1);e!==t._snapshot._nextActorId&&(t._snapshot._nextActorId=e,ht(t))}return e}const s="x:"+t._snapshot._nextActorId++;return ht(t),s}(this.system,c),this.logger=e?.logger??this.system._logger,this.clock=e?.clock??this.system._clock,this._parent=r,this._syncSnapshot=i,this.options=s,this.src=s.src??t,this.ref=this,this._actorScope=this,a&&(this.registryKey=a,this.system._set(a,this)),this._collectedMicrosteps=void 0;const h=e?.snapshot??e?.state;this._restored=void 0!==h;try{if(h)this._setSnapshot(this.logic.restoreSnapshot?this.logic.restoreSnapshot(h,this._actorScope):h);else if(e?._inert);else{const[t,e]=Z(this._actorScope,void 0,this.logic.initialTransition(this.options?.input,this._actorScope));this._setSnapshot(t),this._initialEffects=e.length?e:void 0}}catch(t){this._setSnapshot({status:"error",output:void 0,error:t}),this._deferred&&(this._deferred.length=0)}a&&"active"!==this._snapshot.status&&this.system._unregister(this),(this.system._hasInspectionObservers?.()??1)&&this.system._sendInspectionEvent({type:"@xstate.actor",actorRef:this,parentRef:this._parent,id:this.id,src:this.src,snapshot:this._snapshot})}_getLogger(){return this.logger}get self(){return this}get defer(){const t=t=>this._defer(t);return Object.defineProperty(this,"defer",{value:t}),t}get stopChild(){const t=t=>this._stopChild(t);return Object.defineProperty(this,"stopChild",{value:t}),t}get emit(){const t=t=>this.system.emitEvent(this,t);return Object.defineProperty(this,"emit",{value:t}),t}get actionExecutor(){const t=t=>this._executeAction(t);return Object.defineProperty(this,"actionExecutor",{value:t}),t}_isRunning(){return this._processingStatus===os.Running}_defer(t){(this._deferred??=[]).push(t)}_stopChild(t){if(t._parent!==this)throw new Error(`Cannot stop non-child actor ${t.id}`);t._stop()}_executeAction(t){const e=()=>{(this.system._hasInspectionObservers?.()??1)&&(this._collectedActions??=[]).push({type:t.type,params:t.params});const e=es;try{es=!0,t.exec()}finally{es=e}};this._processingStatus!==os.Running||this._forceDeferredActions?(this._deferred??=[]).push(e):e()}_setSnapshot(t){const e=this._snapshot;this._snapshot=t,vt(t,this,this.system,e)}_setErrorSnapshot(t,e=this._snapshot){this._setSnapshot({...e,status:"error",error:t})}_recoverOrError(t,e){return!!this._tryHandleExecutionError(t,e)||(this._setErrorSnapshot(t),this._error(t),!1)}_tryHandleExecutionError(t,e=this._snapshot){const s=this.logic.getExecutionErrorEvent?.(e,t);if(!s)return!1;try{const[t,n]=Z(this._actorScope,e,this.logic.transition(e,s,this._actorScope));return this._setSnapshot(t),cs(n,this._actorScope),this.update(t,s),!0}catch{return!1}}_next(t){for(const e of this.observers??ns)is(e.next,t)}update(t,e){this._setSnapshot(t);const s=this._deferred;for(let e=0;e<(s?.length??0);e++){const n=s[e];try{n()}catch(e){if(s.length=0,this._tryHandleExecutionError(e,t))return;this._setErrorSnapshot(e,t),this._error(e);break}}if(s&&(s.length=0),"active"===this._snapshot.status)this._next(t);this._inspectTransition(this._snapshot,e)}_inspectTransition(t,e){(this.system._hasInspectionObservers?.()??1)&&this.system._sendInspectionEvent({type:"@xstate.transition",actorRef:this,event:e,sourceRef:this._lastSourceRef,targetRef:this,snapshot:t,microsteps:this._collectedMicrosteps??ns,actions:this._collectedActions??ns,sent:this._collectedSent??ns,eventType:e.type}),this._collectedMicrosteps=void 0,this._collectedActions=void 0,this._collectedSent=void 0}_flushInitialEffects(){if(!this._initialEffects?.length)return!0;this._forceDeferredActions=!0;try{return cs(this._initialEffects,this._actorScope),this._initialEffects=void 0,!0}catch(t){return this._initialEffects=void 0,this._deferred&&(this._deferred.length=0),this._recoverOrError(t),"active"===this._snapshot.status}finally{this._forceDeferredActions=!1}}subscribe(t,e,s){const n=Be(t,e,s);if(this._processingStatus!==os.Stopped)(this.observers??=new Set).add(n);else switch(this._snapshot.status){case"done":is(n.complete);break;case"error":{const t=this._snapshot.error;n.error?is(n.error,t):y(t);break}}return{unsubscribe:()=>{this.observers?.delete(n)}}}on(t,e){let s=this.eventListeners?.get(t);return s||(s=new Set,(this.eventListeners??=new Map).set(t,s)),s.add(e),{unsubscribe:()=>{s.delete(e)}}}select(t,e=Object.is){return{subscribe:(s,n,o)=>{const r=Be(s,n,o);let i=t(this.getSnapshot());return this.subscribe({next:s=>{const n=t(s);e(i,n)||(i=n,r.next?.(n))},error:r.error,complete:r.complete})},get:()=>t(this.getSnapshot())}}start(){if(this._processingStatus===os.Running)return this;if(this._processingStatus===os.Stopped)return this;this._syncSnapshot&&this.subscribe({next:t=>{"active"===t.status&&this.system._relay(this,this._parent,{type:"xstate.snapshot.actor",actorId:this.id,sessionId:this.sessionId,snapshot:t})},error:()=>{}}),this.system._register(this.sessionId,this),this.registryKey&&this.system._set(this.registryKey,this),this._processingStatus=os.Running,this._lastSourceRef=this._parent;switch(this._snapshot.status){case"done":return this._restored?(this._next(this._snapshot),this._stopProcedure(),this._complete(),this):this._flushInitialEffects()?(this.update(this._snapshot,p(this.options.input)),this):this;case"error":return this._error(this._snapshot.error),this}if(this._parent||this.system.start(),!this._flushInitialEffects())return this;if(this.logic.start)try{this.logic.start(this._snapshot,this._actorScope,{restored:this._restored})}catch(t){return this._setErrorSnapshot(t),this._error(t),this}if(this._restored||this._deferred?.length||this.observers?.size||(this.system._hasInspectionObservers?.()??1)?this.update(this._snapshot,p(this.options.input)):(function(t,e,s){const n=ct.get(t),o=ft(s);return n?.actor===e&&n.systemState.sourceSystem===s&&n.systemState.sourceVersion+1===o&&s._getRootActor?.()===e&&!s._peekChildren?.()&&(n.systemState.root=e,n.systemState.sourceVersion=o,!0)}(this._snapshot,this,this.system)||this._setSnapshot(this._snapshot),this._collectedMicrosteps=void 0,this._collectedActions=void 0,this._collectedSent=void 0),this._restored){const t=this._snapshot.timers??{};for(const e of Object.values(t))this.system.scheduleTimer(this,e.id,e.delay);this._restored=!1}return this._mailboxStarted=!0,this.mailbox?.start(),this}_process(t){let e,s;try{e=Z(this._actorScope,this._snapshot,this.logic.transition(this._snapshot,t,this._actorScope))}catch(t){s={err:t}}if(s)return this._collectedMicrosteps=void 0,this._collectedActions=void 0,this._collectedSent=void 0,void(this._recoverOrError(s.err)||this._inspectTransition(this._snapshot,t));if(!e)return;let n=this._snapshot;try{const[s,o]=e;n=s,this._setSnapshot(n),cs(o,this._actorScope),this.update(n,t)}catch(e){return void(this._recoverOrError(e,n)||this._inspectTransition(this._snapshot,t))}t.type===o&&(this._stopProcedure(),this._complete())}_emit(t){for(const e of[this.eventListeners?.get(t.type),this.eventListeners?.get("*")])if(e)for(const s of e)is(s,t)}_terminate(t){if("done"===t.status)return this._next(this._snapshot),this._stopProcedure(),this._complete(),void(this._parent&&this.system._relay(this,this._parent,(e=this.id,s=t.output,n=this.sessionId,{type:"xstate.done.actor",output:s,actorId:e,sessionId:n})));var e,s,n;"error"===t.status&&this._error(t.error)}_stop(){return this._processingStatus===os.Stopped?this:(this.mailbox?.clear(),this._processingStatus===os.NotStarted?(this._processingStatus=os.Stopped,this.system._unregister(this),this):(this._send({type:o}),this.system._unregister(this),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??ns)is(t.complete);this.observers?.clear(),this.eventListeners?.clear()}_error(t){if(this._stopProcedure(),this.observers?.size){let e=!1;for(const s of this.observers){const n=s.error;e||=!n,is(n,t)}this.observers.clear(),e&&y(t)}else this._parent||y(t);var e,s,n;this.eventListeners?.clear(),this._parent&&this.system._relay(this,this._parent,(e=this.id,s=t,n=this.sessionId,{type:"xstate.error.actor",error:s,actorId:e,sessionId:n}))}_stopProcedure(){this._processingStatus===os.Running&&(this.system.cancelAllTimers(this),this.mailbox?.clear(),this.mailbox=void 0,this._boundProcess=void 0,this._mailboxStarted=!1,this._processingStatus=os.Stopped,this.system._unregister(this))}_send(t){if(this._processingStatus===os.Stopped)return;let s=this.mailbox;s||(this._boundProcess??=this._process.bind(this),s=this.mailbox=new e(this._boundProcess),this._mailboxStarted&&s.start()),s.enqueue(t)}_sendPublic(t){this.system._relay(void 0,this,t)}toJSON(){return{xstate$$type:ss,id:this.id}}getPersistedSnapshot(t){return this.logic.getPersistedSnapshot(this._snapshot,t)}[v](){return this}getSnapshot(){return this._snapshot}}function ds(t,e){return new us(t,e)}function hs(t,e){const s=t.check(e);if(s)throw s}const fs=new WeakMap,ls="xstate.logic.effect.resolve",ps="xstate.logic.effect.reject",ys="xstate.logic.effect.start";function vs(t,e,s){const n=function(t){let e=fs.get(t);return e||(e=new Map,fs.set(t,e)),e}(t);if(void 0!==e&&n.has(e))return;const o=s();n.set(e??Symbol(),{cleanup:"function"==typeof o?o:void 0})}function ms(t){const e=(e,s,n)=>{if("active"!==e.status)return[e,[]];if(s.type===o)return[{...e,status:"stopped",input:void 0},[M("xstate.logic.cleanup",()=>function(t){const e=fs.get(t);if(e){for(const{cleanup:t}of e.values())t?.();fs.delete(t)}}(n.self))]];if(s.type===ys)return[{...e,effects:{...e.effects,[s.key]:{status:"active"}}},[]];if(s.type===ls)return[{...e,effects:{...e.effects,[s.key]:{status:"done",output:s.output}}},[]];if(s.type===ps)return[{...e,effects:{...e.effects,[s.key]:{status:"error",error:s.error}}},[]];const r=[],i={},c={emit:t=>{r.push(function(t,e){return{kind:"emit",exec:O,type:e.type,source:t.self,event:e,params:void 0,args:[]}}(n,t))},sendBack:t=>{const e=n.self._parent;e&&r.push(G(n,e,t))},raise:t=>{r.push(G(n,n.self,t))},effect:(t,s)=>{if("string"==typeof t)return void((t,s)=>{e.effects?.[t]||(r.push(M("xstate.logic.effect",(e=n.self.system)=>vs(n.self,t,()=>s(e)),{key:t})),i[t]={status:"active"})})(t,s);const o=t;r.push(M("xstate.logic.effect",(t=n.self.system)=>vs(n.self,void 0,()=>o(t))))}},a=t.run({context:e.context,event:s,input:e.input,system:n.system,self:n.self,emit:n.emit},c),u={...e,...a||{}};return("context"in e||void 0!==a?.context)&&(u.context=a?.context??e.context),(a?.effects||Object.keys(i).length)&&(u.effects={...e.effects,...a?.effects,...i}),Z(n,e,[u,r])},s=(s,o,r)=>{t.validator&&hs(t.validator,{kind:"event",logic:n,event:o,eventOrigin:r.self._lastSourceRef?"actor":"external"});const i=e(s,o,r);return t.validator&&hs(t.validator,{kind:"result",logic:n,snapshot:i[0],effects:i[1]}),i},n={id:t.id,config:t,validator:t.validator,transition:s,start:(t,e,n)=>{if(!n?.restored)return;const[o,r]=s(t,p(t.input),e);Object.assign(t,o);for(const t of r)e.actionExecutor(t)},initialTransition:(e,o)=>{t.validator&&hs(t.validator,{kind:"input",logic:n,input:e});const r=function(t,e){return"function"==typeof t?t({input:e}):t}(t.context,e),i={status:"active",output:void 0,error:void 0,input:e};return void 0!==r&&(i.context=r),s({...i},p(e),o)},getInitialSnapshot:(t,e)=>n.initialTransition(e,t)[0],getPersistedSnapshot:t=>t,restoreSnapshot:t=>t};return n}const gs=new WeakMap;const _s="xstate.observable.next",xs="xstate.observable.error",bs="xstate.observable.complete";const ws="xstate.async.resolve",$s="xstate.async.reject";class Ss extends Error{constructor(t){super(`Async logic timed out after ${t}.`),this.name="TimeoutError"}}const Es=ms({context:void 0,run:()=>{}});const ks=new WeakMap;const Is={};class As{constructor(t,e){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.schemas=void 0,this.tags=[],this.transitions=void 0,this.always=void 0,this.invoke=void 0,this.on=void 0,this.after=void 0,this.events=void 0,this.ownEvents=void 0,this._candidateCache=void 0,this.parent=e._parent,this.key=e._key,this.machine=e._machine,this.path=this.parent?this.parent.path.concat(this.key):[];const s=this.config.states?Object.keys(this.config.states)[0]:void 0;if(this.id=this.config.id||[this.machine.id,...this.path].join("."),this.type=this.config.type||(void 0!==s?"compound":this.config.history?"history":"atomic"),this.description=this.config.description,this.schemas=this.config.schemas,function(t){const e=t.config;if("history"===t.type&&!("string"==typeof e.target&&e.target.trim().length>0||Array.isArray(e.target)&&e.target.length>0&&e.target.every(t=>"string"==typeof t&&t.trim().length>0)))throw new Error(`Missing history target on "${t.id}"`);if("choice"!==t.type)return;if("function"!=typeof e.choice)throw new Error(`Missing \`choice\` function on "${t.id}"`)}(this),this.order=this.machine.idMap.size,this.machine.idMap.set(this.id,this),this.states=this.config.states?function(t,e){const s={},n=Object.keys(t);for(let o=0;o<n.length;o++){const r=n[o];s[r]=e(t[r],r,t,o)}return s}(this.config.states,(t,e)=>new As(t,{_parent:this,_key:e,_machine:this.machine})):Is,"compound"===this.type&&!this.config.initial)throw new Error(`No initial state specified for compound state node "#${this.id}".`);this.history=!0===this.config.history?"shallow":this.config.history||!1,this.entry=this.config.entry,this.exit=this.config.exit,this.entry&&(this.entry._special=!0),this.exit&&(this.exit._special=!0),this.meta=this.config.meta,this.output="final"!==this.type&&this.parent?void 0:this.config.output,this.tags=Ve(t.tags).slice(),this.invoke=Ve(this.config.invoke).map((t,e)=>{const{src:s,registryKey:n}=t,o=(r=this.id,`${e}.${r}`);var r;const i=t.id??o,c="string"==typeof s?s:`xstate.invoke.${o}`;return{...t,src:c,logic:s,id:i,registryKey:n}})}_initialize(){this.after=function(t){const e=t.config.after,s=t.config.timeout,n=t.config.onTimeout,o=t.invoke.filter(t=>void 0!==t.timeout);if(!e&&void 0===s&&0===o.length)return[];const r=[];if(e)for(const s of Object.keys(e)){const n=Number.isNaN(+s)?s:+s;r.push({event:c(n,t.id),timerId:a(n,t.id),delay:n,transitions:e[s],fromDelaysMap:!0})}var i;void 0!==s&&n&&r.push({event:(i=t.id,{type:"xstate.timeout",stateId:i}),timerId:u(t.id),delay:s,transitions:n,fromDelaysMap:!0});for(const t of o)r.push({event:d(t.id),timerId:h(t.id),resolveEvent:({children:e})=>d(t.id,e[t.id]?.sessionId),eventMatcher:(e,s)=>Dt(e,s,t.id),delay:t.timeout,transitions:t.onTimeout,fromDelaysMap:!1});const f=[];for(const{event:e,timerId:s,resolveEvent:n,eventMatcher:o,delay:i,transitions:c,fromDelaysMap:a}of r){Kt(t,s,n??(()=>e),e=>It(i,a?e.delays:{},{context:e.context,event:e.event,stateNode:t,input:e.input}));const{type:r,...u}=e;for(const t of Le(c))f.push({...t,matches:{...t.matches,...Object.fromEntries(Object.entries(u).filter(([,t])=>void 0!==t))},event:r,delay:i,_eventMatcher:o})}return f.map(e=>({...zt(t,e.event,e),delay:e.delay}))}(this),this.transitions=function(t){const e=new Map,s=(t,s)=>{e.set(t,[...e.get(t)??[],...s])};if(t.config.on)for(const s of Object.keys(t.config.on)){if(""===s)throw new Error("Null event transition key");const n=t.config.on[s];e.set(s,js(n,e=>zt(t,s,e)))}if(t.config.onDone){const e="xstate.done.state";s(e,js(t.config.onDone,s=>zt(t,e,{...s,matches:{...s.matches,stateId:t.id}})))}if(t.config.onError){const s="xstate.error.*";e.set(s,js(t.config.onError,e=>zt(t,s,e)))}const n=(e,s,n)=>zt(t,e,{matches:{actorId:n},_eventMatcher:(t,e)=>Dt(t,e,n),to:(t,e)=>(e.cancel(s),{})}),o=(e,s,n)=>{const{target:o,to:r,reenter:i,...c}=s;return zt(t,e,{...c,reenter:i,to:(t,e)=>{if(r){let s=!1;const o=new Proxy(e,{apply:(t,e,n)=>(s=!0,Reflect.apply(t,e,n)),get(t,e,n){const o=Reflect.get(t,e,n);return"function"!=typeof o?o:(...e)=>(s=!0,o.apply(t,e))}}),i=r(t,o);return(void 0!==i||s)&&e.cancel(n),i}return e.cancel(n),{target:o,reenter:i}}})};for(const e of t.invoke){const r=t=>({...t,matches:{...t.matches,actorId:e.id},_eventMatcher:(t,s)=>Dt(t,s,e.id)}),i=void 0!==e.timeout?h(e.id):void 0;if(e.onDone){const c="xstate.done.actor",a=js(e.onDone,e=>{const s=r(e);return i?o(c,s,i):zt(t,c,s)});i&&a.push(n(c,i,e.id)),s(c,a)}else if(i){const t="xstate.done.actor";s(t,[n(t,i,e.id)])}if(e.onError){const n="xstate.error.actor";s(n,js(e.onError,e=>{const s=r(e);return i?o(n,s,i):zt(t,n,s)}))}if(e.onSnapshot){const n="xstate.snapshot.actor";s(n,js(e.onSnapshot,e=>zt(t,n,r(e))))}}for(const s of t.after){let t=e.get(s.eventType);t||(t=[],e.set(s.eventType,t)),t.push(s)}return e}(this),"choice"===this.type?this.always=function(t){const e=t.config.choice,s=e=>{if(!e||void 0===e.target)throw new Error(`Choice "${t.id}" has no target`);return e};return[zt(t,"",{to:t=>s(e(t))})]}(this):this.config.always&&(this.always=js(this.config.always,t=>zt(this,"",t)));for(const t of Object.keys(this.states))this.states[t]._initialize();this._refreshEventMetadata()}_refreshEventMetadata(){const t={},e=[];for(const[s,n]of this.transitions)t[s]=n.slice(),n.some(t=>t.target||t.reenter||t.to)&&e.push(s);this.on=t,this.ownEvents=e;const s=new Set(e);for(const t of Object.values(this.states))for(const e of t.events)s.add(e);this.events=Array.from(s)}get initial(){return function(t,e,s){let n=ks.get(t);return n?e in n||(n[e]=s()):(n={[e]:s()},ks.set(t,n)),n[e]}(this,"initial",()=>function(t,e){const s="object"==typeof e&&null!==e?e.target:e,n="object"==typeof e&&null!==e?e.input:void 0,o="string"==typeof s?t.states[s]:void 0;if(!o&&s)throw new Error(`Initial state "${s}" not found on "#${t.id}"`);const r={source:t,target:o?[o]:void 0,input:n};return r}(this,this.config.initial))}next(t,e,s,n){const o=function(t){const e=Ct(t);return e?`${t.type}|${e}`:t.type}(e);let r=this._candidateCache?.get(o);r||(r=Vt(this,e),(this._candidateCache??=new Map).set(o,r));for(const o of r){if(ge(o,e,t,this,s,n))return[o]}}}function js(t,e){const s=Le(t),n=new Array(s.length);for(let t=0;t<s.length;t++)n[t]=e(s[t]);return n}let Ts,Os;function Ms(){if(Os)return Os;const t=Ts??=ds({transition:t=>[t,[]],initialTransition:()=>[{status:"active",output:void 0,error:void 0},[]],getInitialSnapshot:()=>({status:"active",output:void 0,error:void 0}),getPersistedSnapshot:t=>t});return Os={self:t,logger:()=>{},id:"",sessionId:"",defer:()=>{},system:t.system,stopChild:()=>{},emit:()=>{},actionExecutor:()=>{}},Os}class Ns{constructor(t,e,s){this.config=t,this.validator=s,this.version=void 0,this.schemas=void 0,this.snapshotSchema=void 0,this.eventSchema=void 0,this.sources=void 0,this.options=void 0,this.idMap=new Map,this.root=void 0,this.id=void 0,this.states=void 0,this.events=void 0,this.internalEventDescriptors=void 0,this._hasEventlessTransitions=void 0,this._json=void 0,this.id=t.id||"(machine)",this.sources={actors:t.actors??{},actions:t.actions??{},delays:t.delays??{},guards:t.guards??{},...e},this.version=this.config.version,this.schemas=this.config.schemas,this.snapshotSchema={"~standard":{version:1,vendor:"xstate",validate:async t=>{if(null===t||"object"!=typeof t)return{issues:[{message:"Expected a persisted snapshot."}]};const e={historyValue:{},timers:{},...t},s=this.schemas?.context;let n=e.context;if(s){const t=await s["~standard"].validate(n);if(t.issues)return{issues:[{message:`Invalid context for machine '${this.id}' version '${this.version}': ${t.issues[0]?.message}`}]};n=t.value}for(const t of["value","children"])if(!(t in e))return{issues:[{message:`Persisted snapshot is missing '${t}'.`}]};if(!["active","done","error","stopped"].includes(e.status))return{issues:[{message:"Persisted snapshot has invalid status."}]};for(const t of["children","historyValue","timers"])if(null===e[t]||"object"!=typeof e[t]||Array.isArray(e[t]))return{issues:[{message:`Persisted snapshot has invalid '${t}'.`}]};try{this.resolveState({value:e.value,context:n})}catch(t){return{issues:[{message:t instanceof Error?t.message:"Persisted snapshot has invalid state value."}]}}return{value:{...e,context:n}}}}},this.eventSchema={"~standard":{version:1,vendor:"xstate",validate:async t=>{if(null===t||"object"!=typeof t||"string"!=typeof t.type)return{issues:[{message:"Expected an event object."}]};const e=t,s=this.schemas?.events,n=e.type.startsWith("xstate.")||e.type.startsWith("@xstate."),o=s&&Object.hasOwn(s,e.type)?s[e.type]:void 0;if(s&&!o&&!n)return{issues:[{message:`Unknown event '${e.type}' for machine '${this.id}' version '${this.version}'.`}]};if(!o)return{value:e};const{type:r,...i}=e,c=await o["~standard"].validate(i);return c.issues?c:null===c.value||"object"!=typeof c.value?{issues:[{message:"Expected an event payload."}]}:{value:{...c.value,type:r}}}}},this.internalEventDescriptors=this.config.internalEvents??[],this.options={maxIterations:1/0,...this.config.options},this.transition=this.transition.bind(this),this.initialTransition=this.initialTransition.bind(this),this.getInitialSnapshot=this.getInitialSnapshot.bind(this),this.getPersistedSnapshot=this.getPersistedSnapshot.bind(this),this.restoreSnapshot=this.restoreSnapshot.bind(this),this.start=this.start.bind(this),this.root=new As(t,{_key:this.id,_machine:this}),this.root._initialize(),function(t){const e=[],s=n=>{Object.values(n).forEach(n=>{if(n.config.route&&n.config.id){const o=n.config.id,r=n.config.route,i=({event:t})=>t.to===`#${o}`;if("function"==typeof r)return e.push(zt(t,"xstate.route",{guard:i,to:t=>{const e=r(t);if(e)return{...!0===e?{}:e,target:`#${o}`}}})),void(n.states&&s(n.states));const{guard:c,...a}=r,u={...a,guard:i,target:`#${o}`};e.push(zt(t,"xstate.route",u))}n.states&&s(n.states)})};s(t.states),e.length>0&&t.transitions.set("xstate.route",e)}(this.root),this.root._refreshEventMetadata(),this._hasEventlessTransitions=Array.from(this.idMap.values()).some(t=>!!t.always?.length),this.states=this.root.states,this.events=this.root.events}provide(t){const{actions:e,guards:s,actors:n,delays:o}=this.sources,r=new Ns(this.config,{actions:{...e,...t.actions},guards:{...s,...t.guards},actors:{...n,...t.actors},delays:{...o,...t.delays}},this.validator);return r._json=this._json,r}resolveState(t){const e=(s=this.root,n=t.value,Nt(s,Mt(Xt(s,n))));var s,n;const o=Mt(Xt(this.root,e));return je({_nodes:[...o],value:e,context:t.context||{},children:{},status:Pt(o,this.root)?"done":t.status||"active",output:t.output,error:t.error,historyValue:t.historyValue},this)}transition(t,e,s){const n=!s,o=s??kt(this,t);this.validator&&hs(this.validator,{kind:"event",logic:this,event:e,eventOrigin:s&&s.self._lastSourceRef?"actor":"external"}),n&&mt(o,t,!1);const r=this._transitionFast(t,e,o);if(r){n&&mt(o,r,!1);const e=n&&r!==t?_t(o,r):this._attachPureActorRef(r,o);return this.validator&&hs(this.validator,{kind:"result",logic:this,snapshot:e,effects:[]}),[e,[]]}const{snapshot:i,microsteps:c}=de(t,e,o,[]);n&&mt(o,i,!1);const a=n?i===t?i:_t(o,i):this._attachPureActorRef(i,o),u=this._collectEffects(c);return this.validator&&hs(this.validator,{kind:"result",logic:this,snapshot:a,effects:u}),[a,u]}_collectEffects(t){return t.flatMap(([,t])=>t)}_attachPureActorRef(t,e,s=!1){return gt(e)||s&&e.self._actorScope===e&&void 0===e.self._snapshot||vt(t,e.self,e.system),t}_transitionFast(t,e,s){if("active"!==t.status||"string"!=typeof t.value||this.root.always?.length)return;const n=this.root.states[t.value];if(!n||"atomic"!==n.type||n.exit||n.invoke.length||n.always?.length||n.after?.length)return;const o=n.transitions.get(e.type);if(1!==o?.length)return;const r=o[0];if(r.guard||r.actions||r.to||r.reenter||r.input||"function"==typeof r.context||r.target&&1!==r.target.length)return;const i=r.target?.[0]??n,c=i!==n;if(i.parent!==this.root||"atomic"!==i.type||c&&(i.entry||i.invoke.length||i.always?.length||i.after?.length))return;const a=void 0!==r.context?{...t.context,...r.context}:t.context;if(!gt(s)&&(s.system._hasInspectionObservers?.()??1)){const t=s.self._collectedMicrosteps||[];t.push(r),s.self._collectedMicrosteps=t}return Te(t,{...a!==t.context?{context:a}:{},...c?{_nodes:[this.root,i]}:{}})}microstep(t,e,s){const{microsteps:n}=de(t,e,s,[]),o=new Array(n.length);for(let t=0;t<n.length;t++)o[t]=n[t][0];return o}getTransitionData(t,e,s,n){return Zt(this.root,t.value,t,e,s,n)||[]}isInternalEventType(t){if(t===i)return!0;for(const e of this.internalEventDescriptors)if(Fe(t,e))return!0;return!1}_canTransition(t,e){const s=Ms(),n=this.getTransitionData(t,e,s);if(!n?.length)return!1;for(const o of n){if(void 0!==o.target)return!0;const n=ue(o,t,e,s,{resolveActions:!1});if(n.targets?.length||n.context||he(o,t.context,e,t,s))return!0}return!1}getExecutionErrorEvent(t,e){if("active"===t?.status&&t.nodes?.some(t=>t.config.onError))return l("execution",e)}_getPreInitialState(t,e){const{context:s}=this.config,n=je({context:"function"!=typeof s&&s?s:{},_nodes:[this.root],children:{},status:"active"},this);if("function"==typeof s){const o={},r=function(t,e,s){return(n,o)=>{const r=Object.entries(e).find(([,t])=>t===n)?.[0],i=t.system.createActorRef(n,{id:o?.id,parent:t.self,syncSnapshot:o?.syncSnapshot,input:o?.input,src:r??n,registryKey:o?.registryKey});return s[i.id]=i,i}}(t,this.sources.actors,o),i=s(function(t,e){return I(e)?(Object.defineProperty(t,"self",{enumerable:!0,get:()=>e.self}),t):Object.assign(t,{self:e.self})}({spawn:r,input:e.input,actors:this.sources.actors},t)),[c]=tt(n,e,t,[]);return i&&(c.context=i),Object.keys(o).length>0&&(c.children={...c.children,...o}),c}return n}getInitialSnapshot(t,e){return this.initialTransition(e,t)[0]}initialTransition(t,e){this.validator&&hs(this.validator,{kind:"input",logic:this,input:t});const s=!e,n=e??kt(this),o=p(t),r=[],i=this._getPreInitialState(n,o),c=Object.values(i.children).filter(Boolean).map(t=>H(t)),a=(t,e)=>{s&&mt(n,t,!1);const o=s?_t(n,t):this._attachPureActorRef(t,n,!0),r=this._collectEffects(e);return this.validator&&hs(this.validator,{kind:"result",logic:this,snapshot:o,effects:r}),[o,r]};try{const[t,e]=ce(this.root,i,n,o,r),{snapshot:s,microsteps:u}=de(t,o,n,r,[[t,[...c,...e]]]);return a(s,u)}catch(t){if(!this.root.config.onError)throw t;const e=de(i,l("execution",t),n,[],[[i,c]]);return a(e.snapshot,e.microsteps)}}start(t){if(!t?.children)return;const e=t.children;for(const t in e){if(!Object.hasOwn(e,t))continue;const s=e[t];s._rehydrated&&"active"===s.getSnapshot?.().status&&s.start()}}getStateNodeById(t){const e=Pe(t),s=e.slice(1),n=Rt(e[0])?e[0].slice(1):e[0],o=this.idMap.get(n);if(!o)throw new Error(`Child state node '#${n}' does not exist on machine '${this.id}'`);return Gt(o,s)}getPersistedSnapshot(t,e){return function(t,e){const{nodes:s,_stateInputs:n,tags:o,machine:r,children:i,timers:c,context:a,can:u,hasTag:d,matches:h,getMeta:f,getInputs:l,toJSON:p,...y}=t,v={},m={};for(const t in i){const s=i[t];v[t]={snapshot:s.getPersistedSnapshot(e),src:s.src,registryKey:s.registryKey,syncSnapshot:s._syncSnapshot}}for(const e in c){const s=c[e];let n,o=s.event;if("xstate.timeout.actor"===o.type&&(o={...o},delete o.sessionId),"self"===s.target)n="self";else{const o=Object.entries(i).find(([,t])=>t===s.target)?.[0];if(o)n=o;else{if(s.target!==pt(t)?.actor._parent)throw new Error(`Unable to persist timer '${e}': target actor '${s.target.id}' is no longer addressable from this snapshot.`);n={type:"parent"}}}m[e]={id:s.id,delay:s.delay,type:s.type,event:o,target:n}}const g={...y,_nextActorId:pt(t)?.systemState.snapshot._nextActorId,context:Me(a),children:v,timers:m,historyValue:Oe(y.historyValue)};return n&&Object.keys(n).length>0&&(g.stateInputs=n),void 0!==r.version&&(g.machine={id:r.id,version:r.version},g.version=r.version),g}(t,e)}restoreSnapshot(t,e){const s=!e,n=e??kt(this),o=t.machine,r=t.version,i="string"==typeof o?.version?o.version:r;if(void 0!==r&&void 0!==o?.version&&o.version!==r)throw new Error(`Persisted snapshot version '${r}' conflicts with machine version '${o.version}'.`);if(o&&"string"==typeof o.id&&o.id!==this.id)throw new Error(`Machine ID mismatch: persisted snapshot machine '${o.id}' does not match '${this.id}'.`);if(i!==this.version){const e=this.config.migrate;if("function"!=typeof e)throw new Error(`Persisted snapshot version '${i}' does not match machine version '${this.version}'.`);t=e(t,i)}const c=t,a={},u=c.children;for(const t of Object.keys(u)){const e=u[t],s=e.snapshot,o=e.src,r="string"==typeof o?Je(this,o):o;if(!r){throw new Error(`Unable to restore child actor '${t}': child source '${"string"==typeof o?o:"<unknown>"}' is not provided in machine '${this.id}'.`)}const i=n.system.createActorRef(r,{id:t,parent:n.self,syncSnapshot:e.syncSnapshot,snapshot:s,src:o,registryKey:e.registryKey});i._rehydrated=!0,a[t]=i}const h={},f=c.timers??{};for(const[t,e]of Object.entries(f)){let s=e.event;if("xstate.timeout.actor"===s.type){const t=s.actorId,e=a[t];e&&(s=d(t,e.sessionId))}const o="string"==typeof e.target?"self"===e.target?"self":a[e.target]:n.self._parent;if(!o){const s="string"==typeof e.target?e.target:e.target.type;throw new Error(`Unable to restore timer '${t}': target actor '${s}' is unavailable.`)}h[t]={...e,event:s,target:o}}const l=(t=>{if(!t||"object"!=typeof t)return{};const e={};for(const s of Object.keys(t)){const n=t[s];for(const t of n){let n;if(t instanceof As)n=t;else try{n=this.root.machine.getStateNodeById(t.id)}catch{}n&&(e[s]??=[],e[s].push(n))}}return e})(c.historyValue),p=(t,e,s)=>{const n=t=>new Error(`Persisted snapshot references state '${t.join(".")}' which does not exist on machine '${this.id}'.`);if("string"!=typeof t){if(t&&"object"==typeof t)for(const o of Object.keys(t)){const r=e.states[o];if(!r)throw n(s.concat(o));p(t[o],r,s.concat(o))}}else if(!e.states[t])throw n(s.concat(t))};p(c.value,this.root,[]);const y=Array.from(Mt(Xt(this.root,c.value))),{version:v,...m}=t,g=je({...m,children:a,timers:h,_nodes:y,value:c.value,historyValue:l,_stateInputs:c.stateInputs??{}},this,n.self),_=new WeakSet;return function t(e){if(!_.has(e)){_.add(e);for(const s of Object.keys(e)){const n=e[s];if(n&&"object"==typeof n){if("xstate$$type"in n&&n.xstate$$type===ss){e[s]=a[n.id];continue}t(n)}}}}(g.context),s?(mt(n,g,!1),_t(n,g)):this._attachPureActorRef(g,n)}}function Ps(t){return new Ns(t)}const Rs={actions:{},actors:{},guards:{},delays:{}},Cs=[],Ds=[],Vs=new Set(Object.values(g));function Ks(t){return void 0===t?[]:Array.isArray(t)?t:[t]}function zs(t,e){return"function"==typeof t?t(e):t}function Ws(t,e,s){return"function"==typeof t?t({context:e,event:s}):t}function Ls(t,e){for(const s of Object.keys(e))if(!Object.prototype.hasOwnProperty.call(t,s)||!Object.is(t[s],e[s]))return{...t,...e};return t}function Us(t,e,s,n){return{status:t.status,output:t.output,error:t.error,value:e,context:s,input:t.input,children:t.children,timers:t.timers,_nextTimerId:t._nextTimerId,_stateInput:n,machine:t.machine}}function Bs(t){return{status:"stopped",output:void 0,error:void 0,value:t.value,context:t.context,input:void 0,children:t.children,timers:t.timers,_nextTimerId:t._nextTimerId,_stateInput:t._stateInput,machine:t.machine}}function Js(t){const e=it(t);return void 0!==e?e:"string"==typeof t?parseFloat(t)||0:t}function Fs(t){return/^error(\.|$)/.test(t)?`xstate.${t}`:t}function qs(t){return t.startsWith("xstate.error.")?t.slice(7):t}function Hs(t){return!!t&&"object"==typeof t&&"string"==typeof t["@expr"]}function Gs(t){return Hs(t)||function(t){return!!t&&"object"==typeof t&&"string"==typeof t["@code"]}(t)}function Xs(t,e){return"number"==typeof e?`${t}[${e}]`:`${t}.${e}`}function Zs(t){const e={};if(!t)return e;for(const s of Object.keys(t)){const n=t[s];"number"==typeof n?e[s]=n:n&&"object"==typeof n&&"number"==typeof n.duration&&(e[s]=n.duration)}return e}function Qs(t){return void 0===t?[]:Array.isArray(t)?t:[t]}function Ys(t,e){Array.isArray(t)&&t.forEach((s,n)=>{if(void 0===s.when&&n!==t.length-1)throw new Error(`Choice fallback branch at ${e}[${n}] must be last.`)})}let tn="session_scxml",en="";function sn(t,e,s,n){const o=`\nwith (context) {\n return (${e});\n}\n `.trim(),r=new Function("context","_event","_sessionid","_name","_ioprocessors","In",o),i=`#_scxml_${tn}`,c=s&&s._scxmlExternal,a=s&&"@xstate.init"===s.type,u=s&&"string"==typeof s.type&&s.type.startsWith("xstate.done."),d=s&&s._scxmlEventType;return r(t,s&&!a?{name:s._scxmlEventName??qs(s.type),type:d||(c?"external":"internal"),sendid:s._scxmlSendId,origin:c?i:void 0,origintype:c?"http://www.w3.org/TR/scxml/#SCXMLEventProcessor":void 0,invokeid:s._scxmlInvokeId,data:u?s.output:void 0!==s._scxmlEventData?s._scxmlEventData:s}:void 0,tn,en,{scxml:{location:`#_scxml_${tn}`}},t=>{if(!n)return!1;try{const e=n.getSnapshot?.();if(e?.nodes){const s=t.replace(/\./g,"$");return e.nodes.some(t=>t.id===s||t.id.endsWith("."+s))}}catch{}return!1})}function nn(t,e){const s=Object.keys(t),n=s.map(t=>`let ${t} = context.${t};`).join("\n"),o=s.map(t=>`updates.${t} = ${t};`).join("\n");return new Function("context","updates",`\n${n}\n${e}\n${o}\nreturn updates;\n `)(t,{})}function on(t){return!Gs(t)&&t.type.startsWith("@xstate.")}function rn(t){if("function"==typeof t)return{"@code":t.toString(),"@lang":"ts"};if(null===t||"object"!=typeof t)return"bigint"==typeof t||"symbol"==typeof t?void 0:t;if(function(t){return!!t&&"object"==typeof t&&"function"==typeof t.transition&&"function"==typeof t.getInitialSnapshot}(t))return;if(function(t){return!!t&&"object"==typeof t&&"~standard"in t}(t))return;if(Array.isArray(t))return t.map(rn).filter(t=>void 0!==t);if(t.constructor!==Object&&void 0!==t.constructor)return;const e={};for(const s of Object.keys(t)){const n=t[s];if(void 0!==n){const t=rn(n);void 0!==t&&(e[s]=t)}}return e}function cn(t){if(Array.isArray(t)){const e=t.map(cn).filter(t=>void 0!==t);return e.length?e:void 0}const e=t,s={};for(const t of Object.keys(e)){const n=e[t];void 0!==n&&(s[t]="src"===t&&"string"!=typeof n?n.id:rn(n),void 0===s[t]&&delete s[t])}return void 0===s.src?void 0:s}function an(t){if(!t)return;const e={};for(const s of Object.keys(t)){const n=t[s];e[s]="function"==typeof n?void 0:rn(n),void 0===e[s]&&delete e[s]}return e}function un(t){const e={};for(const s of Object.keys(t)){if("states"===s||"invoke"===s)continue;const n=t[s];void 0!==n&&(e[s]=rn(n))}if(void 0!==t.invoke){const s=cn(t.invoke);void 0!==s&&(e.invoke=s)}if(t.states){const s={};for(const e of Object.keys(t.states))s[e]=un(t.states[e]);e.states=s}return e}function dn(t){const e=un(t);if(void 0!==t.internalEvents&&(e.internalEvents=rn(t.internalEvents)),t.schemas){const s={};for(const e of Object.keys(t.schemas)){const n=t.schemas[e];s[e]=n&&"object"==typeof n&&!("~standard"in n)?an(n):rn(n),void 0===s[e]&&delete s[e]}e.schemas=s}for(const s of["actions","guards","actors","delays"])if(t[s]){const n=an(t[s]);n&&Object.keys(n).length?e[s]=n:delete e[s]}return e}function hn(t){return null!==t&&"object"==typeof t}function fn(t){return"transition"in t&&"function"==typeof t.transition}async function ln(t,e,s){if(!t)return e;const n=await t["~standard"].validate(e);if(n.issues)throw new Error(`Invalid ${s}: ${n.issues[0]?.message}`);return n.value}async function pn(t,e){return await ln(e.snapshotSchema,{...t,machine:{id:e.id,version:e.version},version:e.version},`snapshot for machine '${e.id}' version '${e.version}'`)}async function yn(t,e){return Promise.all(t.map(async(t,s)=>{const n=await e.eventSchema["~standard"].validate(t);if(n.issues){const e=n.issues[0]?.message;if(e?.startsWith("Unknown event "))throw new Error(e);const o=hn(t)?t.type:void 0;throw new Error("string"==typeof o?`Invalid event '${o}' at index ${s}${e?`: ${e}`:"."}`:`Invalid event at index ${s}${e?`: ${e}`:"."}`)}const o=n.value;if(!hn(o)||"string"!=typeof o.type)throw new Error(`Invalid event at index ${s}.`);return o}))}const vn=function(t={}){const{validator:e,states:s={},schemas:n,actions:o,actors:r,guards:i,delays:c}=t;return{extend:e=>vn(function(t,e){return{...t,...e,schemas:gn(t.schemas,e.schemas),states:mn(t.states,e.states),actions:mn(t.actions,e.actions),actors:mn(t.actors,e.actors),guards:mn(t.guards,e.guards),delays:mn(t.delays,e.delays)}}(t,e)),createMachine(t){const a=gn(t.schemas,n),u=_n(t.states,s),d=mn(o,t.actions),h=mn(r,t.actors),f=mn(i,t.guards),l=mn(c,t.delays);return new Ns({...t,...a?{schemas:a}:void 0,...u?{states:u}:void 0,...d?{actions:d}:void 0,...h?{actors:h}:void 0,...f?{guards:f}:void 0,...l?{delays:l}:void 0},void 0,e)},createStateConfig:(...t)=>t.length>1?t[1]:t[0],states:s,schemas:n??{}}};function mn(t,e){return t||e?{...t,...e}:void 0}function gn(t,e){if(t||e)return{...t,...e,events:mn(t?.events,e?.events),actions:mn(t?.actions,e?.actions),guards:mn(t?.guards,e?.guards),emitted:mn(t?.emitted,e?.emitted),children:mn(t?.children,e?.children)}}function _n(t,e){return t&&e?Object.fromEntries(Object.entries(t).map(([t,s])=>{const n=e[t];if(!n)return[t,s];const o=mn(s.schemas,n.schemas),r=_n(s.states,n.states);return[t,{...s,...o?{schemas:o}:void 0,...r?{states:r}:void 0}]})):t}let xn=function(t){return t.Internal="#_internal",t}({});function bn(t,e,s){if(!t.length)return t;const n=t.slice(),o=n.at(-1)[0];mt(e,o,!1),o!==s&&_t(e,o);for(const[t]of n)if(t!==s&&t!==o){_t(kt(t.machine,t,void 0,e),t)}return n}const wn={timeout:1/0};t.Actor=us,t.SimulatedClock=class{constructor(){this.timeouts=new Map,this._now=0,this._id=0,this._flushing=!1,this._flushingInvalidated=!1}now(){return this._now}getId(){return this._id++}setTimeout(t,e){this._flushingInvalidated=this._flushing;const s=this.getId();return this.timeouts.set(s,{start:this.now(),timeout:e,fn:t}),s}clearTimeout(t){this._flushingInvalidated=this._flushing,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(){if(this._flushing)return void(this._flushingInvalidated=!0);this._flushing=!0;const t=[...this.timeouts].sort(([t,e],[s,n])=>{const o=e.start+e.timeout;return n.start+n.timeout>o?-1:1});for(const[e,s]of t){if(this._flushingInvalidated)return this._flushingInvalidated=!1,this._flushing=!1,void this.flushTimeouts();this.now()-s.start>=s.timeout&&(this.timeouts.delete(e),s.fn.call(null))}this._flushing=!1,this._flushingInvalidated&&(this._flushingInvalidated=!1,this.flushTimeouts())}increment(t){this._now+=t,this.flushTimeouts()}},t.SpecialTargets=xn,t.StateMachine=Ns,t.StateNode=As,t.TimeoutError=Ss,t.__unsafe_getAllOwnEventDescriptors=function(t){return[...new Set([...t.nodes.flatMap(t=>t.ownEvents)])]},t.assertEvent=function(t,e){const s=Ve(e);if(!s.some(e=>Fe(t.type,e))){const e=1===s.length?`type matching "${s[0]}"`:`one of types matching "${s.join('", "')}"`;throw new Error(`Expected event ${JSON.stringify(t)} to have ${e}`)}},t.checkStateIn=function(t,e){if("string"==typeof e&&Rt(e)){const s=t.machine.getStateNodeById(e);return t.nodes.some(t=>t===s)}return t.matches(e)},t.createActor=ds,t.createAsyncLogic=function(t){const e=t;return ms({id:e.id,validator:e.validator,schemas:e.schemas,context:void 0,run:({event:t,input:n,self:o,system:r},i)=>{switch(t.type){case ws:{const e=t.data??t.output;return{status:"done",output:e,input:void 0,effects:{async:{status:"done",output:e}}}}case $s:{const e=t.data??t.error;return{status:"error",error:e,input:void 0,effects:{async:{status:"error",error:e}}}}}if(t.type===s)return i.effect((t=r)=>{const s=o,i=e=>{t.sendEvent(s,s,e)},c=new AbortController,a=e.timeout,u=it(a),d=void 0===u?void 0:r._clock.setTimeout(()=>{"active"===o.getSnapshot().status&&(c.abort(),i({type:$s,data:new Ss(a)}))},u),h=()=>{void 0!==d&&r._clock.clearTimeout(d)},f=Promise.resolve(e.run({input:n,system:r,self:o,signal:c.signal},{emit:e=>{t.emitEvent(s,e)},step:async(t,e)=>{const s=o.getSnapshot().effects?.[t];if("done"===s?.status)return s.output;if("error"===s?.status)throw s.error;if("active"===s?.status)return function(t,e){return new Promise((s,n)=>{const o=t.subscribe(t=>{const r=t.effects?.[e];"done"===r?.status?(o.unsubscribe(),s(r.output)):"error"===r?.status&&(o.unsubscribe(),n(r.error))})})}(o,t);i({type:ys,key:t});try{const s=await e();return i({type:ls,key:t,output:s}),s}catch(e){throw i({type:ps,key:t,error:e}),e}}}));return f.then(t=>{h(),"active"===o.getSnapshot().status&&i({type:ws,data:t})},t=>{h(),"active"===o.getSnapshot().status&&i({type:$s,data:t})}),()=>{c.abort(),h()}}),{effects:{async:{status:"active"}}}}})},t.createCallbackLogic=function(t){const e="function"==typeof t?t:t.run,s="function"==typeof t?void 0:t.schemas;return ms({validator:"function"==typeof t?void 0:t.validator,schemas:s,context:void 0,run:(t,s)=>{const{event:n,input:o,self:r,system:i}=t,c=t.emit,a=gs.get(r);a?.receivers?.forEach(t=>t(n)),s.effect("callback",()=>{const t={receivers:void 0,dispose:void 0};return gs.set(r,t),t.dispose=e({input:o,system:i,self:r,sendBack:t=>{if("stopped"===r.getSnapshot().status)return;const e=r._parent;e&&i._relay(r,e,t)},receive:e=>{t.receivers??=new Set,t.receivers.add(e)},emit:c}),()=>{gs.delete(r),t.receivers?.clear(),t.dispose?.()}})}})},t.createEmptyActor=function(){return ds(Es)},t.createEventObservableLogic=function(t){const e="function"==typeof t?t:t.run,s="function"==typeof t?void 0:t.validator,n={config:t,validator:s,transition:(t,e,s)=>{if("active"!==t.status)return[t,[]];switch(e.type){case xs:return Z(s,t,[{...t,status:"error",error:e.data,input:void 0,_subscription:void 0},[]]);case bs:return Z(s,t,[{...t,status:"done",input:void 0,_subscription:void 0},[]]);case o:return t._subscription.unsubscribe(),[{...t,status:"stopped",input:void 0,_subscription:void 0},[]];default:return[t,[]]}},initialTransition:(t,e)=>{s&&hs(s,{kind:"input",logic:n,input:t});return[{status:"active",output:void 0,error:void 0,context:void 0,input:t,_subscription:void 0},[]]},getInitialSnapshot:(t,e)=>n.initialTransition(e,t)[0],start:(t,{self:s,system:n,emit:o})=>{"done"!==t.status&&(t._subscription=e({input:t.input,system:n,self:s,emit:t=>{o(t)}}).subscribe({next:t=>{s._parent&&n._relay(s,s._parent,t)},error:t=>{n._relay(s,s,{type:xs,data:t})},complete:()=>{n._relay(s,s,{type:bs})}}))},getPersistedSnapshot:({_subscription:t,...e})=>e,restoreSnapshot:t=>({...t,_subscription:void 0})};return n},t.createFSM=function(t){const e={id:t.id??"(fsm)",sources:Rs};!function(t){for(const[e,s]of Object.entries(t.states))for(const[t,n]of Object.entries(s.on??{}))for(const s of Ks(n))if("string"==typeof s)throw new Error(`Invalid transition for "${e}.${t}": use { target: "${s}" } instead of a string target.`)}(t);const n=(t,e,s,n)=>{if(!n?.length)return[t,Cs];const o=function(t){const e=[];for(const s of t){if(!s||"object"!=typeof s||!("action"in s)||"function"!=typeof s.action||Vs.has(s.action)||"_special"in s.action)return;e.push({kind:"action",type:s.action.name||"(anonymous)",params:void 0,args:s.args,action:s.action,exec(){return this.action?.(...this.args)}})}return e}(n);return o?[t,o]:tt(t,e,s,n)},r=(t,e,s,o,r,i)=>{if(!o)return[t,Cs];const c=[],a=J(s,c,i,!0);let u;const d=Array.isArray(o)?o.length:1;for(let n=0;n<d;n++){const i=(Array.isArray(o)?o[n]:o)(j({context:u??t.context,event:e,input:r,value:t.value,children:t.children},s),a);if(void 0!==i?.context){const e=u??t.context,s=Ls(e,i.context);s!==e&&(u=s)}}const h=void 0!==u?Us(t,t.value,u,t._stateInput):t;return n(h,e,s,c)},c=(e,s,n,o)=>{const r=t.states[e.value],i=r?.on?.[s.type];if(!i)return;const c=Array.isArray(i)?i.length:1;for(let t=0;t<c;t++){const r=Array.isArray(i)?i[t]:i,c=j({context:e.context,event:s,input:e.input,value:e.value,children:e.children},n);if("function"==typeof r){const t=[],e=r(c,J(n,t,o,!0));if(!e){if(t.length)return{actions:t};continue}return{target:e.target,context:e.context,input:e.input,actions:t}}if(!("guard"in r)||!r.guard||r.guard(c))return{target:r.target,context:zs(r.context,c),input:r.input,actions:"actions"in r&&r.actions?Ks(r.actions):Ds}}},a=(e,s,u)=>{if("active"!==e.status)return[e,[]];if(s.type===o){const t=[],n=J(u,t,[]);for(const t of Object.keys(e.timers))n.cancel(t);const[o,r]=tt(e,s,u,t);return[Bs(o),r]}if(s.type===i){const t=e.timers[s.id];if(!t)return[e,Cs];const n={...e.timers};delete n[t.id];const o={...e,timers:n};if("@xstate.raise"===t.type)return a(o,t.event,u);return[o,[G(u,"self"===t.target?u.self:t.target,t.event)]]}const d=t.states[e.value],h=d?.on?.[s.type];if(!h)return[e,Cs];if(!(Array.isArray(h)||"function"==typeof h||"guard"in h||"actions"in h&&h.actions||"function"==typeof h.input)){const n=h.target??e.value,o=n!==e.value;if(!o||!d.exit&&!t.states[n]?.entry){const t=void 0!==h.context,r=void 0!==h.input,i=I(u)?"function"==typeof h.context?h.context(j({context:e.context,event:s,input:e.input,value:e.value,children:e.children},u)):h.context:zs(h.context,{context:e.context,event:s,input:e.input,value:e.value,self:u.self,system:u.system,parent:u.self._parent,children:e.children}),c=t&&i?Ls(e.context,i):e.context;return o||c!==e.context||r||void 0!==e._stateInput?[Us(e,n,c,r?Ws(h.input,c,s):void 0),Cs]:[e,Cs]}}if("function"==typeof h&&h.length<2&&!d?.exit){const n=h(j({context:e.context,event:s,input:e.input,value:e.value,children:e.children},u),void 0);if(n){const o=n.target??e.value;if(!t.states[o]?.entry){const t=void 0!==n.context,r=void 0!==n.input,i=t&&n.context?Ls(e.context,n.context):e.context;return o!==e.value||i!==e.context||r||void 0!==e._stateInput?[Us(e,o,i,r?Ws(n.input,i,s):void 0),Cs]:[e,Cs]}}}let f=e;const l=[],p=[s];let y=0;for(;p.length;){if(++y>1e3)throw new Error("FSM microstep count exceeded 1000");const e=p.shift(),s=c(f,e,u,p);if(!s)continue;const o=s.target??f.value,i=o!==f.value;if(i){const[s,n]=r(f,e,u,t.states[f.value]?.exit,f._stateInput,p);f=s,l.push(...n)}let a=f.context;void 0!==s.context&&(a=Ls(a,s.context));const d=void 0!==s.input,h=d?Ws(s.input,a,e):void 0;(i||a!==f.context||d||void 0!==f._stateInput)&&(f=Us(f,o,a,h));const[v,m]=n(f,e,u,s.actions);if(f=v,l.push(...m),i){const[s,n]=r(f,e,u,t.states[o]?.entry,h,p);f=s,l.push(...n)}}return[f,l]},u={id:t.id,config:t,transition:(...t)=>{const[e,s]=a(...t);return Z(t[2],t[0],[e,[...s,...Q(s)]])},initialTransition:(n,o)=>{const i=function(t,e){return"function"==typeof t?t({input:e}):t??{}}(t.context,n),c=function(t,e,s,n,o){return{status:"active",output:void 0,error:void 0,value:t,context:e,input:s,children:{},timers:{},_nextTimerId:0,_stateInput:o,machine:n}}(t.initial,i,n,e),u=[];let[d,h]=r(c,{type:s},o,t.states[t.initial]?.entry,void 0,u);for(h.length||(h=[]);u.length;){const[t,e]=a(d,u.shift(),o);d=t,h.push(...e)}return Z(o,void 0,[d,[...h,...Q(h)]])},getInitialSnapshot:(t,e)=>u.initialTransition(e,t)[0],getPersistedSnapshot:({machine:t,...e})=>e,restoreSnapshot:t=>({...t,machine:e})};return u},t.createListenerLogic=w,t.createLogic=ms,t.createMachine=Ps,t.createMachineFromConfig=function t(e,s={}){const n=function(t,e){return{actions:e.actions??{},guards:e.guards??{},actors:e.actors??{},delays:{...Zs(t.delays),...e.delays??{}},evaluators:e.evaluators??{}}}(e,s),o=function(t,e){function s(s,n){const o=s["@lang"]??t;if(!o)throw new Error(`Missing @exprLang for expression at ${n}`);const r=e.evaluators[o];if(!r)throw new Error(`Missing evaluator for @lang '${o}' at ${n}`);return r}function n(t,e,n,o){const r=Hs(t)?"expr":"code",i=Hs(t)?t["@expr"]:t["@code"];return s(t,o)({source:i,kind:r,slot:e,scope:n,path:o})}function o(t,e,s,r){if(Gs(t))return n(t,e,s,r);if(Array.isArray(t))return t.map((t,n)=>o(t,e,s,Xs(r,n)));if(!t||"object"!=typeof t)return t;const i={};for(const n of Object.keys(t))i[n]=o(t[n],e,s,Xs(r,n));return i}function r(t,e){return{context:t.context,event:t.event,input:t.input,self:t.self,children:t.children,params:t.params,...e}}return{evaluateResolvable:n,resolveValue:o,makeScope:r,getDurationConfig:function(t,e){return Gs(t)?s=>Js(o(t,"delay",r(s),e)):t},assertResolvable:function t(e,n){if(Gs(e))s(e,n);else if(Array.isArray(e))e.forEach((e,s)=>t(e,Xs(n,s)));else if(e&&"object"==typeof e)for(const s of Object.keys(e))t(e[s],Xs(n,s))}}}(e["@exprLang"],n),{evaluateResolvable:r,resolveValue:i,makeScope:c,getDurationConfig:a}=o;function u(t,s,n){if(t)return Gs(t)?e=>!!r(t,s,c(e),n):o=>{const r=i(t.params,s,c(o),`${n}.params`),a=e.guards?.[t.type];if(a){const e=u(a.when,"guard",`$.guards.${t.type}.when`);return!!e?.({...o,params:r})}const d=o.guards?.[t.type];if(!d)throw new Error((h=t.type,f=o.guards??{},`Guard '${h}' is not implemented in machine '${e.id??"(machine)"}'. Available guards: ${Object.keys(f).map(t=>`'${t}'`).join(", ")||"(none)"}.`));var h,f;return d(o,r)}}function d(t,e){if(t)return Gs(t)?s=>r(t,"choice",c(s),e):(Ys(t,e),s=>{for(let n=0;n<t.length;n++){const o=t[n],r=u(o.when,"choice",`${e}[${n}].when`);if(!r||r(s))return{target:o.target,context:o.context?i(o.context,"transitionContext",c(s),`${e}[${n}].context`):void 0,input:void 0!==o.input?i(o.input,"input",c(s),`${e}[${n}].input`):void 0,description:o.description,reenter:o.reenter,meta:o.meta}}throw new Error(`Choice state at ${e} did not match any branch.`)})}const h={},f=[];let l=null;const p=[];function y(t,e){if(!t||"function"==typeof t)return t;if(Gs(t))return s=>r(t,"transition",c(s),e);const{guard:s,...n}=t;if(!s)return n;const o=u({type:s},"guard",e);return t=>o(t)?n:void 0}function v(e){return(Array.isArray(e)?e:[e]).map(e=>{const s=e;let o;return o=s._nestedMachineJSON?t(s._nestedMachineJSON,n):n.actors[e.src]??e.src,{src:o,id:e.id,registryKey:e.registryKey,input:void 0!==e.input?t=>i(e.input,"input",c(t),"$.invoke.input"):void 0,onDone:e.onDone?x(e.onDone):void 0,onError:e.onError?x(e.onError):void 0,onSnapshot:e.onSnapshot?x(e.onSnapshot):void 0,timeout:a(e.timeout,"$.invoke.timeout"),onTimeout:e.onTimeout?x(e.onTimeout):void 0}})}function m(t,e,s){const n=s instanceof Error?s.message:"string"==typeof s?s:"unknown error";t.enq.raise({type:"xstate.error.execution",error:{tagname:e,message:n,line:NaN,column:NaN,reason:n},_scxmlEventType:"platform",_scxmlEventName:"error.execution",_scxmlEventData:{tagname:e,message:n,line:NaN,column:NaN,reason:n}}),t.errored=!0}function g(t,s,n,o,r,i){const c=e.actions?.[t.type];if(!c)return n(s.actions[t.type],o),{context:void 0,errored:r.errored};if(i.includes(t.type))return m(r,"action",new Error(`Circular action reference: ${i.concat(t.type).join(" -> ")}`)),{context:void 0,errored:!0};return _(Array.isArray(c)?c:[c],{...s,params:o},n,r,i.concat(t.type))}function _(t,e,s,n,o=[]){const a=n??{enq:s,errored:!1};let u;for(const n of t){if(a.errored)break;if(Gs(n)){const t=r(n,"action",c(e,{params:e.params,enq:s}),"$.actions");t&&"object"==typeof t&&"context"in t&&t.context&&(u??={},Object.assign(u,t.context))}else if(on(n))switch(n.type){case"@xstate.raise":{const t=void 0!==n.delay,o=i(n.event,"actionParams",c(e,{params:e.params}),"$.actions.event"),r=t||void 0!==n.id?{...o,...t?{_scxmlExternal:!0}:{},...void 0!==n.id?{_scxmlSendId:n.id}:{}}:o;s.raise(r,{id:n.id,delay:n.delay});break}case"@xstate.cancel":s.cancel(n.id);break;case"@xstate.log":s.log(...n.args);break;case"@xstate.emit":s.emit(i(n.event,"actionParams",c(e,{params:e.params}),"$.actions.event"));break;case"@xstate.assign":u??={},Object.assign(u,i(n.context,"transitionContext",c(e,{params:e.params}),"$.actions.context"));break;default:throw new Error(`Unknown built-in action: ${n.type}`)}else if("scxml.assign"===n.type){const t=n,s={...e.context,...u};let o;try{o=sn(s,t.expr,e.event,e.self)}catch(t){m(a,"assign",t);continue}if(t.location.includes(".")){m(a,"assign",new Error(`Invalid assign location: ${t.location}`));continue}u??={},u[t.location]=o}else if("scxml.raise"===n.type){const t=n,o={...e.context,...u};let r,i,c,d;try{if(r=t.eventexpr?sn(o,t.eventexpr,e.event,e.self):t.event||"unknown",r=Fs(r),i={type:r,_scxmlEventName:qs(r)},t.params)for(const s of t.params)i[s.name]=sn(o,s.expr,e.event,e.self);c=t.targetexpr?sn(o,t.targetexpr,e.event,e.self):t.target;const s="#_internal"===c;d=t.delayexpr?Js(sn(o,t.delayexpr,e.event,e.self)):s?void 0:t.delay}catch(t){m(a,"send",t);continue}const h="#_internal"===c,f="#_parent"===c;if("string"==typeof c&&c.length>0&&!c.startsWith("#_")){m(a,"send",new Error(`Invalid send target: ${c}`));continue}if(void 0!==t.id&&(i._scxmlSendId=t.id),f&&e.parent)s.sendTo(e.parent,i,void 0!==d?{delay:d}:void 0);else if("string"!=typeof c||!c.startsWith("#_")||f||h)h?s.raise(i,{id:t.id,delay:d}):(i._scxmlExternal=!0,s.sendTo(e.self,i,{id:t.id,delay:d}));else{const n=c.slice(2),o=e.children?.[n];if(o)s.sendTo(o,i);else if(n.startsWith("scxml_")&&n!==`scxml_${tn}`){const t=`Unable to dispatch event to target: ${c}`;s.raise({type:"xstate.error.communication",error:{tagname:"send",message:t,line:NaN,column:NaN,reason:t},_scxmlEventType:"platform",_scxmlEventName:"error.communication",_scxmlEventData:{tagname:"send",message:t,line:NaN,column:NaN,reason:t}})}else i._scxmlExternal=!0,s.sendTo(e.self,i,{id:t.id,delay:d})}}else if("scxml.cancel"===n.type){const t=n,o={...e.context,...u};try{const n=sn(o,t.sendidexpr,e.event,e.self);n&&s.cancel(n)}catch{}}else if("scxml.script"===n.type){const t=n,s={...e.context,...u};try{const e=nn(s,t.code);u??={},Object.assign(u,e)}catch(t){m(a,"script",t)}}else if("scxml.foreach"===n.type){const t=n,o={...e.context,...u},r=t=>/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(t);if(!r(t.item)||t.index&&!r(t.index)){m(a,"foreach",new Error("foreach item/index is not a legal location"));continue}let i;try{i=sn(o,t.array,e.event,e.self)}catch(t){m(a,"foreach",t);continue}if(!Array.isArray(i)){m(a,"foreach",new Error("foreach array is not iterable"));continue}u??={};for(let n=0;n<i.length;n++){u[t.item]=i[n],t.index&&(u[t.index]=n);const o={...e,context:{...e.context,...u}},r=_(t.actions,o,s,a);if(r.context&&Object.assign(u,r.context),a.errored)break}}else if("scxml.block"===n.type){const t=n,o={...e,context:{...e.context,...u}},r=_(t.actions,o,s);if(r.context){u??={};for(const t of Object.keys(r.context))r.context[t]!==e.context[t]&&(u[t]=r.context[t])}}else if("scxml.if"===n.type){const t=n,o={...e.context,...u};for(const n of t.branches){let t;if(n.cond)try{t=!!sn(o,n.cond,e.event,e.self)}catch(e){m(a,"if",e),t=!1}else t=!0;if(t){if(n.actions.length){const t={...e,context:o},r=_(n.actions,t,s,a);if(r.context){u??={};for(const t of Object.keys(r.context))r.context[t]!==e.context[t]&&(u[t]=r.context[t])}}break}}}else{const t=g(n,e,s,i(n.params,"actionParams",c(e,{params:e.params}),"$.actions.params"),a,o);t.context&&(u??={},Object.assign(u,t.context))}}return{context:u?{...e.context,...u}:void 0,errored:a.errored}}function x(t){const e=Array.isArray(t)?t:[t];return e.map((t,s)=>{if(Gs(t))return(n,o)=>r(t,"transition",c(n,{enq:o}),"$.transition"+(e.length>1?`[${s}]`:""));const n=Array.isArray(t.target)?t.target[0]:t.target,o=t.target,a=u(t.guard,"guard","$.transition.guard"),d=e=>t.context?i(t.context,"transitionContext",c(e),"$.transition.context"):void 0,p=e=>void 0!==t.input?i(t.input,"input",c(e),"$.transition.input"):void 0;return a||t.actions?.length?a&&!t.actions?.length?t.context?{matches:t.matches,guard:a,to:e=>({target:o,context:d(e),reenter:t.reenter}),description:t.description,meta:t.meta,input:void 0!==t.input?p:void 0}:{matches:t.matches,target:o,guard:a,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0}:n?{matches:t.matches,guard:a,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0,to:(e,s)=>{const r=d(e);if(t.actions?.length){const e=n.replace(/^#/,"");h[e]=t.actions,f.includes(t.actions)||f.push(t.actions)}return{target:o,context:r,reenter:t.reenter}}}:{matches:t.matches,guard:a,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0,to:(e,s)=>{const n=d(e);if(t.actions?.length){f.includes(t.actions)||f.push(t.actions),l??=e.context;const o=_(t.actions,e,s);if(o.context)return{context:{...n,...o.context}}}return n?{context:n}:{}}}:t.context?{matches:t.matches,to:e=>({target:o,context:d(e),reenter:t.reenter}),description:t.description,meta:t.meta,input:void 0!==t.input?p:void 0}:{matches:t.matches,target:o,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0}})}if(e.delays)for(const t of Object.keys(e.delays)){const s=e.delays[t];"number"==typeof s?n.delays[t]=s:"string"==typeof s?n.delays[t]=Js(s):s&&"object"==typeof s&&(n.delays[t]=e=>Js(i(s.duration,"delay",c(e),`$.delays.${t}.duration`)))}!function(t,e,s){const{assertResolvable:n}=s;function o(s,r){if(s)if(Gs(s))n(s,r);else if(n(s.params,`${r}.params`),t.guards?.[s.type])o(t.guards[s.type].when,`$.guards.${s.type}.when`);else if(!e.guards[s.type]&&!["scxml.cond","xstate.stateIn","xstate.not"].includes(s.type))throw new Error(`Missing guard source "${s.type}"`)}function r(s,o,i=[]){if(Gs(s))return void n(s,o);if(!s||"string"!=typeof s.type)throw new Error(`Invalid action at ${o}`);if(n(s.params,`${o}.params`),s.type.startsWith("@xstate.")||s.type.startsWith("scxml."))return void n(s,o);const c=t.actions?.[s.type];if(c){if(i.includes(s.type))throw new Error(`Circular action reference: ${i.concat(s.type).join(" -> ")}`);const t=Array.isArray(c)?c:[c];return void t.forEach((e,n)=>r(e,`${o}.actions.${s.type}${t.length>1?`[${n}]`:""}`,i.concat(s.type)))}if(!e.actions[s.type])throw new Error(`Missing action source "${s.type}"`)}function i(t,e){Qs(t).forEach((t,s)=>r(t,`${e}[${s}]`))}function c(t,e){(Array.isArray(t)?t:t?[t]:[]).forEach((s,r)=>{const c=Array.isArray(t)?`${e}[${r}]`:e;Gs(s)?n(s,c):(o(s.guard,`${c}.guard`),i(s.actions,`${c}.actions`),n(s.context,`${c}.context`),n(s.input,`${c}.input`))})}if(t.actions)for(const e of Object.keys(t.actions)){const s=Array.isArray(t.actions[e])?t.actions[e]:[t.actions[e]];s.forEach((t,n)=>r(t,`$.actions.${e}${s.length>1?`[${n}]`:""}`,[e]))}if(t.guards)for(const e of Object.keys(t.guards))o(t.guards[e].when,`$.guards.${e}.when`);if(t.delays)for(const e of Object.keys(t.delays)){const s=t.delays[e];n(s&&"object"==typeof s&&"duration"in s?s.duration:s,`$.delays.${e}`)}!function s(r,a){if(("history"===r.type||void 0!==r.history)&&!("string"==typeof r.target&&r.target.trim().length>0||Array.isArray(r.target)&&r.target.length>0&&r.target.every(t=>t.trim().length>0)))throw new Error(`History state at ${a} must declare a non-empty target.`);if(n(r.context,`${a}.context`),n(r.input,`${a}.input`),n(r.output,`${a}.output`),n(r.timeout,`${a}.timeout`),i(r.entry,`${a}.entry`),i(r.exit,`${a}.exit`),"choice"===r.type){if(!r.choice)throw new Error(`Choice state at ${a} must declare choice.`);Array.isArray(r.choice)?(Ys(r.choice,`${a}.choice`),r.choice.forEach((t,e)=>{o(t.when,`${a}.choice[${e}].when`),n(t.context,`${a}.choice[${e}].context`),n(t.input,`${a}.choice[${e}].input`)})):n(r.choice,`${a}.choice`)}if(Gs(r.route)&&n(r.route,`${a}.route`),r.invoke&&(Array.isArray(r.invoke)?r.invoke:[r.invoke]).forEach((t,s)=>{const o=`${a}.invoke${Array.isArray(r.invoke)?`[${s}]`:""}`;if(!t._nestedMachineJSON&&!e.actors[t.src])throw new Error(`Missing actor source "${t.src}"`);n(t.input,`${o}.input`),n(t.timeout,`${o}.timeout`),c(t.onDone,`${o}.onDone`),c(t.onError,`${o}.onError`),c(t.onSnapshot,`${o}.onSnapshot`),c(t.onTimeout,`${o}.onTimeout`)}),r.on)for(const t of Object.keys(r.on))c(r.on[t],`${a}.on.${t}`);if(r.after)for(const s of Object.keys(r.after)){if(Number.isNaN(Number(s))&&void 0===it(s)&&!t.delays?.[s]&&!e.delays[s])throw new Error(`Missing delay source "${s}"`);c(r.after[s],`${a}.after.${s}`)}if(c(r.always,`${a}.always`),c(r.onError,`${a}.onError`),c(r.onTimeout,`${a}.onTimeout`),r.states)for(const t of Object.keys(r.states))s(r.states[t],`${a}.states.${t}`)}(t,"$")}(e,n,o);const b=function t(e,s){const n=Qs(e.entry),o=e.id||s;var i,c;return{id:e.id,initial:e.initial,type:e.type,history:e.history,target:e.target,description:e.description,tags:e.tags,input:e.input,timeout:a(e.timeout,`$.states.${s}.timeout`),states:e.states?Object.entries(e.states).reduce((e,[s,n])=>(e[s]=t(n,s),e),{}):void 0,on:e.on?Object.entries(e.on).reduce((t,[e,s])=>(t[e]=x(s),t),{}):void 0,always:e.always?x(e.always):void 0,onError:e.onError?x(e.onError):void 0,choice:d(e.choice,`$.states.${s}.choice`),route:y(e.route,`$.states.${s}.route`),after:e.after?Object.entries(e.after).reduce((t,[e,s])=>(t[e]=x(s),t),{}):void 0,onTimeout:e.onTimeout?x(e.onTimeout):void 0,entry:"choice"===e.type?void 0:(t,e)=>{for(;p.length;){const t=p.shift();e.raise({type:"xstate.error.execution",error:t,_scxmlEventType:"platform",_scxmlEventName:"error.execution",_scxmlEventData:t})}let s;if(l&&f.length>0&&Object.keys(h).length>0){let n=l;for(const s of f){const o=_(s,{...t,context:n},e);o.context&&(n=o.context)}f.length=0,l=null;for(const t of Object.keys(h))delete h[t];s=n}else{const n=o?h[o]:void 0;if(n){delete h[o];const r=_(n,t,e);r.context&&(s=r.context)}l=null,f.length=0}if(n.length){const o=s?{...t,context:s}:t,r=_(n,o,e);r.context&&(s=r.context)}return{context:s}},exit:e.exit?(c=Qs(e.exit),(t,e)=>_(c,t,e)):void 0,invoke:e.invoke?v(e.invoke):void 0,meta:e.meta,output:e._scxmlDonedata?(i=e._scxmlDonedata,({context:t,event:e,self:s})=>{try{if(i.params&&i.params.length){const n={};for(const o of i.params)n[o.name]=sn(t,o.expr,e,s);return n}if(void 0!==i.contentExpr)return sn(t,i.contentExpr,e,s);if(void 0!==i.contentText)try{return sn(t,i.contentText,e,s)}catch{return i.contentText}}catch(t){const e=t instanceof Error?t.message:"string"==typeof t?t:"unknown error";p.push({tagname:"donedata",message:e,line:NaN,column:NaN,reason:e})}}):Gs(e.output)?({context:t,event:n,self:o})=>r(e.output,"output",{context:t,event:n,self:o},`$.states.${s}.output`):e.output}}(e),w=e.context?{context:t=>i(e.context,"context",t,"$.context")}:{};en=e.id||"",tn="session_scxml";const $={"scxml.cond":({context:t,event:e,self:s},n)=>{const o=n?.expr;if(!o)return!0;try{return!!sn(t,o,e,s)}catch(t){const e=t instanceof Error?t.message:"string"==typeof t?t:"unknown error";return p.push({tagname:"cond",message:e,line:NaN,column:NaN,reason:e}),!1}},"xstate.stateIn":(t,e)=>{const s=e?.stateId;if(!s)return!1;const n=s.replace(/^#/,""),o=t._snapshot;return!!o?.nodes&&o.nodes.some(t=>t.id===n)},"xstate.not":(t,e)=>{const s=e?.guard,n=s&&t.guards?.[s.type];if(!n)throw new Error(`Guard '${s?.type}' referenced by 'xstate.not' is not implemented.`);return!n(t,s.params)}},S=Ps({...b,...w,version:e.version}).provide({actions:n.actions,actors:n.actors,guards:{...$,...n.guards},delays:n.delays});return S._json=e,S},t.createObservableLogic=function(t){const e="function"==typeof t?t:t.run,n="function"==typeof t?void 0:t.schemas;return ms({validator:"function"==typeof t?void 0:t.validator,schemas:n,context:void 0,run:(t,n)=>{const{event:o,input:r,self:i,system:c}=t;switch(o.type){case _s:return{context:o.data};case xs:return{status:"error",error:o.data,input:void 0,effects:{observable:{status:"error",error:o.data}}};case bs:return{status:"done",input:void 0,effects:{observable:{status:"done"}}}}o.type===s&&n.effect((t=c)=>{const s=i,n=e=>{t.sendEvent(s,s,e)},o=e({input:r,system:c,self:i,emit:e=>{t.emitEvent(s,e)}}).subscribe({next:t=>{n({type:_s,data:t})},error:t=>{n({type:xs,data:t})},complete:()=>{n({type:bs})}});return()=>o.unsubscribe()})}})},t.createStateConfig=function(t){return t},t.createSubscriptionLogic=S,t.createSystem=function(t={}){const e={},s=[];return{createActor(t,n){const o=ds(t,{...n,_systemRef:e});return(()=>{const t=e.current;if(t)for(const e of s)e.active&&!e.subscription&&(e.subscription=t.inspect(e.observer))})(),o},get:t=>e.current?.get(t),getAll:()=>e.current?.getAll()??{},inspect(t){const n=e.current;if(n)return n.inspect(t);const o={observer:t,active:!0};return s.push(o),{unsubscribe(){o.active=!1,o.subscription?.unsubscribe()}}},setup:vn}},t.executeEffects=async function(t,e){for(const s of t)await s.exec(e)},t.getInitialMicrosteps=function(t,...[e]){const s=kt(t),n=p(e),o=[],r=t._getPreInitialState(s,n),i=Object.values(r.children).filter(Boolean).map(t=>H(t)),c=ce(t.root,r,s,n,o),{microsteps:a}=de(c[0],n,s,o,[[c[0],[...i,...c[1]]]]);return bn(a,s)},t.getInitialSnapshot=function(t,...[e]){const s=kt(t);return t.initialTransition(e,s)[0]},t.getMicrosteps=function(t,e,s){const n=kt(t,e),{microsteps:o}=de(e,s,n,[]);return bn(o,n,e)},t.getNextSnapshot=function(t,e,s){const n=kt(t,e),o=t.transition(e,s,n),r=Array.isArray(o)?o[0]:o;return mt(n,r,!1),r===e?r:_t(n,r)},t.getNextTransitions=function(t){const e=[],s=t.nodes.filter(jt),n=new Set;for(const t of s)for(const s of[t].concat(Ot(t,void 0)))if(!n.has(s.id)){n.add(s.id);for(const[,t]of s.transitions.entries())e.push(...t);s.always&&e.push(...s.always)}return e},t.getStateNodes=Xt,t.initialTransition=function(t,...[e]){const s=kt(t),[n,o]=Z(s,void 0,t.initialTransition(e,s));return mt(s,n,!1),[_t(s,n),o]},t.isBuiltInExecutableAction=Y,t.isMachineSnapshot=be,t.isTypeSchema=function(t){return!!t&&"object"==typeof t&&"~standard"in t&&"xstate.types"===t["~standard"].vendor},t.listenerLogic=$,t.machineConfigToJSON=dn,t.machineVersions=function(t,e){const s=new Map,n=new Map,o=t[0].id;for(const e of t){if(void 0===e.version)throw new Error(`Machine '${e.id}' must define a version.`);if("*"===e.version)throw new Error("Machine version '*' is reserved for wildcard migrations.");if(e.id!==o)throw new Error(`Machine '${e.id}' does not match machine ID '${o}'.`);const t=`${e.id}\0${e.version}`;if(s.has(t))throw new Error(`Duplicate machine identity '${e.id}' version '${e.version}'.`);s.set(t,e),fn(e)&&n.set(t,e)}if(void 0!==e?.unversioned&&!s.has(`${o}\0${e.unversioned}`))throw new Error(`Unversioned snapshot version '${e.unversioned}' is not retained for machine '${o}'.`);const r=async t=>{if(!hn(t))throw new Error("Persisted snapshot is missing machine identity.");let n,r;if(hn(t.machine)){if(({id:n,version:r}=t.machine),"string"!=typeof n||"string"!=typeof r)throw new Error("Persisted snapshot has an invalid machine identity.")}else if("string"==typeof t.version)n=o,r=t.version;else{if(void 0!==t.version||void 0===e?.unversioned)throw new Error("Persisted snapshot is missing machine identity.");n=o,r=e.unversioned}if(void 0!==t.version&&"string"!=typeof t.version)throw new Error("Persisted snapshot has an invalid version.");if(void 0!==t.version&&t.version!==r)throw new Error(`Persisted snapshot version '${t.version}' conflicts with machine version '${r}'.`);const i=s.get(`${n}\0${r}`);if(!i)throw new Error(`Unknown machine identity '${n}' version '${r}'.`);if(!("snapshotSchema"in(c=i))||void 0===c.snapshotSchema)throw new Error(`Machine version '${r}' does not define a snapshot schema.`);var c;const a=await ln(i.snapshotSchema,t,`snapshot for machine '${n}' version '${r}'`);return{source:i,...fn(i)&&{machine:i},snapshot:{...a,machine:{id:n,version:r}}}};return{parseSnapshot:r,async adaptEvents(t,e){const r=n.get(`${o}\0${e.to}`);if(!r)throw new Error(`Target version '${e.to}' is not backed by a machine for '${o}'.`);const i=e.from.id??o,c=s.get(`${i}\0${e.from.version}`);let a,u=!1;const d=c&&("eventSchema"in(h=c)&&void 0!==h.eventSchema);var h;if(d){let s;try{s=await yn(t,c)}catch(t){a=t,u=!0}if(s){if(c===r)return s;const t=e.adapters[c.version];if(t)return yn(await t(s),r)}}const f=e.adapters["*"];if(f)return yn(await f(t,e.from),r);if(d){if(u)throw a instanceof Error?a:new Error(`Unable to validate event history for machine '${c.id}' version '${c.version}'.`,{cause:a});throw new Error(`No event adapter from version '${c.version}' to '${r.version}' for machine '${r.id}'.`)}if(c)throw new Error(`Machine version '${c.version}' does not define an event schema; only the '*' adapter can handle its event history.`);throw new Error(`Unknown event history source '${i}' version '${e.from.version}'.`)},async migrateSnapshot(t,e){const s=n.get(`${o}\0${e.to}`);if(!s)throw new Error(`Target version '${e.to}' is not backed by a machine for '${o}'.`);let i,c;try{i=await r(t)}catch(t){c=t}if(i){if(i.source.version===s.version)return pn(i.snapshot,s);const t=e.migrations[i.source.version];if(t)return pn(await t(i.snapshot),s)}const a=e.migrations["*"];if(!a){if(i)throw new Error(`No snapshot migration from version '${i.source.version}' to '${s.version}' for machine '${s.id}'.`);throw c}const u=await a(t,function(t,e){return hn(t)?hn(t.machine)?{id:"string"==typeof t.machine.id?t.machine.id:void 0,version:"string"==typeof t.machine.version?t.machine.version:void 0}:{id:"string"==typeof t.version?e:void 0,version:"string"==typeof t.version?t.version:void 0}:{}}(t,o));return pn(u,s)}}},t.mapState=function(t,e){const s=[],n=(t,e)=>{let s=t;for(const t of e){if(!s?.states)return;const e=s.states;if(!(t in e))return;s=e[t]}return s},o=new Set;for(const r of t.nodes.filter(jt)){let i=r;for(;i&&!o.has(i);){o.add(i);const r=n(e,i.path);r?.map&&s.push({stateNode:i,result:r.map(t)}),i=i.parent}}return s},t.matchesState=Ne,t.pathToStateValue=Ce,t.serializeMachine=function(t){return t._json??dn(t.config)},t.setup=vn,t.subscriptionLogic=E,t.toObserver=Be,t.toPromise=function(t){return new Promise((e,s)=>{t.subscribe({complete:()=>{e(t.getSnapshot().output)},error:s})})},t.transition=function(t,e,s){const n=kt(t,e);mt(n,e,!1);const[o,r]=Z(n,e,t.transition(e,s,n));return mt(n,o,!1),[o===e?o:_t(n,o),r]},t.types=function(){return{"~standard":{version:1,vendor:"xstate.types",validate:t=>({value:t})}}},t.waitFor=function(t,e,s){const n={...wn,...s};return new Promise((s,o)=>{const{signal:r}=n;if(r?.aborted)return void o(r.reason);let i=!1;const c=n.timeout===1/0?void 0:setTimeout(()=>{a(),o(new Error(`Timeout of ${n.timeout} ms exceeded`))},n.timeout),a=()=>{clearTimeout(c),i=!0,h?.unsubscribe(),d&&r.removeEventListener("abort",d)};function u(t){e(t)&&(a(),s(t))}let d,h;u(t.getSnapshot()),i||(r&&(d=()=>{a(),o(r.reason)},r.addEventListener("abort",d)),h=t.subscribe({next:u,error:t=>{a(),o(t)},complete:()=>{a(),o(new Error("Actor terminated without satisfying predicate"))}}),i&&h.unsubscribe())})},Object.defineProperty(t,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=xstate.umd.min.js.map
|