@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.
- package/README.md +77 -24
- package/dist/define-player.d.ts +3 -3
- package/dist/define-player.js +3 -3
- package/dist/define-player.typecheck.js +10 -10
- package/dist/define-player.typecheck.js.map +1 -1
- package/dist/errors.d.ts +38 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +45 -0
- package/dist/errors.js.map +1 -1
- package/dist/guards/compose.d.ts +59 -41
- package/dist/guards/compose.d.ts.map +1 -1
- package/dist/guards/compose.js +97 -69
- package/dist/guards/compose.js.map +1 -1
- package/dist/guards/compose.typecheck.d.ts +2 -0
- package/dist/guards/compose.typecheck.d.ts.map +1 -0
- package/dist/guards/compose.typecheck.js +22 -0
- package/dist/guards/compose.typecheck.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/player-actor.d.ts +3 -3
- package/dist/player-actor.d.ts.map +1 -1
- package/dist/player-actor.js +15 -9
- package/dist/player-actor.js.map +1 -1
- package/dist/player-actor.typecheck.js +8 -5
- package/dist/player-actor.typecheck.js.map +1 -1
- package/dist/routing/create-routed-machine.d.ts +71 -0
- package/dist/routing/create-routed-machine.d.ts.map +1 -0
- package/dist/routing/create-routed-machine.js +71 -0
- package/dist/routing/create-routed-machine.js.map +1 -0
- package/dist/routing/derive-initial-route.d.ts +1 -1
- package/dist/routing/derive-initial-route.js +1 -1
- package/dist/routing/format-play-route-transitions.d.ts +54 -11
- package/dist/routing/format-play-route-transitions.d.ts.map +1 -1
- package/dist/routing/format-play-route-transitions.js +125 -52
- package/dist/routing/format-play-route-transitions.js.map +1 -1
- package/dist/routing/index.d.ts +4 -0
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/index.js +2 -0
- package/dist/routing/index.js.map +1 -1
- package/dist/routing/play-route-event.typecheck.d.ts +2 -0
- package/dist/routing/play-route-event.typecheck.d.ts.map +1 -0
- package/dist/routing/play-route-event.typecheck.js +43 -0
- package/dist/routing/play-route-event.typecheck.js.map +1 -0
- package/dist/routing/schemas.d.ts +99 -0
- package/dist/routing/schemas.d.ts.map +1 -0
- package/dist/routing/schemas.js +30 -0
- package/dist/routing/schemas.js.map +1 -0
- package/dist/schemas.d.ts +28 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +29 -0
- package/dist/schemas.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/package.json +9 -9
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { types } from "xstate";
|
|
2
|
+
export const playRouteEventSchema = types();
|
|
3
|
+
/**
|
|
4
|
+
* State meta schema for Play's routing/view metadata, for use as an XState v6
|
|
5
|
+
* `schemas.meta` declaration.
|
|
6
|
+
*
|
|
7
|
+
* XState v6 types state `meta` as `never` unless a meta schema is declared, so
|
|
8
|
+
* every machine that carries `meta.route` templates or `meta.view` specs needs
|
|
9
|
+
* this schema. `route` accepts both the string template form
|
|
10
|
+
* (`"/profile/:username"`) and the object form (`{ path, title }` — see
|
|
11
|
+
* {@link RouteMetadata}); `view` is a Play view {@link PlaySpec}.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { createMachine } from "xstate";
|
|
16
|
+
* import { playMetaSchema } from "@xmachines/play-xstate";
|
|
17
|
+
*
|
|
18
|
+
* const machine = createMachine({
|
|
19
|
+
* schemas: { meta: playMetaSchema },
|
|
20
|
+
* initial: "home",
|
|
21
|
+
* states: {
|
|
22
|
+
* home: { id: "home", meta: { route: "/" } },
|
|
23
|
+
* },
|
|
24
|
+
* });
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @see {@link playRouteEventSchema} for the companion `play.route` event schema
|
|
28
|
+
*/
|
|
29
|
+
export const playMetaSchema = types();
|
|
30
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/routing/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAqE/B,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAoB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAA8C,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event schema for a payload-less event, for use in an XState v6
|
|
3
|
+
* `schemas.events` map.
|
|
4
|
+
*
|
|
5
|
+
* Most Play machines carry events with no payload (`auth.logout`, `timer`,
|
|
6
|
+
* …) — declare them with this constant instead of re-spelling
|
|
7
|
+
* `types<Record<string, never>>()` per event.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { setup } from "xstate";
|
|
12
|
+
* import { emptyEventSchema, playRouteEventSchema } from "@xmachines/play-xstate";
|
|
13
|
+
*
|
|
14
|
+
* setup({
|
|
15
|
+
* schemas: {
|
|
16
|
+
* events: {
|
|
17
|
+
* "play.route": playRouteEventSchema,
|
|
18
|
+
* "auth.logout": emptyEventSchema,
|
|
19
|
+
* },
|
|
20
|
+
* },
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @see {@link playRouteEventSchema} and {@link playMetaSchema} for the routing
|
|
25
|
+
* schema constants
|
|
26
|
+
*/
|
|
27
|
+
export declare const emptyEventSchema: import("xstate").TypeSchema<Record<string, never>>;
|
|
28
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,gBAAgB,oDAAiC,CAAC"}
|
package/dist/schemas.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { types } from "xstate";
|
|
2
|
+
/**
|
|
3
|
+
* Event schema for a payload-less event, for use in an XState v6
|
|
4
|
+
* `schemas.events` map.
|
|
5
|
+
*
|
|
6
|
+
* Most Play machines carry events with no payload (`auth.logout`, `timer`,
|
|
7
|
+
* …) — declare them with this constant instead of re-spelling
|
|
8
|
+
* `types<Record<string, never>>()` per event.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { setup } from "xstate";
|
|
13
|
+
* import { emptyEventSchema, playRouteEventSchema } from "@xmachines/play-xstate";
|
|
14
|
+
*
|
|
15
|
+
* setup({
|
|
16
|
+
* schemas: {
|
|
17
|
+
* events: {
|
|
18
|
+
* "play.route": playRouteEventSchema,
|
|
19
|
+
* "auth.logout": emptyEventSchema,
|
|
20
|
+
* },
|
|
21
|
+
* },
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @see {@link playRouteEventSchema} and {@link playMetaSchema} for the routing
|
|
26
|
+
* schema constants
|
|
27
|
+
*/
|
|
28
|
+
export const emptyEventSchema = types();
|
|
29
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAyB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { PlayerActor as PlayerActorClass } from "./player-actor.js";
|
|
|
4
4
|
* Configuration for definePlayer()
|
|
5
5
|
*/
|
|
6
6
|
export interface PlayerConfig<TMachine extends AnyStateMachine> {
|
|
7
|
-
/** XState
|
|
7
|
+
/** XState v6 state machine */
|
|
8
8
|
machine: TMachine;
|
|
9
9
|
/** Lifecycle hooks and configuration */
|
|
10
10
|
options?: PlayerOptions<TMachine>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xmachines/play-xstate",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-alpha.1",
|
|
4
4
|
"description": "XState v5 adapter for Play Architecture",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"actor-model",
|
|
@@ -48,27 +48,27 @@
|
|
|
48
48
|
"prepublishOnly": "npm run build"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@xmachines/play": "
|
|
52
|
-
"@xmachines/play-actor": "
|
|
53
|
-
"@xmachines/play-signals": "
|
|
51
|
+
"@xmachines/play": "2.0.0-alpha.1",
|
|
52
|
+
"@xmachines/play-actor": "2.0.0-alpha.1",
|
|
53
|
+
"@xmachines/play-signals": "2.0.0-alpha.1",
|
|
54
54
|
"dequal": "^2.0.3"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@testing-library/jest-dom": "^6.9.1",
|
|
58
58
|
"@types/node": "^26.1.1",
|
|
59
|
-
"@xmachines/play-router": "
|
|
60
|
-
"@xmachines/shared": "
|
|
59
|
+
"@xmachines/play-router": "2.0.0-alpha.1",
|
|
60
|
+
"@xmachines/shared": "2.0.0-alpha.1",
|
|
61
61
|
"oxfmt": "^0.58.0",
|
|
62
62
|
"oxlint": "^1.73.0",
|
|
63
63
|
"typescript": "^5.9.3 || ^6.0.3",
|
|
64
64
|
"vitest": "^4.1.10",
|
|
65
|
-
"xstate": "^
|
|
65
|
+
"xstate": "^6.0.0-alpha.20"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
|
-
"xstate": "^
|
|
68
|
+
"xstate": "^6.0.0-alpha.20"
|
|
69
69
|
},
|
|
70
70
|
"engines": {
|
|
71
71
|
"node": ">=22.0.0"
|
|
72
72
|
},
|
|
73
|
-
"_devDependencies_note": "xstate appears in both peerDependencies and devDependencies intentionally. devDependencies provides workspace resolution for local builds, tests, and typechecking. peerDependencies declares the consumer version constraint. Both are pinned to ^
|
|
73
|
+
"_devDependencies_note": "xstate appears in both peerDependencies and devDependencies intentionally. devDependencies provides workspace resolution for local builds, tests, and typechecking. peerDependencies declares the consumer version constraint. Both are pinned to ^6.0.0-alpha.20 to prevent drift."
|
|
74
74
|
}
|