@doeixd/machine 0.0.5 → 0.0.6

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,4 +1,4 @@
1
- "use strict";var b=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var H=(t,e)=>{for(var r in e)b(t,r,{get:e[r],enumerable:!0})},Q=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of J(e))!Y.call(t,n)&&n!==r&&b(t,n,{get:()=>e[n],enumerable:!(o=q(e,n))||o.enumerable});return t};var X=t=>Q(b({},"__esModule",{value:!0}),t);var pe={};H(pe,{META_KEY:()=>K,MachineBase:()=>j,MultiMachineBase:()=>S,RUNTIME_META:()=>M,action:()=>_,createAsyncMachine:()=>se,createEnsemble:()=>ne,createFlow:()=>v,createMachine:()=>y,createMachineBuilder:()=>de,createMachineFactory:()=>ce,createMultiMachine:()=>ie,createMutableMachine:()=>ae,createRunner:()=>U,describe:()=>D,extendTransitions:()=>xe,extractFromInstance:()=>B,extractFunctionMetadata:()=>k,extractMachine:()=>C,extractMachines:()=>V,extractStateNode:()=>m,generateChart:()=>A,generateStatechart:()=>z,guarded:()=>L,hasState:()=>ye,invoke:()=>I,matchMachine:()=>fe,metadata:()=>W,next:()=>ge,overrideTransitions:()=>le,run:()=>E,runAsync:()=>O,runMachine:()=>Me,runSequence:()=>N,runWithDebug:()=>R,runWithEnsemble:()=>oe,runWithRunner:()=>re,setContext:()=>ue,step:()=>F,stepAsync:()=>P,transitionTo:()=>$,yieldMachine:()=>w});module.exports=X(pe);function E(t,e){let r=t(e),o=e;for(;;){let{value:n,done:i}=r.next(o);if(i)return n;o=n}}function F(t){return function*(){return yield t}()}function w(t){return t}function N(t,e){return e.reduce((r,o)=>E(o,r),t)}function v(t){return t}function R(t,e,r=(o,n)=>{console.log(`Step ${o}:`,n.context)}){let o=t(e),n=e,i=0;for(r(i,n);;){let{value:a,done:s}=o.next(n);if(s)return console.log("Final:",a),a;n=a,i++,r(i,n)}}async function O(t,e){let r=t(e),o=e;for(;;){let{value:n,done:i}=await r.next(o);if(i)return n;o=n}}async function*P(t){return yield t}var K=Symbol("MachineMeta"),M=Symbol("__machine_runtime_meta__");function g(t,e){let r=t[M]||{},o={...r,...e};e.guards&&r.guards?o.guards=[...r.guards,...e.guards]:e.guards&&(o.guards=[...e.guards]),e.actions&&r.actions?o.actions=[...r.actions,...e.actions]:e.actions&&(o.actions=[...e.actions]),Object.defineProperty(t,M,{value:o,enumerable:!1,writable:!1,configurable:!0})}function $(t,e){return g(e,{target:t.name||t.toString()}),e}function D(t,e){return g(e,{description:t}),e}function L(t,e){return g(e,{guards:[t]}),e}function I(t,e){return g(e,{invoke:{src:t.src,onDone:t.onDone.name||t.onDone.toString(),onError:t.onError.name||t.onError.toString(),description:t.description}}),e}function _(t,e){return g(e,{actions:[t]}),e}function W(t,e){return e}var c=require("ts-morph");function G(t){return c.Node.isIdentifier(t)?t.getText():c.Node.isTypeOfExpression(t)?t.getExpression().getText():"unknown"}function h(t){if(!c.Node.isObjectLiteralExpression(t))return{};let e={};for(let r of t.getProperties())if(c.Node.isPropertyAssignment(r)){let o=r.getName(),n=r.getInitializer();n&&(c.Node.isStringLiteral(n)||c.Node.isNumericLiteral(n)?e[o]=n.getLiteralValue():n.getText()==="true"||n.getText()==="false"?e[o]=n.getText()==="true":c.Node.isIdentifier(n)?e[o]=n.getText():c.Node.isObjectLiteralExpression(n)?e[o]=h(n):c.Node.isArrayLiteralExpression(n)&&(e[o]=n.getElements().map(i=>c.Node.isObjectLiteralExpression(i)?h(i):i.getText())))}return e}function Z(t){if(!c.Node.isObjectLiteralExpression(t))return{};let e={};for(let r of t.getProperties())if(c.Node.isPropertyAssignment(r)){let o=r.getName(),n=r.getInitializer();if(!n)continue;o==="onDone"||o==="onError"?e[o]=G(n):c.Node.isStringLiteral(n)?e[o]=n.getLiteralValue():c.Node.isIdentifier(n)&&(e[o]=n.getText())}return e}function p(t,e=!1){if(!c.Node.isCallExpression(t))return null;let r=t.getExpression(),o=c.Node.isIdentifier(r)?r.getText():null;if(!o)return null;let n={},i=t.getArguments();switch(o){case"transitionTo":i[0]&&(n.target=G(i[0]));break;case"describe":if(i[0]&&c.Node.isStringLiteral(i[0])&&(n.description=i[0].getLiteralValue()),i[1]&&c.Node.isCallExpression(i[1])){let a=p(i[1],e);a&&Object.assign(n,a)}break;case"guarded":if(i[0]){let a=h(i[0]);Object.keys(a).length>0&&(n.guards=[a])}if(i[1]&&c.Node.isCallExpression(i[1])){let a=p(i[1],e);a&&Object.assign(n,a)}break;case"invoke":if(i[0]){let a=Z(i[0]);Object.keys(a).length>0&&(n.invoke=a)}break;case"action":if(i[0]){let a=h(i[0]);Object.keys(a).length>0&&(n.actions=[a])}if(i[1]&&c.Node.isCallExpression(i[1])){let a=p(i[1],e);a&&Object.assign(n,a)}break;default:return null}return Object.keys(n).length>0?n:null}function ee(t,e=!1){if(!c.Node.isPropertyDeclaration(t))return e&&console.error(" ⚠️ Not a property declaration"),null;let r=t.getInitializer();if(!r)return e&&console.error(" ⚠️ No initializer"),null;if(!c.Node.isCallExpression(r))return e&&console.error(" ⚠️ Initializer is not a call expression"),null;let o=p(r,e);return o&&e&&console.error(" ✅ Extracted metadata:",JSON.stringify(o,null,2)),o}function te(t,e=!1){let r={on:{}},o=t.getDeclarations()[0];if(!o||!c.Node.isClassDeclaration(o))return e&&console.error(`⚠️ Warning: Could not get class declaration for ${t.getName()}`),r;let n=t.getName();e&&console.error(` Analyzing state: ${n}`);for(let i of o.getInstanceMembers()){let a=i.getName();e&&console.error(` Checking member: ${a}`);let s=ee(i,e);if(!s)continue;e&&console.error(` Found transition: ${a}`);let{invoke:u,actions:l,guards:f,...x}=s;if(u&&(r.invoke||(r.invoke=[]),r.invoke.push({src:u.src,onDone:{target:u.onDone},onError:{target:u.onError},description:u.description}),e&&console.error(` → Invoke: ${u.src}`)),x.target){let d={target:x.target};x.description&&(d.description=x.description),f&&(d.cond=f.map(T=>T.name).join(" && "),e&&console.error(` → Guard: ${d.cond}`)),l&&l.length>0&&(d.actions=l.map(T=>T.name),e&&console.error(` → Actions: ${d.actions.join(", ")}`)),r.on[a]=d,e&&console.error(` → Target: ${x.target}`)}}return r}function C(t,e,r=!1){r&&(console.error(`
1
+ "use strict";var b=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var H=(t,e)=>{for(var r in e)b(t,r,{get:e[r],enumerable:!0})},Q=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of J(e))!Y.call(t,n)&&n!==r&&b(t,n,{get:()=>e[n],enumerable:!(o=q(e,n))||o.enumerable});return t};var X=t=>Q(b({},"__esModule",{value:!0}),t);var pe={};H(pe,{META_KEY:()=>K,MachineBase:()=>j,MultiMachineBase:()=>S,RUNTIME_META:()=>M,action:()=>_,createAsyncMachine:()=>se,createEnsemble:()=>ne,createFlow:()=>v,createMachine:()=>y,createMachineBuilder:()=>de,createMachineFactory:()=>ce,createMultiMachine:()=>ie,createMutableMachine:()=>ae,createRunner:()=>U,describe:()=>D,extendTransitions:()=>xe,extractFromInstance:()=>B,extractFunctionMetadata:()=>k,extractMachine:()=>C,extractMachines:()=>V,extractStateNode:()=>m,generateChart:()=>A,generateStatechart:()=>z,guarded:()=>L,hasState:()=>ye,invoke:()=>I,matchMachine:()=>fe,metadata:()=>W,next:()=>ge,overrideTransitions:()=>le,run:()=>E,runAsync:()=>O,runMachine:()=>Me,runSequence:()=>N,runWithDebug:()=>R,runWithEnsemble:()=>oe,runWithRunner:()=>re,setContext:()=>ue,step:()=>F,stepAsync:()=>P,transitionTo:()=>$,yieldMachine:()=>w});module.exports=X(pe);function E(t,e){let r=t(e),o=e;for(;;){let{value:n,done:i}=r.next(o);if(i)return n;o=n}}function F(t){return function*(){return yield t}()}function w(t){return t}function N(t,e){return e.reduce((r,o)=>E(o,r),t)}function v(t){return t}function R(t,e,r=(o,n)=>{console.log(`Step ${o}:`,n.context)}){let o=t(e),n=e,i=0;for(r(i,n);;){let{value:a,done:s}=o.next(n);if(s)return console.log("Final:",a),a;n=a,i++,r(i,n)}}async function O(t,e){let r=t(e),o=e;for(;;){let{value:n,done:i}=await r.next(o);if(i)return n;o=n}}async function*P(t){return yield t}var K=Symbol("MachineMeta"),M=Symbol("__machine_runtime_meta__");function g(t,e){let r=t[M]||{},o={...r,...e};e.guards&&r.guards?o.guards=[...e.guards,...r.guards]:e.guards&&(o.guards=[...e.guards]),e.actions&&r.actions?o.actions=[...e.actions,...r.actions]:e.actions&&(o.actions=[...e.actions]),Object.defineProperty(t,M,{value:o,enumerable:!1,writable:!1,configurable:!0})}function $(t,e){return g(e,{target:t.name||t.toString()}),e}function D(t,e){return g(e,{description:t}),e}function L(t,e){return g(e,{guards:[t]}),e}function I(t,e){return g(e,{invoke:{src:t.src,onDone:t.onDone.name||t.onDone.toString(),onError:t.onError.name||t.onError.toString(),description:t.description}}),e}function _(t,e){return g(e,{actions:[t]}),e}function W(t,e){return e}var c=require("ts-morph");function G(t){return c.Node.isIdentifier(t)?t.getText():c.Node.isTypeOfExpression(t)?t.getExpression().getText():"unknown"}function h(t){if(!c.Node.isObjectLiteralExpression(t))return{};let e={};for(let r of t.getProperties())if(c.Node.isPropertyAssignment(r)){let o=r.getName(),n=r.getInitializer();n&&(c.Node.isStringLiteral(n)||c.Node.isNumericLiteral(n)?e[o]=n.getLiteralValue():n.getText()==="true"||n.getText()==="false"?e[o]=n.getText()==="true":c.Node.isIdentifier(n)?e[o]=n.getText():c.Node.isObjectLiteralExpression(n)?e[o]=h(n):c.Node.isArrayLiteralExpression(n)&&(e[o]=n.getElements().map(i=>c.Node.isObjectLiteralExpression(i)?h(i):i.getText())))}return e}function Z(t){if(!c.Node.isObjectLiteralExpression(t))return{};let e={};for(let r of t.getProperties())if(c.Node.isPropertyAssignment(r)){let o=r.getName(),n=r.getInitializer();if(!n)continue;o==="onDone"||o==="onError"?e[o]=G(n):c.Node.isStringLiteral(n)?e[o]=n.getLiteralValue():c.Node.isIdentifier(n)&&(e[o]=n.getText())}return e}function p(t,e=!1){if(!c.Node.isCallExpression(t))return null;let r=t.getExpression(),o=c.Node.isIdentifier(r)?r.getText():null;if(!o)return null;let n={},i=t.getArguments();switch(o){case"transitionTo":i[0]&&(n.target=G(i[0]));break;case"describe":if(i[0]&&c.Node.isStringLiteral(i[0])&&(n.description=i[0].getLiteralValue()),i[1]&&c.Node.isCallExpression(i[1])){let a=p(i[1],e);a&&Object.assign(n,a)}break;case"guarded":if(i[0]){let a=h(i[0]);Object.keys(a).length>0&&(n.guards=[a])}if(i[1]&&c.Node.isCallExpression(i[1])){let a=p(i[1],e);a&&Object.assign(n,a)}break;case"invoke":if(i[0]){let a=Z(i[0]);Object.keys(a).length>0&&(n.invoke=a)}break;case"action":if(i[0]){let a=h(i[0]);Object.keys(a).length>0&&(n.actions=[a])}if(i[1]&&c.Node.isCallExpression(i[1])){let a=p(i[1],e);a&&Object.assign(n,a)}break;default:return null}return Object.keys(n).length>0?n:null}function ee(t,e=!1){if(!c.Node.isPropertyDeclaration(t))return e&&console.error(" ⚠️ Not a property declaration"),null;let r=t.getInitializer();if(!r)return e&&console.error(" ⚠️ No initializer"),null;if(!c.Node.isCallExpression(r))return e&&console.error(" ⚠️ Initializer is not a call expression"),null;let o=p(r,e);return o&&e&&console.error(" ✅ Extracted metadata:",JSON.stringify(o,null,2)),o}function te(t,e=!1){let r={on:{}},o=t.getDeclarations()[0];if(!o||!c.Node.isClassDeclaration(o))return e&&console.error(`⚠️ Warning: Could not get class declaration for ${t.getName()}`),r;let n=t.getName();e&&console.error(` Analyzing state: ${n}`);for(let i of o.getInstanceMembers()){let a=i.getName();e&&console.error(` Checking member: ${a}`);let s=ee(i,e);if(!s)continue;e&&console.error(` Found transition: ${a}`);let{invoke:u,actions:l,guards:f,...x}=s;if(u&&(r.invoke||(r.invoke=[]),r.invoke.push({src:u.src,onDone:{target:u.onDone},onError:{target:u.onError},description:u.description}),e&&console.error(` → Invoke: ${u.src}`)),x.target){let d={target:x.target};x.description&&(d.description=x.description),f&&(d.cond=f.map(T=>T.name).join(" && "),e&&console.error(` → Guard: ${d.cond}`)),l&&l.length>0&&(d.actions=l.map(T=>T.name),e&&console.error(` → Actions: ${d.actions.join(", ")}`)),r.on[a]=d,e&&console.error(` → Target: ${x.target}`)}}return r}function C(t,e,r=!1){r&&(console.error(`
2
2
  🔍 Analyzing machine: ${t.id}`),console.error(` Source: ${t.input}`));let o=e.getSourceFile(t.input);if(!o)throw new Error(`Source file not found: ${t.input}`);let n={id:t.id,initial:t.initialState,states:{}};t.description&&(n.description=t.description);for(let i of t.classes){let a=o.getClass(i);if(!a){console.warn(`⚠️ Warning: Class '${i}' not found in '${t.input}'. Skipping.`);continue}let s=a.getSymbolOrThrow(),u=te(s,r);n.states[i]=u}return r&&console.error(` ✅ Extracted ${t.classes.length} states`),n}function V(t){var n;let e=(n=t.verbose)!=null?n:!1;e&&(console.error(`
3
3
  📊 Starting statechart extraction`),console.error(` Machines to extract: ${t.machines.length}`));let r=new c.Project;r.addSourceFilesAtPaths("src/**/*.ts"),r.addSourceFilesAtPaths("examples/**/*.ts");let o=[];for(let i of t.machines)try{let a=C(i,r,e);o.push(a)}catch(a){console.error(`❌ Error extracting machine '${i.id}':`,a),e||console.error(" Run with --verbose for more details")}return e&&console.error(`
4
4
  ✅ Extraction complete: ${o.length}/${t.machines.length} machines extracted`),o}function A(){let t={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
@@ -75,12 +75,12 @@ function attachRuntimeMeta(fn, metadata2) {
75
75
  const existing = fn[RUNTIME_META] || {};
76
76
  const merged = { ...existing, ...metadata2 };
77
77
  if (metadata2.guards && existing.guards) {
78
- merged.guards = [...existing.guards, ...metadata2.guards];
78
+ merged.guards = [...metadata2.guards, ...existing.guards];
79
79
  } else if (metadata2.guards) {
80
80
  merged.guards = [...metadata2.guards];
81
81
  }
82
82
  if (metadata2.actions && existing.actions) {
83
- merged.actions = [...existing.actions, ...metadata2.actions];
83
+ merged.actions = [...metadata2.actions, ...existing.actions];
84
84
  } else if (metadata2.actions) {
85
85
  merged.actions = [...metadata2.actions];
86
86
  }