@xmachines/docs 6.0.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/README.md +9 -8
  2. package/api/@xmachines/core/README.md +7 -2
  3. package/api/@xmachines/core/cache/functions/createLruCache.md +1 -1
  4. package/api/@xmachines/core/cache/interfaces/KeyValueCache.md +3 -3
  5. package/api/@xmachines/core/errors/classes/BaseError.md +4 -4
  6. package/api/@xmachines/core/errors/classes/DisposeConflictError.md +4 -4
  7. package/api/@xmachines/core/utils/functions/asDisposable.md +2 -2
  8. package/api/@xmachines/core/utils/functions/createNullRecord.md +1 -1
  9. package/api/@xmachines/core/utils/functions/createWarnOnce.md +1 -1
  10. package/api/@xmachines/core/utils/functions/describeValue.md +1 -1
  11. package/api/@xmachines/core/utils/functions/isError.md +1 -1
  12. package/api/@xmachines/core/utils/functions/isThenable.md +1 -1
  13. package/api/@xmachines/core/utils/functions/releaseQuietly.md +1 -1
  14. package/api/@xmachines/core/utils/functions/rethrowLater.md +1 -1
  15. package/api/@xmachines/core/utils/functions/safeString.md +1 -1
  16. package/api/@xmachines/core/utils/functions/shallowEqualExcept.md +1 -1
  17. package/api/@xmachines/core/utils/type-aliases/DisposeKey.md +1 -1
  18. package/api/@xmachines/core/utils/type-aliases/DisposeMember.md +1 -1
  19. package/api/@xmachines/core/utils/variables/DISPOSE.md +1 -1
  20. package/api/@xmachines/play/README.md +10 -5
  21. package/api/@xmachines/play/errors/classes/NonNullableError.md +4 -4
  22. package/api/@xmachines/play/errors/classes/PlayError.md +6 -4
  23. package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
  24. package/api/@xmachines/play/index/type-aliases/PlayEvent.md +2 -2
  25. package/api/@xmachines/play-actor/README.md +9 -1
  26. package/api/@xmachines/play-actor/interfaces/ActorEvent.md +2 -2
  27. package/api/@xmachines/play-actor/interfaces/PlayActor.md +3 -3
  28. package/api/@xmachines/play-atom/README.md +17 -5
  29. package/api/@xmachines/play-atom/functions/watchAtom.md +1 -1
  30. package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +2 -2
  31. package/api/@xmachines/play-atom/interfaces/Atom.md +6 -6
  32. package/api/@xmachines/play-atom/interfaces/AtomObserver.md +4 -4
  33. package/api/@xmachines/play-atom/interfaces/AtomOptions.md +2 -2
  34. package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +2 -2
  35. package/api/@xmachines/play-atom/interfaces/BaseAtom.md +4 -4
  36. package/api/@xmachines/play-atom/interfaces/CreateAtom.md +3 -3
  37. package/api/@xmachines/play-atom/interfaces/Readable.md +4 -4
  38. package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +4 -4
  39. package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +1 -1
  40. package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +1 -1
  41. package/api/@xmachines/play-atom/variables/createAsyncAtom.md +1 -1
  42. package/api/@xmachines/play-atom/variables/createAtom.md +1 -1
  43. package/api/@xmachines/play-atom/variables/createWritableAtom.md +1 -1
  44. package/api/@xmachines/play-dom/README.md +138 -60
  45. package/api/@xmachines/play-dom/classes/PlayRenderer.md +12 -12
  46. package/api/@xmachines/play-dom/functions/createPlayUI.md +5 -5
  47. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  48. package/api/@xmachines/play-dom/functions/renderSpec.md +3 -2
  49. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +9 -9
  50. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +15 -14
  51. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +26 -20
  52. package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
  53. package/api/@xmachines/play-dom/interfaces/PassOptions.md +14 -0
  54. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +18 -17
  55. package/api/@xmachines/play-dom/interfaces/RenderErrorInfo.md +16 -0
  56. package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +17 -15
  57. package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +9 -8
  58. package/api/@xmachines/play-dom/interfaces/ValidationRegistry.md +14 -11
  59. package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +9 -10
  60. package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +4 -3
  61. package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
  62. package/api/@xmachines/play-dom/type-aliases/OnRenderError.md +27 -0
  63. package/api/@xmachines/play-dom/type-aliases/RenderErrorKind.md +21 -0
  64. package/api/@xmachines/play-dom-router/README.md +41 -5
  65. package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +7 -7
  66. package/api/@xmachines/play-dom-router/classes/RouteMap.md +4 -4
  67. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  68. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  69. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  70. package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +3 -3
  71. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
  72. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  73. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +8 -8
  74. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +7 -7
  75. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +4 -4
  76. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  77. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +4 -4
  78. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  79. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  80. package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +6 -6
  81. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
  82. package/api/@xmachines/play-pattern/README.md +1 -1
  83. package/api/@xmachines/play-pattern/functions/buildPath.md +1 -1
  84. package/api/@xmachines/play-pattern/functions/createLruCache.md +1 -1
  85. package/api/@xmachines/play-pattern/functions/getIndexKey.md +1 -1
  86. package/api/@xmachines/play-pattern/functions/isDotSegment.md +1 -1
  87. package/api/@xmachines/play-pattern/functions/parsePattern.md +1 -1
  88. package/api/@xmachines/play-pattern/interfaces/GroupPart.md +4 -4
  89. package/api/@xmachines/play-pattern/interfaces/KeyValueCache.md +3 -3
  90. package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +3 -3
  91. package/api/@xmachines/play-pattern/interfaces/ParamPart.md +7 -7
  92. package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +2 -2
  93. package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +12 -12
  94. package/api/@xmachines/play-pattern/interfaces/PatternParam.md +4 -4
  95. package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +1 -1
  96. package/api/@xmachines/play-pattern/type-aliases/PathParams.md +1 -1
  97. package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +1 -1
  98. package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +1 -1
  99. package/api/@xmachines/play-react/README.md +57 -18
  100. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +6 -6
  101. package/api/@xmachines/play-react/functions/defineRegistry.md +1 -1
  102. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  103. package/api/@xmachines/play-react/functions/useAtomEffect.md +1 -1
  104. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  105. package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +5 -5
  106. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +11 -11
  107. package/api/@xmachines/play-react/interfaces/DefineRegistryResult.md +15 -0
  108. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
  109. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
  110. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
  111. package/api/@xmachines/play-react/interfaces/RenderErrorInfo.md +16 -0
  112. package/api/@xmachines/play-react/interfaces/RendererProps.md +7 -7
  113. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
  114. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
  115. package/api/@xmachines/play-react/type-aliases/OnRenderError.md +27 -0
  116. package/api/@xmachines/play-react/type-aliases/RenderErrorKind.md +21 -0
  117. package/api/@xmachines/play-react/variables/ActorProvider.md +14 -4
  118. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  119. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  120. package/api/@xmachines/play-react-router/README.md +26 -5
  121. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +7 -7
  122. package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
  123. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
  124. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
  125. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +7 -7
  126. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +9 -9
  127. package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +4 -4
  128. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +4 -4
  129. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  130. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  131. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  132. package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  133. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
  134. package/api/@xmachines/play-router/README.md +79 -23
  135. package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +4 -4
  136. package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +5 -5
  137. package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +5 -5
  138. package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +5 -5
  139. package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +5 -5
  140. package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +5 -5
  141. package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +6 -6
  142. package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +4 -4
  143. package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +6 -6
  144. package/api/@xmachines/play-router/index/classes/RouteMap.md +4 -4
  145. package/api/@xmachines/play-router/index/classes/RouterBridgeBase.md +7 -7
  146. package/api/@xmachines/play-router/index/functions/buildPlayRouteEvent.md +1 -1
  147. package/api/@xmachines/play-router/index/functions/buildRouteTree.md +1 -1
  148. package/api/@xmachines/play-router/index/functions/cleanFrameworkParams.md +1 -1
  149. package/api/@xmachines/play-router/index/functions/createLruCache.md +1 -1
  150. package/api/@xmachines/play-router/index/functions/createRouteMapFromTree.md +1 -1
  151. package/api/@xmachines/play-router/index/functions/createRouterConnection.md +1 -1
  152. package/api/@xmachines/play-router/index/functions/detectDuplicateRoutes.md +1 -1
  153. package/api/@xmachines/play-router/index/functions/extractQuery.md +1 -1
  154. package/api/@xmachines/play-router/index/functions/extractRouteParams.md +1 -1
  155. package/api/@xmachines/play-router/index/functions/findRouteById.md +1 -1
  156. package/api/@xmachines/play-router/index/functions/findRouteByPath.md +1 -1
  157. package/api/@xmachines/play-router/index/functions/isMountableBridge.md +1 -1
  158. package/api/@xmachines/play-router/index/functions/joinBasePath.md +1 -1
  159. package/api/@xmachines/play-router/index/functions/mountKey.md +1 -1
  160. package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +1 -1
  161. package/api/@xmachines/play-router/index/functions/openProviderBridge.md +3 -3
  162. package/api/@xmachines/play-router/index/functions/parsePattern.md +1 -1
  163. package/api/@xmachines/play-router/index/functions/pickOwnParams.md +1 -1
  164. package/api/@xmachines/play-router/index/functions/repointProviderBridge.md +1 -1
  165. package/api/@xmachines/play-router/index/functions/resolveBasePath.md +1 -1
  166. package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +1 -1
  167. package/api/@xmachines/play-router/index/functions/sanitizePathname.md +1 -1
  168. package/api/@xmachines/play-router/index/functions/splitLocation.md +1 -1
  169. package/api/@xmachines/play-router/index/functions/stripBasePath.md +1 -1
  170. package/api/@xmachines/play-router/index/functions/validateRouteFormat.md +1 -1
  171. package/api/@xmachines/play-router/index/functions/validateStateExists.md +1 -1
  172. package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +3 -3
  173. package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +4 -4
  174. package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +3 -3
  175. package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +7 -7
  176. package/api/@xmachines/play-router/index/interfaces/KeyValueCache.md +3 -3
  177. package/api/@xmachines/play-router/index/interfaces/LocationLike.md +3 -3
  178. package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +6 -6
  179. package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +8 -8
  180. package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +2 -2
  181. package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +12 -12
  182. package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +7 -7
  183. package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +9 -9
  184. package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +3 -3
  185. package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +3 -3
  186. package/api/@xmachines/play-router/index/interfaces/Routable.md +3 -3
  187. package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +4 -4
  188. package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +8 -8
  189. package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +4 -4
  190. package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +3 -3
  191. package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +3 -3
  192. package/api/@xmachines/play-router/index/interfaces/RouteNode.md +10 -10
  193. package/api/@xmachines/play-router/index/interfaces/RouteObject.md +12 -15
  194. package/api/@xmachines/play-router/index/interfaces/RouteTree.md +5 -5
  195. package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +3 -3
  196. package/api/@xmachines/play-router/index/interfaces/RouterBridge.md +3 -3
  197. package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +6 -6
  198. package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +6 -6
  199. package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +5 -5
  200. package/api/@xmachines/play-router/index/interfaces/WindowLike.md +3 -3
  201. package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  202. package/api/@xmachines/play-router/index/type-aliases/RouteData.md +1 -1
  203. package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +1 -1
  204. package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +1 -1
  205. package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +3 -3
  206. package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +1 -1
  207. package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +1 -1
  208. package/api/@xmachines/play-router/xstate/functions/createRouteMap.md +1 -1
  209. package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +1 -1
  210. package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +1 -1
  211. package/api/@xmachines/play-router/xstate/functions/getRoutableRoutes.md +1 -1
  212. package/api/@xmachines/play-router/xstate/functions/getRouteMappings.md +1 -1
  213. package/api/@xmachines/play-router/xstate/functions/getTransitionReachableRoutes.md +1 -1
  214. package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +1 -1
  215. package/api/@xmachines/play-router/xstate/functions/machineToGraph.md +1 -1
  216. package/api/@xmachines/play-router/xstate/functions/routeExists.md +1 -1
  217. package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +3 -3
  218. package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +5 -5
  219. package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +1 -1
  220. package/api/@xmachines/play-solid/README.md +35 -14
  221. package/api/@xmachines/play-solid/functions/defineRegistry.md +5 -5
  222. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  223. package/api/@xmachines/play-solid/functions/useBoundProp.md +8 -5
  224. package/api/@xmachines/play-solid/functions/useFieldValidation.md +6 -4
  225. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  226. package/api/@xmachines/play-solid/functions/useStateBinding.md +5 -3
  227. package/api/@xmachines/play-solid/functions/useStateValue.md +5 -3
  228. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +10 -10
  229. package/api/@xmachines/play-solid/interfaces/ComponentContext.md +9 -8
  230. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
  231. package/api/@xmachines/play-solid/interfaces/RenderErrorInfo.md +16 -0
  232. package/api/@xmachines/play-solid/interfaces/RendererProps.md +7 -7
  233. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
  234. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
  235. package/api/@xmachines/play-solid/type-aliases/OnRenderError.md +27 -0
  236. package/api/@xmachines/play-solid/type-aliases/RenderErrorKind.md +21 -0
  237. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  238. package/api/@xmachines/play-solid/variables/ActorProvider.md +17 -3
  239. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  240. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  241. package/api/@xmachines/play-solid/variables/schema.md +35 -54
  242. package/api/@xmachines/play-solid-router/README.md +22 -6
  243. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  244. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +8 -8
  245. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
  246. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +3 -3
  247. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
  248. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
  249. package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +4 -4
  250. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +4 -4
  251. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  252. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  253. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  254. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  255. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  256. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
  257. package/api/@xmachines/play-svelte/README.md +18 -10
  258. package/api/@xmachines/play-svelte/functions/defineRegistry.md +3 -4
  259. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  260. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  261. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  262. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +12 -12
  263. package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +10 -8
  264. package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +10 -8
  265. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +8 -8
  266. package/api/@xmachines/play-svelte/interfaces/DefineRegistryResult.md +15 -0
  267. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +14 -14
  268. package/api/@xmachines/play-svelte/interfaces/RenderErrorInfo.md +16 -0
  269. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
  270. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
  271. package/api/@xmachines/play-svelte/type-aliases/OnRenderError.md +27 -0
  272. package/api/@xmachines/play-svelte/type-aliases/RenderErrorKind.md +21 -0
  273. package/api/@xmachines/play-svelte-spa-router/README.md +9 -5
  274. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
  275. package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +7 -7
  276. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  277. package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +3 -3
  278. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +8 -8
  279. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
  280. package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +4 -4
  281. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +4 -4
  282. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  283. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  284. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +6 -6
  285. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  286. package/api/@xmachines/play-sveltekit-router/README.md +65 -13
  287. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
  288. package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +29 -19
  289. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  290. package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +3 -3
  291. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -16
  292. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  293. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +7 -7
  294. package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +4 -4
  295. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +4 -4
  296. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  297. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  298. package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +6 -6
  299. package/api/@xmachines/play-sveltekit-router/interfaces/SvelteKitRouterBridgeOptions.md +25 -0
  300. package/api/@xmachines/play-sveltekit-router/type-aliases/ShallowNavigation.md +21 -0
  301. package/api/@xmachines/play-tanstack-react-router/README.md +34 -16
  302. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  303. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +7 -7
  304. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
  305. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  306. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
  307. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +9 -9
  308. package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +4 -4
  309. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +4 -4
  310. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  311. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  312. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  313. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  314. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  315. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
  316. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
  317. package/api/@xmachines/play-tanstack-router/README.md +5 -3
  318. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +7 -7
  319. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  320. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
  321. package/api/@xmachines/play-tanstack-solid-router/README.md +45 -11
  322. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  323. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +7 -7
  324. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
  325. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +7 -7
  326. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
  327. package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +4 -4
  328. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +4 -4
  329. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  330. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  331. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  332. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  333. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  334. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
  335. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
  336. package/api/@xmachines/play-url/README.md +1 -1
  337. package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +5 -5
  338. package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +5 -5
  339. package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +6 -6
  340. package/api/@xmachines/play-url/index/functions/buildPath.md +1 -1
  341. package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
  342. package/api/@xmachines/play-url/index/functions/createLruCache.md +1 -1
  343. package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
  344. package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +1 -1
  345. package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
  346. package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +1 -1
  347. package/api/@xmachines/play-url/index/functions/isDotSegment.md +1 -1
  348. package/api/@xmachines/play-url/index/functions/joinBasePath.md +1 -1
  349. package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
  350. package/api/@xmachines/play-url/index/functions/parsePattern.md +1 -1
  351. package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
  352. package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
  353. package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +1 -1
  354. package/api/@xmachines/play-url/index/functions/sanitizePathname.md +1 -1
  355. package/api/@xmachines/play-url/index/functions/splitLocation.md +1 -1
  356. package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
  357. package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +3 -3
  358. package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +3 -3
  359. package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +7 -7
  360. package/api/@xmachines/play-url/index/interfaces/GroupPart.md +4 -4
  361. package/api/@xmachines/play-url/index/interfaces/KeyValueCache.md +3 -3
  362. package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +3 -3
  363. package/api/@xmachines/play-url/index/interfaces/ParamPart.md +7 -7
  364. package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +2 -2
  365. package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +12 -12
  366. package/api/@xmachines/play-url/index/interfaces/PatternParam.md +4 -4
  367. package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +3 -3
  368. package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +5 -5
  369. package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +1 -1
  370. package/api/@xmachines/play-url/index/type-aliases/PathParams.md +1 -1
  371. package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
  372. package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
  373. package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
  374. package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
  375. package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
  376. package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
  377. package/api/@xmachines/play-view/README.md +92 -35
  378. package/api/@xmachines/play-view/errors/README.md +2 -0
  379. package/api/@xmachines/play-view/errors/classes/InvalidViewOutletError.md +204 -0
  380. package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +5 -5
  381. package/api/@xmachines/play-view/errors/classes/ViewElementKeyCollisionError.md +181 -0
  382. package/api/@xmachines/play-view/index/README.md +16 -4
  383. package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +10 -9
  384. package/api/@xmachines/play-view/index/functions/bindStoreHandlers.md +34 -0
  385. package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
  386. package/api/@xmachines/play-view/index/functions/composeViews.md +41 -0
  387. package/api/@xmachines/play-view/index/functions/createActorProxy.md +39 -0
  388. package/api/@xmachines/play-view/index/functions/createRenderErrorBinding.md +35 -0
  389. package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
  390. package/api/@xmachines/play-view/index/functions/createViewSession.md +29 -0
  391. package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
  392. package/api/@xmachines/play-view/index/functions/forwardRenderError.md +45 -0
  393. package/api/@xmachines/play-view/index/functions/guardContextWrites.md +1 -1
  394. package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
  395. package/api/@xmachines/play-view/index/functions/reuseComposedState.md +1 -1
  396. package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
  397. package/api/@xmachines/play-view/index/functions/typedSpec.md +11 -11
  398. package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +8 -8
  399. package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +5 -5
  400. package/api/@xmachines/play-view/index/interfaces/ComposedView.md +16 -0
  401. package/api/@xmachines/play-view/index/interfaces/HandlerFactory.md +19 -0
  402. package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +12 -8
  403. package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
  404. package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +5 -5
  405. package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +2 -2
  406. package/api/@xmachines/play-view/index/interfaces/ViewMeta.md +25 -0
  407. package/api/@xmachines/play-view/index/interfaces/ViewOutlet.md +23 -0
  408. package/api/@xmachines/play-view/index/interfaces/ViewSession.md +155 -0
  409. package/api/@xmachines/play-view/index/interfaces/ViewSessionOptions.md +12 -0
  410. package/api/@xmachines/play-view/index/interfaces/ViewSessionSnapshot.md +23 -0
  411. package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +22 -3
  412. package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +7 -6
  413. package/api/@xmachines/play-view/index/interfaces/ViewTree.md +15 -0
  414. package/api/@xmachines/play-view/index/interfaces/ViewTreeChild.md +14 -0
  415. package/api/@xmachines/play-view/index/interfaces/Viewable.md +4 -4
  416. package/api/@xmachines/play-view/index/type-aliases/StateUpdater.md +21 -0
  417. package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
  418. package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
  419. package/api/@xmachines/play-vue/README.md +21 -18
  420. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  421. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  422. package/api/@xmachines/play-vue/functions/useBoundProp.md +10 -4
  423. package/api/@xmachines/play-vue/functions/useFieldValidation.md +12 -5
  424. package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
  425. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +8 -8
  426. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
  427. package/api/@xmachines/play-vue/interfaces/RenderErrorInfo.md +16 -0
  428. package/api/@xmachines/play-vue/interfaces/RendererProps.md +7 -7
  429. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
  430. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
  431. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  432. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  433. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  434. package/api/@xmachines/play-vue/type-aliases/OnRenderError.md +27 -0
  435. package/api/@xmachines/play-vue/type-aliases/RenderErrorKind.md +21 -0
  436. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  437. package/api/@xmachines/play-vue/variables/Renderer.md +3 -3
  438. package/api/@xmachines/play-vue-router/README.md +18 -11
  439. package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +4 -4
  440. package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +4 -4
  441. package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +4 -4
  442. package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +7 -7
  443. package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +7 -7
  444. package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +4 -4
  445. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +4 -4
  446. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +3 -3
  447. package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +3 -3
  448. package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +1 -1
  449. package/api/@xmachines/play-xstate/README.md +87 -28
  450. package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +4 -4
  451. package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +5 -5
  452. package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +4 -4
  453. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +5 -5
  454. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +5 -5
  455. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +7 -7
  456. package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +6 -6
  457. package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +6 -6
  458. package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +10 -10
  459. package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
  460. package/api/@xmachines/play-xstate/index/functions/definePlayer.md +2 -2
  461. package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +4 -4
  462. package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +2 -2
  463. package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +7 -7
  464. package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
  465. package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
  466. package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
  467. package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +1 -1
  468. package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +1 -1
  469. package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +1 -1
  470. package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
  471. package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
  472. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +5 -5
  473. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +12 -15
  474. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
  475. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
  476. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
  477. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
  478. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
  479. package/api/@xmachines/play-xstate/with-view/functions/withView.md +2 -4
  480. package/api/@xmachines/shared/README.md +1 -0
  481. package/api/@xmachines/shared/vite-aliases/README.md +7 -0
  482. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +11 -5
  483. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutput.md +37 -0
  484. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutputFile.md +28 -0
  485. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  486. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  487. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  488. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
  489. package/api/@xmachines/shared/vite-aliases/functions/xmTestTarget.md +26 -0
  490. package/api/@xmachines/shared/vite-aliases/type-aliases/XmTestTarget.md +15 -0
  491. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  492. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +5 -1
  493. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
  494. package/api/llms.txt +8 -4
  495. package/contributing/architecture.md +96 -51
  496. package/contributing/configuration.md +55 -14
  497. package/contributing/deployment.md +3 -3
  498. package/contributing/development.md +31 -4
  499. package/contributing/migrating-to-play-atom.md +11 -5
  500. package/contributing/testing.md +93 -33
  501. package/examples/@xmachines/play-dom-demo/README.md +2 -2
  502. package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +9 -9
  503. package/examples/@xmachines/play-dom-demo/functions/createConfirmDialog.md +1 -1
  504. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  505. package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
  506. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  507. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  508. package/examples/@xmachines/play-dom-demo/variables/Button.md +1 -1
  509. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  510. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  511. package/examples/@xmachines/play-dom-demo/variables/Field.md +1 -1
  512. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  513. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  514. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  515. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  516. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  517. package/examples/@xmachines/play-dom-demo/variables/Panel.md +1 -1
  518. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  519. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  520. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  521. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  522. package/examples/@xmachines/play-dom-demo/variables/demoComponents.md +15 -15
  523. package/examples/@xmachines/play-dom-router-demo/README.md +4 -3
  524. package/examples/@xmachines/play-react-demo/README.md +2 -2
  525. package/examples/@xmachines/play-react-demo/functions/createAuthActionHandlers.md +9 -9
  526. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  527. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  528. package/examples/@xmachines/play-react-demo/variables/Button.md +1 -1
  529. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  530. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  531. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
  532. package/examples/@xmachines/play-react-demo/variables/Field.md +1 -1
  533. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  534. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  535. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  536. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  537. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  538. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  539. package/examples/@xmachines/play-react-demo/variables/Panel.md +1 -1
  540. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  541. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  542. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
  543. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  544. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  545. package/examples/@xmachines/play-react-demo/variables/demoComponents.md +15 -15
  546. package/examples/@xmachines/play-react-router-demo/README.md +4 -3
  547. package/examples/@xmachines/play-solid-demo/README.md +3 -3
  548. package/examples/@xmachines/play-solid-demo/functions/createAuthActionHandlers.md +9 -9
  549. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  550. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  551. package/examples/@xmachines/play-solid-demo/variables/Button.md +1 -1
  552. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  553. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  554. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
  555. package/examples/@xmachines/play-solid-demo/variables/Field.md +1 -1
  556. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  557. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  558. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  559. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  560. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  561. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  562. package/examples/@xmachines/play-solid-demo/variables/Panel.md +1 -1
  563. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  564. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  565. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
  566. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  567. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +190 -277
  568. package/examples/@xmachines/play-solid-demo/variables/demoComponents.md +17 -17
  569. package/examples/@xmachines/play-solid-router-demo/README.md +9 -3
  570. package/examples/@xmachines/play-svelte-demo/README.md +1 -1
  571. package/examples/@xmachines/play-svelte-demo/functions/createAuthActionHandlers.md +9 -9
  572. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
  573. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +190 -277
  574. package/examples/@xmachines/play-svelte-demo/variables/demoComponents.md +15 -15
  575. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +1 -1
  576. package/examples/@xmachines/play-sveltekit-router-demo/README.md +1 -1
  577. package/examples/@xmachines/play-tanstack-react-router-demo/README.md +3 -2
  578. package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +9 -8
  579. package/examples/@xmachines/play-vue-demo/README.md +2 -2
  580. package/examples/@xmachines/play-vue-demo/functions/createAuthActionHandlers.md +9 -9
  581. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
  582. package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
  583. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
  584. package/examples/@xmachines/play-vue-demo/variables/demoComponents.md +1 -1
  585. package/examples/@xmachines/play-vue-router-demo/README.md +3 -3
  586. package/examples/README.md +1 -1
  587. package/examples/form-validation.md +17 -13
  588. package/examples/multi-router-integration.md +269 -148
  589. package/examples/routing-patterns.md +44 -9
  590. package/examples/traffic-light.md +7 -3
  591. package/guides/README.md +5 -4
  592. package/guides/actor-model.md +41 -23
  593. package/guides/atoms.md +52 -12
  594. package/guides/getting-started.md +65 -19
  595. package/guides/inspector.md +72 -12
  596. package/guides/routing.md +44 -45
  597. package/guides/state-machines.md +102 -15
  598. package/guides/views.md +367 -0
  599. package/package.json +6 -6
  600. package/rfc/play.md +55 -21
  601. package/api/@xmachines/play-view/index/functions/createFailureLatch.md +0 -20
  602. package/api/@xmachines/play-view/index/functions/sameViewInputs.md +0 -25
  603. package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +0 -60
  604. package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +0 -19
