@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.
Files changed (55) hide show
  1. package/README.md +77 -24
  2. package/dist/define-player.d.ts +3 -3
  3. package/dist/define-player.js +3 -3
  4. package/dist/define-player.typecheck.js +10 -10
  5. package/dist/define-player.typecheck.js.map +1 -1
  6. package/dist/errors.d.ts +38 -0
  7. package/dist/errors.d.ts.map +1 -1
  8. package/dist/errors.js +45 -0
  9. package/dist/errors.js.map +1 -1
  10. package/dist/guards/compose.d.ts +59 -41
  11. package/dist/guards/compose.d.ts.map +1 -1
  12. package/dist/guards/compose.js +97 -69
  13. package/dist/guards/compose.js.map +1 -1
  14. package/dist/guards/compose.typecheck.d.ts +2 -0
  15. package/dist/guards/compose.typecheck.d.ts.map +1 -0
  16. package/dist/guards/compose.typecheck.js +22 -0
  17. package/dist/guards/compose.typecheck.js.map +1 -0
  18. package/dist/index.d.ts +4 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +4 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/player-actor.d.ts +3 -3
  23. package/dist/player-actor.d.ts.map +1 -1
  24. package/dist/player-actor.js +15 -9
  25. package/dist/player-actor.js.map +1 -1
  26. package/dist/player-actor.typecheck.js +8 -5
  27. package/dist/player-actor.typecheck.js.map +1 -1
  28. package/dist/routing/create-routed-machine.d.ts +71 -0
  29. package/dist/routing/create-routed-machine.d.ts.map +1 -0
  30. package/dist/routing/create-routed-machine.js +71 -0
  31. package/dist/routing/create-routed-machine.js.map +1 -0
  32. package/dist/routing/derive-initial-route.d.ts +1 -1
  33. package/dist/routing/derive-initial-route.js +1 -1
  34. package/dist/routing/format-play-route-transitions.d.ts +54 -11
  35. package/dist/routing/format-play-route-transitions.d.ts.map +1 -1
  36. package/dist/routing/format-play-route-transitions.js +125 -52
  37. package/dist/routing/format-play-route-transitions.js.map +1 -1
  38. package/dist/routing/index.d.ts +4 -0
  39. package/dist/routing/index.d.ts.map +1 -1
  40. package/dist/routing/index.js +2 -0
  41. package/dist/routing/index.js.map +1 -1
  42. package/dist/routing/play-route-event.typecheck.d.ts +2 -0
  43. package/dist/routing/play-route-event.typecheck.d.ts.map +1 -0
  44. package/dist/routing/play-route-event.typecheck.js +43 -0
  45. package/dist/routing/play-route-event.typecheck.js.map +1 -0
  46. package/dist/routing/schemas.d.ts +99 -0
  47. package/dist/routing/schemas.d.ts.map +1 -0
  48. package/dist/routing/schemas.js +30 -0
  49. package/dist/routing/schemas.js.map +1 -0
  50. package/dist/schemas.d.ts +28 -0
  51. package/dist/schemas.d.ts.map +1 -0
  52. package/dist/schemas.js +29 -0
  53. package/dist/schemas.js.map +1 -0
  54. package/dist/types.d.ts +1 -1
  55. package/package.json +9 -9
