@xmachines/play-xstate 2.0.0-alpha.1 → 2.0.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.
Files changed (84) hide show
  1. package/README.md +90 -91
  2. package/dist/define-player.d.ts +3 -3
  3. package/dist/define-player.js +3 -3
  4. package/dist/errors.d.ts +46 -70
  5. package/dist/errors.d.ts.map +1 -1
  6. package/dist/errors.js +69 -77
  7. package/dist/errors.js.map +1 -1
  8. package/dist/guards/compose.d.ts +49 -59
  9. package/dist/guards/compose.d.ts.map +1 -1
  10. package/dist/guards/compose.js +68 -95
  11. package/dist/guards/compose.js.map +1 -1
  12. package/dist/guards/helpers.d.ts +6 -2
  13. package/dist/guards/helpers.d.ts.map +1 -1
  14. package/dist/guards/helpers.js +6 -2
  15. package/dist/guards/helpers.js.map +1 -1
  16. package/dist/guards/index.d.ts +7 -0
  17. package/dist/guards/index.d.ts.map +1 -1
  18. package/dist/guards/index.js +7 -0
  19. package/dist/guards/index.js.map +1 -1
  20. package/dist/guards/types.d.ts +4 -5
  21. package/dist/guards/types.d.ts.map +1 -1
  22. package/dist/index.d.ts +3 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2 -4
  25. package/dist/index.js.map +1 -1
  26. package/dist/player-actor.d.ts +112 -44
  27. package/dist/player-actor.d.ts.map +1 -1
  28. package/dist/player-actor.js +311 -327
  29. package/dist/player-actor.js.map +1 -1
  30. package/dist/routing/build-url.d.ts +2 -7
  31. package/dist/routing/build-url.d.ts.map +1 -1
  32. package/dist/routing/build-url.js +21 -25
  33. package/dist/routing/build-url.js.map +1 -1
  34. package/dist/routing/derive-current-route.d.ts +32 -0
  35. package/dist/routing/derive-current-route.d.ts.map +1 -1
  36. package/dist/routing/derive-current-route.js +20 -19
  37. package/dist/routing/derive-current-route.js.map +1 -1
  38. package/dist/routing/derive-initial-route.d.ts +1 -4
  39. package/dist/routing/derive-initial-route.d.ts.map +1 -1
  40. package/dist/routing/derive-initial-route.js +1 -4
  41. package/dist/routing/derive-initial-route.js.map +1 -1
  42. package/dist/routing/format-play-route-transitions.d.ts +11 -54
  43. package/dist/routing/format-play-route-transitions.d.ts.map +1 -1
  44. package/dist/routing/format-play-route-transitions.js +65 -125
  45. package/dist/routing/format-play-route-transitions.js.map +1 -1
  46. package/dist/routing/index.d.ts +1 -5
  47. package/dist/routing/index.d.ts.map +1 -1
  48. package/dist/routing/index.js +1 -3
  49. package/dist/routing/index.js.map +1 -1
  50. package/dist/types.d.ts +87 -14
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/view/derive-current-view.d.ts +49 -0
  53. package/dist/view/derive-current-view.d.ts.map +1 -0
  54. package/dist/view/derive-current-view.js +115 -0
  55. package/dist/view/derive-current-view.js.map +1 -0
  56. package/package.json +22 -22
  57. package/dist/define-player.typecheck.d.ts +0 -2
  58. package/dist/define-player.typecheck.d.ts.map +0 -1
  59. package/dist/define-player.typecheck.js +0 -48
  60. package/dist/define-player.typecheck.js.map +0 -1
  61. package/dist/guards/compose.typecheck.d.ts +0 -2
  62. package/dist/guards/compose.typecheck.d.ts.map +0 -1
  63. package/dist/guards/compose.typecheck.js +0 -22
  64. package/dist/guards/compose.typecheck.js.map +0 -1
  65. package/dist/player-actor.typecheck.d.ts +0 -2
  66. package/dist/player-actor.typecheck.d.ts.map +0 -1
  67. package/dist/player-actor.typecheck.js +0 -30
  68. package/dist/player-actor.typecheck.js.map +0 -1
  69. package/dist/routing/create-routed-machine.d.ts +0 -71
  70. package/dist/routing/create-routed-machine.d.ts.map +0 -1
  71. package/dist/routing/create-routed-machine.js +0 -71
  72. package/dist/routing/create-routed-machine.js.map +0 -1
  73. package/dist/routing/play-route-event.typecheck.d.ts +0 -2
  74. package/dist/routing/play-route-event.typecheck.d.ts.map +0 -1
  75. package/dist/routing/play-route-event.typecheck.js +0 -43
  76. package/dist/routing/play-route-event.typecheck.js.map +0 -1
  77. package/dist/routing/schemas.d.ts +0 -99
  78. package/dist/routing/schemas.d.ts.map +0 -1
  79. package/dist/routing/schemas.js +0 -30
  80. package/dist/routing/schemas.js.map +0 -1
  81. package/dist/schemas.d.ts +0 -28
  82. package/dist/schemas.d.ts.map +0 -1
  83. package/dist/schemas.js +0 -29
  84. package/dist/schemas.js.map +0 -1
