@doeixd/machine 0.0.17 → 0.0.19
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/README.md +174 -13
- package/dist/cjs/development/core.js.map +2 -2
- package/dist/cjs/development/extract.js +500 -0
- package/dist/cjs/development/extract.js.map +7 -0
- package/dist/cjs/development/index.js +135 -439
- package/dist/cjs/development/index.js.map +4 -4
- package/dist/cjs/production/core.js +1 -1
- package/dist/cjs/production/extract.js +5 -0
- package/dist/cjs/production/index.js +4 -5
- package/dist/esm/development/core.js.map +2 -2
- package/dist/esm/development/extract.js +486 -0
- package/dist/esm/development/extract.js.map +7 -0
- package/dist/esm/development/index.js +135 -446
- package/dist/esm/development/index.js.map +4 -4
- package/dist/esm/production/core.js +1 -1
- package/dist/esm/production/extract.js +5 -0
- package/dist/esm/production/index.js +4 -5
- package/dist/types/extract.d.ts +15 -1
- package/dist/types/extract.d.ts.map +1 -1
- package/dist/types/index.d.ts +58 -8
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/matcher.d.ts +318 -0
- package/dist/types/matcher.d.ts.map +1 -0
- package/package.json +13 -1
- package/src/extract.ts +61 -61
- package/src/generators.ts +6 -6
- package/src/index.ts +89 -10
- package/src/matcher.ts +544 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var N=Object.defineProperty;var Ie=Object.getOwnPropertyDescriptor;var Le=Object.getOwnPropertyNames;var Ve=Object.prototype.hasOwnProperty;var Ue=(e,t)=>{for(var n in t)N(e,n,{get:t[n],enumerable:!0})},qe=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Le(t))!Ve.call(e,o)&&o!==n&&N(e,o,{get:()=>t[o],enumerable:!(r=Ie(t,o))||r.enumerable});return e};var Ye=e=>qe(N({},"__esModule",{value:!0}),e);var bt={};Ue(bt,{BoundMachine:()=>k,CANCEL:()=>L,META_KEY:()=>xe,MachineBase:()=>m,MiddlewareBuilder:()=>P,MultiMachineBase:()=>G,action:()=>Ce,bindTransitions:()=>te,branch:()=>yt,call:()=>Be,chain:()=>at,combine:()=>lt,combineFactories:()=>Ge,compose:()=>it,composeTyped:()=>v,createAsyncMachine:()=>oe,createCustomMiddleware:()=>ot,createEnsemble:()=>Ee,createEnsembleFactory:()=>Je,createEvent:()=>Re,createFetchMachine:()=>rt,createFlow:()=>de,createFunctionalMachine:()=>re,createMachine:()=>p,createMachineBuilder:()=>_e,createMachineFactory:()=>Ne,createMiddleware:()=>g,createMiddlewareFactory:()=>Tt,createMiddlewareRegistry:()=>dt,createMultiMachine:()=>Ze,createMutableMachine:()=>et,createParallelMachine:()=>I,createPipeline:()=>ut,createRunner:()=>we,createTransition:()=>Pe,createTransitionExtender:()=>ne,createTransitionFactory:()=>ke,delegateToChild:()=>tt,describe:()=>fe,extendTransitions:()=>K,guard:()=>F,guardAsync:()=>A,guarded:()=>pe,hasState:()=>He,inDevelopment:()=>st,invoke:()=>ge,isConditionalMiddleware:()=>Mt,isMiddlewareContext:()=>ht,isMiddlewareError:()=>ft,isMiddlewareFn:()=>ee,isMiddlewareHooks:()=>pt,isMiddlewareOptions:()=>gt,isMiddlewareResult:()=>xt,isNamedMiddleware:()=>Ct,isPipelineConfig:()=>mt,isState:()=>Se,logState:()=>Oe,matchMachine:()=>We,mergeContext:()=>je,metadata:()=>be,middlewareBuilder:()=>Fe,next:()=>De,overrideTransitions:()=>ze,pipeTransitions:()=>ve,run:()=>z,runAsync:()=>le,runMachine:()=>$e,runSequence:()=>ce,runWithDebug:()=>ue,runWithEnsemble:()=>Xe,runWithRunner:()=>Qe,setContext:()=>E,state:()=>Ke,step:()=>ae,stepAsync:()=>ye,toggle:()=>nt,transitionTo:()=>he,when:()=>B,whenContext:()=>ct,whenGuard:()=>me,whenGuardAsync:()=>Te,withAnalytics:()=>U,withDebugging:()=>Ae,withErrorReporting:()=>J,withHistory:()=>S,withLogging:()=>V,withPerformanceMonitoring:()=>Q,withPermissions:()=>Y,withRetry:()=>X,withSnapshot:()=>R,withTimeTravel:()=>j,withValidation:()=>q,yieldMachine:()=>se});module.exports=Ye(bt);function z(e,t){let n=e(t),r=t;for(;;){let{value:o,done:i}=n.next(r);if(i)return o;r=o}}function ae(e){return function*(){return yield e}()}function se(e){return e}function ce(e,t){return t.reduce((n,r)=>z(r,n),e)}function de(e){return e}function ue(e,t,n=(r,o)=>{console.log(`Step ${r}:`,o.context)}){let r=e(t),o=t,i=0;for(n(i,o);;){let{value:a,done:s}=r.next(o);if(s)return console.log("Final:",a),a;o=a,i++,n(i,o)}}async function le(e,t){let n=e(t),r=t;for(;;){let{value:o,done:i}=await n.next(r);if(i)return o;r=o}}async function*ye(e){return yield e}var xe=Symbol("MachineMeta"),Me=Symbol("__machine_runtime_meta__");function b(e,t){let n=e[Me]||{},r={...n,...t};t.guards&&n.guards?r.guards=[...t.guards,...n.guards]:t.guards&&(r.guards=[...t.guards]),t.actions&&n.actions?r.actions=[...t.actions,...n.actions]:t.actions&&(r.actions=[...t.actions]),Object.defineProperty(e,Me,{value:r,enumerable:!1,writable:!1,configurable:!0})}function he(e,t){return b(t,{target:e.name||e.toString()}),t}function fe(e,t){return b(t,{description:e}),t}function pe(e,t){return b(t,{guards:[e]}),t}function ge(e,t){return b(t,{invoke:{src:e.src,onDone:e.onDone.name||e.onDone.toString(),onError:e.onError.name||e.onError.toString(),description:e.description}}),t}function Ce(e,t){return b(t,{actions:[e]}),t}function F(e,t,n={}){let{onFail:r="throw",errorMessage:o,description:i}=n,a={...n,onFail:r,errorMessage:o,description:i},s=function(...u){let c=typeof this=="object"&&"context"in this,d=c?this.context:this;if(e(d,...u)){let M=c?this.context:this;return t.apply(M,u)}else if(r==="throw"){let M=o||"Guard condition failed";throw new Error(M)}else if(r==="ignore"){if(c)return this;throw new Error('Cannot use "ignore" mode with context-only binding. Use full machine binding or provide fallback.')}else if(typeof r=="function"){if(c)return r.apply(this,u);throw new Error("Cannot use function fallback with context-only binding. Use full machine binding.")}else return r};return Object.defineProperty(s,"__guard",{value:!0,enumerable:!1}),Object.defineProperty(s,"condition",{value:e,enumerable:!1}),Object.defineProperty(s,"transition",{value:t,enumerable:!1}),Object.defineProperty(s,"options",{value:a,enumerable:!1}),b(s,{description:i||"Synchronous guarded transition",guards:[{name:"runtime_guard",description:i||"Synchronous condition check"}]}),s}function A(e,t,n={}){let{onFail:r="throw",errorMessage:o,description:i}=n,a={...n,onFail:r,errorMessage:o,description:i},s=async function(...u){let c=typeof this=="object"&&"context"in this,d=c?this.context:this;if(await Promise.resolve(e(d,...u))){let M=c?this.context:this;return t.apply(M,u)}else if(r==="throw"){let M=o||"Guard condition failed";throw new Error(M)}else if(r==="ignore"){if(c)return this;throw new Error('Cannot use "ignore" mode with context-only binding. Use full machine binding or provide fallback.')}else if(typeof r=="function"){if(c)return r.apply(this,u);throw new Error("Cannot use function fallback with context-only binding. Use full machine binding.")}else return r};return Object.defineProperty(s,"__guard",{value:!0,enumerable:!1}),Object.defineProperty(s,"condition",{value:e,enumerable:!1}),Object.defineProperty(s,"transition",{value:t,enumerable:!1}),Object.defineProperty(s,"options",{value:a,enumerable:!1}),b(s,{description:i||"Runtime guarded transition",guards:[{name:"runtime_guard",description:i||"Runtime condition check"}]}),s}function me(e){return{do(t){let n=F(e,t);return n.else=function(r){return F(e,t,{onFail:r})},n}}}function Te(e){return{do(t){let n=A(e,t);return n.else=function(r){return A(e,t,{onFail:r})},n}}}function be(e,t){return t}function we(e,t){let n=e,r=s=>{n=s,t==null||t(s)},{context:o,...i}=e,a=new Proxy({},{get(s,u){let c=n[u];if(typeof c=="function")return(...d)=>{let y=c.apply(n.context,d),M=Object.assign({context:y.context},i);return r(M),M}}});return{get state(){return n},get context(){return n.context},actions:a,setState:r}}function Ee(e,t,n){let r=()=>{let i=e.getContext(),a=n(i),s=t[a];if(!s)throw new Error(`[Ensemble] Invalid state: No factory found for state "${String(a)}".`);return s(i)},o=new Proxy({},{get(i,a){let s=r(),u=s[a];if(typeof u!="function")throw new Error(`[Ensemble] Transition "${a}" is not valid in the current state.`);return(...c)=>u.apply(s.context,c)}});return{get context(){return e.getContext()},get state(){return r()},actions:o}}function Je(e,t){return function(r){return Ee(e,r,t)}}function Qe(e,t){let n=we(t),r=e(n),o=r.next();for(;!o.done;)o=r.next();return o.value}function Xe(e,t){let n=e(t),r=n.next();for(;!r.done;)r=n.next();return r.value}var G=class{constructor(t){this.store=t}get context(){return this.store.getContext()}setContext(t){this.store.setContext(t)}};function Ze(e,t){let n=new e(t);return new Proxy({},{get(r,o){let i=t.getContext();if(o in i)return i[o];let a=n[o];if(typeof a=="function")return(...s)=>a.apply(n,s)},set(r,o,i){let a=t.getContext();if(o in a){let s={...a,[o]:i};return t.setContext(s),!0}return!1},has(r,o){let i=t.getContext();return o in i||typeof n[o]=="function"},ownKeys(r){let o=t.getContext(),i=Object.keys(o),a=Object.getOwnPropertyNames(Object.getPrototypeOf(n)).filter(s=>s!=="constructor"&&typeof n[s]=="function");return Array.from(new Set([...i,...a]))},getOwnPropertyDescriptor(r,o){let i=t.getContext();if(o in i||typeof n[o]=="function")return{value:void 0,writable:!0,enumerable:!0,configurable:!0}}})}function et(e,t,n){let r=()=>{let o=n(e),i=t[o];if(!i)throw new Error(`[MutableMachine] Invalid state: No factory for state "${String(o)}".`);return i(e)};return new Proxy(e,{get(o,i,a){if(i in o)return o[i];let s=r(),u=s[i];if(typeof u=="function")return(...c)=>{let d=u.apply(s.context,c);if(typeof d!="object"||d===null){console.warn(`[MutableMachine] Transition "${String(i)}" did not return a valid context object. State may be inconsistent.`);return}Object.keys(o).forEach(y=>delete o[y]),Object.assign(o,d)}},set(o,i,a,s){return o[i]=a,!0},has(o,i){let a=r();return i in o||typeof a[i]=="function"}})}function tt(e){return function(...t){let n=this.context.child;if(typeof n[e]=="function"){let r=n[e](...t);return E(this,{...this.context,child:r})}return this}}function nt(e){return function(){return typeof this.context[e]!="boolean"&&console.warn(`[toggle primitive] Property '${String(e)}' is not a boolean. Toggling may have unexpected results.`),E(this,{...this.context,[e]:!this.context[e]})}}var _=class extends m{constructor(n){super({status:"idle"});this.config=n;this.fetch=n=>new w(this.config,n!=null?n:this.config.initialParams,1)}},w=class extends m{constructor(n,r,o){super({status:"loading",abortController:new AbortController,attempts:o});this.config=n;this.params=r;this.succeed=n=>{var r,o;return(o=(r=this.config).onSuccess)==null||o.call(r,n),new H(this.config,{status:"success",data:n})};this.fail=n=>{var o,i,a;let r=(o=this.config.maxRetries)!=null?o:3;return this.context.attempts<r?new W(this.config,this.params,n,this.context.attempts):((a=(i=this.config).onError)==null||a.call(i,n),new $(this.config,{status:"error",error:n}))};this.cancel=()=>(this.context.abortController.abort(),new D(this.config));this.execute()}async execute(){}},W=class extends m{constructor(n,r,o,i){super({status:"retrying",error:o,attempts:i});this.config=n;this.params=r;this.retry=n=>new w(this.config,n!=null?n:this.params,this.context.attempts+1)}},H=class extends m{constructor(n,r){super(r);this.config=n;this.refetch=n=>new w(this.config,n!=null?n:this.config.initialParams,1)}},$=class extends m{constructor(n,r){super(r);this.config=n;this.retry=n=>new w(this.config,n!=null?n:this.config.initialParams,1)}},D=class extends m{constructor(n){super({status:"canceled"});this.config=n;this.refetch=n=>new w(this.config,n!=null?n:this.config.initialParams,1)}};function rt(e){return new _(e)}function I(e,t){let n={...e.context,...t.context},r={...e},o={...t};delete r.context,delete o.context;let i={};for(let a in r){let s=r[a];i[a]=(...u)=>{let c=s.apply(e.context,u);return I(c,t)}}for(let a in o){let s=o[a];i[a]=(...u)=>{let c=s.apply(t.context,u);return I(e,c)}}return{context:n,...i}}var L=Symbol("CANCEL");function g(e,t,n={}){let{continueOnError:r=!1,logErrors:o=!0,onError:i}=n,a={...e};for(let s in e)Object.prototype.hasOwnProperty.call(e,s)&&s!=="context"&&typeof e[s]!="function"&&(a[s]=e[s]);for(let s in e){if(!Object.prototype.hasOwnProperty.call(e,s))continue;let u=e[s];typeof u=="function"&&s!=="context"&&(a[s]=function(...c){let d=s,y=a.context,M=()=>{let l;try{l=u.apply(this,c)}catch(h){if(t.error)try{t.error({transitionName:d,context:y,args:[...c],error:h})}catch(f){if(!r)throw f;o&&console.error(`Middleware error hook error for ${d}:`,f),i==null||i(f,"error",{transitionName:d,context:y,args:c,error:h})}throw h}let x=h=>{if(h&&typeof h=="object"&&h.context){for(let f in a)Object.prototype.hasOwnProperty.call(a,f)&&f!=="context"&&!(f in h)&&(h[f]=a[f]);for(let f in h){if(!Object.prototype.hasOwnProperty.call(h,f))continue;typeof h[f]=="function"&&f!=="context"&&a[f]&&(h[f]=a[f])}}return h};if(l&&typeof l.then=="function")return l.then(f=>{if(x(f),t.after)try{let C=t.after({transitionName:d,prevContext:y,nextContext:f.context,args:[...c]});if(C&&typeof C.then=="function")return C.then(()=>f)}catch(C){if(!r)throw C;o&&console.error(`Middleware after hook error for ${d}:`,C),i==null||i(C,"after",{transitionName:d,prevContext:y,nextContext:f.context,args:c})}return f});if(x(l),t.after)try{let h=t.after({transitionName:d,prevContext:y,nextContext:l.context,args:[...c]});if(h&&typeof h=="object"&&h&&"then"in h)return h.then(()=>l).catch(f=>{if(!r)throw f;return o&&console.error(`Middleware after hook error for ${d}:`,f),i==null||i(f,"after",{transitionName:d,prevContext:y,nextContext:l.context,args:c}),l})}catch(h){if(!r)throw h;o&&console.error(`Middleware after hook error for ${d}:`,h),i==null||i(h,"after",{transitionName:d,prevContext:y,nextContext:l.context,args:c})}return l};if(t.before)try{let l=t.before({transitionName:d,context:y,args:[...c]});if(l&&typeof l=="object"&&l&&"then"in l)return l.then(x=>x===L?a:M()).catch(x=>{if(!r)throw x;return o&&console.error(`Middleware before hook error for ${d}:`,x),i==null||i(x,"before",{transitionName:d,context:y,args:c}),M()});if(l===L)return a}catch(l){if(!r)throw l;o&&console.error(`Middleware before hook error for ${d}:`,l),i==null||i(l,"before",{transitionName:d,context:y,args:c})}return M()})}return a}function V(e,t={}){let{logger:n=console.log,includeArgs:r=!1,includeContext:o=!0}=t;return g(e,{before:({transitionName:i,args:a})=>{let s=r?`→ ${i} [${a.join(", ")}]`:`→ ${i}`;n(s)},after:({transitionName:i,nextContext:a})=>{let s=o?` ${JSON.stringify(a)}`:"";n(`✓ ${i}${s}`)},error:({transitionName:i,error:a})=>{console.error(`[Machine] ${i} failed:`,a)}})}function U(e,t,n={}){let{eventPrefix:r="state_transition",includePrevContext:o=!1,includeArgs:i=!1}=n;return g(e,{after:({transitionName:a,prevContext:s,nextContext:u,args:c})=>{let d=`${r}.${a}`,y={transition:a};o&&(y.from=s),y.to=u,i&&(y.args=c),t(d,y)}})}function q(e,t){return g(e,{before:n=>{if(t(n)===!1)throw new Error(`Validation failed for transition: ${n.transitionName}`)}})}function Y(e,t){return g(e,{before:n=>{if(!t(n))throw new Error(`Unauthorized transition: ${n.transitionName}`)}})}function J(e,t,n={}){let{includeArgs:r=!1}=n;return g(e,{error:o=>{let i={transition:o.transitionName,context:o.context,...r&&{args:o.args}};t(o.error,i)}})}function Q(e,t){let n=new Map;return g(e,{before:r=>{n.set(r.transitionName,Date.now())},after:r=>{let o=n.get(r.transitionName);if(o){let i=Date.now()-o;n.delete(r.transitionName);let a={transitionName:r.transitionName,duration:i,context:r.nextContext||r.prevContext};t(a)}}})}function X(e,t={}){var u,c;let{maxAttempts:n=(u=t.maxRetries)!=null?u:3,shouldRetry:r=()=>!0,backoffMs:o=(c=t.delay)!=null?c:100,backoffMultiplier:i=2,onRetry:a}=t,s={...e};for(let d in e){if(!Object.prototype.hasOwnProperty.call(e,d))continue;let y=e[d];typeof y=="function"&&d!=="context"&&(s[d]=async function(...M){let l,x=0;for(;x<n;)try{return await y.apply(this,M)}catch(h){if(l=h,x++,x<n&&r(l,x)){a==null||a(l,x);let C=(typeof o=="function"?o(x):o)*Math.pow(i,x-1);await new Promise(T=>setTimeout(T,C))}else throw l}throw l})}return s}function ot(e,t){return n=>g(n,e,t)}function S(e,t={}){let{maxSize:n,serializer:r,onEntry:o}=t,i=[],a=0,s=g(e,{before:({transitionName:u,args:c})=>{let d={id:`entry-${a++}`,transitionName:u,args:[...c],timestamp:Date.now()};if(r)try{d.serializedArgs=r.serialize(c)}catch(y){console.error("Failed to serialize history args:",y)}i.push(d),n&&i.length>n&&i.shift(),o==null||o(d)}});return Object.assign(s,{history:i,clearHistory:()=>{i.length=0,a=0}})}function R(e,t={}){let{maxSize:n,serializer:r,captureSnapshot:o,onlyOnChange:i=!1}=t,a=[],s=0,u=g(e,{after:({transitionName:d,prevContext:y,nextContext:M})=>{if(i&&JSON.stringify(y)===JSON.stringify(M))return;let l={id:`snapshot-${s++}`,transitionName:d,before:{...y},after:{...M},timestamp:Date.now()};if(r)try{l.serializedBefore=r.serialize(y),l.serializedAfter=r.serialize(M)}catch(x){console.error("Failed to serialize snapshot:",x)}if(o)try{l.diff=o(y,M)}catch(x){console.error("Failed to capture snapshot:",x)}a.push(l),n&&a.length>n&&a.shift()}});return Object.assign(u,{snapshots:a,clearSnapshots:()=>{a.length=0,s=0},restoreSnapshot:d=>{let y=Object.fromEntries(Object.entries(e).filter(([M])=>M!=="context"&&M!=="snapshots"&&M!=="clearSnapshots"&&M!=="restoreSnapshot"&&typeof e[M]=="function"));return Object.assign({context:d},y)}})}function j(e,t={}){let{maxSize:n,serializer:r,onRecord:o}=t,i=[],a=[],s=0,u=0,c=g(e,{before:({transitionName:M,args:l})=>{let x={id:`entry-${s++}`,transitionName:M,args:[...l],timestamp:Date.now()};if(r)try{x.serializedArgs=r.serialize(l)}catch(h){console.error("Failed to serialize history args:",h)}i.push(x),n&&i.length>n&&i.shift(),o==null||o("history",x)},after:({transitionName:M,prevContext:l,nextContext:x})=>{let h={id:`snapshot-${u++}`,transitionName:M,before:{...l},after:{...x},timestamp:Date.now()};if(r)try{h.serializedBefore=r.serialize(l),h.serializedAfter=r.serialize(x)}catch(f){console.error("Failed to serialize snapshot:",f)}a.push(h),n&&a.length>n&&a.shift(),o==null||o("snapshot",h)}});return Object.assign(c,{history:i,snapshots:a,clearHistory:()=>{i.length=0,s=0},clearSnapshots:()=>{a.length=0,u=0},clearTimeTravel:()=>{i.length=0,a.length=0,s=0,u=0},restoreSnapshot:M=>{let l=Object.fromEntries(Object.entries(e).filter(([x])=>x!=="context"&&x!=="history"&&x!=="snapshots"&&x!=="clearHistory"&&x!=="clearSnapshots"&&x!=="restoreSnapshot"&&x!=="clearTimeTravel"&&x!=="replayFrom"&&typeof e[x]=="function"));return Object.assign({context:M},l)},replayFrom:M=>{var C;if(M<0||M>=i.length)throw new Error(`Invalid replay start index: ${M}`);let l=(C=a[M])==null?void 0:C.before;if(!l)throw new Error(`No snapshot available for index ${M}`);let x=i.slice(M),f=Object.assign({context:l},Object.fromEntries(Object.entries(e).filter(([T])=>T!=="context"&&typeof e[T]=="function")));for(let T of x){let ie=f[T.transitionName];ie&&(f=ie.apply(f.context,T.args))}return f}})}function it(e,...t){return t.reduce((n,r)=>r(n),e)}function v(e,...t){return t.reduce((n,r)=>r(n),e)}var Z=class e{constructor(t){this.machine=t}with(t){let n=t(this.machine);return new e(n)}build(){return this.machine}};function at(e){return new Z(e)}function B(e,t){let n=function(r){return t(r)?e(r):r};return n.middleware=e,n.when=t,n}function st(e){return B(e,()=>typeof process!="undefined"?!1:typeof window!="undefined"?!window.location.hostname.includes("production"):!1)}function ct(e,t,n){return B(n,r=>r.context[e]===t)}function dt(){let e=new Map;return{register(t,n,r,o){if(e.has(t))throw new Error(`Middleware '${t}' is already registered`);return e.set(t,{name:t,middleware:n,description:r,priority:o}),this},unregister(t){return e.delete(t)},has(t){return e.has(t)},get(t){return e.get(t)},list(){return Array.from(e.values()).sort((t,n)=>{var r,o;return((r=t.priority)!=null?r:0)-((o=n.priority)!=null?o:0)})},apply(t,n){let r=n.map(o=>{let i=e.get(o);if(!i)throw new Error(`Middleware '${o}' is not registered`);return i}).sort((o,i)=>{var a,s;return((a=o.priority)!=null?a:0)-((s=i.priority)!=null?s:0)});return v(t,...r.map(o=>o.middleware))},applyAll(t){let n=this.list();return v(t,...n.map(r=>r.middleware))}}}function ut(e={}){let{continueOnError:t=!1,logErrors:n=!0,onError:r}=e;return(o,...i)=>{let a=o,s=[],u=!0;for(let c=0;c<i.length;c++){let d=i[c];try{if("middleware"in d&&"when"in d){if(!d.when(a))continue;a=d.middleware(a)}else a=d(a)}catch(y){if(u=!1,!t)throw y;s.push({error:y,middlewareIndex:c,middlewareName:d.name}),n&&console.error(`Pipeline middleware error at index ${c}:`,y),r==null||r(y,c,d.name)}}return{machine:a,errors:s,success:u}}}function lt(...e){return t=>v(t,...e)}function yt(e,t){return n=>{for(let[r,o]of e)if(r(n))return o(n);return t?t(n):n}}function ee(e){return typeof e=="function"&&e.length===1}function Mt(e){return e!==null&&(typeof e=="object"||typeof e=="function")&&"middleware"in e&&"when"in e&&ee(e.middleware)&&typeof e.when=="function"}function xt(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"prevContext"in e&&"nextContext"in e&&"args"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&(!t||O(e.prevContext,t)&&O(e.nextContext,t))}function ht(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"context"in e&&"args"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&(!t||O(e.context,t))}function ft(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"context"in e&&"args"in e&&"error"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&e.error instanceof Error&&(!t||O(e.context,t))}function pt(e,t){if(e===null||typeof e!="object")return!1;let n=e;return!("before"in n&&n.before!==void 0&&typeof n.before!="function"||"after"in n&&n.after!==void 0&&typeof n.after!="function"||"error"in n&&n.error!==void 0&&typeof n.error!="function")}function gt(e){return e===void 0||e!==null&&typeof e=="object"&&("continueOnError"in e?typeof e.continueOnError=="boolean":!0)&&("logErrors"in e?typeof e.logErrors=="boolean":!0)&&("onError"in e?typeof e.onError=="function"||e.onError===void 0:!0)}function O(e,t){return e!==null&&typeof e=="object"}function Ct(e){return e!==null&&typeof e=="object"&&"name"in e&&"middleware"in e&&typeof e.name=="string"&&ee(e.middleware)&&("description"in e?typeof e.description=="string"||e.description===void 0:!0)&&("priority"in e?typeof e.priority=="number"||e.priority===void 0:!0)}function mt(e){return e===void 0||e!==null&&typeof e=="object"&&("continueOnError"in e?typeof e.continueOnError=="boolean":!0)&&("logErrors"in e?typeof e.logErrors=="boolean":!0)&&("onError"in e?typeof e.onError=="function"||e.onError===void 0:!0)}var P=class{constructor(t){this.machine=t;this.middlewares=[]}withLogging(t){return this.middlewares.push(n=>V(n,t)),this}withAnalytics(t,n){return this.middlewares.push(r=>U(r,t,n)),this}withValidation(t,n){return this.middlewares.push(r=>q(r,t)),this}withPermissions(t){return this.middlewares.push(n=>Y(n,t)),this}withErrorReporting(t,n){return this.middlewares.push(r=>J(r,t,n)),this}withPerformanceMonitoring(t,n){return this.middlewares.push(r=>Q(r,t)),this}withRetry(t){return this.middlewares.push(n=>X(n,t)),this}withHistory(t){return this.middlewares.push(n=>S(n,t)),this}withSnapshot(t){return this.middlewares.push(n=>R(n,t)),this}withTimeTravel(t){return this.middlewares.push(n=>j(n,t)),this}withDebugging(){return this.middlewares.push(t=>Ae(t)),this}withCustom(t){return this.middlewares.push(t),this}withConditional(t,n){return this.middlewares.push(B(t,n)),this}build(){let t=this.machine;for(let n of this.middlewares)t=n(t);return t}getChain(){return[...this.middlewares]}clear(){return this.middlewares=[],this}};function Fe(e){return new P(e)}function Tt(e={}){return{create:t=>{let n=Fe(t);return e.logging&&n.withLogging(e.logging),e.analytics&&n.withAnalytics(e.analytics.track,e.analytics.options),e.history&&n.withHistory(e.history),e.snapshot&&n.withSnapshot(e.snapshot),e.timeTravel&&n.withTimeTravel(e.timeTravel),e.retry&&n.withRetry(e.retry),n}}}function Ae(e){return j(R(S(e)))}function Se(e,t){return e instanceof t}function Re(e,...t){return{type:e,args:t}}function je(e,t){return E(e,n=>({...n,...t}))}async function ve(e,...t){let n=e;for(let r of t)n=await r(n);return n}function Oe(e,t){return t?console.log(t,e.context):console.log(e.context),e}function Pe(e,t){return function(...n){let r=t(this.context,...n);return p(r,e())}}function Be(e,t,...n){return e.apply(t,n)}function te(e){return new Proxy(e,{get(t,n){let r=t[n];return typeof r=="function"?function(...o){let i=r.apply(t.context,o);return i&&typeof i=="object"&&"context"in i?te(i):i}:r}})}var k=class e{constructor(t){return this.wrappedMachine=t,new Proxy(this,{get:(n,r)=>{if(r==="wrappedMachine")return Reflect.get(n,r);if(r==="context")return this.wrappedMachine.context;let o=this.wrappedMachine[r];return typeof o=="function"?(...i)=>{let a=o.apply(this.wrappedMachine.context,i);return a&&typeof a=="object"&&"context"in a?new e(a):a}:o}})}};function ke(){return function(t){return function(...n){let r=t(this.context,...n);return p(r,this)}}}function ne(e){return{machine:e,addTransition:function(t,n){let r=function(...i){let a=n(this.context,...i);return p(a,this)},o=K(e,{[t]:r});return ne(o)}}}function re(e){return function(n){let r={},o=Object.fromEntries(Object.entries(n).map(([i,a])=>[i,function(...s){let u=a(this.context,...s);return p(u,r)}]));return Object.assign(r,o),p(e,r)}}function Ke(e,t){return t!==void 0?p(e,t):re(e)}function p(e,t){if(typeof t=="function"){let o;o=t(s=>{let u=p(s,o),c=Object.fromEntries(Object.entries(o).map(([d,y])=>[d,y.bind(s)]));return Object.assign(u,c)});let a=Object.fromEntries(Object.entries(o).map(([s,u])=>[s,u.bind(e)]));return Object.assign({context:e},a)}let n="context"in t?Object.fromEntries(Object.entries(t).filter(([o])=>o!=="context")):t;return Object.assign({context:e},n)}function oe(e,t){if(typeof t=="function"){let o;o=t(s=>{let u=oe(s,o),c=Object.fromEntries(Object.entries(o).map(([d,y])=>[d,y.bind(s)]));return Object.assign(u,c)});let a=Object.fromEntries(Object.entries(o).map(([s,u])=>[s,u.bind(e)]));return Object.assign({context:e},a)}let n="context"in t?Object.fromEntries(Object.entries(t).filter(([o])=>o!=="context")):t;return Object.assign({context:e},n)}function Ne(){return e=>{let t=Object.fromEntries(Object.entries(e).map(([n,r])=>[n,function(...o){let i=r(this.context,...o);return p(i,t)}]));return n=>p(n,t)}}function E(e,t){let{context:n,...r}=e,o=typeof t=="function"?t(n):t;return p(o,r)}function ze(e,t){let{context:n,...r}=e,o={...r,...t};return p(n,o)}function K(e,t){let{context:n,...r}=e,o={...r,...t};return p(n,o)}function Ge(e,t){return(...n)=>{let r=e(...n),o=t(),i={...r.context,...o.context},{context:a,...s}=r,{context:u,...c}=o,d={...s,...c};return p(i,d)}}function _e(e){let{context:t,...n}=e;return r=>p(r,n)}function We(e,t,n){let r=e.context[t],o=n[r];if(!o)throw new Error(`No handler found for state: ${String(r)}`);return o(e.context)}function He(e,t,n){return e.context[t]===n}function $e(e,t){let n=e,r=null;async function o(i){r&&(r.abort(),r=null);let a=n[i.type];if(typeof a!="function")throw new Error(`[Machine] Unknown event type '${String(i.type)}' on current state.`);let s=new AbortController;r=s;try{let c=await a.apply(n.context,[...i.args,{signal:s.signal}]);return s.signal.aborted||(n=c,t==null||t(n)),n}finally{r===s&&(r=null)}}return{get state(){return n.context},dispatch:o,stop:()=>{r&&(r.abort(),r=null)}}}var m=class{constructor(t){this.context=t}};function De(e,t){let{context:n,...r}=e;return p(t(n),r)}
|
|
1
|
+
"use strict";var N=Object.defineProperty;var Ie=Object.getOwnPropertyDescriptor;var Le=Object.getOwnPropertyNames;var Ve=Object.prototype.hasOwnProperty;var Ue=(e,t)=>{for(var n in t)N(e,n,{get:t[n],enumerable:!0})},qe=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Le(t))!Ve.call(e,o)&&o!==n&&N(e,o,{get:()=>t[o],enumerable:!(r=Ie(t,o))||r.enumerable});return e};var Ye=e=>qe(N({},"__esModule",{value:!0}),e);var bt={};Ue(bt,{BoundMachine:()=>k,CANCEL:()=>L,META_KEY:()=>xe,MachineBase:()=>m,MiddlewareBuilder:()=>P,MultiMachineBase:()=>G,action:()=>Ce,bindTransitions:()=>te,branch:()=>lt,call:()=>Be,chain:()=>at,combine:()=>yt,combineFactories:()=>Ge,compose:()=>it,composeTyped:()=>v,createAsyncMachine:()=>oe,createCustomMiddleware:()=>ot,createEnsemble:()=>Ee,createEnsembleFactory:()=>Je,createEvent:()=>Re,createFetchMachine:()=>rt,createFlow:()=>de,createFunctionalMachine:()=>re,createMachine:()=>p,createMachineBuilder:()=>_e,createMachineFactory:()=>Ne,createMiddleware:()=>g,createMiddlewareFactory:()=>Tt,createMiddlewareRegistry:()=>dt,createMultiMachine:()=>Ze,createMutableMachine:()=>et,createParallelMachine:()=>I,createPipeline:()=>ut,createRunner:()=>we,createTransition:()=>Pe,createTransitionExtender:()=>ne,createTransitionFactory:()=>ke,delegateToChild:()=>tt,describe:()=>fe,extendTransitions:()=>K,guard:()=>F,guardAsync:()=>A,guarded:()=>pe,hasState:()=>He,inDevelopment:()=>st,invoke:()=>ge,isConditionalMiddleware:()=>Mt,isMiddlewareContext:()=>ht,isMiddlewareError:()=>ft,isMiddlewareFn:()=>ee,isMiddlewareHooks:()=>pt,isMiddlewareOptions:()=>gt,isMiddlewareResult:()=>xt,isNamedMiddleware:()=>Ct,isPipelineConfig:()=>mt,isState:()=>Se,logState:()=>Oe,matchMachine:()=>We,mergeContext:()=>je,metadata:()=>be,middlewareBuilder:()=>Fe,next:()=>De,overrideTransitions:()=>ze,pipeTransitions:()=>ve,run:()=>z,runAsync:()=>ye,runMachine:()=>$e,runSequence:()=>ce,runWithDebug:()=>ue,runWithEnsemble:()=>Xe,runWithRunner:()=>Qe,setContext:()=>E,state:()=>Ke,step:()=>ae,stepAsync:()=>le,toggle:()=>nt,transitionTo:()=>he,when:()=>B,whenContext:()=>ct,whenGuard:()=>me,whenGuardAsync:()=>Te,withAnalytics:()=>U,withDebugging:()=>Ae,withErrorReporting:()=>J,withHistory:()=>S,withLogging:()=>V,withPerformanceMonitoring:()=>Q,withPermissions:()=>Y,withRetry:()=>X,withSnapshot:()=>R,withTimeTravel:()=>j,withValidation:()=>q,yieldMachine:()=>se});module.exports=Ye(bt);function z(e,t){let n=e(t),r=t;for(;;){let{value:o,done:i}=n.next(r);if(i)return o;r=o}}function ae(e){return function*(){return yield e}()}function se(e){return e}function ce(e,t){return t.reduce((n,r)=>z(r,n),e)}function de(e){return e}function ue(e,t,n=(r,o)=>{console.log(`Step ${r}:`,o.context)}){let r=e(t),o=t,i=0;for(n(i,o);;){let{value:a,done:s}=r.next(o);if(s)return console.log("Final:",a),a;o=a,i++,n(i,o)}}async function ye(e,t){let n=e(t),r=t;for(;;){let{value:o,done:i}=await n.next(r);if(i)return o;r=o}}async function*le(e){return yield e}var xe=Symbol("MachineMeta"),Me=Symbol("__machine_runtime_meta__");function b(e,t){let n=e[Me]||{},r={...n,...t};t.guards&&n.guards?r.guards=[...t.guards,...n.guards]:t.guards&&(r.guards=[...t.guards]),t.actions&&n.actions?r.actions=[...t.actions,...n.actions]:t.actions&&(r.actions=[...t.actions]),Object.defineProperty(e,Me,{value:r,enumerable:!1,writable:!1,configurable:!0})}function he(e,t){return b(t,{target:e.name||e.toString()}),t}function fe(e,t){return b(t,{description:e}),t}function pe(e,t){return b(t,{guards:[e]}),t}function ge(e,t){return b(t,{invoke:{src:e.src,onDone:e.onDone.name||e.onDone.toString(),onError:e.onError.name||e.onError.toString(),description:e.description}}),t}function Ce(e,t){return b(t,{actions:[e]}),t}function F(e,t,n={}){let{onFail:r="throw",errorMessage:o,description:i}=n,a={...n,onFail:r,errorMessage:o,description:i},s=function(...u){let c=typeof this=="object"&&"context"in this,d=c?this.context:this;if(e(d,...u)){let M=c?this.context:this;return t.apply(M,u)}else if(r==="throw"){let M=o||"Guard condition failed";throw new Error(M)}else if(r==="ignore"){if(c)return this;throw new Error('Cannot use "ignore" mode with context-only binding. Use full machine binding or provide fallback.')}else if(typeof r=="function"){if(c)return r.apply(this,u);throw new Error("Cannot use function fallback with context-only binding. Use full machine binding.")}else return r};return Object.defineProperty(s,"__guard",{value:!0,enumerable:!1}),Object.defineProperty(s,"condition",{value:e,enumerable:!1}),Object.defineProperty(s,"transition",{value:t,enumerable:!1}),Object.defineProperty(s,"options",{value:a,enumerable:!1}),b(s,{description:i||"Synchronous guarded transition",guards:[{name:"runtime_guard",description:i||"Synchronous condition check"}]}),s}function A(e,t,n={}){let{onFail:r="throw",errorMessage:o,description:i}=n,a={...n,onFail:r,errorMessage:o,description:i},s=async function(...u){let c=typeof this=="object"&&"context"in this,d=c?this.context:this;if(await Promise.resolve(e(d,...u))){let M=c?this.context:this;return t.apply(M,u)}else if(r==="throw"){let M=o||"Guard condition failed";throw new Error(M)}else if(r==="ignore"){if(c)return this;throw new Error('Cannot use "ignore" mode with context-only binding. Use full machine binding or provide fallback.')}else if(typeof r=="function"){if(c)return r.apply(this,u);throw new Error("Cannot use function fallback with context-only binding. Use full machine binding.")}else return r};return Object.defineProperty(s,"__guard",{value:!0,enumerable:!1}),Object.defineProperty(s,"condition",{value:e,enumerable:!1}),Object.defineProperty(s,"transition",{value:t,enumerable:!1}),Object.defineProperty(s,"options",{value:a,enumerable:!1}),b(s,{description:i||"Runtime guarded transition",guards:[{name:"runtime_guard",description:i||"Runtime condition check"}]}),s}function me(e){return{do(t){let n=F(e,t);return n.else=function(r){return F(e,t,{onFail:r})},n}}}function Te(e){return{do(t){let n=A(e,t);return n.else=function(r){return A(e,t,{onFail:r})},n}}}function be(e,t){return t}function we(e,t){let n=e,r=s=>{n=s,t==null||t(s)},{context:o,...i}=e,a=new Proxy({},{get(s,u){let c=n[u];if(typeof c=="function")return(...d)=>{let l=c.apply(n.context,d),M=Object.assign({context:l.context},i);return r(M),M}}});return{get state(){return n},get context(){return n.context},actions:a,setState:r}}function Ee(e,t,n){let r=()=>{let i=e.getContext(),a=n(i),s=t[a];if(!s)throw new Error(`[Ensemble] Invalid state: No factory found for state "${String(a)}".`);return s(i)},o=new Proxy({},{get(i,a){let s=r(),u=s[a];if(typeof u!="function")throw new Error(`[Ensemble] Transition "${a}" is not valid in the current state.`);return(...c)=>u.apply(s.context,c)}});return{get context(){return e.getContext()},get state(){return r()},actions:o}}function Je(e,t){return function(r){return Ee(e,r,t)}}function Qe(e,t){let n=we(t),r=e(n),o=r.next();for(;!o.done;)o=r.next();return o.value}function Xe(e,t){let n=e(t),r=n.next();for(;!r.done;)r=n.next();return r.value}var G=class{constructor(t){this.store=t}get context(){return this.store.getContext()}setContext(t){this.store.setContext(t)}};function Ze(e,t){let n=new e(t);return new Proxy({},{get(r,o){let i=t.getContext();if(o in i)return i[o];let a=n[o];if(typeof a=="function")return(...s)=>a.apply(n,s)},set(r,o,i){let a=t.getContext();if(o in a){let s={...a,[o]:i};return t.setContext(s),!0}return!1},has(r,o){let i=t.getContext();return o in i||typeof n[o]=="function"},ownKeys(r){let o=t.getContext(),i=Object.keys(o),a=Object.getOwnPropertyNames(Object.getPrototypeOf(n)).filter(s=>s!=="constructor"&&typeof n[s]=="function");return Array.from(new Set([...i,...a]))},getOwnPropertyDescriptor(r,o){let i=t.getContext();if(o in i||typeof n[o]=="function")return{value:void 0,writable:!0,enumerable:!0,configurable:!0}}})}function et(e,t,n){let r=()=>{let o=n(e),i=t[o];if(!i)throw new Error(`[MutableMachine] Invalid state: No factory for state "${String(o)}".`);return i(e)};return new Proxy(e,{get(o,i,a){if(i in o)return o[i];let s=r(),u=s[i];if(typeof u=="function")return(...c)=>{let d=u.apply(s.context,c);if(typeof d!="object"||d===null){console.warn(`[MutableMachine] Transition "${String(i)}" did not return a valid context object. State may be inconsistent.`);return}Object.keys(o).forEach(l=>delete o[l]),Object.assign(o,d)}},set(o,i,a,s){return o[i]=a,!0},has(o,i){let a=r();return i in o||typeof a[i]=="function"}})}function tt(e){return function(...t){let n=this.context.child;if(typeof n[e]=="function"){let r=n[e](...t);return E(this,{...this.context,child:r})}return this}}function nt(e){return function(){return typeof this.context[e]!="boolean"&&console.warn(`[toggle primitive] Property '${String(e)}' is not a boolean. Toggling may have unexpected results.`),E(this,{...this.context,[e]:!this.context[e]})}}var _=class extends m{constructor(n){super({status:"idle"});this.config=n;this.fetch=n=>new w(this.config,n!=null?n:this.config.initialParams,1)}},w=class extends m{constructor(n,r,o){super({status:"loading",abortController:new AbortController,attempts:o});this.config=n;this.params=r;this.succeed=n=>{var r,o;return(o=(r=this.config).onSuccess)==null||o.call(r,n),new H(this.config,{status:"success",data:n})};this.fail=n=>{var o,i,a;let r=(o=this.config.maxRetries)!=null?o:3;return this.context.attempts<r?new W(this.config,this.params,n,this.context.attempts):((a=(i=this.config).onError)==null||a.call(i,n),new $(this.config,{status:"error",error:n}))};this.cancel=()=>(this.context.abortController.abort(),new D(this.config));this.execute()}async execute(){}},W=class extends m{constructor(n,r,o,i){super({status:"retrying",error:o,attempts:i});this.config=n;this.params=r;this.retry=n=>new w(this.config,n!=null?n:this.params,this.context.attempts+1)}},H=class extends m{constructor(n,r){super(r);this.config=n;this.refetch=n=>new w(this.config,n!=null?n:this.config.initialParams,1)}},$=class extends m{constructor(n,r){super(r);this.config=n;this.retry=n=>new w(this.config,n!=null?n:this.config.initialParams,1)}},D=class extends m{constructor(n){super({status:"canceled"});this.config=n;this.refetch=n=>new w(this.config,n!=null?n:this.config.initialParams,1)}};function rt(e){return new _(e)}function I(e,t){let n={...e.context,...t.context},r={...e},o={...t};delete r.context,delete o.context;let i={};for(let a in r){let s=r[a];i[a]=(...u)=>{let c=s.apply(e.context,u);return I(c,t)}}for(let a in o){let s=o[a];i[a]=(...u)=>{let c=s.apply(t.context,u);return I(e,c)}}return{context:n,...i}}var L=Symbol("CANCEL");function g(e,t,n={}){let{continueOnError:r=!1,logErrors:o=!0,onError:i}=n,a={...e};for(let s in e)Object.prototype.hasOwnProperty.call(e,s)&&s!=="context"&&typeof e[s]!="function"&&(a[s]=e[s]);for(let s in e){if(!Object.prototype.hasOwnProperty.call(e,s))continue;let u=e[s];typeof u=="function"&&s!=="context"&&(a[s]=function(...c){let d=s,l=a.context,M=()=>{let y;try{y=u.apply(this,c)}catch(h){if(t.error)try{t.error({transitionName:d,context:l,args:[...c],error:h})}catch(f){if(!r)throw f;o&&console.error(`Middleware error hook error for ${d}:`,f),i==null||i(f,"error",{transitionName:d,context:l,args:c,error:h})}throw h}let x=h=>{if(h&&typeof h=="object"&&h.context){for(let f in a)Object.prototype.hasOwnProperty.call(a,f)&&f!=="context"&&!(f in h)&&(h[f]=a[f]);for(let f in h){if(!Object.prototype.hasOwnProperty.call(h,f))continue;typeof h[f]=="function"&&f!=="context"&&a[f]&&(h[f]=a[f])}}return h};if(y&&typeof y.then=="function")return y.then(f=>{if(x(f),t.after)try{let C=t.after({transitionName:d,prevContext:l,nextContext:f.context,args:[...c]});if(C&&typeof C.then=="function")return C.then(()=>f)}catch(C){if(!r)throw C;o&&console.error(`Middleware after hook error for ${d}:`,C),i==null||i(C,"after",{transitionName:d,prevContext:l,nextContext:f.context,args:c})}return f});if(x(y),t.after)try{let h=t.after({transitionName:d,prevContext:l,nextContext:y.context,args:[...c]});if(h&&typeof h=="object"&&h&&"then"in h)return h.then(()=>y).catch(f=>{if(!r)throw f;return o&&console.error(`Middleware after hook error for ${d}:`,f),i==null||i(f,"after",{transitionName:d,prevContext:l,nextContext:y.context,args:c}),y})}catch(h){if(!r)throw h;o&&console.error(`Middleware after hook error for ${d}:`,h),i==null||i(h,"after",{transitionName:d,prevContext:l,nextContext:y.context,args:c})}return y};if(t.before)try{let y=t.before({transitionName:d,context:l,args:[...c]});if(y&&typeof y=="object"&&y&&"then"in y)return y.then(x=>x===L?a:M()).catch(x=>{if(!r)throw x;return o&&console.error(`Middleware before hook error for ${d}:`,x),i==null||i(x,"before",{transitionName:d,context:l,args:c}),M()});if(y===L)return a}catch(y){if(!r)throw y;o&&console.error(`Middleware before hook error for ${d}:`,y),i==null||i(y,"before",{transitionName:d,context:l,args:c})}return M()})}return a}function V(e,t={}){let{logger:n=console.log,includeArgs:r=!1,includeContext:o=!0}=t;return g(e,{before:({transitionName:i,args:a})=>{let s=r?`→ ${i} [${a.join(", ")}]`:`→ ${i}`;n(s)},after:({transitionName:i,nextContext:a})=>{let s=o?` ${JSON.stringify(a)}`:"";n(`✓ ${i}${s}`)},error:({transitionName:i,error:a})=>{console.error(`[Machine] ${i} failed:`,a)}})}function U(e,t,n={}){let{eventPrefix:r="state_transition",includePrevContext:o=!1,includeArgs:i=!1}=n;return g(e,{after:({transitionName:a,prevContext:s,nextContext:u,args:c})=>{let d=`${r}.${a}`,l={transition:a};o&&(l.from=s),l.to=u,i&&(l.args=c),t(d,l)}})}function q(e,t){return g(e,{before:n=>{if(t(n)===!1)throw new Error(`Validation failed for transition: ${n.transitionName}`)}})}function Y(e,t){return g(e,{before:n=>{if(!t(n))throw new Error(`Unauthorized transition: ${n.transitionName}`)}})}function J(e,t,n={}){let{includeArgs:r=!1}=n;return g(e,{error:o=>{let i={transition:o.transitionName,context:o.context,...r&&{args:o.args}};t(o.error,i)}})}function Q(e,t){let n=new Map;return g(e,{before:r=>{n.set(r.transitionName,Date.now())},after:r=>{let o=n.get(r.transitionName);if(o){let i=Date.now()-o;n.delete(r.transitionName);let a={transitionName:r.transitionName,duration:i,context:r.nextContext||r.prevContext};t(a)}}})}function X(e,t={}){var u,c;let{maxAttempts:n=(u=t.maxRetries)!=null?u:3,shouldRetry:r=()=>!0,backoffMs:o=(c=t.delay)!=null?c:100,backoffMultiplier:i=2,onRetry:a}=t,s={...e};for(let d in e){if(!Object.prototype.hasOwnProperty.call(e,d))continue;let l=e[d];typeof l=="function"&&d!=="context"&&(s[d]=async function(...M){let y,x=0;for(;x<n;)try{return await l.apply(this,M)}catch(h){if(y=h,x++,x<n&&r(y,x)){a==null||a(y,x);let C=(typeof o=="function"?o(x):o)*Math.pow(i,x-1);await new Promise(T=>setTimeout(T,C))}else throw y}throw y})}return s}function ot(e,t){return n=>g(n,e,t)}function S(e,t={}){let{maxSize:n,serializer:r,onEntry:o}=t,i=[],a=0,s=g(e,{before:({transitionName:u,args:c})=>{let d={id:`entry-${a++}`,transitionName:u,args:[...c],timestamp:Date.now()};if(r)try{d.serializedArgs=r.serialize(c)}catch(l){console.error("Failed to serialize history args:",l)}i.push(d),n&&i.length>n&&i.shift(),o==null||o(d)}});return Object.assign(s,{history:i,clearHistory:()=>{i.length=0,a=0}})}function R(e,t={}){let{maxSize:n,serializer:r,captureSnapshot:o,onlyOnChange:i=!1}=t,a=[],s=0,u=g(e,{after:({transitionName:d,prevContext:l,nextContext:M})=>{if(i&&JSON.stringify(l)===JSON.stringify(M))return;let y={id:`snapshot-${s++}`,transitionName:d,before:{...l},after:{...M},timestamp:Date.now()};if(r)try{y.serializedBefore=r.serialize(l),y.serializedAfter=r.serialize(M)}catch(x){console.error("Failed to serialize snapshot:",x)}if(o)try{y.diff=o(l,M)}catch(x){console.error("Failed to capture snapshot:",x)}a.push(y),n&&a.length>n&&a.shift()}});return Object.assign(u,{snapshots:a,clearSnapshots:()=>{a.length=0,s=0},restoreSnapshot:d=>{let l=Object.fromEntries(Object.entries(e).filter(([M])=>M!=="context"&&M!=="snapshots"&&M!=="clearSnapshots"&&M!=="restoreSnapshot"&&typeof e[M]=="function"));return Object.assign({context:d},l)}})}function j(e,t={}){let{maxSize:n,serializer:r,onRecord:o}=t,i=[],a=[],s=0,u=0,c=g(e,{before:({transitionName:M,args:y})=>{let x={id:`entry-${s++}`,transitionName:M,args:[...y],timestamp:Date.now()};if(r)try{x.serializedArgs=r.serialize(y)}catch(h){console.error("Failed to serialize history args:",h)}i.push(x),n&&i.length>n&&i.shift(),o==null||o("history",x)},after:({transitionName:M,prevContext:y,nextContext:x})=>{let h={id:`snapshot-${u++}`,transitionName:M,before:{...y},after:{...x},timestamp:Date.now()};if(r)try{h.serializedBefore=r.serialize(y),h.serializedAfter=r.serialize(x)}catch(f){console.error("Failed to serialize snapshot:",f)}a.push(h),n&&a.length>n&&a.shift(),o==null||o("snapshot",h)}});return Object.assign(c,{history:i,snapshots:a,clearHistory:()=>{i.length=0,s=0},clearSnapshots:()=>{a.length=0,u=0},clearTimeTravel:()=>{i.length=0,a.length=0,s=0,u=0},restoreSnapshot:M=>{let y=Object.fromEntries(Object.entries(e).filter(([x])=>x!=="context"&&x!=="history"&&x!=="snapshots"&&x!=="clearHistory"&&x!=="clearSnapshots"&&x!=="restoreSnapshot"&&x!=="clearTimeTravel"&&x!=="replayFrom"&&typeof e[x]=="function"));return Object.assign({context:M},y)},replayFrom:M=>{var C;if(M<0||M>=i.length)throw new Error(`Invalid replay start index: ${M}`);let y=(C=a[M])==null?void 0:C.before;if(!y)throw new Error(`No snapshot available for index ${M}`);let x=i.slice(M),f=Object.assign({context:y},Object.fromEntries(Object.entries(e).filter(([T])=>T!=="context"&&typeof e[T]=="function")));for(let T of x){let ie=f[T.transitionName];ie&&(f=ie.apply(f.context,T.args))}return f}})}function it(e,...t){return t.reduce((n,r)=>r(n),e)}function v(e,...t){return t.reduce((n,r)=>r(n),e)}var Z=class e{constructor(t){this.machine=t}with(t){let n=t(this.machine);return new e(n)}build(){return this.machine}};function at(e){return new Z(e)}function B(e,t){let n=function(r){return t(r)?e(r):r};return n.middleware=e,n.when=t,n}function st(e){return B(e,()=>typeof process!="undefined"?!1:typeof window!="undefined"?!window.location.hostname.includes("production"):!1)}function ct(e,t,n){return B(n,r=>r.context[e]===t)}function dt(){let e=new Map;return{register(t,n,r,o){if(e.has(t))throw new Error(`Middleware '${t}' is already registered`);return e.set(t,{name:t,middleware:n,description:r,priority:o}),this},unregister(t){return e.delete(t)},has(t){return e.has(t)},get(t){return e.get(t)},list(){return Array.from(e.values()).sort((t,n)=>{var r,o;return((r=t.priority)!=null?r:0)-((o=n.priority)!=null?o:0)})},apply(t,n){let r=n.map(o=>{let i=e.get(o);if(!i)throw new Error(`Middleware '${o}' is not registered`);return i}).sort((o,i)=>{var a,s;return((a=o.priority)!=null?a:0)-((s=i.priority)!=null?s:0)});return v(t,...r.map(o=>o.middleware))},applyAll(t){let n=this.list();return v(t,...n.map(r=>r.middleware))}}}function ut(e={}){let{continueOnError:t=!1,logErrors:n=!0,onError:r}=e;return(o,...i)=>{let a=o,s=[],u=!0;for(let c=0;c<i.length;c++){let d=i[c];try{if("middleware"in d&&"when"in d){if(!d.when(a))continue;a=d.middleware(a)}else a=d(a)}catch(l){if(u=!1,!t)throw l;s.push({error:l,middlewareIndex:c,middlewareName:d.name}),n&&console.error(`Pipeline middleware error at index ${c}:`,l),r==null||r(l,c,d.name)}}return{machine:a,errors:s,success:u}}}function yt(...e){return t=>v(t,...e)}function lt(e,t){return n=>{for(let[r,o]of e)if(r(n))return o(n);return t?t(n):n}}function ee(e){return typeof e=="function"&&e.length===1}function Mt(e){return e!==null&&(typeof e=="object"||typeof e=="function")&&"middleware"in e&&"when"in e&&ee(e.middleware)&&typeof e.when=="function"}function xt(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"prevContext"in e&&"nextContext"in e&&"args"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&(!t||O(e.prevContext,t)&&O(e.nextContext,t))}function ht(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"context"in e&&"args"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&(!t||O(e.context,t))}function ft(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"context"in e&&"args"in e&&"error"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&e.error instanceof Error&&(!t||O(e.context,t))}function pt(e,t){if(e===null||typeof e!="object")return!1;let n=e;return!("before"in n&&n.before!==void 0&&typeof n.before!="function"||"after"in n&&n.after!==void 0&&typeof n.after!="function"||"error"in n&&n.error!==void 0&&typeof n.error!="function")}function gt(e){return e===void 0||e!==null&&typeof e=="object"&&("continueOnError"in e?typeof e.continueOnError=="boolean":!0)&&("logErrors"in e?typeof e.logErrors=="boolean":!0)&&("onError"in e?typeof e.onError=="function"||e.onError===void 0:!0)}function O(e,t){return e!==null&&typeof e=="object"}function Ct(e){return e!==null&&typeof e=="object"&&"name"in e&&"middleware"in e&&typeof e.name=="string"&&ee(e.middleware)&&("description"in e?typeof e.description=="string"||e.description===void 0:!0)&&("priority"in e?typeof e.priority=="number"||e.priority===void 0:!0)}function mt(e){return e===void 0||e!==null&&typeof e=="object"&&("continueOnError"in e?typeof e.continueOnError=="boolean":!0)&&("logErrors"in e?typeof e.logErrors=="boolean":!0)&&("onError"in e?typeof e.onError=="function"||e.onError===void 0:!0)}var P=class{constructor(t){this.machine=t;this.middlewares=[]}withLogging(t){return this.middlewares.push(n=>V(n,t)),this}withAnalytics(t,n){return this.middlewares.push(r=>U(r,t,n)),this}withValidation(t,n){return this.middlewares.push(r=>q(r,t)),this}withPermissions(t){return this.middlewares.push(n=>Y(n,t)),this}withErrorReporting(t,n){return this.middlewares.push(r=>J(r,t,n)),this}withPerformanceMonitoring(t,n){return this.middlewares.push(r=>Q(r,t)),this}withRetry(t){return this.middlewares.push(n=>X(n,t)),this}withHistory(t){return this.middlewares.push(n=>S(n,t)),this}withSnapshot(t){return this.middlewares.push(n=>R(n,t)),this}withTimeTravel(t){return this.middlewares.push(n=>j(n,t)),this}withDebugging(){return this.middlewares.push(t=>Ae(t)),this}withCustom(t){return this.middlewares.push(t),this}withConditional(t,n){return this.middlewares.push(B(t,n)),this}build(){let t=this.machine;for(let n of this.middlewares)t=n(t);return t}getChain(){return[...this.middlewares]}clear(){return this.middlewares=[],this}};function Fe(e){return new P(e)}function Tt(e={}){return{create:t=>{let n=Fe(t);return e.logging&&n.withLogging(e.logging),e.analytics&&n.withAnalytics(e.analytics.track,e.analytics.options),e.history&&n.withHistory(e.history),e.snapshot&&n.withSnapshot(e.snapshot),e.timeTravel&&n.withTimeTravel(e.timeTravel),e.retry&&n.withRetry(e.retry),n}}}function Ae(e){return j(R(S(e)))}function Se(e,t){return e instanceof t}function Re(e,...t){return{type:e,args:t}}function je(e,t){return E(e,n=>({...n,...t}))}async function ve(e,...t){let n=e;for(let r of t)n=await r(n);return n}function Oe(e,t){return t?console.log(t,e.context):console.log(e.context),e}function Pe(e,t){return function(...n){let r=t(this.context,...n);return p(r,e())}}function Be(e,t,...n){return e.apply(t,n)}function te(e){return new Proxy(e,{get(t,n){let r=t[n];return typeof r=="function"?function(...o){let i=r.apply(t.context,o);return i&&typeof i=="object"&&"context"in i?te(i):i}:r}})}var k=class e{constructor(t){return this.wrappedMachine=t,new Proxy(this,{get:(n,r)=>{if(r==="wrappedMachine")return Reflect.get(n,r);if(r==="context")return this.wrappedMachine.context;let o=this.wrappedMachine[r];return typeof o=="function"?(...i)=>{let a=o.apply(this.wrappedMachine.context,i);return a&&typeof a=="object"&&"context"in a?new e(a):a}:o}})}};function ke(){return function(t){return function(...n){let r=t(this.context,...n);return p(r,this)}}}function ne(e){return{machine:e,addTransition:function(t,n){let r=function(...i){let a=n(this.context,...i);return p(a,this)},o=K(e,{[t]:r});return ne(o)}}}function re(e){return function(n){let r={},o=Object.fromEntries(Object.entries(n).map(([i,a])=>[i,function(...s){let u=a(this.context,...s);return p(u,r)}]));return Object.assign(r,o),p(e,r)}}function Ke(e,t){return t!==void 0?p(e,t):re(e)}function p(e,t){if(typeof t=="function"){let o;o=t(s=>{let u=p(s,o),c=Object.fromEntries(Object.entries(o).map(([d,l])=>[d,l.bind(s)]));return Object.assign(u,c)});let a=Object.fromEntries(Object.entries(o).map(([s,u])=>[s,u.bind(e)]));return Object.assign({context:e},a)}let n="context"in t?Object.fromEntries(Object.entries(t).filter(([o])=>o!=="context")):t;return Object.assign({context:e},n)}function oe(e,t){if(typeof t=="function"){let o;o=t(s=>{let u=oe(s,o),c=Object.fromEntries(Object.entries(o).map(([d,l])=>[d,l.bind(s)]));return Object.assign(u,c)});let a=Object.fromEntries(Object.entries(o).map(([s,u])=>[s,u.bind(e)]));return Object.assign({context:e},a)}let n="context"in t?Object.fromEntries(Object.entries(t).filter(([o])=>o!=="context")):t;return Object.assign({context:e},n)}function Ne(){return e=>{let t=Object.fromEntries(Object.entries(e).map(([n,r])=>[n,function(...o){let i=r(this.context,...o);return p(i,t)}]));return n=>p(n,t)}}function E(e,t){let{context:n,...r}=e,o=typeof t=="function"?t(n):t;return p(o,r)}function ze(e,t){let{context:n,...r}=e,o={...r,...t};return p(n,o)}function K(e,t){let{context:n,...r}=e,o={...r,...t};return p(n,o)}function Ge(e,t){return(...n)=>{let r=e(...n),o=t(),i={...r.context,...o.context},{context:a,...s}=r,{context:u,...c}=o,d={...s,...c};return p(i,d)}}function _e(e){let{context:t,...n}=e;return r=>p(r,n)}function We(e,t,n){let r=e.context[t],o=n[r];if(!o)throw new Error(`No handler found for state: ${String(r)}`);return o(e.context)}function He(e,t,n){return e.context[t]===n}function $e(e,t){let n=e,r=null;async function o(i){r&&(r.abort(),r=null);let a=n[i.type];if(typeof a!="function")throw new Error(`[Machine] Unknown event type '${String(i.type)}' on current state.`);let s=new AbortController;r=s;try{let c=await a.apply(n.context,[...i.args,{signal:s.signal}]);return s.signal.aborted||(n=c,t==null||t(n)),n}finally{r===s&&(r=null)}}return{get state(){return n.context},dispatch:o,stop:()=>{r&&(r.abort(),r=null)}}}var m=class{constructor(t){this.context=t}};function De(e,t){let{context:n,...r}=e;return p(t(n),r)}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";var x=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var $=(e,t)=>{for(var a in t)x(e,a,{get:t[a],enumerable:!0})},L=(e,t,a,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of k(t))!O.call(e,n)&&n!==a&&x(e,n,{get:()=>t[n],enumerable:!(s=M(t,n))||s.enumerable});return e};var b=e=>L(x({},"__esModule",{value:!0}),e);var P={};$(P,{ADVANCED_CONFIG_EXAMPLES:()=>D,_typeToJson:()=>y,extractMachine:()=>S,extractMachines:()=>A,generateChart:()=>E});module.exports=b(P);var o=require("ts-morph");function y(e,t=!1){let a=e.getSymbol();if(a&&a.getDeclarations().some(o.Node.isClassDeclaration))return a.getName();if(e.isStringLiteral()||e.isNumberLiteral()||e.isBooleanLiteral())return e.getLiteralValue();if(e.isString())return"string";if(e.isNumber())return"number";if(e.isBoolean())return"boolean";if(e.isArray()){let s=e.getArrayElementTypeOrThrow();return[y(s,t)]}if(e.isObject()||e.isIntersection()){let s={},n=e.getProperties();for(let i of n){let r=i.getName();if(r.startsWith("__@"))continue;let l=i.getValueDeclaration();if(l)try{s[r]=y(l.getType(),t)}catch(c){t&&console.error(` Warning: Failed to serialize property ${r}:`,c),s[r]="unknown"}}return Object.keys(s).length>0?s:null}return t&&console.error(` Unhandled type: ${e.getText()}`),"unknown"}function N(e){return o.Node.isIdentifier(e)?e.getText():o.Node.isTypeOfExpression(e)?e.getExpression().getText():"unknown"}function u(e){if(!o.Node.isObjectLiteralExpression(e))return{};let t={};for(let a of e.getProperties())if(o.Node.isPropertyAssignment(a)){let s=a.getName(),n=a.getInitializer();n&&(o.Node.isStringLiteral(n)||o.Node.isNumericLiteral(n)?t[s]=n.getLiteralValue():n.getText()==="true"||n.getText()==="false"?t[s]=n.getText()==="true":o.Node.isIdentifier(n)?t[s]=n.getText():o.Node.isObjectLiteralExpression(n)?t[s]=u(n):o.Node.isArrayLiteralExpression(n)&&(t[s]=n.getElements().map(i=>o.Node.isObjectLiteralExpression(i)?u(i):i.getText())))}return t}function j(e){if(!o.Node.isObjectLiteralExpression(e))return{};let t={};for(let a of e.getProperties())if(o.Node.isPropertyAssignment(a)){let s=a.getName(),n=a.getInitializer();if(!n)continue;s==="onDone"||s==="onError"?t[s]=N(n):o.Node.isStringLiteral(n)?t[s]=n.getLiteralValue():o.Node.isIdentifier(n)&&(t[s]=n.getText())}return t}function d(e,t=!1){if(!o.Node.isCallExpression(e))return null;let a=e.getExpression(),s=o.Node.isIdentifier(a)?a.getText():null;if(!s)return null;let n={},i=e.getArguments();switch(s){case"transitionTo":i[0]&&(n.target=N(i[0]));break;case"describe":if(i[0]&&o.Node.isStringLiteral(i[0])&&(n.description=i[0].getLiteralValue()),i[1]&&o.Node.isCallExpression(i[1])){let r=d(i[1],t);r&&Object.assign(n,r)}break;case"guarded":if(i[0]){let r=u(i[0]);Object.keys(r).length>0&&(n.guards=[r])}if(i[1]&&o.Node.isCallExpression(i[1])){let r=d(i[1],t);r&&Object.assign(n,r)}break;case"invoke":if(i[0]){let r=j(i[0]);Object.keys(r).length>0&&(n.invoke=r)}break;case"action":if(i[0]){let r=u(i[0]);Object.keys(r).length>0&&(n.actions=[r])}if(i[1]&&o.Node.isCallExpression(i[1])){let r=d(i[1],t);r&&Object.assign(n,r)}break;case"guard":if(i[2]){let r=u(i[2]);r.description&&(n.description=r.description)}if(n.guards=[{name:"runtime_guard",description:n.description||"Synchronous condition check"}],i[1]&&o.Node.isCallExpression(i[1])){let r=d(i[1],t);r&&Object.assign(n,r)}break;case"guardAsync":if(i[2]){let r=u(i[2]);r.description&&(n.description=r.description)}if(n.guards=[{name:"runtime_guard_async",description:n.description||"Asynchronous condition check"}],i[1]&&o.Node.isCallExpression(i[1])){let r=d(i[1],t);r&&Object.assign(n,r)}break;default:return null}return Object.keys(n).length>0?n:null}function T(e,t=!1){if(!o.Node.isPropertyDeclaration(e))return t&&console.error(" ⚠️ Not a property declaration"),null;let a=e.getInitializer();if(!a)return t&&console.error(" ⚠️ No initializer"),null;if(!o.Node.isCallExpression(a))return t&&console.error(" ⚠️ Initializer is not a call expression"),null;let s=d(a,t);return s&&t&&console.error(" ✅ Extracted metadata:",JSON.stringify(s,null,2)),s}function C(e,t=!1){let a={on:{}},s=e.getDeclarations()[0];if(!s||!o.Node.isClassDeclaration(s))return t&&console.error(`⚠️ Warning: Could not get class declaration for ${e.getName()}`),a;let n=e.getName();t&&console.error(` Analyzing state: ${n}`);for(let i of s.getInstanceMembers()){let r=i.getName();t&&console.error(` Checking member: ${r}`);let l=T(i,t);if(!l)continue;t&&console.error(` Found transition: ${r}`);let{invoke:c,actions:f,guards:p,...h}=l;if(c&&(a.invoke||(a.invoke=[]),a.invoke.push({src:c.src,onDone:{target:c.onDone},onError:{target:c.onError},description:c.description}),t&&console.error(` → Invoke: ${c.src}`)),h.target){let g={target:h.target};h.description&&(g.description=h.description),p&&(g.cond=p.map(m=>m.name).join(" && "),t&&console.error(` → Guard: ${g.cond}`)),f&&f.length>0&&(g.actions=f.map(m=>m.name),t&&console.error(` → Actions: ${g.actions.join(", ")}`)),a.on[r]=g,t&&console.error(` → Target: ${h.target}`)}}return a}function w(e,t,a,s,n=!1){let i=C(t,n);if(s){n&&console.error(` 👪 Analyzing children for state: ${e}`),i.initial=s.initialState,i.states={};for(let r of s.classes){let l=a.getClass(r);if(l){let c=l.getSymbolOrThrow();i.states[r]=C(c,n)}else console.warn(`⚠️ Warning: Child class '${r}' not found.`)}}return i}function S(e,t,a=!1){a&&(console.error(`
|
|
2
|
+
🔍 Analyzing machine: ${e.id}`),console.error(` Source: ${e.input}`));let s=t.getSourceFile(e.input);if(!s)throw new Error(`Source file not found: ${e.input}`);if(e.parallel){a&&console.error(" ⏹️ Parallel machine detected. Analyzing regions.");let i={id:e.id,type:"parallel",states:{}};e.description&&(i.description=e.description);for(let r of e.parallel.regions){a&&console.error(` 📍 Analyzing region: ${r.name}`);let l={};for(let c of r.classes){let f=s.getClass(c);if(f){let p=f.getSymbolOrThrow();l[c]=C(p,a)}else console.warn(`⚠️ Warning: Class '${c}' not found for region '${r.name}'.`)}i.states[r.name]={initial:r.initialState,states:l}}return a&&console.error(` ✅ Extracted ${e.parallel.regions.length} parallel regions`),i}if(!e.initialState||!e.classes)throw new Error(`Machine config for '${e.id}' must have either 'parallel' or 'initialState'/'classes'.`);let n={id:e.id,initial:e.initialState,states:{}};e.description&&(n.description=e.description);for(let i of e.classes){let r=s.getClass(i);if(!r){console.warn(`⚠️ Warning: Class '${i}' not found in '${e.input}'. Skipping.`);continue}let l=r.getSymbolOrThrow(),c=i===e.initialState&&e.children,f=w(i,l,s,c?e.children:void 0,a);n.states[i]=f}return a&&console.error(` ✅ Extracted ${e.classes.length} states`),n}function A(e){var n;let t=(n=e.verbose)!=null?n:!1;t&&(console.error(`
|
|
3
|
+
📊 Starting statechart extraction`),console.error(` Machines to extract: ${e.machines.length}`));let a=new o.Project;a.addSourceFilesAtPaths("src/**/*.ts"),a.addSourceFilesAtPaths("examples/**/*.ts");let s=[];for(let i of e.machines)try{let r=S(i,a,t);s.push(r)}catch(r){console.error(`❌ Error extracting machine '${i.id}':`,r),t||console.error(" Run with --verbose for more details")}return t&&console.error(`
|
|
4
|
+
✅ Extraction complete: ${s.length}/${e.machines.length} machines extracted`),s}function E(){let e={input:"examples/authMachine.ts",classes:["LoggedOutMachine","LoggingInMachine","LoggedInMachine","SessionExpiredMachine","ErrorMachine"],id:"auth",initialState:"LoggedOutMachine",description:"Authentication state machine"};console.error("🔍 Using legacy generateChart function"),console.error(`⚠️ Consider using extractMachines() with a config file instead
|
|
5
|
+
`);let t=new o.Project;t.addSourceFilesAtPaths("src/**/*.ts"),t.addSourceFilesAtPaths("examples/**/*.ts");try{let a=S(e,t,!0);console.log(JSON.stringify(a,null,2))}catch(a){console.error("❌ Error:",a),process.exit(1)}}var D={hierarchical:{input:"examples/dashboardMachine.ts",id:"dashboard",classes:["DashboardMachine","LoggedOutMachine"],initialState:"DashboardMachine",children:{contextProperty:"child",initialState:"ViewingChildMachine",classes:["ViewingChildMachine","EditingChildMachine"]}},parallel:{input:"examples/editorMachine.ts",id:"editor",parallel:{regions:[{name:"fontWeight",initialState:"NormalWeight",classes:["NormalWeight","BoldWeight"]},{name:"textDecoration",initialState:"NoDecoration",classes:["NoDecoration","UnderlineState"]}]}}};require.main===module&&E();
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"use strict";var $=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var He=Object.getOwnPropertyNames;var Ie=Object.prototype.hasOwnProperty;var Ve=(e,t)=>{for(var n in t)$(e,n,{get:t[n],enumerable:!0})},Ue=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of He(t))!Ie.call(e,i)&&i!==n&&$(e,i,{get:()=>t[i],enumerable:!(r=Ge(t,i))||r.enumerable});return e};var qe=e=>Ue($({},"__esModule",{value:!0}),e);var Nt={};Ve(Nt,{ADVANCED_CONFIG_EXAMPLES:()=>st,BoundMachine:()=>z,CANCEL:()=>J,META_KEY:()=>ge,MachineBase:()=>T,MiddlewareBuilder:()=>B,MultiMachineBase:()=>_,action:()=>we,bindTransitions:()=>oe,branch:()=>ht,call:()=>De,chain:()=>dt,combine:()=>ft,combineFactories:()=>jt,compose:()=>lt,composeTyped:()=>v,createAsyncMachine:()=>Le,createCustomMiddleware:()=>ct,createEnsemble:()=>je,createEnsembleFactory:()=>Je,createEvent:()=>Ne,createFetchMachine:()=>nt,createFlow:()=>Me,createFunctionalMachine:()=>se,createMachine:()=>g,createMachineBuilder:()=>Rt,createMachineFactory:()=>At,createMiddleware:()=>C,createMiddlewareFactory:()=>St,createMiddlewareRegistry:()=>Mt,createMultiMachine:()=>Qe,createMutableMachine:()=>Ze,createParallelMachine:()=>V,createPipeline:()=>xt,createRunner:()=>Fe,createTransition:()=>$e,createTransitionExtender:()=>ae,createTransitionFactory:()=>_e,delegateToChild:()=>et,describe:()=>me,extendTransitions:()=>ce,extractMachine:()=>q,extractMachines:()=>at,generateChart:()=>Oe,guard:()=>j,guardAsync:()=>R,guarded:()=>Te,hasState:()=>Pt,inDevelopment:()=>ut,invoke:()=>be,isConditionalMiddleware:()=>pt,isMiddlewareContext:()=>Ct,isMiddlewareError:()=>mt,isMiddlewareFn:()=>ie,isMiddlewareHooks:()=>Tt,isMiddlewareOptions:()=>bt,isMiddlewareResult:()=>gt,isNamedMiddleware:()=>wt,isPipelineConfig:()=>Et,isState:()=>ve,logState:()=>ze,matchMachine:()=>Ot,mergeContext:()=>Be,metadata:()=>Ae,middlewareBuilder:()=>Pe,next:()=>vt,overrideTransitions:()=>Ft,pipeTransitions:()=>Ke,run:()=>D,runAsync:()=>fe,runMachine:()=>kt,runSequence:()=>ye,runWithDebug:()=>xe,runWithEnsemble:()=>Xe,runWithRunner:()=>Ye,setContext:()=>S,state:()=>We,step:()=>de,stepAsync:()=>he,toggle:()=>tt,transitionTo:()=>Ce,when:()=>K,whenContext:()=>yt,whenGuard:()=>Ee,whenGuardAsync:()=>Se,withAnalytics:()=>X,withDebugging:()=>ke,withErrorReporting:()=>ee,withHistory:()=>O,withLogging:()=>Y,withPerformanceMonitoring:()=>te,withPermissions:()=>Z,withRetry:()=>ne,withSnapshot:()=>P,withTimeTravel:()=>k,withValidation:()=>Q,yieldMachine:()=>ue});module.exports=qe(Nt);function D(e,t){let n=e(t),r=t;for(;;){let{value:i,done:o}=n.next(r);if(o)return i;r=i}}function de(e){return function*(){return yield e}()}function ue(e){return e}function ye(e,t){return t.reduce((n,r)=>D(r,n),e)}function Me(e){return e}function xe(e,t,n=(r,i)=>{console.log(`Step ${r}:`,i.context)}){let r=e(t),i=t,o=0;for(n(o,i);;){let{value:a,done:s}=r.next(i);if(s)return console.log("Final:",a),a;i=a,o++,n(o,i)}}async function fe(e,t){let n=e(t),r=t;for(;;){let{value:i,done:o}=await n.next(r);if(o)return i;r=i}}async function*he(e){return yield e}var ge=Symbol("MachineMeta"),pe=Symbol("__machine_runtime_meta__");function w(e,t){let n=e[pe]||{},r={...n,...t};t.guards&&n.guards?r.guards=[...t.guards,...n.guards]:t.guards&&(r.guards=[...t.guards]),t.actions&&n.actions?r.actions=[...t.actions,...n.actions]:t.actions&&(r.actions=[...t.actions]),Object.defineProperty(e,pe,{value:r,enumerable:!1,writable:!1,configurable:!0})}function Ce(e,t){return w(t,{target:e.name||e.toString()}),t}function me(e,t){return w(t,{description:e}),t}function Te(e,t){return w(t,{guards:[e]}),t}function be(e,t){return w(t,{invoke:{src:e.src,onDone:e.onDone.name||e.onDone.toString(),onError:e.onError.name||e.onError.toString(),description:e.description}}),t}function we(e,t){return w(t,{actions:[e]}),t}function j(e,t,n={}){let{onFail:r="throw",errorMessage:i,description:o}=n,a={...n,onFail:r,errorMessage:i,description:o},s=function(...l){let c=typeof this=="object"&&"context"in this,d=c?this.context:this;if(e(d,...l)){let M=c?this.context:this;return t.apply(M,l)}else if(r==="throw"){let M=i||"Guard condition failed";throw new Error(M)}else if(r==="ignore"){if(c)return this;throw new Error('Cannot use "ignore" mode with context-only binding. Use full machine binding or provide fallback.')}else if(typeof r=="function"){if(c)return r.apply(this,l);throw new Error("Cannot use function fallback with context-only binding. Use full machine binding.")}else return r};return Object.defineProperty(s,"__guard",{value:!0,enumerable:!1}),Object.defineProperty(s,"condition",{value:e,enumerable:!1}),Object.defineProperty(s,"transition",{value:t,enumerable:!1}),Object.defineProperty(s,"options",{value:a,enumerable:!1}),w(s,{description:o||"Synchronous guarded transition",guards:[{name:"runtime_guard",description:o||"Synchronous condition check"}]}),s}function R(e,t,n={}){let{onFail:r="throw",errorMessage:i,description:o}=n,a={...n,onFail:r,errorMessage:i,description:o},s=async function(...l){let c=typeof this=="object"&&"context"in this,d=c?this.context:this;if(await Promise.resolve(e(d,...l))){let M=c?this.context:this;return t.apply(M,l)}else if(r==="throw"){let M=i||"Guard condition failed";throw new Error(M)}else if(r==="ignore"){if(c)return this;throw new Error('Cannot use "ignore" mode with context-only binding. Use full machine binding or provide fallback.')}else if(typeof r=="function"){if(c)return r.apply(this,l);throw new Error("Cannot use function fallback with context-only binding. Use full machine binding.")}else return r};return Object.defineProperty(s,"__guard",{value:!0,enumerable:!1}),Object.defineProperty(s,"condition",{value:e,enumerable:!1}),Object.defineProperty(s,"transition",{value:t,enumerable:!1}),Object.defineProperty(s,"options",{value:a,enumerable:!1}),w(s,{description:o||"Runtime guarded transition",guards:[{name:"runtime_guard",description:o||"Runtime condition check"}]}),s}function Ee(e){return{do(t){let n=j(e,t);return n.else=function(r){return j(e,t,{onFail:r})},n}}}function Se(e){return{do(t){let n=R(e,t);return n.else=function(r){return R(e,t,{onFail:r})},n}}}function Ae(e,t){return t}function Fe(e,t){let n=e,r=s=>{n=s,t==null||t(s)},{context:i,...o}=e,a=new Proxy({},{get(s,l){let c=n[l];if(typeof c=="function")return(...d)=>{let u=c.apply(n.context,d),M=Object.assign({context:u.context},o);return r(M),M}}});return{get state(){return n},get context(){return n.context},actions:a,setState:r}}function je(e,t,n){let r=()=>{let o=e.getContext(),a=n(o),s=t[a];if(!s)throw new Error(`[Ensemble] Invalid state: No factory found for state "${String(a)}".`);return s(o)},i=new Proxy({},{get(o,a){let s=r(),l=s[a];if(typeof l!="function")throw new Error(`[Ensemble] Transition "${a}" is not valid in the current state.`);return(...c)=>l.apply(s.context,c)}});return{get context(){return e.getContext()},get state(){return r()},actions:i}}function Je(e,t){return function(r){return je(e,r,t)}}function Ye(e,t){let n=Fe(t),r=e(n),i=r.next();for(;!i.done;)i=r.next();return i.value}function Xe(e,t){let n=e(t),r=n.next();for(;!r.done;)r=n.next();return r.value}var _=class{constructor(t){this.store=t}get context(){return this.store.getContext()}setContext(t){this.store.setContext(t)}};function Qe(e,t){let n=new e(t);return new Proxy({},{get(r,i){let o=t.getContext();if(i in o)return o[i];let a=n[i];if(typeof a=="function")return(...s)=>a.apply(n,s)},set(r,i,o){let a=t.getContext();if(i in a){let s={...a,[i]:o};return t.setContext(s),!0}return!1},has(r,i){let o=t.getContext();return i in o||typeof n[i]=="function"},ownKeys(r){let i=t.getContext(),o=Object.keys(i),a=Object.getOwnPropertyNames(Object.getPrototypeOf(n)).filter(s=>s!=="constructor"&&typeof n[s]=="function");return Array.from(new Set([...o,...a]))},getOwnPropertyDescriptor(r,i){let o=t.getContext();if(i in o||typeof n[i]=="function")return{value:void 0,writable:!0,enumerable:!0,configurable:!0}}})}function Ze(e,t,n){let r=()=>{let i=n(e),o=t[i];if(!o)throw new Error(`[MutableMachine] Invalid state: No factory for state "${String(i)}".`);return o(e)};return new Proxy(e,{get(i,o,a){if(o in i)return i[o];let s=r(),l=s[o];if(typeof l=="function")return(...c)=>{let d=l.apply(s.context,c);if(typeof d!="object"||d===null){console.warn(`[MutableMachine] Transition "${String(o)}" did not return a valid context object. State may be inconsistent.`);return}Object.keys(i).forEach(u=>delete i[u]),Object.assign(i,d)}},set(i,o,a,s){return i[o]=a,!0},has(i,o){let a=r();return o in i||typeof a[o]=="function"}})}function et(e){return function(...t){let n=this.context.child;if(typeof n[e]=="function"){let r=n[e](...t);return S(this,{...this.context,child:r})}return this}}function tt(e){return function(){return typeof this.context[e]!="boolean"&&console.warn(`[toggle primitive] Property '${String(e)}' is not a boolean. Toggling may have unexpected results.`),S(this,{...this.context,[e]:!this.context[e]})}}var W=class extends T{constructor(n){super({status:"idle"});this.config=n;this.fetch=n=>new E(this.config,n!=null?n:this.config.initialParams,1)}},E=class extends T{constructor(n,r,i){super({status:"loading",abortController:new AbortController,attempts:i});this.config=n;this.params=r;this.succeed=n=>{var r,i;return(i=(r=this.config).onSuccess)==null||i.call(r,n),new G(this.config,{status:"success",data:n})};this.fail=n=>{var i,o,a;let r=(i=this.config.maxRetries)!=null?i:3;return this.context.attempts<r?new L(this.config,this.params,n,this.context.attempts):((a=(o=this.config).onError)==null||a.call(o,n),new H(this.config,{status:"error",error:n}))};this.cancel=()=>(this.context.abortController.abort(),new I(this.config));this.execute()}async execute(){}},L=class extends T{constructor(n,r,i,o){super({status:"retrying",error:i,attempts:o});this.config=n;this.params=r;this.retry=n=>new E(this.config,n!=null?n:this.params,this.context.attempts+1)}},G=class extends T{constructor(n,r){super(r);this.config=n;this.refetch=n=>new E(this.config,n!=null?n:this.config.initialParams,1)}},H=class extends T{constructor(n,r){super(r);this.config=n;this.retry=n=>new E(this.config,n!=null?n:this.config.initialParams,1)}},I=class extends T{constructor(n){super({status:"canceled"});this.config=n;this.refetch=n=>new E(this.config,n!=null?n:this.config.initialParams,1)}};function nt(e){return new W(e)}function V(e,t){let n={...e.context,...t.context},r={...e},i={...t};delete r.context,delete i.context;let o={};for(let a in r){let s=r[a];o[a]=(...l)=>{let c=s.apply(e.context,l);return V(c,t)}}for(let a in i){let s=i[a];o[a]=(...l)=>{let c=s.apply(t.context,l);return V(e,c)}}return{context:n,...o}}var p=require("ts-morph");function Re(e){return p.Node.isIdentifier(e)?e.getText():p.Node.isTypeOfExpression(e)?e.getExpression().getText():"unknown"}function F(e){if(!p.Node.isObjectLiteralExpression(e))return{};let t={};for(let n of e.getProperties())if(p.Node.isPropertyAssignment(n)){let r=n.getName(),i=n.getInitializer();i&&(p.Node.isStringLiteral(i)||p.Node.isNumericLiteral(i)?t[r]=i.getLiteralValue():i.getText()==="true"||i.getText()==="false"?t[r]=i.getText()==="true":p.Node.isIdentifier(i)?t[r]=i.getText():p.Node.isObjectLiteralExpression(i)?t[r]=F(i):p.Node.isArrayLiteralExpression(i)&&(t[r]=i.getElements().map(o=>p.Node.isObjectLiteralExpression(o)?F(o):o.getText())))}return t}function rt(e){if(!p.Node.isObjectLiteralExpression(e))return{};let t={};for(let n of e.getProperties())if(p.Node.isPropertyAssignment(n)){let r=n.getName(),i=n.getInitializer();if(!i)continue;r==="onDone"||r==="onError"?t[r]=Re(i):p.Node.isStringLiteral(i)?t[r]=i.getLiteralValue():p.Node.isIdentifier(i)&&(t[r]=i.getText())}return t}function A(e,t=!1){if(!p.Node.isCallExpression(e))return null;let n=e.getExpression(),r=p.Node.isIdentifier(n)?n.getText():null;if(!r)return null;let i={},o=e.getArguments();switch(r){case"transitionTo":o[0]&&(i.target=Re(o[0]));break;case"describe":if(o[0]&&p.Node.isStringLiteral(o[0])&&(i.description=o[0].getLiteralValue()),o[1]&&p.Node.isCallExpression(o[1])){let a=A(o[1],t);a&&Object.assign(i,a)}break;case"guarded":if(o[0]){let a=F(o[0]);Object.keys(a).length>0&&(i.guards=[a])}if(o[1]&&p.Node.isCallExpression(o[1])){let a=A(o[1],t);a&&Object.assign(i,a)}break;case"invoke":if(o[0]){let a=rt(o[0]);Object.keys(a).length>0&&(i.invoke=a)}break;case"action":if(o[0]){let a=F(o[0]);Object.keys(a).length>0&&(i.actions=[a])}if(o[1]&&p.Node.isCallExpression(o[1])){let a=A(o[1],t);a&&Object.assign(i,a)}break;case"guard":if(o[2]){let a=F(o[2]);a.description&&(i.description=a.description)}if(i.guards=[{name:"runtime_guard",description:i.description||"Synchronous condition check"}],o[1]&&p.Node.isCallExpression(o[1])){let a=A(o[1],t);a&&Object.assign(i,a)}break;case"guardAsync":if(o[2]){let a=F(o[2]);a.description&&(i.description=a.description)}if(i.guards=[{name:"runtime_guard_async",description:i.description||"Asynchronous condition check"}],o[1]&&p.Node.isCallExpression(o[1])){let a=A(o[1],t);a&&Object.assign(i,a)}break;default:return null}return Object.keys(i).length>0?i:null}function it(e,t=!1){if(!p.Node.isPropertyDeclaration(e))return t&&console.error(" ⚠️ Not a property declaration"),null;let n=e.getInitializer();if(!n)return t&&console.error(" ⚠️ No initializer"),null;if(!p.Node.isCallExpression(n))return t&&console.error(" ⚠️ Initializer is not a call expression"),null;let r=A(n,t);return r&&t&&console.error(" ✅ Extracted metadata:",JSON.stringify(r,null,2)),r}function U(e,t=!1){let n={on:{}},r=e.getDeclarations()[0];if(!r||!p.Node.isClassDeclaration(r))return t&&console.error(`⚠️ Warning: Could not get class declaration for ${e.getName()}`),n;let i=e.getName();t&&console.error(` Analyzing state: ${i}`);for(let o of r.getInstanceMembers()){let a=o.getName();t&&console.error(` Checking member: ${a}`);let s=it(o,t);if(!s)continue;t&&console.error(` Found transition: ${a}`);let{invoke:l,actions:c,guards:d,...u}=s;if(l&&(n.invoke||(n.invoke=[]),n.invoke.push({src:l.src,onDone:{target:l.onDone},onError:{target:l.onError},description:l.description}),t&&console.error(` → Invoke: ${l.src}`)),u.target){let M={target:u.target};u.description&&(M.description=u.description),d&&(M.cond=d.map(y=>y.name).join(" && "),t&&console.error(` → Guard: ${M.cond}`)),c&&c.length>0&&(M.actions=c.map(y=>y.name),t&&console.error(` → Actions: ${M.actions.join(", ")}`)),n.on[a]=M,t&&console.error(` → Target: ${u.target}`)}}return n}function ot(e,t,n,r,i=!1){let o=U(t,i);if(r){i&&console.error(` 👪 Analyzing children for state: ${e}`),o.initial=r.initialState,o.states={};for(let a of r.classes){let s=n.getClass(a);if(s){let l=s.getSymbolOrThrow();o.states[a]=U(l,i)}else console.warn(`⚠️ Warning: Child class '${a}' not found.`)}}return o}function q(e,t,n=!1){n&&(console.error(`
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
`);let t=new p.Project;t.addSourceFilesAtPaths("src/**/*.ts"),t.addSourceFilesAtPaths("examples/**/*.ts");try{let n=q(e,t,!0);console.log(JSON.stringify(n,null,2))}catch(n){console.error("❌ Error:",n),process.exit(1)}}var st={hierarchical:{input:"examples/dashboardMachine.ts",id:"dashboard",classes:["DashboardMachine","LoggedOutMachine"],initialState:"DashboardMachine",children:{contextProperty:"child",initialState:"ViewingChildMachine",classes:["ViewingChildMachine","EditingChildMachine"]}},parallel:{input:"examples/editorMachine.ts",id:"editor",parallel:{regions:[{name:"fontWeight",initialState:"NormalWeight",classes:["NormalWeight","BoldWeight"]},{name:"textDecoration",initialState:"NoDecoration",classes:["NoDecoration","UnderlineState"]}]}}};require.main===module&&Oe();var J=Symbol("CANCEL");function C(e,t,n={}){let{continueOnError:r=!1,logErrors:i=!0,onError:o}=n,a={...e};for(let s in e)Object.prototype.hasOwnProperty.call(e,s)&&s!=="context"&&typeof e[s]!="function"&&(a[s]=e[s]);for(let s in e){if(!Object.prototype.hasOwnProperty.call(e,s))continue;let l=e[s];typeof l=="function"&&s!=="context"&&(a[s]=function(...c){let d=s,u=a.context,M=()=>{let y;try{y=l.apply(this,c)}catch(f){if(t.error)try{t.error({transitionName:d,context:u,args:[...c],error:f})}catch(h){if(!r)throw h;i&&console.error(`Middleware error hook error for ${d}:`,h),o==null||o(h,"error",{transitionName:d,context:u,args:c,error:f})}throw f}let x=f=>{if(f&&typeof f=="object"&&f.context){for(let h in a)Object.prototype.hasOwnProperty.call(a,h)&&h!=="context"&&!(h in f)&&(f[h]=a[h]);for(let h in f){if(!Object.prototype.hasOwnProperty.call(f,h))continue;typeof f[h]=="function"&&h!=="context"&&a[h]&&(f[h]=a[h])}}return f};if(y&&typeof y.then=="function")return y.then(h=>{if(x(h),t.after)try{let m=t.after({transitionName:d,prevContext:u,nextContext:h.context,args:[...c]});if(m&&typeof m.then=="function")return m.then(()=>h)}catch(m){if(!r)throw m;i&&console.error(`Middleware after hook error for ${d}:`,m),o==null||o(m,"after",{transitionName:d,prevContext:u,nextContext:h.context,args:c})}return h});if(x(y),t.after)try{let f=t.after({transitionName:d,prevContext:u,nextContext:y.context,args:[...c]});if(f&&typeof f=="object"&&f&&"then"in f)return f.then(()=>y).catch(h=>{if(!r)throw h;return i&&console.error(`Middleware after hook error for ${d}:`,h),o==null||o(h,"after",{transitionName:d,prevContext:u,nextContext:y.context,args:c}),y})}catch(f){if(!r)throw f;i&&console.error(`Middleware after hook error for ${d}:`,f),o==null||o(f,"after",{transitionName:d,prevContext:u,nextContext:y.context,args:c})}return y};if(t.before)try{let y=t.before({transitionName:d,context:u,args:[...c]});if(y&&typeof y=="object"&&y&&"then"in y)return y.then(x=>x===J?a:M()).catch(x=>{if(!r)throw x;return i&&console.error(`Middleware before hook error for ${d}:`,x),o==null||o(x,"before",{transitionName:d,context:u,args:c}),M()});if(y===J)return a}catch(y){if(!r)throw y;i&&console.error(`Middleware before hook error for ${d}:`,y),o==null||o(y,"before",{transitionName:d,context:u,args:c})}return M()})}return a}function Y(e,t={}){let{logger:n=console.log,includeArgs:r=!1,includeContext:i=!0}=t;return C(e,{before:({transitionName:o,args:a})=>{let s=r?`→ ${o} [${a.join(", ")}]`:`→ ${o}`;n(s)},after:({transitionName:o,nextContext:a})=>{let s=i?` ${JSON.stringify(a)}`:"";n(`✓ ${o}${s}`)},error:({transitionName:o,error:a})=>{console.error(`[Machine] ${o} failed:`,a)}})}function X(e,t,n={}){let{eventPrefix:r="state_transition",includePrevContext:i=!1,includeArgs:o=!1}=n;return C(e,{after:({transitionName:a,prevContext:s,nextContext:l,args:c})=>{let d=`${r}.${a}`,u={transition:a};i&&(u.from=s),u.to=l,o&&(u.args=c),t(d,u)}})}function Q(e,t){return C(e,{before:n=>{if(t(n)===!1)throw new Error(`Validation failed for transition: ${n.transitionName}`)}})}function Z(e,t){return C(e,{before:n=>{if(!t(n))throw new Error(`Unauthorized transition: ${n.transitionName}`)}})}function ee(e,t,n={}){let{includeArgs:r=!1}=n;return C(e,{error:i=>{let o={transition:i.transitionName,context:i.context,...r&&{args:i.args}};t(i.error,o)}})}function te(e,t){let n=new Map;return C(e,{before:r=>{n.set(r.transitionName,Date.now())},after:r=>{let i=n.get(r.transitionName);if(i){let o=Date.now()-i;n.delete(r.transitionName);let a={transitionName:r.transitionName,duration:o,context:r.nextContext||r.prevContext};t(a)}}})}function ne(e,t={}){var l,c;let{maxAttempts:n=(l=t.maxRetries)!=null?l:3,shouldRetry:r=()=>!0,backoffMs:i=(c=t.delay)!=null?c:100,backoffMultiplier:o=2,onRetry:a}=t,s={...e};for(let d in e){if(!Object.prototype.hasOwnProperty.call(e,d))continue;let u=e[d];typeof u=="function"&&d!=="context"&&(s[d]=async function(...M){let y,x=0;for(;x<n;)try{return await u.apply(this,M)}catch(f){if(y=f,x++,x<n&&r(y,x)){a==null||a(y,x);let m=(typeof i=="function"?i(x):i)*Math.pow(o,x-1);await new Promise(b=>setTimeout(b,m))}else throw y}throw y})}return s}function ct(e,t){return n=>C(n,e,t)}function O(e,t={}){let{maxSize:n,serializer:r,onEntry:i}=t,o=[],a=0,s=C(e,{before:({transitionName:l,args:c})=>{let d={id:`entry-${a++}`,transitionName:l,args:[...c],timestamp:Date.now()};if(r)try{d.serializedArgs=r.serialize(c)}catch(u){console.error("Failed to serialize history args:",u)}o.push(d),n&&o.length>n&&o.shift(),i==null||i(d)}});return Object.assign(s,{history:o,clearHistory:()=>{o.length=0,a=0}})}function P(e,t={}){let{maxSize:n,serializer:r,captureSnapshot:i,onlyOnChange:o=!1}=t,a=[],s=0,l=C(e,{after:({transitionName:d,prevContext:u,nextContext:M})=>{if(o&&JSON.stringify(u)===JSON.stringify(M))return;let y={id:`snapshot-${s++}`,transitionName:d,before:{...u},after:{...M},timestamp:Date.now()};if(r)try{y.serializedBefore=r.serialize(u),y.serializedAfter=r.serialize(M)}catch(x){console.error("Failed to serialize snapshot:",x)}if(i)try{y.diff=i(u,M)}catch(x){console.error("Failed to capture snapshot:",x)}a.push(y),n&&a.length>n&&a.shift()}});return Object.assign(l,{snapshots:a,clearSnapshots:()=>{a.length=0,s=0},restoreSnapshot:d=>{let u=Object.fromEntries(Object.entries(e).filter(([M])=>M!=="context"&&M!=="snapshots"&&M!=="clearSnapshots"&&M!=="restoreSnapshot"&&typeof e[M]=="function"));return Object.assign({context:d},u)}})}function k(e,t={}){let{maxSize:n,serializer:r,onRecord:i}=t,o=[],a=[],s=0,l=0,c=C(e,{before:({transitionName:M,args:y})=>{let x={id:`entry-${s++}`,transitionName:M,args:[...y],timestamp:Date.now()};if(r)try{x.serializedArgs=r.serialize(y)}catch(f){console.error("Failed to serialize history args:",f)}o.push(x),n&&o.length>n&&o.shift(),i==null||i("history",x)},after:({transitionName:M,prevContext:y,nextContext:x})=>{let f={id:`snapshot-${l++}`,transitionName:M,before:{...y},after:{...x},timestamp:Date.now()};if(r)try{f.serializedBefore=r.serialize(y),f.serializedAfter=r.serialize(x)}catch(h){console.error("Failed to serialize snapshot:",h)}a.push(f),n&&a.length>n&&a.shift(),i==null||i("snapshot",f)}});return Object.assign(c,{history:o,snapshots:a,clearHistory:()=>{o.length=0,s=0},clearSnapshots:()=>{a.length=0,l=0},clearTimeTravel:()=>{o.length=0,a.length=0,s=0,l=0},restoreSnapshot:M=>{let y=Object.fromEntries(Object.entries(e).filter(([x])=>x!=="context"&&x!=="history"&&x!=="snapshots"&&x!=="clearHistory"&&x!=="clearSnapshots"&&x!=="restoreSnapshot"&&x!=="clearTimeTravel"&&x!=="replayFrom"&&typeof e[x]=="function"));return Object.assign({context:M},y)},replayFrom:M=>{var m;if(M<0||M>=o.length)throw new Error(`Invalid replay start index: ${M}`);let y=(m=a[M])==null?void 0:m.before;if(!y)throw new Error(`No snapshot available for index ${M}`);let x=o.slice(M),h=Object.assign({context:y},Object.fromEntries(Object.entries(e).filter(([b])=>b!=="context"&&typeof e[b]=="function")));for(let b of x){let le=h[b.transitionName];le&&(h=le.apply(h.context,b.args))}return h}})}function lt(e,...t){return t.reduce((n,r)=>r(n),e)}function v(e,...t){return t.reduce((n,r)=>r(n),e)}var re=class e{constructor(t){this.machine=t}with(t){let n=t(this.machine);return new e(n)}build(){return this.machine}};function dt(e){return new re(e)}function K(e,t){let n=function(r){return t(r)?e(r):r};return n.middleware=e,n.when=t,n}function ut(e){return K(e,()=>typeof process!="undefined"?!1:typeof window!="undefined"?!window.location.hostname.includes("production"):!1)}function yt(e,t,n){return K(n,r=>r.context[e]===t)}function Mt(){let e=new Map;return{register(t,n,r,i){if(e.has(t))throw new Error(`Middleware '${t}' is already registered`);return e.set(t,{name:t,middleware:n,description:r,priority:i}),this},unregister(t){return e.delete(t)},has(t){return e.has(t)},get(t){return e.get(t)},list(){return Array.from(e.values()).sort((t,n)=>{var r,i;return((r=t.priority)!=null?r:0)-((i=n.priority)!=null?i:0)})},apply(t,n){let r=n.map(i=>{let o=e.get(i);if(!o)throw new Error(`Middleware '${i}' is not registered`);return o}).sort((i,o)=>{var a,s;return((a=i.priority)!=null?a:0)-((s=o.priority)!=null?s:0)});return v(t,...r.map(i=>i.middleware))},applyAll(t){let n=this.list();return v(t,...n.map(r=>r.middleware))}}}function xt(e={}){let{continueOnError:t=!1,logErrors:n=!0,onError:r}=e;return(i,...o)=>{let a=i,s=[],l=!0;for(let c=0;c<o.length;c++){let d=o[c];try{if("middleware"in d&&"when"in d){if(!d.when(a))continue;a=d.middleware(a)}else a=d(a)}catch(u){if(l=!1,!t)throw u;s.push({error:u,middlewareIndex:c,middlewareName:d.name}),n&&console.error(`Pipeline middleware error at index ${c}:`,u),r==null||r(u,c,d.name)}}return{machine:a,errors:s,success:l}}}function ft(...e){return t=>v(t,...e)}function ht(e,t){return n=>{for(let[r,i]of e)if(r(n))return i(n);return t?t(n):n}}function ie(e){return typeof e=="function"&&e.length===1}function pt(e){return e!==null&&(typeof e=="object"||typeof e=="function")&&"middleware"in e&&"when"in e&&ie(e.middleware)&&typeof e.when=="function"}function gt(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"prevContext"in e&&"nextContext"in e&&"args"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&(!t||N(e.prevContext,t)&&N(e.nextContext,t))}function Ct(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"context"in e&&"args"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&(!t||N(e.context,t))}function mt(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"context"in e&&"args"in e&&"error"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&e.error instanceof Error&&(!t||N(e.context,t))}function Tt(e,t){if(e===null||typeof e!="object")return!1;let n=e;return!("before"in n&&n.before!==void 0&&typeof n.before!="function"||"after"in n&&n.after!==void 0&&typeof n.after!="function"||"error"in n&&n.error!==void 0&&typeof n.error!="function")}function bt(e){return e===void 0||e!==null&&typeof e=="object"&&("continueOnError"in e?typeof e.continueOnError=="boolean":!0)&&("logErrors"in e?typeof e.logErrors=="boolean":!0)&&("onError"in e?typeof e.onError=="function"||e.onError===void 0:!0)}function N(e,t){return e!==null&&typeof e=="object"}function wt(e){return e!==null&&typeof e=="object"&&"name"in e&&"middleware"in e&&typeof e.name=="string"&&ie(e.middleware)&&("description"in e?typeof e.description=="string"||e.description===void 0:!0)&&("priority"in e?typeof e.priority=="number"||e.priority===void 0:!0)}function Et(e){return e===void 0||e!==null&&typeof e=="object"&&("continueOnError"in e?typeof e.continueOnError=="boolean":!0)&&("logErrors"in e?typeof e.logErrors=="boolean":!0)&&("onError"in e?typeof e.onError=="function"||e.onError===void 0:!0)}var B=class{constructor(t){this.machine=t;this.middlewares=[]}withLogging(t){return this.middlewares.push(n=>Y(n,t)),this}withAnalytics(t,n){return this.middlewares.push(r=>X(r,t,n)),this}withValidation(t,n){return this.middlewares.push(r=>Q(r,t)),this}withPermissions(t){return this.middlewares.push(n=>Z(n,t)),this}withErrorReporting(t,n){return this.middlewares.push(r=>ee(r,t,n)),this}withPerformanceMonitoring(t,n){return this.middlewares.push(r=>te(r,t)),this}withRetry(t){return this.middlewares.push(n=>ne(n,t)),this}withHistory(t){return this.middlewares.push(n=>O(n,t)),this}withSnapshot(t){return this.middlewares.push(n=>P(n,t)),this}withTimeTravel(t){return this.middlewares.push(n=>k(n,t)),this}withDebugging(){return this.middlewares.push(t=>ke(t)),this}withCustom(t){return this.middlewares.push(t),this}withConditional(t,n){return this.middlewares.push(K(t,n)),this}build(){let t=this.machine;for(let n of this.middlewares)t=n(t);return t}getChain(){return[...this.middlewares]}clear(){return this.middlewares=[],this}};function Pe(e){return new B(e)}function St(e={}){return{create:t=>{let n=Pe(t);return e.logging&&n.withLogging(e.logging),e.analytics&&n.withAnalytics(e.analytics.track,e.analytics.options),e.history&&n.withHistory(e.history),e.snapshot&&n.withSnapshot(e.snapshot),e.timeTravel&&n.withTimeTravel(e.timeTravel),e.retry&&n.withRetry(e.retry),n}}}function ke(e){return k(P(O(e)))}function ve(e,t){return e instanceof t}function Ne(e,...t){return{type:e,args:t}}function Be(e,t){return S(e,n=>({...n,...t}))}async function Ke(e,...t){let n=e;for(let r of t)n=await r(n);return n}function ze(e,t){return t?console.log(t,e.context):console.log(e.context),e}function $e(e,t){return function(...n){let r=t(this.context,...n);return g(r,e())}}function De(e,t,...n){return e.apply(t,n)}function oe(e){return new Proxy(e,{get(t,n){let r=t[n];return typeof r=="function"?function(...i){let o=r.apply(t.context,i);return o&&typeof o=="object"&&"context"in o?oe(o):o}:r}})}var z=class e{constructor(t){return this.wrappedMachine=t,new Proxy(this,{get:(n,r)=>{if(r==="wrappedMachine")return Reflect.get(n,r);if(r==="context")return this.wrappedMachine.context;let i=this.wrappedMachine[r];return typeof i=="function"?(...o)=>{let a=i.apply(this.wrappedMachine.context,o);return a&&typeof a=="object"&&"context"in a?new e(a):a}:i}})}};function _e(){return function(t){return function(...n){let r=t(this.context,...n);return g(r,this)}}}function ae(e){return{machine:e,addTransition:function(t,n){let r=function(...o){let a=n(this.context,...o);return g(a,this)},i=ce(e,{[t]:r});return ae(i)}}}function se(e){return function(n){let r={},i=Object.fromEntries(Object.entries(n).map(([o,a])=>[o,function(...s){let l=a(this.context,...s);return g(l,r)}]));return Object.assign(r,i),g(e,r)}}function We(e,t){return t!==void 0?g(e,t):se(e)}function g(e,t){if(typeof t=="function"){let i;i=t(s=>{let l=g(s,i),c=Object.fromEntries(Object.entries(i).map(([d,u])=>[d,u.bind(s)]));return Object.assign(l,c)});let a=Object.fromEntries(Object.entries(i).map(([s,l])=>[s,l.bind(e)]));return Object.assign({context:e},a)}let n="context"in t?Object.fromEntries(Object.entries(t).filter(([i])=>i!=="context")):t;return Object.assign({context:e},n)}function Le(e,t){if(typeof t=="function"){let i;i=t(s=>{let l=Le(s,i),c=Object.fromEntries(Object.entries(i).map(([d,u])=>[d,u.bind(s)]));return Object.assign(l,c)});let a=Object.fromEntries(Object.entries(i).map(([s,l])=>[s,l.bind(e)]));return Object.assign({context:e},a)}let n="context"in t?Object.fromEntries(Object.entries(t).filter(([i])=>i!=="context")):t;return Object.assign({context:e},n)}function At(){return e=>{let t=Object.fromEntries(Object.entries(e).map(([n,r])=>[n,function(...i){let o=r(this.context,...i);return g(o,t)}]));return n=>g(n,t)}}function S(e,t){let{context:n,...r}=e,i=typeof t=="function"?t(n):t;return g(i,r)}function Ft(e,t){let{context:n,...r}=e,i={...r,...t};return g(n,i)}function ce(e,t){let{context:n,...r}=e,i={...r,...t};return g(n,i)}function jt(e,t){return(...n)=>{let r=e(...n),i=t(),o={...r.context,...i.context},{context:a,...s}=r,{context:l,...c}=i,d={...s,...c};return g(o,d)}}function Rt(e){let{context:t,...n}=e;return r=>g(r,n)}function Ot(e,t,n){let r=e.context[t],i=n[r];if(!i)throw new Error(`No handler found for state: ${String(r)}`);return i(e.context)}function Pt(e,t,n){return e.context[t]===n}function kt(e,t){let n=e,r=null;async function i(o){r&&(r.abort(),r=null);let a=n[o.type];if(typeof a!="function")throw new Error(`[Machine] Unknown event type '${String(o.type)}' on current state.`);let s=new AbortController;r=s;try{let c=await a.apply(n.context,[...o.args,{signal:s.signal}]);return s.signal.aborted||(n=c,t==null||t(n)),n}finally{r===s&&(r=null)}}return{get state(){return n.context},dispatch:i,stop:()=>{r&&(r.abort(),r=null)}}}var T=class{constructor(t){this.context=t}};function vt(e,t){let{context:n,...r}=e;return g(t(n),r)}
|
|
1
|
+
"use strict";var K=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var De=Object.getOwnPropertyNames;var Ie=Object.prototype.hasOwnProperty;var Ve=(e,n)=>{for(var t in n)K(e,t,{get:n[t],enumerable:!0})},Ue=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of De(n))!Ie.call(e,a)&&a!==t&&K(e,a,{get:()=>n[a],enumerable:!(r=Ge(n,a))||r.enumerable});return e};var Le=e=>Ue(K({},"__esModule",{value:!0}),e);var jn={};Ve(jn,{BoundMachine:()=>B,CANCEL:()=>V,META_KEY:()=>xe,MachineBase:()=>m,MiddlewareBuilder:()=>O,MultiMachineBase:()=>H,action:()=>ge,bindTransitions:()=>ne,branch:()=>ln,call:()=>ke,chain:()=>an,classCase:()=>_e,combine:()=>yn,combineFactories:()=>En,compose:()=>rn,composeTyped:()=>v,createAsyncMachine:()=>$e,createContext:()=>bn,createCustomMiddleware:()=>tn,createEnsemble:()=>Ee,createEnsembleFactory:()=>qe,createEvent:()=>Se,createFetchMachine:()=>nn,createFlow:()=>de,createFunctionalMachine:()=>re,createMachine:()=>p,createMachineBuilder:()=>Fn,createMachineFactory:()=>Tn,createMatcher:()=>Ke,createMiddleware:()=>C,createMiddlewareFactory:()=>mn,createMiddlewareRegistry:()=>cn,createMultiMachine:()=>Qe,createMutableMachine:()=>Xe,createParallelMachine:()=>I,createPipeline:()=>dn,createRunner:()=>we,createTransition:()=>Oe,createTransitionExtender:()=>te,createTransitionFactory:()=>Be,customCase:()=>ze,delegateToChild:()=>Ze,describe:()=>fe,discriminantCase:()=>He,extendTransitions:()=>ae,forContext:()=>We,guard:()=>F,guardAsync:()=>A,guarded:()=>pe,hasState:()=>N,inDevelopment:()=>on,invoke:()=>Ce,isConditionalMiddleware:()=>un,isMiddlewareContext:()=>xn,isMiddlewareError:()=>hn,isMiddlewareFn:()=>ee,isMiddlewareHooks:()=>fn,isMiddlewareOptions:()=>pn,isMiddlewareResult:()=>Mn,isNamedMiddleware:()=>Cn,isPipelineConfig:()=>gn,isState:()=>Re,logState:()=>Pe,matchMachine:()=>An,mergeContext:()=>je,metadata:()=>be,middlewareBuilder:()=>Fe,next:()=>Sn,overrideTransitions:()=>wn,pipeTransitions:()=>ve,run:()=>_,runAsync:()=>le,runMachine:()=>Rn,runSequence:()=>ce,runWithDebug:()=>ye,runWithEnsemble:()=>Ye,runWithRunner:()=>Je,setContext:()=>E,state:()=>Ne,step:()=>ie,stepAsync:()=>ue,toggle:()=>en,transitionTo:()=>he,when:()=>k,whenContext:()=>sn,whenGuard:()=>me,whenGuardAsync:()=>Te,withAnalytics:()=>L,withDebugging:()=>Ae,withErrorReporting:()=>Y,withHistory:()=>R,withLogging:()=>U,withPerformanceMonitoring:()=>Q,withPermissions:()=>J,withRetry:()=>X,withSnapshot:()=>S,withTimeTravel:()=>j,withValidation:()=>q,yieldMachine:()=>se});module.exports=Le(jn);function _(e,n){let t=e(n),r=n;for(;;){let{value:a,done:o}=t.next(r);if(o)return a;r=a}}function ie(e){return function*(){return yield e}()}function se(e){return e}function ce(e,n){return n.reduce((t,r)=>_(r,t),e)}function de(e){return e}function ye(e,n,t=(r,a)=>{console.log(`Step ${r}:`,a.context)}){let r=e(n),a=n,o=0;for(t(o,a);;){let{value:i,done:s}=r.next(a);if(s)return console.log("Final:",i),i;a=i,o++,t(o,a)}}async function le(e,n){let t=e(n),r=n;for(;;){let{value:a,done:o}=await t.next(r);if(o)return a;r=a}}async function*ue(e){return yield e}var xe=Symbol("MachineMeta"),Me=Symbol("__machine_runtime_meta__");function b(e,n){let t=e[Me]||{},r={...t,...n};n.guards&&t.guards?r.guards=[...n.guards,...t.guards]:n.guards&&(r.guards=[...n.guards]),n.actions&&t.actions?r.actions=[...n.actions,...t.actions]:n.actions&&(r.actions=[...n.actions]),Object.defineProperty(e,Me,{value:r,enumerable:!1,writable:!1,configurable:!0})}function he(e,n){return b(n,{target:e.name||e.toString()}),n}function fe(e,n){return b(n,{description:e}),n}function pe(e,n){return b(n,{guards:[e]}),n}function Ce(e,n){return b(n,{invoke:{src:e.src,onDone:e.onDone.name||e.onDone.toString(),onError:e.onError.name||e.onError.toString(),description:e.description}}),n}function ge(e,n){return b(n,{actions:[e]}),n}function F(e,n,t={}){let{onFail:r="throw",errorMessage:a,description:o}=t,i={...t,onFail:r,errorMessage:a,description:o},s=function(...d){let c=typeof this=="object"&&"context"in this,y=c?this.context:this;if(e(y,...d)){let M=c?this.context:this;return n.apply(M,d)}else if(r==="throw"){let M=a||"Guard condition failed";throw new Error(M)}else if(r==="ignore"){if(c)return this;throw new Error('Cannot use "ignore" mode with context-only binding. Use full machine binding or provide fallback.')}else if(typeof r=="function"){if(c)return r.apply(this,d);throw new Error("Cannot use function fallback with context-only binding. Use full machine binding.")}else return r};return Object.defineProperty(s,"__guard",{value:!0,enumerable:!1}),Object.defineProperty(s,"condition",{value:e,enumerable:!1}),Object.defineProperty(s,"transition",{value:n,enumerable:!1}),Object.defineProperty(s,"options",{value:i,enumerable:!1}),b(s,{description:o||"Synchronous guarded transition",guards:[{name:"runtime_guard",description:o||"Synchronous condition check"}]}),s}function A(e,n,t={}){let{onFail:r="throw",errorMessage:a,description:o}=t,i={...t,onFail:r,errorMessage:a,description:o},s=async function(...d){let c=typeof this=="object"&&"context"in this,y=c?this.context:this;if(await Promise.resolve(e(y,...d))){let M=c?this.context:this;return n.apply(M,d)}else if(r==="throw"){let M=a||"Guard condition failed";throw new Error(M)}else if(r==="ignore"){if(c)return this;throw new Error('Cannot use "ignore" mode with context-only binding. Use full machine binding or provide fallback.')}else if(typeof r=="function"){if(c)return r.apply(this,d);throw new Error("Cannot use function fallback with context-only binding. Use full machine binding.")}else return r};return Object.defineProperty(s,"__guard",{value:!0,enumerable:!1}),Object.defineProperty(s,"condition",{value:e,enumerable:!1}),Object.defineProperty(s,"transition",{value:n,enumerable:!1}),Object.defineProperty(s,"options",{value:i,enumerable:!1}),b(s,{description:o||"Runtime guarded transition",guards:[{name:"runtime_guard",description:o||"Runtime condition check"}]}),s}function me(e){return{do(n){let t=F(e,n);return t.else=function(r){return F(e,n,{onFail:r})},t}}}function Te(e){return{do(n){let t=A(e,n);return t.else=function(r){return A(e,n,{onFail:r})},t}}}function be(e,n){return n}function we(e,n){let t=e,r=s=>{t=s,n==null||n(s)},{context:a,...o}=e,i=new Proxy({},{get(s,d){let c=t[d];if(typeof c=="function")return(...y)=>{let l=c.apply(t.context,y),M=Object.assign({context:l.context},o);return r(M),M}}});return{get state(){return t},get context(){return t.context},actions:i,setState:r}}function Ee(e,n,t){let r=()=>{let o=e.getContext(),i=t(o),s=n[i];if(!s)throw new Error(`[Ensemble] Invalid state: No factory found for state "${String(i)}".`);return s(o)},a=new Proxy({},{get(o,i){let s=r(),d=s[i];if(typeof d!="function")throw new Error(`[Ensemble] Transition "${i}" is not valid in the current state.`);return(...c)=>d.apply(s.context,c)}});return{get context(){return e.getContext()},get state(){return r()},actions:a}}function qe(e,n){return function(r){return Ee(e,r,n)}}function Je(e,n){let t=we(n),r=e(t),a=r.next();for(;!a.done;)a=r.next();return a.value}function Ye(e,n){let t=e(n),r=t.next();for(;!r.done;)r=t.next();return r.value}var H=class{constructor(n){this.store=n}get context(){return this.store.getContext()}setContext(n){this.store.setContext(n)}};function Qe(e,n){let t=new e(n);return new Proxy({},{get(r,a){let o=n.getContext();if(a in o)return o[a];let i=t[a];if(typeof i=="function")return(...s)=>i.apply(t,s)},set(r,a,o){let i=n.getContext();if(a in i){let s={...i,[a]:o};return n.setContext(s),!0}return!1},has(r,a){let o=n.getContext();return a in o||typeof t[a]=="function"},ownKeys(r){let a=n.getContext(),o=Object.keys(a),i=Object.getOwnPropertyNames(Object.getPrototypeOf(t)).filter(s=>s!=="constructor"&&typeof t[s]=="function");return Array.from(new Set([...o,...i]))},getOwnPropertyDescriptor(r,a){let o=n.getContext();if(a in o||typeof t[a]=="function")return{value:void 0,writable:!0,enumerable:!0,configurable:!0}}})}function Xe(e,n,t){let r=()=>{let a=t(e),o=n[a];if(!o)throw new Error(`[MutableMachine] Invalid state: No factory for state "${String(a)}".`);return o(e)};return new Proxy(e,{get(a,o,i){if(o in a)return a[o];let s=r(),d=s[o];if(typeof d=="function")return(...c)=>{let y=d.apply(s.context,c);if(typeof y!="object"||y===null){console.warn(`[MutableMachine] Transition "${String(o)}" did not return a valid context object. State may be inconsistent.`);return}Object.keys(a).forEach(l=>delete a[l]),Object.assign(a,y)}},set(a,o,i,s){return a[o]=i,!0},has(a,o){let i=r();return o in a||typeof i[o]=="function"}})}function Ze(e){return function(...n){let t=this.context.child;if(typeof t[e]=="function"){let r=t[e](...n);return E(this,{...this.context,child:r})}return this}}function en(e){return function(){return typeof this.context[e]!="boolean"&&console.warn(`[toggle primitive] Property '${String(e)}' is not a boolean. Toggling may have unexpected results.`),E(this,{...this.context,[e]:!this.context[e]})}}var z=class extends m{constructor(t){super({status:"idle"});this.config=t;this.fetch=t=>new w(this.config,t!=null?t:this.config.initialParams,1)}},w=class extends m{constructor(t,r,a){super({status:"loading",abortController:new AbortController,attempts:a});this.config=t;this.params=r;this.succeed=t=>{var r,a;return(a=(r=this.config).onSuccess)==null||a.call(r,t),new $(this.config,{status:"success",data:t})};this.fail=t=>{var a,o,i;let r=(a=this.config.maxRetries)!=null?a:3;return this.context.attempts<r?new W(this.config,this.params,t,this.context.attempts):((i=(o=this.config).onError)==null||i.call(o,t),new G(this.config,{status:"error",error:t}))};this.cancel=()=>(this.context.abortController.abort(),new D(this.config));this.execute()}async execute(){}},W=class extends m{constructor(t,r,a,o){super({status:"retrying",error:a,attempts:o});this.config=t;this.params=r;this.retry=t=>new w(this.config,t!=null?t:this.params,this.context.attempts+1)}},$=class extends m{constructor(t,r){super(r);this.config=t;this.refetch=t=>new w(this.config,t!=null?t:this.config.initialParams,1)}},G=class extends m{constructor(t,r){super(r);this.config=t;this.retry=t=>new w(this.config,t!=null?t:this.config.initialParams,1)}},D=class extends m{constructor(t){super({status:"canceled"});this.config=t;this.refetch=t=>new w(this.config,t!=null?t:this.config.initialParams,1)}};function nn(e){return new z(e)}function I(e,n){let t={...e.context,...n.context},r={...e},a={...n};delete r.context,delete a.context;let o={};for(let i in r){let s=r[i];o[i]=(...d)=>{let c=s.apply(e.context,d);return I(c,n)}}for(let i in a){let s=a[i];o[i]=(...d)=>{let c=s.apply(n.context,d);return I(e,c)}}return{context:t,...o}}var V=Symbol("CANCEL");function C(e,n,t={}){let{continueOnError:r=!1,logErrors:a=!0,onError:o}=t,i={...e};for(let s in e)Object.prototype.hasOwnProperty.call(e,s)&&s!=="context"&&typeof e[s]!="function"&&(i[s]=e[s]);for(let s in e){if(!Object.prototype.hasOwnProperty.call(e,s))continue;let d=e[s];typeof d=="function"&&s!=="context"&&(i[s]=function(...c){let y=s,l=i.context,M=()=>{let u;try{u=d.apply(this,c)}catch(h){if(n.error)try{n.error({transitionName:y,context:l,args:[...c],error:h})}catch(f){if(!r)throw f;a&&console.error(`Middleware error hook error for ${y}:`,f),o==null||o(f,"error",{transitionName:y,context:l,args:c,error:h})}throw h}let x=h=>{if(h&&typeof h=="object"&&h.context){for(let f in i)Object.prototype.hasOwnProperty.call(i,f)&&f!=="context"&&!(f in h)&&(h[f]=i[f]);for(let f in h){if(!Object.prototype.hasOwnProperty.call(h,f))continue;typeof h[f]=="function"&&f!=="context"&&i[f]&&(h[f]=i[f])}}return h};if(u&&typeof u.then=="function")return u.then(f=>{if(x(f),n.after)try{let g=n.after({transitionName:y,prevContext:l,nextContext:f.context,args:[...c]});if(g&&typeof g.then=="function")return g.then(()=>f)}catch(g){if(!r)throw g;a&&console.error(`Middleware after hook error for ${y}:`,g),o==null||o(g,"after",{transitionName:y,prevContext:l,nextContext:f.context,args:c})}return f});if(x(u),n.after)try{let h=n.after({transitionName:y,prevContext:l,nextContext:u.context,args:[...c]});if(h&&typeof h=="object"&&h&&"then"in h)return h.then(()=>u).catch(f=>{if(!r)throw f;return a&&console.error(`Middleware after hook error for ${y}:`,f),o==null||o(f,"after",{transitionName:y,prevContext:l,nextContext:u.context,args:c}),u})}catch(h){if(!r)throw h;a&&console.error(`Middleware after hook error for ${y}:`,h),o==null||o(h,"after",{transitionName:y,prevContext:l,nextContext:u.context,args:c})}return u};if(n.before)try{let u=n.before({transitionName:y,context:l,args:[...c]});if(u&&typeof u=="object"&&u&&"then"in u)return u.then(x=>x===V?i:M()).catch(x=>{if(!r)throw x;return a&&console.error(`Middleware before hook error for ${y}:`,x),o==null||o(x,"before",{transitionName:y,context:l,args:c}),M()});if(u===V)return i}catch(u){if(!r)throw u;a&&console.error(`Middleware before hook error for ${y}:`,u),o==null||o(u,"before",{transitionName:y,context:l,args:c})}return M()})}return i}function U(e,n={}){let{logger:t=console.log,includeArgs:r=!1,includeContext:a=!0}=n;return C(e,{before:({transitionName:o,args:i})=>{let s=r?`→ ${o} [${i.join(", ")}]`:`→ ${o}`;t(s)},after:({transitionName:o,nextContext:i})=>{let s=a?` ${JSON.stringify(i)}`:"";t(`✓ ${o}${s}`)},error:({transitionName:o,error:i})=>{console.error(`[Machine] ${o} failed:`,i)}})}function L(e,n,t={}){let{eventPrefix:r="state_transition",includePrevContext:a=!1,includeArgs:o=!1}=t;return C(e,{after:({transitionName:i,prevContext:s,nextContext:d,args:c})=>{let y=`${r}.${i}`,l={transition:i};a&&(l.from=s),l.to=d,o&&(l.args=c),n(y,l)}})}function q(e,n){return C(e,{before:t=>{if(n(t)===!1)throw new Error(`Validation failed for transition: ${t.transitionName}`)}})}function J(e,n){return C(e,{before:t=>{if(!n(t))throw new Error(`Unauthorized transition: ${t.transitionName}`)}})}function Y(e,n,t={}){let{includeArgs:r=!1}=t;return C(e,{error:a=>{let o={transition:a.transitionName,context:a.context,...r&&{args:a.args}};n(a.error,o)}})}function Q(e,n){let t=new Map;return C(e,{before:r=>{t.set(r.transitionName,Date.now())},after:r=>{let a=t.get(r.transitionName);if(a){let o=Date.now()-a;t.delete(r.transitionName);let i={transitionName:r.transitionName,duration:o,context:r.nextContext||r.prevContext};n(i)}}})}function X(e,n={}){var d,c;let{maxAttempts:t=(d=n.maxRetries)!=null?d:3,shouldRetry:r=()=>!0,backoffMs:a=(c=n.delay)!=null?c:100,backoffMultiplier:o=2,onRetry:i}=n,s={...e};for(let y in e){if(!Object.prototype.hasOwnProperty.call(e,y))continue;let l=e[y];typeof l=="function"&&y!=="context"&&(s[y]=async function(...M){let u,x=0;for(;x<t;)try{return await l.apply(this,M)}catch(h){if(u=h,x++,x<t&&r(u,x)){i==null||i(u,x);let g=(typeof a=="function"?a(x):a)*Math.pow(o,x-1);await new Promise(T=>setTimeout(T,g))}else throw u}throw u})}return s}function tn(e,n){return t=>C(t,e,n)}function R(e,n={}){let{maxSize:t,serializer:r,onEntry:a}=n,o=[],i=0,s=C(e,{before:({transitionName:d,args:c})=>{let y={id:`entry-${i++}`,transitionName:d,args:[...c],timestamp:Date.now()};if(r)try{y.serializedArgs=r.serialize(c)}catch(l){console.error("Failed to serialize history args:",l)}o.push(y),t&&o.length>t&&o.shift(),a==null||a(y)}});return Object.assign(s,{history:o,clearHistory:()=>{o.length=0,i=0}})}function S(e,n={}){let{maxSize:t,serializer:r,captureSnapshot:a,onlyOnChange:o=!1}=n,i=[],s=0,d=C(e,{after:({transitionName:y,prevContext:l,nextContext:M})=>{if(o&&JSON.stringify(l)===JSON.stringify(M))return;let u={id:`snapshot-${s++}`,transitionName:y,before:{...l},after:{...M},timestamp:Date.now()};if(r)try{u.serializedBefore=r.serialize(l),u.serializedAfter=r.serialize(M)}catch(x){console.error("Failed to serialize snapshot:",x)}if(a)try{u.diff=a(l,M)}catch(x){console.error("Failed to capture snapshot:",x)}i.push(u),t&&i.length>t&&i.shift()}});return Object.assign(d,{snapshots:i,clearSnapshots:()=>{i.length=0,s=0},restoreSnapshot:y=>{let l=Object.fromEntries(Object.entries(e).filter(([M])=>M!=="context"&&M!=="snapshots"&&M!=="clearSnapshots"&&M!=="restoreSnapshot"&&typeof e[M]=="function"));return Object.assign({context:y},l)}})}function j(e,n={}){let{maxSize:t,serializer:r,onRecord:a}=n,o=[],i=[],s=0,d=0,c=C(e,{before:({transitionName:M,args:u})=>{let x={id:`entry-${s++}`,transitionName:M,args:[...u],timestamp:Date.now()};if(r)try{x.serializedArgs=r.serialize(u)}catch(h){console.error("Failed to serialize history args:",h)}o.push(x),t&&o.length>t&&o.shift(),a==null||a("history",x)},after:({transitionName:M,prevContext:u,nextContext:x})=>{let h={id:`snapshot-${d++}`,transitionName:M,before:{...u},after:{...x},timestamp:Date.now()};if(r)try{h.serializedBefore=r.serialize(u),h.serializedAfter=r.serialize(x)}catch(f){console.error("Failed to serialize snapshot:",f)}i.push(h),t&&i.length>t&&i.shift(),a==null||a("snapshot",h)}});return Object.assign(c,{history:o,snapshots:i,clearHistory:()=>{o.length=0,s=0},clearSnapshots:()=>{i.length=0,d=0},clearTimeTravel:()=>{o.length=0,i.length=0,s=0,d=0},restoreSnapshot:M=>{let u=Object.fromEntries(Object.entries(e).filter(([x])=>x!=="context"&&x!=="history"&&x!=="snapshots"&&x!=="clearHistory"&&x!=="clearSnapshots"&&x!=="restoreSnapshot"&&x!=="clearTimeTravel"&&x!=="replayFrom"&&typeof e[x]=="function"));return Object.assign({context:M},u)},replayFrom:M=>{var g;if(M<0||M>=o.length)throw new Error(`Invalid replay start index: ${M}`);let u=(g=i[M])==null?void 0:g.before;if(!u)throw new Error(`No snapshot available for index ${M}`);let x=o.slice(M),f=Object.assign({context:u},Object.fromEntries(Object.entries(e).filter(([T])=>T!=="context"&&typeof e[T]=="function")));for(let T of x){let oe=f[T.transitionName];oe&&(f=oe.apply(f.context,T.args))}return f}})}function rn(e,...n){return n.reduce((t,r)=>r(t),e)}function v(e,...n){return n.reduce((t,r)=>r(t),e)}var Z=class e{constructor(n){this.machine=n}with(n){let t=n(this.machine);return new e(t)}build(){return this.machine}};function an(e){return new Z(e)}function k(e,n){let t=function(r){return n(r)?e(r):r};return t.middleware=e,t.when=n,t}function on(e){return k(e,()=>typeof process!="undefined"?!1:typeof window!="undefined"?!window.location.hostname.includes("production"):!1)}function sn(e,n,t){return k(t,r=>r.context[e]===n)}function cn(){let e=new Map;return{register(n,t,r,a){if(e.has(n))throw new Error(`Middleware '${n}' is already registered`);return e.set(n,{name:n,middleware:t,description:r,priority:a}),this},unregister(n){return e.delete(n)},has(n){return e.has(n)},get(n){return e.get(n)},list(){return Array.from(e.values()).sort((n,t)=>{var r,a;return((r=n.priority)!=null?r:0)-((a=t.priority)!=null?a:0)})},apply(n,t){let r=t.map(a=>{let o=e.get(a);if(!o)throw new Error(`Middleware '${a}' is not registered`);return o}).sort((a,o)=>{var i,s;return((i=a.priority)!=null?i:0)-((s=o.priority)!=null?s:0)});return v(n,...r.map(a=>a.middleware))},applyAll(n){let t=this.list();return v(n,...t.map(r=>r.middleware))}}}function dn(e={}){let{continueOnError:n=!1,logErrors:t=!0,onError:r}=e;return(a,...o)=>{let i=a,s=[],d=!0;for(let c=0;c<o.length;c++){let y=o[c];try{if("middleware"in y&&"when"in y){if(!y.when(i))continue;i=y.middleware(i)}else i=y(i)}catch(l){if(d=!1,!n)throw l;s.push({error:l,middlewareIndex:c,middlewareName:y.name}),t&&console.error(`Pipeline middleware error at index ${c}:`,l),r==null||r(l,c,y.name)}}return{machine:i,errors:s,success:d}}}function yn(...e){return n=>v(n,...e)}function ln(e,n){return t=>{for(let[r,a]of e)if(r(t))return a(t);return n?n(t):t}}function ee(e){return typeof e=="function"&&e.length===1}function un(e){return e!==null&&(typeof e=="object"||typeof e=="function")&&"middleware"in e&&"when"in e&&ee(e.middleware)&&typeof e.when=="function"}function Mn(e,n){return e!==null&&typeof e=="object"&&"transitionName"in e&&"prevContext"in e&&"nextContext"in e&&"args"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&(!n||P(e.prevContext,n)&&P(e.nextContext,n))}function xn(e,n){return e!==null&&typeof e=="object"&&"transitionName"in e&&"context"in e&&"args"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&(!n||P(e.context,n))}function hn(e,n){return e!==null&&typeof e=="object"&&"transitionName"in e&&"context"in e&&"args"in e&&"error"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&e.error instanceof Error&&(!n||P(e.context,n))}function fn(e,n){if(e===null||typeof e!="object")return!1;let t=e;return!("before"in t&&t.before!==void 0&&typeof t.before!="function"||"after"in t&&t.after!==void 0&&typeof t.after!="function"||"error"in t&&t.error!==void 0&&typeof t.error!="function")}function pn(e){return e===void 0||e!==null&&typeof e=="object"&&("continueOnError"in e?typeof e.continueOnError=="boolean":!0)&&("logErrors"in e?typeof e.logErrors=="boolean":!0)&&("onError"in e?typeof e.onError=="function"||e.onError===void 0:!0)}function P(e,n){return e!==null&&typeof e=="object"}function Cn(e){return e!==null&&typeof e=="object"&&"name"in e&&"middleware"in e&&typeof e.name=="string"&&ee(e.middleware)&&("description"in e?typeof e.description=="string"||e.description===void 0:!0)&&("priority"in e?typeof e.priority=="number"||e.priority===void 0:!0)}function gn(e){return e===void 0||e!==null&&typeof e=="object"&&("continueOnError"in e?typeof e.continueOnError=="boolean":!0)&&("logErrors"in e?typeof e.logErrors=="boolean":!0)&&("onError"in e?typeof e.onError=="function"||e.onError===void 0:!0)}var O=class{constructor(n){this.machine=n;this.middlewares=[]}withLogging(n){return this.middlewares.push(t=>U(t,n)),this}withAnalytics(n,t){return this.middlewares.push(r=>L(r,n,t)),this}withValidation(n,t){return this.middlewares.push(r=>q(r,n)),this}withPermissions(n){return this.middlewares.push(t=>J(t,n)),this}withErrorReporting(n,t){return this.middlewares.push(r=>Y(r,n,t)),this}withPerformanceMonitoring(n,t){return this.middlewares.push(r=>Q(r,n)),this}withRetry(n){return this.middlewares.push(t=>X(t,n)),this}withHistory(n){return this.middlewares.push(t=>R(t,n)),this}withSnapshot(n){return this.middlewares.push(t=>S(t,n)),this}withTimeTravel(n){return this.middlewares.push(t=>j(t,n)),this}withDebugging(){return this.middlewares.push(n=>Ae(n)),this}withCustom(n){return this.middlewares.push(n),this}withConditional(n,t){return this.middlewares.push(k(n,t)),this}build(){let n=this.machine;for(let t of this.middlewares)n=t(n);return n}getChain(){return[...this.middlewares]}clear(){return this.middlewares=[],this}};function Fe(e){return new O(e)}function mn(e={}){return{create:n=>{let t=Fe(n);return e.logging&&t.withLogging(e.logging),e.analytics&&t.withAnalytics(e.analytics.track,e.analytics.options),e.history&&t.withHistory(e.history),e.snapshot&&t.withSnapshot(e.snapshot),e.timeTravel&&t.withTimeTravel(e.timeTravel),e.retry&&t.withRetry(e.retry),t}}}function Ae(e){return j(S(R(e)))}function Re(e,n){return e instanceof n}function Se(e,...n){return{type:e,args:n}}function je(e,n){return E(e,t=>({...t,...n}))}async function ve(e,...n){let t=e;for(let r of n)t=await r(t);return t}function Pe(e,n){return n?console.log(n,e.context):console.log(e.context),e}function Oe(e,n){return function(...t){let r=n(this.context,...t);return p(r,e())}}function ke(e,n,...t){return e.apply(n,t)}function ne(e){return new Proxy(e,{get(n,t){let r=n[t];return typeof r=="function"?function(...a){let o=r.apply(n.context,a);return o&&typeof o=="object"&&"context"in o?ne(o):o}:r}})}var B=class e{constructor(n){return this.wrappedMachine=n,new Proxy(this,{get:(t,r)=>{if(r==="wrappedMachine")return Reflect.get(t,r);if(r==="context")return this.wrappedMachine.context;let a=this.wrappedMachine[r];return typeof a=="function"?(...o)=>{let i=a.apply(this.wrappedMachine.context,o);return i&&typeof i=="object"&&"context"in i?new e(i):i}:a}})}};function Be(){return function(n){return function(...t){let r=n(this.context,...t);return p(r,this)}}}function te(e){return{machine:e,addTransition:function(n,t){let r=function(...o){let i=t(this.context,...o);return p(i,this)},a=ae(e,{[n]:r});return te(a)}}}function re(e){return function(t){let r={},a=Object.fromEntries(Object.entries(t).map(([o,i])=>[o,function(...s){let d=i(this.context,...s);return p(d,r)}]));return Object.assign(r,a),p(e,r)}}function Ne(e,n){return n!==void 0?p(e,n):re(e)}function Ke(...e){let n=new Map;for(let[s,d,c]of e){if(n.has(s))throw new Error(`Duplicate matcher case name: "${s}"`);n.set(s,{predicate:c})}let t=new Proxy({},{get(s,d){return function(y){let l=n.get(d);if(!l){let M=Array.from(n.keys()).join(", ");throw new Error(`Unknown matcher case: "${d}". Available cases: ${M}`)}return l.predicate(y)}}}),r=new Proxy({},{get(s,d){return function(y){if(!n.has(d)){let l=Array.from(n.keys()).join(", ");throw new Error(`Unknown matcher case: "${d}". Available cases: ${l}`)}return{__brand:"CaseHandler",__name:d,__machine:void 0,__return:void 0,handler:y}}}}),a={__exhaustive:!0};function o(s){return{is(...d){if(d.length===0)throw new Error("Pattern match requires at least one handler and exhaustiveness marker");let c=d[d.length-1];if(!c||typeof c!="object"||!("__exhaustive"in c))throw new Error("Pattern match must end with match.exhaustive for compile-time exhaustiveness checking");let y=d.slice(0,-1);for(let u of y){let x=u.__name,h=n.get(x);if(!h)throw new Error(`Internal error: Unknown matcher case in handler: ${x}`);if(h.predicate(s))return u.handler(s)}let l=y.map(u=>u.__name).join(", "),M=Array.from(n.keys()).join(", ");throw new Error(`Non-exhaustive pattern match at runtime: no handler matched the machine.
|
|
2
|
+
Handled cases: [${l}]
|
|
3
|
+
All cases: [${M}]
|
|
4
|
+
This may occur if predicates don't cover all runtime possibilities.`)}}}function i(s){for(let[d,c,y]of e)if(y(s))return d;return null}return Object.assign(i,{is:t,when:o,case:r,exhaustive:a})}function _e(e,n){return[e,void 0,t=>t instanceof n]}function He(e,n,t){return[e,void 0,r=>N(r,n,t)]}function ze(e,n){return[e,void 0,n]}function We(){return{case(e,n,t){return[e,void 0,r=>N(r,n,t)]}}}function p(e,n){if(typeof n=="function"){let a;a=n(s=>{let d=p(s,a),c=Object.fromEntries(Object.entries(a).map(([y,l])=>[y,l.bind(s)]));return Object.assign(d,c)});let i=Object.fromEntries(Object.entries(a).map(([s,d])=>[s,d.bind(e)]));return Object.assign({context:e},i)}let t="context"in n?Object.fromEntries(Object.entries(n).filter(([a])=>a!=="context")):n;return Object.assign({context:e},t)}function $e(e,n){if(typeof n=="function"){let a;a=n(s=>{let d=$e(s,a),c=Object.fromEntries(Object.entries(a).map(([y,l])=>[y,l.bind(s)]));return Object.assign(d,c)});let i=Object.fromEntries(Object.entries(a).map(([s,d])=>[s,d.bind(e)]));return Object.assign({context:e},i)}let t="context"in n?Object.fromEntries(Object.entries(n).filter(([a])=>a!=="context")):n;return Object.assign({context:e},t)}function Tn(){return e=>{let n=Object.fromEntries(Object.entries(e).map(([t,r])=>[t,function(...a){let o=r(this.context,...a);return p(o,n)}]));return t=>p(t,n)}}function E(e,n){let{context:t,...r}=e,a=typeof n=="function"?n(t):n;return p(a,r)}function bn(e){return{context:e}}function wn(e,n){let{context:t,...r}=e,a={...r,...n};return p(t,a)}function ae(e,n){let{context:t,...r}=e,a={...r,...n};return p(t,a)}function En(e,n){return(...t)=>{let r=e(...t),a=n(),o={...r.context,...a.context},{context:i,...s}=r,{context:d,...c}=a,y={...s,...c};return p(o,y)}}function Fn(e){let{context:n,...t}=e;return r=>p(r,t)}function An(e,n,t){let r=e.context[n],a=t[r];if(!a)throw new Error(`No handler found for state: ${String(r)}`);return a(e.context)}function N(e,n,t){return e.context[n]===t}function Rn(e,n){let t=e,r=null;async function a(o){r&&(r.abort(),r=null);let i=t[o.type];if(typeof i!="function")throw new Error(`[Machine] Unknown event type '${String(o.type)}' on current state.`);let s=new AbortController;r=s;try{let c=await i.apply(t.context,[...o.args,{signal:s.signal}]);return s.signal.aborted||(t=c,n==null||n(t)),t}finally{r===s&&(r=null)}}return{get state(){return t.context},dispatch:a,stop:()=>{r&&(r.abort(),r=null)}}}var m=class{constructor(n){this.context=n}};function Sn(e,n){let{context:t,...r}=e;return p(n(t),r)}
|