@xmachines/play-tanstack-react-router 1.0.0-beta.1 → 1.0.0-beta.2

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 (174) hide show
  1. package/package.json +10 -5
  2. package/.oxfmtrc.json +0 -3
  3. package/.oxlintrc.json +0 -3
  4. package/examples/demo/README.md +0 -100
  5. package/examples/demo/docs/ARCHITECTURE.md +0 -643
  6. package/examples/demo/docs/INVARIANTS.md +0 -461
  7. package/examples/demo/docs/SWAP-REACT.md +0 -635
  8. package/examples/demo/index.html +0 -16
  9. package/examples/demo/package.json +0 -39
  10. package/examples/demo/src/App.tsx +0 -148
  11. package/examples/demo/src/components/About.tsx +0 -49
  12. package/examples/demo/src/components/Contact.tsx +0 -43
  13. package/examples/demo/src/components/Dashboard.tsx +0 -46
  14. package/examples/demo/src/components/DebugPanel.tsx +0 -68
  15. package/examples/demo/src/components/HeaderNav.tsx +0 -103
  16. package/examples/demo/src/components/Home.tsx +0 -41
  17. package/examples/demo/src/components/Login.tsx +0 -82
  18. package/examples/demo/src/components/Navigation.tsx +0 -262
  19. package/examples/demo/src/components/Profile.tsx +0 -46
  20. package/examples/demo/src/components/Register.tsx +0 -109
  21. package/examples/demo/src/components/Settings.tsx +0 -92
  22. package/examples/demo/src/components/index.ts +0 -16
  23. package/examples/demo/src/main.tsx +0 -20
  24. package/examples/demo/test/actor-authority.test.ts +0 -50
  25. package/examples/demo/test/browser/__screenshots__/back-button-duplicate.browser.test.tsx/Browser-back-button-navigates-through-unique-history--no-duplicates--1.png +0 -0
  26. package/examples/demo/test/browser/__screenshots__/back-button-duplicate.browser.test.tsx/GAP-12--navigation-via-goto---events-creates-single-history-entries-1.png +0 -0
  27. package/examples/demo/test/browser/__screenshots__/back-button-duplicate.browser.test.tsx/GAP-12--navigation-via-goto---events-creates-single-history-entries-2.png +0 -0
  28. package/examples/demo/test/browser/__screenshots__/back-forward-sync.browser.test.tsx/Back-Forward--After-authentication-flow-1.png +0 -0
  29. package/examples/demo/test/browser/__screenshots__/back-forward-sync.browser.test.tsx/Back-Forward--Multiple-rapid-navigations-1.png +0 -0
  30. package/examples/demo/test/browser/__screenshots__/back-forward-sync.browser.test.tsx/Back-Forward--Multiple-rapid-navigations-2.png +0 -0
  31. package/examples/demo/test/browser/__screenshots__/back-forward-sync.browser.test.tsx/Back-Forward--URL-stays-in-sync-with-actor-state-1.png +0 -0
  32. package/examples/demo/test/browser/__screenshots__/back-forward-sync.browser.test.tsx/Back-Forward--URL-stays-in-sync-with-actor-state-2.png +0 -0
  33. package/examples/demo/test/browser/__screenshots__/back-forward-sync.browser.test.tsx/Back-Forward--Works-correctly-1.png +0 -0
  34. package/examples/demo/test/browser/__screenshots__/back-forward-sync.browser.test.tsx/Back-Forward--Works-correctly-2.png +0 -0
  35. package/examples/demo/test/browser/__screenshots__/direct-navigation.browser.test.ts/Direct-navigation-to--about-loads-about-page-1.png +0 -0
  36. package/examples/demo/test/browser/__screenshots__/direct-navigation.browser.test.ts/Direct-navigation-to--contact-loads-contact-page-1.png +0 -0
  37. package/examples/demo/test/browser/__screenshots__/direct-navigation.browser.test.ts/Direct-navigation-to--home-loads-home-page-1.png +0 -0
  38. package/examples/demo/test/browser/__screenshots__/direct-navigation.browser.test.ts/Direct-navigation-to-protected-route-while-authenticated-loads-dashboard-1.png +0 -0
  39. package/examples/demo/test/browser/__screenshots__/direct-navigation.browser.test.ts/Direct-navigation-to-protected-route-while-unauthenticated-redirects-to-login-1.png +0 -0
  40. package/examples/demo/test/browser/__screenshots__/exact-user-scenario.browser.test.tsx/Debug--Print-history-after-each-navigation-1.png +0 -0
  41. package/examples/demo/test/browser/__screenshots__/exact-user-scenario.browser.test.tsx/Debug--Print-history-after-each-navigation-2.png +0 -0
  42. package/examples/demo/test/browser/__screenshots__/exact-user-scenario.browser.test.tsx/EXACT-USER-SCENARIO--home---about---home---contact---home--then-back-3x-should-land-on-about-1.png +0 -0
  43. package/examples/demo/test/browser/__screenshots__/exact-user-scenario.browser.test.tsx/EXACT-USER-SCENARIO--home---about---home---contact---home--then-back-3x-should-land-on-about-2.png +0 -0
  44. package/examples/demo/test/browser/__screenshots__/guard-rejection.browser.test.tsx/E2E--Actor-Authority---infrastructure-cannot-override-guards-1.png +0 -0
  45. package/examples/demo/test/browser/__screenshots__/guard-rejection.browser.test.tsx/E2E--Actor-Authority---infrastructure-cannot-override-guards-2.png +0 -0
  46. package/examples/demo/test/browser/__screenshots__/guard-rejection.browser.test.tsx/E2E--Guards-reject-invalid-navigation-1.png +0 -0
  47. package/examples/demo/test/browser/__screenshots__/guard-rejection.browser.test.tsx/E2E--Guards-reject-invalid-navigation-2.png +0 -0
  48. package/examples/demo/test/browser/__screenshots__/history-investigation.browser.test.tsx/baseHistory-back---navigation--avoiding-window-history--1.png +0 -0
  49. package/examples/demo/test/browser/__screenshots__/history-investigation.browser.test.tsx/baseHistory-back---navigation--avoiding-window-history--2.png +0 -0
  50. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Back-forward-with-guard-transitions---authenticated-user-1.png +0 -0
  51. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Back-forward-with-guard-transitions---authenticated-user-2.png +0 -0
  52. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Back-forward-with-guard-transitions---unauthenticated-user-1.png +0 -0
  53. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Back-forward-with-guard-transitions---unauthenticated-user-2.png +0 -0
  54. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Back-with-guard---authenticated-user-navigates-back-1.png +0 -0
  55. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Back-with-guard---authenticated-user-navigates-back-2.png +0 -0
  56. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Back-with-guard---unauthenticated-user-stays-on-public-routes-1.png +0 -0
  57. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Back-with-guard---unauthenticated-user-stays-on-public-routes-2.png +0 -0
  58. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Forward-button-after-back---unique-history-1.png +0 -0
  59. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Forward-button-after-back---unique-history-2.png +0 -0
  60. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Forward-button-after-back-1.png +0 -0
  61. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Forward-button-after-back-2.png +0 -0
  62. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Navigate-forward-then-back---unique-history-entries-1.png +0 -0
  63. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Navigate-forward-then-back---unique-history-entries-2.png +0 -0
  64. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Rapid-back-forward-navigation-doesn-t-cause-duplicate-entries-1.png +0 -0
  65. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Rapid-back-forward-navigation-doesn-t-cause-duplicate-entries-2.png +0 -0
  66. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Single-back-navigation---about-to-home-1.png +0 -0
  67. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Single-back-navigation---about-to-home-2.png +0 -0
  68. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Single-back-navigation---contact-to-about-1.png +0 -0
  69. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--Single-back-navigation---contact-to-about-2.png +0 -0
  70. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--View-syncs-with-URL-after-back-forward-1.png +0 -0
  71. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--View-syncs-with-URL-after-back-forward-2.png +0 -0
  72. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--View-syncs-with-URL-after-back-navigation-1.png +0 -0
  73. package/examples/demo/test/browser/__screenshots__/history-navigation.browser.test.ts/GAP-12--View-syncs-with-URL-after-back-navigation-2.png +0 -0
  74. package/examples/demo/test/browser/__screenshots__/login-flow.browser.test.tsx/E2E--User-can-log-in-and-see-dashboard-1.png +0 -0
  75. package/examples/demo/test/browser/__screenshots__/login-flow.browser.test.tsx/E2E--User-can-log-in-and-see-dashboard-2.png +0 -0
  76. package/examples/demo/test/browser/__screenshots__/navigation.browser.test.tsx/E2E--Navigation-reflects-actor-state-transitions-1.png +0 -0
  77. package/examples/demo/test/browser/__screenshots__/navigation.browser.test.tsx/E2E--Navigation-reflects-actor-state-transitions-2.png +0 -0
  78. package/examples/demo/test/browser/__screenshots__/protected-route-navigation.browser.test.tsx/Browser-back-forward-through-multiple-protected-routes-1.png +0 -0
  79. package/examples/demo/test/browser/__screenshots__/protected-route-navigation.browser.test.tsx/Browser-back-forward-through-multiple-protected-routes-2.png +0 -0
  80. package/examples/demo/test/browser/__screenshots__/protected-route-navigation.browser.test.tsx/Browser-back-navigates-from-dashboard-to-settings--protected-route--1.png +0 -0
  81. package/examples/demo/test/browser/__screenshots__/protected-route-navigation.browser.test.tsx/Browser-back-navigates-from-dashboard-to-settings--protected-route--2.png +0 -0
  82. package/examples/demo/test/browser/__screenshots__/protected-route-navigation.browser.test.tsx/RED--Browser-back-forward-through-multiple-protected-routes-1.png +0 -0
  83. package/examples/demo/test/browser/__screenshots__/protected-route-navigation.browser.test.tsx/RED--Browser-back-from-dashboard-to-settings--protected-route--1.png +0 -0
  84. package/examples/demo/test/browser/__screenshots__/protected-route-navigation.browser.test.tsx/RED--Browser-back-navigates-from-dashboard-to-settings--protected-route--1.png +0 -0
  85. package/examples/demo/test/browser/__screenshots__/settings-parameter.browser.test.tsx/Settings-Parameter-Display-should-display--account--section-when-navigating-to--settings-account-1.png +0 -0
  86. package/examples/demo/test/browser/__screenshots__/settings-parameter.browser.test.tsx/Settings-Parameter-Display-should-display--account--section-when-navigating-to--settings-account-2.png +0 -0
  87. package/examples/demo/test/browser/__screenshots__/settings-parameter.browser.test.tsx/Settings-Parameter-Display-should-display--general--section-when-navigating-to--settings--no-parameter--1.png +0 -0
  88. package/examples/demo/test/browser/__screenshots__/settings-parameter.browser.test.tsx/Settings-Parameter-Display-should-display--general--section-when-navigating-to--settings--no-parameter--2.png +0 -0
  89. package/examples/demo/test/browser/__screenshots__/settings-parameter.browser.test.tsx/Settings-Parameter-Display-should-display--profile--section-when-navigating-to--settings-profile-1.png +0 -0
  90. package/examples/demo/test/browser/__screenshots__/settings-parameter.browser.test.tsx/Settings-Parameter-Display-should-display--profile--section-when-navigating-to--settings-profile-2.png +0 -0
  91. package/examples/demo/test/browser/__screenshots__/settings-parameter.browser.test.tsx/Settings-Parameter-Display-should-update-section-display-when-clicking-section-navigation-buttons-1.png +0 -0
  92. package/examples/demo/test/browser/__screenshots__/settings-parameter.browser.test.tsx/Settings-Parameter-Display-should-update-section-display-when-clicking-section-navigation-buttons-2.png +0 -0
  93. package/examples/demo/test/browser/__screenshots__/settings-query-freeze.browser.test.ts/Settings-with-query-parameters-works-correctly-1.png +0 -0
  94. package/examples/demo/test/browser/__screenshots__/settings-query-freeze.browser.test.ts/Settings-with-section-parameter-works-correctly-1.png +0 -0
  95. package/examples/demo/test/browser/__screenshots__/state-driven.browser.test.ts/DEMO-04--State-Driven-Reset---Browser-back-sends-event-to-actor-1.png +0 -0
  96. package/examples/demo/test/browser/__screenshots__/state-driven.browser.test.ts/DEMO-04--State-Driven-Reset---Browser-back-sends-event-to-actor-2.png +0 -0
  97. package/examples/demo/test/browser/__screenshots__/state-driven.browser.test.ts/DEMO-04b--Browser-navigation-with-SignalSyncedHistory-integration-1.png +0 -0
  98. package/examples/demo/test/browser/__screenshots__/state-driven.browser.test.ts/DEMO-04b--Browser-navigation-with-SignalSyncedHistory-integration-2.png +0 -0
  99. package/examples/demo/test/browser/__screenshots__/tanstack-integration.browser.test.tsx/TanStack-Router-Integration-renders-with-RouterProvider-context-1.png +0 -0
  100. package/examples/demo/test/browser/__screenshots__/tanstack-integration.browser.test.tsx/TanStack-Router-Integration-renders-with-RouterProvider-context-2.png +0 -0
  101. package/examples/demo/test/browser/__screenshots__/test-multiple-back.browser.test.tsx/Multiple-back--Navigate-forward-3x-then-back-3x-1.png +0 -0
  102. package/examples/demo/test/browser/__screenshots__/uat-xstate-route-regression.browser.test.ts/UAT-1--Opening-with--someinvalidstate-stays-at-current-state-1.png +0 -0
  103. package/examples/demo/test/browser/__screenshots__/uat-xstate-route-regression.browser.test.ts/UAT-2--Opening-with--about-renders-About-component--not-Login-1.png +0 -0
  104. package/examples/demo/test/browser/__screenshots__/uat-xstate-route-regression.browser.test.ts/UAT-2b--Opening-with--home-renders-Home-component--not-Login-1.png +0 -0
  105. package/examples/demo/test/browser/__screenshots__/uat-xstate-route-regression.browser.test.ts/UAT-2c--Opening-with--contact-renders-Contact-component--not-Login-1.png +0 -0
  106. package/examples/demo/test/browser/__screenshots__/uat-xstate-route-regression.browser.test.ts/UAT-3--Back-forward-navigation---rendering-syncs-with-URL-1.png +0 -0
  107. package/examples/demo/test/browser/__screenshots__/uat-xstate-route-regression.browser.test.ts/UAT-3--Back-forward-navigation---rendering-syncs-with-URL-2.png +0 -0
  108. package/examples/demo/test/browser/__screenshots__/uat-xstate-route-regression.browser.test.ts/UAT-4--Auth-state-preserved-when-navigating-between-authenticated-anonymous-states-1.png +0 -0
  109. package/examples/demo/test/browser/__screenshots__/uat-xstate-route-regression.browser.test.ts/UAT-4--Auth-state-preserved-when-navigating-between-authenticated-anonymous-states-2.png +0 -0
  110. package/examples/demo/test/browser/__screenshots__/uat-xstate-route-regression.browser.test.ts/UAT-4b--Browser-back-forward-preserves-auth-state-1.png +0 -0
  111. package/examples/demo/test/browser/__screenshots__/uat-xstate-route-regression.browser.test.ts/UAT-4b--Browser-back-forward-preserves-auth-state-2.png +0 -0
  112. package/examples/demo/test/browser/__screenshots__/uat-xstate-route-regression.browser.test.ts/UAT-5--Protected-route-with-play-route-respects-authentication-guard-1.png +0 -0
  113. package/examples/demo/test/browser/__screenshots__/uat-xstate-route-regression.browser.test.ts/UAT-5--Protected-route-with-play-route-respects-authentication-guard-2.png +0 -0
  114. package/examples/demo/test/browser/__screenshots__/user-reported-scenario.browser.test.tsx/User-scenario--home---about---home---contact---home--then-back-3x-1.png +0 -0
  115. package/examples/demo/test/browser/__screenshots__/user-reported-scenario.browser.test.tsx/User-scenario--login---home---about---home---contact---home--then-back-3x-1.png +0 -0
  116. package/examples/demo/test/browser/__screenshots__/xstate-route-events.browser.test.ts/Browser-back-button-sends-play-route-event-with-correct-state-ID-1.png +0 -0
  117. package/examples/demo/test/browser/__screenshots__/xstate-route-events.browser.test.ts/Browser-back-button-sends-play-route-event-with-correct-state-ID-2.png +0 -0
  118. package/examples/demo/test/browser/__screenshots__/xstate-route-events.browser.test.ts/Browser-back-button-sends-xstate-route-event-with-correct-state-ID-1.png +0 -0
  119. package/examples/demo/test/browser/__screenshots__/xstate-route-events.browser.test.ts/Direct-URL-navigation-sends-play-route-event-1.png +0 -0
  120. package/examples/demo/test/browser/__screenshots__/xstate-route-events.browser.test.ts/Direct-URL-navigation-sends-xstate-route-event-1.png +0 -0
  121. package/examples/demo/test/browser/__screenshots__/xstate-route-events.browser.test.ts/Forward-button-sends-play-route-event-1.png +0 -0
  122. package/examples/demo/test/browser/__screenshots__/xstate-route-events.browser.test.ts/Forward-button-sends-play-route-event-2.png +0 -0
  123. package/examples/demo/test/browser/__screenshots__/xstate-route-events.browser.test.ts/Forward-button-sends-xstate-route-event-1.png +0 -0
  124. package/examples/demo/test/browser/__screenshots__/xstate-route-events.browser.test.ts/GAP-12-fix-preserved--No-duplicate-history-entries-with-play-route-1.png +0 -0
  125. package/examples/demo/test/browser/__screenshots__/xstate-route-events.browser.test.ts/GAP-12-fix-preserved--No-duplicate-history-entries-with-play-route-2.png +0 -0
  126. package/examples/demo/test/browser/__screenshots__/xstate-route-events.browser.test.ts/Protected-route-sends-xstate-route-with-authentication-guard-1.png +0 -0
  127. package/examples/demo/test/browser/back-button-duplicate.browser.test.tsx +0 -148
  128. package/examples/demo/test/browser/back-forward-sync.browser.test.tsx +0 -149
  129. package/examples/demo/test/browser/direct-navigation.browser.test.ts +0 -146
  130. package/examples/demo/test/browser/exact-user-scenario.browser.test.tsx +0 -207
  131. package/examples/demo/test/browser/guard-rejection.browser.test.tsx +0 -52
  132. package/examples/demo/test/browser/history-investigation.browser.test.tsx +0 -82
  133. package/examples/demo/test/browser/history-navigation.browser.test.ts +0 -351
  134. package/examples/demo/test/browser/login-flow.browser.test.tsx +0 -34
  135. package/examples/demo/test/browser/navigation.browser.test.tsx +0 -34
  136. package/examples/demo/test/browser/protected-route-navigation.browser.test.tsx +0 -161
  137. package/examples/demo/test/browser/redirect-url-update.browser.test.tsx +0 -140
  138. package/examples/demo/test/browser/settings-parameter.browser.test.tsx +0 -164
  139. package/examples/demo/test/browser/settings-query-freeze.browser.test.ts +0 -141
  140. package/examples/demo/test/browser/state-driven.browser.test.ts +0 -112
  141. package/examples/demo/test/browser/tanstack-integration.browser.test.tsx +0 -61
  142. package/examples/demo/test/browser/uat-xstate-route-regression.browser.test.ts +0 -58
  143. package/examples/demo/test/browser/xstate-route-events.browser.test.ts +0 -293
  144. package/examples/demo/test/browser-back-view-rendering.test.ts +0 -104
  145. package/examples/demo/test/browser-e2e/auth-flow.browser.test.tsx +0 -49
  146. package/examples/demo/test/invalid-route-redirect.test.ts +0 -40
  147. package/examples/demo/test/passive-infra.test.ts +0 -35
  148. package/examples/demo/test/route-parameters.test.ts +0 -539
  149. package/examples/demo/test/signal-only.test.ts +0 -54
  150. package/examples/demo/test/strict-separation.test.ts +0 -37
  151. package/examples/demo/test/test-utils.ts +0 -49
  152. package/examples/demo/tsconfig.json +0 -21
  153. package/examples/demo/tsconfig.tsbuildinfo +0 -1
  154. package/examples/demo/vite.config.ts +0 -13
  155. package/examples/demo/vitest.browser.config.ts +0 -72
  156. package/examples/demo/vitest.config.e2e.browser.ts +0 -28
  157. package/examples/demo/vitest.config.ts +0 -35
  158. package/src/extract-params.ts +0 -75
  159. package/src/index.ts +0 -31
  160. package/src/play-router-provider.tsx +0 -46
  161. package/src/route-map.ts +0 -158
  162. package/src/tanstack-router-bridge.ts +0 -135
  163. package/src/types.ts +0 -26
  164. package/src/utils.ts +0 -12
  165. package/test/browser/__screenshots__/signal-synced-history.browser.test.ts/Browser-back-button-sends-route-navigate-event-to-actor-1.png +0 -0
  166. package/test/browser/__screenshots__/signal-synced-history.browser.test.ts/SignalSyncedHistory-prevents-circular-updates-1.png +0 -0
  167. package/test/browser/__screenshots__/signal-synced-history.browser.test.ts/SignalSyncedHistory-syncs-actor-route-to-browser-URL-1.png +0 -0
  168. package/test/browser/signal-synced-history.browser.test.ts +0 -95
  169. package/test/route-map.test.ts +0 -107
  170. package/test/tanstack-router-bridge.test.ts +0 -318
  171. package/test/urlpattern-integration.test.ts +0 -145
  172. package/tsconfig.json +0 -16
  173. package/tsconfig.tsbuildinfo +0 -1
  174. package/vitest.config.ts +0 -35
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xmachines/play-tanstack-react-router",
3
- "version": "1.0.0-beta.1",
3
+ "version": "1.0.0-beta.2",
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",
@@ -30,9 +30,9 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@tanstack/react-router": "^1.166.7",
33
- "@xmachines/play-actor": "1.0.0-beta.1",
34
- "@xmachines/play-router": "1.0.0-beta.1",
35
- "@xmachines/play-signals": "1.0.0-beta.1",
33
+ "@xmachines/play-actor": "1.0.0-beta.2",
34
+ "@xmachines/play-router": "1.0.0-beta.2",
35
+ "@xmachines/play-signals": "1.0.0-beta.2",
36
36
  "xstate": "^5.28.0"