@@ -1,14 +1,16 @@
1
- import { type AnyStateMachine, type Actor, type AnyActorLogic, type EmittedFrom, type InputFrom, type Observer, type Snapshot, type SnapshotFrom, type Subscription, type EventFromLogic } from "xstate";
1
+ import { Actor, type AnyStateMachine, type AnyActorLogic, type EmittedFrom, type InputFrom, type ActorOptions, type Observer, type Snapshot, type SnapshotFrom, type Subscription, type EventFromLogic } from "xstate";
2
2
  import { AbstractActor, type Routable, type Viewable, type PlaySpec } from "@xmachines/play-actor";
3
3
  import { Signal } from "@xmachines/play-signals";
4
4
  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 v6 integration
9
- * while maintaining ecosystem compatibility (XState inspection, devtools). This actor
10
- * wraps an internal XState actor and exposes TC39 Signal-based reactive state for
11
- * Infrastructure observation.
8
+ * Extends {@link @xmachines/play-actor!AbstractActor} — and so XState's own `Actor` —
9
+ * to provide XState v5 integration while maintaining ecosystem compatibility (XState
10
+ * inspection, devtools). The machine is handed to the base constructor, so a
11
+ * `PlayerActor` **is** the XState actor rather than a wrapper around one: everything
12
+ * XState's `Actor` exposes operates on this instance's own state, and the class adds
13
+ * TC39 Signal-based reactive state for Infrastructure observation on top.
12
14
  *
13
15
  * **Capabilities:** Implements both {@link @xmachines/play-actor!Routable} and
14
16
  * {@link @xmachines/play-actor!Viewable} interfaces, providing routing and view
@@ -19,7 +21,7 @@ import type { PlayerOptions } from "./types.js";
19
21
  * the actor's signals (`state`, `currentRoute`, `currentView`) but cannot directly
20
22
  * manipulate state—all mutations flow through the state machine's event handlers.
21
23
  *
22
- * @typeParam TMachine - XState v6 state machine type
24
+ * @typeParam TMachine - XState v5 state machine type
23
25
  *
24
26
  * @example
25
27
  * Basic actor creation and lifecycle
@@ -31,7 +33,14 @@ import type { PlayerOptions } from "./types.js";
31
33
  * initial: 'idle',
32
34
  * states: {
33
35
  * idle: {
34
- * meta: { route: '/', view: { component: 'HomePage' } }
36
+ * meta: {
37
+ * route: '/',
38
+ * // A view spec needs `root` and `elements` — other shapes derive null.
39
+ * view: {
40
+ * root: 'home',
41
+ * elements: { home: { type: 'HomePage', props: {}, children: [] } },
42
+ * },
43
+ * },
35
44
  * }
36
45
  * }
37
46
  * });
@@ -41,8 +50,8 @@ import type { PlayerOptions } from "./types.js";
41
50
  * actor.start();
42
51
  *
43
52
  * // Observe signals
