@xmachines/docs 3.0.0 → 4.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.
Files changed (485) hide show
  1. package/README.md +8 -16
  2. package/api/@xmachines/play/README.md +11 -100
  3. package/api/@xmachines/play/errors/README.md +8 -0
  4. package/api/@xmachines/play/{classes → errors/classes}/NonNullableError.md +6 -6
  5. package/api/@xmachines/play/{classes → errors/classes}/PlayError.md +35 -10
  6. package/api/@xmachines/play/index/README.md +75 -0
  7. package/api/@xmachines/play/{functions → index/functions}/asCleanup.md +2 -2
  8. package/api/@xmachines/play/{functions → index/functions}/assertNonNullable.md +2 -2
  9. package/api/@xmachines/{play-actor → play/index}/functions/shallowEqualExcept.md +3 -3
  10. package/api/@xmachines/play/{type-aliases → index/type-aliases}/Cleanup.md +3 -3
  11. package/api/@xmachines/play/{type-aliases → index/type-aliases}/DisposeKey.md +2 -2
  12. package/api/@xmachines/play/{type-aliases → index/type-aliases}/PlayEvent.md +4 -4
  13. package/api/@xmachines/play/{variables → index/variables}/DISPOSE.md +2 -2
  14. package/api/@xmachines/play-actor/README.md +78 -229
  15. package/api/@xmachines/play-actor/interfaces/ActorEvent.md +18 -0
  16. package/api/@xmachines/play-actor/interfaces/PlayActor.md +73 -0
  17. package/api/@xmachines/play-dom/README.md +28 -40
  18. package/api/@xmachines/play-dom/classes/PlayRenderer.md +12 -11
  19. package/api/@xmachines/play-dom/functions/asCleanup.md +78 -0
  20. package/api/@xmachines/play-dom/functions/createPlayUI.md +4 -4
  21. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  22. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +3 -3
  23. package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
  24. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +6 -6
  25. package/api/@xmachines/play-dom/type-aliases/Cleanup.md +2 -2
  26. package/api/@xmachines/play-dom/type-aliases/MountFn.md +29 -12
  27. package/api/@xmachines/play-dom-router/README.md +70 -70
  28. package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +22 -21
  29. package/api/@xmachines/{play-vue-router → play-dom-router}/classes/RouteMap.md +12 -6
  30. package/api/@xmachines/play-dom-router/functions/asCleanup.md +78 -0
  31. package/api/@xmachines/play-dom-router/functions/connectRouter.md +3 -8
  32. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +9 -3
  33. package/api/@xmachines/play-dom-router/functions/createRouter.md +8 -14
  34. package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +5 -5
  35. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +70 -26
  36. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  37. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +8 -8
  38. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +9 -14
  39. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +24 -21
  40. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  41. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +4 -4
  42. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  43. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  44. package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +8 -8
  45. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +36 -23
  46. package/api/@xmachines/play-dom-router/type-aliases/Cleanup.md +2 -2
  47. package/api/@xmachines/play-dom-router/variables/DISPOSE.md +2 -2
  48. package/api/@xmachines/play-react/README.md +17 -39
  49. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +14 -10
  50. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  51. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  52. package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
  53. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +11 -11
  54. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
  55. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
  56. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
  57. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +8 -8
  58. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -3
  59. package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
  60. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  61. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  62. package/api/@xmachines/play-react/variables/schema.md +52 -0
  63. package/api/@xmachines/play-react-router/README.md +22 -50
  64. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +17 -16
  65. package/api/@xmachines/play-react-router/classes/RouteMap.md +11 -5
  66. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +11 -8
  67. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +16 -9
  68. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +9 -14
  69. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +10 -10
  70. package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +72 -0
  71. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +4 -4
  72. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  73. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  74. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
  75. package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
  76. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +4 -4
  77. package/api/@xmachines/play-router/README.md +104 -196
  78. package/api/@xmachines/play-router/errors/README.md +15 -0
  79. package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +191 -0
  80. package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +175 -0
  81. package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +175 -0
  82. package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +200 -0
  83. package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +203 -0
  84. package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +175 -0
  85. package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +199 -0
  86. package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +192 -0
  87. package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +182 -0
  88. package/api/@xmachines/play-router/index/README.md +75 -0
  89. package/api/@xmachines/play-router/{classes → index/classes}/RouteMap.md +12 -6
  90. package/api/@xmachines/play-router/{classes → index/classes}/RouterBridgeBase.md +19 -17
  91. package/api/@xmachines/play-router/{functions → index/functions}/buildPlayRouteEvent.md +2 -2
  92. package/api/@xmachines/play-router/{functions → index/functions}/buildRouteTree.md +14 -4
  93. package/api/@xmachines/play-router/{functions → index/functions}/cleanFrameworkParams.md +3 -4
  94. package/api/@xmachines/play-router/{functions → index/functions}/createRouteMapFromTree.md +13 -6
  95. package/api/@xmachines/play-router/{functions → index/functions}/createRouterConnection.md +2 -2
  96. package/api/@xmachines/play-router/{functions → index/functions}/detectDuplicateRoutes.md +2 -2
  97. package/api/@xmachines/play-router/{functions → index/functions}/extractQuery.md +2 -2
  98. package/api/@xmachines/play-router/{functions → index/functions}/extractRouteParams.md +3 -3
  99. package/api/@xmachines/play-router/{functions → index/functions}/findRouteById.md +2 -2
  100. package/api/@xmachines/play-router/{functions → index/functions}/findRouteByPath.md +2 -2
  101. package/api/@xmachines/play-router/index/functions/getPatternParamNames.md +29 -0
  102. package/api/@xmachines/play-router/index/functions/getRequiredPatternParamNames.md +39 -0
  103. package/api/@xmachines/play-router/{functions → index/functions}/isMountableBridge.md +2 -2
  104. package/api/@xmachines/play-router/index/functions/joinBasePath.md +37 -0
  105. package/api/@xmachines/play-router/{functions → index/functions}/mountKey.md +2 -2
  106. package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +43 -0
  107. package/api/@xmachines/play-router/{functions → index/functions}/openProviderBridge.md +14 -14
  108. package/api/@xmachines/play-router/index/functions/pickOwnParams.md +41 -0
  109. package/api/@xmachines/play-router/{functions → index/functions}/repointProviderBridge.md +2 -2
  110. package/api/@xmachines/play-router/index/functions/resolveBasePath.md +51 -0
  111. package/api/@xmachines/play-router/{functions → index/functions}/resolveFrameworkParams.md +11 -13
  112. package/api/@xmachines/play-router/{functions → index/functions}/sanitizePathname.md +2 -2
  113. package/api/@xmachines/play-router/index/functions/stripBasePath.md +44 -0
  114. package/api/@xmachines/play-router/{functions → index/functions}/validateRouteFormat.md +2 -2
  115. package/api/@xmachines/play-router/{functions → index/functions}/validateStateExists.md +2 -2
  116. package/api/@xmachines/play-router/{interfaces → index/interfaces}/BasePathOptions.md +6 -6
  117. package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +13 -0
  118. package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +47 -0
  119. package/api/@xmachines/play-router/{interfaces → index/interfaces}/LocationLike.md +6 -6
  120. package/api/@xmachines/play-router/{interfaces → index/interfaces}/MountableRouterBridge.md +9 -9
  121. package/api/@xmachines/play-router/{interfaces → index/interfaces}/OpenProviderBridgeArgs.md +13 -13
  122. package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +130 -0
  123. package/api/@xmachines/play-router/{interfaces → index/interfaces}/PlayRouterProviderBaseProps.md +15 -15
  124. package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +14 -0
  125. package/api/@xmachines/play-router/{interfaces → index/interfaces}/ResolvedRoutePath.md +6 -6
  126. package/api/@xmachines/play-router/index/interfaces/Routable.md +26 -0
  127. package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +72 -0
  128. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteInfo.md +11 -11
  129. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteMapOptions.md +5 -5
  130. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteMapping.md +6 -6
  131. package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +12 -0
  132. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteNode.md +13 -13
  133. package/api/@xmachines/play-router/index/interfaces/RouteObject.md +34 -0
  134. package/api/@xmachines/play-router/index/interfaces/RouteTree.md +27 -0
  135. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteWatcherHandle.md +7 -7
  136. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouterBridge.md +5 -5
  137. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouterConnection.md +10 -10
  138. package/api/@xmachines/play-router/{interfaces → index/interfaces}/WindowLike.md +4 -4
  139. package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +46 -0
  140. package/api/@xmachines/play-router/index/type-aliases/RouteData.md +12 -0
  141. package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +31 -0
  142. package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +11 -0
  143. package/api/@xmachines/{play-xstate → play-router/index}/variables/DISPOSE.md +3 -3
  144. package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +18 -0
  145. package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +18 -0
  146. package/api/@xmachines/play-router/xstate/README.md +53 -0
  147. package/api/@xmachines/play-router/{functions → xstate/functions}/createRouteMap.md +8 -6
  148. package/api/@xmachines/play-router/{functions → xstate/functions}/extractMachineRoutes.md +4 -4
  149. package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +35 -0
  150. package/api/@xmachines/play-router/{functions → xstate/functions}/getRoutableRoutes.md +6 -6
  151. package/api/@xmachines/play-router/{functions → xstate/functions}/getRouteMappings.md +7 -7
  152. package/api/@xmachines/play-router/{functions → xstate/functions}/getTransitionReachableRoutes.md +2 -2
  153. package/api/@xmachines/play-router/{functions → xstate/functions}/isRouteReachable.md +2 -2
  154. package/api/@xmachines/play-router/{functions → xstate/functions}/machineToGraph.md +2 -2
  155. package/api/@xmachines/play-router/xstate/functions/routeExists.md +26 -0
  156. package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +15 -0
  157. package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +17 -0
  158. package/api/@xmachines/play-router/{type-aliases → xstate/type-aliases}/MachineGraph.md +2 -2
  159. package/api/@xmachines/play-signals/README.md +2 -24
  160. package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
  161. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
  162. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  163. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
  164. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  165. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  166. package/api/@xmachines/play-signals/type-aliases/Cleanup.md +2 -2
  167. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  168. package/api/@xmachines/play-solid/README.md +14 -31
  169. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  170. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  171. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +11 -11
  172. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
  173. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +8 -8
  174. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -3
  175. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  176. package/api/@xmachines/play-solid/variables/ActorProvider.md +1 -1
  177. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  178. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  179. package/api/@xmachines/play-solid/variables/schema.md +71 -0
  180. package/api/@xmachines/play-solid-router/README.md +31 -52
  181. package/api/@xmachines/play-solid-router/classes/RouteMap.md +11 -5
  182. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +30 -53
  183. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +9 -8
  184. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +38 -35
  185. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +9 -14
  186. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +12 -12
  187. package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +72 -0
  188. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +4 -4
  189. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +5 -5
  190. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  191. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
  192. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
  193. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  194. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +4 -4
  195. package/api/@xmachines/play-svelte/README.md +11 -26
  196. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  197. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  198. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  199. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  200. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +12 -12
  201. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
  202. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +14 -14
  203. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +8 -8
  204. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -3
  205. package/api/@xmachines/play-svelte/variables/schema.md +16 -0
  206. package/api/@xmachines/play-svelte-spa-router/README.md +22 -41
  207. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +11 -5
  208. package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +22 -21
  209. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +3 -2
  210. package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +5 -5
  211. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +8 -8
  212. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +9 -14
  213. package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +72 -0
  214. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +4 -4
  215. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  216. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  217. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +8 -8
  218. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  219. package/api/@xmachines/play-sveltekit-router/README.md +17 -35
  220. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +11 -5
  221. package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +22 -21
  222. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +3 -2
  223. package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +5 -5
  224. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +8 -8
  225. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  226. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +9 -14
  227. package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +72 -0
  228. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +4 -4
  229. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  230. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  231. package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +8 -8
  232. package/api/@xmachines/play-tanstack-react-router/README.md +19 -43
  233. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +11 -5
  234. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +18 -17
  235. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +11 -8
  236. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +16 -9
  237. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +9 -14
  238. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +10 -10
  239. package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +72 -0
  240. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +4 -4
  241. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  242. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  243. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
  244. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
  245. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  246. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
  247. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +4 -4
  248. package/api/@xmachines/play-tanstack-router/README.md +6 -4
  249. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +17 -20
  250. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  251. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
  252. package/api/@xmachines/play-tanstack-solid-router/README.md +26 -52
  253. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +11 -5
  254. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +49 -45
  255. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +9 -8
  256. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +9 -14
  257. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +10 -10
  258. package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +72 -0
  259. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +4 -4
  260. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  261. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  262. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
  263. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
  264. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  265. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
  266. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +4 -4
  267. package/api/@xmachines/play-url/README.md +69 -0
  268. package/api/@xmachines/play-url/errors/README.md +17 -0
  269. package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +200 -0
  270. package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +203 -0
  271. package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +199 -0
  272. package/api/@xmachines/play-url/index/README.md +65 -0
  273. package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +39 -0
  274. package/api/@xmachines/play-url/index/functions/getCandidates.md +29 -0
  275. package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +31 -0
  276. package/api/@xmachines/play-url/index/functions/getIndexKey.md +30 -0
  277. package/api/@xmachines/play-url/index/functions/getNormalizedParamNameMap.md +32 -0
  278. package/api/@xmachines/play-url/index/functions/getPatternParamNames.md +29 -0
  279. package/api/@xmachines/play-url/index/functions/getRequiredPatternParamNames.md +39 -0
  280. package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +36 -0
  281. package/api/@xmachines/play-url/index/functions/isParameterizedPattern.md +36 -0
  282. package/api/@xmachines/{play-router → play-url/index}/functions/joinBasePath.md +2 -2
  283. package/api/@xmachines/{play-router → play-url/index}/functions/normalizeBasePath.md +2 -2
  284. package/api/@xmachines/play-url/index/functions/normalizeParamNames.md +36 -0
  285. package/api/@xmachines/play-url/index/functions/parsePattern.md +27 -0
  286. package/api/@xmachines/{play-router → play-url/index}/functions/pickOwnParams.md +4 -4
  287. package/api/@xmachines/{play-router → play-url/index}/functions/resolveBasePath.md +2 -2
  288. package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +49 -0
  289. package/api/@xmachines/{play-router → play-url/index}/functions/stripBasePath.md +2 -2
  290. package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +28 -0
  291. package/api/@xmachines/{play-router → play-url/index}/interfaces/FrameworkParamsSource.md +9 -9
  292. package/api/@xmachines/play-url/index/interfaces/GroupPart.md +15 -0
  293. package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +14 -0
  294. package/api/@xmachines/play-url/index/interfaces/ParamPart.md +21 -0
  295. package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +23 -0
  296. package/api/@xmachines/play-url/index/interfaces/PatternParam.md +15 -0
  297. package/api/@xmachines/{play-router → play-url/index}/interfaces/ResolvedBasePath.md +6 -6
  298. package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +11 -0
  299. package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +9 -0
  300. package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +22 -0
  301. package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +68 -0
  302. package/api/@xmachines/{play-router → play-url/index}/variables/NO_BASE_PATH.md +2 -2
  303. package/api/@xmachines/play-url/index/variables/URLPattern.md +21 -0
  304. package/api/@xmachines/play-view/README.md +165 -0
  305. package/api/@xmachines/play-view/errors/README.md +17 -0
  306. package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +192 -0
  307. package/api/@xmachines/play-view/index/README.md +55 -0
  308. package/api/@xmachines/{play-actor → play-view/index}/functions/attachRenderErrorHandler.md +6 -6
  309. package/api/@xmachines/{play-actor → play-view/index}/functions/composePlayState.md +2 -2
  310. package/api/@xmachines/{play-actor → play-view/index}/functions/createFailureLatch.md +2 -2
  311. package/api/@xmachines/{play-actor → play-view/index}/functions/createReportGuard.md +2 -2
  312. package/api/@xmachines/{play-actor → play-view/index}/functions/createViewStoreLifecycle.md +2 -2
  313. package/api/@xmachines/{play-actor → play-view/index}/functions/guardContextWrites.md +2 -2
  314. package/api/@xmachines/{play-actor → play-view/index}/functions/refreshContextSubtree.md +2 -2
  315. package/api/@xmachines/{play-actor → play-view/index}/functions/reuseComposedState.md +3 -3
  316. package/api/@xmachines/{play-actor → play-view/index}/functions/sameViewInputs.md +2 -2
  317. package/api/@xmachines/{play-actor → play-view/index}/functions/toAtomState.md +2 -2
  318. package/api/@xmachines/{play-actor → play-view/index}/functions/typedSpec.md +2 -2
  319. package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +49 -0
  320. package/api/@xmachines/{play-actor → play-view/index}/interfaces/BaseViewContextValue.md +12 -12
  321. package/api/@xmachines/{play-actor → play-view/index}/interfaces/FailureLatch.md +6 -5
  322. package/api/@xmachines/{play-actor → play-view/index}/interfaces/PlaySpec.md +8 -8
  323. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ReportGuard.md +6 -6
  324. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ReportGuardMessages.md +6 -6
  325. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ResolveViewStoreOptions.md +5 -5
  326. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewInputs.md +7 -7
  327. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewStoreLifecycle.md +6 -5
  328. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewStoreResolution.md +7 -7
  329. package/api/@xmachines/{play-actor → play-view/index}/interfaces/Viewable.md +5 -5
  330. package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +26 -0
  331. package/api/@xmachines/{play-actor → play-view/index}/variables/CONTEXT_STATE_KEY.md +2 -2
  332. package/api/@xmachines/play-vue/README.md +15 -33
  333. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  334. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  335. package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
  336. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +9 -9
  337. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
  338. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +8 -8
  339. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -3
  340. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  341. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  342. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  343. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  344. package/api/@xmachines/play-vue/variables/schema.md +71 -0
  345. package/api/@xmachines/play-vue-router/README.md +34 -77
  346. package/api/@xmachines/play-vue-router/errors/README.md +8 -0
  347. package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +193 -0
  348. package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +177 -0
  349. package/api/@xmachines/play-vue-router/index/README.md +20 -0
  350. package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +157 -0
  351. package/api/@xmachines/play-vue-router/{classes → index/classes}/VueRouterBridge.md +24 -43
  352. package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +130 -0
  353. package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +72 -0
  354. package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouteMapOptions.md +5 -5
  355. package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouteMapping.md +6 -6
  356. package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouterBridge.md +5 -5
  357. package/api/@xmachines/play-vue-router/{variables → index/variables}/PlayRouterProvider.md +4 -4
  358. package/api/@xmachines/play-xstate/README.md +153 -105
  359. package/api/@xmachines/play-xstate/errors/README.md +13 -0
  360. package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +199 -0
  361. package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +198 -0
  362. package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +169 -0
  363. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +197 -0
  364. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +176 -0
  365. package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +199 -0
  366. package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +203 -0
  367. package/api/@xmachines/play-xstate/index/README.md +38 -0
  368. package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +584 -0
  369. package/api/@xmachines/play-xstate/index/functions/compose.md +224 -0
  370. package/api/@xmachines/play-xstate/index/functions/definePlayer.md +158 -0
  371. package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +22 -0
  372. package/api/@xmachines/play-xstate/{interfaces → index/interfaces}/PlayerFactoryResumeOptions.md +3 -3
  373. package/api/@xmachines/play-xstate/{interfaces → index/interfaces}/PlayerOptions.md +8 -8
  374. package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +33 -0
  375. package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +39 -0
  376. package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +27 -0
  377. package/api/@xmachines/{play-router → play-xstate/index}/variables/DISPOSE.md +3 -3
  378. package/api/@xmachines/play-xstate/with-routing/README.md +46 -0
  379. package/api/@xmachines/play-xstate/{functions → with-routing/functions}/buildRouteUrl.md +2 -2
  380. package/api/@xmachines/play-xstate/{functions → with-routing/functions}/deriveRoute.md +4 -4
  381. package/api/@xmachines/play-xstate/{functions → with-routing/functions}/formatPlayRouteTransitions.md +2 -2
  382. package/api/@xmachines/play-xstate/{functions → with-routing/functions}/isAbsoluteRoute.md +3 -3
  383. package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +36 -0
  384. package/api/@xmachines/play-xstate/{interfaces → with-routing/interfaces}/RouteContext.md +6 -6
  385. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +34 -0
  386. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +12 -0
  387. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +31 -0
  388. package/api/@xmachines/play-xstate/{type-aliases → with-routing/type-aliases}/RouteMachineConfig.md +5 -5
  389. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +11 -0
  390. package/api/@xmachines/play-xstate/{type-aliases → with-routing/type-aliases}/RouteStateNode.md +21 -7
  391. package/api/@xmachines/play-xstate/with-view/README.md +31 -0
  392. package/api/@xmachines/play-xstate/with-view/functions/withView.md +32 -0
  393. package/api/@xmachines/shared/README.md +10 -32
  394. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
  395. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  396. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  397. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  398. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
  399. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  400. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +2 -1
  401. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
  402. package/api/README.md +2 -0
  403. package/api/llms.txt +15 -10
  404. package/contributing/architecture.md +94 -66
  405. package/contributing/configuration.md +85 -26
  406. package/contributing/deployment.md +30 -28
  407. package/contributing/development.md +51 -10
  408. package/contributing/testing.md +87 -28
  409. package/examples/README.md +9 -7
  410. package/examples/form-validation.md +3 -2
  411. package/examples/multi-router-integration.md +61 -39
  412. package/examples/routing-patterns.md +15 -14
  413. package/examples/traffic-light.md +11 -5
  414. package/guides/README.md +1 -0
  415. package/guides/actor-model.md +35 -26
  416. package/guides/getting-started.md +49 -46
  417. package/guides/inspector.md +4 -4
  418. package/guides/routing.md +245 -0
  419. package/guides/state-machines.md +16 -17
  420. package/package.json +10 -9
  421. package/rfc/play.md +35 -22
  422. package/api/@xmachines/play-actor/classes/AbstractActor.md +0 -505
  423. package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +0 -48
  424. package/api/@xmachines/play-actor/interfaces/Routable.md +0 -14
  425. package/api/@xmachines/play-dom/type-aliases/DisposablePlayUI.md +0 -36
  426. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +0 -40
  427. package/api/@xmachines/play-dom-router/interfaces/DisposableBrowserHistory.md +0 -262
  428. package/api/@xmachines/play-dom-router/interfaces/DisposableVanillaRouter.md +0 -80
  429. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +0 -122
  430. package/api/@xmachines/play-react/type-aliases/PlayRendererProps.md +0 -13
  431. package/api/@xmachines/play-react-router/functions/createRouteMap.md +0 -40
  432. package/api/@xmachines/play-react-router/interfaces/PlayActor.md +0 -70
  433. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +0 -35
  434. package/api/@xmachines/play-router/functions/getPatternParamNames.md +0 -24
  435. package/api/@xmachines/play-router/functions/getRequiredPatternParamNames.md +0 -36
  436. package/api/@xmachines/play-router/functions/routeExists.md +0 -26
  437. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +0 -13
  438. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +0 -15
  439. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +0 -17
  440. package/api/@xmachines/play-router/interfaces/PlayActor.md +0 -70
  441. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +0 -135
  442. package/api/@xmachines/play-router/interfaces/RoutableActor.md +0 -65
  443. package/api/@xmachines/play-router/interfaces/RouteMatch.md +0 -12
  444. package/api/@xmachines/play-router/interfaces/RouteObject.md +0 -21
  445. package/api/@xmachines/play-router/interfaces/RouteTree.md +0 -21
  446. package/api/@xmachines/play-router/type-aliases/BaseRouteMapping.md +0 -13
  447. package/api/@xmachines/play-router/type-aliases/PlayRouterBridgeConstructor.md +0 -36
  448. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +0 -11
  449. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +0 -40
  450. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +0 -471
  451. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +0 -13
  452. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +0 -40
  453. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +0 -9
  454. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +0 -40
  455. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +0 -9
  456. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +0 -40
  457. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +0 -29
  458. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +0 -70
  459. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +0 -31
  460. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +0 -40
  461. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +0 -70
  462. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +0 -13
  463. package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +0 -9
  464. package/api/@xmachines/play-vue/variables/getPlayViewContext.md +0 -39
  465. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +0 -40
  466. package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +0 -70
  467. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +0 -135
  468. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +0 -13
  469. package/api/@xmachines/play-vue-router/type-aliases/VueRouteMap.md +0 -13
  470. package/api/@xmachines/play-vue-router/variables/VueRouteMap.md +0 -13
  471. package/api/@xmachines/play-xstate/classes/PlayerActor.md +0 -568
  472. package/api/@xmachines/play-xstate/functions/composeGuards.md +0 -86
  473. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +0 -72
  474. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +0 -43
  475. package/api/@xmachines/play-xstate/functions/definePlayer.md +0 -78
  476. package/api/@xmachines/play-xstate/functions/eventMatches.md +0 -45
  477. package/api/@xmachines/play-xstate/functions/hasContext.md +0 -45
  478. package/api/@xmachines/play-xstate/functions/negateGuard.md +0 -67
  479. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +0 -20
  480. package/api/@xmachines/play-xstate/interfaces/RouteObject.md +0 -17
  481. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +0 -19
  482. package/api/@xmachines/play-xstate/type-aliases/Guard.md +0 -36
  483. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +0 -23
  484. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +0 -26
  485. package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +0 -9
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Documentation, guides, RFCs, and generated API reference for XMachines.
4
4
 
