@doeixd/machine 0.0.7 → 0.0.8

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.
@@ -1,5 +1,5 @@
1
- var N=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});function j(e,t){let n=e(t),i=t;for(;;){let{value:r,done:o}=n.next(i);if(o)return r;i=r}}function W(e){return function*(){return yield e}()}function G(e){return e}function B(e,t){return t.reduce((n,i)=>j(i,n),e)}function V(e){return e}function z(e,t,n=(i,r)=>{console.log(`Step ${i}:`,r.context)}){let i=e(t),r=t,o=0;for(n(o,r);;){let{value:a,done:s}=i.next(r);if(s)return console.log("Final:",a),a;r=a,o++,n(o,r)}}async function U(e,t){let n=e(t),i=t;for(;;){let{value:r,done:o}=await n.next(i);if(o)return r;i=r}}async function*q(e){return yield e}var J=Symbol("MachineMeta"),h=Symbol("__machine_runtime_meta__");function p(e,t){let n=e[h]||{},i={...n,...t};t.guards&&n.guards?i.guards=[...t.guards,...n.guards]:t.guards&&(i.guards=[...t.guards]),t.actions&&n.actions?i.actions=[...t.actions,...n.actions]:t.actions&&(i.actions=[...t.actions]),Object.defineProperty(e,h,{value:i,enumerable:!1,writable:!1,configurable:!0})}function Y(e,t){return p(t,{target:e.name||e.toString()}),t}function X(e,t){return p(t,{description:e}),t}function H(e,t){return p(t,{guards:[e]}),t}function Q(e,t){return p(t,{invoke:{src:e.src,onDone:e.onDone.name||e.onDone.toString(),onError:e.onError.name||e.onError.toString(),description:e.description}}),t}function Z(e,t){return p(t,{actions:[e]}),t}function ee(e,t){return t}import{Project as O,Node as l}from"ts-morph";function K(e){return l.isIdentifier(e)?e.getText():l.isTypeOfExpression(e)?e.getExpression().getText():"unknown"}function m(e){if(!l.isObjectLiteralExpression(e))return{};let t={};for(let n of e.getProperties())if(l.isPropertyAssignment(n)){let i=n.getName(),r=n.getInitializer();r&&(l.isStringLiteral(r)||l.isNumericLiteral(r)?t[i]=r.getLiteralValue():r.getText()==="true"||r.getText()==="false"?t[i]=r.getText()==="true":l.isIdentifier(r)?t[i]=r.getText():l.isObjectLiteralExpression(r)?t[i]=m(r):l.isArrayLiteralExpression(r)&&(t[i]=r.getElements().map(o=>l.isObjectLiteralExpression(o)?m(o):o.getText())))}return t}function te(e){if(!l.isObjectLiteralExpression(e))return{};let t={};for(let n of e.getProperties())if(l.isPropertyAssignment(n)){let i=n.getName(),r=n.getInitializer();if(!r)continue;i==="onDone"||i==="onError"?t[i]=K(r):l.isStringLiteral(r)?t[i]=r.getLiteralValue():l.isIdentifier(r)&&(t[i]=r.getText())}return t}function T(e,t=!1){if(!l.isCallExpression(e))return null;let n=e.getExpression(),i=l.isIdentifier(n)?n.getText():null;if(!i)return null;let r={},o=e.getArguments();switch(i){case"transitionTo":o[0]&&(r.target=K(o[0]));break;case"describe":if(o[0]&&l.isStringLiteral(o[0])&&(r.description=o[0].getLiteralValue()),o[1]&&l.isCallExpression(o[1])){let a=T(o[1],t);a&&Object.assign(r,a)}break;case"guarded":if(o[0]){let a=m(o[0]);Object.keys(a).length>0&&(r.guards=[a])}if(o[1]&&l.isCallExpression(o[1])){let a=T(o[1],t);a&&Object.assign(r,a)}break;case"invoke":if(o[0]){let a=te(o[0]);Object.keys(a).length>0&&(r.invoke=a)}break;case"action":if(o[0]){let a=m(o[0]);Object.keys(a).length>0&&(r.actions=[a])}if(o[1]&&l.isCallExpression(o[1])){let a=T(o[1],t);a&&Object.assign(r,a)}break;default:return null}return Object.keys(r).length>0?r:null}function ne(e,t=!1){if(!l.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(!l.isCallExpression(n))return t&&console.error(" ⚠️ Initializer is not a call expression"),null;let i=T(n,t);return i&&t&&console.error(" ✅ Extracted metadata:",JSON.stringify(i,null,2)),i}function b(e,t=!1){let n={on:{}},i=e.getDeclarations()[0];if(!i||!l.isClassDeclaration(i))return t&&console.error(`⚠️ Warning: Could not get class declaration for ${e.getName()}`),n;let r=e.getName();t&&console.error(` Analyzing state: ${r}`);for(let o of i.getInstanceMembers()){let a=o.getName();t&&console.error(` Checking member: ${a}`);let s=ne(o,t);if(!s)continue;t&&console.error(` Found transition: ${a}`);let{invoke:c,actions:u,guards:x,...y}=s;if(c&&(n.invoke||(n.invoke=[]),n.invoke.push({src:c.src,onDone:{target:c.onDone},onError:{target:c.onError},description:c.description}),t&&console.error(` → Invoke: ${c.src}`)),y.target){let d={target:y.target};y.description&&(d.description=y.description),x&&(d.cond=x.map(E=>E.name).join(" && "),t&&console.error(` → Guard: ${d.cond}`)),u&&u.length>0&&(d.actions=u.map(E=>E.name),t&&console.error(` → Actions: ${d.actions.join(", ")}`)),n.on[a]=d,t&&console.error(` → Target: ${y.target}`)}}return n}function re(e,t,n,i,r=!1){let o=b(t,r);if(i){r&&console.error(` 👪 Analyzing children for state: ${e}`),o.initial=i.initialState,o.states={};for(let a of i.classes){let s=n.getClass(a);if(s){let c=s.getSymbolOrThrow();o.states[a]=b(c,r)}else console.warn(`⚠️ Warning: Child class '${a}' not found.`)}}return o}function S(e,t,n=!1){n&&(console.error(`
2
- 🔍 Analyzing machine: ${e.id}`),console.error(` Source: ${e.input}`));let i=t.getSourceFile(e.input);if(!i)throw new Error(`Source file not found: ${e.input}`);if(e.parallel){n&&console.error(" ⏹️ Parallel machine detected. Analyzing regions.");let o={id:e.id,type:"parallel",states:{}};e.description&&(o.description=e.description);for(let a of e.parallel.regions){n&&console.error(` 📍 Analyzing region: ${a.name}`);let s={};for(let c of a.classes){let u=i.getClass(c);if(u){let x=u.getSymbolOrThrow();s[c]=b(x,n)}else console.warn(`⚠️ Warning: Class '${c}' not found for region '${a.name}'.`)}o.states[a.name]={initial:a.initialState,states:s}}return n&&console.error(` ✅ Extracted ${e.parallel.regions.length} parallel regions`),o}if(!e.initialState||!e.classes)throw new Error(`Machine config for '${e.id}' must have either 'parallel' or 'initialState'/'classes'.`);let r={id:e.id,initial:e.initialState,states:{}};e.description&&(r.description=e.description);for(let o of e.classes){let a=i.getClass(o);if(!a){console.warn(`⚠️ Warning: Class '${o}' not found in '${e.input}'. Skipping.`);continue}let s=a.getSymbolOrThrow(),c=o===e.initialState&&e.children,u=re(o,s,i,c?e.children:void 0,n);r.states[o]=u}return n&&console.error(` ✅ Extracted ${e.classes.length} states`),r}function ie(e){var r;let t=(r=e.verbose)!=null?r:!1;t&&(console.error(`
3
- 📊 Starting statechart extraction`),console.error(` Machines to extract: ${e.machines.length}`));let n=new O;n.addSourceFilesAtPaths("src/**/*.ts"),n.addSourceFilesAtPaths("examples/**/*.ts");let i=[];for(let o of e.machines)try{let a=S(o,n,t);i.push(a)}catch(a){console.error(`❌ Error extracting machine '${o.id}':`,a),t||console.error(" Run with --verbose for more details")}return t&&console.error(`
4
- ✅ Extraction complete: ${i.length}/${e.machines.length} machines extracted`),i}function D(){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;t.addSourceFilesAtPaths("src/**/*.ts"),t.addSourceFilesAtPaths("examples/**/*.ts");try{let n=S(e,t,!0);console.log(JSON.stringify(n,null,2))}catch(n){console.error("❌ Error:",n),process.exit(1)}}N.main===module&&D();function $(e){return typeof e!="function"?null:e[h]||null}function A(e){let t={on:{}},n=[];for(let i in e){let r=e[i];if(typeof r!="function")continue;let o=$(r);if(o&&(o.invoke&&n.push({src:o.invoke.src,onDone:{target:o.invoke.onDone},onError:{target:o.invoke.onError},description:o.invoke.description}),o.target)){let a={target:o.target};o.description&&(a.description=o.description),o.guards&&o.guards.length>0&&(a.cond=o.guards.map(s=>s.name).join(" && ")),o.actions&&o.actions.length>0&&(a.actions=o.actions.map(s=>s.name)),t.on[i]=a}}return n.length>0&&(t.invoke=n),t}function oe(e,t){let n={id:t.id,initial:t.initial,states:{}};t.description&&(n.description=t.description);for(let[i,r]of Object.entries(e))n.states[i]=A(r);return n}function ae(e,t){let n=t.stateName||e.constructor.name||"State";return{id:t.id,initial:n,states:{[n]:A(e)}}}function se(e,t){let n=e,i=s=>{n=s,t==null||t(s)},{context:r,...o}=e,a=new Proxy({},{get(s,c){let u=n[c];if(typeof u=="function")return(...x)=>{let y=u.apply(n.context,x),d=Object.assign({context:y.context},o);return i(d),d}}});return{get state(){return n},get context(){return n.context},actions:a,setState:i}}function be(e,t,n){let i=()=>{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)},r=new Proxy({},{get(o,a){let s=i(),c=s[a];if(typeof c!="function")throw new Error(`[Ensemble] Transition "${a}" is not valid in the current state.`);return(...u)=>c.apply(s.context,u)}});return{get context(){return e.getContext()},get state(){return i()},actions:r}}function Se(e,t){let n=se(t),i=e(n),r=i.next();for(;!r.done;)r=i.next();return r.value}function Ae(e,t){let n=e(t),i=n.next();for(;!i.done;)i=n.next();return i.value}var L=class{constructor(t){this.store=t}get context(){return this.store.getContext()}setContext(t){this.store.setContext(t)}};function we(e,t){let n=new e(t);return new Proxy({},{get(i,r){let o=t.getContext();if(r in o)return o[r];let a=n[r];if(typeof a=="function")return(...s)=>a.apply(n,s)},set(i,r,o){let a=t.getContext();if(r in a){let s={...a,[r]:o};return t.setContext(s),!0}return!1},has(i,r){let o=t.getContext();return r in o||typeof n[r]=="function"},ownKeys(i){let r=t.getContext(),o=Object.keys(r),a=Object.getOwnPropertyNames(Object.getPrototypeOf(n)).filter(s=>s!=="constructor"&&typeof n[s]=="function");return Array.from(new Set([...o,...a]))},getOwnPropertyDescriptor(i,r){let o=t.getContext();if(r in o||typeof n[r]=="function")return{value:void 0,writable:!0,enumerable:!0,configurable:!0}}})}function ke(e,t,n){let i=()=>{let r=n(e),o=t[r];if(!o)throw new Error(`[MutableMachine] Invalid state: No factory for state "${String(r)}".`);return o(e)};return new Proxy(e,{get(r,o,a){if(o in r)return r[o];let s=i(),c=s[o];if(typeof c=="function")return(...u)=>{let x=c.apply(s.context,u);if(typeof x!="object"||x===null){console.warn(`[MutableMachine] Transition "${String(o)}" did not return a valid context object. State may be inconsistent.`);return}Object.keys(r).forEach(y=>delete r[y]),Object.assign(r,x)}},set(r,o,a,s){return r[o]=a,!0},has(r,o){let a=i();return o in r||typeof a[o]=="function"}})}function je(e){return function(...t){let n=this.context.child;if(typeof n[e]=="function"){let i=n[e](...t);return C(this,{...this.context,child:i})}return this}}function Oe(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.`),C(this,{...this.context,[e]:!this.context[e]})}}var w=class extends M{constructor(n){super({status:"idle"});this.config=n;this.fetch=n=>new f(this.config,n!=null?n:this.config.initialParams,1)}},f=class extends M{constructor(n,i,r){super({status:"loading",abortController:new AbortController,attempts:r});this.config=n;this.params=i;this.succeed=n=>{var i,r;return(r=(i=this.config).onSuccess)==null||r.call(i,n),new F(this.config,{status:"success",data:n})};this.fail=n=>{var r,o,a;let i=(r=this.config.maxRetries)!=null?r:3;return this.context.attempts<i?new k(this.config,this.params,n,this.context.attempts):((a=(o=this.config).onError)==null||a.call(o,n),new P(this.config,{status:"error",error:n}))};this.cancel=()=>(this.context.abortController.abort(),new R(this.config));this.execute()}async execute(){}},k=class extends M{constructor(n,i,r,o){super({status:"retrying",error:r,attempts:o});this.config=n;this.params=i;this.retry=n=>new f(this.config,n!=null?n:this.params,this.context.attempts+1)}},F=class extends M{constructor(n,i){super(i);this.config=n;this.refetch=n=>new f(this.config,n!=null?n:this.config.initialParams,1)}},P=class extends M{constructor(n,i){super(i);this.config=n;this.retry=n=>new f(this.config,n!=null?n:this.config.initialParams,1)}},R=class extends M{constructor(n){super({status:"canceled"});this.config=n;this.refetch=n=>new f(this.config,n!=null?n:this.config.initialParams,1)}};function Ke(e){return new w(e)}function I(e,t){let n={...e.context,...t.context},i={...e},r={...t};delete i.context,delete r.context;let o={};for(let a in i){let s=i[a];o[a]=(...c)=>{let u=s.apply(e.context,c);return I(u,t)}}for(let a in r){let s=r[a];o[a]=(...c)=>{let u=s.apply(t.context,c);return I(e,u)}}return{context:n,...o}}function ce(e,t){return e instanceof t}function le(e,...t){return{type:e,args:t}}function ue(e,t){return C(e,n=>({...n,...t}))}async function xe(e,...t){let n=e;for(let i of t)n=await i(n);return n}function ye(e,t){return t?console.log(t,e.context):console.log(e.context),e}function de(e,t,...n){return e.apply(t,n)}function _(e){return new Proxy(e,{get(t,n){let i=t[n];return typeof i=="function"?function(...r){let o=i.apply(t.context,r);return o&&typeof o=="object"&&"context"in o?_(o):o}:i}})}var v=class e{constructor(t){return this.wrappedMachine=t,new Proxy(this,{get:(n,i)=>{if(i==="wrappedMachine"||i==="context")return Reflect.get(n,i);let r=this.wrappedMachine[i];return typeof r=="function"?(...o)=>{let a=r.apply(this.wrappedMachine.context,o);return a&&typeof a=="object"&&"context"in a?new e(a):a}:r}})}get context(){return this.wrappedMachine.context}};function g(e,t){return Object.assign({context:e},t)}function Ue(e,t){return Object.assign({context:e},t)}function qe(){return e=>{let t=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,function(...r){let o=i(this,...r);return g(o,t)}]));return n=>g(n,t)}}function C(e,t){let{context:n,...i}=e,r=typeof t=="function"?t(n):t;return g(r,i)}function Je(e,t){let{context:n,...i}=e,r={...i,...t};return g(n,r)}function Ye(e,t){let{context:n,...i}=e,r={...i,...t};return g(n,r)}function Xe(e){let{context:t,...n}=e;return i=>g(i,n)}function He(e,t,n){let i=e.context[t],r=n[i];if(!r)throw new Error(`No handler found for state: ${String(i)}`);return r(e.context)}function Qe(e,t,n){return e.context[t]===n}function Ze(e,t){let n=e;async function i(r){let o=n[r.type];if(typeof o!="function")throw new Error(`[Machine] Unknown event type '${String(r.type)}' on current state.`);return n=await o.apply(n.context,r.args),t==null||t(n),n}return{get state(){return n.context},dispatch:i}}var M=class{constructor(t){this.context=t}};function et(e,t){let{context:n,...i}=e;return g(t(n),i)}export{v as BoundMachine,J as META_KEY,M as MachineBase,L as MultiMachineBase,h as RUNTIME_META,Z as action,_ as bindTransitions,de as call,Ue as createAsyncMachine,be as createEnsemble,le as createEvent,Ke as createFetchMachine,V as createFlow,g as createMachine,Xe as createMachineBuilder,qe as createMachineFactory,we as createMultiMachine,ke as createMutableMachine,I as createParallelMachine,se as createRunner,je as delegateToChild,X as describe,Ye as extendTransitions,ae as extractFromInstance,$ as extractFunctionMetadata,S as extractMachine,ie as extractMachines,A as extractStateNode,D as generateChart,oe as generateStatechart,H as guarded,Qe as hasState,Q as invoke,ce as isState,ye as logState,He as matchMachine,ue as mergeContext,ee as metadata,et as next,Je as overrideTransitions,xe as pipeTransitions,j as run,U as runAsync,Ze as runMachine,B as runSequence,z as runWithDebug,Ae as runWithEnsemble,Se as runWithRunner,C as setContext,W as step,q as stepAsync,Oe as toggle,Y as transitionTo,G as yieldMachine};
1
+ var X=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});function Q(e,t){let n=e(t),r=t;for(;;){let{value:o,done:i}=n.next(r);if(i)return o;r=o}}function Me(e){return function*(){return yield e}()}function fe(e){return e}function xe(e,t){return t.reduce((n,r)=>Q(r,n),e)}function pe(e){return e}function he(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 ge(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*Ce(e){return yield e}var me=Symbol("MachineMeta"),A=Symbol("__machine_runtime_meta__");function P(e,t){let n=e[A]||{},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,A,{value:r,enumerable:!1,writable:!1,configurable:!0})}function we(e,t){return P(t,{target:e.name||e.toString()}),t}function be(e,t){return P(t,{description:e}),t}function Te(e,t){return P(t,{guards:[e]}),t}function Ee(e,t){return P(t,{invoke:{src:e.src,onDone:e.onDone.name||e.onDone.toString(),onError:e.onError.name||e.onError.toString(),description:e.description}}),t}function Se(e,t){return P(t,{actions:[e]}),t}function D(e,t,n={}){let{onFail:r="throw",errorMessage:o,description:i}=n,a={...n,onFail:r,errorMessage:o,description:i},s=async function(...c){let d=typeof this=="object"&&"context"in this,u=d?this.context:this;if(await Promise.resolve(e(u,...c))){let y=d?this.context:this;return t.apply(y,c)}else if(r==="throw"){let y=o||"Guard condition failed";throw new Error(y)}else if(r==="ignore"){if(d)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(d)return r.apply(this,c);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}),P(s,{description:i||"Runtime guarded transition",guards:[{name:"runtime_guard",description:i||"Runtime condition check"}]}),s}function Fe(e){return{do(t){let n=D(e,t);return n.else=function(r){return D(e,t,{onFail:r})},n}}}function Pe(e,t){return t}import{Project as Z,Node as C}from"ts-morph";function ee(e){return C.isIdentifier(e)?e.getText():C.isTypeOfExpression(e)?e.getExpression().getText():"unknown"}function z(e){if(!C.isObjectLiteralExpression(e))return{};let t={};for(let n of e.getProperties())if(C.isPropertyAssignment(n)){let r=n.getName(),o=n.getInitializer();o&&(C.isStringLiteral(o)||C.isNumericLiteral(o)?t[r]=o.getLiteralValue():o.getText()==="true"||o.getText()==="false"?t[r]=o.getText()==="true":C.isIdentifier(o)?t[r]=o.getText():C.isObjectLiteralExpression(o)?t[r]=z(o):C.isArrayLiteralExpression(o)&&(t[r]=o.getElements().map(i=>C.isObjectLiteralExpression(i)?z(i):i.getText())))}return t}function Re(e){if(!C.isObjectLiteralExpression(e))return{};let t={};for(let n of e.getProperties())if(C.isPropertyAssignment(n)){let r=n.getName(),o=n.getInitializer();if(!o)continue;r==="onDone"||r==="onError"?t[r]=ee(o):C.isStringLiteral(o)?t[r]=o.getLiteralValue():C.isIdentifier(o)&&(t[r]=o.getText())}return t}function N(e,t=!1){if(!C.isCallExpression(e))return null;let n=e.getExpression(),r=C.isIdentifier(n)?n.getText():null;if(!r)return null;let o={},i=e.getArguments();switch(r){case"transitionTo":i[0]&&(o.target=ee(i[0]));break;case"describe":if(i[0]&&C.isStringLiteral(i[0])&&(o.description=i[0].getLiteralValue()),i[1]&&C.isCallExpression(i[1])){let a=N(i[1],t);a&&Object.assign(o,a)}break;case"guarded":if(i[0]){let a=z(i[0]);Object.keys(a).length>0&&(o.guards=[a])}if(i[1]&&C.isCallExpression(i[1])){let a=N(i[1],t);a&&Object.assign(o,a)}break;case"invoke":if(i[0]){let a=Re(i[0]);Object.keys(a).length>0&&(o.invoke=a)}break;case"action":if(i[0]){let a=z(i[0]);Object.keys(a).length>0&&(o.actions=[a])}if(i[1]&&C.isCallExpression(i[1])){let a=N(i[1],t);a&&Object.assign(o,a)}break;default:return null}return Object.keys(o).length>0?o:null}function ve(e,t=!1){if(!C.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(!C.isCallExpression(n))return t&&console.error(" ⚠️ Initializer is not a call expression"),null;let r=N(n,t);return r&&t&&console.error(" ✅ Extracted metadata:",JSON.stringify(r,null,2)),r}function K(e,t=!1){let n={on:{}},r=e.getDeclarations()[0];if(!r||!C.isClassDeclaration(r))return t&&console.error(`⚠️ Warning: Could not get class declaration for ${e.getName()}`),n;let o=e.getName();t&&console.error(` Analyzing state: ${o}`);for(let i of r.getInstanceMembers()){let a=i.getName();t&&console.error(` Checking member: ${a}`);let s=ve(i,t);if(!s)continue;t&&console.error(` Found transition: ${a}`);let{invoke:c,actions:d,guards:u,...x}=s;if(c&&(n.invoke||(n.invoke=[]),n.invoke.push({src:c.src,onDone:{target:c.onDone},onError:{target:c.onError},description:c.description}),t&&console.error(` → Invoke: ${c.src}`)),x.target){let y={target:x.target};x.description&&(y.description=x.description),u&&(y.cond=u.map(f=>f.name).join(" && "),t&&console.error(` → Guard: ${y.cond}`)),d&&d.length>0&&(y.actions=d.map(f=>f.name),t&&console.error(` → Actions: ${y.actions.join(", ")}`)),n.on[a]=y,t&&console.error(` → Target: ${x.target}`)}}return n}function Ae(e,t,n,r,o=!1){let i=K(t,o);if(r){o&&console.error(` 👪 Analyzing children for state: ${e}`),i.initial=r.initialState,i.states={};for(let a of r.classes){let s=n.getClass(a);if(s){let c=s.getSymbolOrThrow();i.states[a]=K(c,o)}else console.warn(`⚠️ Warning: Child class '${a}' not found.`)}}return i}function _(e,t,n=!1){n&&(console.error(`
2
+ 🔍 Analyzing machine: ${e.id}`),console.error(` Source: ${e.input}`));let r=t.getSourceFile(e.input);if(!r)throw new Error(`Source file not found: ${e.input}`);if(e.parallel){n&&console.error(" ⏹️ Parallel machine detected. Analyzing regions.");let i={id:e.id,type:"parallel",states:{}};e.description&&(i.description=e.description);for(let a of e.parallel.regions){n&&console.error(` 📍 Analyzing region: ${a.name}`);let s={};for(let c of a.classes){let d=r.getClass(c);if(d){let u=d.getSymbolOrThrow();s[c]=K(u,n)}else console.warn(`⚠️ Warning: Class '${c}' not found for region '${a.name}'.`)}i.states[a.name]={initial:a.initialState,states:s}}return n&&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 o={id:e.id,initial:e.initialState,states:{}};e.description&&(o.description=e.description);for(let i of e.classes){let a=r.getClass(i);if(!a){console.warn(`⚠️ Warning: Class '${i}' not found in '${e.input}'. Skipping.`);continue}let s=a.getSymbolOrThrow(),c=i===e.initialState&&e.children,d=Ae(i,s,r,c?e.children:void 0,n);o.states[i]=d}return n&&console.error(` ✅ Extracted ${e.classes.length} states`),o}function Oe(e){var o;let t=(o=e.verbose)!=null?o:!1;t&&(console.error(`
3
+ 📊 Starting statechart extraction`),console.error(` Machines to extract: ${e.machines.length}`));let n=new Z;n.addSourceFilesAtPaths("src/**/*.ts"),n.addSourceFilesAtPaths("examples/**/*.ts");let r=[];for(let i of e.machines)try{let a=_(i,n,t);r.push(a)}catch(a){console.error(`❌ Error extracting machine '${i.id}':`,a),t||console.error(" Run with --verbose for more details")}return t&&console.error(`
4
+ ✅ Extraction complete: ${r.length}/${e.machines.length} machines extracted`),r}function te(){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 Z;t.addSourceFilesAtPaths("src/**/*.ts"),t.addSourceFilesAtPaths("examples/**/*.ts");try{let n=_(e,t,!0);console.log(JSON.stringify(n,null,2))}catch(n){console.error("❌ Error:",n),process.exit(1)}}X.main===module&&te();function ne(e){return typeof e!="function"?null:e[A]||null}function W(e){let t={on:{}},n=[];for(let r in e){let o=e[r];if(typeof o!="function")continue;let i=ne(o);if(i){if(i.invoke&&n.push({src:i.invoke.src,onDone:{target:i.invoke.onDone},onError:{target:i.invoke.onError},description:i.invoke.description}),i.target){let a={target:i.target};i.description&&(a.description=i.description),i.guards&&i.guards.length>0&&(a.cond=i.guards.map(s=>s.name).join(" && ")),i.actions&&i.actions.length>0&&(a.actions=i.actions.map(s=>s.name)),t.on[r]=a}else if(i.guards&&i.guards.length>0){let a={target:"GuardedTransition",cond:i.guards.map(s=>s.name).join(" && ")};i.description&&(a.description=i.description),t.on[r]=a}}}return n.length>0&&(t.invoke=n),t}function je(e,t){let n={id:t.id,initial:t.initial,states:{}};t.description&&(n.description=t.description);for(let[r,o]of Object.entries(e))n.states[r]=W(o);return n}function ke(e,t){let n=t.stateName||e.constructor.name||"State";return{id:t.id,initial:n,states:{[n]:W(e)}}}function Ne(e,t){let n=e,r=s=>{n=s,t==null||t(s)},{context:o,...i}=e,a=new Proxy({},{get(s,c){let d=n[c];if(typeof d=="function")return(...u)=>{let x=d.apply(n.context,u),y=Object.assign({context:x.context},i);return r(y),y}}});return{get state(){return n},get context(){return n.context},actions:a,setState:r}}function xt(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(),c=s[a];if(typeof c!="function")throw new Error(`[Ensemble] Transition "${a}" is not valid in the current state.`);return(...d)=>c.apply(s.context,d)}});return{get context(){return e.getContext()},get state(){return r()},actions:o}}function pt(e,t){let n=Ne(t),r=e(n),o=r.next();for(;!o.done;)o=r.next();return o.value}function ht(e,t){let n=e(t),r=n.next();for(;!r.done;)r=n.next();return r.value}var re=class{constructor(t){this.store=t}get context(){return this.store.getContext()}setContext(t){this.store.setContext(t)}};function gt(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 Ct(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(),c=s[i];if(typeof c=="function")return(...d)=>{let u=c.apply(s.context,d);if(typeof u!="object"||u===null){console.warn(`[MutableMachine] Transition "${String(i)}" did not return a valid context object. State may be inconsistent.`);return}Object.keys(o).forEach(x=>delete o[x]),Object.assign(o,u)}},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 St(e){return function(...t){let n=this.context.child;if(typeof n[e]=="function"){let r=n[e](...t);return O(this,{...this.context,child:r})}return this}}function Ft(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.`),O(this,{...this.context,[e]:!this.context[e]})}}var H=class extends T{constructor(n){super({status:"idle"});this.config=n;this.fetch=n=>new S(this.config,n!=null?n:this.config.initialParams,1)}},S=class extends T{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 L(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 I(this.config,this.params,n,this.context.attempts):((a=(i=this.config).onError)==null||a.call(i,n),new G(this.config,{status:"error",error:n}))};this.cancel=()=>(this.context.abortController.abort(),new V(this.config));this.execute()}async execute(){}},I=class extends T{constructor(n,r,o,i){super({status:"retrying",error:o,attempts:i});this.config=n;this.params=r;this.retry=n=>new S(this.config,n!=null?n:this.params,this.context.attempts+1)}},L=class extends T{constructor(n,r){super(r);this.config=n;this.refetch=n=>new S(this.config,n!=null?n:this.config.initialParams,1)}},G=class extends T{constructor(n,r){super(r);this.config=n;this.retry=n=>new S(this.config,n!=null?n:this.config.initialParams,1)}},V=class extends T{constructor(n){super({status:"canceled"});this.config=n;this.refetch=n=>new S(this.config,n!=null?n:this.config.initialParams,1)}};function Pt(e){return new H(e)}function oe(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]=(...c)=>{let d=s.apply(e.context,c);return oe(d,t)}}for(let a in o){let s=o[a];i[a]=(...c)=>{let d=s.apply(t.context,c);return oe(e,d)}}return{context:n,...i}}var ie=Symbol("CANCEL");function w(e,t,n={}){let{mode:r="auto",exclude:o=["context"]}=n,i={};for(let a in e){if(!Object.prototype.hasOwnProperty.call(e,a))continue;let s=e[a];if(a==="context"){i.context=s;continue}if(o.includes(a)){i[a]=s;continue}if(typeof s!="function"||a.startsWith("_")){i[a]=s;continue}i[a]=ze(a,s,e,t,r)}return i}function ze(e,t,n,r,o){return function(...a){let s=n.context,c={transitionName:e,context:s,args:a},d=()=>{try{if(r.before){let f=r.before(c);if(f===ie)return n;if(f instanceof Promise)throw new Error(`Middleware mode is 'sync' but before hook returned Promise for transition: ${e}`)}let y=t.call(this,...a);if(y instanceof Promise)return u(y,s);if(r.after){let f={transitionName:e,prevContext:s,nextContext:y.context,args:a};if(r.after(f)instanceof Promise)throw new Error(`Middleware mode is 'sync' but after hook returned Promise for transition: ${e}`)}return y}catch(y){if(r.error){let f={transitionName:e,context:s,args:a,error:y},l=r.error(f);if(l instanceof Promise)throw l.catch(()=>{}),y;if(l&&typeof l=="object"&&"context"in l)return l}throw y}},u=async(y,f)=>{try{let l=await y;if(r.after){let h={transitionName:e,prevContext:f,nextContext:l.context,args:a};await r.after(h)}return l}catch(l){if(r.error){let h={transitionName:e,context:f,args:a,error:l},M=await r.error(h);if(M&&typeof M=="object"&&"context"in M)return M}throw l}},x=async()=>{try{if(r.before&&await r.before(c)===ie)return n;let y=await t.call(this,...a);if(r.after){let f={transitionName:e,prevContext:s,nextContext:y.context,args:a};await r.after(f)}return y}catch(y){if(r.error){let f={transitionName:e,context:s,args:a,error:y},l=await r.error(f);if(l&&typeof l=="object"&&"context"in l)return l}throw y}};return o==="async"?x():d()}}function Be(e,t={}){let{logger:n=console.log,includeContext:r=!0,includeArgs:o=!0}=t;return w(e,{before:({transitionName:i,args:a})=>{let s=o&&a.length>0?` ${JSON.stringify(a)}`:"";n(`→ ${i}${s}`)},after:({transitionName:i,nextContext:a})=>{let s=r?` ${JSON.stringify(a)}`:"";n(`✓ ${i}${s}`)}})}function $e(e,t,n={}){let{eventPrefix:r="state_transition",includePrevContext:o=!1,includeArgs:i=!0}=n;return w(e,{after:async({transitionName:a,prevContext:s,nextContext:c,args:d})=>{let u={transition:a,to:c};o&&(u.from=s),i&&d.length>0&&(u.args=d),await t(`${r}.${a}`,u)}},{mode:"async"})}function De(e,t,n){return w(e,{before:r=>{let o=t(r);if(o instanceof Promise)return o.then(i=>{if(i===!1)throw new Error(`Validation failed for transition: ${r.transitionName}`)});if(o===!1)throw new Error(`Validation failed for transition: ${r.transitionName}`)}},{mode:"auto",...n})}function Ke(e,t,n){return w(e,{before:r=>{let o=t(r);if(o instanceof Promise)return o.then(i=>{if(!i)throw new Error(`Unauthorized transition: ${r.transitionName}`)});if(!o)throw new Error(`Unauthorized transition: ${r.transitionName}`)}},{mode:"auto",...n})}function _e(e,t,n={}){let{includeContext:r=!0,includeArgs:o=!0,mode:i}=n;return w(e,{error:async({transitionName:a,context:s,args:c,error:d})=>{let u={transition:a};r&&(u.context=s),o&&c.length>0&&(u.args=c),await Promise.resolve(t(d,u))}},{mode:i})}function We(e,t){let n=new Map;return w(e,{before:({transitionName:r})=>{n.set(r,performance.now())},after:({transitionName:r,nextContext:o})=>{let i=n.get(r);if(i){let a=performance.now()-i;n.delete(r);let s=t({transitionName:r,duration:a,context:o});if(s instanceof Promise)return s}}},{mode:"auto"})}function He(e,t={}){let{maxRetries:n=3,delay:r=1e3,backoffMultiplier:o=1,shouldRetry:i=()=>!0,onRetry:a}=t,s={};for(let c in e){if(!Object.prototype.hasOwnProperty.call(e,c))continue;let d=e[c];if(c==="context"||typeof d!="function"){s[c]=d;continue}s[c]=async function(...x){let y;for(let f=0;f<=n;f++)try{return await d.call(this,...x)}catch(l){if(y=l,f===n||!i(y))break;a==null||a(f+1,y);let h=r*Math.pow(o,f);await new Promise(M=>setTimeout(M,h))}throw y}}return s}function ae(e,t={}){let{maxSize:n,serializer:r,filter:o,onEntry:i,_isRewrap:a=!1}=t,s=[],c=0,d=w(e,{before:({transitionName:u,args:x})=>{if(o&&!o(u,x))return;let y={id:`entry-${c++}`,transitionName:u,args:[...x],timestamp:Date.now()};if(r)try{y.serializedArgs=r.serialize(x)}catch(f){console.error("Failed to serialize history args:",f)}s.push(y),n&&s.length>n&&s.shift(),i==null||i(y)}},{exclude:["context","history","clearHistory"]});if(!a)for(let u in d){if(!Object.prototype.hasOwnProperty.call(d,u))continue;let x=d[u];if(typeof x=="function"&&!u.startsWith("_")&&u!=="context"&&!["history","clearHistory"].includes(u)){let y=x;d[u]=function(...f){let l=y.apply(this,f);if(l&&typeof l=="object"&&"context"in l&&!("history"in l)){let h=w(l,{before:({transitionName:M,args:g})=>{if(o&&!o(M,g))return;let p={id:`entry-${c++}`,transitionName:M,args:[...g],timestamp:Date.now()};if(r)try{p.serializedArgs=r.serialize(g)}catch(b){console.error("Failed to serialize history args:",b)}s.push(p),n&&s.length>n&&s.shift(),i==null||i(p)}},{exclude:["context","history","clearHistory"]});return Object.assign(h,{history:s,clearHistory:()=>{s.length=0,c=0}})}return l}}}return Object.assign(d,{history:s,clearHistory:()=>{s.length=0,c=0}})}function se(e,t={}){let{maxSize:n,serializer:r,captureSnapshot:o,onlyIfChanged:i=!1,filter:a,onSnapshot:s,_extraExclusions:c=[],_isRewrap:d=!1}=t,u=[],x=0,y=w(e,{after:({transitionName:l,prevContext:h,nextContext:M})=>{if(a&&!a(l)||i&&!(JSON.stringify(h)!==JSON.stringify(M)))return;let g={id:`snapshot-${x++}`,transitionName:l,before:{...h},after:{...M},timestamp:Date.now()};if(r)try{g.serializedBefore=r.serialize(h),g.serializedAfter=r.serialize(M)}catch(p){console.error("Failed to serialize snapshot:",p)}if(o)try{g.diff=o(h,M)}catch(p){console.error("Failed to capture snapshot:",p)}u.push(g),n&&u.length>n&&u.shift(),s==null||s(g)}},{exclude:["context","snapshots","clearSnapshots","restoreSnapshot",...c]}),f=l=>{let{context:h,...M}=e;return{context:l,...M}};if(!d)for(let l in y){if(!Object.prototype.hasOwnProperty.call(y,l))continue;let h=y[l];if(typeof h=="function"&&!l.startsWith("_")&&l!=="context"&&!["snapshots","clearSnapshots","restoreSnapshot","history","clearHistory"].includes(l)){let M=h;y[l]=function(...g){let p=M.apply(this,g);if(p&&typeof p=="object"&&"context"in p&&!("snapshots"in p)){for(let m in p){if(!Object.prototype.hasOwnProperty.call(p,m))continue;let R=p[m];if(typeof R=="function"&&!m.startsWith("_")&&m!=="context"&&!["snapshots","clearSnapshots","restoreSnapshot","history","clearHistory"].includes(m)){let ue=R;p[m]=function(...ye){let j=p.context,v=ue.apply(this,ye);if(v&&typeof v=="object"&&"context"in v){let k=v.context;if(!(a&&!a(m))){let Y=!0;if(i&&(Y=JSON.stringify(j)!==JSON.stringify(k)),Y){let F={id:`snapshot-${x++}`,transitionName:m,before:{...j},after:{...k},timestamp:Date.now()};if(r)try{F.serializedBefore=r.serialize(j),F.serializedAfter=r.serialize(k)}catch($){console.error("Failed to serialize snapshot:",$)}if(o)try{F.diff=o(j,k)}catch($){console.error("Failed to capture snapshot:",$)}u.push(F),n&&u.length>n&&u.shift(),s==null||s(F)}}}return v}}}let b=Object.assign(p,{snapshots:u,clearSnapshots:()=>{u.length=0,x=0},restoreSnapshot:f});return e.history&&(b.history=e.history,b.clearHistory=e.clearHistory),b}return p}}}return Object.assign(y,{snapshots:u,clearSnapshots:()=>{u.length=0,x=0},restoreSnapshot:f})}function ce(e,t={}){let{maxSize:n,serializer:r,onRecord:o}=t,i=[],a=[],s=0,c=0,d=(l,h)=>{let M={id:`entry-${s++}`,transitionName:l,args:[...h],timestamp:Date.now()};if(r)try{M.serializedArgs=r.serialize(h)}catch(g){console.error("Failed to serialize history args:",g)}i.push(M),n&&i.length>n&&i.shift(),o==null||o("history",M)},u=(l,h,M)=>{let g={id:`snapshot-${c++}`,transitionName:l,before:{...h},after:{...M},timestamp:Date.now()};if(r)try{g.serializedBefore=r.serialize(h),g.serializedAfter=r.serialize(M)}catch(p){console.error("Failed to serialize snapshot:",p)}a.push(g),n&&a.length>n&&a.shift(),o==null||o("snapshot",g)},x=l=>{let{context:h,...M}=e;return Object.assign({context:l},l,M)},y=(l=0)=>{if(l<0||l>=a.length)throw new Error(`Invalid snapshot index: ${l}`);let h=x(a[l].before),M=a[l],g=i.findIndex(p=>p.transitionName===M.transitionName&&p.timestamp===M.timestamp);if(g===-1)throw new Error("Could not find matching history entry for snapshot");for(let p=g;p<i.length;p++){let b=i[p],m=h[b.transitionName];if(typeof m=="function")try{h=m.apply(h.context,b.args)}catch(R){throw console.error(`Replay failed at step ${p}:`,R),R}}return h},f=l=>{let h={...l};for(let M in l){if(!Object.prototype.hasOwnProperty.call(l,M))continue;let g=l[M];typeof g=="function"&&!M.startsWith("_")&&M!=="context"&&!["history","snapshots","clearHistory","clearSnapshots","clearTimeTravel","restoreSnapshot","replayFrom"].includes(M)&&(h[M]=function(...p){d(M,p);let b=h.context,m=g.apply(this,p);return m&&typeof m=="object"&&"context"in m&&u(M,b,m.context),m&&typeof m=="object"&&"context"in m?f(m):m})}return Object.assign(h,{history:i,snapshots:a,clearHistory:()=>{i.length=0,s=0},clearSnapshots:()=>{a.length=0,c=0},clearTimeTravel:()=>{i.length=0,a.length=0,s=0,c=0},restoreSnapshot:x,replayFrom:y})};return f(e)}function Ie(e,...t){return t.reduce((n,r)=>r(n),e)}function Le(e,t){return n=>w(n,e,t)}function B(e,...t){return t.reduce((n,r)=>r(n),e)}function Ge(e){return new U(e)}var U=class e{constructor(t){this.machine=t}with(t){let n=t(this.machine);return new e(n)}build(){return this.machine}};function Ve(e){return ce(se(ae(e)))}function Ue(e={}){let{continueOnError:t=!1,logErrors:n=!0,onError:r}=e;return(o,...i)=>{let a=o,s=[];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(u){let x=u instanceof Error?u:new Error(String(u));if(s.push({error:x,middlewareIndex:c}),n&&console.error(`Middleware pipeline error at index ${c}:`,x),r==null||r(x,`middleware-${c}`),!t)break}}return{machine:a,errors:s,success:s.length===0}}}function Je(){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 B(t,...r.map(o=>o.middleware))},applyAll(t){let n=this.list();return B(t,...n.map(r=>r.middleware))}}}function J(e,t){let n=function(r){return t(r)?e(r):r};return n.middleware=e,n.when=t,n}function qe(e){return J(e,()=>typeof process!="undefined"?!1:typeof window!="undefined"?!window.location.hostname.includes("production"):!1)}function Ye(e,t,n){return J(n,r=>r.context[e]===t)}function Xe(...e){return t=>B(t,...e)}function Qe(e,t){return n=>{for(let[r,o]of e)if(r(n))return o(n);return t?t(n):n}}function le(e){return typeof e=="function"&&e.length===1}function Ze(e){return e!==null&&"middleware"in e&&"when"in e&&le(e.middleware)&&typeof e.when=="function"}function et(e,t){return e instanceof t}function tt(e,...t){return{type:e,args:t}}function nt(e,t){return O(e,n=>({...n,...t}))}async function rt(e,...t){let n=e;for(let r of t)n=await r(n);return n}function ot(e,t){return t?console.log(t,e.context):console.log(e.context),e}function it(e,t,...n){return e.apply(t,n)}function de(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?de(i):i}:r}})}var q=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 E(e,t){let n="context"in t?Object.fromEntries(Object.entries(t).filter(([o])=>o!=="context")):t;return Object.assign({context:e},n)}function Kt(e,t){return Object.assign({context:e},t)}function _t(){return e=>{let t=Object.fromEntries(Object.entries(e).map(([n,r])=>[n,function(...o){let i=r(this,...o);return E(i,t)}]));return n=>E(n,t)}}function O(e,t){let{context:n,...r}=e,o=typeof t=="function"?t(n):t;return E(o,r)}function Wt(e,t){let{context:n,...r}=e,o={...r,...t};return E(n,o)}function Ht(e,t){let{context:n,...r}=e,o={...r,...t};return E(n,o)}function It(e,t){return(...n)=>{let r=e(...n),o=t(),i={...r.context,...o.context},{context:a,...s}=r,{context:c,...d}=o,u={...s,...d};return E(i,u)}}function Lt(e){let{context:t,...n}=e;return r=>E(r,n)}function Gt(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 Vt(e,t,n){return e.context[t]===n}function Ut(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 d=await a.apply(n.context,[...i.args,{signal:s.signal}]);return s.signal.aborted||(n=d,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 T=class{constructor(t){this.context=t}};function Jt(e,t){let{context:n,...r}=e;return E(t(n),r)}export{q as BoundMachine,me as META_KEY,T as MachineBase,re as MultiMachineBase,A as RUNTIME_META,Se as action,de as bindTransitions,Qe as branch,it as call,Ge as chain,Xe as combine,It as combineFactories,Ie as compose,B as composeTyped,Kt as createAsyncMachine,Le as createCustomMiddleware,xt as createEnsemble,tt as createEvent,Pt as createFetchMachine,pe as createFlow,E as createMachine,Lt as createMachineBuilder,_t as createMachineFactory,w as createMiddleware,Je as createMiddlewareRegistry,gt as createMultiMachine,Ct as createMutableMachine,oe as createParallelMachine,Ue as createPipeline,Ne as createRunner,St as delegateToChild,be as describe,Ht as extendTransitions,ke as extractFromInstance,ne as extractFunctionMetadata,_ as extractMachine,Oe as extractMachines,W as extractStateNode,te as generateChart,je as generateStatechart,D as guard,Te as guarded,Vt as hasState,qe as inDevelopment,Ee as invoke,Ze as isConditionalMiddleware,le as isMiddlewareFn,et as isState,ot as logState,Gt as matchMachine,nt as mergeContext,Pe as metadata,Jt as next,Wt as overrideTransitions,rt as pipeTransitions,Q as run,ge as runAsync,Ut as runMachine,xe as runSequence,he as runWithDebug,ht as runWithEnsemble,pt as runWithRunner,O as setContext,Me as step,Ce as stepAsync,Ft as toggle,we as transitionTo,J as when,Ye as whenContext,Fe as whenGuard,$e as withAnalytics,Ve as withDebugging,_e as withErrorReporting,ae as withHistory,Be as withLogging,We as withPerformanceMonitoring,Ke as withPermissions,He as withRetry,se as withSnapshot,ce as withTimeTravel,De as withValidation,fe as yieldMachine};
@@ -18,12 +18,25 @@ export type Machine<C extends object> = {
18
18
  } & Record<string, (...args: any[]) => Machine<any>>;
19
19
  /**
20
20
  * The shape of an asynchronous machine, where transitions can return Promises.
21
- * @template C - The context (state) object type.
21
+ * Async transitions receive an AbortSignal as the last parameter for cancellation support.
22
+ * @template C - The context object type.
22
23
  */
23
24
  export type AsyncMachine<C extends object> = {
24
25
  /** The readonly state of the machine. */
25
26
  readonly context: C;
26
27
  } & Record<string, (...args: any[]) => MaybePromise<AsyncMachine<any>>>;
28
+ /**
29
+ * Utility type to extract the parameters of an async transition function,
30
+ * which includes TransitionOptions as the last parameter.
31
+ */
32
+ export type AsyncTransitionArgs<M extends AsyncMachine<any>, K extends keyof M & string> = M[K] extends (...args: infer A) => any ? A extends [...infer Rest, TransitionOptions] ? Rest : A : never;
33
+ /**
34
+ * Options passed to async transition functions, including cancellation support.
35
+ */
36
+ export interface TransitionOptions {
37
+ /** AbortSignal for cancelling long-running async operations. */
38
+ signal: AbortSignal;
39
+ }
27
40
  /**
28
41
  * Extracts the context type `C` from a machine type `M`.
29
42
  * @template M - The machine type.
@@ -165,6 +178,49 @@ export declare function overrideTransitions<M extends Machine<any>, T extends Re
165
178
  export declare function extendTransitions<M extends Machine<any>, T extends Record<string, (this: Context<M>, ...args: any[]) => any> & {
166
179
  [K in keyof T]: K extends keyof M ? never : T[K];
167
180
  }>(machine: M, newTransitions: T): M & T;
181
+ /**
182
+ * Combines two machine factories into a single factory that creates machines with merged context and transitions.
183
+ * This allows you to compose independent state machines that operate on different parts of the same context.
184
+ *
185
+ * The resulting factory takes the parameters of the first factory, while the second factory is called with no arguments.
186
+ * Context properties are merged (second factory's context takes precedence on conflicts).
187
+ * Transition names must not conflict between the two machines.
188
+ *
189
+ * @template F1 - The first factory function type.
190
+ * @template F2 - The second factory function type.
191
+ * @param factory1 - The first machine factory (provides parameters and primary context).
192
+ * @param factory2 - The second machine factory (provides additional context and transitions).
193
+ * @returns A new factory function that creates combined machines.
194
+ *
195
+ * @example
196
+ * ```typescript
197
+ * // Define two independent machines
198
+ * const createCounter = (initial: number) =>
199
+ * createMachine({ count: initial }, {
200
+ * increment: function() { return createMachine({ count: this.count + 1 }, this); },
201
+ * decrement: function() { return createMachine({ count: this.count - 1 }, this); }
202
+ * });
203
+ *
204
+ * const createLogger = () =>
205
+ * createMachine({ logs: [] as string[] }, {
206
+ * log: function(message: string) {
207
+ * return createMachine({ logs: [...this.logs, message] }, this);
208
+ * },
209
+ * clear: function() {
210
+ * return createMachine({ logs: [] }, this);
211
+ * }
212
+ * });
213
+ *
214
+ * // Combine them
215
+ * const createCounterWithLogging = combineFactories(createCounter, createLogger);
216
+ *
217
+ * // Use the combined factory
218
+ * const machine = createCounterWithLogging(5); // { count: 5, logs: [] }
219
+ * const incremented = machine.increment(); // { count: 6, logs: [] }
220
+ * const logged = incremented.log("Count incremented"); // { count: 6, logs: ["Count incremented"] }
221
+ * ```
222
+ */
223
+ export declare function combineFactories<F1 extends (...args: any[]) => Machine<any>, F2 extends () => Machine<any>>(factory1: F1, factory2: F2): (...args: Parameters<F1>) => Machine<Context<ReturnType<F1>> & Context<ReturnType<F2>>> & Omit<ReturnType<F1>, 'context'> & Omit<ReturnType<F2>, 'context'>;
168
224
  /**
169
225
  * Creates a builder function from a "template" machine instance.
170
226
  * This captures the behavior of a machine and returns a factory that can stamp out
@@ -227,17 +283,20 @@ export declare function hasState<M extends Machine<any>, K extends keyof Context
227
283
  /**
228
284
  * Runs an asynchronous state machine with a managed lifecycle and event dispatch capability.
229
285
  * This is the "interpreter" for async machines, handling state updates and side effects.
286
+ * Provides automatic AbortController management to prevent async race conditions.
230
287
  *
231
288
  * @template M - The initial machine type.
232
289
  * @param initial - The initial machine state.
233
290
  * @param onChange - Optional callback invoked with the new machine state after every transition.
234
- * @returns An object with a `state` getter for the current context and an async `dispatch` function.
291
+ * @returns An object with a `state` getter for the current context, an async `dispatch` function, and a `stop` method.
235
292
  */
236
293
  export declare function runMachine<M extends AsyncMachine<any>>(initial: M, onChange?: (m: M) => void): {
237
294
  /** Gets the context of the current state of the machine. */
238
295
  readonly state: Context<M>;
239
296
  /** Dispatches a type-safe event to the machine, triggering a transition. */
240
297
  dispatch: <E extends Event<M>>(event: E) => Promise<M>;
298
+ /** Stops any pending async operation and cleans up resources. */
299
+ stop: () => void;
241
300
  };
242
301
  /**
243
302
  * An optional base class for creating machines using an Object-Oriented style.
@@ -336,11 +395,12 @@ export type MachineLike<C extends object> = Machine<C> | Promise<Machine<C>>;
336
395
  */
337
396
  export type MachineResult<C extends object> = Machine<C> | [Machine<C>, () => void | Promise<void>];
338
397
  export { run, step, yieldMachine, runSequence, createFlow, runWithDebug, runAsync, stepAsync } from './generators';
339
- export { transitionTo, describe, guarded, invoke, action, metadata, META_KEY, type TransitionMeta, type GuardMeta, type InvokeMeta, type ActionMeta, type ClassConstructor, type WithMeta } from './primitives';
398
+ export { transitionTo, describe, guarded, guard, whenGuard, invoke, action, metadata, META_KEY, type TransitionMeta, type GuardMeta, type InvokeMeta, type ActionMeta, type ClassConstructor, type WithMeta, type GuardOptions, type GuardFallback, type GuardedTransition } from './primitives';
340
399
  export { extractMachine, extractMachines, generateChart, type MachineConfig, type ExtractionConfig } from './extract';
341
400
  export { extractFunctionMetadata, extractStateNode, generateStatechart, extractFromInstance } from './runtime-extract';
342
401
  export { RUNTIME_META, type RuntimeTransitionMeta } from './primitives';
343
402
  export * from './multi';
344
403
  export * from './higher-order';
404
+ export { createMiddleware, withLogging, withAnalytics, withValidation, withPermissions, withErrorReporting, withPerformanceMonitoring, withRetry, withHistory, withSnapshot, withTimeTravel, compose, composeTyped, createPipeline, createMiddlewareRegistry, when, inDevelopment, whenContext, combine, branch, isMiddlewareFn, isConditionalMiddleware, createCustomMiddleware, type MiddlewareHooks, type MiddlewareOptions, type MiddlewareContext, type MiddlewareResult, type MiddlewareError, type HistoryEntry, type ContextSnapshot, type Serializer, type MiddlewareFn, type ConditionalMiddleware, type NamedMiddleware, type PipelineConfig, type PipelineResult, chain, withDebugging } from './middleware';
345
405
  export { isState, createEvent, mergeContext, pipeTransitions, logState, call, bindTransitions, BoundMachine } from './utils';
346
406
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}