@@ -6,7 +6,7 @@
6
6
  function xmSvelteRunes(): object;
7
7
  ```
8
8
 
9
- Defined in: [vite-aliases.ts:334](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vite-aliases.ts#L334)
9
+ Defined in: [vite-aliases.ts:474](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/shared/config/vite-aliases.ts#L474)
10
10
 
11
11
  Svelte plugin options that enforce runes mode for workspace sources only.
12
12
 
@@ -35,4 +35,4 @@ one and change the other.
35
35
 
36
36
  | Name | Type | Defined in |
37
37
  | ------------------------- | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
38
- | `dynamicCompileOptions()` | (`data`) => \| \{ `runes`: `boolean`; \} \| `undefined` | [vite-aliases.ts:335](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vite-aliases.ts#L335) |
38
+ | `dynamicCompileOptions()` | (`data`) => \| \{ `runes`: `boolean`; \} \| `undefined` | [vite-aliases.ts:475](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/shared/config/vite-aliases.ts#L475) |
@@ -0,0 +1,26 @@
1
+ [API](../../../../README.md) / [@xmachines/shared](../../README.md) / [vite-aliases](../README.md) / xmTestTarget
2
+
3
+ # Function: xmTestTarget()
4
+
5
+ ```ts
6
+ function xmTestTarget(env?): XmTestTarget;
7
+ ```
8
+
9
+ Defined in: [vite-aliases.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/shared/config/vite-aliases.ts#L25)
10
+
11
+ Reads the test target from the `XM_TEST_TARGET` environment variable.
12
+
13
+ The variable is the one switch of the dist run. The config helpers of this package read
14
+ it, so no package config holds a second copy of the dist setup. An unset or empty variable
15
+ gives `source`. Any other value than `source` or `dist` is an error: a typo must not run
16
+ the suite against the source and report the result as a run against the build.
17
+
18
+ ## Parameters
19
+
20
+ | Parameter | Type | Default value | Description |
21
+ | --------- | ------------ | ------------- | ------------------------------------------------------ |
22
+ | `env` | `ProcessEnv` | `process.env` | The environment to read. The default is `process.env`. |
23
+
24
+ ## Returns
25
+
26
+ [`XmTestTarget`](../type-aliases/XmTestTarget.md)
@@ -0,0 +1,15 @@
1
+ [API](../../../../README.md) / [@xmachines/shared](../../README.md) / [vite-aliases](../README.md) / XmTestTarget
2
+
3
+ # Type Alias: XmTestTarget
4
+
5
+ ```ts
6
+ type XmTestTarget = "source" | "dist";
7
+ ```
8
+
9
+ Defined in: [vite-aliases.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/shared/config/vite-aliases.ts#L13)
10
+
11
+ The code that a test run loads for each published `@xmachines/*` package.
12
+
13
+ - `source` — the TypeScript under `src/`. `pnpm test` runs this way, and it needs no build.
14
+ - `dist` — the build output under `dist/`, through the `exports` map of each package, as
15
+ a consumer gets it. `pnpm run test:dist` runs this way, after `pnpm run build`.
@@ -6,7 +6,7 @@
6
6
  function defineXmBrowserConfig(importMetaUrl, overrides, options?): UserConfig;
7
7
  ```
8
8
 
9
- Defined in: [vitest.ts:209](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vitest.ts#L209)
9
+ Defined in: [vitest.ts:224](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/shared/config/vitest.ts#L224)
10
10
 
11
11
  Create a Vitest browser-mode config with XMachines workspace defaults.
12
12
 
@@ -6,7 +6,7 @@
6
6
  function defineXmVitestConfig(importMetaUrl, overrides): UserConfig;
7
7
  ```
8
8
 
9
- Defined in: [vitest.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vitest.ts#L65)
9
+ Defined in: [vitest.ts:76](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/shared/config/vitest.ts#L76)
10
10
 
11
11
  Create a Vitest config with XMachines workspace defaults.
12
12
 
@@ -14,6 +14,10 @@ What this applies automatically:
14
14
 
15
15
  - `resolve.alias` from `xmAliases(importMetaUrl)` so `@xmachines/*` imports
16
16
  resolve to source in local/dev test runs.
17
+ - In the dist run (`XM_TEST_TARGET=dist`), the `xmBuildOutput` plugin, and an
18
+ alias map with no published package in it: each `@xmachines/*` import then
19
+ resolves through its `exports` map to `dist/`, and each `src/` file that a
20
+ test imports by path resolves to its counterpart in `dist/`.
17
21
  - `config/vitest.setup.ts` when missing.
18
22
  - `config/vitest.node.setup.ts` for non-browser projects when missing.
19
23
  - `pool: "vmThreads"` for jsdom projects that declare no pool.
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: XmBrowserConfigOptions
4
4
 
5
- Defined in: [vitest.ts:159](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vitest.ts#L159)
5
+ Defined in: [vitest.ts:174](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/shared/config/vitest.ts#L174)
6
6
 
7
7
  Options for [defineXmBrowserConfig](../functions/defineXmBrowserConfig.md) that live outside the plain
8
8
  Vitest config overrides.
@@ -11,6 +11,6 @@ Vitest config overrides.
11
11
 
12
12
  | Property | Type | Description | Defined in |
13
13
  | -------------------------------------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
14
- | <a id="property-base"></a> `base?` | `UserConfig` | Base Vite config to layer the browser test config on top of (typically a demo's `vite.config.ts`). When set, the base is expected to provide its own `resolve`/`plugins`, so the `cacheDir` and `resolve` defaults are not applied — mirroring the previous `mergeConfig(viteConfig, ...)` pattern in demo browser configs. | [vitest.ts:167](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vitest.ts#L167) |
15
- | <a id="property-optimizedeps"></a> `optimizeDeps?` | `string`[] | Extra package specifiers to pre-bundle via `xmOptimizeDeps` (e.g. `["@xmachines/json-render-vue", "@xmachines/json-render-vue/schema"]`). Ignored when `overrides.optimizeDeps` is set, which then replaces the default `xmOptimizeDeps()` wholesale. | [vitest.ts:174](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vitest.ts#L174) |
16
- | <a id="property-resolve"></a> `resolve?` | `Partial`\<`ResolveOptions` & `object`\> | Extra resolve options forwarded to `xmResolve` (e.g. `conditions` or additional `alias` entries). Not applied when `base` is set — the base config owns `resolve` in that layout. | [vitest.ts:180](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vitest.ts#L180) |
14
+ | <a id="property-base"></a> `base?` | `UserConfig` | Base Vite config to layer the browser test config on top of (typically a demo's `vite.config.ts`). When set, the base is expected to provide its own `resolve`/`plugins`, so the `cacheDir` and `resolve` defaults are not applied — mirroring the previous `mergeConfig(viteConfig, ...)` pattern in demo browser configs. | [vitest.ts:182](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/shared/config/vitest.ts#L182) |
15
+ | <a id="property-optimizedeps"></a> `optimizeDeps?` | `string`[] | Extra package specifiers to pre-bundle via `xmOptimizeDeps` (e.g. `["@xmachines/json-render-vue", "@xmachines/json-render-vue/schema"]`). Ignored when `overrides.optimizeDeps` is set, which then replaces the default `xmOptimizeDeps()` wholesale. | [vitest.ts:189](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/shared/config/vitest.ts#L189) |
16
+ | <a id="property-resolve"></a> `resolve?` | `Partial`\<`ResolveOptions` & `object`\> | Extra resolve options forwarded to `xmResolve` (e.g. `conditions` or additional `alias` entries). Not applied when `base` is set — the base config owns `resolve` in that layout. | [vitest.ts:195](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/shared/config/vitest.ts#L195) |
package/api/llms.txt CHANGED
@@ -64,8 +64,7 @@ import { withRouting } from '@xmachines/play-xstate/routing';
64
64
  import { withView } from '@xmachines/play-xstate/view';
65
65
  import { createRouteMapFromTree, extractRouteParams } from '@xmachines/play-router';
66
66
  import { extractMachineRoutes } from '@xmachines/play-router/xstate';
67
- import { defineRegistry } from '@xmachines/json-render-react';
68
- import { PlayRenderer } from '@xmachines/play-react';
67
+ import { PlayUIProvider, PlayRenderer, defineRegistry } from '@xmachines/play-react';
69
68
 
70
69
  const createPlayer = definePlayer({ machine, actor: compose(PlayerActor, withRouting, withView) });
71
70
  const actor = createPlayer();
@@ -77,6 +76,11 @@ const routeTree = extractMachineRoutes(machine);
77
76
  const routeMap = createRouteMapFromTree(routeTree);
78
77
  const stateId = routeMap.getStateIdByPath(currentRoute ?? '/');
79
78
 
80
- const { registry } = defineRegistry(catalog, { components, actions });
81
- <PlayRenderer actor={actor} registry={registry} actions={{ login: 'auth.login' }} />
79
+ const registryResult = defineRegistry(catalog, {
80
+ components,
81
+ actions: { login: async ({ username }) => actor.send({ type: 'auth.login', username }) },
82
+ });
83
+ <PlayUIProvider actor={actor} registryResult={registryResult}>
84
+ <PlayRenderer />
85
+ </PlayUIProvider>
82
86
  ```
@@ -35,7 +35,7 @@ graph TD
35
35
  end
36
36
 
37
37
  subgraph ViewHalf["The View Half"]
38
- view["@xmachines/play-view\n(Viewable, PlaySpec, the view store lifecycle)"]
38
+ view["@xmachines/play-view\n(Viewable, PlaySpec, the view session)"]
39
39
  end
40
40
 
41
41
  subgraph Concrete["Concrete Implementations"]
@@ -175,29 +175,37 @@ flowchart TD
175
175
  C["watchRouterChanges() subscribed"]
176
176
  D["getInitialRouterPath() reads current browser URL"]
177
177
  E["resolves sanitized URL path → stateId via routeMap"]
178
- F{"Compare stateId vs actor.initialRoute"}
178
+ F{"Compare the URL, path and query, vs actor.initialRoute"}
179
179
  G["syncActorFromRouter()\nrouter wins — deep-link"]
180
180
  H["navigateRouter()\nactor wins — restore"]
181
181
 
182
182
  A --> B --> C --> D --> E --> F
183
- F -->|"URL ≠ machine initial state"| G
184
- F -->|"URL = machine initial state"| H
183
+ F -->|"URL ≠ initial URL (path or query)"| G
184
+ F -->|"URL = initial URL"| H
185
185
  ```
186
186
 
187
- ### View Prop Enrichment
187
+ ### View derivation
188
188
 
189
189
  ```mermaid
190
190
  flowchart TD
191
- A["XState snapshot.getMeta()"]
192
- B["resolveViewMeta(meta)\nfinds deepest meta.view with root + elements\n(its record key becomes viewKey)"]
191
+ A["XState snapshot"]
192
+ T["resolveViewTree(root, snapshot.value)\na view with outlets composes the active children that an outlet shows;\nany other node takes its deepest view, the routed region first\nviewKey = the id of the state of the selected view"]
193
+ G["composeViews(tree) in play-view\nkept for each tree of each machine: elements, authored state, viewParts\nviewKey = the id of the outermost composing state"]
193
194
  C["snapshot.context\nprojected wholesale as the /context slice"]
194
195
  D["composePlayState(spec.state, slice)\nstate: { ...authored, context: slice }"]
195
- E["reuseComposedState (in the currentView atom)\ncarry previous state reference when the slice is value-unchanged"]
196
+ E["reuseComposedState (the emit gate of the currentView atom)\nthe previous spec when nothing changed,\nits state reference when the slice is value-unchanged"]
196
197
  F["Derived PlaySpec (with viewKey) is the value of the currentView atom"]
197
198
 
198
- A --> B --> C --> D --> E --> F
199
+ A --> T
200
+ T -->|"the selected view composes"| G --> C
201
+ T -->|"a view without outlets"| C
202
+ C --> D --> E --> F
199
203
  ```
200
204
 
205
+ 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. play-xstate keeps one result of `composeViews` for each tree of views of each machine. A context assign therefore emits the same `elements` and `viewParts` references, and the emit gate of `withView` compares the top-level fields alone. One walk derives every view: a machine without `outlets` is its simple case, in which the deepest view wins. 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.
206
+
207
+ Each provider reads the view through `createViewSession` of play-view. The session resolves the store when the actor emits, when the host hands over a new actor or controlled store, and for a retry — never in a render. A provider binds the snapshot of the session to its framework: `useState` and a layout effect in play-react, a `shallowRef` in play-vue, a signal in play-solid, `$state.raw` in play-svelte, and a listener in play-dom. The subtree of the view is keyed on the `generation` of the store, and the error boundary resets on a new snapshot.
208
+
201
209
  **State atoms on the actor:**
202
210
 
203
211
  | Atom | Type | Description |
@@ -226,6 +234,8 @@ Base class for the typed runtime errors of every Play package. It extends [`Base
226
234
  import { PlayError } from "@xmachines/play/errors";
227
235
  import { RouterSyncError } from "@xmachines/play-router/errors";
228
236
 
237
+ declare const err: unknown;
238
+
229
239
  if (err instanceof RouterSyncError) {
230
240
  /* err.scope, err.code, err.cause */