44
- * console.log(actor.currentRoute.get()); // '/'
45
- * console.log(actor.currentView.get()); // { component: 'HomePage' }
53
+ * console.log(actor.currentRoute.get()); // '/'
54
+ * console.log(actor.currentView.get()?.root); // 'home'
46
55
  * ```
47
56
  *
48
57
  * @example
@@ -78,17 +87,63 @@ import type { PlayerOptions } from "./types.js";
78
87
  * cached and updated at state entry, not computed on every read.
79
88
  */
80
89
  export declare class PlayerActor<TMachine extends AnyStateMachine> extends AbstractActor<AnyActorLogic, EventFromLogic<TMachine>> implements Routable, Viewable {
81
- private xstateActor;
82
- private playerOptions;
83
- private viewSignal;
84
- /** Last spec emitted on the view signal — used to skip no-change re-emissions. */
85
- private lastEmittedView;
86
- state: Signal.State<SnapshotFrom<TMachine>>;
90
+ private playerOptions?;
91
+ /**
92
+ * Whether this constructor has returned.
93
+ *
94
+ * XState hands the actor to a context factory as `self`, and to an
95
+ * `inspect` observer as `actorRef`, from inside its own constructor — where
96
+ * none of this class's fields exist yet and XState itself refuses to read
97
+ * the snapshot ("Snapshot can't be read while the actor initializes
98
+ * itself"). Anything reachable from that window has to check this first.
99
+ */
100
+ private constructed?;
101
+ /**
102
+ * The caller's live options bag, or an empty one during construction.
103
+ *
104
+ * XState hands this actor to a context factory as `self` and to an
105
+ * `inspect` observer as `actorRef` from inside its own constructor, before
106
+ * any field here is assigned. Reading hooks through this accessor keeps
107
+ * that window from throwing — a throw would be caught by XState's
108
+ * initialization and parked as an error snapshot — while preserving the
109
+ * read-at-delivery-time behaviour the bag's own docs promise.
110
+ *
111
+ * The window-sensitive fields below are `declare`d for the same reason.
112
+ * This target compiles class fields to `Object.defineProperty`, which runs
113
+ * after `super()` returns: a plain declaration — initializer or not — would
114
+ * reset anything the window had written back to `undefined`. `declare`
115
+ * emits nothing, so those writes survive.
116
+ */
117
+ private get hooks();
118
+ /**
119
+ * Real lifecycle transitions, so onStart/onStop fire once each. XState's
120
+ * own status is internal, and a machine snapshot already reads "active"
121
+ * before start(), so neither can distinguish not-yet-started from running.
122
+ */
123
+ private lifecycle?;
124
+ /**
125
+ * Userland subscriptions without an error listener. XState's dispatch
126
+ * rethrows an actor error globally on their behalf (once per delivery, a
127
+ * shared flag), so while one is active the internal error listener's own
128
+ * loud-default rethrow must stand down — or the same error is reported
129
+ * twice.
130
+ */
131
+ private nextOnlySubscriptions?;
132
+ /**
133
+ * The last snapshot the view pipeline processed. XState notifies observers
134
+ * on EVERY processed event — an ignored event redelivers the identical
135
+ * snapshot — and deriveCurrentView is pure in the snapshot, so an identical
136
+ * reference cannot change the outcome. Seeded with undefined (never a
137
+ * snapshot): the construction-time snapshot is reference-identical to the
138
+ * one start() replays, and seeding with it would suppress the initial view.
139
+ */
140
+ private lastViewSnapshot;
141
+ state: Signal.State<ReturnType<TMachine["transition"]>>;
87
142
  /**
88
143
  * Returns whether the actor's current state can accept the given event.
89
144
  *
90
145
  * Typed to the machine's event union — passing an unknown event type is a
91
- * compile error. Delegates to the underlying XState actor's snapshot.
146
+ * compile error. Evaluated against the current snapshot signal.
92
147
  *
93
148
  * @example
94
149
  * ```typescript
@@ -101,16 +156,15 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
101
156
  * machine state's `meta.route` template and the actor's context.
102
157
  *
103
158
  * Returns `null` when the current state has no `meta.route`, or when the route
104
- * template cannot be fully resolved (e.g. a required parameter is absent from
105
- * context).
106
- *
107
- * @throws {MissingRouteParamError} When a required `:param` placeholder in the
108
- * route template has no matching value in the actor's context. Import the class
109
- * from `@xmachines/play-xstate/errors`.
159
+ * template cannot be fully resolved — a required `:param` absent from context
160
+ * is caught internally (`MissingRouteParamError` never escapes `get()`): the
161
+ * condition is transient mid-transition and the signal recomputes on the next
162
+ * snapshot.
110
163
  *
111
164
  * @example
112
165
  * ```typescript
113
- * // Returns "/profile/alice" when context.userId === "alice"
166
+ * // Returns "/profile/alice" when context.params.userId === "alice",
167
+ * // and null while the param is still missing.
114
168
  * const route = actor.currentRoute.get();
115
169
  * ```
116
170
  */
@@ -141,12 +195,19 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
141
195
  * not change the rendered view (e.g. context-only assigns) keep the previous
142
196
  * reference so downstream providers do not remount the UI on every event.
143
197
  *
144
- * The emitted `PlaySpec` has its element `props` enriched with `context.params`
145
- * before emission — URL path parameters (e.g. `:section?`) flow into component props
146
- * automatically. See `mergeRouteParamsIntoProps` for the merge priority rules.
198
+ * The emitted `PlaySpec` carries the machine's context in its composed
199
+ * `state` under the read-only `/context` subtree, so specs read context —
200
+ * URL params included — through the ordinary state grammar
201
+ * (`{ $state: "/context/params/section" }`). See `@xmachines/play-actor`'s
202
+ * context-projection module for the full contract.
147
203
  *
148
204
  * Returns `null` when the current state has no `meta.view` metadata.
149
205
  *
206
+ * Two states declaring separate but structurally identical `meta.view`
207
+ * literals emit distinct references on a transition between them (a
208
+ * provider remount); hoist the shared literal into one `typedSpec` constant
209
+ * to deduplicate by identity.
210
+ *
150
211
  * @example