@@ -1,23 +1,60 @@
1
- import { and, or, not } from "xstate";
2
- import { EmptyGuardArrayError } from "../errors.js";
1
+ import { EmptyGuardArrayError, InvalidGuardEntryError, UnresolvableGuardNameError, } from "../errors.js";
3
2
  /**
4
- * Compose guards with AND logic using XState's and() helper
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. Uses XState's built-in `and()` helper to ensure proper
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
- * @typeParam TContext - State machine context type
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
- * @param guards - Array of guard predicates or guard names (string references)
18
- * @returns XState and() guard composition
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 {Error} If guards array is empty
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
- * // Both guards must pass
37
- * guard: composeGuards(['isLoggedIn', 'hasPermission']),
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
- * guard: composeGuards([
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
- if (guards.length === 1) {
64
- // Single guard passthrough — cast through unknown because our Guard<TContext, TEvent>
65
- // does not structurally match ComposedGuard at compile time (generic event mismatch).
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
- // Use XState's built-in and() for type inference and serialization
71
- // Per RESEARCH.md: Don't hand-roll guard composition
72
- // XState 5.28.0: and() requires `readonly [...tuple]` but our GuardArray is a mutable array.
73
- // We cast through unknown to express the narrowest possible type boundary rather than
74
- // escaping to `any`. The runtime value is identical.
75
- // Track XState typing improvements: https://github.com/statelyai/xstate/issues
76
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
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 using XState's or() helper
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. Uses XState's built-in `or()` helper for proper
84
- * type inference.
117
+ * for the composition to succeed. Evaluation is short-circuiting, left to right.
85
118
  *
86
- * @typeParam TContext - State machine context type
87
- * @typeParam TEvent - Event type
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
- * @param guards - Array of guard predicates or guard names
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
- * // Either guard can pass
109
- * guard: composeGuardsOr(['isOwner', 'isAdmin']),
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
- if (guards.length === 1) {
125
- // Single guard passthrough — cast through unknown because our Guard<TContext, TEvent>
126
- // does not structurally match ComposedGuard at compile time (generic event mismatch).
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
- // XState 5.28.0: or() requires `readonly [...tuple]` but our GuardArray is a mutable array.
132
- // We cast through unknown to express the narrowest possible type boundary rather than
133
- // escaping to `any`. The runtime value is identical.
134
- // Track XState typing improvements: https://github.com/statelyai/xstate/issues
135
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
136
- return or(guards);
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 using XState's not() helper
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 to negate
148
- * @returns XState not() guard negation
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
- * // Allow if NOT a guest (i.e., authenticated)
164
- * guard: negateGuard('isGuest'),
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
- // XState 5.28.0: not() requires a specific SingleGuardArg shape, not our Guard type.
177
- // We cast through unknown to express the narrowest possible type boundary rather than
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":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAiBpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,aAAa,GAAG,CAC5B,MAAoC,EACpB,EAAE;IAClB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,sFAAsF;QACtF,sFAAsF;QACtF,mEAAmE;QACnE,8DAA8D;QAC9D,OAAO,MAAM,CAAC,CAAC,CAA6B,CAAC;IAC9C,CAAC;IAED,mEAAmE;IACnE,qDAAqD;IACrD,6FAA6F;IAC7F,sFAAsF;IACtF,qDAAqD;IACrD,+EAA+E;IAC/E,8DAA8D;IAC9D,OAAO,GAAG,CAAC,MAA8C,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,MAAoC,EACpB,EAAE;IAClB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,sFAAsF;QACtF,sFAAsF;QACtF,mEAAmE;QACnE,8DAA8D;QAC9D,OAAO,MAAM,CAAC,CAAC,CAA6B,CAAC;IAC9C,CAAC;IAED,4FAA4F;IAC5F,sFAAsF;IACtF,qDAAqD;IACrD,+EAA+E;IAC/E,8DAA8D;IAC9D,OAAO,EAAE,CAAC,MAA6C,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,WAAW,GAAG,CAC1B,KAAuC,EACvB,EAAE;IAClB,qFAAqF;IACrF,sFAAsF;IACtF,qDAAqD;IACrD,+EAA+E;IAC/E,8DAA8D;IAC9D,OAAO,GAAG,CAAC,KAA6C,CAAC,CAAC;AAC3D,CAAC,CAAC"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/guards/compose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=compose.typecheck.d.ts.map
@@ -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 v5 adapter for Play Architecture
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 type { RouteMachineConfig, RouteStateNode, RouteContext, RouteObject, RouteMetadata, } from "./routing/index.js";
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
@@ -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,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,aAAa,GACb,MAAM,oBAAoB,CAAC"}
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 v5 adapter for Play Architecture
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,GAC1B,MAAM,oBAAoB,CAAC"}
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"}
@@ -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 v5 integration
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 v5 state machine type
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<ReturnType<TMachine["transition"]>>;
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":"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"}
1
+ {"version":3,"file":"player-actor.d.ts","sourceRoot":"","sources":["../src/player-actor.ts"],"names":[],"mappings":"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"}
@@ -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 v5 integration
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 v5 state machine type
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 5.28.0: createActor() options has a conditional type constraint on `input` that
411
- // TypeScript cannot resolve against an unbound generic TMachine parameter.
412
- // Option B: Cast to ActorOptions<TMachine> — narrower than `as any` because we remain
413
- // within the XState type system. The `input` parameter is typed as InputFrom<TMachine>
414
- // at the constructor call site, so consumers receive compile-time validation.
415
- // Track XState typing improvements: https://github.com/statelyai/xstate/issues
416
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
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,
@@ -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
- types: {
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;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,GAAG,KAAK,CAAC;IACrB,KAAK,EAAE;QACN,OAAO,EAAE,EAAuB;QAChC,KAAK,EAAE,EAAuB;QAC9B,MAAM,EAAE,EAAsB;KAC9B;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"}
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"}