231
241
  }
@@ -245,7 +255,7 @@ Optional capability interface. Exposes `currentView: ReadonlyAtom<PlaySpec | nul
245
255
 
246
256
  ### [`PlaySpec`](../api/@xmachines/play-view/index/interfaces/PlaySpec.md)
247
257
 
248
- 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).
249
259
 
250
260
  ### [`PlayerActor<TMachine>`](../api/@xmachines/play-xstate/index/classes/PlayerActor.md)
251
261
 
@@ -254,6 +264,13 @@ Concrete XState v5 actor. It extends XState's own `Actor` directly, and it imple
254
264
  [`Routable`](../api/@xmachines/play-router/index/interfaces/Routable.md) and [`Viewable`](../api/@xmachines/play-view/index/interfaces/Viewable.md) are OPTIONAL capabilities, and the class implements neither. Each one is a mixin behind its own entry point — [`@xmachines/play-xstate/routing`](../api/@xmachines/play-xstate/README.md) and [`@xmachines/play-xstate/view`](../api/@xmachines/play-xstate/README.md) — and `compose` builds the class that an application needs:
255
265
 
256
266
  ```typescript
267
+ import type { AnyStateMachine } from "xstate";
268
+ import { compose, definePlayer, PlayerActor } from "@xmachines/play-xstate";
269
+ import { withRouting } from "@xmachines/play-xstate/routing";
270
+ import { withView } from "@xmachines/play-xstate/view";
271
+
272
+ declare const machine: AnyStateMachine;
273
+
257
274
  definePlayer({ machine, actor: compose(PlayerActor, withRouting, withView) });
