@xmachines/play-router 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.
- package/README.md +9 -17
- package/dist/create-route-map.d.ts +1 -1
- package/dist/create-route-map.js +1 -1
- package/dist/extract-routes.d.ts +1 -1
- package/dist/extract-routes.js +1 -1
- package/dist/machine-to-graph.d.ts.map +1 -1
- package/dist/machine-to-graph.js +3 -13
- package/dist/machine-to-graph.js.map +1 -1
- package/dist/types.d.ts +1 -20
- package/dist/types.d.ts.map +1 -1
- package/package.json +23 -22
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<!-- generated-by: gsd-doc-writer -->
|
|
2
|
-
|
|
3
1
|
# @xmachines/play-router
|
|
4
2
|
|
|
5
|
-
Route tree extraction from XState
|
|
3
|
+
Route tree extraction from XState v5 state machines. Part of [@xmachines/play](../play/README.md) Universal Player Architecture.
|
|
4
|
+
|
|
5
|
+
[](https://opensource.org/licenses/MIT) [](https://www.npmjs.com/package/@xmachines/play-router)
|
|
6
6
|
|
|
7
7
|
Graph-based route extraction and bidirectional lookup enabling Actor Authority over navigation.
|
|
8
8
|
|
|
@@ -11,13 +11,13 @@ Part of the [xmachines-js monorepo](../../README.md).
|
|
|
11
11
|
## Installation
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
pnpm add xstate@^
|
|
14
|
+
pnpm add xstate@^5.31.0
|
|
15
15
|
pnpm add @xmachines/play-router
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
**Peer dependencies:**
|
|
19
19
|
|
|
20
|
-
- `xstate` ^
|
|
20
|
+
- `xstate` ^5.31.0 — XState v5 state machine runtime
|
|
21
21
|
|
|
22
22
|
**URLPattern polyfill (Node.js < 24 / older browsers):**
|
|
23
23
|
|
|
@@ -43,16 +43,10 @@ pnpm add urlpattern-polyfill
|
|
|
43
43
|
### Extract routes from a machine
|
|
44
44
|
|
|
45
45
|
```typescript
|
|
46
|
-
import {
|
|
46
|
+
import { createMachine } from "xstate";
|
|
47
47
|
import { extractMachineRoutes, createRouteMap } from "@xmachines/play-router";
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
// without it, XState v6 types `meta` as `never`.
|
|
51
|
-
const machine = setup({
|
|
52
|
-
schemas: {
|
|
53
|
-
meta: types<{ route?: string }>(),
|
|
54
|
-
},
|
|
55
|
-
}).createMachine({
|
|
49
|
+
const machine = createMachine({
|
|
56
50
|
id: "app",
|
|
57
51
|
initial: "home",
|
|
58
52
|
states: {
|
|
@@ -189,8 +183,6 @@ bridge.disconnect();
|
|
|
189
183
|
| `buildRouteTree(routes)` | Build a `RouteTree` from an array of `RouteInfo` objects |
|
|
190
184
|
| `machineToGraph(machine)` | Convert a machine to a typed `@statelyai/graph` `Graph` for graph algorithm access |
|
|
191
185
|
|
|
192
|
-
> **Graph shape under XState v6:** machines wired by `formatPlayRouteTransitions` expose their route navigation as statically-targeted `xstate.route` edges (one per routed state) plus a single dynamic `play.route` forwarder edge — tooling that previously filtered for per-route `play.route` edges should query `xstate.route` instead. Edge data marks guard presence with `guarded: true`; guard _names_ are unrecoverable under v6 (`guardType` is never populated).
|
|
193
|
-
|
|
194
186
|
### Route Matching
|
|
195
187
|
|
|
196
188
|
| Export | Description |
|
|
@@ -279,7 +271,7 @@ try {
|
|
|
279
271
|
|
|
280
272
|
### `meta.route` patterns
|
|
281
273
|
|
|
282
|
-
Routes are declared on XState state nodes via the `meta.route` field
|
|
274
|
+
Routes are declared on XState state nodes via the `meta.route` field:
|
|
283
275
|
|
|
284
276
|
```typescript
|
|
285
277
|
states: {
|
|
@@ -358,7 +350,7 @@ runBridgeContractTests({
|
|
|
358
350
|
- **[@xmachines/play](../play/README.md)** — Core protocol types (`PlayEvent`, `PlayError`)
|
|
359
351
|
- **[@xmachines/play-actor](../play-actor/README.md)** — Abstract actor base class (`AbstractActor`, `Routable`); all `AbstractActor` subclasses satisfy `RoutableActor` structurally
|
|
360
352
|
- **[@xmachines/play-signals](../play-signals/README.md)** — TC39 Signals polyfill used for actor route observation
|
|
361
|
-
- **[@xmachines/play-xstate](../play-xstate/README.md)** — XState
|
|
353
|
+
- **[@xmachines/play-xstate](../play-xstate/README.md)** — XState v5 logic adapter that integrates with route trees
|
|
362
354
|
- **[@xmachines/play-tanstack-router](../play-tanstack-router/README.md)** — Shared TanStack Router bridge base (framework-agnostic)
|
|
363
355
|
- **[@xmachines/play-tanstack-react-router](../play-tanstack-react-router/README.md)** — TanStack Router adapter (React)
|
|
364
356
|
- **[@xmachines/play-tanstack-solid-router](../play-tanstack-solid-router/README.md)** — TanStack Router adapter (SolidJS)
|
|
@@ -24,7 +24,7 @@ export interface RouteMapOptions {
|
|
|
24
24
|
* subclasses to translate browser URL changes into `play.route` actor events and
|
|
25
25
|
* vice-versa.
|
|
26
26
|
*
|
|
27
|
-
* @param machine - XState
|
|
27
|
+
* @param machine - XState v5 state machine with `meta.route` annotations on states.
|
|
28
28
|
* @param options - Optional configuration. Pass `{ cacheSize }` to override the
|
|
29
29
|
* default LRU cache size for parameterized path lookups.
|
|
30
30
|
* @returns A `RouteMap` for passing to any `RouterBridgeBase`-based adapter.
|
package/dist/create-route-map.js
CHANGED
|
@@ -9,7 +9,7 @@ import { RouteMap } from "./base-route-map.js";
|
|
|
9
9
|
* subclasses to translate browser URL changes into `play.route` actor events and
|
|
10
10
|
* vice-versa.
|
|
11
11
|
*
|
|
12
|
-
* @param machine - XState
|
|
12
|
+
* @param machine - XState v5 state machine with `meta.route` annotations on states.
|
|
13
13
|
* @param options - Optional configuration. Pass `{ cacheSize }` to override the
|
|
14
14
|
* default LRU cache size for parameterized path lookups.
|
|
15
15
|
* @returns A `RouteMap` for passing to any `RouterBridgeBase`-based adapter.
|
package/dist/extract-routes.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { RouteTree } from "./types.js";
|
|
|
8
8
|
* and build a hierarchical RouteTree. The graph is attached to the returned
|
|
9
9
|
* RouteTree for downstream transition-aware queries.
|
|
10
10
|
*
|
|
11
|
-
* @param machine - XState
|
|
11
|
+
* @param machine - XState v5 state machine
|
|
12
12
|
* @returns Route tree with root, byStateId map, byPath map, and graph
|
|
13
13
|
*/
|
|
14
14
|
export declare const extractMachineRoutes: (machine: AnyStateMachine) => RouteTree;
|
package/dist/extract-routes.js
CHANGED
|
@@ -60,7 +60,7 @@ const extractRouteFromNode = (graphNode, stateIds, graphNodeMap) => {
|
|
|
60
60
|
* and build a hierarchical RouteTree. The graph is attached to the returned
|
|
61
61
|
* RouteTree for downstream transition-aware queries.
|
|
62
62
|
*
|
|
63
|
-
* @param machine - XState
|
|
63
|
+
* @param machine - XState v5 state machine
|
|
64
64
|
* @returns Route tree with root, byStateId map, byPath map, and graph
|
|
65
65
|
*/
|
|
66
66
|
export const extractMachineRoutes = (machine) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"machine-to-graph.d.ts","sourceRoot":"","sources":["../src/machine-to-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGnE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAqDnE,eAAO,MAAM,cAAc,GAAI,SAAS,eAAe,KAAG,
|
|
1
|
+
{"version":3,"file":"machine-to-graph.d.ts","sourceRoot":"","sources":["../src/machine-to-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGnE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAqDnE,eAAO,MAAM,cAAc,GAAI,SAAS,eAAe,KAAG,YAwEzD,CAAC"}
|
package/dist/machine-to-graph.js
CHANGED
|
@@ -2,7 +2,7 @@ import { toDirectedGraph } from "xstate/graph";
|
|
|
2
2
|
import { createGraph } from "@statelyai/graph";
|
|
3
3
|
import { UnknownStateTypeError } from "./errors.js";
|
|
4
4
|
/**
|
|
5
|
-
* Convert an XState
|
|
5
|
+
* Convert an XState v5 state machine to a typed @statelyai/graph Graph.
|
|
6
6
|
*
|
|
7
7
|
* The conversion pipeline is:
|
|
8
8
|
* `XState Machine → toDirectedGraph() → DirectedGraphNode hierarchy → createGraph() → Graph`
|
|
@@ -12,7 +12,7 @@ import { UnknownStateTypeError } from "./errors.js";
|
|
|
12
12
|
* - **Edges**: all transitions with event types and optional guard types
|
|
13
13
|
* - **Metadata**: state type, meta object, and extracted route path
|
|
14
14
|
*
|
|
15
|
-
* @param machine - XState
|
|
15
|
+
* @param machine - XState v5 state machine (any shape)
|
|
16
16
|
* @returns Typed directed graph with MachineNodeData on nodes and MachineEdgeData on edges
|
|
17
17
|
*
|
|
18
18
|
* @example
|
|
@@ -90,17 +90,7 @@ export const machineToGraph = (machine) => {
|
|
|
90
90
|
eventType: edge.label.text,
|
|
91
91
|
};
|
|
92
92
|
if (edge.transition.guard) {
|
|
93
|
-
|
|
94
|
-
// names via createMachineFromConfig), so guard identity is
|
|
95
|
-
// unrecoverable statically — `guarded` marks the edge as gated
|
|
96
|
-
// without pretending to know by what. (`guardType` is never populated
|
|
97
|
-
// under v6; see its deprecation note.)
|
|
98
|
-
edgeData.guarded = true;
|
|
99
|
-
}
|
|
100
|
-
if (typeof edge.transition.to === "function") {
|
|
101
|
-
// XState v6: authored function transitions act as their own
|
|
102
|
-
// guard/resolver — target and conditionality are dynamic.
|
|
103
|
-
edgeData.dynamic = true;
|
|
93
|
+
edgeData.guardType = String(edge.transition.guard);
|
|
104
94
|
}
|
|
105
95
|
edges.push({
|
|
106
96
|
id: `e${edgeCounter++}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"machine-to-graph.js","sourceRoot":"","sources":["../src/machine-to-graph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA0B,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,WAAW,EAAc,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAepD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH;;;GAGG;AACH,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IACtD,QAAQ;IACR,UAAU;IACV,UAAU;IACV,OAAO;IACP,SAAS;CACT,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAwB,EAAgB,EAAE;IACxE,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAEpC,iEAAiE;IACjE,MAAM,KAAK,GAAoE,EAAE,CAAC;IAClF,MAAM,KAAK,GAKN,EAAE,CAAC;IACR,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,CAAC,MAAyB,EAAE,QAAiB,EAAQ,EAAE;QACnE,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,EAAE,CAAC,IAA2C,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,KAAK,GACV,OAAO,SAAS,KAAK,QAAQ;YAC5B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAI,MAAM,IAAI,SAAS;gBAC3E,CAAC,CAAE,SAA8B,CAAC,IAAI;gBACtC,CAAC,CAAC,SAAS,CAAC;QAEf,wDAAwD;QACxD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,QAAQ,GAAoB;YACjC,OAAO,EAAE,EAAE,CAAC,EAAE;YACd,IAAI,EAAE,EAAE,CAAC,IAA+B;SACxC,CAAC;QACF,IAAI,IAAI,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QAC7C,IAAI,KAAK,KAAK,SAAS;YAAE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QAEhD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,0EAA0E;QAC1E,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAoB;gBACjC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;aAC1B,CAAC;YACF,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC3B,
|
|
1
|
+
{"version":3,"file":"machine-to-graph.js","sourceRoot":"","sources":["../src/machine-to-graph.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -22,27 +22,8 @@ export interface MachineNodeData {
|
|
|
22
22
|
export interface MachineEdgeData {
|
|
23
23
|
/** The event type that triggers this transition */
|
|
24
24
|
eventType: string;
|
|
25
|
-
/**
|
|
26
|
-
* @deprecated Never populated under XState v6: every guard (including
|
|
27
|
-
* JSON-layer guard names via `createMachineFromConfig`) compiles to a
|
|
28
|
-
* function, so guard identity is unrecoverable statically. Use
|
|
29
|
-
* {@link MachineEdgeData.guarded} instead.
|
|
30
|
-
*/
|
|
25
|
+
/** String representation of guard (if any) */
|
|
31
26
|
guardType?: string;
|
|
32
|
-
/**
|
|
33
|
-
* True when a guard function gates this transition. XState v6 compiles all
|
|
34
|
-
* guards to functions (authored predicates, JSON-layer names, and the
|
|
35
|
-
* route-matching guard synthesized on native route transitions), so only
|
|
36
|
-
* the presence of a guard — not its identity — is statically knowable.
|
|
37
|
-
*/
|
|
38
|
-
guarded?: boolean;
|
|
39
|
-
/**
|
|
40
|
-
* True when the transition is an XState v6 function transition: the function
|
|
41
|
-
* acts as its own guard/resolver, so its target and conditionality are
|
|
42
|
-
* dynamic and unknowable statically (the edge's target falls back to the
|
|
43
|
-
* source state).
|
|
44
|
-
*/
|
|
45
|
-
dynamic?: boolean;
|
|
46
27
|
}
|
|
47
28
|
/**
|
|
48
29
|
* Routing protocol type definitions for @xmachines/play-router
|
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,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IAC/D,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xmachines/play-router",
|
|
3
|
-
"version": "2.0.0
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Route tree extraction from XState v5 state machines. Part of @xmachines/play Universal Player Architecture.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"routing",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"author": "XMachines",
|
|
14
14
|
"repository": {
|
|
15
15
|
"type": "git",
|
|
16
|
-
"url": "git+
|
|
16
|
+
"url": "git+https://gitlab.com/xmachin-es/xmachines-js.git",
|
|
17
17
|
"directory": "packages/play-router"
|
|
18
18
|
},
|
|
19
19
|
"files": [
|
|
@@ -22,51 +22,52 @@
|
|
|
22
22
|
"LICENSE"
|
|
23
23
|
],
|
|
24
24
|
"type": "module",
|
|
25
|
+
"sideEffects": false,
|
|
26
|
+
"main": "./dist/index.js",
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
25
28
|
"exports": {
|
|
26
29
|
".": {
|
|
27
|
-
"source": "./src/index.ts",
|
|
28
30
|
"types": "./dist/index.d.ts",
|
|
29
|
-
"
|
|
31
|
+
"default": "./dist/index.js"
|
|
30
32
|
},
|
|
31
33
|
"./errors": {
|
|
32
|
-
"source": "./src/errors.ts",
|
|
33
34
|
"types": "./dist/errors.d.ts",
|
|
34
|
-
"
|
|
35
|
-
}
|
|
35
|
+
"default": "./dist/errors.js"
|
|
36
|
+
},
|
|
37
|
+
"./package.json": "./package.json"
|
|
36
38
|
},
|
|
37
39
|
"publishConfig": {
|
|
38
40
|
"access": "public"
|
|
39
41
|
},
|
|
40
42
|
"scripts": {
|
|
41
|
-
"build": "tsc --build",
|
|
43
|
+
"build": "vite build && tsc --build",
|
|
42
44
|
"clean": "rm -rf dist *.tsbuildinfo coverage .vitest-attachments test/browser/__screenshots__ node_modules/.svelte2tsx-* node_modules/.vite*",
|
|
43
45
|
"lint": "oxlint .",
|
|
44
46
|
"format": "oxfmt .",
|
|
45
|
-
"test": "vitest"
|
|
46
|
-
"prepublishOnly": "npm run build"
|
|
47
|
+
"test": "vitest"
|
|
47
48
|
},
|
|
48
49
|
"dependencies": {
|
|
49
50
|
"@statelyai/graph": "^2.1.0",
|
|
50
|
-
"@xmachines/play": "2.0.0
|
|
51
|
-
"@xmachines/play-actor": "2.0.0
|
|
52
|
-
"@xmachines/play-signals": "2.0.0
|
|
51
|
+
"@xmachines/play": "2.0.0",
|
|
52
|
+
"@xmachines/play-actor": "2.0.0",
|
|
53
|
+
"@xmachines/play-signals": "2.0.0",
|
|
53
54
|
"quick-lru": "^7.3.0"
|
|
54
55
|
},
|
|
55
56
|
"devDependencies": {
|
|
56
57
|
"@testing-library/jest-dom": "^6.9.1",
|
|
57
|
-
"@types/node": "^26.
|
|
58
|
-
"@vitest/browser-playwright": "^4.1.
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"oxlint": "^1.73.0",
|
|
58
|
+
"@types/node": "^26.2.0",
|
|
59
|
+
"@vitest/browser-playwright": "^4.1.11",
|
|
60
|
+
"oxfmt": "^0.64.0",
|
|
61
|
+
"oxlint": "^1.79.0",
|
|
62
62
|
"typescript": "^5.9.3 || ^6.0.3",
|
|
63
63
|
"urlpattern-polyfill": "^10.1.0",
|
|
64
|
-
"
|
|
65
|
-
"
|
|
64
|
+
"vite": "^8.0.10",
|
|
65
|
+
"vitest": "^4.1.11",
|
|
66
|
+
"xstate": "^5.31.0"
|
|
66
67
|
},
|
|
67
68
|
"peerDependencies": {
|
|
68
69
|
"urlpattern-polyfill": "^10.1.0",
|
|
69
|
-
"xstate": "^
|
|
70
|
+
"xstate": "^5.31.0"
|
|
70
71
|
},
|
|
71
72
|
"peerDependenciesMeta": {
|
|
72
73
|
"urlpattern-polyfill": {
|
|
@@ -76,5 +77,5 @@
|
|
|
76
77
|
"engines": {
|
|
77
78
|
"node": ">=22.0.0"
|
|
78
79
|
},
|
|
79
|
-
"_devDependencies_note": "xstate appears in both peerDependencies and devDependencies intentionally. devDependencies provides workspace resolution for local builds and tests. peerDependencies declares the consumer version constraint. Both are pinned to ^
|
|
80
|
+
"_devDependencies_note": "xstate appears in both peerDependencies and devDependencies intentionally. devDependencies provides workspace resolution for local builds and tests. peerDependencies declares the consumer version constraint. Both are pinned to ^5.30.0 to prevent drift. urlpattern-polyfill is an optional peer dependency — consumers on Node < 24 or older browsers install it themselves. devDependencies entry ensures workspace test resolution."
|
|
80
81
|
}
|