@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.
Files changed (55) hide show
  1. package/README.md +77 -24
  2. package/dist/define-player.d.ts +3 -3
  3. package/dist/define-player.js +3 -3
  4. package/dist/define-player.typecheck.js +10 -10
  5. package/dist/define-player.typecheck.js.map +1 -1
  6. package/dist/errors.d.ts +38 -0
  7. package/dist/errors.d.ts.map +1 -1
  8. package/dist/errors.js +45 -0
  9. package/dist/errors.js.map +1 -1
  10. package/dist/guards/compose.d.ts +59 -41
  11. package/dist/guards/compose.d.ts.map +1 -1
  12. package/dist/guards/compose.js +97 -69
  13. package/dist/guards/compose.js.map +1 -1
  14. package/dist/guards/compose.typecheck.d.ts +2 -0
  15. package/dist/guards/compose.typecheck.d.ts.map +1 -0
  16. package/dist/guards/compose.typecheck.js +22 -0
  17. package/dist/guards/compose.typecheck.js.map +1 -0
  18. package/dist/index.d.ts +4 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +4 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/player-actor.d.ts +3 -3
  23. package/dist/player-actor.d.ts.map +1 -1
  24. package/dist/player-actor.js +15 -9
  25. package/dist/player-actor.js.map +1 -1
  26. package/dist/player-actor.typecheck.js +8 -5
  27. package/dist/player-actor.typecheck.js.map +1 -1
  28. package/dist/routing/create-routed-machine.d.ts +71 -0
  29. package/dist/routing/create-routed-machine.d.ts.map +1 -0
  30. package/dist/routing/create-routed-machine.js +71 -0
  31. package/dist/routing/create-routed-machine.js.map +1 -0
  32. package/dist/routing/derive-initial-route.d.ts +1 -1
  33. package/dist/routing/derive-initial-route.js +1 -1
  34. package/dist/routing/format-play-route-transitions.d.ts +54 -11
  35. package/dist/routing/format-play-route-transitions.d.ts.map +1 -1
  36. package/dist/routing/format-play-route-transitions.js +125 -52
  37. package/dist/routing/format-play-route-transitions.js.map +1 -1
  38. package/dist/routing/index.d.ts +4 -0
  39. package/dist/routing/index.d.ts.map +1 -1
  40. package/dist/routing/index.js +2 -0
  41. package/dist/routing/index.js.map +1 -1
  42. package/dist/routing/play-route-event.typecheck.d.ts +2 -0
  43. package/dist/routing/play-route-event.typecheck.d.ts.map +1 -0
  44. package/dist/routing/play-route-event.typecheck.js +43 -0
  45. package/dist/routing/play-route-event.typecheck.js.map +1 -0
  46. package/dist/routing/schemas.d.ts +99 -0
  47. package/dist/routing/schemas.d.ts.map +1 -0
  48. package/dist/routing/schemas.js +30 -0
  49. package/dist/routing/schemas.js.map +1 -0
  50. package/dist/schemas.d.ts +28 -0
  51. package/dist/schemas.d.ts.map +1 -0
  52. package/dist/schemas.js +29 -0
  53. package/dist/schemas.js.map +1 -0
  54. package/dist/types.d.ts +1 -1
  55. 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"}
@@ -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 v5 state machine */
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": "1.0.0",
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": "1.0.0",
52
- "@xmachines/play-actor": "1.0.0",
53
- "@xmachines/play-signals": "1.0.0",
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": "1.0.0",
60
- "@xmachines/shared": "1.0.0",
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": "^5.31.0"
65
+ "xstate": "^6.0.0-alpha.20"
66
66
  },
67
67
  "peerDependencies": {
68
- "xstate": "^5.31.0"
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 ^5.30.0 to prevent drift."
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
  }