@statewalker/fsm 0.36.0 → 0.37.0
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 +112 -0
- package/bin/cli.js +1 -1
- package/dist/bin/node-runner-UJp8T_oP.d.ts +16 -0
- package/dist/bin/node-runner-UJp8T_oP.d.ts.map +1 -0
- package/dist/bin/node-runner.js +40 -0
- package/dist/bin/node-runner.js.map +1 -0
- package/dist/index-vTjnkbGW.d.ts +129 -0
- package/dist/index-vTjnkbGW.d.ts.map +1 -0
- package/dist/index.js +38 -779
- package/dist/index.js.map +1 -1
- package/dist/launcher-6VUDviTj.d.ts +48 -0
- package/dist/launcher-6VUDviTj.d.ts.map +1 -0
- package/dist/launcher-CASrMAOa.js +443 -0
- package/dist/launcher-CASrMAOa.js.map +1 -0
- package/package.json +8 -8
- package/src/bin/node-runner.ts +57 -0
- package/src/core/fsm-base-class.ts +1 -26
- package/src/core/fsm-process.ts +14 -11
- package/src/core/fsm-state.ts +1 -21
- package/src/core/index.ts +1 -1
- package/src/index.ts +0 -3
- package/src/orchestrator/handler-registry.ts +108 -0
- package/src/orchestrator/index.ts +15 -9
- package/src/orchestrator/launcher.ts +42 -141
- package/src/orchestrator/start-process.ts +141 -26
- package/src/utils/index.ts +0 -2
- package/src/utils/printer.ts +5 -11
- package/src/utils/tracer.ts +1 -1
- package/CHANGELOG.md +0 -59
- package/dist/index.d.ts +0 -335
- package/src/core/new-fsm-process.ts +0 -83
- package/src/orchestrator/constants.ts +0 -130
- package/src/orchestrator/is-generator.ts +0 -12
- package/src/orchestrator/process-config-manager.ts +0 -70
- package/src/orchestrator/resolve-module-refs.ts +0 -52
- package/src/orchestrator/start-node-processes.ts +0 -19
- package/src/orchestrator/start-processes.ts +0 -32
- package/src/orchestrator/types.ts +0 -34
- package/src/utils/handlers.ts +0 -35
- package/src/utils/process.ts +0 -26
- package/src/utils/transitions.ts +0 -56
package/README.md
CHANGED
|
@@ -1 +1,113 @@
|
|
|
1
1
|
# @statewalker/fsm: Hierarchical Finite State Machine
|
|
2
|
+
|
|
3
|
+
Class-based HFSM with nested states, event-driven transitions, lifecycle hooks, and dump/restore serialization.
|
|
4
|
+
|
|
5
|
+
## Core Classes
|
|
6
|
+
|
|
7
|
+
### FsmStateConfig
|
|
8
|
+
|
|
9
|
+
Declarative state tree definition:
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
const config: FsmStateConfig = {
|
|
13
|
+
key: "Main",
|
|
14
|
+
transitions: [
|
|
15
|
+
["", "start", "Active"], // initial → Active
|
|
16
|
+
["Active", "done", ""], // Active → final
|
|
17
|
+
["*", "reset", "Active"], // any → Active
|
|
18
|
+
],
|
|
19
|
+
states: [
|
|
20
|
+
{ key: "Active", states: [
|
|
21
|
+
{ key: "Step1" },
|
|
22
|
+
{ key: "Step2" },
|
|
23
|
+
], transitions: [
|
|
24
|
+
["", "", "Step1"], // initial → Step1 (eventless)
|
|
25
|
+
["Step1", "next", "Step2"],
|
|
26
|
+
]},
|
|
27
|
+
],
|
|
28
|
+
};
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### FsmProcess
|
|
32
|
+
|
|
33
|
+
Runtime state machine. Maintains a state stack (root → ... → leaf), dispatches events, manages lifecycle.
|
|
34
|
+
|
|
35
|
+
- `dispatch(event)` — trigger a transition
|
|
36
|
+
- `shutdown()` — exit all states gracefully
|
|
37
|
+
- `state` — current leaf state
|
|
38
|
+
- `status` — bitmask tracking enter/exit cycle
|
|
39
|
+
- `onStateCreate(handler)` — called for every new state (primary extension point)
|
|
40
|
+
- `dump()` / `restore(data)` — serialization hooks
|
|
41
|
+
|
|
42
|
+
### FsmState
|
|
43
|
+
|
|
44
|
+
Individual node in the state hierarchy.
|
|
45
|
+
|
|
46
|
+
- `key` — state name
|
|
47
|
+
- `parent` — parent state
|
|
48
|
+
- `onEnter(handler)` — run when entering
|
|
49
|
+
- `onExit(handler)` — run when exiting (reverse order)
|
|
50
|
+
- `onStateError(handler)` — error handling
|
|
51
|
+
- `dump()` / `restore(data)` — per-state serialization
|
|
52
|
+
|
|
53
|
+
## Orchestrator
|
|
54
|
+
|
|
55
|
+
### startProcess(context, config, load, startEvent?)
|
|
56
|
+
|
|
57
|
+
High-level entry point: creates FsmProcess, wires handlers, binds FSM into context.
|
|
58
|
+
|
|
59
|
+
Context keys bound:
|
|
60
|
+
- `fsm:dispatch` — dispatch function
|
|
61
|
+
- `fsm:terminate` — shutdown function
|
|
62
|
+
- `fsm:states` — current state stack
|
|
63
|
+
- `fsm:event` — last event
|
|
64
|
+
|
|
65
|
+
`load(stateKey)` returns handler(s) for each state. Handlers can return:
|
|
66
|
+
- `void` — no cleanup
|
|
67
|
+
- `Function` — registered as onExit cleanup
|
|
68
|
+
- `AsyncGenerator` — yielded events are dispatched to FSM
|
|
69
|
+
|
|
70
|
+
### HandlerRegistry
|
|
71
|
+
|
|
72
|
+
Convention-based handler discovery via `createHandlerRegistry()`:
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
const registry = createHandlerRegistry();
|
|
76
|
+
registry.addConfig("MyProcess", config);
|
|
77
|
+
registry.addHandlers("MyProcess", { "Active": activeHandler, "Step1": step1Handler });
|
|
78
|
+
const load = registry.getLoader("MyProcess");
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### launcher(config)
|
|
82
|
+
|
|
83
|
+
Multi-process launcher with strict types:
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
interface LauncherConfig {
|
|
87
|
+
processes: ProcessDef[];
|
|
88
|
+
start?: string[];
|
|
89
|
+
context?: (parent: Record<string, unknown>) => Record<string, unknown>;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
interface ProcessDef {
|
|
93
|
+
name: string;
|
|
94
|
+
config: FsmStateConfig;
|
|
95
|
+
handlers?: (StageHandler | Record<string, StageHandler | StageHandler[]>)[];
|
|
96
|
+
start?: boolean;
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Utilities
|
|
101
|
+
|
|
102
|
+
- `printer(process)` — log state transitions to console
|
|
103
|
+
- `tracer(process)` — collect transition trace for testing
|
|
104
|
+
|
|
105
|
+
## Migration from pre-0.35
|
|
106
|
+
|
|
107
|
+
Removed in 0.35:
|
|
108
|
+
- `FsmBaseClass.data`, `.setData()`, `.getData()` — use closures or context instead
|
|
109
|
+
- `FsmState.getData(key, recursive)`, `.useData(key)` — use closures
|
|
110
|
+
- `FsmBaseClass._runHandlerParallel()` — handlers run sequentially now
|
|
111
|
+
- `newFsmProcess()` — use `startProcess()` from orchestrator
|
|
112
|
+
- `utils/handlers.ts` (`addSubstateHandlers`, `callStateHandlers`) — use HandlerRegistry
|
|
113
|
+
- `utils/process.ts` — use `startProcess()` directly
|
package/bin/cli.js
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { n as LauncherConfig } from "../launcher-6VUDviTj.js";
|
|
2
|
+
|
|
3
|
+
//#region src/bin/node-runner.d.ts
|
|
4
|
+
declare function startProcesses({
|
|
5
|
+
onExit,
|
|
6
|
+
modules,
|
|
7
|
+
context
|
|
8
|
+
}: {
|
|
9
|
+
onExit?: () => Promise<void> | void;
|
|
10
|
+
modules: unknown[];
|
|
11
|
+
context?: LauncherConfig["context"];
|
|
12
|
+
}): Promise<() => Promise<void>>;
|
|
13
|
+
declare function startNodeProcesses(modules?: string[]): Promise<void>;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { startNodeProcesses as default, startNodeProcesses, startProcesses };
|
|
16
|
+
//# sourceMappingURL=node-runner-UJp8T_oP.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-runner-UJp8T_oP.d.ts","names":[],"sources":["../../src/bin/node-runner.ts"],"mappings":";;;iBAOsB,cAAA;;;;;iBAKL;EALK,OAAA,EAAA,OAAA,EAAc;EAAA,OAAA,CAAA,EAOxB,cAPwB,CAAA,SAAA,CAAA;IAQnC,OAPC,CAAA,GAAA,GAOD,OAPC,CAAA,IAAA,CAAA,CAAA;AACA,iBA6BoB,kBAAA,CA7BpB,OAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EA6B4D,OA7B5D,CAAA,IAAA,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { n as launcher } from "../launcher-CASrMAOa.js";
|
|
2
|
+
//#region src/bin/node-runner.ts
|
|
3
|
+
function resolveModulesPaths(baseUrl, ...refs) {
|
|
4
|
+
return refs.map((ref) => new URL(ref, baseUrl).pathname);
|
|
5
|
+
}
|
|
6
|
+
async function startProcesses({ onExit, modules, context }) {
|
|
7
|
+
const processDefs = [];
|
|
8
|
+
for (const mod of modules) {
|
|
9
|
+
const imported = typeof mod === "string" || mod instanceof URL ? await import(String(mod)) : mod;
|
|
10
|
+
if (imported && typeof imported === "object") processDefs.push(imported);
|
|
11
|
+
}
|
|
12
|
+
if (onExit) processDefs.push({
|
|
13
|
+
name: "Exit",
|
|
14
|
+
config: { key: "Exit" },
|
|
15
|
+
handlers: [() => onExit]
|
|
16
|
+
});
|
|
17
|
+
return await launcher({
|
|
18
|
+
processes: processDefs,
|
|
19
|
+
context
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
async function startNodeProcesses(modules) {
|
|
23
|
+
try {
|
|
24
|
+
if (!modules) modules = process.argv.slice(2);
|
|
25
|
+
const terminate = await startProcesses({
|
|
26
|
+
modules: resolveModulesPaths(`file://${process.cwd()}/`, ...modules),
|
|
27
|
+
onExit: () => process.exit(0)
|
|
28
|
+
});
|
|
29
|
+
process.on("SIGINT", terminate);
|
|
30
|
+
process.on("SIGTERM", terminate);
|
|
31
|
+
process.stdin.resume();
|
|
32
|
+
} catch (err) {
|
|
33
|
+
console.error("Fatal error:", err);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { startNodeProcesses as default, startNodeProcesses, startProcesses };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=node-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-runner.js","names":[],"sources":["../../src/bin/node-runner.ts"],"sourcesContent":["import type { LauncherConfig, ProcessDef } from \"../orchestrator/launcher.ts\";\nimport { launcher } from \"../orchestrator/launcher.ts\";\n\nfunction resolveModulesPaths(baseUrl: string, ...refs: string[]): string[] {\n return refs.map((ref) => new URL(ref, baseUrl).pathname);\n}\n\nexport async function startProcesses({\n onExit,\n modules,\n context,\n}: {\n onExit?: () => Promise<void> | void;\n modules: unknown[];\n context?: LauncherConfig[\"context\"];\n}) {\n const processDefs: ProcessDef[] = [];\n for (const mod of modules) {\n const imported =\n typeof mod === \"string\" || mod instanceof URL\n ? await import(String(mod))\n : mod;\n if (imported && typeof imported === \"object\") {\n processDefs.push(imported as ProcessDef);\n }\n }\n\n if (onExit) {\n processDefs.push({\n name: \"Exit\",\n config: { key: \"Exit\" },\n handlers: [() => onExit],\n });\n }\n\n return await launcher({ processes: processDefs, context });\n}\n\nexport async function startNodeProcesses(modules?: string[]): Promise<void> {\n try {\n if (!modules) {\n modules = process.argv.slice(2);\n }\n const terminate = await startProcesses({\n modules: resolveModulesPaths(`file://${process.cwd()}/`, ...modules),\n onExit: () => process.exit(0),\n });\n process.on(\"SIGINT\", terminate);\n process.on(\"SIGTERM\", terminate);\n process.stdin.resume();\n } catch (err) {\n console.error(\"Fatal error:\", err);\n process.exit(1);\n }\n}\n\nexport default startNodeProcesses;\n"],"mappings":";;AAGA,SAAS,oBAAoB,SAAiB,GAAG,MAA0B;AACzE,QAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,CAAC,SAAS;;AAG1D,eAAsB,eAAe,EACnC,QACA,SACA,WAKC;CACD,MAAM,cAA4B,EAAE;AACpC,MAAK,MAAM,OAAO,SAAS;EACzB,MAAM,WACJ,OAAO,QAAQ,YAAY,eAAe,MACtC,MAAM,OAAO,OAAO,IAAI,IACxB;AACN,MAAI,YAAY,OAAO,aAAa,SAClC,aAAY,KAAK,SAAuB;;AAI5C,KAAI,OACF,aAAY,KAAK;EACf,MAAM;EACN,QAAQ,EAAE,KAAK,QAAQ;EACvB,UAAU,OAAO,OAAO;EACzB,CAAC;AAGJ,QAAO,MAAM,SAAS;EAAE,WAAW;EAAa;EAAS,CAAC;;AAG5D,eAAsB,mBAAmB,SAAmC;AAC1E,KAAI;AACF,MAAI,CAAC,QACH,WAAU,QAAQ,KAAK,MAAM,EAAE;EAEjC,MAAM,YAAY,MAAM,eAAe;GACrC,SAAS,oBAAoB,UAAU,QAAQ,KAAK,CAAC,IAAI,GAAG,QAAQ;GACpE,cAAc,QAAQ,KAAK,EAAE;GAC9B,CAAC;AACF,UAAQ,GAAG,UAAU,UAAU;AAC/B,UAAQ,GAAG,WAAW,UAAU;AAChC,UAAQ,MAAM,QAAQ;UACf,KAAK;AACZ,UAAQ,MAAM,gBAAgB,IAAI;AAClC,UAAQ,KAAK,EAAE"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { a as HandlerRegistry, c as toStageHandlers, d as FsmEventKey, f as FsmStateConfig, g as STATE_INITIAL, h as STATE_FINAL, i as launcher, l as EVENT_ANY, m as STATE_ANY, n as LauncherConfig, o as StageHandler, p as FsmStateKey, r as ProcessDef, s as createHandlerRegistry, t as KEY_LAUNCH_PROCESS, u as EVENT_EMPTY } from "./launcher-6VUDviTj.js";
|
|
2
|
+
|
|
3
|
+
//#region src/core/fsm-base-class.d.ts
|
|
4
|
+
type Handler<P extends unknown[] = unknown[], R = unknown> = (...args: P) => R;
|
|
5
|
+
declare class FsmBaseClass {
|
|
6
|
+
handlers: Record<string, Handler[]>;
|
|
7
|
+
protected _addHandler<T>(type: string, handler: T, direct?: boolean): () => void;
|
|
8
|
+
protected _removeHandler<T>(type: string, handler: T): void;
|
|
9
|
+
_runHandler(type: string, ...args: unknown[]): Promise<void>;
|
|
10
|
+
_handleError(error: Error | unknown): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
declare function bindMethods<T>(obj: T, ...methods: (string | symbol)[]): T;
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/core/fsm-state-descriptor.d.ts
|
|
15
|
+
declare class FsmStateDescriptor {
|
|
16
|
+
transitions: Record<string, Record<string, string>>;
|
|
17
|
+
states: Record<string, FsmStateDescriptor>;
|
|
18
|
+
static build(config: FsmStateConfig): FsmStateDescriptor;
|
|
19
|
+
getTargetStateKey(stateKey: string, eventKey: string): string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=fsm-state-descriptor.d.ts.map
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/core/fsm-state.d.ts
|
|
24
|
+
type FsmStateDump = Record<string, unknown> & {
|
|
25
|
+
key: string;
|
|
26
|
+
data: Record<string, unknown>;
|
|
27
|
+
};
|
|
28
|
+
type FsmStateHandler = (state: FsmState, ...args: unknown[]) => void | Promise<void>;
|
|
29
|
+
type FsmStateDumpHandler = (state: FsmState, dump: FsmStateDump) => void | Promise<void>;
|
|
30
|
+
type FsmStateErrorHandler = (state: FsmState, error: unknown) => void | Promise<void>;
|
|
31
|
+
declare class FsmState extends FsmBaseClass {
|
|
32
|
+
process: FsmProcess;
|
|
33
|
+
key: string;
|
|
34
|
+
parent?: FsmState;
|
|
35
|
+
descriptor?: FsmStateDescriptor;
|
|
36
|
+
constructor(process: FsmProcess, parent: FsmState | undefined, key: string, descriptor?: FsmStateDescriptor);
|
|
37
|
+
onEnter(handler: FsmStateHandler): () => void;
|
|
38
|
+
onExit(handler: FsmStateHandler): () => void;
|
|
39
|
+
onStateError(handler: FsmStateErrorHandler): () => void;
|
|
40
|
+
dump(handler: FsmStateDumpHandler): () => void;
|
|
41
|
+
restore(handler: FsmStateDumpHandler): () => void;
|
|
42
|
+
_handleError(error: Error | unknown): Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=fsm-state.d.ts.map
|
|
45
|
+
//#endregion
|
|
46
|
+
//#region src/core/fsm-process.d.ts
|
|
47
|
+
declare const STATUS_NONE = 0;
|
|
48
|
+
declare const STATUS_FIRST = 1;
|
|
49
|
+
declare const STATUS_NEXT = 2;
|
|
50
|
+
declare const STATUS_LEAF = 4;
|
|
51
|
+
declare const STATUS_LAST = 8;
|
|
52
|
+
declare const STATUS_FINISHED = 16;
|
|
53
|
+
declare const STATUS_ENTER: number;
|
|
54
|
+
declare const STATUS_EXIT: number;
|
|
55
|
+
type FsmProcessHandler = (process: FsmProcess, ...args: unknown[]) => void | Promise<void>;
|
|
56
|
+
type FsmProcessDump = Record<string, unknown> & {
|
|
57
|
+
status: number;
|
|
58
|
+
event?: string;
|
|
59
|
+
stack: FsmStateDump[];
|
|
60
|
+
};
|
|
61
|
+
type FsmProcessDumpHandler = (process: FsmProcess, dump: FsmProcessDump) => void | Promise<void>;
|
|
62
|
+
declare class FsmProcess extends FsmBaseClass {
|
|
63
|
+
state?: FsmState;
|
|
64
|
+
event?: string;
|
|
65
|
+
nextEvent?: string;
|
|
66
|
+
running: boolean;
|
|
67
|
+
mask: number;
|
|
68
|
+
status: number;
|
|
69
|
+
config: FsmStateConfig;
|
|
70
|
+
rootDescriptor: FsmStateDescriptor;
|
|
71
|
+
constructor(config: FsmStateConfig);
|
|
72
|
+
shutdown(event?: string): Promise<void>;
|
|
73
|
+
dispatch(event: string): Promise<boolean>;
|
|
74
|
+
dump(...args: unknown[]): Promise<FsmProcessDump>;
|
|
75
|
+
restore(dump: FsmProcessDump, ...args: unknown[]): Promise<this>;
|
|
76
|
+
onStateCreate(handler: FsmStateHandler): () => void;
|
|
77
|
+
onStateError(handler: (state: FsmState, error: unknown) => void | Promise<void>): () => void;
|
|
78
|
+
_handleStateError(state: FsmState, error: Error | unknown): Promise<void>;
|
|
79
|
+
_newState(parent: FsmState | undefined, key: string, descriptor: FsmStateDescriptor | undefined): Promise<FsmState>;
|
|
80
|
+
_getSubstate(parent: FsmState | undefined, prevStateKey: string | undefined): Promise<FsmState | undefined>;
|
|
81
|
+
_newSubstate(parent: FsmState | undefined, toState: string): Promise<FsmState>;
|
|
82
|
+
_update(): Promise<boolean>;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=fsm-process.d.ts.map
|
|
85
|
+
//#endregion
|
|
86
|
+
//#region src/orchestrator/start-process.d.ts
|
|
87
|
+
interface ProcessHandle {
|
|
88
|
+
shutdown(): Promise<void>;
|
|
89
|
+
dump(...args: unknown[]): Promise<FsmProcessDump>;
|
|
90
|
+
restore(dump: FsmProcessDump, ...args: unknown[]): Promise<void>;
|
|
91
|
+
}
|
|
92
|
+
declare const KEY_DISPATCH = "fsm:dispatch";
|
|
93
|
+
declare const KEY_TERMINATE = "fsm:terminate";
|
|
94
|
+
declare const KEY_STATES = "fsm:states";
|
|
95
|
+
declare const KEY_EVENT = "fsm:event";
|
|
96
|
+
declare function getStateTransitions(state?: FsmState): [from: string, event: string, to: string][];
|
|
97
|
+
declare function isStateTransitionEnabled(process: FsmProcess, event: string): boolean;
|
|
98
|
+
declare function startProcess<C = unknown>(context: C, config: FsmStateConfig, load: (state: string, event: string | undefined) => StageHandler<C>[] | Promise<StageHandler<C>[]>, startEvent?: string): Promise<ProcessHandle>;
|
|
99
|
+
/** @deprecated Use `startProcess` instead */
|
|
100
|
+
declare const startFsmProcess: typeof startProcess;
|
|
101
|
+
//# sourceMappingURL=start-process.d.ts.map
|
|
102
|
+
//#endregion
|
|
103
|
+
//#region src/utils/printer.d.ts
|
|
104
|
+
type Printer = (...args: unknown[]) => void;
|
|
105
|
+
type PrinterConfig = {
|
|
106
|
+
prefix?: string;
|
|
107
|
+
print?: (...args: unknown[]) => void;
|
|
108
|
+
lineNumbers?: boolean;
|
|
109
|
+
};
|
|
110
|
+
declare function preparePrinter(process: FsmProcess, {
|
|
111
|
+
prefix,
|
|
112
|
+
print,
|
|
113
|
+
lineNumbers
|
|
114
|
+
}: PrinterConfig): Printer;
|
|
115
|
+
declare function setProcessPrinter(process: FsmProcess, config?: PrinterConfig): void;
|
|
116
|
+
declare function getProcessPrinter(process: FsmProcess): Printer;
|
|
117
|
+
declare function getPrinter(state: {
|
|
118
|
+
process: FsmProcess;
|
|
119
|
+
}): Printer;
|
|
120
|
+
//# sourceMappingURL=printer.d.ts.map
|
|
121
|
+
//#endregion
|
|
122
|
+
//#region src/utils/tracer.d.ts
|
|
123
|
+
declare function setProcessTracer(process: FsmProcess, print?: Printer): () => void;
|
|
124
|
+
declare function setStateTracer(state: FsmState, print?: Printer): void;
|
|
125
|
+
//# sourceMappingURL=tracer.d.ts.map
|
|
126
|
+
|
|
127
|
+
//#endregion
|
|
128
|
+
export { EVENT_ANY, EVENT_EMPTY, FsmBaseClass, FsmEventKey, FsmProcess, FsmProcessDump, FsmProcessDumpHandler, FsmProcessHandler, FsmState, FsmStateConfig, FsmStateDescriptor, FsmStateDump, FsmStateDumpHandler, FsmStateErrorHandler, FsmStateHandler, FsmStateKey, HandlerRegistry, KEY_DISPATCH, KEY_EVENT, KEY_LAUNCH_PROCESS, KEY_STATES, KEY_TERMINATE, LauncherConfig, Printer, PrinterConfig, ProcessDef, ProcessHandle, STATE_ANY, STATE_FINAL, STATE_INITIAL, STATUS_ENTER, STATUS_EXIT, STATUS_FINISHED, STATUS_FIRST, STATUS_LAST, STATUS_LEAF, STATUS_NEXT, STATUS_NONE, StageHandler, bindMethods, createHandlerRegistry, getPrinter, getProcessPrinter, getStateTransitions, isStateTransitionEnabled, launcher, preparePrinter, setProcessPrinter, setProcessTracer, setStateTracer, startFsmProcess, startProcess, toStageHandlers };
|
|
129
|
+
//# sourceMappingURL=index-vTjnkbGW.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-vTjnkbGW.d.ts","names":[],"sources":["../src/core/fsm-base-class.ts","../src/core/fsm-state-descriptor.ts","../src/core/fsm-state.ts","../src/core/fsm-process.ts","../src/orchestrator/start-process.ts","../src/utils/printer.ts","../src/utils/tracer.ts"],"mappings":";;;KAAK,kEAAkE,MAAM;cAEhE,YAAA;YACD,eAAe;EAHtB,UAAO,WAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAOsC,CAPtC,EAAA,MAAA,CAAA,EAAA,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,UAAA,cAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAiByC,CAjBzC,CAAA,EAAA,IAAA;aAA2D,CAAA,IAAA,EAAA,MAAA,EAAA,GAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EA4BnB,OA5BmB,CAAA,IAAA,CAAA;cAAM,CAAA,KAAA,EAuCjD,KAvCiD,GAAA,OAAA,CAAA,EAuClC,OAvCkC,CAAA,IAAA,CAAA;;AAEhE,iBA0CG,WA1CS,CAAA,CAAA,CAAA,CAAA,GAAA,EA0CW,CA1CX,EAAA,GAAA,OAAA,EAAA,CAAA,MAAA,GAAA,MAAA,CAAA,EAAA,CAAA,EA0C6C,CA1C7C;;;cCKZ,kBAAA;eACE,eAAe;EDRzB,MAAA,ECSK,MDTE,CAAA,MAAA,ECSa,kBDTb,CAAA;EAAA,OAAA,KAAA,CAAA,MAAA,ECWW,cDXX,CAAA,ECWyB,kBDXzB;mBAA2D,CAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;;AAAlE,KEIO,YAAA,GAAe,MFJf,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA;EAAA,GAAA,EAAA,MAAA;MAA2D,EEM/D,MFN+D,CAAA,MAAA,EAAA,OAAA,CAAA;;AAAO,KEQlE,eAAA,GFRkE,CAAA,KAAA,EESrE,QFTqE,EAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA,GEWlE,OFXkE,CAAA,IAAA,CAAA;AAEjE,KEWD,mBAAA,GFXa,CAAA,KAAA,EEYhB,QFZgB,EAAA,IAAA,EEajB,YFbiB,EAAA,GAAA,IAAA,GEcb,OFda,CAAA,IAAA,CAAA;AAAA,KEgBb,oBAAA,GFhBa,CAAA,KAAA,EEiBhB,QFjBgB,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,IAAA,GEmBb,OFnBa,CAAA,IAAA,CAAA;AACE,cEoBd,QAAA,SAAiB,YAAA,CFpBH;SAAf,EEqBD,UFrBC;KAIsC,EAAA,MAAA;QAUG,CAAA,EES1C,QFT0C;YAWD,CAAA,EEDrC,kBFCqC;aAWxB,CAAA,OAAA,EETf,UFSe,EAAA,MAAA,EERhB,QFQgB,GAAA,SAAA,EAAA,GAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EENX,kBFMW;SAAe,CAAA,OAAA,EEIxB,eFJwB,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,MAAA,CAAA,OAAA,EEOzB,eFPyB,CAAA,EAAA,GAAA,GAAA,IAAA;EAK3B,YAAA,CAAA,OAAW,EEKH,oBFLG,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,IAAA,CAAA,OAAA,EEQX,mBFRW,CAAA,EAAA,GAAA,GAAA,IAAA;SAAS,CAAA,OAAA,EEWjB,mBFXiB,CAAA,EAAA,GAAA,GAAA,IAAA;cAAkC,CAAA,KAAA,EEe1C,KFf0C,GAAA,OAAA,CAAA,EEe3B,OFf2B,CAAA,IAAA,CAAA;;;;;AA5C1D,cGcC,WAAA,GHdD,CAAA;AAA2D,cGe1D,YAAA,GHf0D,CAAA;AAAM,cGgBhE,WAAA,GHhBgE,CAAA;AAAC,cGiBjE,WAAA,GHjBiE,CAAA;AAEjE,cGgBA,WAAA,GHhBY,CAAA;AAAA,cGiBZ,eAAA,GHjBY,EAAA;AACE,cGmBd,YHnBc,EAAA,MAAA;AAAf,cGoBC,WHpBD,EAAA,MAAA;AAIsC,KGkBtC,iBAAA,GHlBsC,CAAA,OAAA,EGmBvC,UHnBuC,EAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA,GGqBtC,OHrBsC,CAAA,IAAA,CAAA;AAUG,KGazC,cAAA,GAAiB,MHbwB,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA;QAWD,EAAA,MAAA;OAWxB,CAAA,EAAA,MAAA;OAAe,EGNlC,YHMkC,EAAA;CAAA;AAK3B,KGRJ,qBAAA,GHQe,CAAA,OAAA,EGPhB,UHOgB,EAAA,IAAA,EGNnB,cHMmB,EAAA,GAAA,IAAA,GGLf,OHKe,CAAA,IAAA,CAAA;AAAA,cGHd,UAAA,SAAmB,YAAA,CHGL;OAAS,CAAA,EGF1B,QHE0B;OAAkC,CAAA,EAAA,MAAA;EAAA,SAAA,CAAA,EAAA,MAAA;;;;ECrCzD,MAAA,EEyCH,cFzCqB;EAAA,cAAA,EE0Cb,kBF1Ca;aACD,CAAA,MAAA,EE2CR,cF3CQ;UAAf,CAAA,KAAA,CAAA,EAAA,MAAA,CAAA,EEkDgB,OFlDhB,CAAA,IAAA,CAAA;UACU,CAAA,KAAA,EAAA,MAAA,CAAA,EE0DQ,OF1DR,CAAA,OAAA,CAAA;MAAf,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EEwFwB,OFxFxB,CEwFgC,cFxFhC,CAAA;SAEa,CAAA,IAAA,EEgHD,cFhHC,EAAA,GAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EEgHiC,OFhHjC,CAAA,IAAA,CAAA;eAAc,CAAA,OAAA,EEmIZ,eFnIY,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,YAAA,CAAA,OAAA,EAAA,CAAA,KAAA,EEwIhB,QFxIgB,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,IAAA,GEwIoB,OFxIpB,CAAA,IAAA,CAAA,CAAA,EAAA,GAAA,GAAA,IAAA;2BE6IJ,iBAAiB,kBAAe;oBAMrD,+CAEI,iCAA8B,QAAA;uBAQlC,yDACwB,QAAA;EDrKxB,YAAA,CAAA,MAAY,ECiLK,QDjLL,GAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA,ECiL0C,ODjL1C,CCiL0C,QDjL1C,CAAA;EAAA,OAAA,CAAA,CAAA,EC6LT,OD7LS,CAAA,OAAA,CAAA;;;;;AFJZ,UIMK,aAAA,CJNL;UAA2D,EAAA,EIOzD,OJPyD,CAAA,IAAA,CAAA;MAAM,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EIQjD,OJRiD,CIQzC,cJRyC,CAAA;EAAC,OAAA,CAAA,IAAA,EIS9D,cJT8D,EAAA,GAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EISzB,OJTyB,CAAA,IAAA,CAAA;AAE9E;AAAyB,cIWZ,YAAA,GJXY,cAAA;AACE,cIWd,aAAA,GJXc,eAAA;AAAf,cIYC,UAAA,GJZD,YAAA;AAIsC,cISrC,SAAA,GJTqC,WAAA;AAUG,iBIKrC,mBAAA,CJLqC,KAAA,CAAA,EIM3C,QJN2C,CAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA;AAWD,iBIgCpC,wBAAA,CJhCoC,OAAA,EIiCzC,UJjCyC,EAAA,KAAA,EAAA,MAAA,CAAA,EAAA,OAAA;AAWxB,iBIqDN,YJrDM,CAAA,IAAA,OAAA,CAAA,CAAA,OAAA,EIsDjB,CJtDiB,EAAA,MAAA,EIuDlB,cJvDkB,EAAA,IAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,GAAA,SAAA,EAAA,GI2DrB,YJ3DqB,CI2DR,CJ3DQ,CAAA,EAAA,GI2DD,OJ3DC,CI2DO,YJ3DP,CI2DoB,CJ3DpB,CAAA,EAAA,CAAA,EAAA,UAAA,CAAA,EAAA,MAAA,CAAA,EI6DzB,OJ7DyB,CI6DjB,aJ7DiB,CAAA;;AAAe,cIoJ9B,eJpJ8B,EAAA,OIoJf,YJpJe;AAK3C;;;KK3CY,OAAA;KACA,aAAA;ELFP,MAAA,CAAA,EAAA,MAAO;EAAA,KAAA,CAAA,EAAA,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;aAA2D,CAAA,EAAA,OAAA;;AAAO,iBKU9D,cAAA,CLV8D,OAAA,EKWnE,ULXmE,EAAA;EAAA,MAAA;EAAA,KAAA;EAAA;AAAA,CAAA,EKYjB,aLZiB,CAAA,EKa3E,OLb2E;AAEjE,iBKyBG,iBAAA,CLzBS,OAAA,EK0Bd,UL1Bc,EAAA,MAAA,CAAA,EK2Bf,aL3Be,CAAA,EAAA,IAAA;AAAA,iBKiCT,iBAAA,CLjCS,OAAA,EKiCkB,ULjClB,CAAA,EKiC+B,OLjC/B;AACE,iBKoCX,UAAA,CLpCW,KAAA,EAAA;SAAf,EKoCiC,ULpCjC;IKoCgD,OLhCV;;;;AAP7C,iBMIW,gBAAA,CNJJ,OAAA,EMI8B,UNJ9B,EAAA,KAAA,CAAA,EMIkD,ONJlD,CAAA,EAAA,GAAA,GAAA,IAAA;AAAA,iBMUI,cAAA,CNVJ,KAAA,EMU0B,QNV1B,EAAA,KAAA,CAAA,EMU4C,ONV5C,CAAA,EAAA,IAAA"}
|