@xmachines/docs 1.0.0-beta.9 → 1.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 (544) hide show
  1. package/README.md +137 -7
  2. package/api/@xmachines/play/README.md +160 -38
  3. package/api/@xmachines/play/classes/NonNullableError.md +189 -0
  4. package/api/@xmachines/play/classes/PlayError.md +251 -0
  5. package/api/@xmachines/play/functions/assertNonNullable.md +56 -0
  6. package/api/@xmachines/play/type-aliases/PlayEvent.md +6 -6
  7. package/api/@xmachines/play-actor/README.md +141 -160
  8. package/api/@xmachines/play-actor/classes/AbstractActor.md +91 -122
  9. package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +40 -0
  10. package/api/@xmachines/play-actor/functions/toAtomState.md +33 -0
  11. package/api/@xmachines/play-actor/functions/typedSpec.md +54 -0
  12. package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +46 -0
  13. package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +33 -0
  14. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +28 -0
  15. package/api/@xmachines/play-actor/interfaces/Routable.md +6 -21
  16. package/api/@xmachines/play-actor/interfaces/Viewable.md +12 -6
  17. package/api/@xmachines/play-dom/README.md +384 -0
  18. package/api/@xmachines/play-dom/classes/PlayRenderer.md +115 -0
  19. package/api/@xmachines/play-dom/functions/createPlayUI.md +28 -0
  20. package/api/@xmachines/play-dom/functions/createRenderer.md +44 -0
  21. package/api/@xmachines/play-dom/functions/defineRegistry.md +26 -0
  22. package/api/@xmachines/play-dom/functions/renderSpec.md +67 -0
  23. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +23 -0
  24. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +34 -0
  25. package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +17 -0
  26. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +28 -0
  27. package/api/@xmachines/play-dom/interfaces/EventHandle.md +15 -0
  28. package/api/@xmachines/play-dom/interfaces/MountOptions.md +18 -0
  29. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +30 -0
  30. package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +26 -0
  31. package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +32 -0
  32. package/api/@xmachines/play-dom/type-aliases/ActionFn.md +46 -0
  33. package/api/@xmachines/play-dom/type-aliases/Actions.md +18 -0
  34. package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +114 -0
  35. package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +25 -0
  36. package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +26 -0
  37. package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +15 -0
  38. package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +44 -0
  39. package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +39 -0
  40. package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +20 -0
  41. package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +9 -0
  42. package/api/@xmachines/play-dom/type-aliases/DomSchema.md +9 -0
  43. package/api/@xmachines/play-dom/type-aliases/MountFn.md +27 -0
  44. package/api/@xmachines/play-dom/type-aliases/RenderErrorHandler.md +23 -0
  45. package/api/@xmachines/play-dom/type-aliases/SetState.md +30 -0
  46. package/api/@xmachines/play-dom/variables/schema.md +62 -0
  47. package/api/@xmachines/play-dom-router/README.md +271 -0
  48. package/api/@xmachines/play-dom-router/functions/connectRouter.md +43 -0
  49. package/api/@xmachines/{play-router → play-dom-router}/functions/createBrowserHistory.md +10 -2
  50. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +39 -0
  51. package/api/@xmachines/play-dom-router/functions/createRouter.md +54 -0
  52. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +176 -0
  53. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +69 -0
  54. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +15 -0
  55. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +129 -0
  56. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +68 -0
  57. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +54 -0
  58. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +121 -0
  59. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +13 -0
  60. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +27 -0
  61. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +104 -0
  62. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +28 -0
  63. package/api/@xmachines/play-react/README.md +185 -334
  64. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +46 -42
  65. package/api/@xmachines/play-react/functions/ActionProvider.md +21 -0
  66. package/api/@xmachines/play-react/functions/JSONUIProvider.md +21 -0
  67. package/api/@xmachines/play-react/functions/Renderer.md +21 -0
  68. package/api/@xmachines/play-react/functions/StateProvider.md +27 -0
  69. package/api/@xmachines/play-react/functions/ValidationProvider.md +21 -0
  70. package/api/@xmachines/play-react/functions/VisibilityProvider.md +21 -0
  71. package/api/@xmachines/play-react/functions/defineRegistry.md +49 -0
  72. package/api/@xmachines/play-react/functions/useActor.md +13 -0
  73. package/api/@xmachines/play-react/functions/useBoundProp.md +45 -0
  74. package/api/@xmachines/play-react/functions/usePlayView.md +32 -0
  75. package/api/@xmachines/play-react/functions/useSignalEffect.md +29 -20
  76. package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +15 -0
  77. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +27 -0
  78. package/api/@xmachines/play-react/interfaces/ComponentContext.md +37 -0
  79. package/api/@xmachines/play-react/interfaces/JSONUIProviderProps.md +22 -0
  80. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +7 -7
  81. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +6 -6
  82. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +26 -0
  83. package/api/@xmachines/play-react/interfaces/RendererProps.md +17 -0
  84. package/api/@xmachines/play-react/interfaces/StateProviderProps.md +16 -0
  85. package/api/@xmachines/play-react/interfaces/ValidationProviderProps.md +14 -0
  86. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +20 -0
  87. package/api/@xmachines/play-react/interfaces/VisibilityProviderProps.md +13 -0
  88. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -0
  89. package/api/@xmachines/play-react/type-aliases/ComponentFn.md +36 -0
  90. package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +23 -0
  91. package/api/@xmachines/play-react/variables/ActorProvider.md +33 -0
  92. package/api/@xmachines/play-react/variables/PlayRenderer.md +6 -56
  93. package/api/@xmachines/play-react/variables/PlayUIProvider.md +43 -0
  94. package/api/@xmachines/play-react-router/README.md +130 -114
  95. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +19 -242
  96. package/api/@xmachines/play-react-router/classes/RouteMap.md +48 -36
  97. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +45 -0
  98. package/api/@xmachines/play-react-router/functions/createRouteMap.md +39 -0
  99. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +23 -12
  100. package/api/@xmachines/play-react-router/interfaces/PlayActor.md +68 -0
  101. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +22 -12
  102. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
  103. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +25 -9
  104. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +13 -0
  105. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +19 -9
  106. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +8 -8
  107. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  108. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +32 -0
  109. package/api/@xmachines/play-router/README.md +275 -353
  110. package/api/@xmachines/play-router/classes/RouteMap.md +149 -0
  111. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +21 -221
  112. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +32 -0
  113. package/api/@xmachines/play-router/functions/buildRouteTree.md +12 -2
  114. package/api/@xmachines/play-router/functions/createRouteMap.md +22 -36
  115. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +46 -0
  116. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +14 -7
  117. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +10 -46
  118. package/api/@xmachines/play-router/functions/extractQuery.md +22 -0
  119. package/api/@xmachines/play-router/functions/extractRouteParams.md +54 -0
  120. package/api/@xmachines/play-router/functions/findRouteById.md +2 -2
  121. package/api/@xmachines/play-router/functions/findRouteByPath.md +2 -2
  122. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +2 -2
  123. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +2 -2
  124. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +43 -0
  125. package/api/@xmachines/play-router/functions/isRouteReachable.md +38 -0
  126. package/api/@xmachines/play-router/functions/machineToGraph.md +19 -0
  127. package/api/@xmachines/play-router/functions/routeExists.md +2 -2
  128. package/api/@xmachines/play-router/functions/sanitizePathname.md +40 -0
  129. package/api/@xmachines/play-router/functions/validateRouteFormat.md +10 -9
  130. package/api/@xmachines/play-router/functions/validateStateExists.md +9 -9
  131. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +13 -0
  132. package/api/@xmachines/play-router/interfaces/LocationLike.md +27 -0
  133. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +15 -0
  134. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +17 -0
  135. package/api/@xmachines/play-router/interfaces/PlayActor.md +68 -0
  136. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +22 -12
  137. package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +17 -0
  138. package/api/@xmachines/play-router/interfaces/RoutableActor.md +64 -0
  139. package/api/@xmachines/play-router/interfaces/RouteInfo.md +11 -11
  140. package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +13 -0
  141. package/api/@xmachines/play-router/interfaces/RouteMapping.md +27 -0
  142. package/api/@xmachines/play-router/interfaces/RouteMatch.md +12 -0
  143. package/api/@xmachines/play-router/interfaces/RouteNode.md +13 -13
  144. package/api/@xmachines/play-router/interfaces/RouteObject.md +5 -5
  145. package/api/@xmachines/play-router/interfaces/RouteTree.md +8 -7
  146. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +55 -0
  147. package/api/@xmachines/play-router/interfaces/RouterBridge.md +8 -8
  148. package/api/@xmachines/play-router/interfaces/WindowLike.md +65 -0
  149. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +20 -0
  150. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +2 -2
  151. package/api/@xmachines/play-signals/README.md +116 -65
  152. package/api/@xmachines/play-signals/functions/watchSignal.md +42 -0
  153. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +7 -5
  154. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +3 -3
  155. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +7 -5
  156. package/api/@xmachines/play-signals/interfaces/SignalState.md +4 -4
  157. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +5 -5
  158. package/api/@xmachines/play-signals/namespaces/Signal/README.md +1 -1
  159. package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +7 -7
  160. package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +8 -8
  161. package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +7 -7
  162. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +1 -1
  163. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +9 -9
  164. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +2 -2
  165. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +2 -2
  166. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +2 -2
  167. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +2 -2
  168. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +2 -2
  169. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +2 -2
  170. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +2 -2
  171. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +2 -2
  172. package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +2 -2
  173. package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +2 -2
  174. package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +2 -2
  175. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +2 -2
  176. package/api/@xmachines/play-solid/README.md +196 -234
  177. package/api/@xmachines/play-solid/functions/ActionProvider.md +19 -0
  178. package/api/@xmachines/play-solid/functions/JSONUIProvider.md +21 -0
  179. package/api/@xmachines/play-solid/functions/Renderer.md +21 -0
  180. package/api/@xmachines/play-solid/functions/StateProvider.md +19 -0
  181. package/api/@xmachines/play-solid/functions/ValidationProvider.md +19 -0
  182. package/api/@xmachines/play-solid/functions/VisibilityProvider.md +20 -0
  183. package/api/@xmachines/play-solid/functions/defineRegistry.md +49 -0
  184. package/api/@xmachines/play-solid/functions/useAction.md +24 -0
  185. package/api/@xmachines/play-solid/functions/useActions.md +13 -0
  186. package/api/@xmachines/play-solid/functions/useActor.md +13 -0
  187. package/api/@xmachines/play-solid/functions/useBoundProp.md +45 -0
  188. package/api/@xmachines/play-solid/functions/useFieldValidation.md +29 -0
  189. package/api/@xmachines/play-solid/functions/useIsVisible.md +19 -0
  190. package/api/@xmachines/play-solid/functions/useOptionalValidation.md +13 -0
  191. package/api/@xmachines/play-solid/functions/usePlayView.md +30 -0
  192. package/api/@xmachines/play-solid/functions/useStateBinding.md +25 -0
  193. package/api/@xmachines/play-solid/functions/useStateStore.md +13 -0
  194. package/api/@xmachines/play-solid/functions/useStateValue.md +25 -0
  195. package/api/@xmachines/play-solid/functions/useVisibility.md +13 -0
  196. package/api/@xmachines/play-solid/interfaces/ActionProviderProps.md +12 -0
  197. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +30 -0
  198. package/api/@xmachines/play-solid/interfaces/ComponentContext.md +37 -0
  199. package/api/@xmachines/play-solid/interfaces/DefineRegistryResult.md +15 -0
  200. package/api/@xmachines/play-solid/interfaces/JSONUIProviderProps.md +22 -0
  201. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +26 -0
  202. package/api/@xmachines/play-solid/interfaces/RendererProps.md +17 -0
  203. package/api/@xmachines/play-solid/interfaces/StateProviderProps.md +13 -0
  204. package/api/@xmachines/play-solid/interfaces/ValidationProviderProps.md +11 -0
  205. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +21 -0
  206. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -0
  207. package/api/@xmachines/play-solid/type-aliases/ComponentFn.md +36 -0
  208. package/api/@xmachines/play-solid/type-aliases/ComponentRegistry.md +11 -0
  209. package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +23 -0
  210. package/api/@xmachines/play-solid/type-aliases/SetState.md +21 -0
  211. package/api/@xmachines/play-solid/type-aliases/VisibilityProviderProps.md +9 -0
  212. package/api/@xmachines/play-solid/variables/ActorContext.md +13 -0
  213. package/api/@xmachines/play-solid/variables/ActorProvider.md +27 -0
  214. package/api/@xmachines/play-solid/variables/PlayRenderer.md +6 -62
  215. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +26 -0
  216. package/api/@xmachines/play-solid-router/README.md +151 -560
  217. package/api/@xmachines/play-solid-router/classes/RouteMap.md +31 -32
  218. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +27 -242
  219. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +44 -0
  220. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +18 -11
  221. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +84 -115
  222. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +68 -0
  223. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +22 -12
  224. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +30 -0
  225. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +25 -9
  226. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +13 -0
  227. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +20 -7
  228. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +8 -8
  229. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +34 -0
  230. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +8 -4
  231. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +22 -19
  232. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +52 -0
  233. package/api/@xmachines/play-svelte/README.md +269 -0
  234. package/api/@xmachines/play-svelte/functions/defineRegistry.md +31 -0
  235. package/api/@xmachines/play-svelte/functions/getActorContext.md +21 -0
  236. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +19 -0
  237. package/api/@xmachines/play-svelte/functions/setActorContext.md +19 -0
  238. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +44 -0
  239. package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +29 -0
  240. package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +29 -0
  241. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +24 -0
  242. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +43 -0
  243. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +24 -0
  244. package/api/@xmachines/play-svelte/type-aliases/ActionFn.md +30 -0
  245. package/api/@xmachines/play-svelte/type-aliases/Actions.md +17 -0
  246. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -0
  247. package/api/@xmachines/play-svelte/type-aliases/ComponentFn.md +18 -0
  248. package/api/@xmachines/play-svelte/type-aliases/JSONUIProviderProps.md +7 -0
  249. package/api/@xmachines/play-svelte/type-aliases/PlayRenderer.md +9 -0
  250. package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +23 -0
  251. package/api/@xmachines/play-svelte/type-aliases/SetState.md +21 -0
  252. package/api/@xmachines/play-svelte/variables/PlayRenderer.md +9 -0
  253. package/api/@xmachines/play-svelte-spa-router/README.md +199 -0
  254. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +149 -0
  255. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +32 -0
  256. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +39 -0
  257. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +17 -0
  258. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +129 -0
  259. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +13 -0
  260. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +27 -0
  261. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +104 -0
  262. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +65 -0
  263. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +9 -0
  264. package/api/@xmachines/play-sveltekit-router/README.md +211 -0
  265. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +149 -0
  266. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +32 -0
  267. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +39 -0
  268. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -0
  269. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +27 -0
  270. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +129 -0
  271. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +13 -0
  272. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +27 -0
  273. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +104 -0
  274. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +9 -0
  275. package/api/@xmachines/play-tanstack-react-router/README.md +155 -126
  276. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +48 -36
  277. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +31 -252
  278. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +45 -0
  279. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +22 -36
  280. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +23 -12
  281. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +28 -0
  282. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +68 -0
  283. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +22 -12
  284. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
  285. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +25 -9
  286. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +13 -0
  287. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +19 -9
  288. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +6 -6
  289. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +8 -8
  290. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  291. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +2 -2
  292. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +40 -18
  293. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +34 -0
  294. package/api/@xmachines/play-tanstack-router/README.md +58 -0
  295. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +131 -0
  296. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +57 -0
  297. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +100 -0
  298. package/api/@xmachines/play-tanstack-solid-router/README.md +215 -175
  299. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +31 -32
  300. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +121 -0
  301. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +44 -0
  302. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +18 -11
  303. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +68 -0
  304. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +22 -12
  305. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +31 -0
  306. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +23 -9
  307. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +13 -0
  308. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +14 -10
  309. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +8 -8
  310. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  311. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +8 -4
  312. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +3 -3
  313. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +40 -18
  314. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +33 -0
  315. package/api/@xmachines/play-vue/README.md +192 -210
  316. package/api/@xmachines/play-vue/functions/defineRegistry.md +32 -0
  317. package/api/@xmachines/play-vue/functions/getPlayViewContext.md +28 -0
  318. package/api/@xmachines/play-vue/functions/useActor.md +13 -0
  319. package/api/@xmachines/play-vue/functions/useBoundProp.md +45 -0
  320. package/api/@xmachines/play-vue/interfaces/ActionProviderProps.md +12 -0
  321. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +25 -0
  322. package/api/@xmachines/play-vue/interfaces/ComponentContext.md +37 -0
  323. package/api/@xmachines/play-vue/interfaces/DefineRegistryResult.md +15 -0
  324. package/api/@xmachines/play-vue/interfaces/JSONUIProviderProps.md +21 -0
  325. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +24 -0
  326. package/api/@xmachines/play-vue/interfaces/RendererProps.md +17 -0
  327. package/api/@xmachines/play-vue/interfaces/StateProviderProps.md +15 -0
  328. package/api/@xmachines/play-vue/interfaces/ValidationProviderProps.md +11 -0
  329. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +21 -0
  330. package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +5 -0
  331. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -0
  332. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +16 -0
  333. package/api/@xmachines/play-vue/type-aliases/ComponentFn.md +35 -0
  334. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +15 -0
  335. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +22 -0
  336. package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +23 -0
  337. package/api/@xmachines/play-vue/variables/ActionProvider.md +64 -0
  338. package/api/@xmachines/play-vue/variables/JSONUIProvider.md +105 -0
  339. package/api/@xmachines/play-vue/variables/PlayRenderer.md +2 -2
  340. package/api/@xmachines/play-vue/variables/Renderer.md +88 -0
  341. package/api/@xmachines/play-vue/variables/StateProvider.md +79 -0
  342. package/api/@xmachines/play-vue/variables/ValidationProvider.md +55 -0
  343. package/api/@xmachines/play-vue/variables/VisibilityProvider.md +40 -0
  344. package/api/@xmachines/play-vue-router/README.md +173 -487
  345. package/api/@xmachines/play-vue-router/classes/RouteMap.md +56 -116
  346. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +23 -271
  347. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +26 -6
  348. package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +68 -0
  349. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +22 -12
  350. package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +13 -0
  351. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +20 -8
  352. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +8 -8
  353. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +8 -4
  354. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +12 -6
  355. package/api/@xmachines/play-xstate/README.md +178 -347
  356. package/api/@xmachines/play-xstate/classes/PlayerActor.md +161 -191
  357. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +31 -20
  358. package/api/@xmachines/play-xstate/functions/composeGuards.md +2 -2
  359. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +2 -2
  360. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +38 -0
  361. package/api/@xmachines/play-xstate/functions/definePlayer.md +14 -63
  362. package/api/@xmachines/play-xstate/functions/deriveRoute.md +3 -3
  363. package/api/@xmachines/play-xstate/functions/eventMatches.md +2 -2
  364. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +3 -3
  365. package/api/@xmachines/play-xstate/functions/hasContext.md +2 -2
  366. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +2 -2
  367. package/api/@xmachines/play-xstate/functions/negateGuard.md +2 -2
  368. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +10 -14
  369. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +22 -0
  370. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +12 -13
  371. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +15 -13
  372. package/api/@xmachines/play-xstate/interfaces/RouteObject.md +17 -0
  373. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +2 -2
  374. package/api/@xmachines/play-xstate/type-aliases/Guard.md +2 -2
  375. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +3 -3
  376. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +10 -9
  377. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +15 -5
  378. package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +9 -0
  379. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +22 -6
  380. package/api/@xmachines/shared/README.md +95 -295
  381. package/api/@xmachines/shared/vite-aliases/README.md +11 -0
  382. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +38 -0
  383. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +27 -0
  384. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +30 -0
  385. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +42 -0
  386. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +33 -0
  387. package/api/@xmachines/shared/vitest/README.md +12 -0
  388. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +42 -0
  389. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +34 -0
  390. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +16 -0
  391. package/api/README.md +6 -7
  392. package/api/llms.txt +72 -23
  393. package/contributing/README.md +10 -0
  394. package/contributing/architecture.md +599 -0
  395. package/contributing/configuration.md +368 -0
  396. package/contributing/deployment.md +312 -0
  397. package/contributing/development.md +464 -0
  398. package/contributing/testing.md +453 -0
  399. package/examples/@xmachines/play-dom-demo/README.md +181 -0
  400. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +24 -0
  401. package/examples/@xmachines/play-dom-demo/functions/initShell.md +24 -0
  402. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +9 -0
  403. package/examples/@xmachines/play-dom-demo/variables/About.md +12 -0
  404. package/examples/@xmachines/play-dom-demo/variables/Contact.md +12 -0
  405. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +13 -0
  406. package/examples/@xmachines/play-dom-demo/variables/Home.md +13 -0
  407. package/examples/@xmachines/play-dom-demo/variables/Login.md +13 -0
  408. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +16 -0
  409. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +13 -0
  410. package/examples/@xmachines/play-dom-demo/variables/Overview.md +13 -0
  411. package/examples/@xmachines/play-dom-demo/variables/Profile.md +13 -0
  412. package/examples/@xmachines/play-dom-demo/variables/Settings.md +13 -0
  413. package/examples/@xmachines/play-dom-demo/variables/Stats.md +13 -0
  414. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +172 -0
  415. package/examples/@xmachines/play-dom-router-demo/README.md +145 -0
  416. package/examples/@xmachines/play-react-demo/README.md +187 -0
  417. package/examples/@xmachines/play-react-demo/functions/App.md +13 -0
  418. package/examples/@xmachines/play-react-demo/functions/DebugPanel.md +20 -0
  419. package/examples/@xmachines/play-react-demo/functions/HeaderNav.md +20 -0
  420. package/examples/@xmachines/play-react-demo/functions/Shell.md +22 -0
  421. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +9 -0
  422. package/examples/@xmachines/play-react-demo/variables/About.md +14 -0
  423. package/examples/@xmachines/play-react-demo/variables/Contact.md +14 -0
  424. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +15 -0
  425. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +15 -0
  426. package/examples/@xmachines/play-react-demo/variables/Home.md +14 -0
  427. package/examples/@xmachines/play-react-demo/variables/Login.md +16 -0
  428. package/examples/@xmachines/play-react-demo/variables/NavBar.md +16 -0
  429. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +15 -0
  430. package/examples/@xmachines/play-react-demo/variables/Navigation.md +14 -0
  431. package/examples/@xmachines/play-react-demo/variables/Overview.md +14 -0
  432. package/examples/@xmachines/play-react-demo/variables/Profile.md +14 -0
  433. package/examples/@xmachines/play-react-demo/variables/Settings.md +14 -0
  434. package/examples/@xmachines/play-react-demo/variables/Shell.md +18 -0
  435. package/examples/@xmachines/play-react-demo/variables/Stats.md +14 -0
  436. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +172 -0
  437. package/examples/@xmachines/play-react-router-demo/README.md +151 -0
  438. package/examples/@xmachines/play-solid-demo/README.md +187 -0
  439. package/examples/@xmachines/play-solid-demo/functions/App.md +13 -0
  440. package/examples/@xmachines/play-solid-demo/functions/DebugPanel.md +20 -0
  441. package/examples/@xmachines/play-solid-demo/functions/HeaderNav.md +20 -0
  442. package/examples/@xmachines/play-solid-demo/functions/Shell.md +22 -0
  443. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +9 -0
  444. package/examples/@xmachines/play-solid-demo/variables/About.md +9 -0
  445. package/examples/@xmachines/play-solid-demo/variables/Contact.md +9 -0
  446. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +9 -0
  447. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +15 -0
  448. package/examples/@xmachines/play-solid-demo/variables/Home.md +9 -0
  449. package/examples/@xmachines/play-solid-demo/variables/Login.md +9 -0
  450. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +11 -0
  451. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +15 -0
  452. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +9 -0
  453. package/examples/@xmachines/play-solid-demo/variables/Overview.md +9 -0
  454. package/examples/@xmachines/play-solid-demo/variables/Profile.md +9 -0
  455. package/examples/@xmachines/play-solid-demo/variables/Settings.md +9 -0
  456. package/examples/@xmachines/play-solid-demo/variables/Shell.md +17 -0
  457. package/examples/@xmachines/play-solid-demo/variables/Stats.md +9 -0
  458. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +172 -0
  459. package/examples/@xmachines/play-solid-router-demo/README.md +137 -0
  460. package/examples/@xmachines/play-svelte-demo/README.md +143 -0
  461. package/examples/@xmachines/play-svelte-demo/type-aliases/App.md +9 -0
  462. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +9 -0
  463. package/examples/@xmachines/play-svelte-demo/variables/App.md +9 -0
  464. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +172 -0
  465. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +129 -0
  466. package/examples/@xmachines/play-sveltekit-router-demo/README.md +133 -0
  467. package/examples/@xmachines/play-tanstack-react-router-demo/README.md +156 -0
  468. package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +139 -0
  469. package/examples/@xmachines/play-vue-demo/README.md +183 -0
  470. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +9 -0
  471. package/examples/@xmachines/play-vue-demo/variables/App.md +9 -0
  472. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +172 -0
  473. package/examples/@xmachines/play-vue-router-demo/README.md +139 -0
  474. package/examples/README.md +78 -30
  475. package/examples/basic-state-machine.md +75 -31
  476. package/examples/form-validation.md +261 -118
  477. package/examples/multi-router-integration.md +314 -194
  478. package/examples/routing-patterns.md +230 -189
  479. package/examples/traffic-light.md +114 -65
  480. package/guides/README.md +9 -21
  481. package/guides/actor-model.md +180 -0
  482. package/guides/getting-started.md +619 -137
  483. package/guides/signals.md +166 -0
  484. package/guides/state-machines.md +284 -0
  485. package/package.json +18 -7
  486. package/rfc/broker.md +100 -0
  487. package/rfc/browser.md +44 -0
  488. package/rfc/cli.md +118 -0
  489. package/rfc/git.md +61 -0
  490. package/rfc/mcp.md +43 -0
  491. package/rfc/node.md +36 -0
  492. package/rfc/play.md +472 -0
  493. package/rfc/rest.md +102 -0
  494. package/rfc/run.md +159 -0
  495. package/rfc/streams.md +168 -0
  496. package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +0 -17
  497. package/api/@xmachines/play-catalog/README.md +0 -331
  498. package/api/@xmachines/play-catalog/functions/defineCatalog.md +0 -98
  499. package/api/@xmachines/play-catalog/functions/defineComponents.md +0 -134
  500. package/api/@xmachines/play-catalog/type-aliases/Catalog.md +0 -48
  501. package/api/@xmachines/play-catalog/type-aliases/ComponentsFor.md +0 -20
  502. package/api/@xmachines/play-catalog/type-aliases/InferComponentProps.md +0 -65
  503. package/api/@xmachines/play-catalog/type-aliases/NoExtraKeys.md +0 -17
  504. package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +0 -15
  505. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +0 -19
  506. package/api/@xmachines/play-react-router-demo/README.md +0 -137
  507. package/api/@xmachines/play-router/classes/BaseRouteMap.md +0 -142
  508. package/api/@xmachines/play-router/functions/connectRouter.md +0 -67
  509. package/api/@xmachines/play-router/functions/crawlMachine.md +0 -92
  510. package/api/@xmachines/play-router/functions/createRouter.md +0 -76
  511. package/api/@xmachines/play-router/functions/extractRoute.md +0 -45
  512. package/api/@xmachines/play-router/interfaces/BaseRouteMapping.md +0 -27
  513. package/api/@xmachines/play-router/interfaces/BrowserHistory.md +0 -172
  514. package/api/@xmachines/play-router/interfaces/BrowserWindow.md +0 -69
  515. package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +0 -13
  516. package/api/@xmachines/play-router/interfaces/RouteMap.md +0 -56
  517. package/api/@xmachines/play-router/interfaces/StateVisit.md +0 -15
  518. package/api/@xmachines/play-router/interfaces/VanillaRouter.md +0 -28
  519. package/api/@xmachines/play-router-demo/README.md +0 -137
  520. package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +0 -15
  521. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +0 -19
  522. package/api/@xmachines/play-solid-router-demo/README.md +0 -127
  523. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +0 -19
  524. package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +0 -38
  525. package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +0 -33
  526. package/api/@xmachines/play-tanstack-react-router/variables/extractMachineRoutes.md +0 -64
  527. package/api/@xmachines/play-tanstack-react-router-demo/README.md +0 -126
  528. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +0 -343
  529. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +0 -19
  530. package/api/@xmachines/play-tanstack-solid-router-demo/README.md +0 -126
  531. package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +0 -14
  532. package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +0 -201
  533. package/api/@xmachines/play-vue-router-demo/README.md +0 -133
  534. package/api/@xmachines/play-xstate/functions/mergeViewProps.md +0 -26
  535. package/api/@xmachines/play-xstate/functions/stateMatches.md +0 -25
  536. package/api/@xmachines/play-xstate/functions/validateComponentBinding.md +0 -39
  537. package/api/@xmachines/play-xstate/functions/validateViewProps.md +0 -80
  538. package/api/@xmachines/play-xstate/interfaces/CatalogEntry.md +0 -16
  539. package/api/@xmachines/play-xstate/type-aliases/Catalog.md +0 -21
  540. package/api/@xmachines/play-xstate/type-aliases/ValidationResult.md +0 -17
  541. package/api/@xmachines/play-xstate/type-aliases/ViewMergeContext.md +0 -35
  542. package/api/@xmachines/shared/functions/defineXmVitestConfig.md +0 -29
  543. package/api/@xmachines/shared/functions/xmAliases.md +0 -24
  544. package/guides/installation.md +0 -323
