@xmachines/docs 5.0.2 → 6.1.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 (572) hide show
  1. package/README.md +9 -5
  2. package/api/@xmachines/core/README.md +209 -0
  3. package/api/@xmachines/core/cache/README.md +17 -0
  4. package/api/@xmachines/core/cache/functions/createLruCache.md +52 -0
  5. package/api/@xmachines/core/cache/interfaces/KeyValueCache.md +61 -0
  6. package/api/@xmachines/core/errors/README.md +11 -0
  7. package/api/@xmachines/core/errors/classes/BaseError.md +226 -0
  8. package/api/@xmachines/core/errors/classes/DisposeConflictError.md +177 -0
  9. package/api/@xmachines/core/utils/README.md +33 -0
  10. package/api/@xmachines/core/utils/functions/asDisposable.md +139 -0
  11. package/api/@xmachines/core/utils/functions/createNullRecord.md +39 -0
  12. package/api/@xmachines/core/utils/functions/createWarnOnce.md +39 -0
  13. package/api/@xmachines/core/utils/functions/describeValue.md +39 -0
  14. package/api/@xmachines/core/utils/functions/isError.md +46 -0
  15. package/api/@xmachines/core/utils/functions/isThenable.md +43 -0
  16. package/api/@xmachines/core/utils/functions/releaseQuietly.md +37 -0
  17. package/api/@xmachines/core/utils/functions/rethrowLater.md +43 -0
  18. package/api/@xmachines/core/utils/functions/safeString.md +36 -0
  19. package/api/@xmachines/core/utils/functions/shallowEqualExcept.md +42 -0
  20. package/api/@xmachines/core/utils/type-aliases/DisposeKey.md +28 -0
  21. package/api/@xmachines/core/utils/type-aliases/DisposeMember.md +14 -0
  22. package/api/@xmachines/{play-router/index → core/utils}/variables/DISPOSE.md +9 -9
  23. package/api/@xmachines/play/README.md +18 -69
  24. package/api/@xmachines/play/errors/classes/NonNullableError.md +4 -4
  25. package/api/@xmachines/play/errors/classes/PlayError.md +31 -34
  26. package/api/@xmachines/play/index/README.md +0 -8
  27. package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
  28. package/api/@xmachines/play/index/type-aliases/PlayEvent.md +2 -2
  29. package/api/@xmachines/play-actor/README.md +1 -1
  30. package/api/@xmachines/play-actor/interfaces/ActorEvent.md +2 -2
  31. package/api/@xmachines/play-actor/interfaces/PlayActor.md +3 -3
  32. package/api/@xmachines/play-atom/README.md +35 -26
  33. package/api/@xmachines/play-atom/functions/watchAtom.md +8 -8
  34. package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +4 -4
  35. package/api/@xmachines/play-atom/interfaces/Atom.md +6 -6
  36. package/api/@xmachines/play-atom/interfaces/AtomObserver.md +6 -6
  37. package/api/@xmachines/play-atom/interfaces/AtomOptions.md +4 -4
  38. package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +2 -2
  39. package/api/@xmachines/play-atom/interfaces/BaseAtom.md +4 -4
  40. package/api/@xmachines/play-atom/interfaces/CreateAtom.md +3 -3
  41. package/api/@xmachines/play-atom/interfaces/Readable.md +4 -4
  42. package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +4 -4
  43. package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +1 -1
  44. package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +1 -1
  45. package/api/@xmachines/play-atom/variables/createAsyncAtom.md +1 -1
  46. package/api/@xmachines/play-atom/variables/createAtom.md +1 -1
  47. package/api/@xmachines/play-atom/variables/createWritableAtom.md +1 -1
  48. package/api/@xmachines/play-dom/README.md +40 -47
  49. package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
  50. package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
  51. package/api/@xmachines/play-dom/functions/createRenderer.md +3 -3
  52. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +11 -11
  53. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +2 -2
  54. package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
  55. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +14 -14
  56. package/api/@xmachines/play-dom/type-aliases/MountFn.md +6 -17
  57. package/api/@xmachines/play-dom-router/README.md +28 -45
  58. package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +13 -13
  59. package/api/@xmachines/play-dom-router/classes/RouteMap.md +5 -6
  60. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  61. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +5 -3
  62. package/api/@xmachines/play-dom-router/functions/createRouter.md +5 -3
  63. package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +3 -3
  64. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +21 -67
  65. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +16 -16
  66. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +10 -10
  67. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +7 -7
  68. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +4 -4
  69. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  70. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +6 -6
  71. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  72. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +5 -5
  73. package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +12 -31
  74. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +12 -27
  75. package/api/@xmachines/play-pattern/README.md +10 -6
  76. package/api/@xmachines/play-pattern/functions/buildPath.md +1 -1
  77. package/api/@xmachines/play-pattern/functions/{createPatternCache.md → createLruCache.md} +19 -14
  78. package/api/@xmachines/play-pattern/functions/getIndexKey.md +1 -1
  79. package/api/@xmachines/play-pattern/functions/isDotSegment.md +1 -1
  80. package/api/@xmachines/play-pattern/functions/parsePattern.md +1 -1
  81. package/api/@xmachines/play-pattern/interfaces/GroupPart.md +6 -6
  82. package/api/@xmachines/play-pattern/interfaces/KeyValueCache.md +61 -0
  83. package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +5 -5
  84. package/api/@xmachines/play-pattern/interfaces/ParamPart.md +9 -9
  85. package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +4 -4
  86. package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +14 -14
  87. package/api/@xmachines/play-pattern/interfaces/PatternParam.md +6 -6
  88. package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +1 -1
  89. package/api/@xmachines/play-pattern/type-aliases/PathParams.md +1 -1
  90. package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +1 -1
  91. package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +1 -1
  92. package/api/@xmachines/play-react/README.md +4 -4
  93. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +6 -6
  94. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  95. package/api/@xmachines/play-react/functions/useAtomEffect.md +1 -1
  96. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  97. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +10 -10
  98. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
  99. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
  100. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
  101. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
  102. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
  103. package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
  104. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  105. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  106. package/api/@xmachines/play-react-router/README.md +4 -2
  107. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +7 -7
  108. package/api/@xmachines/play-react-router/classes/RouteMap.md +5 -6
  109. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
  110. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
  111. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +7 -7
  112. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +11 -11
  113. package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +4 -4
  114. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +6 -6
  115. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  116. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +5 -5
  117. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  118. package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  119. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
  120. package/api/@xmachines/play-router/README.md +20 -20
  121. package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +4 -4
  122. package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +5 -5
  123. package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +5 -5
  124. package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +5 -5
  125. package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +5 -5
  126. package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +5 -5
  127. package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +6 -6
  128. package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +4 -4
  129. package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +6 -6
  130. package/api/@xmachines/play-router/index/README.md +2 -3
  131. package/api/@xmachines/play-router/index/classes/RouteMap.md +5 -6
  132. package/api/@xmachines/play-router/index/classes/RouterBridgeBase.md +7 -7
  133. package/api/@xmachines/play-router/index/functions/buildPlayRouteEvent.md +1 -1
  134. package/api/@xmachines/play-router/index/functions/buildRouteTree.md +1 -1
  135. package/api/@xmachines/play-router/index/functions/cleanFrameworkParams.md +1 -1
  136. package/api/@xmachines/play-router/index/functions/{createPatternCache.md → createLruCache.md} +19 -14
  137. package/api/@xmachines/play-router/index/functions/createRouteMapFromTree.md +1 -1
  138. package/api/@xmachines/play-router/index/functions/createRouterConnection.md +1 -1
  139. package/api/@xmachines/play-router/index/functions/detectDuplicateRoutes.md +1 -1
  140. package/api/@xmachines/play-router/index/functions/extractQuery.md +1 -1
  141. package/api/@xmachines/play-router/index/functions/extractRouteParams.md +1 -1
  142. package/api/@xmachines/play-router/index/functions/findRouteById.md +1 -1
  143. package/api/@xmachines/play-router/index/functions/findRouteByPath.md +3 -3
  144. package/api/@xmachines/play-router/index/functions/isMountableBridge.md +1 -1
  145. package/api/@xmachines/play-router/index/functions/joinBasePath.md +1 -1
  146. package/api/@xmachines/play-router/index/functions/mountKey.md +1 -1
  147. package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +1 -1
  148. package/api/@xmachines/play-router/index/functions/openProviderBridge.md +3 -3
  149. package/api/@xmachines/play-router/index/functions/parsePattern.md +1 -1
  150. package/api/@xmachines/play-router/index/functions/pickOwnParams.md +1 -1
  151. package/api/@xmachines/play-router/index/functions/repointProviderBridge.md +1 -1
  152. package/api/@xmachines/play-router/index/functions/resolveBasePath.md +1 -1
  153. package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +1 -1
  154. package/api/@xmachines/play-router/index/functions/sanitizePathname.md +1 -1
  155. package/api/@xmachines/play-router/index/functions/splitLocation.md +1 -1
  156. package/api/@xmachines/play-router/index/functions/stripBasePath.md +1 -1
  157. package/api/@xmachines/play-router/index/functions/validateRouteFormat.md +1 -1
  158. package/api/@xmachines/play-router/index/functions/validateStateExists.md +1 -1
  159. package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +3 -3
  160. package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +4 -4
  161. package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +5 -5
  162. package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +9 -9
  163. package/api/@xmachines/play-router/index/interfaces/KeyValueCache.md +61 -0
  164. package/api/@xmachines/play-router/index/interfaces/LocationLike.md +3 -3
  165. package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +6 -6
  166. package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +10 -10
  167. package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +4 -4
  168. package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +12 -12
  169. package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +7 -7
  170. package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +11 -11
  171. package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +3 -3
  172. package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +3 -3
  173. package/api/@xmachines/play-router/index/interfaces/Routable.md +3 -3
  174. package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +4 -4
  175. package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +8 -8
  176. package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +6 -6
  177. package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +3 -3
  178. package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +3 -3
  179. package/api/@xmachines/play-router/index/interfaces/RouteNode.md +10 -10
  180. package/api/@xmachines/play-router/index/interfaces/RouteObject.md +12 -15
  181. package/api/@xmachines/play-router/index/interfaces/RouteTree.md +5 -5
  182. package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +3 -3
  183. package/api/@xmachines/play-router/index/interfaces/RouterBridge.md +5 -5
  184. package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +7 -7
  185. package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +12 -31
  186. package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +5 -5
  187. package/api/@xmachines/play-router/index/interfaces/WindowLike.md +3 -3
  188. package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  189. package/api/@xmachines/play-router/index/type-aliases/RouteData.md +1 -1
  190. package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +1 -1
  191. package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +1 -1
  192. package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +3 -3
  193. package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +1 -1
  194. package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +1 -1
  195. package/api/@xmachines/play-router/xstate/functions/createRouteMap.md +1 -1
  196. package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +1 -1
  197. package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +1 -1
  198. package/api/@xmachines/play-router/xstate/functions/getRoutableRoutes.md +1 -1
  199. package/api/@xmachines/play-router/xstate/functions/getRouteMappings.md +1 -1
  200. package/api/@xmachines/play-router/xstate/functions/getTransitionReachableRoutes.md +1 -1
  201. package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +1 -1
  202. package/api/@xmachines/play-router/xstate/functions/machineToGraph.md +1 -1
  203. package/api/@xmachines/play-router/xstate/functions/routeExists.md +1 -1
  204. package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +3 -3
  205. package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +5 -5
  206. package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +1 -1
  207. package/api/@xmachines/play-solid/README.md +2 -5
  208. package/api/@xmachines/play-solid/functions/defineRegistry.md +5 -5
  209. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  210. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  211. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +10 -10
  212. package/api/@xmachines/play-solid/interfaces/ComponentContext.md +9 -8
  213. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
  214. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
  215. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
  216. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  217. package/api/@xmachines/play-solid/variables/ActorProvider.md +1 -1
  218. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  219. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  220. package/api/@xmachines/play-solid/variables/schema.md +35 -54
  221. package/api/@xmachines/play-solid-router/README.md +5 -3
  222. package/api/@xmachines/play-solid-router/classes/RouteMap.md +5 -6
  223. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +8 -8
  224. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
  225. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +3 -3
  226. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
  227. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +11 -11
  228. package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +4 -4
  229. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +6 -6
  230. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  231. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +5 -5
  232. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  233. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  234. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  235. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
  236. package/api/@xmachines/play-svelte/README.md +3 -3
  237. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  238. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  239. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  240. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  241. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +10 -10
  242. package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +10 -8
  243. package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +10 -8
  244. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
  245. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +13 -13
  246. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
  247. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
  248. package/api/@xmachines/play-svelte-spa-router/README.md +4 -2
  249. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +5 -6
  250. package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +7 -7
  251. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  252. package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +3 -3
  253. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +10 -10
  254. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
  255. package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +4 -4
  256. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +6 -6
  257. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  258. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +5 -5
  259. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +12 -31
  260. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  261. package/api/@xmachines/play-sveltekit-router/README.md +4 -2
  262. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +5 -6
  263. package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +7 -7
  264. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  265. package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +3 -3
  266. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +10 -10
  267. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  268. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +7 -7
  269. package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +4 -4
  270. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +6 -6
  271. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  272. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +5 -5
  273. package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +12 -31
  274. package/api/@xmachines/play-tanstack-react-router/README.md +4 -2
  275. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +5 -6
  276. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +7 -7
  277. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
  278. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  279. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
  280. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +11 -11
  281. package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +4 -4
  282. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +6 -6
  283. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  284. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +5 -5
  285. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  286. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  287. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  288. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
  289. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
  290. package/api/@xmachines/play-tanstack-router/README.md +11 -1
  291. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +7 -7
  292. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  293. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
  294. package/api/@xmachines/play-tanstack-solid-router/README.md +4 -2
  295. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +5 -6
  296. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +7 -7
  297. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
  298. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +7 -7
  299. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +11 -11
  300. package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +4 -4
  301. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +6 -6
  302. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  303. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +5 -5
  304. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  305. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  306. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  307. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
  308. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
  309. package/api/@xmachines/play-url/README.md +3 -3
  310. package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +5 -5
  311. package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +5 -5
  312. package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +6 -6
  313. package/api/@xmachines/play-url/index/README.md +2 -2
  314. package/api/@xmachines/play-url/index/functions/buildPath.md +1 -1
  315. package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
  316. package/api/@xmachines/play-url/index/functions/{createPatternCache.md → createLruCache.md} +19 -14
  317. package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
  318. package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +1 -1
  319. package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
  320. package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +1 -1
  321. package/api/@xmachines/play-url/index/functions/isDotSegment.md +1 -1
  322. package/api/@xmachines/play-url/index/functions/joinBasePath.md +1 -1
  323. package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
  324. package/api/@xmachines/play-url/index/functions/parsePattern.md +1 -1
  325. package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
  326. package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
  327. package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +1 -1
  328. package/api/@xmachines/play-url/index/functions/sanitizePathname.md +1 -1
  329. package/api/@xmachines/play-url/index/functions/splitLocation.md +1 -1
  330. package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
  331. package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +3 -3
  332. package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +5 -5
  333. package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +9 -9
  334. package/api/@xmachines/play-url/index/interfaces/GroupPart.md +4 -4
  335. package/api/@xmachines/play-url/index/interfaces/KeyValueCache.md +61 -0
  336. package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +3 -3
  337. package/api/@xmachines/play-url/index/interfaces/ParamPart.md +7 -7
  338. package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +4 -4
  339. package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +12 -12
  340. package/api/@xmachines/play-url/index/interfaces/PatternParam.md +4 -4
  341. package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +3 -3
  342. package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +5 -5
  343. package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +1 -1
  344. package/api/@xmachines/play-url/index/type-aliases/PathParams.md +1 -1
  345. package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
  346. package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
  347. package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
  348. package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
  349. package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
  350. package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
  351. package/api/@xmachines/play-view/README.md +56 -24
  352. package/api/@xmachines/play-view/errors/README.md +2 -1
  353. package/api/@xmachines/play-view/errors/classes/InvalidViewOutletError.md +204 -0
  354. package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +5 -5
  355. package/api/@xmachines/play-view/index/README.md +6 -0
  356. package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +1 -1
  357. package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
  358. package/api/@xmachines/play-view/index/functions/composeViews.md +35 -0
  359. package/api/@xmachines/play-view/index/functions/createFailureLatch.md +1 -1
  360. package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
  361. package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
  362. package/api/@xmachines/play-view/index/functions/guardContextWrites.md +1 -1
  363. package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
  364. package/api/@xmachines/play-view/index/functions/reuseComposedState.md +2 -2
  365. package/api/@xmachines/play-view/index/functions/sameViewInputs.md +1 -1
  366. package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
  367. package/api/@xmachines/play-view/index/functions/typedSpec.md +11 -11
  368. package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +5 -5
  369. package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +5 -5
  370. package/api/@xmachines/play-view/index/interfaces/ComposedView.md +16 -0
  371. package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +3 -3
  372. package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +12 -8
  373. package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
  374. package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +5 -5
  375. package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +2 -2
  376. package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +4 -4
  377. package/api/@xmachines/play-view/index/interfaces/ViewMeta.md +25 -0
  378. package/api/@xmachines/play-view/index/interfaces/ViewOutlet.md +23 -0
  379. package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +3 -3
  380. package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +4 -4
  381. package/api/@xmachines/play-view/index/interfaces/ViewTree.md +15 -0
  382. package/api/@xmachines/play-view/index/interfaces/ViewTreeChild.md +14 -0
  383. package/api/@xmachines/play-view/index/interfaces/Viewable.md +4 -4
  384. package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
  385. package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
  386. package/api/@xmachines/play-vue/README.md +4 -6
  387. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  388. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  389. package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
  390. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +8 -8
  391. package/api/@xmachines/play-vue/interfaces/ComponentContext.md +1 -0
  392. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
  393. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
  394. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
  395. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  396. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  397. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  398. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  399. package/api/@xmachines/play-vue/variables/schema.md +35 -54
  400. package/api/@xmachines/play-vue-router/README.md +4 -2
  401. package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +4 -4
  402. package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +4 -4
  403. package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +5 -6
  404. package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +7 -7
  405. package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +7 -7
  406. package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +4 -4
  407. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +6 -6
  408. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +3 -3
  409. package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +5 -5
  410. package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +7 -7
  411. package/api/@xmachines/play-xstate/README.md +42 -24
  412. package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +4 -4
  413. package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +5 -5
  414. package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +4 -4
  415. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +5 -5
  416. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +5 -5
  417. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +14 -14
  418. package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +6 -6
  419. package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +6 -6
  420. package/api/@xmachines/play-xstate/index/README.md +0 -4
  421. package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +10 -45
  422. package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
  423. package/api/@xmachines/play-xstate/index/functions/definePlayer.md +2 -2
  424. package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +4 -4
  425. package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +2 -2
  426. package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +7 -7
  427. package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
  428. package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
  429. package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
  430. package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +1 -1
  431. package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +1 -1
  432. package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +1 -1
  433. package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
  434. package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
  435. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +5 -5
  436. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +12 -15
  437. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
  438. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
  439. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
  440. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
  441. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
  442. package/api/@xmachines/play-xstate/with-view/functions/withView.md +2 -4
  443. package/api/@xmachines/shared/vite-aliases/README.md +7 -0
  444. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +11 -5
  445. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutput.md +37 -0
  446. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutputFile.md +28 -0
  447. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  448. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  449. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  450. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
  451. package/api/@xmachines/shared/vite-aliases/functions/xmTestTarget.md +26 -0
  452. package/api/@xmachines/shared/vite-aliases/type-aliases/XmTestTarget.md +15 -0
  453. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  454. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +5 -1
  455. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
  456. package/api/README.md +1 -0
  457. package/api/llms.txt +9 -4
  458. package/contributing/architecture.md +54 -29
  459. package/contributing/configuration.md +44 -9
  460. package/contributing/development.md +28 -28
  461. package/contributing/migrating-to-play-atom.md +2 -1
  462. package/contributing/testing.md +33 -4
  463. package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +9 -9
  464. package/examples/@xmachines/play-dom-demo/functions/createConfirmDialog.md +1 -1
  465. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  466. package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
  467. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  468. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  469. package/examples/@xmachines/play-dom-demo/variables/Button.md +1 -1
  470. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  471. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  472. package/examples/@xmachines/play-dom-demo/variables/Field.md +1 -1
  473. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  474. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  475. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  476. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  477. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  478. package/examples/@xmachines/play-dom-demo/variables/Panel.md +1 -1
  479. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  480. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  481. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  482. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  483. package/examples/@xmachines/play-dom-demo/variables/demoComponents.md +15 -15
  484. package/examples/@xmachines/play-react-demo/functions/createAuthActionHandlers.md +9 -9
  485. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  486. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  487. package/examples/@xmachines/play-react-demo/variables/Button.md +1 -1
  488. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  489. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  490. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
  491. package/examples/@xmachines/play-react-demo/variables/Field.md +1 -1
  492. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  493. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  494. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  495. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  496. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  497. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  498. package/examples/@xmachines/play-react-demo/variables/Panel.md +1 -1
  499. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  500. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  501. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
  502. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  503. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  504. package/examples/@xmachines/play-react-demo/variables/demoComponents.md +15 -15
  505. package/examples/@xmachines/play-solid-demo/functions/createAuthActionHandlers.md +9 -9
  506. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  507. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  508. package/examples/@xmachines/play-solid-demo/variables/Button.md +1 -1
  509. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  510. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  511. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
  512. package/examples/@xmachines/play-solid-demo/variables/Field.md +1 -1
  513. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  514. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  515. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  516. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  517. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  518. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  519. package/examples/@xmachines/play-solid-demo/variables/Panel.md +1 -1
  520. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  521. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  522. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
  523. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  524. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +190 -277
  525. package/examples/@xmachines/play-solid-demo/variables/demoComponents.md +17 -17
  526. package/examples/@xmachines/play-svelte-demo/functions/createAuthActionHandlers.md +9 -9
  527. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
  528. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +190 -277
  529. package/examples/@xmachines/play-svelte-demo/variables/demoComponents.md +15 -15
  530. package/examples/@xmachines/play-vue-demo/functions/createAuthActionHandlers.md +9 -9
  531. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
  532. package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
  533. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +190 -277
  534. package/examples/@xmachines/play-vue-demo/variables/demoComponents.md +1 -1
  535. package/examples/README.md +2 -2
  536. package/examples/multi-router-integration.md +1 -1
  537. package/examples/routing-patterns.md +1 -1
  538. package/examples/traffic-light.md +1 -1
  539. package/guides/README.md +5 -4
  540. package/guides/actor-model.md +4 -4
  541. package/guides/atoms.md +28 -16
  542. package/guides/getting-started.md +14 -16
  543. package/guides/inspector.md +1 -1
  544. package/guides/routing.md +41 -45
  545. package/guides/state-machines.md +69 -4
  546. package/guides/views.md +347 -0
  547. package/package.json +1 -1
  548. package/rfc/broker.md +4 -0
  549. package/rfc/browser.md +4 -0
  550. package/rfc/cli.md +4 -0
  551. package/rfc/git.md +4 -0
  552. package/rfc/mcp.md +4 -0
  553. package/rfc/node.md +4 -0
  554. package/rfc/play.md +25 -9
  555. package/rfc/rest.md +4 -0
  556. package/rfc/run.md +4 -0
  557. package/rfc/streams.md +4 -0
  558. package/api/@xmachines/play/index/functions/asCleanup.md +0 -77
  559. package/api/@xmachines/play/index/functions/shallowEqualExcept.md +0 -29
  560. package/api/@xmachines/play/index/type-aliases/Cleanup.md +0 -38
  561. package/api/@xmachines/play/index/type-aliases/DisposeKey.md +0 -32
  562. package/api/@xmachines/play/index/variables/DISPOSE.md +0 -34
  563. package/api/@xmachines/play-atom/type-aliases/Cleanup.md +0 -38
  564. package/api/@xmachines/play-dom/functions/asCleanup.md +0 -77
  565. package/api/@xmachines/play-dom/type-aliases/Cleanup.md +0 -38
  566. package/api/@xmachines/play-dom-router/functions/asCleanup.md +0 -77
  567. package/api/@xmachines/play-dom-router/type-aliases/Cleanup.md +0 -38
  568. package/api/@xmachines/play-dom-router/variables/DISPOSE.md +0 -34
  569. package/api/@xmachines/play-pattern/interfaces/PatternCache.md +0 -65
  570. package/api/@xmachines/play-router/index/interfaces/PatternCache.md +0 -65
  571. package/api/@xmachines/play-url/index/interfaces/PatternCache.md +0 -65
  572. package/api/@xmachines/play-xstate/index/variables/DISPOSE.md +0 -34