151
212
  * ```typescript
152
213
  * const view = actor.currentView.get();
@@ -156,20 +217,31 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
156
217
  * }
157
218
  * ```
158
219
  */
159
- currentView: Signal.State<PlaySpec | null>;
160
- constructor(machine: TMachine, options: PlayerOptions<TMachine>, input?: InputFrom<TMachine>, restoredSnapshot?: SnapshotFrom<TMachine>);
220
+ readonly currentView: Signal.State<PlaySpec | null>;
221
+ constructor(machine: TMachine, options: PlayerOptions<TMachine>, input?: InputFrom<TMachine>, restoredSnapshot?: ActorOptions<TMachine>["snapshot"]);
161
222
  /**
162
- * Start the actor
223
+ * Start the actor.
163
224
  *
164
- * Per RESEARCH.md Pitfall 1: Always call start() after creation
225
+ * Fires `onStart` on each real start — every transition from not-running to
226
+ * running, including a start after a stop, which XState allows (its own
227
+ * `start()` bails only while the actor is already RUNNING). A repeated call
228
+ * while running does not re-fire it, so a defensive double mount does not
229
+ * re-run `onStart` side effects for one actual start.
165
230
  */
166
231
  start(): this;
167
232
  /**
168
- * Stop the actor and cleanup
233
+ * Stop the actor and clean up.
234
+ *
235
+ * Fires `onStop` only when the actor was actually running — mirroring
236
+ * XState, where stopping a never-started or already-stopped actor is a
237
+ * no-op with zero teardown — so paired cleanup never runs twice, nor
238
+ * against resources `onStart` never acquired. Stopping does not close the
239
+ * actor for good: a later `start()` is a fresh lifecycle and fires
240
+ * `onStart` again.
169
241
  */
170
242
  stop(): this;
171
243
  /**
172
- * Send an event to the underlying XState actor.
244
+ * Send an event to this actor.
173
245
  *
174
246
  * The actor's state machine guards decide whether the event causes a transition.
175
247
  * Pass any event from the machine's event union — domain events, routing events, etc.
@@ -194,7 +266,7 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
194
266
  */
195
267
  getSnapshot(): ReturnType<Actor<TMachine>["getSnapshot"]>;
196
268
  /**
197
- * Subscribe to snapshot updates from the wrapped XState actor.
269
+ * Subscribe to this actor's snapshot updates.
198
270
  *
199
271
  * Accepts an observer object, exactly like XState's `Actor.subscribe`.
200
272
  *
@@ -203,7 +275,7 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
203
275
  */
204
276
  subscribe(observer: Observer<SnapshotFrom<TMachine>>): Subscription;
205
277
  /**
206
- * Subscribe to snapshot updates from the wrapped XState actor.
278
+ * Subscribe to this actor's snapshot updates.
207
279
  *
208
280
  * Accepts listener functions, exactly like XState's `Actor.subscribe`.
209
281
  *
@@ -214,7 +286,7 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
214
286
  */
215
287
  subscribe(nextListener?: (snapshot: SnapshotFrom<TMachine>) => void, errorListener?: (error: unknown) => void, completeListener?: () => void): Subscription;
216
288
  /**
217
- * Listen for events emitted by the wrapped XState actor via the `emit` action.
289
+ * Listen for events this actor emits via the `emit` action.
218
290
  *
219
291
  * @param type - Emitted event type to listen for, or `"*"` for all.
220
292
  * @param handler - Called with each matching emitted event.
@@ -224,25 +296,21 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
224
296
  type: TType;
225
297
  })) => void): Subscription;
226
298
  /**
227
- * Get the persisted snapshot of the wrapped XState actor.
299
+ * Get this actor's persisted snapshot.
228
300
  *
229
301
  * Suitable for serialization and later restoration via the factory's
230
302
  * `restore.snapshot` option.
231
303
  */
232
- getPersistedSnapshot(): Snapshot<unknown>;
304
+ getPersistedSnapshot(options?: unknown): Snapshot<unknown>;
233
305
  /**
234
- * Validate view at state entry and cache result
235
- *
236
- * Per CONTEXT.md: "Prop validation: At state entry (when state becomes active)"
237
- * Validates once per transition and stores result in signal.
306
+ * Derive and cache the view at state entry — once per transition, stored in
307
+ * the signal rather than recomputed per read.
238
308
  *
239
309
  * @param snapshot - Current XState snapshot
240
310
  */
241
311
  private validateAndCacheView;
242
312
  /**
243
- * Convenience dispose method for cleanup
244
- *
245
- * Per CONTEXT.md: "Both .dispose() convenience method and manual machine.stop()"
313
+ * Convenience dispose method for cleanup — an alias for {@link stop}.
246
314
  */
247
315
  dispose(): void;
248
316
  }
@@ -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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"}