37
37
  },
38
38
  "devDependencies": {
@@ -47,5 +47,10 @@
47
47
  },
48
48
  "publishConfig": {
49
49
  "access": "public"
50
- }
50
+ },
51
+ "files": [
52
+ "dist",
53
+ "README.md",
54
+ "LICENSE"
55
+ ]
51
56
  }
package/.oxfmtrc.json DELETED
@@ -1,3 +0,0 @@
1
- {
2
- "extends": ["@xmachines/shared/oxfmt"]
3
- }
package/.oxlintrc.json DELETED
@@ -1,3 +0,0 @@
1
- {
2
- "extends": ["@xmachines/shared/oxlint"]
3
- }
@@ -1,100 +0,0 @@
1
- # TanStack React Router Demo
2
-
3
- React + TanStack Router demonstration of Play's actor-authoritative routing and rendering model.
4
-
5
- ## What This Demonstrates
6
-
7
- - Shared auth machine reused without framework-specific business logic
8
- - `PlayRouterProvider` renderer-based integration with TanStack Router
9
- - Shell-driven rendering via `PlayRenderer` with actor-authoritative navigation
10
- - Non-browser invariant tests plus browser E2E coverage
11
-
12
- ## Running the Demo
13
-
14
- From this directory (`packages/play-tanstack-react-router/examples/demo`):
15
-
16
- ```bash
17
- npm install
18
- npm run dev
19
- ```
20
-
21
- Open `http://localhost:3000`.
22
-
23
- ## Step-by-Step Code Flow
24
-
25
- This demo uses provider-based integration centered on `PlayRouterProvider` and a route map generated from the machine:
26
-
27
- 1. `src/main.tsx` mounts `<App />`.
28
- 2. `src/App.tsx` creates/starts the actor from shared machine + catalog.
29
- 3. `src/App.tsx` builds `routeMap` from `extractMachineRoutes(authMachine)` + `createRouteMapFromTree(routeTree)`.
30
- 4. `PlayRouterProvider` bridges TanStack Router to the actor and renders `Shell` via `renderer(actor, router)`.
31
- 5. `Shell` renders `PlayRenderer`, header/nav, and debug panel from actor state.
32
- 6. Tests in `test/` and `test/browser*/` validate invariant and runtime behavior.
33
-
34
- ```tsx
35
- // src/App.tsx (shape)
36
- const routeTree = extractMachineRoutes(authMachine);
37
- const routeMap = createRouteMapFromTree(routeTree);
38
-
39
- return (
40
- <PlayRouterProvider
41
- actor={actor}
42
- router={router}
43
- routeMap={routeMap}
44
- renderer={(currentActor, currentRouter) => (
45
- <Shell actor={currentActor} router={currentRouter} />
46
- )}
47
- />
48
- );
49
- ```
50
-
51
- ```tsx
52
- // src/components/Login.tsx (shape)
53
- <button onClick={() => actor.send({ type: "auth.login", username, password })}>Login</button>
54
- ```
55
-
56
- Shared business logic comes from the common demo machine/catalog module (`authMachine` and `catalog`), so routing decisions remain machine-driven and framework-independent.
57
-
58
- ## Key Files
59
-
60
- - `src/main.tsx` - React entry point that mounts `<App />`
61
- - `src/App.tsx` - actor lifecycle, route-map creation, provider wiring, and `Shell` rendering
62
- - `src/components/` - UI components that send actor events and render state-driven views
63
- - `test/actor-authority.test.ts` - actor authority and guarded navigation behavior
64
- - `test/strict-separation.test.ts` - machine/view infrastructure separation contracts
65
- - `test/browser-e2e/auth-flow.browser.test.tsx` - canonical browser auth flow
66
- - `test/browser/` - extended browser checks for URL sync, history behavior, and route event flow
67
-
68
- ## Available Scripts
69
-
70
- ```bash
71
- npm run dev # Start Vite dev server (http://localhost:3000)
72
- npm run build # Build production assets
73
- npm run preview # Preview production build locally
74
- npm run test # Run Vitest suite
75
- npm run test:vitest # Explicit Vitest command alias
76
- npm run test:browser # Browser-focused test run (e2e browser config)
77
- npm run test:browser:full # Full browser test config run
78
- npm run test:e2e # Alias to test:browser
79
- ```
80
-
81
- ## Verification
82
-
83
- Run the core invariant checks referenced by this demo docs:
84
-
85
- ```bash
86
- npm run test:vitest -- test/actor-authority.test.ts test/strict-separation.test.ts
87
- npm run test:browser
88
- ```
89
-
90
- Manual sanity flow:
91
-
92
- 1. Run `npm run dev` and open `http://localhost:3000`.
93
- 2. Attempt protected navigation while logged out and confirm guard-driven behavior.
94
- 3. Log in, then confirm route and view updates stay in sync.
95
-
96
- ## Learn More
97
-
98
- - [TanStack React Router package README](../../README.md)
99
- - [Solid Router demo README](../../../play-solid-router/examples/demo/README.md)
100
- - [TanStack Solid Router demo README](../../../play-tanstack-solid-router/examples/demo/README.md)