@xmachines/play-tanstack-react-router 1.0.0-beta.15 → 1.0.0-beta.17

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 CHANGED
@@ -77,7 +77,7 @@ import { PlayRenderer } from "@xmachines/play-react";
77
77
  router={router}
78
78
  routeMap={routeMap}
79
79
  renderer={(currentActor, currentRouter) => (
80
- <PlayRenderer actor={currentActor} components={components} />
80
+ <PlayRenderer actor={currentActor} registry={registry} actions={{ login: "auth.login" }} />
81
81
  )}
82
82
  />;
83
83
  ```
@@ -171,10 +171,6 @@ Bridge-first flow:
171
171
 
172
172
  This keeps routing infrastructure passive while preserving business-logic control.
173
173
 
174
- ## Historical Note
175
-
176
- `SignalSyncedHistory` and `createPlayRouter` are legacy migration-era APIs and are not part of the current quick-start path. Use `TanStackReactRouterBridge` + `RouteMap` for new integrations.
177
-
178
174
  ## Related Packages
179
175
 
180
176
  - [@xmachines/play-router](../play-router)
@@ -4,16 +4,18 @@
4
4
  * Creates and connects a TanStackReactRouterBridge in a React component lifecycle.
5
5
  * Actor state drives router navigation; router events send play.route to actor.
6
6
  *
7
+ * Generic over `TActor` so the renderer callback receives the same concrete actor type
8
+ * that was passed in — no cast needed at the call site.
9
+ *
7
10
  * @example
8
11
  * ```tsx
9
12
  * <PlayRouterProvider
10
13
  * actor={actor}
11
14
  * router={router}
12
15
  * routeMap={routeMap}
13
- * renderer={(currentActor, currentRouter) => {
14
- * void currentRouter;
15
- * return <PlayRenderer actor={currentActor} components={components} />;
16
- * }}
16
+ * renderer={(currentActor) => (
17
+ * <PlayRenderer actor={currentActor} registry={registry} actions={{ login: "auth.login" }} />
18
+ * )}
17
19
  * />
18
20
  * ```
19
21
  */
@@ -23,11 +25,12 @@ import type { AnyActorLogic } from "xstate";
23
25
  import { TanStackReactRouterBridge } from "./tanstack-router-bridge.js";
24
26
  import type { RouteMap } from "./route-map.js";
25
27
  export type TanStackRouterInstance = ConstructorParameters<typeof TanStackReactRouterBridge>[0];
26
- export interface PlayRouterProviderProps {
27
- actor: AbstractActor<AnyActorLogic> & Routable & Viewable;
28
+ export interface PlayRouterProviderProps<TActor extends AbstractActor<AnyActorLogic> & Routable & Viewable = AbstractActor<AnyActorLogic> & Routable & Viewable> {
29
+ actor: TActor;
28
30
  router: TanStackRouterInstance;
29
31
  routeMap: RouteMap;
30
- renderer: (actor: AbstractActor<AnyActorLogic> & Routable & Viewable, router: TanStackRouterInstance) => ReactNode;
32
+ /** Renderer callback receives the same concrete actor type that was passed in. */
33
+ renderer: (actor: TActor, router: TanStackRouterInstance) => ReactNode;
31
34
  }
32
- export declare function PlayRouterProvider({ actor, router, routeMap, renderer }: PlayRouterProviderProps): import("react/jsx-runtime").JSX.Element;
35
+ export declare function PlayRouterProvider<TActor extends AbstractActor<AnyActorLogic> & Routable & Viewable>({ actor, router, routeMap, renderer }: PlayRouterProviderProps<TActor>): import("react/jsx-runtime").JSX.Element;
33
36
  //# sourceMappingURL=play-router-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"play-router-provider.d.ts","sourceRoot":"","sources":["../src/play-router-provider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhG,MAAM,WAAW,uBAAuB;IACvC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1D,MAAM,EAAE,sBAAsB,CAAC;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,CACT,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,GAAG,QAAQ,EACzD,MAAM,EAAE,sBAAsB,KAC1B,SAAS,CAAC;CACf;AAED,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,uBAAuB,2CAQhG"}
1
+ {"version":3,"file":"play-router-provider.d.ts","sourceRoot":"","sources":["../src/play-router-provider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhG,MAAM,WAAW,uBAAuB,CACvC,MAAM,SAAS,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,GAAG,QAAQ,GAChE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,GAAG,QAAQ;IAEnD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,sBAAsB,CAAC;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,kFAAkF;IAClF,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,KAAK,SAAS,CAAC;CACvE;AAED,wBAAgB,kBAAkB,CACjC,MAAM,SAAS,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,GAAG,QAAQ,EAChE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,uBAAuB,CAAC,MAAM,CAAC,2CAQvE"}
@@ -5,16 +5,18 @@ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
5
5
  * Creates and connects a TanStackReactRouterBridge in a React component lifecycle.
6
6
  * Actor state drives router navigation; router events send play.route to actor.
7
7
  *
8
+ * Generic over `TActor` so the renderer callback receives the same concrete actor type
9
+ * that was passed in — no cast needed at the call site.
10
+ *
8
11
  * @example
9
12
  * ```tsx