@@ -20,21 +20,25 @@ XMachines JS is the JavaScript/TypeScript reference implementation of the **Univ
20
20
 
21
21
  ```mermaid
22
22
  graph TD
23
- subgraph Layer0["Layer 0 — Protocol / Primitives"]
23
+ subgraph Foundation["Foundation"]
24
+ core["@xmachines/core\n(BaseError, asDisposable, cache)"]
25
+ shared["@xmachines/shared\n(tsconfig, oxlint, oxfmt)"]
26
+ end
27
+
28
+ subgraph Protocol["Protocol / Primitives"]
24
29
  play["@xmachines/play\n(PlayEvent, PlayError)"]
25
30
  atoms["@xmachines/play-atom\n(atoms, watchAtom)"]
26
- shared["@xmachines/shared\n(tsconfig, oxlint, oxfmt)"]
27
31
  end
28
32
 
29
- subgraph Layer1["Layer 1 — Abstract Actor Base"]
33
+ subgraph ActorBase["Abstract Actor Base"]
30
34
  actor["@xmachines/play-actor\n(PlayActor)"]
31
35
  end
32
36
 
33
- subgraph Layer2v["Layer 2 — The View Half"]
37
+ subgraph ViewHalf["The View Half"]
34
38
  view["@xmachines/play-view\n(Viewable, PlaySpec, the view store lifecycle)"]
35
39
  end
36
40
 
37
- subgraph Layer2["Layer 2 — Concrete Implementations"]
41
+ subgraph Concrete["Concrete Implementations"]
38
42
  xstate["@xmachines/play-xstate\n(PlayerActor, definePlayer, routing)"]
39
43
  router["@xmachines/play-router\n(RouterBridgeBase, RouteMap, Routable)"]
40
44
  routerxstate["@xmachines/play-router/xstate\n(extractMachineRoutes, createRouteMap)"]
@@ -59,7 +63,7 @@ graph TD
59
63
  end
60
64
  end
61
65
 
62
- play --> actor
66
+ core --> play
63
67
  atoms --> actor
64
68
  actor --> xstate
65
69
  actor --> router
@@ -72,6 +76,8 @@ graph TD
72
76
  xstate -.->|"play.route events"| router
73
77
  ```
