@xmachines/play-xstate 3.0.0 → 5.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 (80) hide show
  1. package/README.md +190 -68
  2. package/dist/capabilities.d.ts +93 -0
  3. package/dist/capabilities.d.ts.map +1 -0
  4. package/dist/capabilities.js +4 -0
  5. package/dist/capabilities.js.map +1 -0
  6. package/dist/define-player.d.ts +7 -1
  7. package/dist/define-player.d.ts.map +1 -1
  8. package/dist/define-player.js +9 -60
  9. package/dist/define-player.js.map +1 -1
  10. package/dist/errors.d.ts +64 -23
  11. package/dist/errors.d.ts.map +1 -1
  12. package/dist/errors.js +93 -31
  13. package/dist/errors.js.map +1 -1
  14. package/dist/index.d.ts +4 -6
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +11 -6
  17. package/dist/index.js.map +1 -1
  18. package/dist/player-actor.d.ts +73 -137
  19. package/dist/player-actor.d.ts.map +1 -1
  20. package/dist/player-actor.js +108 -254
  21. package/dist/player-actor.js.map +1 -1
  22. package/dist/routing/build-url.d.ts +8 -1
  23. package/dist/routing/build-url.d.ts.map +1 -1
  24. package/dist/routing/build-url.js +34 -54
  25. package/dist/routing/build-url.js.map +1 -1
  26. package/dist/routing/derive-current-route.d.ts +12 -38
  27. package/dist/routing/derive-current-route.d.ts.map +1 -1
  28. package/dist/routing/derive-current-route.js +24 -82
  29. package/dist/routing/derive-current-route.js.map +1 -1
  30. package/dist/routing/derive-initial-route.d.ts +2 -1
  31. package/dist/routing/derive-initial-route.d.ts.map +1 -1
  32. package/dist/routing/derive-initial-route.js +13 -2
  33. package/dist/routing/derive-initial-route.js.map +1 -1
  34. package/dist/routing/derive-route.d.ts +81 -2
  35. package/dist/routing/derive-route.d.ts.map +1 -1
  36. package/dist/routing/derive-route.js +97 -3
  37. package/dist/routing/derive-route.js.map +1 -1
  38. package/dist/routing/format-play-route-transitions.d.ts +8 -2
  39. package/dist/routing/format-play-route-transitions.d.ts.map +1 -1
  40. package/dist/routing/format-play-route-transitions.js +175 -43
  41. package/dist/routing/format-play-route-transitions.js.map +1 -1
  42. package/dist/routing/index.d.ts +1 -1
  43. package/dist/routing/index.d.ts.map +1 -1
  44. package/dist/routing/types.d.ts +9 -5
  45. package/dist/routing/types.d.ts.map +1 -1
  46. package/dist/state-meta.d.ts +52 -0
  47. package/dist/state-meta.d.ts.map +1 -0
  48. package/dist/state-meta.js +77 -0
  49. package/dist/state-meta.js.map +1 -0
  50. package/dist/types.d.ts +20 -5
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/view/derive-current-view.d.ts +7 -6
  53. package/dist/view/derive-current-view.d.ts.map +1 -1
  54. package/dist/view/derive-current-view.js +7 -6
  55. package/dist/view/derive-current-view.js.map +1 -1
  56. package/dist/with-routing.d.ts +45 -0
  57. package/dist/with-routing.d.ts.map +1 -0
  58. package/dist/with-routing.js +140 -0
  59. package/dist/with-routing.js.map +1 -0
  60. package/dist/with-view.d.ts +57 -0
  61. package/dist/with-view.d.ts.map +1 -0
  62. package/dist/with-view.js +158 -0
  63. package/dist/with-view.js.map +1 -0
  64. package/package.json +40 -18
  65. package/dist/guards/compose.d.ts +0 -158
  66. package/dist/guards/compose.d.ts.map +0 -1
  67. package/dist/guards/compose.js +0 -188
  68. package/dist/guards/compose.js.map +0 -1
  69. package/dist/guards/helpers.d.ts +0 -62
  70. package/dist/guards/helpers.d.ts.map +0 -1
  71. package/dist/guards/helpers.js +0 -85
  72. package/dist/guards/helpers.js.map +0 -1
  73. package/dist/guards/index.d.ts +0 -20
  74. package/dist/guards/index.d.ts.map +0 -1
  75. package/dist/guards/index.js +0 -18
  76. package/dist/guards/index.js.map +0 -1
  77. package/dist/guards/types.d.ts +0 -22
  78. package/dist/guards/types.d.ts.map +0 -1
  79. package/dist/guards/types.js +0 -2
  80. package/dist/guards/types.js.map +0 -1