258
275
  ```
259
276
 
@@ -261,14 +278,18 @@ The core imports neither capability, so an application that declares no route lo
261
278
 
262
279
  **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.
263
280
 
264
- 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.
281
+ A capability that must run an EFFECT on a transition overrides `onSnapshot`, and the override calls `super.onSnapshot()` first.
265
282
 
266
283
  ### [`definePlayer(config)`](../api/@xmachines/play-xstate/index/functions/definePlayer.md) → [`PlayerFactory`](../api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md)
267
284
 
268
285
  Factory creator. Each call constructs one `PlayerActor`, which is itself the XState actor and derives its own `initialRoute` from its pre-start snapshot. Restoring a snapshot is the exception: the default initial route can only come from XState's pure `initialTransition` helper, whose inert actor scope constructs a throwaway actor and evaluates the initial transition twice. Returns `(input?, restore?) => PlayerActor<TMachine>`.
269
286
 
270
287
  ```typescript
271
- import { definePlayer } from "@xmachines/play-xstate";
288
+ import type { AnyStateMachine } from "xstate";
289
+ import { definePlayer, type PlayerOptions } from "@xmachines/play-xstate";
290
+
291
+ declare const machine: AnyStateMachine;
292
+ declare const options: PlayerOptions<AnyStateMachine>;
272
293
 
