@typeonce/effect-machine 0.6.0 → 0.7.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 +4 -3
- package/dist/Machine.d.ts +24 -6
- package/dist/Machine.d.ts.map +1 -1
- package/dist/Machine.js.map +1 -1
- package/dist/internal/machine/atom.d.ts +5 -0
- package/dist/internal/machine/atom.d.ts.map +1 -1
- package/dist/internal/machine/atom.js +6 -3
- package/dist/internal/machine/atom.js.map +1 -1
- package/dist/internal/machine/machine.d.ts.map +1 -1
- package/dist/internal/machine/machine.js +1 -1
- package/dist/internal/machine/machine.js.map +1 -1
- package/dist/unstable/reactivity/AtomMachine.d.ts +26 -0
- package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomMachine.js +23 -0
- package/dist/unstable/reactivity/AtomMachine.js.map +1 -1
- package/docs/agent-guide.md +14 -0
- package/package.json +5 -5
- package/src/Machine.ts +6909 -0
- package/src/index.ts +1 -0
- package/src/internal/machine/activities.ts +108 -0
- package/src/internal/machine/atom.ts +684 -0
- package/src/internal/machine/cluster.ts +394 -0
- package/src/internal/machine/command.ts +58 -0
- package/src/internal/machine/commandRuntime.ts +43 -0
- package/src/internal/machine/configuration.ts +1331 -0
- package/src/internal/machine/errors.ts +87 -0
- package/src/internal/machine/executionPlan.ts +996 -0
- package/src/internal/machine/invocation.ts +119 -0
- package/src/internal/machine/machine.ts +1750 -0
- package/src/internal/machine/planner.ts +1933 -0
- package/src/internal/machine/process.ts +906 -0
- package/src/internal/machine/protocol.ts +322 -0
- package/src/internal/machine/readiness.ts +10 -0
- package/src/internal/machine/runtime.ts +2512 -0
- package/src/internal/machine/serialization.ts +498 -0
- package/src/internal/machine/stateDefinition.ts +270 -0
- package/src/internal/machine/symbols.ts +2 -0
- package/src/internal/machine/topology.ts +479 -0
- package/src/internal/testing/machine/arbitrary.ts +102 -0
- package/src/internal/testing/machine/exploration.ts +331 -0
- package/src/internal/testing/machine/finiteModel.ts +1498 -0
- package/src/internal/testing/machine/invariant.ts +372 -0
- package/src/internal/testing/machine/probe.ts +79 -0
- package/src/internal/testing/machine/referenceModel.ts +1505 -0
- package/src/internal/testing/machine/runtime.ts +1710 -0
- package/src/internal/testing/machine/runtimeInvariant.ts +486 -0
- package/src/internal/testing/machine/trace.ts +150 -0
- package/src/internal/testing/machine/verification.ts +1890 -0
- package/src/testing/MachineTest.ts +2067 -0
- package/src/testing/index.ts +7 -0
- package/src/unstable/cluster/ClusterMachine.ts +390 -0
- package/src/unstable/cluster/index.ts +1 -0
- package/src/unstable/reactivity/AtomMachine.ts +696 -0
- package/src/unstable/reactivity/index.ts +1 -0
package/docs/agent-guide.md
CHANGED
|
@@ -357,6 +357,15 @@ States.getSnapshot(snapshot, "Route.Ready")
|
|
|
357
357
|
States.matches(snapshot, "Route.Ready.Saving")
|
|
358
358
|
```
|
|
359
359
|
|
|
360
|
+
Snapshots returned by `getSnapshot` can be queried again with `get`,
|
|
361
|
+
`getSnapshot`, or `matches`. Paths remain absolute and are restricted to the
|
|
362
|
+
extracted snapshot and its descendants:
|
|
363
|
+
|
|
364
|
+
```ts
|
|
365
|
+
const ready = Option.getOrThrow(States.getSnapshot(snapshot, "Route.Ready"))
|
|
366
|
+
States.matches(ready, "Route.Ready.Saving")
|
|
367
|
+
```
|
|
368
|
+
|
|
360
369
|
All paths are checked against the definition. `context.parent` is the immediate
|
|
361
370
|
typed parent (`undefined` at a root). Use `parents` when another ancestor is
|
|
362
371
|
needed:
|
|
@@ -642,11 +651,16 @@ the `DefinedStates` object:
|
|
|
642
651
|
|
|
643
652
|
```ts
|
|
644
653
|
AtomMachine.select(machineAtom, "Ready")
|
|
654
|
+
AtomMachine.selectSnapshot(machineAtom, "Ready")
|
|
645
655
|
AtomMachine.matches(machineAtom, "Ready.Saving")
|
|
646
656
|
AtomMachine.selectChild(childAtom, "Editing")
|
|
657
|
+
AtomMachine.selectSnapshotChild(childAtom, "Editing")
|
|
647
658
|
AtomMachine.matchesChild(childAtom, "Editing")
|
|
648
659
|
```
|
|
649
660
|
|
|
661
|
+
`select` returns only the decoded state value. Use `selectSnapshot` when a
|
|
662
|
+
component needs the selected node's compound or parallel child topology.
|
|
663
|
+
|
|
650
664
|
Like ordinary Effect Atom combinators, each selector call returns a derived
|
|
651
665
|
atom. Define it at a stable composition boundary or memoize it when constructing
|
|
652
666
|
it inside a component.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typeonce/effect-machine",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Schema-first state machines and statecharts for Effect",
|
|
5
5
|
"author": "Sandro Maglione",
|
|
6
6
|
"repository": {
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"license": "MIT",
|
|
16
16
|
"sideEffects": false,
|
|
17
17
|
"files": [
|
|
18
|
+
"src/**/*.ts",
|
|
18
19
|
"dist",
|
|
19
20
|
"docs",
|
|
20
21
|
"README.md",
|
|
@@ -58,9 +59,7 @@
|
|
|
58
59
|
"tstyche": "7.2.1",
|
|
59
60
|
"typedoc": "0.28.20",
|
|
60
61
|
"typescript": "6.0.3",
|
|
61
|
-
"vitest": "4.1.10"
|
|
62
|
-
"xstate-v5": "npm:xstate@5.32.5",
|
|
63
|
-
"xstate-v6": "npm:xstate@6.0.0-alpha.36"
|
|
62
|
+
"vitest": "4.1.10"
|
|
64
63
|
},
|
|
65
64
|
"engines": {
|
|
66
65
|
"node": ">=20"
|
|
@@ -70,6 +69,7 @@
|
|
|
70
69
|
"test": "vitest run",
|
|
71
70
|
"test:types": "tstyche",
|
|
72
71
|
"check:architecture": "node --test scripts/check-architecture.test.mjs && node scripts/check-architecture.mjs",
|
|
72
|
+
"check:ci": "node --test scripts/ci-changes.test.mjs scripts/runtime-performance-regression.test.mjs",
|
|
73
73
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
74
74
|
"perf:types": "pnpm build && node scripts/type-performance.mjs",
|
|
75
75
|
"perf:runtime": "pnpm build && node --expose-gc scripts/runtime-performance.mjs",
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"docs:site:serve": "node scripts/api-reference-site/serve.mjs",
|
|
85
85
|
"test:consumer": "node scripts/test-consumer.mjs",
|
|
86
86
|
"pack:check": "node scripts/pack-check.mjs",
|
|
87
|
-
"check": "pnpm format:check && pnpm check:architecture && pnpm docs:api:check && pnpm docs:site:check && pnpm typecheck && pnpm build && pnpm test && pnpm test:types && pnpm test:consumer && pnpm pack:check",
|
|
87
|
+
"check": "pnpm format:check && pnpm check:architecture && pnpm check:ci && pnpm docs:api:check && pnpm docs:site:check && pnpm typecheck && pnpm build && pnpm test && pnpm test:types && pnpm test:consumer && pnpm pack:check",
|
|
88
88
|
"changeset": "changeset",
|
|
89
89
|
"version-packages": "changeset version",
|
|
90
90
|
"release": "pnpm build && changeset publish"
|