5
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Version](https://img.shields.io/badge/version-3.0.0-blue)](https://www.npmjs.com/package/@xmachines/docs)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Version](https://img.shields.io/badge/version-4.0.0-blue)](https://www.npmjs.com/package/@xmachines/docs)
6
6
 
7
7
  ## Overview
8
8
 
@@ -78,7 +78,8 @@ Concept guides and tutorials that show how to use XMachines:
78
78
 
79
79
  - **[Getting Started](guides/getting-started.md)** — `setup().createMachine()` → `definePlayer()` → `actor.start()` → TC39 Signals
80
80
  - **[Understanding State Machines](guides/state-machines.md)** — `meta.route`, `meta.view`, and why machines replace boolean flags
81
- - **[Understanding the Actor Model](guides/actor-model.md)** — Actor/infrastructure split, `AbstractActor`, and the reset invariant
81
+ - **[Understanding the Actor Model](guides/actor-model.md)** — Actor/infrastructure split, `PlayActor`, and the reset invariant
82
+ - **[Understanding Routing](guides/routing.md)** — The URLPattern grammar of `meta.route`, the prefix rule, and the routing invariants
82
83
  - **[Understanding TC39 Signals](guides/signals.md)** — Signal primitives and the five architectural invariants they enforce
83
84
 
84
85
  **Tooling:**
@@ -112,25 +113,16 @@ TypeDoc generates the API reference for every public package. See [`api/README.m
112
113
  The documented packages:
113
114
 
114
115
  - [`@xmachines/play`](../play/README.md) — Core protocols (`PlayEvent`, `PlayError`)
115
- - [`@xmachines/play-actor`](../play-actor/README.md) — `AbstractActor`, `Routable`, `Viewable`
116
+ - [`@xmachines/play-actor`](../play-actor/README.md) — `PlayActor`
117
+ - [`@xmachines/play-view`](../play-view/README.md) — `Viewable`, `PlaySpec`, the view store lifecycle
116
118
  - [`@xmachines/play-signals`](../play-signals/README.md) — TC39 Signals polyfill, `watchSignal`
117
- - [`@xmachines/play-router`](../play-router/README.md) — `extractMachineRoutes`, `RouterBridgeBase`
119
+ - [`@xmachines/play-router`](../play-router/README.md) — `RouterBridgeBase`, `RouteMap`, `Routable`
120
+ - [`@xmachines/play-router/xstate`](../play-router/README.md) — `extractMachineRoutes`, `createRouteMap`
121
+ - [`@xmachines/play-url`](../play-url/README.md) — the URLPattern grammar, a base path, the params of a framework router
118
122
  - [`@xmachines/play-xstate`](../play-xstate/README.md) — `definePlayer`, `formatPlayRouteTransitions`, `PlayerActor`
119
123
  - [`@xmachines/play-dom`](../play-dom/README.md), [`play-react`](../play-react/README.md), [`play-solid`](../play-solid/README.md), [`play-svelte`](../play-svelte/README.md), [`play-vue`](../play-vue/README.md) — View renderers
120
124
  - [`@xmachines/play-dom-router`](../play-dom-router/README.md), [`play-tanstack-router`](../play-tanstack-router/README.md), [`play-react-router`](../play-react-router/README.md), [`play-tanstack-react-router`](../play-tanstack-react-router/README.md), [`play-solid-router`](../play-solid-router/README.md), [`play-tanstack-solid-router`](../play-tanstack-solid-router/README.md), [`play-vue-router`](../play-vue-router/README.md), [`play-svelte-spa-router`](../play-svelte-spa-router/README.md), [`play-sveltekit-router`](../play-sveltekit-router/README.md) — Router adapters
121
125
 
122
- ## Testing
123
-
124
- Run the docs package tests in isolation:
125
-
126
- ```bash
127
- # From the monorepo root
128
- pnpm --filter @xmachines/docs test
129
-
130
- # Or from within the package directory
131
- pnpm test
132
- ```
133
-
134
126
  ## Regenerating API Docs
135
127
 
136
128
  TypeDoc generates the `api/` directory. Never edit it by hand. Generate it again from the monorepo root:
@@ -4,7 +4,7 @@
4
4
 
5
5
  > Core protocol layer for the Universal Player Architecture. It defines `PlayEvent`, `PlayError`, and the contracts that keep the business logic loosely coupled to the runtime adapters.
6
6
 
7
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Version](https://img.shields.io/badge/version-3.0.0-blue)](https://www.npmjs.com/package/@xmachines/play)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Version](https://img.shields.io/badge/version-4.0.0-blue)](https://www.npmjs.com/package/@xmachines/play)
8
8
 
9
9
  ---
10
10
 
@@ -14,7 +14,7 @@
14
14
  pnpm add @xmachines/play
15
15
  ```
16
16
 
17
- > **This package requires Node.js `>= 22.0.0`.** Every package is an ES module (`"type": "module"`).
17
+ > **This package requires Node.js `>= 24.0.0`.** Every package is an ES module (`"type": "module"`).
18
18
 
19
19
  ---
20
20
 
@@ -69,8 +69,8 @@ const invalid: LoginEvent = { type: "auth.login" }; // Error!
69
69
  Base class for every `@xmachines/*` runtime error. Each error has a stable `scope` (the class or the module that throws it) and a stable `code` (a machine-readable identifier). Always branch on `.code` or on the subclass. Never branch on `.message`.
70
70
 
71
71
  ```typescript
72
- import { PlayError, assertNonNullable } from "@xmachines/play";
73
- import { NonNullableError } from "@xmachines/play/errors";
72
+ import { assertNonNullable } from "@xmachines/play";
73
+ import { NonNullableError, PlayError } from "@xmachines/play/errors";
74
74
 
75
75
  try {
76
76
  assertNonNullable(document.getElementById("app"), "#app");
@@ -91,7 +91,7 @@ try {
91
91
  Extend `PlayError` in your own `@xmachines/*`-compatible packages:
92
92
 
93
93
  ```typescript
94
- import { PlayError } from "@xmachines/play";
94
+ import { PlayError } from "@xmachines/play/errors";
95
95
 
96
96
  export class MyPackageError extends PlayError {
97
97
  constructor(message: string, options?: ErrorOptions) {
@@ -176,8 +176,6 @@ pair.
176
176
  | Export | Kind | Description |
177
177
  | --------------------- | ---------- | -------------------------------------------------------------------- |
178
178
  | `PlayEvent<TPayload>` | `type` | Universal event contract — `{ type: string } & TPayload` |
179
- | `PlayError` | `class` | Base class for all `@xmachines/*` typed errors |
180
- | `NonNullableError` | `class` | `assertNonNullable` throws it when a value is `null` or `undefined` |
181
179
  | `assertNonNullable` | `function` | Asserts that the value is not null. It returns the narrowed value |
182
180
  | `Cleanup` | `type` | The release of a subscription — `(() => void) & Disposable` |
183
181
  | `asCleanup` | `function` | Publishes one release as a `Cleanup`. It changes the function itself |
@@ -188,7 +186,7 @@ pair.
188
186
 
189
187
  | Export | Kind | Description |
190
188
  | ------------------ | ------- | --------------------------------------------------------- |
191
- | `PlayError` | `class` | The base error class, re-exported |
189
+ | `PlayError` | `class` | The base class of every `@xmachines/*` typed error |
192
190
  | `NonNullableError` | `class` | `scope: "assertNonNullable"`, `code: "PLAY_NON_NULLABLE"` |
193
191
 
194
192
  ---
@@ -205,107 +203,20 @@ Every other `@xmachines/*` package exports its own error subclasses from its `./
205
203
  | ---------------------------- | ----------------------------------- |
206
204
  | `@xmachines/play` | `@xmachines/play/errors` |
207
205
  | `@xmachines/play-router` | `@xmachines/play-router/errors` |
206
+ | `@xmachines/play-url` | `@xmachines/play-url/errors` |
207
+ | `@xmachines/play-view` | `@xmachines/play-view/errors` |
208
208
  | `@xmachines/play-xstate` | `@xmachines/play-xstate/errors` |
209
209
  | `@xmachines/play-vue-router` | `@xmachines/play-vue-router/errors` |
210
210
 
211
211
  ---
212
212
 
213
- ## Testing
214
-
215
- Run tests for this package in isolation:
216
-
217
- ```bash
218
- pnpm --filter @xmachines/play test
219
- ```
220
-
221
- Or from the package directory:
222
-
223
- ```bash
224
- pnpm test
225
- ```
226
-
227
- Tests use **Vitest** and cover the `PlayError` class construction, inheritance, `cause` support, and subclassing patterns.
228
-
229
- ---
230
-
231
213
  ## License
232
214
 
233
215
  MIT © [Mikael Karon](mailto:mikael@karon.se)
234
216
 
235
217
  See [LICENSE](./LICENSE) for details.
236
218
 
237
- @xmachines/play - the core protocol layer
238
-
239
- This package defines the architectural contracts that carry the communication
240
- between the Actor and the infrastructure, with no direct dependency between them.
241
- RFC section 5.2 gives these protocols. They are the base of the loose coupling
242
- between the business logic and the runtime adapters.
243
-
244
- ## The exports
245
-
246
- **PlayEvent<TPayload>** - the generic event type of the Actor communication
247
-
248
- - It is every object with a `type: string` property
249
- - The generic `TPayload` parameter gives a type-safe event shape, and it is optional
250
- - The default is `Record<string, unknown>`, which accepts each shape
251
- - It is framework-agnostic, and it is not bound to XState or to another library
252
-
253
- **Use:**
254
-
255
- ```typescript
256
- // Flexible, the default:
257
- const event: PlayEvent = { type: "auth.login", userId: "123" };
258
-
259
- // Type-safe, with the generic parameter:
260
- type LoginEvent = PlayEvent<{ userId: string }>;
261
- const event: LoginEvent = { type: "auth.login", userId: "123" };
262
- ```
263
-
264
- **The common event patterns:**
265
-
266
- - A domain event: `{ type: 'auth.login', userId: '123' }`
267
- - Your own event: `{ type: 'form.submit', data: {...} }`
268
-
269
- **The routing events** come from @xmachines/play-router:
270
-
271
- - PlayRouteEvent: the routing event with the parameters and the target state ID
272
- - RouterBridge: the protocol that connects a router adapter to an actor
273
-
274
- **The browser navigation:** a router adapter handles the browser BACK and FORWARD
275
- buttons, through the `popstate` event. The user presses BACK or FORWARD, the
276
- router detects the new URL, and it sends a PlayRouteEvent to the actor. The actor
277
- then checks the event.
278
-
279
- ```typescript
280
- import type { PlayRouteEvent, RouterBridge } from "@xmachines/play-router";
281
- ```
282
-
283
- ## The architectural invariants
284
-
285
- These protocols enforce the invariants below:
286
-
287
- 1. **Actor Authority**: the infrastructure makes a request, and the Actor decides the validity
288
- 2. **Strict Separation**: no layer depends on another layer directly
289
- 3. **Passive Infrastructure**: the infrastructure observes the Actor signals. It never controls them
290
- 4. **Signal-Only Reactivity**: every state change goes through a TC39 Signal
291
- 5. **State-Driven Reset**: each navigation follows the transition rules of the state machine
292
-
293
- ## Classes
294
-
295
- - [NonNullableError](classes/NonNullableError.md)
296
- - [PlayError](classes/PlayError.md)
297
-
298
- ## Type Aliases
299
-
300
- - [Cleanup](type-aliases/Cleanup.md)
301
- - [DisposeKey](type-aliases/DisposeKey.md)
302
- - [PlayEvent](type-aliases/PlayEvent.md)
303
-
304
- ## Variables
305
-
306
- - [DISPOSE](variables/DISPOSE.md)
307
-
308
- ## Functions
219
+ ## Modules
309
220
 
310
- - [asCleanup](functions/asCleanup.md)
311
- - [assertNonNullable](functions/assertNonNullable.md)
221
+ - [errors](errors/README.md)
222
+ - [index](index/README.md)
@@ -0,0 +1,8 @@
1
+ [API](../../../README.md) / [@xmachines/play](../README.md) / errors
2
+
3
+ # errors
4
+
5
+ ## Classes
6
+
7
+ - [NonNullableError](classes/NonNullableError.md)
8
+ - [PlayError](classes/PlayError.md)
@@ -1,10 +1,10 @@
1
- [API](../../../README.md) / [@xmachines/play](../README.md) / NonNullableError
1
+ [API](../../../../README.md) / [@xmachines/play](../../README.md) / [errors](../README.md) / NonNullableError
2
2
 
3
3
  # Class: NonNullableError
4
4
 
5
- Defined in: [packages/play/src/errors.ts:110](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/errors.ts#L110)
5
+ Defined in: [packages/play/src/errors.ts:112](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/errors.ts#L112)
6
6
 
7
- [assertNonNullable](../functions/assertNonNullable.md) throws this error when a value is `null` or `undefined`.
7
+ [@xmachines/play!index.assertNonNullable](../../index/functions/assertNonNullable.md) throws this error when a value is `null` or `undefined`.
8
8
 
9
9
  Catch it to separate a failed assertion of a missing value from every other
10
10
  runtime error:
@@ -35,7 +35,7 @@ try {
35
35
  new NonNullableError(message, options?): NonNullableError;
36
36
  ```
37
37
 
38
- Defined in: [packages/play/src/errors.ts:111](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/errors.ts#L111)
38
+ Defined in: [packages/play/src/errors.ts:113](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/errors.ts#L113)
39
39
 
40
40
  #### Parameters
41
41
 
@@ -57,10 +57,10 @@ Defined in: [packages/play/src/errors.ts:111](https://gitlab.com/xmachin-es/xmac
57
57
  | Property | Modifier | Type | Description | Inherited from | Defined in |
58
58
  | ------------------------------------------------------- | ---------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
59
59
  | <a id="property-cause"></a> `cause?` | `public` | `unknown` | - | [`PlayError`](PlayError.md).[`cause`](PlayError.md#property-cause) | - |
60
- | <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable identifier of the error. An error code follows the naming convention `PLAY_<PACKAGE>_<DESCRIPTION>`. It stays the same across each patch release and each minor release of one major version. Never match on `.message`. Always match on `.code`, or on the subclass. | [`PlayError`](PlayError.md).[`code`](PlayError.md#property-code) | [packages/play/src/errors.ts:74](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/errors.ts#L74) |
60
+ | <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable identifier of the error. An error code follows the naming convention `PLAY_<PACKAGE>_<DESCRIPTION>`. It stays the same across each patch release and each minor release of one major version. Never match on `.message`. Always match on `.code`, or on the subclass. | [`PlayError`](PlayError.md).[`code`](PlayError.md#property-code) | [packages/play/src/errors.ts:76](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/errors.ts#L76) |
61
61
  | <a id="property-message"></a> `message` | `public` | `string` | - | [`PlayError`](PlayError.md).[`message`](PlayError.md#property-message) | - |
62
62
  | <a id="property-name"></a> `name` | `public` | `string` | - | [`PlayError`](PlayError.md).[`name`](PlayError.md#property-name) | - |
63
- | <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or the module that threw this error, for example `"RouterBridgeBase"`. | [`PlayError`](PlayError.md).[`scope`](PlayError.md#property-scope) | [packages/play/src/errors.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/errors.ts#L64) |
63
+ | <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or the module that threw this error, for example `"RouterBridgeBase"`. | [`PlayError`](PlayError.md).[`scope`](PlayError.md#property-scope) | [packages/play/src/errors.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/errors.ts#L66) |
64
64
  | <a id="property-stack"></a> `stack?` | `public` | `string` | - | [`PlayError`](PlayError.md).[`stack`](PlayError.md#property-stack) | - |
65
65
  | <a id="property-stacktracelimit"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | [`PlayError`](PlayError.md).[`stackTraceLimit`](PlayError.md#property-stacktracelimit) | - |
66
66
 
@@ -1,8 +1,8 @@
1
- [API](../../../README.md) / [@xmachines/play](../README.md) / PlayError
1
+ [API](../../../../README.md) / [@xmachines/play](../../README.md) / [errors](../README.md) / PlayError
2
2
 
3
3
  # Class: PlayError
4
4
 
5
- Defined in: [packages/play/src/errors.ts:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/errors.ts#L62)
5
+ Defined in: [packages/play/src/errors.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/errors.ts#L64)
6
6
 
7
7
  The base class of every typed runtime error of an `@xmachines/*` package.
8
8
 
@@ -23,16 +23,18 @@ An `@xmachines/*` package that defines typed subclasses exports them from an
23
23
  | ---------------------------- | ----------------------------------- |
24
24
  | `@xmachines/play` | `@xmachines/play/errors` |
25
25
  | `@xmachines/play-router` | `@xmachines/play-router/errors` |
26
+ | `@xmachines/play-url` | `@xmachines/play-url/errors` |
27
+ | `@xmachines/play-view` | `@xmachines/play-view/errors` |
26
28
  | `@xmachines/play-vue-router` | `@xmachines/play-vue-router/errors` |
27
29
  | `@xmachines/play-xstate` | `@xmachines/play-xstate/errors` |
28
30
 
29
- The root `@xmachines/play` exports `PlayError` itself, and it is the base of every
30
- subclass above.
31
+ `PlayError` is the base of every subclass above, and it sits on the subpath with them.
32
+ The root barrel of `@xmachines/play` exports it never: one name has one import.
31
33
 
32
34
  ## How to catch an error by its type
33
35
 
34
36
  ```typescript
35
- import { PlayError } from "@xmachines/play";
37
+ import { PlayError } from "@xmachines/play/errors";
36
38
  import { RouterSyncError } from "@xmachines/play-router/errors";
37
39
 
38
40
  try {
@@ -55,7 +57,7 @@ try {
55
57
  ## How to extend PlayError
56
58
 
57
59
  ```typescript
58
- import { PlayError } from "@xmachines/play";
60
+ import { PlayError } from "@xmachines/play/errors";
59
61
 
60
62
  export class MyPackageError extends PlayError {
61
63
  constructor(message: string, options?: ErrorOptions) {
@@ -72,6 +74,28 @@ export class MyPackageError extends PlayError {
72
74
  ## Extended by
73
75
 
74
76
  - [`NonNullableError`](NonNullableError.md)
77
+ - [`DuplicateBridgeError`](../../../play-router/errors/classes/DuplicateBridgeError.md)
78
+ - [`DuplicateRoutePathError`](../../../play-router/errors/classes/DuplicateRoutePathError.md)
79
+ - [`EmptyRoutePathError`](../../../play-router/errors/classes/EmptyRoutePathError.md)
80
+ - [`InvalidBasePathError`](../../../play-router/errors/classes/InvalidBasePathError.md)
81
+ - [`InvalidRoutePatternError`](../../../play-router/errors/classes/InvalidRoutePatternError.md)
82
+ - [`InvalidStateIdError`](../../../play-router/errors/classes/InvalidStateIdError.md)
83
+ - [`MissingBasePathParamError`](../../../play-router/errors/classes/MissingBasePathParamError.md)
84
+ - [`RouterSyncError`](../../../play-router/errors/classes/RouterSyncError.md)
85
+ - [`UnknownStateTypeError`](../../../play-router/errors/classes/UnknownStateTypeError.md)
86
+ - [`InvalidBasePathError`](../../../play-url/errors/classes/InvalidBasePathError.md)
87
+ - [`InvalidRoutePatternError`](../../../play-url/errors/classes/InvalidRoutePatternError.md)
88
+ - [`MissingBasePathParamError`](../../../play-url/errors/classes/MissingBasePathParamError.md)
89
+ - [`ReadOnlyContextError`](../../../play-view/errors/classes/ReadOnlyContextError.md)
90
+ - [`VueRouterNavigationError`](../../../play-vue-router/errors/classes/VueRouterNavigationError.md)
91
+ - [`VueRouterSendError`](../../../play-vue-router/errors/classes/VueRouterSendError.md)
92
+ - [`ActorThrewNonErrorError`](../../../play-xstate/errors/classes/ActorThrewNonErrorError.md)
93
+ - [`InvalidEventError`](../../../play-xstate/errors/classes/InvalidEventError.md)
94
+ - [`InvalidMachineError`](../../../play-xstate/errors/classes/InvalidMachineError.md)
95
+ - [`InvalidRouteHandlerError`](../../../play-xstate/errors/classes/InvalidRouteHandlerError.md)
96
+ - [`InvalidRouteMetadataError`](../../../play-xstate/errors/classes/InvalidRouteMetadataError.md)
97
+ - [`MissingRouteParamError`](../../../play-xstate/errors/classes/MissingRouteParamError.md)
98
+ - [`MissingStateIdError`](../../../play-xstate/errors/classes/MissingStateIdError.md)
75
99
 
76
100
  ## Constructors
77
101
 
@@ -82,10 +106,11 @@ new PlayError(
82
106
  scope,
83
107
  code,
84
108
  message,
85
- options?): PlayError;
109
+ options?
110
+ ): PlayError;
86
111
  ```
87
112
 
88
- Defined in: [packages/play/src/errors.ts:82](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/errors.ts#L82)
113
+ Defined in: [packages/play/src/errors.ts:84](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/errors.ts#L84)
89
114
 
90
115
  #### Parameters
91
116
 
@@ -111,10 +136,10 @@ Error.constructor;
111
136
  | Property | Modifier | Type | Description | Inherited from | Defined in |
112
137
  | ------------------------------------------------------- | ---------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------- |
113
138
  | <a id="property-cause"></a> `cause?` | `public` | `unknown` | - | `Error.cause` | - |
114
- | <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable identifier of the error. An error code follows the naming convention `PLAY_<PACKAGE>_<DESCRIPTION>`. It stays the same across each patch release and each minor release of one major version. Never match on `.message`. Always match on `.code`, or on the subclass. | - | [packages/play/src/errors.ts:74](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/errors.ts#L74) |
139
+ | <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable identifier of the error. An error code follows the naming convention `PLAY_<PACKAGE>_<DESCRIPTION>`. It stays the same across each patch release and each minor release of one major version. Never match on `.message`. Always match on `.code`, or on the subclass. | - | [packages/play/src/errors.ts:76](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/errors.ts#L76) |
115
140
  | <a id="property-message"></a> `message` | `public` | `string` | - | `Error.message` | - |
116
141
  | <a id="property-name"></a> `name` | `public` | `string` | - | `Error.name` | - |
117
- | <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or the module that threw this error, for example `"RouterBridgeBase"`. | - | [packages/play/src/errors.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/errors.ts#L64) |
142
+ | <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or the module that threw this error, for example `"RouterBridgeBase"`. | - | [packages/play/src/errors.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/errors.ts#L66) |
118
143
  | <a id="property-stack"></a> `stack?` | `public` | `string` | - | `Error.stack` | - |
119
144
  | <a id="property-stacktracelimit"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | `Error.stackTraceLimit` | - |
120
145
 
@@ -0,0 +1,75 @@
1
+ [API](../../../README.md) / [@xmachines/play](../README.md) / index
2
+
3
+ # index
4
+
5
+ @xmachines/play - the core protocol layer
6
+
7
+ This package defines the architectural contracts that carry the communication
8
+ between the Actor and the infrastructure, with no direct dependency between them.
9
+ RFC section 5.2 gives these protocols. They are the base of the loose coupling
10
+ between the business logic and the runtime adapters.
11
+
12
+ ## The exports
13
+
14
+ **PlayEvent<TPayload>** - the generic event type of the Actor communication
15
+
16
+ - It is every object with a `type: string` property
17
+ - The generic `TPayload` parameter gives a type-safe event shape, and it is optional
18
+ - The default is `Record<string, unknown>`, which accepts each shape
19
+ - It is framework-agnostic, and it is not bound to XState or to another library
20
+
21
+ **Use:**
22
+
23
+ ```typescript
24
+ // Flexible, the default:
25
+ const event: PlayEvent = { type: "auth.login", userId: "123" };
26
+
27
+ // Type-safe, with the generic parameter:
28
+ type LoginEvent = PlayEvent<{ userId: string }>;
29
+ const event: LoginEvent = { type: "auth.login", userId: "123" };
30
+ ```
31
+
32
+ **The common event patterns:**
33
+
34
+ - A domain event: `{ type: 'auth.login', userId: '123' }`
35
+ - Your own event: `{ type: 'form.submit', data: {...} }`
36
+
37
+ **The routing events** come from @xmachines/play-router:
38
+
39
+ - PlayRouteEvent: the routing event with the parameters and the target state ID
40
+ - RouterBridge: the protocol that connects a router adapter to an actor
41
+
42
+ **The browser navigation:** a router adapter handles the browser BACK and FORWARD
43
+ buttons, through the `popstate` event. The user presses BACK or FORWARD, the
44
+ router detects the new URL, and it sends a PlayRouteEvent to the actor. The actor
45
+ then checks the event.
46
+
47
+ ```typescript
48
+ import type { PlayRouteEvent, RouterBridge } from "@xmachines/play-router";
49
+ ```
50
+
51
+ ## The architectural invariants
52
+
53
+ These protocols enforce the invariants below:
54
+
55
+ 1. **Actor Authority**: the infrastructure makes a request, and the Actor decides the validity
56
+ 2. **Strict Separation**: no layer depends on another layer directly
57
+ 3. **Passive Infrastructure**: the infrastructure observes the Actor signals. It never controls them
58
+ 4. **Signal-Only Reactivity**: every state change goes through a TC39 Signal
59
+ 5. **State-Driven Reset**: each navigation follows the transition rules of the state machine
60
+
61
+ ## Type Aliases
62
+
63
+ - [Cleanup](type-aliases/Cleanup.md)
64
+ - [DisposeKey](type-aliases/DisposeKey.md)
65
+ - [PlayEvent](type-aliases/PlayEvent.md)
66
+
67
+ ## Variables
68
+
69
+ - [DISPOSE](variables/DISPOSE.md)
70
+
71
+ ## Functions
72
+
73
+ - [asCleanup](functions/asCleanup.md)
74
+ - [assertNonNullable](functions/assertNonNullable.md)
75
+ - [shallowEqualExcept](functions/shallowEqualExcept.md)
@@ -1,4 +1,4 @@
1
- [API](../../../README.md) / [@xmachines/play](../README.md) / asCleanup
1
+ [API](../../../../README.md) / [@xmachines/play](../../README.md) / [index](../README.md) / asCleanup
2
2
 
3
3
  # Function: asCleanup()
4
4
 
@@ -6,7 +6,7 @@
6
6
  function asCleanup<R>(release): Cleanup;
7
7
  ```
8
8
 
9
- Defined in: [packages/play/src/disposable.ts:150](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/disposable.ts#L150)
9
+ Defined in: [packages/play/src/disposable.ts:150](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/disposable.ts#L150)
10
10
 
11
11
  Makes one release function serve as a [Cleanup](../type-aliases/Cleanup.md).
12
12
 
@@ -1,4 +1,4 @@
1
- [API](../../../README.md) / [@xmachines/play](../README.md) / assertNonNullable
1
+ [API](../../../../README.md) / [@xmachines/play](../../README.md) / [index](../README.md) / assertNonNullable
2
2
 
3
3
  # Function: assertNonNullable()
4
4
 
@@ -6,7 +6,7 @@
6
6
  function assertNonNullable<V>(value, name?): NonNullable<V>;
7
7
  ```
8
8
 
9
- Defined in: [packages/play/src/utils.ts:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/utils.ts#L39)
9
+ Defined in: [packages/play/src/utils.ts:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/utils.ts#L39)
10
10
 
11
11
  Asserts that `value` is not `null` and not `undefined`, then returns it with the
12
12
  type `NonNullable<V>`. One expression therefore holds the guard and the narrowed
@@ -1,4 +1,4 @@
1
- [API](../../../README.md) / [@xmachines/play-actor](../README.md) / shallowEqualExcept
1
+ [API](../../../../README.md) / [@xmachines/play](../../README.md) / [index](../README.md) / shallowEqualExcept
2
2
 
3
3
  # Function: shallowEqualExcept()
4
4
 
@@ -6,7 +6,7 @@
6
6
  function shallowEqualExcept(a, b, except?): boolean;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-actor/src/context-projection.ts:58](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play-actor/src/context-projection.ts#L58)
9
+ Defined in: [packages/play/src/utils.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/utils.ts#L59)
10
10
 
11
11
  The shallow equality of the own keys, with `Object.is`. It can ignore one key on
12
12
  both sides.
@@ -14,7 +14,7 @@ both sides.
14
14
  This is the one comparison rule behind every decision of the emission dedup: the
15
15
  equality of a slice, and also the emit gate of the player, which compares the
16
16
  spec fields in `viewSpecsEquivalent` and reuses the composed state in
17
- [reuseComposedState](reuseComposedState.md).
17
+ `reuseComposedState` of `@xmachines/play-view`.
18
18
 
19
19
  ## Parameters
20
20
 
@@ -1,4 +1,4 @@
1
- [API](../../../README.md) / [@xmachines/play](../README.md) / Cleanup
1
+ [API](../../../../README.md) / [@xmachines/play](../../README.md) / [index](../README.md) / Cleanup
2
2
 
3
3
  # Type Alias: Cleanup
4
4
 
@@ -6,7 +6,7 @@
6
6
  type Cleanup = () => void & { [Key in DisposeKey]: () => void };
7
7
  ```
8
8
 
9
- Defined in: [packages/play/src/disposable.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/disposable.ts#L66)
9
+ Defined in: [packages/play/src/disposable.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/disposable.ts#L66)
10
10
 
11
11
  The release of a subscription. A caller runs it, or a scope releases it.
12
12
 
@@ -35,4 +35,4 @@ the type. See [DisposeKey](DisposeKey.md) for the second half of that.
35
35
 
36
36
  ## See
37
37
 
38
- [Play RFC](../../../../rfc/play.md)
38
+ [Play RFC](../../../../../rfc/play.md)
@@ -1,4 +1,4 @@
1
- [API](../../../README.md) / [@xmachines/play](../README.md) / DisposeKey
1
+ [API](../../../../README.md) / [@xmachines/play](../../README.md) / [index](../README.md) / DisposeKey
2
2
 
3
3
  # Type Alias: DisposeKey
4
4
 
@@ -6,7 +6,7 @@
6
6
  type DisposeKey = SymbolConstructor extends object ? Key : never;
7
7
  ```
8
8
 
9
- Defined in: [packages/play/src/disposable.ts:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/disposable.ts#L34)
9
+ Defined in: [packages/play/src/disposable.ts:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/disposable.ts#L34)
10
10
 
11
11
  The dispose key of the ambient library, and `never` where the consumer omits it.
12
12
 
@@ -1,4 +1,4 @@
1
- [API](../../../README.md) / [@xmachines/play](../README.md) / PlayEvent
1
+ [API](../../../../README.md) / [@xmachines/play](../../README.md) / [index](../README.md) / PlayEvent
2
2
 
3
3
  # Type Alias: PlayEvent\<TPayload\>
4
4
 
@@ -6,7 +6,7 @@
6
6
  type PlayEvent<TPayload> = object & TPayload;
7
7
  ```
8
8
 
9
- Defined in: [packages/play/src/types.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/types.ts#L71)
9
+ Defined in: [packages/play/src/types.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/types.ts#L71)
10
10
 
11
11
  The generic event type of the Play Architecture
12
12
 
@@ -35,7 +35,7 @@ and of the other state machine libraries.
35
35
 
36
36
  | Name | Type | Defined in |
37
37
  | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------ |
38
- | `type` | `string` | [packages/play/src/types.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/types.ts#L72) |
38
+ | `type` | `string` | [packages/play/src/types.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/types.ts#L72) |
39
39
 
40
40
  ## Type Parameters
41
41
 
@@ -79,4 +79,4 @@ const invalid: LoginEvent = { type: "auth.login" }; // Error!
79
79
 
80
80
  ## See
81
81
 
82
- [Play RFC](../../../../rfc/play.md)
82
+ [Play RFC](../../../../../rfc/play.md)
@@ -1,4 +1,4 @@
1
- [API](../../../README.md) / [@xmachines/play](../README.md) / DISPOSE
1
+ [API](../../../../README.md) / [@xmachines/play](../../README.md) / [index](../README.md) / DISPOSE
2
2
 
3
3
  # Variable: DISPOSE
4
4
 
@@ -6,7 +6,7 @@
6
6
  const DISPOSE: DisposeKey;
7
7
  ```
8
8
 
9
- Defined in: [packages/play/src/disposable.ts:94](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play/src/disposable.ts#L94)
9
+ Defined in: [packages/play/src/disposable.ts:94](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play/src/disposable.ts#L94)
10
10
 
11
11
  The key that a release is stored under.
12
12