273
294
  const createPlayer = definePlayer({ machine, options });
274
295
  const actor = createPlayer(); // or createPlayer(input) or createPlayer(undefined, { snapshot })
@@ -280,6 +301,8 @@ actor.start();
280
301
  Abstract base class capturing all common router bridge logic. Template Method pattern — subclasses implement exactly three abstract methods: `navigateRouter(path)`, `watchRouterChanges()`, `unwatchRouterChanges()`. Manages `isConnected`, `lastSyncedPath` (echo suppression), `isProcessingNavigation` (re-entrant guard redirect prevention), and `routeWatcher` lifecycle. Enforces one-bridge-per-actor via a module-level `WeakMap`.
281
302
 
282
303
  ```typescript
304
+ import { RouterBridgeBase } from "@xmachines/play-router";
305
+
283
306
  class MyRouterBridge extends RouterBridgeBase {
284
307
  protected navigateRouter(path: string): void {
285
308
  /* push URL */
@@ -346,7 +369,7 @@ Per-view component state is managed by `@xstate/store`: a fresh store atom is cr
346
369
 
347
370
  All eight router adapter packages follow the Template Method pattern via [`RouterBridgeBase`](../api/@xmachines/play-router/index/classes/RouterBridgeBase.md). Each adapter implements exactly three abstract methods:
348
371
 
349
- ```typescript
372
+ ```typescript fragment
350
373
  // How to tell the framework router to change URL
351
374
  protected abstract navigateRouter(path: string): void;
352
375
 
@@ -382,7 +405,7 @@ packages/
382
405
  ├── play-actor/ # Layer 1: the PlayActor contract — state and send, and nothing else
383
406
  ├── play-pattern/ # Layer 1: the route pattern language — one parse, and the path it builds back
384
407
  ├── play-url/ # Layer 2: the URL layer — the URLPattern API, a base path, framework params
385
- ├── play-view/ # Layer 2: Viewable, PlaySpec, the view store lifecycle, the context projection
408
+ ├── play-view/ # Layer 2: Viewable, PlaySpec, the view session, the context projection
386
409
  │
387
410
  ├── play-xstate/ # Layer 4: Concrete XState v5 actor: definePlayer, PlayerActor
388
411
  │ └── src/
@@ -436,7 +459,7 @@ packages/<name>/
436
459
 
437
460
  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.
438
461
 
439
- **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.
462
+ **The layer table and the diagram live in [development.md](development.md#build-layers).**
440
463
 
441
464
  Two facts about the graph belong to this document, because they are architecture and not build order:
442
465
 
@@ -516,36 +539,49 @@ import { InvalidEventError } from "@xmachines/play-xstate/errors";
516
539
 
517
540
  ## Application Bootstrap (React example)
518
541
 
519
- ```typescript
542
+ ```tsx
543
+ import { createRootRoute, createRouter } from "@tanstack/react-router";
520
544
  import { setup } from "xstate";
521
545
  import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
522
546
  import { formatPlayRouteTransitions, withRouting } from "@xmachines/play-xstate/routing";
523
547
  import { withView } from "@xmachines/play-xstate/view";
524
548
  import { extractMachineRoutes } from "@xmachines/play-router/xstate";
525
549
  import { createRouteMapFromTree, PlayRouterProvider } from "@xmachines/play-tanstack-react-router";
526
- import { PlayUIProvider, PlayRenderer, defineRegistry } from "@xmachines/play-react";
550
+ import { PlayUIProvider, PlayRenderer, type PlayUIProviderProps } from "@xmachines/play-react";
527
551
 
528
552
  // 1. Define machine — meta.route declares virtual routes; meta.view declares UI specs
529
553
  const machineConfig = formatPlayRouteTransitions({
530
- id: "app",
531
- initial: "home",
532
- context: { params: {}, query: {} },
533
- states: {
534
- home: {
535
- id: "home",
536
- meta: {
537
- route: "/",
538
- view: { root: "home", elements: { home: { type: "HomePage", props: {}, children: [] } } }
539
- }
540
- },
541
- profile: {
542
- id: "profile",
543
- meta: {
544
- route: "/profile/:userId",
545
- view: { root: "profile", elements: { profile: { type: "ProfilePage", props: { userId: undefined }, children: [] } } }
546
- }
547
- },
548
- },
554
+ id: "app",
555
+ initial: "home",
556
+ context: { params: {}, query: {} },
557
+ states: {
558
+ home: {
559
+ id: "home",
560
+ meta: {
561
+ route: "/",
562
+ view: {
563
+ root: "home",
564
+ elements: { home: { type: "HomePage", props: {}, children: [] } },
565
+ },
566
+ },
567
+ },
568
+ profile: {
569
+ id: "profile",
570
+ meta: {
571
+ route: "/profile/:userId",
572
+ view: {
573
+ root: "profile",
574
+ elements: {
575
+ profile: {
576
+ type: "ProfilePage",
577
+ props: { userId: undefined },
578
+ children: [],
579
+ },
580
+ },
581
+ },
582
+ },
583
+ },
584
+ },
549
585
  });
550
586
 
551
587
  const machine = setup({}).createMachine(machineConfig);
@@ -559,18 +595,26 @@ const createPlayer = definePlayer({ machine, actor: compose(PlayerActor, withRou
559
595
  const actor = createPlayer();
560
596
  actor.start();
561
597
 
562
- // 4. Define component registry for json-render
563
- const registryResult = defineRegistry({ /* components */ });
598
+ // 4. Create the framework router. The machine owns the routes, so the route tree is one root route
599
+ const router = createRouter({ routeTree: createRootRoute() });
564
600
 
565
- // 5. Render — framework providers wire actor → router → view
601
+ // 5. Define component registry for json-render: defineRegistry(catalog, { components })
602
+ declare const registryResult: PlayUIProviderProps["registryResult"];
603
+
604
+ // 6. Render — the router provider wires actor → router, and its renderer callback renders the view
566
605
  function App() {
567
- return (
568
- <PlayRouterProvider actor={actor} router={router} routeMap={routeMap}>
569
- <PlayUIProvider actor={actor} registryResult={registryResult}>
570
- <PlayRenderer />
571
- </PlayUIProvider>
572
- </PlayRouterProvider>
573
- );
606
+ return (
607
+ <PlayRouterProvider
608
+ actor={actor}
609
+ router={router}
610
+ routeMap={routeMap}
611
+ renderer={(currentActor) => (
612
+ <PlayUIProvider actor={currentActor} registryResult={registryResult}>
613
+ <PlayRenderer />
614
+ </PlayUIProvider>
615
+ )}
616
+ />
617
+ );
574
618
  }
575
619
  ```