@@ -0,0 +1,368 @@
1
+ <!-- generated-by: gsd-doc-writer -->
2
+
3
+ # Configuration
4
+
5
+ This document describes every configuration file, environment variable, and per-package override used by the `xmachines-js` monorepo.
6
+
7
+ ---
8
+
9
+ ## Environment Variables
10
+
11
+ 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**.
12
+
13
+ ### Dev Container Variables
14
+
15
+ 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.
16
+
17
+ ### CI / Release Pipeline Variable
18
+
19
+ | Variable | Required | Default | Description |
20
+ | ------------------- | -------- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
21
+ | `SEMREL_SKIP_STEPS` | Optional | `""` (empty — run all steps) | A single RegExp string matched against every semantic-release plugin step ID. Use `\|` for alternation to skip multiple steps. Set via the GitLab "Run pipeline" UI or API trigger. |
22
+
23
+ **Defined in:** `.gitlab-ci.yml`, consumed by `release.config.mjs`.
24
+
25
+ **Examples:**
26
+
27
+ ```bash
28
+ # Skip one package publish
29
+ SEMREL_SKIP_STEPS="@semantic-release/npm:packages/play-xstate"
30
+
31
+ # Skip all demo publish steps
32
+ SEMREL_SKIP_STEPS="examples/demo"
33
+
34
+ # Skip all exec steps (build, typedoc, etc.)
35
+ SEMREL_SKIP_STEPS="@semantic-release/exec"
36
+
37
+ # Publish-only retry (skip build + demos)
38
+ SEMREL_SKIP_STEPS="@semantic-release/exec|examples/demo"
39
+
40
+ # Skip git commit and GitLab release
41
+ SEMREL_SKIP_STEPS="@semantic-release/git|@semantic-release/gitlab"
42
+ ```
43
+
44
+ ---
45
+
46
+ ## Configuration Files
47
+
48
+ ### TypeScript — `tsconfig.json` (root)
49
+
50
+ **Location:** `/tsconfig.json`
51
+
52
+ The root TypeScript config is a **build coordinator only** — it compiles nothing itself. It lists every package and example via `references` so that `tsc --build` can determine the correct build order automatically.
53
+
54
+ ```json
55
+ {
56
+ "files": [],
57
+ "references": [
58
+ // Layer 0 — no internal deps
59
+ { "path": "./packages/play-signals" },
60
+ { "path": "./packages/play" },
61
+ { "path": "./packages/docs" },
62
+ // Layer 1 — depends on Layer 0
63
+ { "path": "./packages/play-actor" },
64
+ // Layer 2 — depends on Layer 0 + 1
65
+ { "path": "./packages/play-router" },
66
+ { "path": "./packages/play-xstate" }
67
+ // ...etc.
68
+ ]
69
+ }
70
+ ```
71
+
72
+ Every package must be listed here and must have `composite: true` in its own `tsconfig.json`.
73
+
74
+ **Test build coordinator:** `/tsconfig.test.json` — identical structure but references each package's `tsconfig.test.json` for type-checking tests without emitting output.
75
+
76
+ ### TypeScript — Shared Base Config (`@xmachines/shared/tsconfig`)
77
+
78
+ **Location:** `packages/shared/config/tsconfig.json`
79
+ **Exported as:** `@xmachines/shared/tsconfig`
80
+
81
+ All packages extend this base. Key compiler settings:
82
+
83
+ | Setting | Value | Notes |
84
+ | ---------------------------- | ------------ | -------------------------------------------------------- |
85
+ | `target` | `ESNext` | Latest ECMAScript output |
86
+ | `module` | `NodeNext` | ESM with `.js` extension imports required |
87
+ | `moduleResolution` | `NodeNext` | Matches `module` setting |
88
+ | `customConditions` | `["source"]` | Resolves `@xmachines/*` to TypeScript source in dev/test |
89
+ | `strict` | `true` | Full strict mode |
90
+ | `noUnusedLocals` | `true` | Error on unused variables |
91
+ | `noUnusedParameters` | `true` | Error on unused parameters |
92
+ | `noFallthroughCasesInSwitch` | `true` | |
93
+ | `noImplicitReturns` | `true` | |
94
+ | `noImplicitOverride` | `true` | |
95
+ | `exactOptionalPropertyTypes` | `true` | |
96
+ | `declaration` | `true` | Emits `.d.ts` files |
97
+ | `declarationMap` | `true` | Emits `.d.ts.map` for IDE go-to-source |
98
+ | `sourceMap` | `true` | |
99
+ | `verbatimModuleSyntax` | `true` | Preserves `import type` |
100
+ | `isolatedModules` | `true` | |
101
+ | `removeComments` | `false` | Preserves JSDoc in output |
102
+
103
+ **Per-package `tsconfig.json` pattern:**
104
+
105
+ ```json
106
+ {
107
+ "extends": "@xmachines/shared/tsconfig",
108
+ "compilerOptions": {
109
+ "composite": true,
110
+ "rootDir": "./src",
111
+ "outDir": "./dist"
112
+ },
113
+ "references": [{ "path": "../dependency-package" }]
114
+ }
115
+ ```
116
+
117
+ **Test tsconfig (`@xmachines/shared/tsconfig-test`):**
118
+
119
+ **Location:** `packages/shared/config/tsconfig.test.json`
120
+
121
+ Test builds add `noEmit: true`, `allowImportingTsExtensions: true`, and `vitest/globals` types. Used by `pnpm run test:build` to type-check test files without emitting output.
122
+
123
+ ### Linting — `oxlint.config.ts` (root)
124
+
125
+ **Location:** `/oxlint.config.ts`
126
+ **Tool:** [oxlint](https://oxc.rs/docs/guide/usage/linter) `^1.62.0`
127
+ **Run:** `pnpm run lint` / `pnpm run lint:fix`
128
+
129
+ The root config extends the shared base (`@xmachines/shared/oxlint`) and adds workspace-level ignore patterns:
130
+
131
+ ```typescript
132
+ // /oxlint.config.ts
133
+ export default defineConfig({
134
+ extends: [sharedConfig],
135
+ ignorePatterns: [
136
+ ".planning",
137
+ ".opencode",
138
+ "node_modules",
139
+ "dist",
140
+ "build",
141
+ "coverage",
142
+ "docs/api/_media",
143
+ "*.min.js",
144
+ "CHANGELOG.md",
145
+ ],
146
+ });
147
+ ```
148
+
149
+ **Shared base rules** (`packages/shared/config/oxlint.config.ts`):
150
+
151
+ | Plugin | Category | Severity |
152
+ | ---------------------------- | ------------- | ------------------------------------ |
153
+ | `typescript` | `correctness` | `error` |
154
+ | `unicorn` | `suspicious` | `warn` |
155
+ | `import` | `perf` | `warn` |
156
+ | `import/no-cycle` | — | `error` |
157
+ | `typescript/no-explicit-any` | — | `error` |
158
+ | `typescript/no-unused-vars` | — | `error` (ignores `_` prefixed names) |
159
+ | `unicorn/filename-case` | — | `off` |
160
+
161
+ **Per-package override pattern:**
162
+
163
+ ```typescript
164
+ // packages/<name>/oxlint.config.ts
165
+ import sharedConfig from "@xmachines/shared/oxlint";
166
+ import { defineConfig } from "oxlint";
167
+
168
+ export default defineConfig({
169
+ extends: [sharedConfig],
170
+ // add package-specific rules here
171
+ });
172
+ ```
173
+
174
+ ### Formatting — `oxfmt.config.ts` (root)
175
+
176
+ **Location:** `/oxfmt.config.ts`
177
+ **Tool:** [oxfmt](https://oxc.rs/docs/guide/usage/formatter) `^0.47.0`
178
+ **Run:** `pnpm run format` / `pnpm run format:check`
179
+
180
+ The root config extends the shared base and adds workspace-level ignore patterns:
181
+
182
+ ```typescript
183
+ // /oxfmt.config.ts
184
+ export default defineConfig({
185
+ ...sharedConfig,
186
+ ignorePatterns: [
187
+ ...(sharedConfig.ignorePatterns ?? []),
188
+ ".planning",
189
+ ".opencode",
190
+ ".agents",
191
+ ".githuman",
192
+ ".devcontainer",
193
+ "CHANGELOG.md",
194
+ "Thumbs.db",
195
+ ],
196
+ });
197
+ ```
198
+
199
+ **Shared base format settings** (`packages/shared/config/oxfmt.config.ts`):
200
+
201
+ | Setting | Value |
202
+ | -------------------- | ------- |
203
+ | `printWidth` | `100` |
204
+ | `tabWidth` | `4` |
205
+ | `useTabs` | `true` |
206
+ | `semi` | `true` |
207
+ | `singleQuote` | `false` |
208
+ | `trailingComma` | `"all"` |
209
+ | `insertFinalNewline` | `true` |
210
+
211
+ **JSON / YAML override** (applied via `overrides`):
212
+
213
+ | Setting | Value |
214
+ | ---------- | ------- |
215
+ | `useTabs` | `false` |
216
+ | `tabWidth` | `2` |
217
+
218
+ ### Editor — `.editorconfig`
219
+
220
+ **Location:** `/.editorconfig`
221
+
222
+ | Setting | `[*]` | `[*.{json,yml,yaml}]` | `[*.md]` |
223
+ | -------------------------- | ------- | --------------------- | -------- |
224
+ | `indent_style` | `tab` | `space` | — |
225
+ | `indent_size` | `4` | `2` | — |
226
+ | `end_of_line` | `lf` | — | — |
227
+ | `charset` | `utf-8` | — | — |
228
+ | `trim_trailing_whitespace` | `true` | — | `false` |
229
+ | `insert_final_newline` | `true` | — | — |
230
+
231
+ ### Testing — `vitest.config.ts` (root)
232
+
233
+ **Location:** `/vitest.config.ts`
234
+ **Tool:** [Vitest](https://vitest.dev/) `^4.1.5`
235
+ **Run:** `pnpm test` / `pnpm run test:coverage`
236
+
237
+ Root Vitest config is a **workspace coordinator** that lists all per-package configs under `test.projects`. It sets conservative monorepo-wide defaults:
238
+
239
+ | Setting | Value | Notes |
240
+ | ----------------- | ---------- | ------------------------------------------------------ |
241
+ | `pool` | `"forks"` | Process-isolated workers |
242
+ | `maxWorkers` | `4` | Root default; per-project configs may override |
243
+ | `isolate` | `true` | |
244
+ | `fileParallelism` | `false` | Conservative default; safe packages opt in with `true` |
245
+ | `teardownTimeout` | `30000` ms | |
246
+ | `hookTimeout` | `30000` ms | |
247
+ | `testTimeout` | `10000` ms | |
248
+
249
+ **Coverage thresholds** (monorepo aggregate — `vitest run --coverage`):
250
+
251
+ | Type | Threshold |
252
+ | ---------- | --------- |
253
+ | Lines | 80% |
254
+ | Functions | 80% |
255
+ | Branches | 75% |
256
+ | Statements | 80% |
257
+
258
+ Coverage provider: `v8`. Individual packages may declare higher per-package thresholds in their own `vitest.config.ts`.
259
+
260
+ **Browser test config:** `/vitest.browser.config.ts`
261
+ 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`).
262
+
263
+ ### Per-Package Vitest Config — `@xmachines/shared/vitest`
264
+
265
+ **Location:** `packages/shared/config/vitest.ts`
266
+ **Exported as:** `@xmachines/shared/vitest`
267
+
268
+ Packages use `defineXmVitestConfig(import.meta.url, overrides)` to create their config. It automatically injects:
269
+
270
+ - `resolve.alias` via `xmAliases()` so `@xmachines/*` imports resolve to TypeScript source without a prior build.
271
+ - `vitest.node.setup.ts` for non-browser projects (if not already present).
272
+ - `vitest.setup.ts` for all projects (if not already present).
273
+
274
+ **Typical per-package usage:**
275
+
276
+ ```typescript
277
+ // packages/<name>/vitest.config.ts
278
+ import { defineXmVitestConfig } from "@xmachines/shared/vitest";
279
+
280
+ export default defineXmVitestConfig(import.meta.url, {
281
+ test: {
282
+ name: "play-example",
283
+ include: ["test/**/*.test.ts"],
284
+ },
285
+ });
286
+ ```
287
+
288
+ ### Vite Source Aliases — `@xmachines/shared/vite-aliases`
289
+
290
+ **Location:** `packages/shared/config/vite-aliases.ts`
291
+ **Exported as:** `@xmachines/shared/vite-aliases`
292
+
293
+ Provides two helpers used in all `vitest.config.ts` and `vite.config.ts` files:
294
+
295
+ - **`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`.
296
+ - **`xmResolve(import.meta.url)`** — returns a full Vite `resolve` config with `xmAliases` plus `preserveSymlinks: true` and `conditions: ["source"]`.
297
+ - **`xmCacheDir(import.meta.url, name)`** — returns a shared Vite cache path under `node_modules/.vite/<name>` to prevent redundant dep optimizer runs across projects.
298
+ - **`xmOptimizeDeps(extra?)`** — returns a standard `optimizeDeps.include` list; pass framework-specific extras to pre-bundle them at startup.
299
+
300
+ ### Release — `release.config.mjs`
301
+
302
+ **Location:** `/release.config.mjs`
303
+ **Tool:** [semantic-release](https://semantic-release.gitbook.io/) via `@semantic-release/*` plugins
304
+
305
+ Defines the release branches and plugin chain used by the GitLab CI semantic-release job.
306
+
307
+ **Release branches:**
308
+
309
+ | Branch | Channel | Pre-release |
310
+ | -------- | --------- | ----------- |
311
+ | `main` | (default) | No |
312
+ | `pre/rc` | `pre/rc` | `rc` |
313
+ | `beta` | `beta` | `true` |
314
+
315
+ **Tag format:** `v${version}`
316
+
317
+ **Plugin order:**
318
+
319
+ 1. `@semantic-release/commit-analyzer` — determines version bump from conventional commits
320
+ 2. `@semantic-release/release-notes-generator` — builds release notes
321
+ 3. `@semantic-release/changelog` — writes `CHANGELOG.md`
322
+ 4. `@semantic-release/exec` steps (in order):
323
+ - `corepack` — `corepack enable`
324
+ - `install` — `pnpm install --frozen-lockfile`
325
+ - `set-workspace-versions` — updates all `package.json` files to the new version
326
+ - `build` — `pnpm run build`
327
+ - `typedoc` — `pnpm --filter @xmachines/docs run typedoc`
328
+ - `format-docs` — `pnpm --filter @xmachines/docs run format`
329
+ 5. `@semantic-release/npm` — one entry per published package (20 packages) + pack-only for demo apps
330
+ 6. `@semantic-release/git` — commits `CHANGELOG.md`, updated `package.json` files, and generated API docs
331
+ 7. `@semantic-release/gitlab` — creates a GitLab release with tarball assets
332
+
333
+ Any step can be skipped via the `SEMREL_SKIP_STEPS` CI variable (see [Environment Variables](#environment-variables)).
334
+
335
+ ---
336
+
337
+ ## Per-Environment Overrides
338
+
339
+ 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.
340
+
341
+ The only environment-specific distinction is between **local development** (dev container with `.devcontainer/.env`) and **CI** (GitLab CI with pipeline variables), described in the sections above.
342
+
343
+ ---
344
+
345
+ ## Required vs Optional Settings Summary
346
+
347
+ | Config | Required to Work | Optional / Has Default |
348
+ | ------------------------------------ | ------------------------------------- | ----------------------------- |
349
+ | `SEMREL_SKIP_STEPS` | No | Default: `""` (run all steps) |
350
+ | Root `tsconfig.json` `references` | Yes — must list all packages | — |
351
+ | Per-package `composite: true` | Yes — required for project references | — |
352
+ | `@xmachines/shared/tsconfig` extends | Yes — all packages must extend it | — |
353
+ | `@xmachines/shared/oxlint` extends | Yes — all packages must extend it | — |
354
+ | `@xmachines/shared/oxfmt` extends | Yes — all packages must extend it | — |
355
+
356
+ ---
357
+
358
+ ## Adding a New Package
359
+
360
+ When adding a new package, update these configuration files:
361
+
362
+ 1. **`/tsconfig.json`** — add a `{ "path": "./packages/<name>" }` entry in the correct dependency layer.
363
+ 2. **`/tsconfig.test.json`** — add a `{ "path": "./packages/<name>/tsconfig.test.json" }` entry.
364
+ 3. **`/vitest.config.ts`** — add `"packages/<name>/vitest.config.ts"` to `test.projects`.
365
+ 4. **`/vitest.browser.config.ts`** (if the package has browser tests) — add the browser config path to `test.projects`.
366
+ 5. **`/release.config.mjs`** — add an entry to `NPM_PACKAGES` array with the package's `pkgRoot`.
367
+
368
+ See [AGENTS.md](https://gitlab.com/xmachin-es/xmachines-js/-/blob/main/AGENTS.md) for the full new-package checklist.
@@ -0,0 +1,312 @@
1
+ <!-- generated-by: gsd-doc-writer -->
2
+
3
+ # Deployment
4
+
5
+ This document describes how `@xmachines/xmachines-js` packages are built, versioned, and published to npm. All releases are automated through [semantic-release](https://semantic-release.gitbook.io/) running inside a GitLab CI pipeline. No manual `npm publish` commands are required for normal releases.
6
+
7
+ ---
8
+
9
+ ## Deployment Targets
10
+
11
+ All `@xmachines/*` packages are published to the **public npm registry** (`registry.npmjs.org`). Every package uses `"publishConfig": { "access": "public" }` so scoped packages are accessible without an npm org subscription. See the [Published Packages](#published-packages) table for the full list.
12
+
13
+ | Target | Config File | Purpose |
14
+ | --------------- | ---------------------------------------------------------------------- | ------------------------------------------------------ |
15
+ | npm registry | `.releaserc.json` (per-package `@semantic-release/npm` plugin entries) | Publish all public packages |
16
+ | GitLab Releases | `.releaserc.json` (`@semantic-release/gitlab` plugin) | Attach tarball artifacts to the GitLab release tag |
17
+ | GitLab CI | `.gitlab-ci.yml` | Trigger builds, tests, and releases on push / MR / tag |
18
+
19
+ The root `package.json` is marked `"private": true` and is **never published** to npm.
20
+
21
+ ---
22
+
23
+ ## Published Packages
24
+
25
+ The following packages are published on every release (derived from `.releaserc.json`):
26
+
27
+ | Package | Directory |
28
+ | ------------------------------------------------------------------------------------------------- | ------------------------------------- |
29
+ | [`@xmachines/shared`](../api/@xmachines/shared/README.md) | `packages/shared` |
30
+ | [`@xmachines/play`](../api/@xmachines/play/README.md) | `packages/play` |
31
+ | [`@xmachines/play-actor`](../api/@xmachines/play-actor/README.md) | `packages/play-actor` |
32
+ | [`@xmachines/play-signals`](../api/@xmachines/play-signals/README.md) | `packages/play-signals` |
33
+ | [`@xmachines/play-router`](../api/@xmachines/play-router/README.md) | `packages/play-router` |
34
+ | [`@xmachines/play-dom`](../api/@xmachines/play-dom/README.md) | `packages/play-dom` |
35
+ | [`@xmachines/play-dom-router`](../api/@xmachines/play-dom-router/README.md) | `packages/play-dom-router` |
36
+ | [`@xmachines/play-react`](../api/@xmachines/play-react/README.md) | `packages/play-react` |
37
+ | [`@xmachines/play-react-router`](../api/@xmachines/play-react-router/README.md) | `packages/play-react-router` |
38
+ | [`@xmachines/play-solid`](../api/@xmachines/play-solid/README.md) | `packages/play-solid` |
39
+ | [`@xmachines/play-solid-router`](../api/@xmachines/play-solid-router/README.md) | `packages/play-solid-router` |
40
+ | [`@xmachines/play-svelte`](../api/@xmachines/play-svelte/README.md) | `packages/play-svelte` |
41
+ | [`@xmachines/play-sveltekit-router`](../api/@xmachines/play-sveltekit-router/README.md) | `packages/play-sveltekit-router` |
42
+ | [`@xmachines/play-svelte-spa-router`](../api/@xmachines/play-svelte-spa-router/README.md) | `packages/play-svelte-spa-router` |
43
+ | [`@xmachines/play-tanstack-react-router`](../api/@xmachines/play-tanstack-react-router/README.md) | `packages/play-tanstack-react-router` |
44
+ | [`@xmachines/play-tanstack-solid-router`](../api/@xmachines/play-tanstack-solid-router/README.md) | `packages/play-tanstack-solid-router` |
45
+ | [`@xmachines/play-vue`](../api/@xmachines/play-vue/README.md) | `packages/play-vue` |
46
+ | [`@xmachines/play-vue-router`](../api/@xmachines/play-vue-router/README.md) | `packages/play-vue-router` |
47
+ | [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) | `packages/play-xstate` |
48
+ | [`@xmachines/docs`](../README.md) | `packages/docs` |
49
+
50
+ **Example demo packages** (under `packages/*/examples/demo`) are **not published** to npm (`"npmPublish": false`) but are still packed into release tarballs and attached as GitLab release assets for testing.
51
+
52
+ Each published package includes only the directories listed in its `files` field: `dist`, `README.md`, and `LICENSE` (or equivalent for packages without a compilation step).
53
+
54
+ ---
55
+
56
+ ## Build Pipeline
57
+
58
+ ### CI Pipeline Stages
59
+
60
+ Pipeline runs are triggered by `.gitlab-ci.yml` under the following conditions:
61
+
62
+ | Trigger | Pipeline runs |
63
+ | --------------------------------------------- | --------------------------------------------- |
64
+ | Push to `main` / `master` / `beta` / `pre/rc` | Full pipeline including release |
65
+ | Merge request | Full pipeline (release job skipped or manual) |
66
+ | Tag push (`$CI_COMMIT_TAG`) | Full pipeline |
67
+
68
+ The pipeline includes two reusable CI components:
69
+
70
+ - **`to-be-continuous/node/gitlab-ci-node@5.1.2`** — handles install, lint, build, test, and audit
71
+ - **`to-be-continuous/semantic-release/gitlab-ci-semrel@4.1.0`** — runs `semantic-release` on eligible branches
72
+
73
+ The `node-build` job runs with:
74
+
75
+ ```bash
76
+ pnpm run build # tsc --build (TypeScript composite build)
77
+ pnpm run test:coverage # vitest run --coverage (with JUnit + Cobertura reporters)
78
+ ```
79
+
80
+ Coverage is extracted from the `node-build` job via the regex:
81
+
82
+ ```
83
+ /All files[^|]*\|[^|]*\s+([\d\.]+)/
84
+ ```
85
+
86
+ JUnit results are published as `reports/junit.xml` and Cobertura coverage as `reports/coverage/cobertura-coverage.xml`.
87
+
88
+ ### Release Job Detail
89
+
90
+ The `semantic-release` CI job is configured with:
91
+
92
+ ```yaml
93
+ semantic-release:
94
+ id_tokens:
95
+ NPM_ID_TOKEN:
96
+ aud: "npm:registry.npmjs.org"
97
+ artifacts:
98
+ when: always
99
+ expire_in: 1 week
100
+ paths:
101
+ - dist/releases/*.tgz
102
+ ```
103
+
104
+ The job uses a GitLab OIDC id token (`NPM_ID_TOKEN`) scoped to `npm:registry.npmjs.org` rather than a static `NPM_TOKEN`.
105
+
106
+ The `semantic-release` command is called with `--no-ci` to allow it to run inside CI without triggering its own CI-environment mode.
107
+
108
+ ### Release Smoke Test Job
109
+
110
+ The `release-pack-smoke` job is defined in `.gitlab-ci.yml` and runs on the same trigger rules as other CI jobs (automatically on `main` pushes and tags, manually on MRs):
111
+
112
+ ```bash
113
+ pnpm run build
114
+ node scripts/release-pack-smoke.mjs
115
+ ```
116
+
117
+ `scripts/release-pack-smoke.mjs`:
118
+
119
+ 1. Reads `.releaserc.json` to find all `@semantic-release/npm` plugin entries where `npmPublish` is not `false`.
120
+ 2. For each publishable package: runs `npm pack --json` in the package directory.
121
+ 3. Creates a temporary directory, runs `npm init -y`, and installs the local tarball with `--ignore-scripts`.
122
+ 4. Asserts the install succeeds — any missing files, broken exports, or pack-time errors surface here.
123
+ 5. Cleans up temp directories and tarballs after each check.
124
+
125
+ This smoke test runs **before** the actual publish so packaging problems are caught in CI rather than on npm.
126
+
127
+ ---
128
+
129
+ ## Semantic Release Process
130
+
131
+ ### Branch Model
132
+
133
+ Releases are driven by commit history on protected branches:
134
+
135
+ | Branch | Channel | Tag format | Behaviour |
136
+ | -------- | ---------------- | --------------- | ----------------------------- |
137
+ | `main` | stable (default) | `v1.2.3` | Full production release |
138
+ | `beta` | `beta` | `v1.2.3-beta.N` | Beta pre-release |
139
+ | `pre/rc` | `pre/rc` | `v1.2.3-rc.N` | Release candidate pre-release |
140
+
141
+ Tag format is `v${version}` (e.g., `v1.0.0-beta.46`).
142
+
143
+ ### Prepare Phase
144
+
145
+ Before any package is published, semantic-release runs a sequence of `@semantic-release/exec` prepare steps defined in `release.config.mjs`:
146
+
147
+ ```bash
148
+ corepack enable
149
+ pnpm install --frozen-lockfile
150
+ node scripts/set-workspace-versions.mjs ${nextRelease.version}
151
+ pnpm run build
152
+ pnpm --filter @xmachines/docs run typedoc --gitRevision v${nextRelease.version}
153
+ pnpm --filter @xmachines/docs run format
154
+ ```
155
+
156
+ Step by step:
157
+
158
+ 1. **Enable corepack** — activates the pinned pnpm version.
159
+ 2. **Install** — `pnpm install --frozen-lockfile` installs the exact dependency versions recorded in the lockfile.
160
+ 3. **Sync versions** — `scripts/set-workspace-versions.mjs` sets the same release version across every `package.json` in the workspace (root + all packages), including cross-package workspace dependency ranges.
161
+ 4. **Build** — runs `tsc --build` to produce compiled `dist/` output in all packages.
162
+ 5. **Generate API docs** — runs TypeDoc to regenerate `packages/docs/api/` at the release git revision.
163
+ 6. **Format docs** — runs `oxfmt` on the docs package to ensure consistent formatting.
164
+
165
+ ### Publish Phase
166
+
167
+ Each publishable package is published in sequence via individual `@semantic-release/npm` plugin entries. Each entry specifies:
168
+
169
+ - `pkgRoot` — the package directory relative to the workspace root
170
+ - `tarballDir` — `dist/releases/` where the packed `.tgz` is saved
171
+
172
+ Example (from `.releaserc.json`):
173
+
174
+ ```json
175
+ ["@semantic-release/npm", { "pkgRoot": "packages/play", "tarballDir": "dist/releases" }]
176
+ ```
177
+
178
+ ### Post-Release Phase
179
+
180
+ After all packages are published:
181
+
182
+ 1. **`@semantic-release/git`** commits updated files back to the repository:
183
+ - `CHANGELOG.md`
184
+ - `package.json` and `package-lock.json` (root)
185
+ - `packages/*/{package.json,examples/*/package.json}` (all workspace packages)
186
+ - `packages/docs/api/**` (generated API documentation)
187
+
188
+ Commit message format:
189
+
190
+ ```
191
+ chore(release): <version>
192
+
193
+ <release notes>
194
+
195
+ [skip ci]
196
+ ```
197
+
198
+ 2. **`@semantic-release/gitlab`** creates a GitLab Release entry attached to the version tag, with all `dist/releases/*.tgz` tarballs as downloadable assets labelled "Release tarballs".
199
+
200
+ 3. **`@semantic-release/changelog`** updates `CHANGELOG.md` with generated release notes.
201
+
202
+ ---
203
+
204
+ ## Version Synchronisation
205
+
206
+ All packages in the monorepo share a **single version** at all times. This is enforced during release by `scripts/set-workspace-versions.mjs`, which:
207
+
208
+ - Sets `version` in every workspace `package.json` (including the root) to the new release version.
209
+ - Rewrites `dependencies`, `devDependencies`, `peerDependencies`, and `optionalDependencies` ranges for any `@xmachines/*` workspace package to the exact new version (no `^` or `~` prefix — a strict pinned version is written).
210
+
211
+ This means packages always depend on the exact same version of sibling packages that was released together.
212
+
213
+ ---
214
+
215
+ ## Credentials and Protected Variables
216
+
217
+ | Variable | Source | Purpose |
218
+ | --------------------------- | --------------------------------------- | ------------------------------------------------------------------------------- |
219
+ | `NPM_ID_TOKEN` | GitLab CI OIDC (auto-generated per job) | Authenticates `semantic-release` to npm registry via OIDC token exchange |
220
+ | `GL_TOKEN` / `GITLAB_TOKEN` | GitLab CI protected variable | Authenticates `@semantic-release/gitlab` for release creation and git push back |
221
+ | `CI_JOB_TOKEN` | GitLab CI built-in | Used by the `to-be-continuous` components for GitLab API calls |
222
+
223
+ **No static npm token is committed to the repository.** The `NPM_ID_TOKEN` is a short-lived OIDC token generated for each CI job with audience `npm:registry.npmjs.org`.
224
+
225
+ To publish packages, a maintainer must:
226
+
227
+ 1. Have push access to a release-eligible branch (`main`, `beta`, `pre/rc`).
228
+ 2. Ensure the GitLab project CI/CD variables include the required tokens.
229
+
230
+ ---
231
+
232
+ ## Artifacts
233
+
234
+ Release tarballs are stored as GitLab CI artifacts for **1 week** after each pipeline:
235
+
236
+ ```
237
+ dist/releases/*.tgz
238
+ ```
239
+
240
+ The same tarballs are attached to the GitLab Release entry as permanent downloadable assets. Tarballs are **not committed** to git (the `dist/` directory is gitignored).
241
+
242
+ The API documentation (`packages/docs/api/`) **is committed** to git by the post-release git commit and is the only generated artifact tracked in version control.
243
+
244
+ ---
245
+
246
+ ## Rollback Procedure
247
+
248
+ There is no automated rollback mechanism. To revert a release:
249
+
250
+ 1. **npm deprecate** (preferred) — deprecate the bad version on npm so it is hidden from installs:
251
+
252
+ ```bash
253
+ npm deprecate @xmachines/play@<bad-version> "Deprecated: use <good-version>"
254
+ ```
255
+
256
+ Repeat for each affected package.
257
+
258
+ 2. **npm unpublish** — unpublish the bad version if it was published within 72 hours and no dependents exist:
259
+
260
+ ```bash
261
+ npm unpublish @xmachines/play@<bad-version>
262
+ ```
263
+
264
+ 3. **Patch release** — push a `fix:` commit to `main` (or the relevant branch) to trigger a patch version release via semantic-release. This is the preferred long-term approach for production issues.
265
+
266
+ 4. **GitLab Release** — delete or edit the GitLab Release entry via the GitLab UI or API to remove broken tarballs. This does not affect what is on npm.
267
+
268
+ ---
269
+
270
+ ## Local Release Dry-Run (Manual)
271
+
272
+ To preview what semantic-release would do without publishing:
273
+
274
+ ```bash
275
+ # Install dependencies first
276
+ pnpm install --frozen-lockfile
277
+
278
+ # Run semantic-release in dry-run mode
279
+ pnpm exec semantic-release --dry-run --no-ci
280
+ ```
281
+
282
+ To test package packaging locally (the same check run by `release-pack-smoke` in CI):
283
+
284
+ ```bash
285
+ pnpm run build
286
+ node scripts/release-pack-smoke.mjs
287
+ ```
288
+
289
+ This packs every publishable package, installs each tarball in a temporary project, and verifies the install succeeds.
290
+
291
+ To manually version and pack a single package for local inspection:
292
+
293
+ ```bash
294
+ # From the repo root
295
+ pnpm --filter @xmachines/play run build
296
+ pnpm --filter @xmachines/play pack
297
+ ```
298
+
299
+ **Do not run `npm publish` manually.** All publishing must go through semantic-release in CI to keep `CHANGELOG.md`, git tags, and npm versions in sync.
300
+
301
+ ---
302
+
303
+ ## Monitoring
304
+
305
+ The project does not include application runtime monitoring (no Sentry, Datadog, or OpenTelemetry) — it is a library monorepo, not a deployed service.
306
+
307
+ Post-release health checks:
308
+
309
+ - **npm package availability** — verify new versions appear on `https://www.npmjs.com/package/@xmachines/<pkg>` after the pipeline completes.
310
+ - **GitLab pipeline status** — monitor the `semantic-release` job in the GitLab CI UI for the release commit.
311
+ - **GitLab Releases page** — confirm the release tag and tarball assets appear at `https://gitlab.com/xmachin-es/xmachines-js/-/releases`.
312
+ - **`packages/docs/api/` commit** — confirm the post-release git commit updated API docs on the target branch.