74
78
 
79
+ The diagram groups the packages by role. The build order is a separate view: each package sits one layer above its deepest workspace dependency, and [Build Layers](development.md#build-layers) lists them.
80
+
75
81
  ## Component Responsibilities
76
82
 
77
83
  | Package | Responsibility | Key File |
@@ -100,6 +106,7 @@ graph TD
100
106
  | [`@xmachines/play-sveltekit-router`](../api/@xmachines/play-sveltekit-router/README.md) | SvelteKit router bridge | `packages/play-sveltekit-router/src/sveltekit-router-bridge.ts` |
101
107
  | [`@xmachines/play-svelte-spa-router`](../api/@xmachines/play-svelte-spa-router/README.md) | Svelte SPA Router bridge | `packages/play-svelte-spa-router/src/svelte-spa-router-bridge.ts` |
102
108
  | [`@xmachines/shared`](../api/@xmachines/shared/README.md) | Shared configs: tsconfig, oxlint, oxfmt, vitest | `packages/shared/config/` |
109
+ | [`@xmachines/core`](../api/@xmachines/core/README.md) | `BaseError`, the release protocol, a cache, helpers | `packages/core/src/` |
103
110
  | `@xmachines/docs` | API docs and RFC documentation | `packages/docs/` |
104
111
 
105
112
  ## Data Flow
@@ -177,20 +184,30 @@ flowchart TD
177
184
  F -->|"URL = machine initial state"| H
178
185
  ```
179
186
 
180
- ### View Prop Enrichment
187
+ ### View derivation
181
188
 
182
189
  ```mermaid
183
190
  flowchart TD
184
- A["XState snapshot.getMeta()"]
185
- B["resolveViewMeta(meta)\nfinds deepest meta.view with root + elements\n(its record key becomes viewKey)"]
191
+ A["XState snapshot"]
192
+ O{"a state node of the machine\ndeclares meta.view.outlets?\n(cached for each machine)"}
193
+ T["resolveViewTree(root, snapshot.value)\na view with outlets composes its active children;\nany other node keeps its deepest view"]
194
+ G["composeViews(tree) in play-view\ncached for each tree: elements, authored state, viewParts\nviewKey = the id of the outermost composing state"]
195
+ B["resolveViewMeta(active branch: the routed region first)\nfinds deepest meta.view with root + elements\n(its record key becomes viewKey)"]
186
196
  C["snapshot.context\nprojected wholesale as the /context slice"]
187
197
  D["composePlayState(spec.state, slice)\nstate: { ...authored, context: slice }"]
188
198
  E["reuseComposedState (in the currentView atom)\ncarry previous state reference when the slice is value-unchanged"]
189
199
  F["Derived PlaySpec (with viewKey) is the value of the currentView atom"]
190
200
 
191
- A --> B --> C --> D --> E --> F
201
+ A --> O
202
+ O -->|"yes"| T
203
+ T -->|"an active view composes"| G --> C
204
+ T -->|"no active view composes:\nthe view that the walk resolved"| C
205
+ O -->|"no"| B --> C
206
+ C --> D --> E --> F
192
207
  ```
193
208
 
209
+ The composition keeps each element of the outer view by reference, except an element that receives a child view. It prefixes each key of a child view with the id of its state. `composeViews` caches the result for each tree of view objects. A context assign therefore emits the same `elements` and `viewParts` references, and the emit gate of `withView` walks no element. When the `viewKey` stays and the `viewParts` value changes, `createViewStoreLifecycle` writes the authored keys that the store does not hold. play-dom then gives the new spec to `setSpec` of the incremental renderer, which keeps each node whose element did not change.
210
+
194
211
  **State atoms on the actor:**
195
212
 
196
213
  | Atom | Type | Description |
@@ -213,7 +230,7 @@ type LoginEvent = PlayEvent<{ userId: string; timestamp: number }>;
213
230
 
214
231
  ### [`PlayError`](../api/@xmachines/play/errors/classes/PlayError.md)
215
232
 
216
- Base class for all `@xmachines/*` typed runtime errors. Carries `scope` (throwing class/module) and `code` (stable machine-readable identifier, e.g. `"PLAY_ROUTER_SYNC_FAILED"`). Subclassed per package, exported from each package's `./errors` subpath. Never match on `.message` — always match on `.code` or the subclass.
233
+ Base class for the typed runtime errors of every Play package. It extends [`BaseError`](../api/@xmachines/core/errors/classes/BaseError.md) of [`@xmachines/core/errors`](../api/@xmachines/core/README.md). Carries `scope` (throwing class/module) and `code` (stable machine-readable identifier, e.g. `"PLAY_ROUTER_SYNC_FAILED"`). Subclassed per package, exported from each package's `./errors` subpath. Never match on `.message` — always match on `.code` or the subclass.
217
234
 
218
235
  ```typescript
219
236
  import { PlayError } from "@xmachines/play/errors";
@@ -238,7 +255,7 @@ Optional capability interface. Exposes `currentView: ReadonlyAtom<PlaySpec | nul
238
255
 
239
256
  ### [`PlaySpec`](../api/@xmachines/play-view/index/interfaces/PlaySpec.md)
240
257
 
241
- Extends `@xmachines/json-render-core` `Spec`. `deriveCurrentView` projects the machine's whole context into the derived spec's `state` under the read-only `/context` subtree, and stamps a `viewKey` from the selected meta entry so providers can reseed vs refresh their store. Specs read context through the ordinary `{ $state: "/context/…" }` grammar; element props are never enriched. `typedSpec()` type-checks the spec literal at the definition site (XState's `meta` is untyped).
258
+ Extends `@xmachines/json-render-core` `Spec`. `deriveCurrentView` projects the machine's whole context into the derived spec's `state` under the read-only `/context` subtree, and stamps a `viewKey` from the selected meta entry so providers can reseed vs refresh their store. An authored `outlets` field composes the views of the active substates into the view of their parent, and the composed spec also carries `viewParts`. Specs read context through the ordinary `{ $state: "/context/…" }` grammar; element props are never enriched. `typedSpec()` type-checks the spec literal at the definition site (XState's `meta` is untyped).
242
259
 
243
260
  ### [`PlayerActor<TMachine>`](../api/@xmachines/play-xstate/index/classes/PlayerActor.md)
244
261
 
@@ -254,7 +271,7 @@ The core imports neither capability, so an application that declares no route lo
254
271
 
255
272
  **The composition order decides nothing.** `PlayerActor` writes ONE atom for each transition — `state` — and every capability that publishes a value DERIVES it with a computed atom over that one. The engine evaluates `currentRoute` and `currentView` from a single write, in topological order, so a router bridge sees a guard redirect and a renderer sees the view of the same snapshot whatever order `compose` applied.
256
273
 
257
- An earlier release wrote `currentView` from an `onSnapshot` override, and the order was load-bearing there: two writes flushed two times, and an observer of `state` and `currentView` read the new state beside the old view in between. `onSnapshot` remains for a capability that must run an EFFECT on a transition, and an override still calls `super.onSnapshot()` first.
274
+ A capability that must run an EFFECT on a transition overrides `onSnapshot`, and the override calls `super.onSnapshot()` first.
258
275
 
259
276
  ### [`definePlayer(config)`](../api/@xmachines/play-xstate/index/functions/definePlayer.md) → [`PlayerFactory`](../api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md)
260
277
 
@@ -306,7 +323,7 @@ interface PlayRouteEvent {
306
323
 
307
324
  ### [`watchAtom(atom, callback)`](../api/@xmachines/play-atom/functions/watchAtom.md)
308
325
 
309
- Subscribe to a single atom with microtask coalescing and memory-safe cleanup. It builds one `subscribe` for the life of the watch, so no code arms anything again. The `disposed` flag guards post-cleanup callbacks, and the `scheduled` guard deduplicates rapid synchronous atom changes. Returns a `Cleanup` function.
326
+ Subscribe to a single atom with microtask coalescing and memory-safe cleanup. It builds one `subscribe` for the life of the watch, so no code arms anything again. The `disposed` flag guards post-cleanup callbacks, and the `scheduled` guard deduplicates rapid synchronous atom changes. Returns a plain release function.
310
327
 
311
328
  ### [`formatPlayRouteTransitions(machineConfig)`](../api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md)
312
329
 
@@ -368,22 +385,23 @@ Each adapter also exports a framework-integrated provider component (e.g. `PlayR
368
385
  ```
369
386
  packages/
370
387
  ├── shared/ # Zero-dependency shared configs (tsconfig, oxlint, oxfmt, vitest)
371
- ├── play/ # Layer 0: Core protocol: PlayEvent, PlayError, assertNonNullable
372
- ├── play-atom/ # Layer 1: the atom primitives — all atom imports go here
388
+ ├── core/ # Layer 0: BaseError, the release protocol, the cache, helpers; no module state
389
+ ├── play/ # Layer 1: Core protocol: PlayEvent, PlayError, assertNonNullable
390
+ ├── play-atom/ # Layer 0: the atom primitives — all atom imports go here
373
391
  │ └── src/ # Declares the atom contract, binds the engine; watchAtom utility
374
- ├── play-actor/ # Layer 2: the PlayActor contract — state and send, and nothing else
392
+ ├── play-actor/ # Layer 1: the PlayActor contract — state and send, and nothing else
375
393
  ├── play-pattern/ # Layer 1: the route pattern language — one parse, and the path it builds back
376
394
  ├── play-url/ # Layer 2: the URL layer — the URLPattern API, a base path, framework params
377
- ├── play-view/ # Layer 3: Viewable, PlaySpec, the view store lifecycle, the context projection
395
+ ├── play-view/ # Layer 2: Viewable, PlaySpec, the view store lifecycle, the context projection
378
396
  │
379
- ├── play-xstate/ # Layer 5: Concrete XState v5 actor: definePlayer, PlayerActor
397
+ ├── play-xstate/ # Layer 4: Concrete XState v5 actor: definePlayer, PlayerActor
380
398
  │ └── src/
381
399
  │ ├── player-actor.ts # PlayerActor — concrete actor
382
400
  │ ├── define-player.ts # definePlayer factory
383
401
  │ ├── routing/ # deriveRoute, buildRouteUrl, formatPlayRouteTransitions
384
402
  │ └── view/ # deriveCurrentView (meta.view → PlaySpec)
385
403
  │
386
- ├── play-router/ # Layer 4: Route extraction, bidirectional mapping, bridge base
404
+ ├── play-router/ # Layer 3: Route extraction, bidirectional mapping, bridge base
387
405
  │ └── src/
388
406
  │ ├── router-bridge-base.ts # RouterBridgeBase (Template Method for all adapters)
389
407
  │ ├── base-route-map.ts # RouteMap (bidirectional stateId ↔ path)
@@ -428,7 +446,7 @@ packages/<name>/
428
446
 
429
447
  The monorepo uses **TypeScript composite project references** (`"composite": true` per package) for a correct, incremental, dependency-ordered build. The root `tsconfig.json` lists every package in layer order — leaves first, dependents last — and it is the ONLY build order of the workspace. `tsc --build` at the root reads that array and resolves the graph.
430
448
 
431
- **The layer table and the diagram live in [development.md](development.md#build-layers).** They stood here too, and the copy drifted: it kept the numbers of an earlier release, so a reader who added a package placed it in the wrong block of the root array. One home for the question, as for the `references` arrays that the root file replaced.
449
+ **The layer table and the diagram live in [development.md](development.md#build-layers).**
432
450
 
433
451
  Two facts about the graph belong to this document, because they are architecture and not build order:
434
452
 
@@ -439,14 +457,15 @@ With `declarationMap: true` in the base tsconfig (from [`@xmachines/shared/tscon
439
457
 
440
458
  **Dependency rules:**
441
459
 
442
- The **protocol layer** is `play`, `play-atom` and `play-actor`. The three form a chain — `play-atom` reads `play`, and `play-actor` reads `play-atom` — and none of them reads a package below.
460
+ The **protocol layer** is `play`, `play-atom` and `play-actor`. `play` reads `core` alone, for the base of `PlayError`. `play-atom` reads no workspace package. `play-actor` reads `play-atom`, and no other package of the workspace.
443
461
 
444
462
  | Layer | May import from | Must not import from |
445
463
  | ------------------------------------- | ------------------------------------------------------- | -------------------------------- |
446
- | Protocol (`play`) | External libs only | Any other `@xmachines/*` package |
447
- | Protocol (`play-atom`) | `play`, `@xstate/store` | Any other `@xmachines/*` package |
448
- | Protocol (`play-actor`) | `play`, `play-atom` | Any other `@xmachines/*` package |
449
- | Pattern language (`play-pattern`) | External libs only | Any other `@xmachines/*` package |
464
+ | Core (`core`) | No package | Any `@xmachines/*` package |
465
+ | Protocol (`play`) | `core` | Any other `@xmachines/*` package |
466
+ | Protocol (`play-atom`) | `@xstate/store` | Any other `@xmachines/*` package |
467
+ | Protocol (`play-actor`) | `play-atom` | Any other `@xmachines/*` package |
468
+ | Pattern language (`play-pattern`) | `core` | Any other `@xmachines/*` package |
450
469
  | URL layer (`play-url`) | Protocol layer, `play-pattern`, `urlpattern-polyfill` | Any other `@xmachines/*` package |
451
470
  | View half (`play-view`) | Protocol layer, `@xmachines/json-render-core` | Router adapters, framework code |
452
471
  | Actor logic (`play-xstate`) | Protocol layer, `play-pattern`, `xstate` | View renderers, router adapters |
@@ -454,20 +473,26 @@ The **protocol layer** is `play`, `play-atom` and `play-actor`. The three form a
454
473
  | Router adapters (`play-*-router`) | `play-router`, protocol layer, framework router lib | View renderers |
455
474
  | View renderers (`play-*`) | Protocol layer, `play-view`, `@xmachines/json-render-*` | Router adapters |
456
475
 
476
+ Every layer above the protocol layer may also import [`@xmachines/core`](../api/@xmachines/core/README.md), and `play` imports it for `BaseError`. It is a peer, and not a dependency: `err instanceof BaseError` answers `false` for an error of a second copy, so an install must hold one copy. See [the packages that must exist one time](development.md#the-packages-that-must-exist-one-time).
477
+
457
478
  `play-view` and `play-router` are OPTIONAL peer dependencies of `play-xstate`, because the two capability subpaths carry them: [`@xmachines/play-xstate/view`](../api/@xmachines/play-xstate/README.md) names the first and [`@xmachines/play-xstate/routing`](../api/@xmachines/play-xstate/README.md) names the second. The core entry point imports neither.
458
479
 
459
480
  ## Error Handling
460
481
 
461
- All `@xmachines/*` errors extend [`PlayError`](../api/@xmachines/play/errors/classes/PlayError.md) and carry two stable fields:
482
+ All `@xmachines/*` errors extend [`BaseError`](../api/@xmachines/core/errors/classes/BaseError.md) of [`@xmachines/core/errors`](../api/@xmachines/core/README.md), and carry two stable fields:
462
483
 
463
484
  - `scope` — the class or module that threw (e.g. `"RouterBridgeBase"`)
464
485
  - `code` — a stable machine-readable identifier (e.g. `"PLAY_ROUTER_SYNC_FAILED"`)
465
486
 
487
+ Every error of a Play package extends [`PlayError`](../api/@xmachines/play/errors/classes/PlayError.md), which extends `BaseError`. A package below the Play protocol extends `BaseError` directly: [`@xmachines/core`](../api/@xmachines/core/README.md) throws `DisposeConflictError` when `asDisposable` receives a named release that the scope would never run.
488
+
466
489
  **Error hierarchy:**
467
490
 
468
491
  ```mermaid
469
492
  flowchart TD
470
- PE["PlayError\n@xmachines/play/errors"]
493
+ BE["BaseError\n@xmachines/core/errors"]
494
+ BE --> DCE["DisposeConflictError\nCORE_DISPOSE_CONFLICT"]
495
+ BE --> PE["PlayError\n@xmachines/play/errors"]
471
496
  PE --> NNE["NonNullableError\nPLAY_NON_NULLABLE"]
472
497
  PE --> RSE["RouterSyncError\nPLAY_ROUTER_SYNC_FAILED"]
473
498
  PE --> DBE["DuplicateBridgeError\nPLAY_ROUTER_DUPLICATE_BRIDGE"]
@@ -599,7 +624,7 @@ Custom `watchRouterChanges()` implementations that bypass `syncActorFromRouter()
599
624
 
600
625
  Five paths reach that case. The host gives no `onError` prop. The handler of the host throws, or the producer of the `fallback` throws, or a release of the caller throws — each of those reports the failure of the HOST, which no handler of the host receives. `ActorProvider` of play-vue stops a second report of one error, and `onError` stays silent there on purpose, because the four other renderers see such an error never.
601
626
 
602
- Three other places write to `console.warn`, and each one reports a configuration that the library cannot refuse: `warnOnce` of [`@xmachines/play-view`](../api/@xmachines/play-view/README.md) names a `/context` projection that it cannot derive, one time for each spec; [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) names the `meta.view.contextProps` field that 1.x removed, one time for each spec; and [`@xmachines/play-router`](../api/@xmachines/play-router/README.md) names a `basePath` that a bridge with no mount ignores. A warning is the answer where a throw would stop an application for a fault that it can still run with. No other library source calls `console.*`.
627
+ Three other places write to `console.warn`, and each one reports a configuration that the library cannot refuse: `warnOnce` of [`@xmachines/play-view`](../api/@xmachines/play-view/README.md) names a `/context` projection that it cannot derive, one time for each spec; [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) names a `meta.view.contextProps` field, which the view does not read, one time for each spec; and [`@xmachines/play-router`](../api/@xmachines/play-router/README.md) names a `basePath` that a bridge with no mount ignores. A warning is the answer where a throw would stop an application for a fault that it can still run with. No other library source calls `console.*`.
603
628
 
604
629
  **Authentication:** Not in scope. Enforced via XState guards on `play.route` transitions. The guard evaluates machine `context` (e.g., `isLoggedIn`) before permitting navigation. No library-level auth primitives — the machine defines all access control.
605
630
 
@@ -6,12 +6,20 @@ This document describes every configuration file, environment variable, and per-
6
6
 
7
7
  ## Environment Variables
8
8
 
9
- The monorepo itself has no application runtime that reads environment variables. The only variables are for the **dev container** tooling and the **CI/CD release pipeline**.
9
+ The monorepo itself has no application runtime that reads environment variables. The only variables are for the **dev container** tooling, the **test runs**, and the **CI/CD release pipeline**.
10
10
 
11
11
  ### Dev Container Variables
12
12
 
13
13
  The dev container currently defines no workspace-specific environment variables; `.devcontainer/.env` (loaded via `env_file` in `.devcontainer/compose.yaml`) is available for local overrides if a future tool needs one. Copy `.devcontainer/.env.sample` to `.devcontainer/.env` to get started.
14
14
 
15
+ ### Test Run Variable
16
+
17
+ | Variable | Required | Default | Description |
18
+ | ---------------- | -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
19
+ | `XM_TEST_TARGET` | Optional | `source` | The code that a test run loads for each published package: `source` (the `src/` tree) or `dist` (the build output). Any other value stops the run with an error. |
20
+
21
+ **Defined in:** the `test:dist` and `test:browser:dist` scripts of the root `package.json`. **Read by:** `xmTestTarget` of [`@xmachines/shared/vite-aliases`](../api/@xmachines/shared/README.md), which every config helper of that package calls. Do not set it by hand: run `pnpm run test:dist`. See [testing.md](testing.md#tests-on-the-build-output).
22
+
15
23
  ### CI / Release Pipeline Variable
16
24
 
17
25
  | Variable | Required | Default | Description |
@@ -54,13 +62,15 @@ The root TypeScript config is a **build coordinator only** — it compiles nothi
54
62
  "files": [],
55
63
  "references": [
56
64
  // Layer 0 — no internal deps
65
+ { "path": "./packages/core" },
57
66
  { "path": "./packages/docs" },
58
- { "path": "./packages/play" },
67
+ { "path": "./packages/play-atom" },
59
68
  { "path": "./packages/shared" },
60
69
  // Layer 1 — depends on Layer 0
61
- { "path": "./packages/play-atom" },
62
- // Layer 2
70
+ { "path": "./packages/play" },
63
71
  { "path": "./packages/play-actor" },
72
+ // Layer 2
73
+ { "path": "./packages/play-view" },
64
74
  // Layer 3
65
75
  { "path": "./packages/play-router" }
66
76
  // ...etc.
@@ -327,7 +337,7 @@ stays.
327
337
 
328
338
  **Location:** `/vitest.config.ts`
329
339
  **Tool:** [Vitest](https://vitest.dev/) `^4.1.5`
330
- **Run:** `pnpm test` / `pnpm run test:coverage`
340
+ **Run:** `pnpm test` / `pnpm run test:coverage` / `pnpm run test:dist`
331
341
 
332
342
  Root Vitest config is a **workspace coordinator** that lists all per-package configs under `test.projects`. It sets conservative monorepo-wide defaults:
333
343
 
@@ -352,8 +362,10 @@ Root Vitest config is a **workspace coordinator** that lists all per-package con
352
362
 
353
363
  Coverage provider: `v8`. Individual packages may declare higher per-package thresholds in their own `vitest.config.ts`.
354
364
 
365
+ The JUnit file is `test-results.xml`. The dist run (`XM_TEST_TARGET=dist`) writes `test-results-dist.xml`, and it prefixes each class name with `dist:`, so the two runs stay apart in the merge request widget.
366
+
355
367
  **Browser test config:** `/vitest.browser.config.ts`
356
- Run with `pnpm run test:browser`. Uses Playwright Chromium via Vitest browser mode. `testTimeout` is `20000` ms; `maxWorkers` is `2` (default; demo integration projects override with `pool: "threads"` + `maxWorkers: 2`).
368
+ Run with `pnpm run test:browser`, or with `pnpm run test:browser:dist` against the build output. Uses Playwright Chromium via Vitest browser mode. `testTimeout` is `20000` ms; `maxWorkers` is `2` (default; demo integration projects override with `pool: "threads"` + `maxWorkers: 2`).
357
369
 
358
370
  ### Per-Package Vitest Config — `@xmachines/shared/vitest`
359
371
 
@@ -363,6 +375,8 @@ Run with `pnpm run test:browser`. Uses Playwright Chromium via Vitest browser mo
363
375
  Packages use `defineXmVitestConfig(import.meta.url, overrides)` to create their config. It automatically injects:
364
376
 
365
377
  - `resolve.alias` via `xmAliases()` so `@xmachines/*` imports resolve to TypeScript source without a prior build.
378
+ - In the dist run, the `xmBuildOutput` plugin. The alias map then holds no published package, so each `@xmachines/*` import resolves through its `exports` map to `dist/`. The plugin moves each `src/` file that a test imports by path to its counterpart in `dist/`.
379
+ - `test.provide.xmTestTarget`, which a test reads with `inject("xmTestTarget")`.
366
380
  - `vitest.node.setup.ts` for non-browser projects (if not already present).
367
381
  - `vitest.setup.ts` for all projects (if not already present).
368
382
 
@@ -385,10 +399,12 @@ export default defineXmVitestConfig(import.meta.url, {
385
399
  **Location:** `packages/shared/config/vite-aliases.ts`
386
400
  **Exported as:** [`@xmachines/shared/vite-aliases`](../api/@xmachines/shared/README.md)
387
401
 
388
- Provides two helpers used in all `vitest.config.ts` and `vite.config.ts` files:
402
+ Provides the helpers used in all `vitest.config.ts` and `vite.config.ts` files:
389
403
 
390
- - **`xmAliases(import.meta.url)`** — returns a `Record<string, string>` mapping every `@xmachines/*` package to its TypeScript source entry. Enables tests and dev servers to run without a prior `pnpm run build`.
391
- - **`xmResolve(import.meta.url)`** — returns a full Vite `resolve` config with `xmAliases` plus `preserveSymlinks: true` and `conditions: ["source"]`.
404
+ - **`xmAliases(import.meta.url)`** — returns a `Record<string, string>` mapping every `@xmachines/*` package to its TypeScript source entry. Enables tests and dev servers to run without a prior `pnpm run build`. In the dist run, the map holds no entry for a published package except `<name>/src`.
405
+ - **`xmResolve(import.meta.url)`** — returns a full Vite `resolve` config with `xmAliases` plus `preserveSymlinks: false`. It sets no `conditions`: the aliases do the work that the `source` condition does for TypeScript.
406
+ - **`xmTestTarget()`** — reads `XM_TEST_TARGET`, and returns `source` or `dist`.
407
+ - **`xmBuildOutput(import.meta.url)`** — the Vite plugin of the dist run. It moves each `src/` file of a published package to its counterpart in `dist/`, and it fails the import when the build output holds no such file. It also fails the run when anything loads a `src/` file of a published package.
392
408
  - **`xmCacheDir(import.meta.url, name)`** — returns a shared Vite cache path under `node_modules/.vite/<name>` to prevent redundant dep optimizer runs across projects.
393
409
  - **`xmOptimizeDeps(include?)`** — returns an `optimizeDeps.include` list holding exactly the specifiers passed in. Nothing is pre-bundled by default, and every entry has to be a package the calling project declares: pnpm gives each package its own `node_modules`, so Vite cannot resolve an undeclared specifier — it warns on stderr and carries on, which reads as a failure in a passing job.
394
410
 
@@ -434,6 +450,25 @@ Any step above can be skipped with the `SEMREL_SKIP_STEPS` CI variable, which th
434
450
 
435
451
  ---
436
452
 
453
+ ### Dependency Updates — `renovate.json5`
454
+
455
+ **Location:** `/renovate.json5`
456
+ **Tool:** [Renovate](https://docs.renovatebot.com/), from the `xmachin-es/renovate` project
457
+
458
+ Renovate updates the npm dependencies of every package of the workspace, the demos under `packages/*/examples/*` too. It also updates the to-be-continuous components that `.gitlab-ci.yml` includes. The bot runs one time each week. For each new version, it opens a merge request, and the pipeline of that merge request tests the new version. The Dependency Dashboard issue lists every update that Renovate knows.
459
+
460
+ The rules of the file:
461
+
462
+ - **Three days of cooldown.** The renovate component waits 3 days for a new version, which also covers the cooldown of one day in pnpm 11. The `@xmachines/*` packages have no cooldown, as in `pnpm-workspace.yaml`.
463
+ - **One merge request for json-render.** The `@xmachines/json-render-*` packages move together. The merge request moves every range, the `peerDependencies` too, as a `feat(deps):` commit. Renovate proposes the prereleases of the fork (`0.22.0-xm.1`), which it skips by default. Update the ranges that the README files name on the branch of that merge request.
464
+ - **No new major for an audit floor.** An override with a major in its key, for example `brace-expansion@2`, gets no update to the next major.
465
+ - **Approval for a patched package.** `pnpm-workspace.yaml` patches `@testing-library/jest-dom` and `@vitest/mocker` at one version. An update of these packages, or of vitest, needs a new patch. Approve it in the Dependency Dashboard, then move the patch on its branch.
466
+ - **Commit types.** A component update is a `ci:` commit, so semantic-release makes no release from it. An npm update is a `fix(deps):` commit for a `dependencies` entry, and a `chore(deps):` commit for any other type.
467
+
468
+ A new version of a component can rename an input and not say so. A pipeline that fails with no job is then an error in the inputs. Compare the inputs in `.gitlab-ci.yml` with the `spec` of the new version before you merge.
469
+
470
+ ---
471
+
437
472
  ## Per-Environment Overrides
438
473
 
439
474
  This monorepo has no application-level config with per-environment overrides (no `.env.development` / `.env.production` files). All configuration is tool-level (TypeScript, linter, formatter, test runner) and is environment-agnostic.
@@ -82,6 +82,7 @@ The repository is organized as a **pnpm workspaces** monorepo with all packages
82
82
  ```
83
83
  packages/
84
84
  ├── shared/ # Shared configs (tsconfig, oxlint, oxfmt, vitest)
85
+ ├── core/ # BaseError, the release protocol, the cache, small helpers
85
86
  ├── play/ # Core protocol (PlayEvent, PlayError)
86
87
  ├── play-atom/ # The atom primitives over @xstate/store
87
88
  ├── play-pattern/ # The route pattern language: one parse, and the path it builds back
@@ -134,9 +135,11 @@ All commands are run from the **repository root** unless otherwise noted.
134
135
  | `pnpm run build` | Incremental build — all packages in dependency order (not a type-check) |
135
136
  | `pnpm --filter @xmachines/<pkg> run build` | Build a single package (and its deps) |
136
137
  | `pnpm run clean` | Remove coverage, Vite caches, and all `dist/` directories in packages |
137
- | `pnpm test` | Run all unit/integration tests once |
138
+ | `pnpm test` | Run all unit/integration tests once, on the source |
139
+ | `pnpm run test:dist` | Run the same tests on the build output (run `pnpm run build` first) |
138
140
  | `pnpm run test:watch` | Re-run tests on file changes (interactive) |
139
141
  | `pnpm run test:browser` | Run Playwright browser tests |
142
+ | `pnpm run test:browser:dist` | Run Playwright browser tests on the build output |
140
143
  | `pnpm run test:coverage` | Run tests with V8 coverage reporting |
141
144
  | `pnpm run test:browser:coverage` | Run browser tests with coverage reporting |
142
145
  | `pnpm run test:build` | Complete type-check of every package and its tests (`tsconfig.test.json`) |
@@ -188,17 +191,17 @@ React 18 and vue-router 4 are supported by intent — nothing known depends on 1
188
191
 
189
192
  ### The packages that must exist one time
190
193
 
191
- [`@xmachines/play`](../api/@xmachines/play/README.md) and [`@xmachines/play-atom`](../api/@xmachines/play-atom/README.md) are a peer of every package that reads them, and a dependency of none.
194
+ [`@xmachines/core`](../api/@xmachines/core/README.md), [`@xmachines/play`](../api/@xmachines/play/README.md) and [`@xmachines/play-atom`](../api/@xmachines/play-atom/README.md) are a peer of every package that reads them, and a dependency of none.
192
195
 
193
196
  [`@xmachines/play-atom`](../api/@xmachines/play-atom/README.md) re-exports the atom of `@xstate/store`, and that library holds the active subscriber in a variable of its own module. Two copies build two graphs. A computed atom of the first copy and a subscription of the second copy therefore never meet: the subscriber stays silent, and no error reports the fault. Every propagation of state in this architecture goes through an atom, so the second copy stops the reactivity of a whole application.
194
197
 
195
- [`@xmachines/play`](../api/@xmachines/play/README.md) holds `PlayError`, and the documentation sends a consumer to `err instanceof PlayError`. That check answers `false` for an error of the second copy.
198
+ [`@xmachines/play`](../api/@xmachines/play/README.md) holds `PlayError`, and the documentation sends a consumer to `err instanceof PlayError`. That check answers `false` for an error of the second copy. [`@xmachines/core`](../api/@xmachines/core/README.md) holds `BaseError`, the base of `PlayError`, and `err instanceof BaseError` fails in the same way.
196
199
 
197
200
  A dependency invites that second copy. `scripts/lib/workspace-deps.mjs` pins a `workspace:*` range to an EXACT version, so two packages of two releases name two versions, and an installer resolves both. A peer moves the choice to the consumer, who brings one copy. The `@xmachines/json-render-*` packages carry the same rule for the same reason.
198
201
 
199
- Each of the two needs a `devDependency` beside the peer, because the workspace installs no peer. Without that entry a package resolves the specifier through the hoisting of another package, and it compiles until that other package stops declaring it.
202
+ Each of the three needs a `devDependency` beside the peer, because the workspace installs no peer. Without that entry a package resolves the specifier through the hoisting of another package, and it compiles until that other package stops declaring it.
200
203
 
201
- `tests/singleton-peers.test.ts` holds the three rules true: no dependency, a dev entry beside each peer, and a peer for each one that `src/` imports. A package that reads one of the two in its TESTS alone needs the dev entry alone — [`@xmachines/play-tanstack-router`](../api/@xmachines/play-tanstack-router/README.md) is that case.
204
+ `tests/singleton-peers.test.ts` holds the three rules true: no dependency, a dev entry beside each peer, and a peer for each one that `src/` imports. A package that reads one of the three in its TESTS alone needs the dev entry alone — [`@xmachines/play-tanstack-router`](../api/@xmachines/play-tanstack-router/README.md) is that case.
202
205
 
203
206
  The rule reads in both directions. A peer that the `src/` directory never imports is a peer that a consumer installs for nothing, and four router adapters carried one. A package declares the peer when it reads the package, and a `devDependency` alone when its tests read it.
204
207
 
@@ -221,16 +224,15 @@ Packages are grouped into dependency layers as defined in the root `tsconfig.jso
221
224
 
222
225
  | Layer | Packages | Depends on |
223
226
  | ----- | -------------------------------------------------------------------------------- | ------------------ |
224
- | 0 | `docs`, `play`, `shared` | External libs only |
225
- | 1 | `play-atom`, `play-pattern` | Layer 0 |
226
- | 2 | `play-actor`, `play-url` | Layers 0–1 |
227
- | 3 | `play-view` | Layers 0–2 |
228
- | 4 | `play-dom`, `play-react`, `play-router`, `play-solid`, `play-svelte`, `play-vue` | Layers 0–3 |
229
- | 5 | `play-tanstack-router`, `play-xstate` | Layers 0–4 |
230
- | 6 | `play-actor/examples/shared` | Layers 0–5 |
231
- | 7 | renderer demo apps | Layers 0–6 |
232
- | 8 | the eight router adapters | Layers 0–7 |
233
- | 9 | router demo apps | Layers 0–8 |
227
+ | 0 | `core`, `docs`, `play-atom`, `shared` | External libs only |
228
+ | 1 | `play`, `play-actor`, `play-pattern` | Layer 0 |
229
+ | 2 | `play-url`, `play-view` | Layers 0–1 |
230
+ | 3 | `play-dom`, `play-react`, `play-router`, `play-solid`, `play-svelte`, `play-vue` | Layers 0–2 |
231
+ | 4 | `play-tanstack-router`, `play-xstate` | Layers 0–3 |
232
+ | 5 | `play-actor/examples/shared` | Layers 0–4 |
233
+ | 6 | renderer demo apps | Layers 0–5 |
234
+ | 7 | the eight router adapters | Layers 0–6 |
235
+ | 8 | router demo apps | Layers 0–7 |
234
236
 
235
237
  The layer of an entry is its longest path to a package with no workspace dependency, and `tests/tsconfig-reference-graph.test.ts` computes it from the manifests.
236
238
 
@@ -239,26 +241,24 @@ The layer of an entry is its longest path to a package with no workspace depende
239
241
  ```mermaid
240
242
  flowchart LR
241
243
  subgraph L0["Layer 0 — no workspace deps"]
242
- play
244
+ core
245
+ play-atom
243
246
  shared
244
247
  docs
245
248
  end
246
249
 
247
250
  subgraph L1["Layer 1"]
248
- play-atom
251
+ play
252
+ play-actor
249
253
  play-pattern
250
254
  end
251
255
 
252
256
  subgraph L2["Layer 2"]
253
- play-actor
254
257
  play-url
255
- end
256
-
257
- subgraph L3["Layer 3"]
258
258
  play-view
259
259
  end
260
260
 
261
- subgraph L4["Layer 4 — view renderers, and the router core"]
261
+ subgraph L3["Layer 3 — view renderers, and the router core"]
262
262
  play-dom
263
263
  play-react
264
264
  play-router
@@ -267,31 +267,31 @@ flowchart LR
267
267
  play-vue
268
268
  end
269
269
 
270
- subgraph L5["Layer 5"]
270
+ subgraph L4["Layer 4"]
271
271
  play-tanstack-router
272
272
  play-xstate
273
273
  end
274
274
 
275
- subgraph L6["Layer 6"]
275
+ subgraph L5["Layer 5"]
276
276
  actorshared["play-actor/examples/shared"]
277
277
  end
278
278
 
279
- subgraph L7["Layer 7"]
279
+ subgraph L6["Layer 6"]
280
280
  renderdemos["renderer demo apps"]
281
281
  end
282
282
 
283
- subgraph L8["Layer 8 — the eight router adapters"]
283
+ subgraph L7["Layer 7 — the eight router adapters"]
284
284
  adapters["play-dom-router, play-react-router, play-solid-router,
285
285
  play-svelte-spa-router, play-sveltekit-router,
286
286
  play-tanstack-react-router, play-tanstack-solid-router,
287
287
  play-vue-router"]
288
288
  end
289
289
 
290
- subgraph L9["Layer 9"]
290
+ subgraph L8["Layer 8"]
291
291
  routerdemos["router demo apps"]
292
292
  end
293
293
 
294
- L0 --> L1 --> L2 --> L3 --> L4 --> L5 --> L6 --> L7 --> L8 --> L9
294
+ L0 --> L1 --> L2 --> L3 --> L4 --> L5 --> L6 --> L7 --> L8
295
295
  ```
296
296
 
297
297
  ### Adding a New Package
@@ -57,6 +57,7 @@ pnpm add @xmachines/play-atom @xstate/store
57
57
  | `{ equals }` | `{ compare }` |
58
58
  | `SignalOptions<T>` / `ComputedOptions<T>` | `AtomOptions<T>` |
59
59
  | `watchSignal(signal, onValue)` | `watchAtom(atom, onValue)` |
60
+ | `Cleanup` (type) | `() => void` — the codemod reports it, and rewrites it not |
60
61
  | `useSignalEffect(cb, deps)` (`play-react`) | `useAtomEffect(sources, cb, deps)` |
61
62
  | `Signal.subtle.Watcher` | `atom.subscribe(fn)`, or `watchAtom` |
62
63
  | `Signal.subtle.untrack(fn)` | — no equivalent. See below |
@@ -204,6 +205,6 @@ this.state = createWritableAtom(this.getSnapshot());
204
205
 
205
206
  ## See also
206
207
 
207
- - [Understanding Atoms](../guides/atoms.md) — the concepts, and the invariants
208
+ - [Atoms](../guides/atoms.md) — the concepts, and the invariants
208
209
  - [`@xmachines/play-atom`](../api/@xmachines/play-atom/README.md) — the API reference
209
210
  - [Play RFC](../rfc/play.md) — section 5.1.1 defines the reactive substrate
@@ -8,7 +8,7 @@ The monorepo uses **[Vitest](https://vitest.dev/) `^5.0.1`** as its test framewo
8
8
 
9
9
  All packages extend the shared Vitest configuration helper `defineXmVitestConfig` (from [`@xmachines/shared/vitest`](../api/@xmachines/shared/README.md)) which automatically applies:
10
10
 
11
- - `@xmachines/*` source aliases so imports resolve to source during test runs
11
+ - `@xmachines/*` source aliases so imports resolve to source during test runs — or, in the dist run, to the build output (see [Tests on the build output](#tests-on-the-build-output))
12
12
  - [`@xmachines/shared/vitest-setup`](../api/@xmachines/shared/README.md) — extends Vitest matchers with `@testing-library/jest-dom`
13
13
  - [`@xmachines/shared/vitest-node-setup`](../api/@xmachines/shared/README.md) — enforces Node.js ≥ 24 on non-browser projects
14
14
 
@@ -77,6 +77,33 @@ pnpm run test:browser
77
77
 
78
78
  Runs `vitest run --config vitest.browser.config.ts`. Launches all browser-mode projects using headless Chromium via Playwright. Includes both package-level browser unit tests and full demo-app integration flows. The browser global setup (`vitest.browser.global-setup.ts`) raises `process.setMaxListeners` to 32 before workers spawn to prevent false-positive `MaxListenersExceededWarning` with multiple parallel browser projects.
79
79
 
80
+ ### Tests on the build output
81
+
82
+ ```bash
83
+ pnpm run build
84
+ pnpm run test:dist # the node suites
85
+ pnpm run test:browser:dist # the browser suites
86
+ ```
87
+
88
+ `pnpm test` runs every suite on the SOURCE of each package. It needs no build, and it cannot see a defect of the build. `pnpm run test:dist` runs the same test files on the BUILD OUTPUT, as a consumer installs it. The 6.0.0 release shows why both runs are necessary. [`@xmachines/play-vue`](../api/@xmachines/play-vue/README.md) and [`@xmachines/play-svelte`](../api/@xmachines/play-svelte/README.md) shipped compiled for server-side rendering, and neither rendered in a browser. Every source suite was green. The node dist run fails 14 test files on that output, and the browser dist run fails the Vue suites.
89
+
90
+ The two scripts set `XM_TEST_TARGET=dist`, and the config helpers of [`@xmachines/shared/vite-aliases`](../api/@xmachines/shared/README.md) read it. No package config holds a copy of the dist setup. The variable changes two things:
91
+
92
+ - **A specifier.** The alias map drops each published package. [`@xmachines/play-xstate/routing`](../api/@xmachines/play-xstate/README.md) then resolves through the `exports` map of the package to `dist/with-routing.js`. The `source` condition is not set either, so the resolution is the one that a consumer gets.
93
+ - **A path into `src/`.** A test imports the module under test by path, as `../src/define-player.js`, and that import reaches no exports map. The `xmBuildOutput` plugin moves it to `dist/define-player.js`, which is the file that the package entry imports. The test and the package then share ONE module, and a `vi.mock` of the `src/` path replaces the module of the build. The build keeps the module structure, so each source file has one counterpart.
94
+
95
+ The private packages — the demos and the `examples/shared` fixtures — reach no consumer, and the build does not compile them for one. Both runs read their source, and that source imports the packages from `dist/`.
96
+
97
+ The plugin fails an import when the build output holds no counterpart. The import then names both files. A fallback to the source would hide the defect that the dist run exists to find. The plugin also fails the run when anything loads a `src/` file of a published package by another route.
98
+
99
+ **Keep one file set.** Both runs collect the same files. A test that cannot run on the build output imports an internal module that the package does not ship. Import that module through the public entry of the package. If that is not possible, exclude the test from the dist run in its project config, and write the reason beside the exclusion. No test is excluded today.
100
+
101
+ **The proof.** `packages/play-xstate/test/test-target.test.ts` (node) and `packages/play-dom/test/browser/test-target.browser.test.ts` (browser) run in both runs. Each reads the target with `inject("xmTestTarget")`, and it asserts which file each kind of import loads. `import.meta.resolve` cannot answer that question, because it asks the resolver of Node. A stack trace cannot answer it either, because Vite applies the source maps of `dist/` and names `src/` in both runs.
102
+
103
+ Run `pnpm run build` first. The dist run reads whatever `dist/` holds, and it does not build. A change to `src/` reaches the dist run only through a new build.
104
+
105
+ Coverage stays on the source run. The build output carries none of the lines that the gate measures.
106
+
80
107
  ### With coverage
81
108
 
82
109
  ```bash
@@ -400,12 +427,12 @@ stop(); // Always clean up
400
427
  For type-only assertions, use `@ts-expect-error` in `.spec.ts` files:
401
428
 
402
429
  ```typescript
403
- const bad: PlaySpec = typedSpec({
430
+ const bad: ViewMeta = typedSpec({
404
431
  root: "root",
405
432
  elements: {},
406
- // @ts-expect-error "stat" is not a PlaySpec field — typedSpec flags it on an
433
+ // @ts-expect-error "stat" is not a ViewMeta field — typedSpec flags it on an
407
434
  // inline literal (excess-property checking does not reach aliased or spread
408
- // objects; use `satisfies PlaySpec` at the literal for those)
435
+ // objects; use `satisfies ViewMeta` at the literal for those)
409
436
  stat: {},
410
437
  });
411
438
  // At runtime the object exists; only the compile-time error is being tested
@@ -536,6 +563,8 @@ pnpm run test:coverage
536
563
 
537
564
  The job passes no reporter flag. `vitest.config.ts` owns the reporters, the JUnit file and the coverage directory, and it reads `COVERAGE_REPORTS_DIR` — which the `test` job sets to `reports/`. A new package therefore needs no CI change.
538
565
 
566
+ **Tests on the build output:** `test:dist` runs `pnpm run test:dist`, and `test:browser:dist` runs `pnpm run test:browser:dist` on the Playwright image. Both take `dist/` from `node-build` through `needs:`, so they test the build that the pipeline produced. They follow the rules of `test`, and they block: a failure is a defect of the tarball that a consumer installs, and it holds the release, because `semantic-release` runs in a later stage. They write `reports/test-results-dist.xml` and `reports/browser-results-dist.xml`, and each test case carries a `dist:` class name, so the widget of the merge request keeps them apart from the source runs. Neither job collects coverage.
567
+
539
568
  **Artifacts:** The `test` job publishes:
540
569
 
541
570
  - JUnit XML report at `reports/test-results.xml` (surfaced in GitLab's test results panel)
@@ -6,7 +6,7 @@
6
6
  function createAuthActionHandlers(actor): object;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-actor/examples/shared/src/actions.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.2/packages/play-actor/examples/shared/src/actions.ts#L48)
9
+ Defined in: [packages/play-actor/examples/shared/src/actions.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L48)
10
10
 
11
11
  Build the demo action handler map for one actor.
12
12
 
@@ -25,11 +25,11 @@ framework's `defineRegistry` accepts; spread the result into its `actions`.
25
25
 
26
26
  | Name | Type | Defined in |
27
27
  | ---------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
28
- | `addTask()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.2/packages/play-actor/examples/shared/src/actions.ts#L65) |
29
- | `completeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.2/packages/play-actor/examples/shared/src/actions.ts#L72) |
30
- | `login()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.2/packages/play-actor/examples/shared/src/actions.ts#L50) |
31
- | `logout()` | () => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.2/packages/play-actor/examples/shared/src/actions.ts#L54) |
32
- | `removeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:81](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.2/packages/play-actor/examples/shared/src/actions.ts#L81) |
33
- | `resetForm()` | (`params`, `setState`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.2/packages/play-actor/examples/shared/src/actions.ts#L99) |
34
- | `route()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.2/packages/play-actor/examples/shared/src/actions.ts#L55) |
35
- | `submitForm()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:92](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.2/packages/play-actor/examples/shared/src/actions.ts#L92) |
28
+ | `addTask()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L65) |
29
+ | `completeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L72) |
30
+ | `login()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L50) |
31
+ | `logout()` | () => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L54) |
32
+ | `removeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:81](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L81) |
33
+ | `resetForm()` | (`params`, `setState`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L99) |
34
+ | `route()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L55) |
35
+ | `submitForm()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:92](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L92) |