@statewalker/fsm 0.37.0 → 0.38.1
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 +215 -70
- package/dist/index.d.ts +353 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +532 -4
- package/dist/index.js.map +1 -1
- package/package.json +5 -15
- package/src/core/fsm-base-class.ts +25 -0
- package/src/core/fsm-process.ts +73 -18
- package/src/core/fsm-state-config.ts +27 -0
- package/src/core/fsm-state-descriptor.ts +21 -0
- package/src/core/fsm-state.ts +31 -1
- package/src/core/fsm-transitions.ts +75 -0
- package/src/core/index.ts +1 -0
- package/src/index.ts +2 -2
- package/src/{orchestrator/start-process.ts → start-process.ts} +60 -63
- package/src/{utils → trace}/printer.ts +20 -0
- package/src/{utils → trace}/tracer.ts +11 -0
- package/bin/cli.js +0 -5
- package/dist/bin/node-runner-UJp8T_oP.d.ts +0 -16
- package/dist/bin/node-runner-UJp8T_oP.d.ts.map +0 -1
- package/dist/bin/node-runner.js +0 -40
- package/dist/bin/node-runner.js.map +0 -1
- package/dist/index-vTjnkbGW.d.ts +0 -129
- package/dist/index-vTjnkbGW.d.ts.map +0 -1
- package/dist/launcher-6VUDviTj.d.ts +0 -48
- package/dist/launcher-6VUDviTj.d.ts.map +0 -1
- package/dist/launcher-CASrMAOa.js +0 -443
- package/dist/launcher-CASrMAOa.js.map +0 -1
- package/src/bin/node-runner.ts +0 -57
- package/src/orchestrator/handler-registry.ts +0 -108
- package/src/orchestrator/index.ts +0 -15
- package/src/orchestrator/launcher.ts +0 -73
- /package/src/{utils → trace}/index.ts +0 -0
|
@@ -1,74 +1,49 @@
|
|
|
1
|
-
import { FsmProcess, type FsmProcessDump } from "
|
|
2
|
-
import type { FsmState } from "
|
|
3
|
-
import type { FsmStateConfig } from "
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { FsmProcess, type FsmProcessDump } from "./core/fsm-process.ts";
|
|
2
|
+
import type { FsmState } from "./core/fsm-state.ts";
|
|
3
|
+
import type { FsmStateConfig } from "./core/fsm-state-config.ts";
|
|
4
|
+
import { isStateTransitionEnabled } from "./core/fsm-transitions.ts";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Per-state behaviour contract used by `startProcess`. One function shape expresses
|
|
8
|
+
* what to do while in a state, and its *return value* wires up the rest, so a state's
|
|
9
|
+
* setup and teardown live together. The handler runs on entry with the shared
|
|
10
|
+
* `context` and may return:
|
|
11
|
+
* - nothing — no teardown;
|
|
12
|
+
* - a cleanup `function` — registered as this state's `onExit`;
|
|
13
|
+
* - an async/sync generator — run concurrently, each yielded string dispatched back
|
|
14
|
+
* into the machine (self-driving/reactive states), auto-`return()`ed on exit.
|
|
15
|
+
*/
|
|
16
|
+
export type StageHandler<C = Record<string, unknown>> = (
|
|
17
|
+
context: C,
|
|
18
|
+
) =>
|
|
19
|
+
| void
|
|
20
|
+
| (() => void | Promise<void>)
|
|
21
|
+
| Promise<void | (() => void | Promise<void>)>
|
|
22
|
+
| AsyncGenerator<string, void, unknown>
|
|
23
|
+
| Generator<string, void, unknown>;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* The caller's remote control returned by `startProcess`: stop the machine and
|
|
27
|
+
* snapshot/rehydrate it without holding a reference to the underlying `FsmProcess`.
|
|
28
|
+
*/
|
|
7
29
|
export interface ProcessHandle {
|
|
8
30
|
shutdown(): Promise<void>;
|
|
9
31
|
dump(...args: unknown[]): Promise<FsmProcessDump>;
|
|
10
32
|
restore(dump: FsmProcessDump, ...args: unknown[]): Promise<void>;
|
|
11
33
|
}
|
|
12
34
|
|
|
13
|
-
// Context keys
|
|
35
|
+
// Context keys under which `startProcess` binds the machine into the shared context
|
|
36
|
+
// object. Why via context (not closures): handlers reach the running machine
|
|
37
|
+
// uniformly — `(ctx[KEY_DISPATCH])(event)` — regardless of where they are defined.
|
|
38
|
+
/** Context key: `(event) => Promise<void>` that dispatches an event (guarded). */
|
|
14
39
|
export const KEY_DISPATCH = "fsm:dispatch";
|
|
40
|
+
/** Context key: `() => Promise<void>` that shuts the machine down. */
|
|
15
41
|
export const KEY_TERMINATE = "fsm:terminate";
|
|
42
|
+
/** Context key: the current state-key stack (root→leaf), refreshed on every transition. */
|
|
16
43
|
export const KEY_STATES = "fsm:states";
|
|
44
|
+
/** Context key: the last dispatched event. */
|
|
17
45
|
export const KEY_EVENT = "fsm:event";
|
|
18
46
|
|
|
19
|
-
// ---------------------------------------------------------------------------
|
|
20
|
-
// Transition introspection
|
|
21
|
-
// ---------------------------------------------------------------------------
|
|
22
|
-
|
|
23
|
-
export function getStateTransitions(
|
|
24
|
-
state?: FsmState,
|
|
25
|
-
): [from: string, event: string, to: string][] {
|
|
26
|
-
const result: [from: string, event: string, to: string][] = [];
|
|
27
|
-
const index: Record<string, boolean> = {};
|
|
28
|
-
if (state) {
|
|
29
|
-
let prevStateKey = state.key;
|
|
30
|
-
for (let parent = state.parent; parent; parent = parent.parent) {
|
|
31
|
-
if (!parent.descriptor) continue;
|
|
32
|
-
result.push(
|
|
33
|
-
...getTransitionsFromDescriptor(parent.descriptor, prevStateKey, index),
|
|
34
|
-
);
|
|
35
|
-
prevStateKey = parent.key;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return result.reverse();
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function getTransitionsFromDescriptor(
|
|
42
|
-
descriptor: FsmStateDescriptor,
|
|
43
|
-
prevStateKey: string,
|
|
44
|
-
index: Record<string, boolean>,
|
|
45
|
-
): [from: string, event: string, to: string][] {
|
|
46
|
-
const result: [from: string, event: string, to: string][] = [];
|
|
47
|
-
const prevStateKeys = [prevStateKey, "*"];
|
|
48
|
-
for (const prevKey of prevStateKeys) {
|
|
49
|
-
const targets = descriptor.transitions[prevKey];
|
|
50
|
-
if (targets) {
|
|
51
|
-
for (const [event, target] of Object.entries(targets)) {
|
|
52
|
-
if (index[event]) continue;
|
|
53
|
-
if (target) index[event] = true;
|
|
54
|
-
result.push([prevStateKey, event, target]);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return result;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export function isStateTransitionEnabled(
|
|
62
|
-
process: FsmProcess,
|
|
63
|
-
event: string,
|
|
64
|
-
): boolean {
|
|
65
|
-
const transitions = getStateTransitions(process.state);
|
|
66
|
-
for (const [, ev] of transitions) {
|
|
67
|
-
if (ev === event) return true;
|
|
68
|
-
}
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
47
|
// ---------------------------------------------------------------------------
|
|
73
48
|
// Generator detection
|
|
74
49
|
// ---------------------------------------------------------------------------
|
|
@@ -90,6 +65,24 @@ function isGenerator(
|
|
|
90
65
|
// startProcess (also exported as startFsmProcess for backward compat)
|
|
91
66
|
// ---------------------------------------------------------------------------
|
|
92
67
|
|
|
68
|
+
/**
|
|
69
|
+
* Ergonomic runner: build a machine, attach behaviour via one `load` callback, and
|
|
70
|
+
* bind the machine into `context`.
|
|
71
|
+
*
|
|
72
|
+
* Doing this by hand (`new FsmProcess` + `onStateCreate` + `onEnter` + a loader +
|
|
73
|
+
* context wiring) is boilerplate every consumer repeats, so `startProcess` does it
|
|
74
|
+
* once — most callers use this instead of the raw engine. It creates the process; on
|
|
75
|
+
* each state entry calls `load(stateKey, event)` and installs the returned
|
|
76
|
+
* `StageHandler`s (their return values become `onExit` cleanups or event-yielding
|
|
77
|
+
* generators — see `StageHandler`); binds `KEY_DISPATCH` / `KEY_TERMINATE` /
|
|
78
|
+
* `KEY_STATES` / `KEY_EVENT` into `context`; dispatches `startEvent` to enter the
|
|
79
|
+
* initial state; and returns a `ProcessHandle`.
|
|
80
|
+
*
|
|
81
|
+
* @param context shared object handlers read/write and the machine is bound into
|
|
82
|
+
* @param config the declarative machine definition
|
|
83
|
+
* @param load returns the handler(s) to run for a given `(stateKey, event)`
|
|
84
|
+
* @param startEvent initial event (default `""`, the eventless start)
|
|
85
|
+
*/
|
|
93
86
|
export async function startProcess<C = unknown>(
|
|
94
87
|
context: C,
|
|
95
88
|
config: FsmStateConfig,
|
|
@@ -126,8 +119,12 @@ export async function startProcess<C = unknown>(
|
|
|
126
119
|
await dispatch(event);
|
|
127
120
|
if (stateExited || terminated) break;
|
|
128
121
|
}
|
|
129
|
-
} catch {
|
|
130
|
-
//
|
|
122
|
+
} catch (error) {
|
|
123
|
+
// A generator `return()` during state exit / termination throws an
|
|
124
|
+
// abort we intentionally swallow; a genuine error thrown by the
|
|
125
|
+
// generator body must surface through the state's error handling
|
|
126
|
+
// rather than vanish.
|
|
127
|
+
if (!stateExited && !terminated) await state._handleError(error);
|
|
131
128
|
}
|
|
132
129
|
})();
|
|
133
130
|
} else if (typeof result === "function") {
|
|
@@ -184,5 +181,5 @@ export async function startProcess<C = unknown>(
|
|
|
184
181
|
};
|
|
185
182
|
}
|
|
186
183
|
|
|
187
|
-
/** @
|
|
184
|
+
/** Permanent equal alias of {@link startProcess} — the name existing consumers import. */
|
|
188
185
|
export const startFsmProcess = startProcess;
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import type { FsmProcess } from "../core/fsm-process.ts";
|
|
2
|
+
|
|
3
|
+
/** A sink for trace output — anything shaped like `console.log`. */
|
|
2
4
|
export type Printer = (...args: unknown[]) => void;
|
|
5
|
+
/**
|
|
6
|
+
* Tuning for a `Printer`.
|
|
7
|
+
* - `prefix` — string prepended to every line (e.g. a process tag).
|
|
8
|
+
* - `print` — the underlying sink (defaults to `console.log`).
|
|
9
|
+
* - `lineNumbers` — prepend an incrementing `[n]` counter.
|
|
10
|
+
*/
|
|
3
11
|
export type PrinterConfig = {
|
|
4
12
|
prefix?: string;
|
|
5
13
|
print?: (...args: unknown[]) => void;
|
|
@@ -8,6 +16,11 @@ export type PrinterConfig = {
|
|
|
8
16
|
|
|
9
17
|
const printerStore = new WeakMap<object, Printer>();
|
|
10
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Build a `Printer` bound to `process` that indents each line by the current state
|
|
21
|
+
* nesting depth (two spaces per level), so log output visually mirrors the state
|
|
22
|
+
* tree — hierarchical indentation makes enter/exit traces readable at a glance.
|
|
23
|
+
*/
|
|
11
24
|
export function preparePrinter(
|
|
12
25
|
process: FsmProcess,
|
|
13
26
|
{ prefix = "", print = console.log, lineNumbers = false }: PrinterConfig,
|
|
@@ -25,6 +38,11 @@ export function preparePrinter(
|
|
|
25
38
|
return printer;
|
|
26
39
|
}
|
|
27
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Attach a printer to `process` (stored in a weak map so it is GC'd with the
|
|
43
|
+
* process). Handlers/tracers then reach it via {@link getProcessPrinter} /
|
|
44
|
+
* {@link getPrinter} rather than threading a logger through every call.
|
|
45
|
+
*/
|
|
28
46
|
export function setProcessPrinter(
|
|
29
47
|
process: FsmProcess,
|
|
30
48
|
config: PrinterConfig = {},
|
|
@@ -33,10 +51,12 @@ export function setProcessPrinter(
|
|
|
33
51
|
printerStore.set(process, printer);
|
|
34
52
|
}
|
|
35
53
|
|
|
54
|
+
/** The printer attached to `process`, or `console.log` if none was set. */
|
|
36
55
|
export function getProcessPrinter(process: FsmProcess): Printer {
|
|
37
56
|
return printerStore.get(process) || console.log;
|
|
38
57
|
}
|
|
39
58
|
|
|
59
|
+
/** The printer for a state — its own if set, else its process's (see {@link getProcessPrinter}). */
|
|
40
60
|
export function getPrinter(state: { process: FsmProcess }): Printer {
|
|
41
61
|
return printerStore.get(state) || getProcessPrinter(state.process);
|
|
42
62
|
}
|
|
@@ -2,12 +2,23 @@ import type { FsmProcess } from "../core/fsm-process.ts";
|
|
|
2
2
|
import type { FsmState } from "../core/fsm-state.ts";
|
|
3
3
|
import { getPrinter, type Printer } from "./printer.ts";
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Trace every state of `process`: as each state is created, attach a state tracer —
|
|
7
|
+
* so you can watch the machine move as a readable stream of enter/exit markers
|
|
8
|
+
* without editing any handler. Hooks `onStateCreate` and delegates to
|
|
9
|
+
* {@link setStateTracer}; pass a `print` sink to override the process printer.
|
|
10
|
+
*/
|
|
5
11
|
export function setProcessTracer(process: FsmProcess, print?: Printer) {
|
|
6
12
|
return process.onStateCreate((state: FsmState) => {
|
|
7
13
|
setStateTracer(state, print);
|
|
8
14
|
});
|
|
9
15
|
}
|
|
10
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Trace one state's lifecycle: emit `<key event="…">` on enter and `</key>` on exit
|
|
19
|
+
* (XML-like, so nested states read as nested tags). Falls back to the state's
|
|
20
|
+
* printer ({@link getPrinter}) when no `print` sink is given.
|
|
21
|
+
*/
|
|
11
22
|
export function setStateTracer(state: FsmState, print?: Printer) {
|
|
12
23
|
state.onEnter(() => {
|
|
13
24
|
const printLine = print || getPrinter(state);
|
package/bin/cli.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/bin/node-runner.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/index-vTjnkbGW.d.ts
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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":"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"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
//#region src/core/fsm-state-config.d.ts
|
|
2
|
-
declare const STATE_ANY = "*";
|
|
3
|
-
declare const STATE_INITIAL = "";
|
|
4
|
-
declare const STATE_FINAL = "";
|
|
5
|
-
declare const EVENT_ANY = "*";
|
|
6
|
-
declare const EVENT_EMPTY = "";
|
|
7
|
-
type FsmStateKey = string;
|
|
8
|
-
type FsmEventKey = string;
|
|
9
|
-
type FsmStateConfig = {
|
|
10
|
-
key: FsmStateKey;
|
|
11
|
-
transitions?: [from: FsmStateKey, event: FsmEventKey, to: FsmStateKey][];
|
|
12
|
-
states?: FsmStateConfig[];
|
|
13
|
-
} & Record<string, unknown>;
|
|
14
|
-
//# sourceMappingURL=fsm-state-config.d.ts.map
|
|
15
|
-
//#endregion
|
|
16
|
-
//#region src/orchestrator/handler-registry.d.ts
|
|
17
|
-
/** A handler invoked when a state is entered. */
|
|
18
|
-
type StageHandler<C = Record<string, unknown>> = (context: C) => void | (() => void | Promise<void>) | Promise<void | (() => void | Promise<void>)> | AsyncGenerator<string, void, unknown> | Generator<string, void, unknown>;
|
|
19
|
-
/** Maps a state key to a handler module key for auto-discovery. */
|
|
20
|
-
type PatternFn = (state: string) => string;
|
|
21
|
-
interface HandlerRegistry {
|
|
22
|
-
register(processName: string, config: FsmStateConfig): () => void;
|
|
23
|
-
registerHandlers(processName: string, ...modules: unknown[]): () => void;
|
|
24
|
-
getConfig(processName: string): FsmStateConfig;
|
|
25
|
-
getLoader<C>(processName: string, patterns?: PatternFn[]): (state: string, event?: string) => StageHandler<C>[];
|
|
26
|
-
}
|
|
27
|
-
declare function createHandlerRegistry(): HandlerRegistry;
|
|
28
|
-
declare function toStageHandlers<C>(value: unknown, accept: (key: string, value: unknown) => boolean): StageHandler<C>[];
|
|
29
|
-
//#endregion
|
|
30
|
-
//#region src/orchestrator/launcher.d.ts
|
|
31
|
-
declare const KEY_LAUNCH_PROCESS = "fsm:launch";
|
|
32
|
-
interface LauncherConfig {
|
|
33
|
-
processes: ProcessDef[];
|
|
34
|
-
start?: string[];
|
|
35
|
-
context?: (parent: Record<string, unknown>) => Record<string, unknown>;
|
|
36
|
-
}
|
|
37
|
-
interface ProcessDef {
|
|
38
|
-
name: string;
|
|
39
|
-
config: FsmStateConfig;
|
|
40
|
-
handlers?: (StageHandler | Record<string, StageHandler | StageHandler[]>)[];
|
|
41
|
-
start?: boolean;
|
|
42
|
-
}
|
|
43
|
-
declare function launcher(config: LauncherConfig): Promise<() => Promise<void>>;
|
|
44
|
-
//# sourceMappingURL=launcher.d.ts.map
|
|
45
|
-
|
|
46
|
-
//#endregion
|
|
47
|
-
export { HandlerRegistry as a, toStageHandlers as c, FsmEventKey as d, FsmStateConfig as f, STATE_INITIAL as g, STATE_FINAL as h, launcher as i, EVENT_ANY as l, STATE_ANY as m, LauncherConfig as n, StageHandler as o, FsmStateKey as p, ProcessDef as r, createHandlerRegistry as s, KEY_LAUNCH_PROCESS as t, EVENT_EMPTY as u };
|
|
48
|
-
//# sourceMappingURL=launcher-6VUDviTj.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"launcher-6VUDviTj.d.ts","names":[],"sources":["../src/core/fsm-state-config.ts","../src/orchestrator/handler-registry.ts","../src/orchestrator/launcher.ts"],"mappings":";cAAa,SAAA;AAAA,cACA,aAAA,GADS,EAAA;AACT,cACA,WAAA,GADa,EAAA;AACb,cACA,SAAA,GADW,GAAA;AACX,cACA,WAAA,GADS,EAAA;AACT,KAED,WAAA,GAFY,MAAA;AAEZ,KACA,WAAA,GADW,MAAA;AACX,KACA,cAAA,GADW;EACX,GAAA,EACL,WADK;EAAc,WAAA,CAAA,EAAA,CAAA,IAAA,EAEH,WAFG,EAAA,KAAA,EAEiB,WAFjB,EAAA,EAAA,EAEkC,WAFlC,CAAA,EAAA;QACnB,CAAA,EAEI,cAFJ,EAAA;IAGH,MAFmB,CAAA,MAAA,EAAA,OAAA,CAAA;;;;AAVvB;AACa,KCED,YDFc,CAAA,ICEG,MDFH,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,GAAA,CAAA,OAAA,ECGf,CDHe,EAAA,GAAA,IAAA,GAAA,CAAA,GAAA,GAAA,IAAA,GCMR,ODNQ,CAAA,IAAA,CAAA,CAAA,GCOtB,ODPsB,CAAA,IAAA,GAAA,CAAA,GAAA,GAAA,IAAA,GCOO,ODPP,CAAA,IAAA,CAAA,CAAA,CAAA,GCQtB,cDRsB,CAAA,MAAA,EAAA,IAAA,EAAA,OAAA,CAAA,GCStB,SDTsB,CAAA,MAAA,EAAA,IAAA,EAAA,OAAA,CAAA;AAC1B;AACA,KCUK,SAAA,GDViB,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,MAAA;AACT,UCkBI,eAAA,CDlBO;EAEZ,QAAA,CAAA,WAAW,EAAA,MAAA,EAAA,MAAA,ECiBiB,cDjBjB,CAAA,EAAA,GAAA,GAAA,IAAA;EACX,gBAAW,CAAA,WAAA,EAAA,MAAA,EAAA,GAAA,OAAA,EAAA,OAAA,EAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACX,SAAA,CAAA,WAAc,EAAA,MAAA,CAAA,ECiBQ,cDjBR;EAAA,SAAA,CAAA,CAAA,CAAA,CAAA,WAAA,EAAA,MAAA,EAAA,QAAA,CAAA,ECoBX,SDpBW,EAAA,CAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,MAAA,EAAA,GCqBc,YDrBd,CCqB2B,CDrB3B,CAAA,EAAA;;AAEH,iBCsBP,qBAAA,CAAA,CDtBO,ECsBkB,eDtBlB;AAAoB,iBCiF3B,eDjF2B,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,OAAA,CAAA,ECoFxC,YDpFwC,CCoF3B,CDpF2B,CAAA,EAAA;;;AAT9B,cEIA,kBAAA,GFJa,YAAA;AACb,UEKI,cAAA,CFLO;EACX,SAAA,EEKA,UFLS,EAAA;EACT,KAAA,CAAA,EAAA,MAAW,EAAA;EAEZ,OAAA,CAAA,EAAA,CAAA,MAAW,EEIF,MFJE,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GEI0B,MFJ1B,CAAA,MAAA,EAAA,OAAA,CAAA;AACvB;AACY,UEKK,UAAA,CFLS;EAAA,IAAA,EAAA,MAAA;QACnB,EEMG,cFNH;UACgB,CAAA,EAAA,CEMT,YFNS,GEMM,MFNN,CAAA,MAAA,EEMqB,YFNrB,GEMoC,YFNpC,EAAA,CAAA,CAAA,EAAA;OAAoB,CAAA,EAAA,OAAA;;AAChC,iBESW,QAAA,CFTX,MAAA,EEUD,cFVC,CAAA,EEWR,OFXQ,CAAA,GAAA,GEWM,OFXN,CAAA,IAAA,CAAA,CAAA"}
|