@xmachines/play-xstate 1.0.0-beta.8 → 1.0.0-beta.9
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 +25 -19
- package/dist/catalog/validate-props.d.ts +17 -2
- package/dist/catalog/validate-props.d.ts.map +1 -1
- package/dist/catalog/validate-props.js +3 -23
- package/dist/catalog/validate-props.js.map +1 -1
- package/dist/guards/compose.d.ts +7 -3
- package/dist/guards/compose.d.ts.map +1 -1
- package/dist/guards/compose.js +26 -0
- package/dist/guards/compose.js.map +1 -1
- package/dist/player-actor.d.ts +2 -3
- package/dist/player-actor.d.ts.map +1 -1
- package/dist/player-actor.js +19 -5
- package/dist/player-actor.js.map +1 -1
- package/dist/player-actor.typecheck.js +4 -2
- package/dist/player-actor.typecheck.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -19,22 +19,15 @@ Per [RFC Play v1](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md),
|
|
|
19
19
|
## Installation
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
npm install xstate@^5.0.0
|
|
22
|
+
npm install xstate@^5.0.0
|
|
23
23
|
npm install @xmachines/play-xstate
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
## Current Exports
|
|
27
|
-
|
|
28
|
-
- `definePlayer`, `PlayerActor`
|
|
29
|
-
- player types: `PlayerConfig`, `PlayerOptions`, `PlayerFactory`
|
|
30
|
-
- guard utilities: `composeGuards`, `composeGuardsOr`, `negateGuard`, `hasContext`, `eventMatches`, `stateMatches`
|
|
31
|
-
- routing utilities: `deriveRoute`, `isAbsoluteRoute`, `buildRouteUrl`, `formatPlayRouteTransitions`
|
|
32
|
-
- catalog utilities: `validateComponentBinding`, `validateViewProps`, `mergeViewProps`
|
|
33
|
-
|
|
34
26
|
**Peer dependencies:**
|
|
35
27
|
|
|
36
|
-
- `xstate` ^5.0.0
|
|
37
|
-
|
|
28
|
+
- `xstate` ^5.0.0 — State machine runtime
|
|
29
|
+
|
|
30
|
+
> `zod` is a direct dependency of `@xmachines/play-xstate` (not a peer). You do not need to install it separately unless you use it in your own catalog schemas.
|
|
38
31
|
|
|
39
32
|
## Quick Start
|
|
40
33
|
|
|
@@ -152,20 +145,33 @@ Concrete actor implementing Play signal protocol:
|
|
|
152
145
|
|
|
153
146
|
**Signal Properties:**
|
|
154
147
|
|
|
155
|
-
- `state: Signal.State<AnyMachineSnapshot>`
|
|
156
|
-
- `currentRoute: Signal.Computed<string | null>`
|
|
157
|
-
- `currentView: Signal.State<ViewMetadata | null>`
|
|
148
|
+
- `state: Signal.State<AnyMachineSnapshot>` — Reactive snapshot of current state
|
|
149
|
+
- `currentRoute: Signal.Computed<string | null>` — Derived navigation path
|
|
150
|
+
- `currentView: Signal.State<ViewMetadata | null>` — Current UI structure (updated at state entry)
|
|
158
151
|
|
|
159
152
|
**Actor Properties:**
|
|
160
153
|
|
|
161
|
-
- `catalog: Catalog`
|
|
154
|
+
- `catalog: Catalog` — Component catalog
|
|
155
|
+
|
|
156
|
+
**Constructor:**
|
|
157
|
+
|
|
158
|
+
```typescript
|
|
159
|
+
new PlayerActor(machine, catalog, options, input?)
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
- `input` — Typed as `InputFrom<TMachine>`. Consumers receive compile-time validation against the machine's input schema. Pass initial context values required by the machine.
|
|
162
163
|
|
|
163
164
|
**Methods:**
|
|
164
165
|
|
|
165
|
-
- `start()`
|
|
166
|
-
- `stop()`
|
|
167
|
-
- `send(event: PlayEvent)`
|
|
168
|
-
- `dispose()`
|
|
166
|
+
- `start()` — Start the actor (must call after creation)
|
|
167
|
+
- `stop()` — Stop the actor
|
|
168
|
+
- `send(event: PlayEvent)` — Send event to actor
|
|
169
|
+
- `dispose()` — Convenience cleanup (calls stop())
|
|
170
|
+
|
|
171
|
+
**Prop validation modes** (via `PlayerOptions.propValidation`):
|
|
172
|
+
|
|
173
|
+
- `"lenient"` (default) — On catalog prop validation failure, calls `onError` hook and renders with unvalidated props
|
|
174
|
+
- `"strict"` — On catalog prop validation failure, calls `onError` hook and sets `currentView` to `null` (blocks render)
|
|
169
175
|
|
|
170
176
|
**Example:**
|
|
171
177
|
|
|
@@ -14,7 +14,22 @@ export type ValidationResult = {
|
|
|
14
14
|
error: z.ZodError | Error;
|
|
15
15
|
};
|
|
16
16
|
/**
|
|
17
|
-
* Validate view props against Zod schema
|
|
17
|
+
* Validate view props against Zod schema — generic overload for typed catalogs
|
|
18
|
+
*
|
|
19
|
+
* When called with a typed catalog, `componentName` is constrained to `keyof TCatalog`.
|
|
20
|
+
* Malformed catalog entries or unknown component names produce compile-time errors
|
|
21
|
+
* rather than runtime failures.
|
|
22
|
+
*
|
|
23
|
+
* @typeParam TCatalog - Catalog type (must extend Catalog)
|
|
24
|
+
*
|
|
25
|
+
* @param componentName - Component name constrained to string keys of TCatalog
|
|
26
|
+
* @param props - Props to validate
|
|
27
|
+
* @param catalog - Typed component catalog
|
|
28
|
+
* @returns Zod parse result
|
|
29
|
+
*/
|
|
30
|
+
export declare function validateViewProps<TCatalog extends Catalog>(componentName: keyof TCatalog & string, props: unknown, catalog: TCatalog): ValidationResult;
|
|
31
|
+
/**
|
|
32
|
+
* Validate view props against Zod schema — base overload for untyped catalogs
|
|
18
33
|
*
|
|
19
34
|
* Per CONTEXT.md:
|
|
20
35
|
* - "Prop validation: At state entry"
|
|
@@ -36,7 +51,7 @@ export type ValidationResult = {
|
|
|
36
51
|
* @param catalog - Component catalog with schemas
|
|
37
52
|
* @returns Zod parse result
|
|
38
53
|
*/
|
|
39
|
-
export declare
|
|
54
|
+
export declare function validateViewProps(componentName: string, props: unknown, catalog: Catalog): ValidationResult;
|
|
40
55
|
/**
|
|
41
56
|
* Merge view metadata with context for props
|
|
42
57
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-props.d.ts","sourceRoot":"","sources":["../../src/catalog/validate-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,MAAM,gBAAgB,GAAG;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACzB;IACA,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7B,GACD;IACA,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;CACzB,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,
|
|
1
|
+
{"version":3,"file":"validate-props.d.ts","sourceRoot":"","sources":["../../src/catalog/validate-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,MAAM,gBAAgB,GAAG;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACzB;IACA,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7B,GACD;IACA,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;CACzB,CAAC;AAEL;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,SAAS,OAAO,EACzD,aAAa,EAAE,MAAM,QAAQ,GAAG,MAAM,EACtC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,QAAQ,GACf,gBAAgB,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAChC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,GACd,gBAAgB,CAAC;AAsCpB;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GAC1B,MAAM,YAAY,EAClB,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,KAC1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAkDxB,CAAC;AAiEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,OAAO,KAAG,MAEpD,CAAC"}
|
|
@@ -1,27 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Per CONTEXT.md:
|
|
5
|
-
* - "Prop validation: At state entry"
|
|
6
|
-
* - "currentView derivation: Merge meta.view with relevant context data"
|
|
7
|
-
*
|
|
8
|
-
* Per RESEARCH.md Pattern 4: Use safeParse() for validation
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```typescript
|
|
12
|
-
* const props = { userId: '123', stats: { logins: 5 } };
|
|
13
|
-
* const result = validateViewProps('Dashboard', props, catalog);
|
|
14
|
-
* if (!result.success) {
|
|
15
|
-
* console.error(result.error);
|
|
16
|
-
* }
|
|
17
|
-
* ```
|
|
18
|
-
*
|
|
19
|
-
* @param componentName - Component name from catalog
|
|
20
|
-
* @param props - Props to validate
|
|
21
|
-
* @param catalog - Component catalog with schemas
|
|
22
|
-
* @returns Zod parse result
|
|
2
|
+
* Implementation — shared by both overloads
|
|
23
3
|
*/
|
|
24
|
-
export
|
|
4
|
+
export function validateViewProps(componentName, props, catalog) {
|
|
25
5
|
const entry = catalog[componentName];
|
|
26
6
|
if (!entry) {
|
|
27
7
|
return {
|
|
@@ -43,7 +23,7 @@ export const validateViewProps = (componentName, props, catalog) => {
|
|
|
43
23
|
success: true,
|
|
44
24
|
data: result.data,
|
|
45
25
|
};
|
|
46
|
-
}
|
|
26
|
+
}
|
|
47
27
|
/**
|
|
48
28
|
* Merge view metadata with context for props
|
|
49
29
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-props.js","sourceRoot":"","sources":["../../src/catalog/validate-props.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate-props.js","sourceRoot":"","sources":["../../src/catalog/validate-props.ts"],"names":[],"mappings":"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"}
|
package/dist/guards/compose.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import type { GuardPredicate } from "xstate";
|
|
1
2
|
import type { Guard, GuardArray } from "./types.js";
|
|
3
|
+
import type { MachineContext, EventObject, ParameterizedObject } from "xstate";
|
|
4
|
+
type ComposedGuard = GuardPredicate<MachineContext, EventObject, unknown, ParameterizedObject>;
|
|
2
5
|
/**
|
|
3
6
|
* Compose guards with AND logic using XState's and() helper
|
|
4
7
|
*
|
|
@@ -54,7 +57,7 @@ import type { Guard, GuardArray } from "./types.js";
|
|
|
54
57
|
* @see {@link composeGuardsOr} for OR composition
|
|
55
58
|
* @see {@link negateGuard} for NOT logic
|
|
56
59
|
*/
|
|
57
|
-
export declare const composeGuards: <TContext = any, TEvent = any>(guards: GuardArray<TContext, TEvent>) =>
|
|
60
|
+
export declare const composeGuards: <TContext = any, TEvent = any>(guards: GuardArray<TContext, TEvent>) => ComposedGuard;
|
|
58
61
|
/**
|
|
59
62
|
* Compose guards with OR logic using XState's or() helper
|
|
60
63
|
*
|
|
@@ -95,7 +98,7 @@ export declare const composeGuards: <TContext = any, TEvent = any>(guards: Guard
|
|
|
95
98
|
* @see {@link composeGuards} for AND composition
|
|
96
99
|
* @see {@link negateGuard} for NOT logic
|
|
97
100
|
*/
|
|
98
|
-
export declare const composeGuardsOr: <TContext = any, TEvent = any>(guards: GuardArray<TContext, TEvent>) =>
|
|
101
|
+
export declare const composeGuardsOr: <TContext = any, TEvent = any>(guards: GuardArray<TContext, TEvent>) => ComposedGuard;
|
|
99
102
|
/**
|
|
100
103
|
* Negate a guard using XState's not() helper
|
|
101
104
|
*
|
|
@@ -132,5 +135,6 @@ export declare const composeGuardsOr: <TContext = any, TEvent = any>(guards: Gua
|
|
|
132
135
|
* @see {@link composeGuards} for AND composition
|
|
133
136
|
* @see {@link composeGuardsOr} for OR composition
|
|
134
137
|
*/
|
|
135
|
-
export declare const negateGuard: <TContext = any, TEvent = any>(guard: Guard<TContext, TEvent> | string) =>
|
|
138
|
+
export declare const negateGuard: <TContext = any, TEvent = any>(guard: Guard<TContext, TEvent> | string) => ComposedGuard;
|
|
139
|
+
export {};
|
|
136
140
|
//# sourceMappingURL=compose.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/guards/compose.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/guards/compose.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAK/E,KAAK,aAAa,GAAG,cAAc,CAAC,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;AAE/F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,eAAO,MAAM,aAAa,GAAI,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,EACzD,QAAQ,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,KAClC,aAqBF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,eAAO,MAAM,eAAe,GAAI,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,EAC3D,QAAQ,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,KAClC,aAmBF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,eAAO,MAAM,WAAW,GAAI,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,EACvD,OAAO,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,KACrC,aAOF,CAAC"}
|
package/dist/guards/compose.js
CHANGED
|
@@ -54,15 +54,25 @@ import { and, or, not } from "xstate";
|
|
|
54
54
|
* @see {@link composeGuardsOr} for OR composition
|
|
55
55
|
* @see {@link negateGuard} for NOT logic
|
|
56
56
|
*/
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
57
58
|
export const composeGuards = (guards) => {
|
|
58
59
|
if (guards.length === 0) {
|
|
59
60
|
throw new Error("composeGuards requires at least one guard");
|
|
60
61
|
}
|
|
61
62
|
if (guards.length === 1) {
|
|
63
|
+
// Single guard passthrough — cast through unknown because our Guard<TContext, TEvent>
|
|
64
|
+
// does not structurally match ComposedGuard at compile time (generic event mismatch).
|
|
65
|
+
// At runtime both are plain function objects with identical shape.
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
62
67
|
return guards[0];
|
|
63
68
|
}
|
|
64
69
|
// Use XState's built-in and() for type inference and serialization
|
|
65
70
|
// Per RESEARCH.md: Don't hand-roll guard composition
|
|
71
|
+
// XState 5.28.0: and() requires `readonly [...tuple]` but our GuardArray is a mutable array.
|
|
72
|
+
// We cast through unknown to express the narrowest possible type boundary rather than
|
|
73
|
+
// escaping to `any`. The runtime value is identical.
|
|
74
|
+
// Track XState typing improvements: https://github.com/statelyai/xstate/issues
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
66
76
|
return and(guards);
|
|
67
77
|
};
|
|
68
78
|
/**
|
|
@@ -105,13 +115,23 @@ export const composeGuards = (guards) => {
|
|
|
105
115
|
* @see {@link composeGuards} for AND composition
|
|
106
116
|
* @see {@link negateGuard} for NOT logic
|
|
107
117
|
*/
|
|
118
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
108
119
|
export const composeGuardsOr = (guards) => {
|
|
109
120
|
if (guards.length === 0) {
|
|
110
121
|
throw new Error("composeGuardsOr requires at least one guard");
|
|
111
122
|
}
|
|
112
123
|
if (guards.length === 1) {
|
|
124
|
+
// Single guard passthrough — cast through unknown because our Guard<TContext, TEvent>
|
|
125
|
+
// does not structurally match ComposedGuard at compile time (generic event mismatch).
|
|
126
|
+
// At runtime both are plain function objects with identical shape.
|
|
127
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
113
128
|
return guards[0];
|
|
114
129
|
}
|
|
130
|
+
// XState 5.28.0: or() requires `readonly [...tuple]` but our GuardArray is a mutable array.
|
|
131
|
+
// We cast through unknown to express the narrowest possible type boundary rather than
|
|
132
|
+
// escaping to `any`. The runtime value is identical.
|
|
133
|
+
// Track XState typing improvements: https://github.com/statelyai/xstate/issues
|
|
134
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
115
135
|
return or(guards);
|
|
116
136
|
};
|
|
117
137
|
/**
|
|
@@ -150,7 +170,13 @@ export const composeGuardsOr = (guards) => {
|
|
|
150
170
|
* @see {@link composeGuards} for AND composition
|
|
151
171
|
* @see {@link composeGuardsOr} for OR composition
|
|
152
172
|
*/
|
|
173
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
153
174
|
export const negateGuard = (guard) => {
|
|
175
|
+
// XState 5.28.0: not() requires a specific SingleGuardArg shape, not our Guard type.
|
|
176
|
+
// We cast through unknown to express the narrowest possible type boundary rather than
|
|
177
|
+
// escaping to `any`. The runtime value is identical.
|
|
178
|
+
// Track XState typing improvements: https://github.com/statelyai/xstate/issues
|
|
179
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
154
180
|
return not(guard);
|
|
155
181
|
};
|
|
156
182
|
//# 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;
|
|
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;AAUtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC9D,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,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChE,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"}
|
package/dist/player-actor.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AnyStateMachine, type Actor, type AnyActorLogic, type AnyMachineSnapshot } from "xstate";
|
|
1
|
+
import { type AnyStateMachine, type Actor, type AnyActorLogic, type AnyMachineSnapshot, type InputFrom } from "xstate";
|
|
2
2
|
import { AbstractActor, type Routable, type Viewable, type ViewMetadata } from "@xmachines/play-actor";
|
|
3
3
|
import { Signal } from "@xmachines/play-signals";
|
|
4
4
|
import type { PlayEvent } from "@xmachines/play";
|
|
@@ -80,7 +80,6 @@ import type { Catalog } from "./catalog/types.js";
|
|
|
80
80
|
* cached and updated at state entry, not computed on every read.
|
|
81
81
|
*/
|
|
82
82
|
export declare class PlayerActor<TMachine extends AnyStateMachine> extends AbstractActor<AnyActorLogic> implements Routable, Viewable {
|
|
83
|
-
[key: string]: unknown;
|
|
84
83
|
private _xstateActor;
|
|
85
84
|
private _stateManager;
|
|
86
85
|
private _options;
|
|
@@ -91,7 +90,7 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
91
90
|
currentRoute: Signal.Computed<string | null>;
|
|
92
91
|
currentView: Signal.State<ViewMetadata | null>;
|
|
93
92
|
catalog: Catalog;
|
|
94
|
-
constructor(machine: TMachine, catalog: Catalog | null | undefined, options: PlayerOptions<TMachine>, input?:
|
|
93
|
+
constructor(machine: TMachine, catalog: Catalog | null | undefined, options: PlayerOptions<TMachine>, input?: InputFrom<TMachine>);
|
|
95
94
|
/**
|
|
96
95
|
* Start the actor
|
|
97
96
|
*
|
|
@@ -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,EAClB,KAAK,kBAAkB,EACvB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACN,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAQhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAkBlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AACH,qBAAa,WAAW,CAAC,QAAQ,SAAS,eAAe,CACxD,SAAQ,aAAa,CAAC,aAAa,CACnC,YAAW,QAAQ,EAAE,QAAQ;IAE7B,
|
|
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,EAClB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EAEd,MAAM,QAAQ,CAAC;AAChB,OAAO,EACN,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAQhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAkBlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AACH,qBAAa,WAAW,CAAC,QAAQ,SAAS,eAAe,CACxD,SAAQ,aAAa,CAAC,aAAa,CACnC,YAAW,QAAQ,EAAE,QAAQ;IAE7B,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,aAAa,CAKZ;IAGF,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;gBAGvB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EACnC,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,EAChC,KAAK,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC;IAwF5B;;;;OAIG;IACM,KAAK,IAAI,IAAI;IAWtB;;OAEG;IACM,IAAI,IAAI,IAAI;IAYrB;;;;;;;;;;;;;;;;OAgBG;IACM,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAsBrC;;OAEG;IACM,WAAW,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;IAIlE;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IA8G7B;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAGf"}
|
package/dist/player-actor.js
CHANGED
|
@@ -109,6 +109,13 @@ export class PlayerActor extends AbstractActor {
|
|
|
109
109
|
throw new Error("PlayerActor requires a valid XState machine");
|
|
110
110
|
}
|
|
111
111
|
// Create XState actor
|
|
112
|
+
// XState 5.28.0: createActor() options has a conditional type constraint on `input` that
|
|
113
|
+
// TypeScript cannot resolve against an unbound generic TMachine parameter.
|
|
114
|
+
// Option B: Cast to ActorOptions<TMachine> — narrower than `as any` because we remain
|
|
115
|
+
// within the XState type system. The `input` parameter is typed as InputFrom<TMachine>
|
|
116
|
+
// at the constructor call site, so consumers receive compile-time validation.
|
|
117
|
+
// Track XState typing improvements: https://github.com/statelyai/xstate/issues
|
|
118
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
112
119
|
const xstateActor = createActor(machine, { input });
|
|
113
120
|
// Defensive check: Validate actor was created successfully
|
|
114
121
|
if (!xstateActor) {
|
|
@@ -284,10 +291,11 @@ export class PlayerActor extends AbstractActor {
|
|
|
284
291
|
}
|
|
285
292
|
// Merge meta.view with context for props
|
|
286
293
|
const props = mergeViewProps(viewMeta, snapshot.context);
|
|
287
|
-
|
|
294
|
+
// Use reference equality for snapshot.value (XState snapshots are immutable)
|
|
295
|
+
// Per user decision (CONS-11): ref equality on snapshot.value, createMemoSignature for props
|
|
288
296
|
const propsSignature = createMemoSignature(props);
|
|
289
297
|
if (this._lastViewMemo &&
|
|
290
|
-
this._lastViewMemo.
|
|
298
|
+
this._lastViewMemo.snapshotValue === snapshot.value &&
|
|
291
299
|
this._lastViewMemo.component === viewMeta.component &&
|
|
292
300
|
this._lastViewMemo.propsSignature === propsSignature) {
|
|
293
301
|
this._viewSignal.set({
|
|
@@ -304,8 +312,14 @@ export class PlayerActor extends AbstractActor {
|
|
|
304
312
|
this._options.onError(this, new Error(`Invalid props for component "${viewMeta.component}": ${validation.error?.message || "Unknown error"}`));
|
|
305
313
|
}
|
|
306
314
|
console.error("View props validation failed:", validation.error);
|
|
307
|
-
//
|
|
308
|
-
|
|
315
|
+
// STRICT MODE (CONS-15): block rendering on validation failure
|
|
316
|
+
if (this._options.propValidation === "strict") {
|
|
317
|
+
this._lastViewMemo = null;
|
|
318
|
+
this._viewSignal.set(null);
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
// LENIENT MODE (default): fall through and render with unvalidated props
|
|
322
|
+
// Documented trade-off: components may receive malformed props but app stays visible
|
|
309
323
|
}
|
|
310
324
|
// Cache validated view structure (validated once at state entry)
|
|
311
325
|
const newView = {
|
|
@@ -313,7 +327,7 @@ export class PlayerActor extends AbstractActor {
|
|
|
313
327
|
props: validation.success ? validation.data : props,
|
|
314
328
|
};
|
|
315
329
|
this._lastViewMemo = {
|
|
316
|
-
|
|
330
|
+
snapshotValue: snapshot.value,
|
|
317
331
|
component: viewMeta.component,
|
|
318
332
|
propsSignature,
|
|
319
333
|
view: newView,
|
package/dist/player-actor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"player-actor.js","sourceRoot":"","sources":["../src/player-actor.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,
|
|
1
|
+
{"version":3,"file":"player-actor.js","sourceRoot":"","sources":["../src/player-actor.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,9 @@ const createPlayer = definePlayer({ machine, catalog: {} });
|
|
|
17
17
|
const actor = createPlayer({ value: 1 });
|
|
18
18
|
const catalogNotAny = false;
|
|
19
19
|
void catalogNotAny;
|
|
20
|
+
// CONS-16: [key: string]: unknown index signature removed.
|
|
21
|
+
// Accessing unknown properties on PlayerActor is now a type error (correct behavior).
|
|
22
|
+
// @ts-expect-error — unknown fields no longer accessible via index signature
|
|
20
23
|
const unknownField = actor["custom-extension-field"];
|
|
21
|
-
|
|
22
|
-
void extensionNotAny;
|
|
24
|
+
void unknownField;
|
|
23
25
|
//# sourceMappingURL=player-actor.typecheck.js.map
|
|
@@ -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;AAKlD,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,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAGzC,MAAM,aAAa,GAA8B,KAAK,CAAC;AACvD,KAAK,aAAa,CAAC;AAEnB,MAAM,YAAY,GAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC;
|
|
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;AAKlD,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,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAGzC,MAAM,aAAa,GAA8B,KAAK,CAAC;AACvD,KAAK,aAAa,CAAC;AAEnB,2DAA2D;AAC3D,sFAAsF;AACtF,6EAA6E;AAC7E,MAAM,YAAY,GAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACrD,KAAK,YAAY,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -29,6 +29,16 @@ export interface PlayerOptions<TMachine extends AnyStateMachine> {
|
|
|
29
29
|
onStateChange?: (actor: PlayerActorClass<TMachine>, state: SnapshotFrom<TMachine>) => void;
|
|
30
30
|
/** Called on actor errors */
|
|
31
31
|
onError?: (actor: PlayerActorClass<TMachine>, error: Error) => void;
|
|
32
|
+
/**
|
|
33
|
+
* Prop validation failure mode (default: 'lenient')
|
|
34
|
+
*
|
|
35
|
+
* - 'lenient': On validation failure, call onError hook and render with
|
|
36
|
+
* unvalidated props (current behavior). Documents as explicit trade-off.
|
|
37
|
+
* - 'strict': On validation failure, call onError hook and set viewSignal
|
|
38
|
+
* to null (no render). Blocks rendering until machine transitions to a
|
|
39
|
+
* state with valid props.
|
|
40
|
+
*/
|
|
41
|
+
propValidation?: "strict" | "lenient";
|
|
32
42
|
}
|
|
33
43
|
/**
|
|
34
44
|
* Factory function returned by definePlayer()
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEzE;;;;GAIG;AACH,MAAM,WAAW,YAAY,CAC5B,QAAQ,SAAS,eAAe,EAChC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAElC,8BAA8B;IAC9B,OAAO,EAAE,QAAQ,CAAC;IAElB,mEAAmE;IACnE,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB,wCAAwC;IACxC,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa,CAAC,QAAQ,SAAS,eAAe;IAC9D,+BAA+B;IAC/B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAEtD,8BAA8B;IAC9B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAErD,uCAAuC;IACvC,YAAY,CAAC,EAAE,CACd,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EACjC,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,EACjC,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,KAC7B,IAAI,CAAC;IAEV,uCAAuC;IACvC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAE3F,6BAA6B;IAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEzE;;;;GAIG;AACH,MAAM,WAAW,YAAY,CAC5B,QAAQ,SAAS,eAAe,EAChC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAElC,8BAA8B;IAC9B,OAAO,EAAE,QAAQ,CAAC;IAElB,mEAAmE;IACnE,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB,wCAAwC;IACxC,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa,CAAC,QAAQ,SAAS,eAAe;IAC9D,+BAA+B;IAC/B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAEtD,8BAA8B;IAC9B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAErD,uCAAuC;IACvC,YAAY,CAAC,EAAE,CACd,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EACjC,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,EACjC,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,KAC7B,IAAI,CAAC;IAEV,uCAAuC;IACvC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAE3F,6BAA6B;IAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEpE;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACtC;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,CAAC,QAAQ,SAAS,eAAe,IAAI,CAC7D,KAAK,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,KACvB,gBAAgB,CAAC,QAAQ,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xmachines/play-xstate",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.9",
|
|
4
4
|
"description": "XState v5 adapter for Play Architecture",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"actor-model",
|
|
@@ -36,16 +36,16 @@
|
|
|
36
36
|
"prepublishOnly": "npm run build"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@xmachines/play": "1.0.0-beta.
|
|
40
|
-
"@xmachines/play-actor": "1.0.0-beta.
|
|
41
|
-
"@xmachines/play-catalog": "1.0.0-beta.
|
|
42
|
-
"@xmachines/play-signals": "1.0.0-beta.
|
|
39
|
+
"@xmachines/play": "1.0.0-beta.9",
|
|
40
|
+
"@xmachines/play-actor": "1.0.0-beta.9",
|
|
41
|
+
"@xmachines/play-catalog": "1.0.0-beta.9",
|
|
42
|
+
"@xmachines/play-signals": "1.0.0-beta.9",
|
|
43
43
|
"zod": "^4.3.6"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@xmachines/shared": "1.0.0-beta.
|
|
46
|
+
"@xmachines/shared": "1.0.0-beta.9"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"xstate": "^5.
|
|
49
|
+
"xstate": "^5.0.0"
|
|
50
50
|
}
|
|
51
51
|
}
|