@@ -1,27 +1,39 @@
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
- import { AbstractActor, type Routable, type Viewable, type PlaySpec } from "@xmachines/play-actor";
1
+ import { Actor, type AnyStateMachine, type AnyMachineSnapshot, type InputFrom, type ActorOptions, type Observer, type Snapshot, type SnapshotFrom, type Subscription, type EventFromLogic } from "xstate";
2
+ import type { PlayActor } from "@xmachines/play-actor";
3
3
  import { DISPOSE } from "@xmachines/play";
4
- import { Signal } from "@xmachines/play-signals";
4
+ import type { Atom } from "@xmachines/play-atom";
5
5
  import type { PlayerOptions } from "./types.js";
6
6
  /**
7
- * The concrete XState actor. It implements the signal protocol of the Play Architecture
7
+ * Normalizes a failure of the actor for `onError`.
8
8
  *
9
- * The class extends {@link @xmachines/play-actor!AbstractActor}, and therefore the
10
- * `Actor` class of XState. It gives you the XState v5 integration, and it keeps the
9
+ * @internal
10
+ *
11
+ * The function gives an `Error` to the handler without a change. The error of the
12
+ * machine therefore keeps its identity: an `instanceof` test of a consumer still
13
+ * works, and the path without an `onError` throws that same object again. Every
14
+ * other value is ours to build, and it becomes a `PlayError` with a code. That
15
+ * error carries the value from the throw as its `cause`.
16
+ */
17
+ export declare const toError: (value: unknown) => Error;
18
+ /**
19
+ * The concrete XState actor. It implements the atom protocol of the Play Architecture
20
+ *
21
+ * The class extends the `Actor` class of XState directly, and it implements
22
+ * {@link @xmachines/play-actor!PlayActor}. It gives you the XState v5 integration, and it keeps the
11
23
  * compatibility with the ecosystem, such as the XState inspection and the devtools.
12
24
  * The constructor of the base class receives the machine. Therefore a `PlayerActor`
13
25
  * **is** the XState actor, and it is no wrapper around one: every member of the
14
26
  * XState `Actor` class works on the state of this instance, and this class adds the
15
- * reactive state on the TC39 Signals for the observation by the infrastructure.
27
+ * reactive state on the atoms for the observation by the infrastructure.
16
28
  *
17
29
  * **Capabilities:** the class implements both the
18
- * {@link @xmachines/play-actor!Routable} interface and the
19
- * {@link @xmachines/play-actor!Viewable} interface. It therefore supports the
30
+ * {@link @xmachines/play-router!index.Routable} interface and the
31
+ * {@link @xmachines/play-view!index.Viewable} interface. It therefore supports the
20
32
  * routing and the view rendering.
21
33
  *
22
34
  * **Architectural context:** the class implements **Actor Authority (INV-01)**,
23
35
  * because the guards of the XState machine control every decision of the
24
- * navigation. The infrastructure observes the signals of the actor (`state`,
36
+ * navigation. The infrastructure observes the atoms of the actor (`state`,
25
37
  * `currentRoute`, and `currentView`), but it changes no state directly: every
26
38
  * change goes through the event handlers of the state machine.
27
39
  *
@@ -31,7 +43,7 @@ import type { PlayerOptions } from "./types.js";
31
43
  * The creation of an actor, and its lifecycle
32
44
  * ```typescript
33
45
  * import { setup } from "xstate";
34
- * import { definePlayer } from "@xmachines/play-xstate";
46
+ * import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
35
47
  *
36
48
  * const machine = setup({}).createMachine({
37
49
  * initial: 'idle',
@@ -53,33 +65,31 @@ import type { PlayerOptions } from "./types.js";
53
65
  * const actor = createPlayer();
54
66
  * actor.start();
55
67
  *
56
- * // Observe the signals
68
+ * // Observe the atoms
57
69
  * console.log(actor.currentRoute.get()); // '/'
58
70
  * console.log(actor.currentView.get()?.root); // 'home'
59
71
  * ```
60
72
  *
61
73
  * @example
62
- * The signal lifecycle with a watcher
74
+ * The atom lifecycle with a watch
63
75
  * ```typescript
64
- * import { Signal } from "@xmachines/play-signals";
76
+ * import { watchAtom } from "@xmachines/play-atom";
65
77
  *
66
- * const watcher = new Signal.subtle.Watcher(() => {
67
- * queueMicrotask(() => {
68
- * const pending = watcher.getPending();
69
- * console.log('State changed:', actor.state.get());
70
- * });
78
+ * const stop = watchAtom(actor.state, (snapshot) => {
79
+ * console.log('State changed:', snapshot.value);
71
80
  * });
72
81
  *
73
- * watcher.watch(actor.state);
74
82
  * actor.send({ type: 'play.route', to: '#about' });
75
- * // The watcher schedules its own notification in a microtask
83
+ * // watchAtom delivers the new value from a microtask
84
+ *
85
+ * stop();
76
86
  * ```
77
87
  *
78
88
  * @see [Play RFC](../../docs/rfc/play.md)
79
89
  * @see {@link definePlayer} for the creation through a factory
80
- * @see {@link @xmachines/play-actor!AbstractActor} for the signal protocol
81
- * @see {@link @xmachines/play-actor!Routable} for the routing capability
82
- * @see {@link @xmachines/play-actor!Viewable} for the view rendering capability
90
+ * @see {@link @xmachines/play-actor!PlayActor} for the atom protocol
91
+ * @see {@link @xmachines/play-router!index.Routable} for the routing capability
92
+ * @see {@link @xmachines/play-view!index.Viewable} for the view rendering capability
83
93
  *
84
94
  * @remarks
85
95
  * **The routing:** this actor supports the `route: {}` config pattern of XState and
@@ -87,13 +97,27 @@ import type { PlayerOptions } from "./types.js";
87
97
  * `meta.route`, which is the Stately pattern, for a URL template, and it substitutes
88
98
  * each parameter.
89
99
  *
90
- * **The pattern of the view signal:** the `currentView` signal is a direct
91
- * `Signal.State`, and not a `Signal.Computed`. The propagation to a watcher in
92
- * PlayRenderer is therefore correct. The class derives each view at the entry of a
93
- * state and keeps it, and it computes no view on a read.
100
+ * **The pattern of the view atom:** `withView` of `@xmachines/play-xstate/view` adds
101
+ * `currentView`, and that atom is a COMPUTED atom over `state`. One write for each
102
+ * transition — `state.set(snapshot)` — therefore reaches the view and the route in one
103
+ * flush, and no subscriber reads the new state beside an old derivation. The atom
104
+ * memoizes the result, so a repeated read computes no view again.
94
105
  */