576
620
 
@@ -578,7 +622,7 @@ function App() {
578
622
 
579
623
  ### Importing `@xstate/store` directly
580
624
 
581
- ```typescript
625
+ ```typescript fragment
582
626
  // ❌ Wrong — bypasses the atom isolation layer, and names the engine in your own .d.ts
583
627
  import { createAtom } from "@xstate/store";
584
628
 
@@ -588,12 +632,13 @@ import { createAtom } from "@xmachines/play-atom";
588
632
 
589
633
  ### Using framework state for business logic
590
634
 
591
- ```typescript
635
+ ```typescript fragment
592
636
  // ❌ Wrong — violates INV-03 (Atom-Only Reactivity) and INV-04 (Passive Infrastructure)
593
637
  const [currentUser, setCurrentUser] = useState(null);
594
638
 
595
- // ✅ Correct — observe the actor atom directly
596
- const currentUser = useActorSelector(actor, (s) => s.context.currentUser);
639
+ // ✅ Correct — observe the actor atom directly; React state only triggers the render
640
+ const [currentUser, setCurrentUser] = useState(actor.state.get().context.currentUser);
641
+ useAtomEffect([actor.state], () => setCurrentUser(actor.state.get().context.currentUser));
597
642
  ```
598
643
 
599
644
  ### Calling `navigateRouter` inside `watchRouterChanges`
@@ -614,7 +659,7 @@ Custom `watchRouterChanges()` implementations that bypass `syncActorFromRouter()
614
659
 
615
660
  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.
616
661
 
617
- 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.*`.
662
+ 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.*`.
618
663
 
619
664
  **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.
620
665
 
@@ -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 |
@@ -96,19 +104,20 @@ All packages extend this base. Key compiler settings:
96
104
  | `exactOptionalPropertyTypes` | `true` | |
97
105
  | `declaration` | `true` | Emits `.d.ts` files |
98
106
  | `declarationMap` | `true` | Emits `.d.ts.map` for IDE go-to-source |
107
+ | `emitDeclarationOnly` | `true` | tsc emits no JavaScript: the Vite pass ships it |
99
108
  | `sourceMap` | `true` | |
100
109
  | `verbatimModuleSyntax` | `true` | Preserves `import type` |
101
110
  | `isolatedModules` | `true` | |
102
111
  | `removeComments` | `false` | Preserves JSDoc in output |
103
112
 
104
- **Two passes emit, and `emitDeclarationOnly` decides which one ships.** `build` is
105
- `vite build && tsc --build`, so tsc runs last.
113
+ **Vite writes the JavaScript, and tsc writes the declarations.** `build` is
114
+ `vite build && tsc --build`. The shared tsconfig sets `emitDeclarationOnly`, so tsc emits
115
+ only `.d.ts` and `.d.ts.map`, and the Vite pass is the published `dist/*.js` of every
116
+ package. `build.target` governs it.
106
117
 
107
- - **Fourteen publishable packages** let tsc emit JavaScript. tsc overwrites the Vite pass,
108
- and `compilerOptions.target` above is what governs the published `dist/*.js`.
109
- - **Five** — play-vue, play-svelte, play-solid, play-solid-router,
110
- play-tanstack-solid-router — set `emitDeclarationOnly`, so tsc emits only `.d.ts` and the
111
- Vite pass is the published JavaScript. `build.target` governs theirs.
118
+ Vite emits a module that holds only types as no file. Its `.d.ts` still ships. A test that
119
+ imports such a module by path, or an internal re-export module that no entry reaches, fails
120
+ in the dist run: import the module that holds the code.
112
121
 
113
122
  Vite inherits no target from the tsconfig. It reads `compilerOptions.target` for one
114
123
  purpose: to pick the `useDefineForClassFields` default that it gives the transform. The
@@ -118,7 +127,7 @@ explicit browser list for a demo app.
118
127
 
119
128
  Leave both stated, and keep both at ESNext for a library. A package that inherits the Vite
120
129
  default builds against a browser baseline, which is a second and lower ceiling than the one
121
- this table declares — and it is the ceiling that ships for those five.
130
+ this table declares — and it is the ceiling that ships.
122
131
 
123
132
  **A demo states an explicit browser list, and not `baseline-widely-available`.** A target
124
133
  controls syntax and adds no method. `baseline-widely-available` of Vite 8 names
@@ -157,6 +166,9 @@ The root config extends the shared base ([`@xmachines/shared/oxlint`](../api/@xm
157
166
 
158
167
  ```typescript
159
168
  // /oxlint.config.ts
169
+ import sharedConfig from "@xmachines/shared/oxlint";
170
+ import { defineConfig } from "oxlint";
171
+
160
172
  export default defineConfig({
161
173
  extends: [sharedConfig],
162
174
  ignorePatterns: [
@@ -221,6 +233,9 @@ The root config extends the shared base and adds workspace-level ignore patterns
221
233
 
222
234
  ```typescript
223
235
  // /oxfmt.config.ts
236
+ import sharedConfig from "@xmachines/shared/oxfmt";
237
+ import { defineConfig } from "oxfmt";
238
+
224
239
  export default defineConfig({
225
240
  ...sharedConfig,
226
241
  ignorePatterns: [
@@ -329,7 +344,7 @@ stays.
329
344
 
330
345
  **Location:** `/vitest.config.ts`
331
346
  **Tool:** [Vitest](https://vitest.dev/) `^4.1.5`
332
- **Run:** `pnpm test` / `pnpm run test:coverage`
347
+ **Run:** `pnpm test` / `pnpm run test:coverage` / `pnpm run test:dist`
333
348
 
334
349
  Root Vitest config is a **workspace coordinator** that lists all per-package configs under `test.projects`. It sets conservative monorepo-wide defaults:
335
350
 
@@ -354,8 +369,10 @@ Root Vitest config is a **workspace coordinator** that lists all per-package con
354
369
 
355
370
  Coverage provider: `v8`. Individual packages may declare higher per-package thresholds in their own `vitest.config.ts`.
356
371
 
372
+ The JUnit file is `test-results.xml`. CI runs the suites on the build output alone (`XM_TEST_TARGET=dist`), so each test counts one time in the merge request widget. In the dist run, `coverage.include` also names `packages/*/dist/**/*.js`, and `excludeAfterRemap` filters again after the source maps name the files of `src/`. The dist run leaves out the `doc-examples` project: `pnpm run test:docs:examples` runs it.
373
+
357
374
  **Browser test config:** `/vitest.browser.config.ts`
358
- 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`).
375
+ 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`).
359
376
 
360
377
  ### Per-Package Vitest Config — `@xmachines/shared/vitest`
361
378
 
@@ -365,6 +382,8 @@ Run with `pnpm run test:browser`. Uses Playwright Chromium via Vitest browser mo
365
382
  Packages use `defineXmVitestConfig(import.meta.url, overrides)` to create their config. It automatically injects:
366
383
 
367
384
  - `resolve.alias` via `xmAliases()` so `@xmachines/*` imports resolve to TypeScript source without a prior build.
385
+ - 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/`.
386
+ - `test.provide.xmTestTarget`, which a test reads with `inject("xmTestTarget")`.
368
387
  - `vitest.node.setup.ts` for non-browser projects (if not already present).
369
388
  - `vitest.setup.ts` for all projects (if not already present).
370
389
 
@@ -387,10 +406,12 @@ export default defineXmVitestConfig(import.meta.url, {
387
406
  **Location:** `packages/shared/config/vite-aliases.ts`
388
407
  **Exported as:** [`@xmachines/shared/vite-aliases`](../api/@xmachines/shared/README.md)
389
408
 
390
- Provides two helpers used in all `vitest.config.ts` and `vite.config.ts` files:
409
+ Provides the helpers used in all `vitest.config.ts` and `vite.config.ts` files:
391
410
 
392
- - **`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`.
393
- - **`xmResolve(import.meta.url)`** — returns a full Vite `resolve` config with `xmAliases` plus `preserveSymlinks: true` and `conditions: ["source"]`.
411
+ - **`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`.
412
+ - **`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.
413
+ - **`xmTestTarget()`** — reads `XM_TEST_TARGET`, and returns `source` or `dist`.
414
+ - **`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.
394
415
  - **`xmCacheDir(import.meta.url, name)`** — returns a shared Vite cache path under `node_modules/.vite/<name>` to prevent redundant dep optimizer runs across projects.
395
416
  - **`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.
396
417
 
@@ -436,6 +457,26 @@ Any step above can be skipped with the `SEMREL_SKIP_STEPS` CI variable, which th
436
457
 
437
458
  ---
438
459
 
460
+ ### Dependency Updates — `renovate.json5`
461
+
462
+ **Location:** `/renovate.json5`
463
+ **Tool:** [Renovate](https://docs.renovatebot.com/), from the `xmachin-es/renovate` project
464
+
465
+ 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.
466
+
467
+ The rules of the file:
468
+
469
+ - **Three days of cooldown.** The renovate component waits 3 days for a new version, which also covers the cooldown of one day in pnpm. The `@xmachines/*` packages have no cooldown, as in `pnpm-workspace.yaml`.
470
+ - **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.
471
+ - **No new major for an override of one major.** An override with a major in its key, for example `zod@4`, gets no update to the next major.
472
+ - **Approval for a patched package.** `pnpm-workspace.yaml` patches `@testing-library/jest-dom` at one version. An update of that package needs a new patch. Approve it in the Dependency Dashboard, then move the patch on its branch.
473
+ - **Approval for a TypeScript major.** A new major of `typescript` waits in the Dependency Dashboard. typedoc reads the TypeScript API, and it declares the majors that it supports. The `docs` job is manual in a merge request, so a green pipeline does not show the fault. Approve the update when typedoc supports the new major.
474
+ - **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.
475
+
476
+ 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.
477
+
478
+ ---
479
+
439
480
  ## Per-Environment Overrides
440
481
 
441
482
  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.
@@ -76,15 +76,15 @@ The `node-build` job runs one command:
76
76
  pnpm run build # vite build (JavaScript) && tsc --build (declarations)
77
77
  ```
78
78
 
79
- It runs no test. The `test` job owns the unit suite, so `node-build` skips its own with `NODE_TEST_ARGS`. It also builds no documentation: the `docs` job below does that.
79
+ It runs no test. The `test:dist` job owns the unit suite, so `node-build` skips its own with `NODE_TEST_ARGS`. It also builds no documentation: the `docs` job below does that.
80
80
 
81
- Coverage comes from the `test` job, through the regex:
81
+ Coverage comes from the `test:dist` job, through the regex:
82
82
 
83
83
  ```
84
84
  /All files[^|]*\|[^|]*\s+([\d\.]+)/
85
85
  ```
86
86
 
87
- That job publishes the JUnit results as `reports/test-results.xml` and the Cobertura coverage as `reports/cobertura-coverage.xml`. `vitest.config.ts` names both paths, and `COVERAGE_REPORTS_DIR` points them at `reports/`.
87
+ That job runs the suites on the `dist/` of `node-build`, and it maps the coverage back to `src/` through the source maps. It publishes the JUnit results as `reports/test-results.xml` and the Cobertura coverage as `reports/cobertura-coverage.xml`. `vitest.config.ts` names both paths, and `COVERAGE_REPORTS_DIR` points them at `reports/`.
88
88
 
89
89
  ### Docs Job
90
90