@xmachines/play-xstate 1.0.0 → 2.0.0-alpha.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 +77 -24
- package/dist/define-player.d.ts +3 -3
- package/dist/define-player.js +3 -3
- package/dist/define-player.typecheck.js +10 -10
- package/dist/define-player.typecheck.js.map +1 -1
- package/dist/errors.d.ts +38 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +45 -0
- package/dist/errors.js.map +1 -1
- package/dist/guards/compose.d.ts +59 -41
- package/dist/guards/compose.d.ts.map +1 -1
- package/dist/guards/compose.js +97 -69
- package/dist/guards/compose.js.map +1 -1
- package/dist/guards/compose.typecheck.d.ts +2 -0
- package/dist/guards/compose.typecheck.d.ts.map +1 -0
- package/dist/guards/compose.typecheck.js +22 -0
- package/dist/guards/compose.typecheck.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/player-actor.d.ts +3 -3
- package/dist/player-actor.d.ts.map +1 -1
- package/dist/player-actor.js +15 -9
- package/dist/player-actor.js.map +1 -1
- package/dist/player-actor.typecheck.js +8 -5
- package/dist/player-actor.typecheck.js.map +1 -1
- package/dist/routing/create-routed-machine.d.ts +71 -0
- package/dist/routing/create-routed-machine.d.ts.map +1 -0
- package/dist/routing/create-routed-machine.js +71 -0
- package/dist/routing/create-routed-machine.js.map +1 -0
- package/dist/routing/derive-initial-route.d.ts +1 -1
- package/dist/routing/derive-initial-route.js +1 -1
- package/dist/routing/format-play-route-transitions.d.ts +54 -11
- package/dist/routing/format-play-route-transitions.d.ts.map +1 -1
- package/dist/routing/format-play-route-transitions.js +125 -52
- package/dist/routing/format-play-route-transitions.js.map +1 -1
- package/dist/routing/index.d.ts +4 -0
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/index.js +2 -0
- package/dist/routing/index.js.map +1 -1
- package/dist/routing/play-route-event.typecheck.d.ts +2 -0
- package/dist/routing/play-route-event.typecheck.d.ts.map +1 -0
- package/dist/routing/play-route-event.typecheck.js +43 -0
- package/dist/routing/play-route-event.typecheck.js.map +1 -0
- package/dist/routing/schemas.d.ts +99 -0
- package/dist/routing/schemas.d.ts.map +1 -0
- package/dist/routing/schemas.js +30 -0
- package/dist/routing/schemas.js.map +1 -0
- package/dist/schemas.d.ts +28 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +29 -0
- package/dist/schemas.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/package.json +9 -9
package/dist/guards/compose.js
CHANGED
|
@@ -1,23 +1,60 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { EmptyGuardArrayError } from "../errors.js";
|
|
1
|
+
import { EmptyGuardArrayError, InvalidGuardEntryError, UnresolvableGuardNameError, } from "../errors.js";
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Resolve a guard entry (predicate or setup guard name) to an evaluator thunk.
|
|
4
|
+
*
|
|
5
|
+
* The predicate-vs-name discrimination happens once at compose time; only the
|
|
6
|
+
* `args.guards` lookup for string names stays at call time, preserving the
|
|
7
|
+
* documented late-binding semantics. `origin` names the combinator that built
|
|
8
|
+
* the guard, so thrown errors report the correct `scope`.
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
const toEvaluator = (guard, origin) => {
|
|
13
|
+
if (typeof guard === "function") {
|
|
14
|
+
return (args) => Boolean(guard(args));
|
|
15
|
+
}
|
|
16
|
+
if (typeof guard === "string") {
|
|
17
|
+
return (args) => {
|
|
18
|
+
const named = args?.guards?.[guard];
|
|
19
|
+
if (typeof named !== "function") {
|
|
20
|
+
throw new UnresolvableGuardNameError(guard, origin);
|
|
21
|
+
}
|
|
22
|
+
return Boolean(named(args));
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
// XState v5 failed loudly when EVALUATING a nullish guard entry — silently
|
|
26
|
+
// treating it as never-passing would turn negateGuard(undefined) into an
|
|
27
|
+
// always-allow. Composition stays lazy; evaluation throws.
|
|
28
|
+
return () => {
|
|
29
|
+
throw new InvalidGuardEntryError(typeof guard, origin);
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Compose guards with AND logic.
|
|
5
34
|
*
|
|
6
35
|
* Combines multiple guard predicates using AND semantics—all guards must pass for
|
|
7
|
-
* the composition to succeed.
|
|
8
|
-
* type inference and machine serialization.
|
|
36
|
+
* the composition to succeed. Evaluation is short-circuiting, left to right.
|
|
9
37
|
*
|
|
10
38
|
* **Architectural Context:** Supports **Actor Authority (INV-01)** by enabling
|
|
11
39
|
* declarative guard composition in state machine transitions. Guards enforce business
|
|
12
40
|
* logic rules that determine whether navigation or actions are valid.
|
|
13
41
|
*
|
|
14
|
-
*
|
|
42
|
+
* **XState v6:** the composed value is a plain predicate. Call it inside a
|
|
43
|
+
* transition function and return early to block the transition:
|
|
44
|
+
*
|
|
45
|
+
* @typeParam TContext - State machine context type (defaults to `any` so the
|
|
46
|
+
* documented inline-predicate examples compile without annotations)
|
|
15
47
|
* @typeParam TEvent - Event type
|
|
16
48
|
*
|
|
17
|
-
* @
|
|
18
|
-
*
|
|
49
|
+
* @typeParam TContext - State machine context type (defaults to `any` so the
|
|
50
|
+
* documented inline-predicate examples compile without annotations)
|
|
51
|
+
* @typeParam TEvent - Event type
|
|
52
|
+
*
|
|
53
|
+
* @param guards - Array of guard predicates or guard names (string references
|
|
54
|
+
* resolved against `args.guards` from `setup({ guards })`)
|
|
55
|
+
* @returns Predicate returning `true` only when every guard passes
|
|
19
56
|
*
|
|
20
|
-
* @throws {
|
|
57
|
+
* @throws {EmptyGuardArrayError} If guards array is empty
|
|
21
58
|
*
|
|
22
59
|
* @example
|
|
23
60
|
* AND composition with named guards
|
|
@@ -25,6 +62,8 @@ import { EmptyGuardArrayError } from "../errors.js";
|
|
|
25
62
|
* import { setup } from "xstate";
|
|
26
63
|
* import { composeGuards } from "@xmachines/play-xstate";
|
|
27
64
|
*
|
|
65
|
+
* const canAccessAdmin = composeGuards(['isLoggedIn', 'hasPermission']);
|
|
66
|
+
*
|
|
28
67
|
* const machine = setup({
|
|
29
68
|
* guards: {
|
|
30
69
|
* isLoggedIn: ({ context }) => !!context.userId,
|
|
@@ -32,10 +71,9 @@ import { EmptyGuardArrayError } from "../errors.js";
|
|
|
32
71
|
* }
|
|
33
72
|
* }).createMachine({
|
|
34
73
|
* on: {
|
|
35
|
-
* accessAdmin: {
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* target: 'adminPanel'
|
|
74
|
+
* accessAdmin: (args) => {
|
|
75
|
+
* if (!canAccessAdmin(args)) return;
|
|
76
|
+
* return { target: 'adminPanel' };
|
|
39
77
|
* }
|
|
40
78
|
* }
|
|
41
79
|
* });
|
|
@@ -46,10 +84,10 @@ import { EmptyGuardArrayError } from "../errors.js";
|
|
|
46
84
|
* ```typescript
|
|
47
85
|
* import { composeGuards } from "@xmachines/play-xstate";
|
|
48
86
|
*
|
|
49
|
-
*
|
|
87
|
+
* const isEligible = composeGuards([
|
|
50
88
|
* ({ context }) => context.age >= 18,
|
|
51
89
|
* ({ context }) => context.verified
|
|
52
|
-
* ])
|
|
90
|
+
* ]);
|
|
53
91
|
* ```
|
|
54
92
|
*
|
|
55
93
|
* @see {@link composeGuardsOr} for OR composition
|
|
@@ -60,36 +98,29 @@ export const composeGuards = (guards) => {
|
|
|
60
98
|
if (guards.length === 0) {
|
|
61
99
|
throw new EmptyGuardArrayError("and");
|
|
62
100
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
// At runtime both are plain function objects with identical shape.
|
|
67
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
68
|
-
return guards[0];
|
|
101
|
+
const evaluators = guards.map((guard) => toEvaluator(guard, "composeGuards"));
|
|
102
|
+
if (evaluators.length === 1) {
|
|
103
|
+
return evaluators[0];
|
|
69
104
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return and(guards);
|
|
105
|
+
return (args) => {
|
|
106
|
+
for (const evaluate of evaluators) {
|
|
107
|
+
if (!evaluate(args))
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
return true;
|
|
111
|
+
};
|
|
78
112
|
};
|
|
79
113
|
/**
|
|
80
|
-
* Compose guards with OR logic
|
|
114
|
+
* Compose guards with OR logic.
|
|
81
115
|
*
|
|
82
116
|
* Combines multiple guard predicates using OR semantics—at least one guard must pass
|
|
83
|
-
* for the composition to succeed.
|
|
84
|
-
* type inference.
|
|
117
|
+
* for the composition to succeed. Evaluation is short-circuiting, left to right.
|
|
85
118
|
*
|
|
86
|
-
* @
|
|
87
|
-
*
|
|
119
|
+
* @param guards - Array of guard predicates or guard names (string references
|
|
120
|
+
* resolved against `args.guards` from `setup({ guards })`)
|
|
121
|
+
* @returns Predicate returning `true` when any guard passes
|
|
88
122
|
*
|
|
89
|
-
* @
|
|
90
|
-
* @returns XState or() guard composition
|
|
91
|
-
*
|
|
92
|
-
* @throws {Error} If guards array is empty
|
|
123
|
+
* @throws {EmptyGuardArrayError} If guards array is empty
|
|
93
124
|
*
|
|
94
125
|
* @example
|
|
95
126
|
* OR composition with named guards
|
|
@@ -97,6 +128,8 @@ export const composeGuards = (guards) => {
|
|
|
97
128
|
* import { setup } from "xstate";
|
|
98
129
|
* import { composeGuardsOr } from "@xmachines/play-xstate";
|
|
99
130
|
*
|
|
131
|
+
* const canDelete = composeGuardsOr(['isOwner', 'isAdmin']);
|
|
132
|
+
*
|
|
100
133
|
* const machine = setup({
|
|
101
134
|
* guards: {
|
|
102
135
|
* isOwner: ({ context }) => context.role === 'owner',
|
|
@@ -104,10 +137,9 @@ export const composeGuards = (guards) => {
|
|
|
104
137
|
* }
|
|
105
138
|
* }).createMachine({
|
|
106
139
|
* on: {
|
|
107
|
-
* deleteResource: {
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
* actions: 'delete'
|
|
140
|
+
* deleteResource: (args, enq) => {
|
|
141
|
+
* if (!canDelete(args)) return;
|
|
142
|
+
* enq(() => deleteIt());
|
|
111
143
|
* }
|
|
112
144
|
* }
|
|
113
145
|
* });
|
|
@@ -121,31 +153,30 @@ export const composeGuardsOr = (guards) => {
|
|
|
121
153
|
if (guards.length === 0) {
|
|
122
154
|
throw new EmptyGuardArrayError("or");
|
|
123
155
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
// At runtime both are plain function objects with identical shape.
|
|
128
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
129
|
-
return guards[0];
|
|
156
|
+
const evaluators = guards.map((guard) => toEvaluator(guard, "composeGuardsOr"));
|
|
157
|
+
if (evaluators.length === 1) {
|
|
158
|
+
return evaluators[0];
|
|
130
159
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
160
|
+
return (args) => {
|
|
161
|
+
for (const evaluate of evaluators) {
|
|
162
|
+
if (evaluate(args))
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
165
|
+
return false;
|
|
166
|
+
};
|
|
137
167
|
};
|
|
138
168
|
/**
|
|
139
|
-
* Negate a guard
|
|
169
|
+
* Negate a guard.
|
|
140
170
|
*
|
|
141
171
|
* Inverts a guard's result—if the guard passes, NOT fails; if guard fails, NOT passes.
|
|
142
|
-
* Uses XState's built-in `not()` helper for proper serialization.
|
|
143
172
|
*
|
|
144
|
-
* @typeParam TContext - State machine context type
|
|
173
|
+
* @typeParam TContext - State machine context type (defaults to `any` so
|
|
174
|
+
* inline predicates compile without annotations)
|
|
145
175
|
* @typeParam TEvent - Event type
|
|
146
176
|
*
|
|
147
|
-
* @param guard - Guard predicate or guard name
|
|
148
|
-
*
|
|
177
|
+
* @param guard - Guard predicate or guard name (resolved against `args.guards`
|
|
178
|
+
* from `setup({ guards })`) to negate
|
|
179
|
+
* @returns Predicate returning the inverted guard result
|
|
149
180
|
*
|
|
150
181
|
* @example
|
|
151
182
|
* NOT composition with named guard
|
|
@@ -153,16 +184,17 @@ export const composeGuardsOr = (guards) => {
|
|
|
153
184
|
* import { setup } from "xstate";
|
|
154
185
|
* import { negateGuard } from "@xmachines/play-xstate";
|
|
155
186
|
*
|
|
187
|
+
* const isAuthenticated = negateGuard('isGuest');
|
|
188
|
+
*
|
|
156
189
|
* const machine = setup({
|
|
157
190
|
* guards: {
|
|
158
191
|
* isGuest: ({ context }) => !context.userId
|
|
159
192
|
* }
|
|
160
193
|
* }).createMachine({
|
|
161
194
|
* on: {
|
|
162
|
-
* accessDashboard: {
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
* target: 'dashboard'
|
|
195
|
+
* accessDashboard: (args) => {
|
|
196
|
+
* if (!isAuthenticated(args)) return;
|
|
197
|
+
* return { target: 'dashboard' };
|
|
166
198
|
* }
|
|
167
199
|
* }
|
|
168
200
|
* });
|
|
@@ -173,11 +205,7 @@ export const composeGuardsOr = (guards) => {
|
|
|
173
205
|
*/
|
|
174
206
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
175
207
|
export const negateGuard = (guard) => {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
// escaping to `any`. The runtime value is identical.
|
|
179
|
-
// Track XState typing improvements: https://github.com/statelyai/xstate/issues
|
|
180
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
181
|
-
return not(guard);
|
|
208
|
+
const evaluate = toEvaluator(guard, "negateGuard");
|
|
209
|
+
return (args) => !evaluate(args);
|
|
182
210
|
};
|
|
183
211
|
//# sourceMappingURL=compose.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/guards/compose.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/guards/compose.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.typecheck.d.ts","sourceRoot":"","sources":["../../src/guards/compose.typecheck.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type-level contract for guard composition: declared Guard<TContext> values
|
|
3
|
+
* and inline predicates must compose without casts, exactly as the JSDoc
|
|
4
|
+
* examples show.
|
|
5
|
+
*/
|
|
6
|
+
import { composeGuards, composeGuardsOr, negateGuard } from "./compose.js";
|
|
7
|
+
const isAdult = ({ context }) => context.age >= 18;
|
|
8
|
+
// Declared typed guards compose without casts.
|
|
9
|
+
const both = composeGuards([isAdult, ({ context }) => context.verified]);
|
|
10
|
+
// The documented inline-predicate example compiles as written (no annotations).
|
|
11
|
+
const isEligible = composeGuards([
|
|
12
|
+
({ context }) => context.age >= 18,
|
|
13
|
+
({ context }) => context.verified,
|
|
14
|
+
]);
|
|
15
|
+
// OR and NOT accept typed guards too.
|
|
16
|
+
const either = composeGuardsOr([isAdult, "isVerified"]);
|
|
17
|
+
const notAdult = negateGuard(isAdult);
|
|
18
|
+
void both;
|
|
19
|
+
void isEligible;
|
|
20
|
+
void either;
|
|
21
|
+
void notAdult;
|
|
22
|
+
//# sourceMappingURL=compose.typecheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.typecheck.js","sourceRoot":"","sources":["../../src/guards/compose.typecheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAK3E,MAAM,OAAO,GAAe,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;AAE/D,+CAA+C;AAC/C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAoB,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE3F,gFAAgF;AAChF,MAAM,UAAU,GAAG,aAAa,CAAC;IAChC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE;IAClC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ;CACjC,CAAC,CAAC;AAEH,sCAAsC;AACtC,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;AACxD,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAEtC,KAAK,IAAI,CAAC;AACV,KAAK,UAAU,CAAC;AAChB,KAAK,MAAM,CAAC;AACZ,KAAK,QAAQ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @xmachines/play-xstate - XState
|
|
2
|
+
* @xmachines/play-xstate - XState v6 adapter for Play Architecture
|
|
3
3
|
*
|
|
4
4
|
* Provides definePlayer() API for binding XState state machines to the
|
|
5
5
|
* actor base with signal lifecycle and DevTools integration.
|
|
@@ -15,6 +15,7 @@ export { PlayerActor } from "./player-actor.js";
|
|
|
15
15
|
export type { PlayerConfig, PlayerOptions, PlayerFactory, PlayerFactoryResumeOptions, } from "./types.js";
|
|
16
16
|
export { composeGuards, composeGuardsOr, negateGuard, hasContext, eventMatches, contextFieldMatches, } from "./guards/index.js";
|
|
17
17
|
export type { Guard, GuardArray, ComposedGuard } from "./guards/index.js";
|
|
18
|
-
export { deriveRoute, isAbsoluteRoute, buildRouteUrl, formatPlayRouteTransitions, } from "./routing/index.js";
|
|
19
|
-
export
|
|
18
|
+
export { deriveRoute, isAbsoluteRoute, buildRouteUrl, formatPlayRouteTransitions, createRoutedMachine, playMetaSchema, playRouteEventSchema, } from "./routing/index.js";
|
|
19
|
+
export { emptyEventSchema } from "./schemas.js";
|
|
20
|
+
export type { PlayRoutePayload, SetupLike, WithOptional, RouteMachineConfig, RouteStateNode, RouteContext, RouteObject, RouteMetadata, } from "./routing/index.js";
|
|
20
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,0BAA0B,GAC1B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACN,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,YAAY,EACZ,mBAAmB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG1E,OAAO,EACN,WAAW,EACX,eAAe,EACf,aAAa,EACb,0BAA0B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,0BAA0B,GAC1B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACN,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,YAAY,EACZ,mBAAmB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG1E,OAAO,EACN,WAAW,EACX,eAAe,EACf,aAAa,EACb,0BAA0B,EAC1B,mBAAmB,EACnB,cAAc,EACd,oBAAoB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EACX,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,aAAa,GACb,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @xmachines/play-xstate - XState
|
|
2
|
+
* @xmachines/play-xstate - XState v6 adapter for Play Architecture
|
|
3
3
|
*
|
|
4
4
|
* Provides definePlayer() API for binding XState state machines to the
|
|
5
5
|
* actor base with signal lifecycle and DevTools integration.
|
|
@@ -15,5 +15,7 @@ export { PlayerActor } from "./player-actor.js";
|
|
|
15
15
|
// Guard utilities
|
|
16
16
|
export { composeGuards, composeGuardsOr, negateGuard, hasContext, eventMatches, contextFieldMatches, } from "./guards/index.js";
|
|
17
17
|
// Routing utilities
|
|
18
|
-
export { deriveRoute, isAbsoluteRoute, buildRouteUrl, formatPlayRouteTransitions, } from "./routing/index.js";
|
|
18
|
+
export { deriveRoute, isAbsoluteRoute, buildRouteUrl, formatPlayRouteTransitions, createRoutedMachine, playMetaSchema, playRouteEventSchema, } from "./routing/index.js";
|
|
19
|
+
// XState v6 schema constants (not routing-specific)
|
|
20
|
+
export { emptyEventSchema } from "./schemas.js";
|
|
19
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQhD,kBAAkB;AAClB,OAAO,EACN,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,YAAY,EACZ,mBAAmB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,oBAAoB;AACpB,OAAO,EACN,WAAW,EACX,eAAe,EACf,aAAa,EACb,0BAA0B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQhD,kBAAkB;AAClB,OAAO,EACN,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,YAAY,EACZ,mBAAmB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,oBAAoB;AACpB,OAAO,EACN,WAAW,EACX,eAAe,EACf,aAAa,EACb,0BAA0B,EAC1B,mBAAmB,EACnB,cAAc,EACd,oBAAoB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,oDAAoD;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/player-actor.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import type { PlayerOptions } from "./types.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Concrete XState actor implementing Play Architecture signal protocol
|
|
7
7
|
*
|
|
8
|
-
* Extends {@link @xmachines/play-actor!AbstractActor} to provide XState
|
|
8
|
+
* Extends {@link @xmachines/play-actor!AbstractActor} to provide XState v6 integration
|
|
9
9
|
* while maintaining ecosystem compatibility (XState inspection, devtools). This actor
|
|
10
10
|
* wraps an internal XState actor and exposes TC39 Signal-based reactive state for
|
|
11
11
|
* Infrastructure observation.
|
|
@@ -19,7 +19,7 @@ import type { PlayerOptions } from "./types.js";
|
|
|
19
19
|
* the actor's signals (`state`, `currentRoute`, `currentView`) but cannot directly
|
|
20
20
|
* manipulate state—all mutations flow through the state machine's event handlers.
|
|
21
21
|
*
|
|
22
|
-
* @typeParam TMachine - XState
|
|
22
|
+
* @typeParam TMachine - XState v6 state machine type
|
|
23
23
|
*
|
|
24
24
|
* @example
|
|
25
25
|
* Basic actor creation and lifecycle
|
|
@@ -83,7 +83,7 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
83
83
|
private viewSignal;
|
|
84
84
|
/** Last spec emitted on the view signal — used to skip no-change re-emissions. */
|
|
85
85
|
private lastEmittedView;
|
|
86
|
-
state: Signal.State<
|
|
86
|
+
state: Signal.State<SnapshotFrom<TMachine>>;
|
|
87
87
|
/**
|
|
88
88
|
* Returns whether the actor's current state can accept the given event.
|
|
89
89
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"player-actor.d.ts","sourceRoot":"","sources":["../src/player-actor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,eAAe,EACpB,KAAK,KAAK,EACV,KAAK,aAAa,EAElB,KAAK,WAAW,EAChB,KAAK,SAAS,EAEd,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACnG,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAGjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA2QhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AACH,qBAAa,WAAW,CAAC,QAAQ,SAAS,eAAe,CACxD,SAAQ,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC,QAAQ,CAAC,CAC7D,YAAW,QAAQ,EAAE,QAAQ;IAE7B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,UAAU,CAAgC;IAClD,kFAAkF;IAClF,OAAO,CAAC,eAAe,CAAyB;
|
|
1
|
+
{"version":3,"file":"player-actor.d.ts","sourceRoot":"","sources":["../src/player-actor.ts"],"names":[],"mappings":"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"}
|
package/dist/player-actor.js
CHANGED
|
@@ -246,7 +246,7 @@ const deriveCurrentView = (snapshot) => {
|
|
|
246
246
|
/**
|
|
247
247
|
* Concrete XState actor implementing Play Architecture signal protocol
|
|
248
248
|
*
|
|
249
|
-
* Extends {@link @xmachines/play-actor!AbstractActor} to provide XState
|
|
249
|
+
* Extends {@link @xmachines/play-actor!AbstractActor} to provide XState v6 integration
|
|
250
250
|
* while maintaining ecosystem compatibility (XState inspection, devtools). This actor
|
|
251
251
|
* wraps an internal XState actor and exposes TC39 Signal-based reactive state for
|
|
252
252
|
* Infrastructure observation.
|
|
@@ -260,7 +260,7 @@ const deriveCurrentView = (snapshot) => {
|
|
|
260
260
|
* the actor's signals (`state`, `currentRoute`, `currentView`) but cannot directly
|
|
261
261
|
* manipulate state—all mutations flow through the state machine's event handlers.
|
|
262
262
|
*
|
|
263
|
-
* @typeParam TMachine - XState
|
|
263
|
+
* @typeParam TMachine - XState v6 state machine type
|
|
264
264
|
*
|
|
265
265
|
* @example
|
|
266
266
|
* Basic actor creation and lifecycle
|
|
@@ -325,6 +325,8 @@ export class PlayerActor extends AbstractActor {
|
|
|
325
325
|
/** Last spec emitted on the view signal — used to skip no-change re-emissions. */
|
|
326
326
|
lastEmittedView = null;
|
|
327
327
|
// AbstractActor protocol requirements
|
|
328
|
+
// XState v6: machine.transition() returns a [snapshot, actions] tuple, so the
|
|
329
|
+
// snapshot type comes from SnapshotFrom<TMachine> instead of its return type.
|
|
328
330
|
state;
|
|
329
331
|
/**
|
|
330
332
|
* Returns whether the actor's current state can accept the given event.
|
|
@@ -338,6 +340,9 @@ export class PlayerActor extends AbstractActor {
|
|
|
338
340
|
* ```
|
|
339
341
|
*/
|
|
340
342
|
can(event) {
|
|
343
|
+
// SnapshotFrom<TMachine> does not narrow to MachineSnapshot for an unbound
|
|
344
|
+
// generic TMachine, so widen to AnyMachineSnapshot for the .can() call. The
|
|
345
|
+
// public signature stays typed to the machine's event union.
|
|
341
346
|
return this.state.get().can(event);
|
|
342
347
|
}
|
|
343
348
|
/**
|
|
@@ -407,13 +412,14 @@ export class PlayerActor extends AbstractActor {
|
|
|
407
412
|
throw new InvalidMachineError();
|
|
408
413
|
}
|
|
409
414
|
// Create XState actor
|
|
410
|
-
// XState
|
|
411
|
-
// TypeScript cannot resolve against
|
|
412
|
-
//
|
|
413
|
-
//
|
|
414
|
-
//
|
|
415
|
-
//
|
|
416
|
-
//
|
|
415
|
+
// XState v6: createActor() intersects ActorOptions with a mapped type over
|
|
416
|
+
// RequiredActorOptionsKeys<TLogic>, which TypeScript cannot resolve against
|
|
417
|
+
// an unbound generic TMachine — and under exactOptionalPropertyTypes an
|
|
418
|
+
// `input: InputFrom<TMachine> | undefined` property does not satisfy it.
|
|
419
|
+
// Cast to ActorOptions<TMachine> — narrower than `as any` because we remain
|
|
420
|
+
// within the XState type system. The `input` parameter is typed as
|
|
421
|
+
// InputFrom<TMachine> at the constructor call site, so consumers receive
|
|
422
|
+
// compile-time validation.
|
|
417
423
|
const xstateActor = createActor(machine, {
|
|
418
424
|
input,
|
|
419
425
|
snapshot: restoredSnapshot,
|
package/dist/player-actor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"player-actor.js","sourceRoot":"","sources":["../src/player-actor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"player-actor.js","sourceRoot":"","sources":["../src/player-actor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { setup } from "xstate";
|
|
1
|
+
import { setup, types } from "xstate";
|
|
2
|
+
import { emptyEventSchema } from "./schemas.js";
|
|
2
3
|
import { definePlayer } from "./define-player.js";
|
|
3
4
|
const machine = setup({
|
|
4
|
-
|
|
5
|
-
context:
|
|
6
|
-
input:
|
|
7
|
-
events: {
|
|
5
|
+
schemas: {
|
|
6
|
+
context: types(),
|
|
7
|
+
input: types(),
|
|
8
|
+
events: {
|
|
9
|
+
noop: emptyEventSchema,
|
|
10
|
+
},
|
|
8
11
|
},
|
|
9
12
|
}).createMachine({
|
|
10
13
|
context: ({ input }) => ({ value: input.value }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"player-actor.typecheck.js","sourceRoot":"","sources":["../src/player-actor.typecheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"player-actor.typecheck.js","sourceRoot":"","sources":["../src/player-actor.typecheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,GAAG,KAAK,CAAC;IACrB,OAAO,EAAE;QACR,OAAO,EAAE,KAAK,EAAqB;QACnC,KAAK,EAAE,KAAK,EAAqB;QACjC,MAAM,EAAE;YACP,IAAI,EAAE,gBAAgB;SACtB;KACD;CACD,CAAC,CAAC,aAAa,CAAC;IAChB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAChD,OAAO,EAAE,MAAM;IACf,MAAM,EAAE;QACP,IAAI,EAAE,EAAE;KACR;CACD,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACzC,MAAM,aAAa,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAEpF,kDAAkD;AAClD,KAAK,KAAK,CAAC;AACX,KAAK,aAAa,CAAC;AAEnB,2DAA2D;AAC3D,sFAAsF;AACtF,6EAA6E;AAC7E,MAAM,YAAY,GAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACrD,KAAK,YAAY,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural constraint for `setup(...)` return values: anything exposing a
|
|
3
|
+
* `createMachine` function. Kept structural (rather than importing XState's
|
|
4
|
+
* `SetupReturn`) so the wrapper stays agnostic to that type's many generics.
|
|
5
|
+
*/
|
|
6
|
+
export type SetupLike = {
|
|
7
|
+
createMachine: (...args: never[]) => unknown;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Returns a `createMachine` that routes: identical signature to the setup's
|
|
11
|
+
* own `createMachine`, with {@link formatPlayRouteTransitions} applied to the
|
|
12
|
+
* config at runtime.
|
|
13
|
+
*
|
|
14
|
+
* ### Why this exists
|
|
15
|
+
*
|
|
16
|
+
* `formatPlayRouteTransitions(config)` accepts a loosely-typed config. A config
|
|
17
|
+
* authored as a standalone value loses inline transition-function parameter
|
|
18
|
+
* inference entirely (implicit-any under strict mode), and even the inline
|
|
19
|
+
* `setup().createMachine(formatPlayRouteTransitions({ ... }))` form depends on
|
|
20
|
+
* TypeScript threading contextual typing through two generic calls.
|
|
21
|
+
*
|
|
22
|
+
* This wrapper removes the question: it is typed as the setup's own
|
|
23
|
+
* `createMachine`, so the config is contextually typed exactly as if passed to
|
|
24
|
+
* `setup().createMachine(...)` directly — transition-function args infer from
|
|
25
|
+
* the setup's schemas, sibling targets are validated, and the returned machine
|
|
26
|
+
* keeps its full literal state-value typing.
|
|
27
|
+
*
|
|
28
|
+
* Typing is *identical to native* — including its current gaps: as of xstate
|
|
29
|
+
* 6.0.0-alpha.20, `event` and `context` reads in transition args are fully
|
|
30
|
+
* typed, while returned context patches are property-typed but still carry a
|
|
31
|
+
* loose index signature in the alpha itself. Expect that to tighten upstream
|
|
32
|
+
* without changes here.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* import { setup, types } from "xstate";
|
|
37
|
+
* import { createRoutedMachine, playMetaSchema, playRouteEventSchema } from "@xmachines/play-xstate";
|
|
38
|
+
*
|
|
39
|
+
* const authSetup = setup({
|
|
40
|
+
* schemas: {
|
|
41
|
+
* context: types<{ isAuthenticated: boolean }>(),
|
|
42
|
+
* events: { "play.route": playRouteEventSchema },
|
|
43
|
+
* meta: playMetaSchema,
|
|
44
|
+
* },
|
|
45
|
+
* });
|
|
46
|
+
*
|
|
47
|
+
* const machine = createRoutedMachine(authSetup)({
|
|
48
|
+
* initial: "home",
|
|
49
|
+
* context: { isAuthenticated: false },
|
|
50
|
+
* states: {
|
|
51
|
+
* home: { id: "home", meta: { route: "/" } },
|
|
52
|
+
* login: { id: "login", meta: { route: "/login" } },
|
|
53
|
+
* },
|
|
54
|
+
* });
|
|
55
|
+
* // ({ context }) params in transitions infer from the setup schemas —
|
|
56
|
+
* // no explicit annotations needed.
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* Note: routes are injected at runtime, so the machine's static type does not
|
|
60
|
+
* gain an `xstate.route` event for them — `play.route` (declared in the
|
|
61
|
+
* setup's event schemas) remains the typed public API; native `xstate.route`
|
|
62
|
+
* interop is runtime-only.
|
|
63
|
+
*
|
|
64
|
+
* @param s - A `setup(...)` return value (anything with `createMachine`).
|
|
65
|
+
* @returns A function with the same signature as `s.createMachine` that
|
|
66
|
+
* applies {@link formatPlayRouteTransitions} before creating the machine.
|
|
67
|
+
*
|
|
68
|
+
* @see {@link formatPlayRouteTransitions} for the routing transform itself
|
|
69
|
+
*/
|
|
70
|
+
export declare const createRoutedMachine: <TSetup extends SetupLike>(s: TSetup) => TSetup["createMachine"];
|
|
71
|
+
//# sourceMappingURL=create-routed-machine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-routed-machine.d.ts","sourceRoot":"","sources":["../../src/routing/create-routed-machine.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG;IAGvB,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;CAC7C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,SAAS,SAAS,EAAE,GAAG,MAAM,KAAG,MAAM,CAAC,eAAe,CASjE,CAAC"}
|