@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.
- package/dist/cjs/development/index.js +2 -2
- package/dist/cjs/development/index.js.map +2 -2
- package/dist/cjs/production/index.js +1 -1
- package/dist/esm/development/index.js +2 -2
- package/dist/esm/development/index.js.map +2 -2
- package/dist/esm/production/index.js +1 -1
- package/dist/types/primitives.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/primitives.ts +3 -2
- package/src/solid.ts +8 -8
|
@@ -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=[...
|
|
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 = [...
|
|
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 = [...
|
|
83
|
+
merged.actions = [...metadata2.actions, ...existing.actions];
|
|
84
84
|
} else if (metadata2.actions) {
|
|
85
85
|
merged.actions = [...metadata2.actions];
|
|
86
86
|
}
|