10
13
  * <PlayRouterProvider
11
14
  * actor={actor}
12
15
  * router={router}
13
16
  * routeMap={routeMap}
14
- * renderer={(currentActor, currentRouter) => {
15
- * void currentRouter;
16
- * return <PlayRenderer actor={currentActor} components={components} />;
17
- * }}
17
+ * renderer={(currentActor) => (
18
+ * <PlayRenderer actor={currentActor} registry={registry} actions={{ login: "auth.login" }} />
19
+ * )}
18
20
  * />
19
21
  * ```
20
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"play-router-provider.js","sourceRoot":"","sources":["../src/play-router-provider.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAexE,MAAM,UAAU,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAA2B;IAChG,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,MAAM,GAAG,IAAI,yBAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtE,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE9B,OAAO,4BAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,GAAI,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"play-router-provider.js","sourceRoot":"","sources":["../src/play-router-provider.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAgBxE,MAAM,UAAU,kBAAkB,CAEhC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAmC;IACvE,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,MAAM,GAAG,IAAI,yBAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtE,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE9B,OAAO,4BAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,GAAI,CAAC;AACvC,CAAC"}
@@ -47,6 +47,11 @@ export type TanStackRouterLike = {
47
47
  };
48
48
  };
49
49
  history: {
50
+ /** Current location — always reflects window.location immediately. */
51
+ location: {
52
+ pathname: string;
53
+ search?: string;
54
+ };
50
55
  subscribe(handler: (event: {
51
56
  location: {
52
57
  pathname: string;
@@ -97,7 +102,18 @@ export declare class TanStackReactRouterBridge extends RouterBridgeBase {
97
102
  * Read the router's current pathname for initial sync.
98
103
  *
99
104
  * Called once in connect() to handle cold-load / deep-link scenarios where
100
- * the URL differs from the actor's initial state.
105
+ * the URL differs from the actor's initial state (e.g. user pastes /dashboard
106
+ * while logged out — the actor must be redirected to /login before rendering).
107
+ *
108
+ * Uses `router.history.location.pathname` — reflects `window.location` immediately,
109
+ * before the router has been loaded or a `<RouterProvider>` mounted.
110
+ * `router.state.location` is only populated after `router.load()` which may not
111
+ * have run yet when the bridge first connects in a `useEffect`.
112
+ *
113
+ * The base class `connect()` uses `actor.initialRoute` to distinguish:
114
+ * - **Deep-link:** router URL differs from machine's initial route → router wins.
115
+ * - **Restore:** router at machine's initial route, actor at a different restored
116
+ * route → actor wins, bridge pushes actor's restored route to the router.
101
117
  */
102
118
  protected getInitialRouterPath(): string | null;
103
119
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tanstack-router-bridge.d.ts","sourceRoot":"","sources":["../src/tanstack-router-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC7C,OAAO,EAAE;QACR,SAAS,CACR,OAAO,EAAE,CAAC,KAAK,EAAE;YAAE,QAAQ,EAAE;gBAAE,QAAQ,EAAE,MAAM,CAAC;gBAAC,MAAM,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,KAAK,IAAI,GAC3E,MAAM,IAAI,CAAC;KACd,CAAC;CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,yBAA0B,SAAQ,gBAAgB;IAW7D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVxB,OAAO,CAAC,iBAAiB,CAA6B;IAEtD;;;;;;OAMG;gBAEe,MAAM,EAAE,kBAAkB,EAC3C,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,EAC9C,QAAQ,EAAE,QAAQ;IASnB,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5C;;;;;OAKG;cACgB,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAIxD;;;;;;;;OAQG;IACH,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAQpC,SAAS,CAAC,oBAAoB,IAAI,IAAI;CAItC"}
1
+ {"version":3,"file":"tanstack-router-bridge.d.ts","sourceRoot":"","sources":["../src/tanstack-router-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC7C,OAAO,EAAE;QACR,sEAAsE;QACtE,QAAQ,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAChD,SAAS,CACR,OAAO,EAAE,CAAC,KAAK,EAAE;YAAE,QAAQ,EAAE;gBAAE,QAAQ,EAAE,MAAM,CAAC;gBAAC,MAAM,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,KAAK,IAAI,GAC3E,MAAM,IAAI,CAAC;KACd,CAAC;CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,yBAA0B,SAAQ,gBAAgB;IAW7D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVxB,OAAO,CAAC,iBAAiB,CAA6B;IAEtD;;;;;;OAMG;gBAEe,MAAM,EAAE,kBAAkB,EAC3C,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,EAC9C,QAAQ,EAAE,QAAQ;IASnB,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5C;;;;;;;;;;;;;;;;OAgBG;cACgB,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAQxD;;;;;;;;OAQG;IACH,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAQpC,SAAS,CAAC,oBAAoB,IAAI,IAAI;CAItC"}
@@ -85,10 +85,25 @@ export class TanStackReactRouterBridge extends RouterBridgeBase {
85
85
  * Read the router's current pathname for initial sync.
86
86
  *
87
87
  * Called once in connect() to handle cold-load / deep-link scenarios where
88
- * the URL differs from the actor's initial state.
88
+ * the URL differs from the actor's initial state (e.g. user pastes /dashboard
89
+ * while logged out — the actor must be redirected to /login before rendering).
90
+ *
91
+ * Uses `router.history.location.pathname` — reflects `window.location` immediately,
92
+ * before the router has been loaded or a `<RouterProvider>` mounted.
93
+ * `router.state.location` is only populated after `router.load()` which may not
94
+ * have run yet when the bridge first connects in a `useEffect`.
95
+ *
96
+ * The base class `connect()` uses `actor.initialRoute` to distinguish:
97
+ * - **Deep-link:** router URL differs from machine's initial route → router wins.
98
+ * - **Restore:** router at machine's initial route, actor at a different restored
99
+ * route → actor wins, bridge pushes actor's restored route to the router.
89
100
  */
90
101
  getInitialRouterPath() {
91
- return this.router.state?.location?.pathname ?? null;
102
+ // history.location reflects window.location immediately, before router.load() or
103
+ // <RouterProvider> mounts. router.state.location can be stale at useEffect time.
104
+ // Return the raw pathname; base class connect() handles restore vs deep-link
105
+ // detection using actor.initialRoute.
106
+ return this.router.history.location.pathname ?? null;
92
107
  }
93
108
  /**
94
109
  * Subscribe to ALL navigation events via router.history.
@@ -1 +1 @@
1
- {"version":3,"file":"tanstack-router-bridge.js","sourceRoot":"","sources":["../src/tanstack-router-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAe1D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,yBAA0B,SAAQ,gBAAgB;IAW5C;IAVV,iBAAiB,GAAwB,IAAI,CAAC;IAEtD;;;;;;OAMG;IACH,YACkB,MAA0B,EAC3C,KAA8C,EAC9C,QAAkB;QAElB,gFAAgF;QAChF,KAAK,CAAC,KAAK,EAAE;YACZ,gBAAgB,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS;YAChF,gBAAgB,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,SAAS;SAC5E,CAAC,CAAC;QARc,WAAM,GAAN,MAAM,CAAoB;IAS5C,CAAC;IAES,cAAc,CAAC,IAAY;QACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACgB,oBAAoB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,CAAC;IACtD,CAAC;IAED;;;;;;;;OAQG;IACO,kBAAkB;QAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CACrD,CAAC,EAAE,QAAQ,EAAuD,EAAE,EAAE;YACrE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC,CACD,CAAC;IACH,CAAC;IAES,oBAAoB;QAC7B,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC/B,CAAC;CACD"}
1
+ {"version":3,"file":"tanstack-router-bridge.js","sourceRoot":"","sources":["../src/tanstack-router-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAiB1D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,yBAA0B,SAAQ,gBAAgB;IAW5C;IAVV,iBAAiB,GAAwB,IAAI,CAAC;IAEtD;;;;;;OAMG;IACH,YACkB,MAA0B,EAC3C,KAA8C,EAC9C,QAAkB;QAElB,gFAAgF;QAChF,KAAK,CAAC,KAAK,EAAE;YACZ,gBAAgB,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS;YAChF,gBAAgB,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,SAAS;SAC5E,CAAC,CAAC;QARc,WAAM,GAAN,MAAM,CAAoB;IAS5C,CAAC;IAES,cAAc,CAAC,IAAY;QACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACgB,oBAAoB;QACtC,iFAAiF;QACjF,iFAAiF;QACjF,6EAA6E;QAC7E,sCAAsC;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC;IACtD,CAAC;IAED;;;;;;;;OAQG;IACO,kBAAkB;QAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CACrD,CAAC,EAAE,QAAQ,EAAuD,EAAE,EAAE;YACrE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC,CACD,CAAC;IACH,CAAC;IAES,oBAAoB;QAC7B,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC/B,CAAC;CACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xmachines/play-tanstack-react-router",
3
- "version": "1.0.0-beta.15",
3
+ "version": "1.0.0-beta.17",
4
4
  "description": "TanStack React Router adapter for XMachines Play - synchronizes browser URL with actor state through passive infrastructure",
5
5
  "keywords": [
6
6
  "routing",
@@ -32,28 +32,30 @@
32
32
  "build": "tsc --build",
33
33
  "clean": "rm -rf dist *.tsbuildinfo node_modules/.vite node_modules/.vite-temp",
34
34
  "typecheck": "tsc --noEmit",
35
+ "typecheck:test": "tsc --noEmit -p tsconfig.test.json",
35
36
  "test": "vitest",
36
37
  "test:browser": "vitest",
37
38
  "prepublishOnly": "npm run build"
38
39
  },
39
40
  "dependencies": {
40
- "@xmachines/play-actor": "1.0.0-beta.15",
41
- "@xmachines/play-router": "1.0.0-beta.15",
42
- "@xmachines/play-signals": "1.0.0-beta.15",
43
- "xstate": "^5.0.0"
41
+ "@xmachines/play-actor": "1.0.0-beta.17",
42
+ "@xmachines/play-router": "1.0.0-beta.17",
43
+ "@xmachines/play-signals": "1.0.0-beta.17",
44
+ "xstate": "^5.30.0"
44
45
  },
45
46
  "devDependencies": {
46
- "@tanstack/react-router": "^1.167.5",
47
+ "@tanstack/react-router": "^1.168.8",
47
48
  "@types/node": "^25.5.0",
48
- "@xmachines/shared": "1.0.0-beta.15",
49
+ "@xmachines/play-xstate": "1.0.0-beta.17",
50
+ "@xmachines/shared": "1.0.0-beta.17",
49
51
  "jsdom": "^29.0.1",
50
- "typescript": "^5.9.3",
51
- "vitest": "^4.1.0"
52
+ "typescript": "^5.9.3 || ^6.0.2",
53
+ "vitest": "^4.1.2"
52
54
  },
53
55
  "peerDependencies": {
54
- "@tanstack/react-router": "^1.166.7",
56
+ "@tanstack/react-router": "^1.168.8",
55
57
  "react": "^18.0.0 || ^19.0.0",
56
58
  "react-dom": "^18.0.0 || ^19.0.0",
57
- "xstate": "^5.0.0"
59
+ "xstate": "^5.30.0"
58
60
  }
59
61
  }