95
- export declare class PlayerActor<TMachine extends AnyStateMachine> extends AbstractActor<AnyActorLogic, EventFromLogic<TMachine>> implements Routable, Viewable {
106
+ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Actor<TMachine> implements PlayActor<ReturnType<TMachine["transition"]>, EventFromLogic<TMachine>> {
96
107
  private playerOptions?;
108
+ /**
109
+ * The three inputs of the constructor that a CAPABILITY needs.
110
+ *
111
+ * A mixin over a generic base cannot declare a constructor: TypeScript then demands the
112
+ * signature `...args: any[]` (TS2545), which this workspace does not write. A field
113
+ * initializer of a subclass runs after `super()` instead, and it reads these. The
114
+ * routing capability derives `initialRoute` from all three.
115
+ */
116
+ protected readonly playerMachine: TMachine;
117
+ /** @see {@link playerMachine} */
118
+ protected readonly playerInput: InputFrom<TMachine> | undefined;
119
+ /** @see {@link playerMachine} */
120
+ protected readonly playerRestoredSnapshot: ActorOptions<TMachine>["snapshot"] | undefined;
97
121
  /**
98
122
  * Tells you if this constructor returned already.
99
123
  *
@@ -120,7 +144,7 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
120
144
  * one, therefore resets each value of the window to `undefined`. A `declare`
121
145
  * modifier emits nothing, and those values survive.
122
146
  */
123
- private get hooks();
147
+ protected get hooks(): PlayerOptions<TMachine>;
124
148
  /**
125
149
  * The record of the real lifecycle transitions, so that onStart and onStop each
126
150
  * fire one time. The status of XState is internal, and a machine snapshot reads
@@ -137,21 +161,12 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
137
161
  * times.
138
162
  */
139
163
  private nextOnlySubscriptions?;
140
- /**
141
- * The last snapshot of the view pipeline. XState notifies each observer on EVERY
142
- * event that it processes, and an event that it ignores delivers the identical
143
- * snapshot again. deriveCurrentView is pure in the snapshot. Therefore an identical
144
- * reference can change no result. The first value is undefined, and never a
145
- * snapshot: the snapshot of the construction has the same reference as the snapshot
146
- * that start() replays, and that value therefore stops the first view.
147
- */
148
- private lastViewSnapshot;
149
- state: Signal.State<ReturnType<TMachine["transition"]>>;
164
+ state: Atom<ReturnType<TMachine["transition"]>>;
150
165
  /**
151
166
  * Tells you if the current state of the actor accepts the given event.
152
167
  *
153
168
  * The type is the event union of the machine. An unknown event type is therefore a
154
- * compile error. The method evaluates the event against the snapshot signal.
169
+ * compile error. The method evaluates the event against the snapshot atom.
155
170
  *
156
171
  * @example
157
172
  * ```typescript
@@ -159,77 +174,6 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
159
174
  * ```
160
175
  */
161
176
  can(event: EventFromLogic<TMachine>): boolean;
162
- /**
163
- * A TC39 `Signal.Computed`. It derives the current URL path from the `meta.route`
164
- * template of the active machine state and from the context of the actor.
165
- *
166
- * It returns `null` when the current state has no `meta.route` field, and also when
167
- * it cannot resolve the complete route template. A necessary `:param` that the
168
- * context does not hold is caught inside the signal, and a
169
- * `MissingRouteParamError` therefore never leaves `get()`: that condition is
170
- * temporary during a transition, and the signal computes the value again on the next
171
- * snapshot.
172
- *
173
- * @example
174
- * ```typescript
175
- * // It returns "/profile/alice" when context.params.userId === "alice",
176
- * // and null while the param is still absent.
177
- * const route = actor.currentRoute.get();
178
- * ```
179
- */
180
- currentRoute: Signal.Computed<string | null>;
181
- /**
182
- * The route of the initial state of the machine. The constructor fixes it, and it
183
- * never changes, also when the code restores the actor from a snapshot.
184
- *
185
- * A router bridge compares it with the browser URL, and it therefore separates a
186
- * deep link (a URL that is not the initial one → the router wins) from a restore
187
- * (the initial URL, and the actor at a different route from the restore → the actor
188
- * wins).
189
- *
190
- * `deriveInitialRoute` derives the value statically from the machine definition,
191
- * with the pure `initialTransition` helper of XState: the chain of the initial states
192
- * and their `meta.route` templates are fixed at the moment of the machine
193
- * definition, and the substitution of a `:param` uses the real initial context of
194
- * the machine for the `input` of this actor. The code makes no second actor, and a
195
- * snapshot of a restore changes the value never: it is always the **default**
196
- * initial route of the machine.
197
- */
198
- readonly initialRoute: string | null;
199
- /**
200
- * The reactive signal of the current view spec. The signal derives the spec from
201
- * the `meta.view` metadata of the active state.
202
- *
203
- * It emits a **new object reference** on each real change of the view on the
204
- * screen: the view of a different state, or a change of a param or of the context
205
- * that changes the resolved spec. A re-entry with `reenter: true` and new params
206
- * also changes the spec. A snapshot that changes no view on the screen, such as an
207
- * assign of the context alone, keeps the previous reference. A provider below the
208
- * signal therefore mounts the UI again not on every event.
209
- *
210
- * The `PlaySpec` of the emission carries the context of the machine in its composed
211
- * `state` field, under the read-only `/context` subtree. A spec therefore reads the
212
- * context, and also each URL param, through the ordinary state grammar
213
- * (`{ $state: "/context/params/section" }`). The context-projection module of
214
- * `@xmachines/play-actor` holds the complete contract.
215
- *
216
- * The signal returns `null` when the current state has no `meta.view` metadata.
217
- *
218
- * Two states can declare two separate `meta.view` literals with an identical
219
- * structure. A transition between those two states then emits two different
220
- * references, and a provider mounts the UI again. Move the shared literal into one
221
- * `typedSpec` constant, and the identity then removes the duplicate.
222
- *
223
- * @example
224
- * ```typescript
225
- * const view = actor.currentView.get();
226
- * if (view) {
227
- * console.log(view.root); // for example "root"
228
- * console.log(view.elements); // the Spec elements of @xmachines/json-render-core
229
- * }
230
- * ```
231
- */
232
- readonly currentView: Signal.State<PlaySpec | null>;
233
177
  constructor(machine: TMachine, options: PlayerOptions<TMachine>, input?: InputFrom<TMachine>, restoredSnapshot?: ActorOptions<TMachine>["snapshot"]);
234
178
  /**
235
179
  * Starts the actor.
@@ -275,10 +219,6 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
275
219
  * ```
276
220
  */
277
221
  send(event: EventFromLogic<TMachine>): void;
278
- /**
279
- * Returns the current snapshot
280
- */
281
- getSnapshot(): ReturnType<Actor<TMachine>["getSnapshot"]>;
282
222
  /**
283
223
  * Subscribes to the snapshot updates of this actor.
284
224
  *
@@ -299,16 +239,6 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
299
239
  * @returns The subscription, with an `unsubscribe()` method.
300
240
  */
301
241
  subscribe(nextListener?: (snapshot: SnapshotFrom<TMachine>) => void, errorListener?: (error: unknown) => void, completeListener?: () => void): Subscription;
302
- /**
303
- * Listens for the events that this actor emits with the `emit` action.
304
- *
305
- * @param type - The type of the emitted event to listen for, or `"*"` for every event.
306
- * @param handler - The actor calls it with each emitted event that matches.
307
- * @returns The subscription, with an `unsubscribe()` method.
308
- */
309
- on<TType extends EmittedFrom<TMachine>["type"] | "*">(type: TType, handler: (emitted: EmittedFrom<TMachine> & (TType extends "*" ? unknown : {
310
- type: TType;
311
- })) => void): Subscription;
312
242
  /**
313
243
  * Returns the persisted snapshot of this actor.
314
244
  *
@@ -317,20 +247,26 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
317
247
  */
318
248
  getPersistedSnapshot(options?: unknown): Snapshot<unknown>;
319
249
  /**
320
- * Derives the view at the entry of a state, and keeps it. This happens one time for
321
- * each transition. The signal holds the view, and the code computes it not on each
322
- * read.
250
+ * The point where a capability derives its own atoms from a new snapshot.
323
251
  *
324
- * @param snapshot - The current XState snapshot
325
- */
326
- private validateAndCacheView;
327
- /**
328
- * The dispose method, for the cleanup. It is the alias of {@link stop}.
252
+ * The base derives nothing: `PlayActor` asks for `state` and `send`, and this class
253
+ * gives exactly those.
254
+ *
255
+ * A capability that PUBLISHES a value overrides this method NOT. It derives the value
256
+ * with a computed atom over `state`, as `withRouting` and `withView` both do, and the
257
+ * engine then evaluates every derivation from the one write of a transition, in
258
+ * topological order. The composition order therefore decides no value.
259
+ *
260
+ * This method remains for a capability that must run an EFFECT on a transition. Such a
261
+ * mixin overrides it and calls `super.onSnapshot(snapshot)` FIRST, so that every
262
+ * capability composed before it runs its own effect first.
263
+ *
264
+ * The method runs after `state` holds the new snapshot and before the `onStateChange`
265
+ * hook of the options.
329
266
  *
330
- * @deprecated Use {@link stop}, or a `using` declaration. Will be removed in the
331
- * next major.
267
+ * @param snapshot - The stable snapshot of this transition.
332
268
  */
333
- dispose(): void;
269
+ protected onSnapshot(snapshot: AnyMachineSnapshot): void;
334
270
  /**
335
271
  * Stops the actor when the scope of a `using` declaration ends.
336
272
  *
@@ -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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"}