@xmachines/docs 1.0.0-beta.9 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +135 -7
- package/api/@xmachines/play/README.md +159 -39
- package/api/@xmachines/play/classes/NonNullableError.md +189 -0
- package/api/@xmachines/play/classes/PlayError.md +251 -0
- package/api/@xmachines/play/functions/assertNonNullable.md +56 -0
- package/api/@xmachines/play/type-aliases/PlayEvent.md +6 -6
- package/api/@xmachines/play-actor/README.md +153 -160
- package/api/@xmachines/play-actor/classes/AbstractActor.md +106 -121
- package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +40 -0
- package/api/@xmachines/play-actor/functions/toAtomState.md +33 -0
- package/api/@xmachines/play-actor/functions/typedSpec.md +54 -0
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +46 -0
- package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +33 -0
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +28 -0
- package/api/@xmachines/play-actor/interfaces/Routable.md +6 -21
- package/api/@xmachines/play-actor/interfaces/Viewable.md +12 -6
- package/api/@xmachines/play-dom/README.md +385 -0
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +115 -0
- package/api/@xmachines/play-dom/functions/createPlayUI.md +28 -0
- package/api/@xmachines/play-dom/functions/createRenderer.md +44 -0
- package/api/@xmachines/play-dom/functions/defineRegistry.md +26 -0
- package/api/@xmachines/play-dom/functions/renderSpec.md +67 -0
- package/api/@xmachines/play-dom/interfaces/ComponentContext.md +23 -0
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +34 -0
- package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +17 -0
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +28 -0
- package/api/@xmachines/play-dom/interfaces/EventHandle.md +15 -0
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +18 -0
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +30 -0
- package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +26 -0
- package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +32 -0
- package/api/@xmachines/play-dom/type-aliases/ActionFn.md +46 -0
- package/api/@xmachines/play-dom/type-aliases/Actions.md +18 -0
- package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +114 -0
- package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +25 -0
- package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +26 -0
- package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +15 -0
- package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +44 -0
- package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +39 -0
- package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +20 -0
- package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +9 -0
- package/api/@xmachines/play-dom/type-aliases/DomSchema.md +9 -0
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +27 -0
- package/api/@xmachines/play-dom/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-dom/type-aliases/SetState.md +30 -0
- package/api/@xmachines/play-dom/variables/schema.md +62 -0
- package/api/@xmachines/play-dom-router/README.md +272 -0
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +43 -0
- package/api/@xmachines/{play-router → play-dom-router}/functions/createBrowserHistory.md +10 -2
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-dom-router/functions/createRouter.md +54 -0
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +176 -0
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +69 -0
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +15 -0
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +68 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +54 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +121 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +28 -0
- package/api/@xmachines/play-react/README.md +185 -333
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +46 -42
- package/api/@xmachines/play-react/functions/ActionProvider.md +21 -0
- package/api/@xmachines/play-react/functions/JSONUIProvider.md +21 -0
- package/api/@xmachines/play-react/functions/Renderer.md +21 -0
- package/api/@xmachines/play-react/functions/StateProvider.md +27 -0
- package/api/@xmachines/play-react/functions/ValidationProvider.md +21 -0
- package/api/@xmachines/play-react/functions/VisibilityProvider.md +21 -0
- package/api/@xmachines/play-react/functions/defineRegistry.md +49 -0
- package/api/@xmachines/play-react/functions/useActor.md +13 -0
- package/api/@xmachines/play-react/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-react/functions/usePlayView.md +32 -0
- package/api/@xmachines/play-react/functions/useSignalEffect.md +29 -20
- package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +15 -0
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +27 -0
- package/api/@xmachines/play-react/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-react/interfaces/JSONUIProviderProps.md +22 -0
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +7 -7
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +6 -6
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +26 -0
- package/api/@xmachines/play-react/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-react/interfaces/StateProviderProps.md +16 -0
- package/api/@xmachines/play-react/interfaces/ValidationProviderProps.md +14 -0
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +20 -0
- package/api/@xmachines/play-react/interfaces/VisibilityProviderProps.md +13 -0
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-react/type-aliases/ComponentFn.md +36 -0
- package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-react/variables/ActorProvider.md +33 -0
- package/api/@xmachines/play-react/variables/PlayRenderer.md +6 -56
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +43 -0
- package/api/@xmachines/play-react-router/README.md +130 -115
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +19 -242
- package/api/@xmachines/play-react-router/classes/RouteMap.md +48 -36
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +45 -0
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +23 -12
- package/api/@xmachines/play-react-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +19 -9
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +32 -0
- package/api/@xmachines/play-router/README.md +275 -352
- package/api/@xmachines/play-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +21 -221
- package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +32 -0
- package/api/@xmachines/play-router/functions/buildRouteTree.md +12 -2
- package/api/@xmachines/play-router/functions/createRouteMap.md +22 -36
- package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +46 -0
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +14 -7
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +10 -46
- package/api/@xmachines/play-router/functions/extractQuery.md +22 -0
- package/api/@xmachines/play-router/functions/extractRouteParams.md +54 -0
- package/api/@xmachines/play-router/functions/findRouteById.md +2 -2
- package/api/@xmachines/play-router/functions/findRouteByPath.md +2 -2
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +2 -2
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +2 -2
- package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +43 -0
- package/api/@xmachines/play-router/functions/isRouteReachable.md +38 -0
- package/api/@xmachines/play-router/functions/machineToGraph.md +19 -0
- package/api/@xmachines/play-router/functions/routeExists.md +2 -2
- package/api/@xmachines/play-router/functions/sanitizePathname.md +40 -0
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +10 -9
- package/api/@xmachines/play-router/functions/validateStateExists.md +9 -9
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +13 -0
- package/api/@xmachines/play-router/interfaces/LocationLike.md +27 -0
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +15 -0
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +17 -0
- package/api/@xmachines/play-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +17 -0
- package/api/@xmachines/play-router/interfaces/RoutableActor.md +64 -0
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +11 -11
- package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +12 -0
- package/api/@xmachines/play-router/interfaces/RouteNode.md +13 -13
- package/api/@xmachines/play-router/interfaces/RouteObject.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteTree.md +8 -7
- package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +55 -0
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-router/interfaces/WindowLike.md +65 -0
- package/api/@xmachines/play-router/type-aliases/MachineGraph.md +20 -0
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +2 -2
- package/api/@xmachines/play-signals/README.md +117 -65
- package/api/@xmachines/play-signals/functions/watchSignal.md +42 -0
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +7 -5
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +3 -3
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +7 -5
- package/api/@xmachines/play-signals/interfaces/SignalState.md +4 -4
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +5 -5
- package/api/@xmachines/play-signals/namespaces/Signal/README.md +1 -1
- package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +7 -7
- package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +8 -8
- package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +7 -7
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +1 -1
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +9 -9
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +2 -2
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +2 -2
- package/api/@xmachines/play-solid/README.md +196 -233
- package/api/@xmachines/play-solid/functions/ActionProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/JSONUIProvider.md +21 -0
- package/api/@xmachines/play-solid/functions/Renderer.md +21 -0
- package/api/@xmachines/play-solid/functions/StateProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/ValidationProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/VisibilityProvider.md +20 -0
- package/api/@xmachines/play-solid/functions/defineRegistry.md +49 -0
- package/api/@xmachines/play-solid/functions/useAction.md +24 -0
- package/api/@xmachines/play-solid/functions/useActions.md +13 -0
- package/api/@xmachines/play-solid/functions/useActor.md +13 -0
- package/api/@xmachines/play-solid/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-solid/functions/useFieldValidation.md +29 -0
- package/api/@xmachines/play-solid/functions/useIsVisible.md +19 -0
- package/api/@xmachines/play-solid/functions/useOptionalValidation.md +13 -0
- package/api/@xmachines/play-solid/functions/usePlayView.md +30 -0
- package/api/@xmachines/play-solid/functions/useStateBinding.md +25 -0
- package/api/@xmachines/play-solid/functions/useStateStore.md +13 -0
- package/api/@xmachines/play-solid/functions/useStateValue.md +25 -0
- package/api/@xmachines/play-solid/functions/useVisibility.md +13 -0
- package/api/@xmachines/play-solid/interfaces/ActionProviderProps.md +12 -0
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +30 -0
- package/api/@xmachines/play-solid/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-solid/interfaces/DefineRegistryResult.md +15 -0
- package/api/@xmachines/play-solid/interfaces/JSONUIProviderProps.md +22 -0
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +26 -0
- package/api/@xmachines/play-solid/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-solid/interfaces/StateProviderProps.md +13 -0
- package/api/@xmachines/play-solid/interfaces/ValidationProviderProps.md +11 -0
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +21 -0
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-solid/type-aliases/ComponentFn.md +36 -0
- package/api/@xmachines/play-solid/type-aliases/ComponentRegistry.md +11 -0
- package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-solid/type-aliases/SetState.md +21 -0
- package/api/@xmachines/play-solid/type-aliases/VisibilityProviderProps.md +9 -0
- package/api/@xmachines/play-solid/variables/ActorContext.md +13 -0
- package/api/@xmachines/play-solid/variables/ActorProvider.md +27 -0
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +6 -62
- package/api/@xmachines/play-solid/variables/PlayUIProvider.md +26 -0
- package/api/@xmachines/play-solid-router/README.md +151 -559
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +31 -32
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +27 -242
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +44 -0
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +18 -11
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +99 -114
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +30 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +20 -7
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +34 -0
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +22 -19
- package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +52 -0
- package/api/@xmachines/play-svelte/README.md +270 -0
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +31 -0
- package/api/@xmachines/play-svelte/functions/getActorContext.md +21 -0
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +19 -0
- package/api/@xmachines/play-svelte/functions/setActorContext.md +19 -0
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +44 -0
- package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +29 -0
- package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +29 -0
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +24 -0
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +43 -0
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +24 -0
- package/api/@xmachines/play-svelte/type-aliases/ActionFn.md +30 -0
- package/api/@xmachines/play-svelte/type-aliases/Actions.md +17 -0
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-svelte/type-aliases/ComponentFn.md +18 -0
- package/api/@xmachines/play-svelte/type-aliases/JSONUIProviderProps.md +7 -0
- package/api/@xmachines/play-svelte/type-aliases/PlayRenderer.md +9 -0
- package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-svelte/type-aliases/SetState.md +21 -0
- package/api/@xmachines/play-svelte/variables/PlayRenderer.md +9 -0
- package/api/@xmachines/play-svelte-spa-router/README.md +197 -0
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +32 -0
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +17 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +65 -0
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-sveltekit-router/README.md +212 -0
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +32 -0
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +27 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-tanstack-react-router/README.md +155 -125
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +48 -36
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +31 -252
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +45 -0
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +22 -36
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +23 -12
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +28 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +19 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +2 -2
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +40 -18
- package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +34 -0
- package/api/@xmachines/play-tanstack-router/README.md +61 -0
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +131 -0
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +57 -0
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +100 -0
- package/api/@xmachines/play-tanstack-solid-router/README.md +216 -175
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +31 -32
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +121 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +44 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +18 -11
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +31 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +23 -9
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +14 -10
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +40 -18
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +33 -0
- package/api/@xmachines/play-vue/README.md +190 -210
- package/api/@xmachines/play-vue/functions/defineRegistry.md +32 -0
- package/api/@xmachines/play-vue/functions/getPlayViewContext.md +28 -0
- package/api/@xmachines/play-vue/functions/useActor.md +13 -0
- package/api/@xmachines/play-vue/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-vue/interfaces/ActionProviderProps.md +12 -0
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +25 -0
- package/api/@xmachines/play-vue/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-vue/interfaces/DefineRegistryResult.md +15 -0
- package/api/@xmachines/play-vue/interfaces/JSONUIProviderProps.md +21 -0
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +24 -0
- package/api/@xmachines/play-vue/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-vue/interfaces/StateProviderProps.md +15 -0
- package/api/@xmachines/play-vue/interfaces/ValidationProviderProps.md +11 -0
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +21 -0
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +5 -0
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +16 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentFn.md +35 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +15 -0
- package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +22 -0
- package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-vue/variables/ActionProvider.md +64 -0
- package/api/@xmachines/play-vue/variables/JSONUIProvider.md +105 -0
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +2 -2
- package/api/@xmachines/play-vue/variables/Renderer.md +88 -0
- package/api/@xmachines/play-vue/variables/StateProvider.md +79 -0
- package/api/@xmachines/play-vue/variables/ValidationProvider.md +55 -0
- package/api/@xmachines/play-vue/variables/VisibilityProvider.md +40 -0
- package/api/@xmachines/play-vue-router/README.md +173 -486
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +56 -116
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +23 -271
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +26 -6
- package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +20 -8
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +12 -6
- package/api/@xmachines/play-xstate/README.md +203 -354
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +195 -201
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +24 -20
- package/api/@xmachines/play-xstate/functions/composeGuards.md +8 -3
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +8 -3
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +43 -0
- package/api/@xmachines/play-xstate/functions/definePlayer.md +14 -63
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +3 -3
- package/api/@xmachines/play-xstate/functions/eventMatches.md +8 -3
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +3 -3
- package/api/@xmachines/play-xstate/functions/hasContext.md +8 -5
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +2 -2
- package/api/@xmachines/play-xstate/functions/negateGuard.md +8 -3
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +10 -14
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +22 -0
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +14 -16
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +15 -13
- package/api/@xmachines/play-xstate/interfaces/RouteObject.md +17 -0
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +8 -3
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +8 -6
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +9 -7
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +15 -18
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +15 -5
- package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +9 -0
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +22 -6
- package/api/@xmachines/shared/README.md +95 -295
- package/api/@xmachines/shared/vite-aliases/README.md +11 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +38 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +27 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +35 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +42 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +33 -0
- package/api/@xmachines/shared/vitest/README.md +12 -0
- package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +42 -0
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +34 -0
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +16 -0
- package/api/README.md +6 -7
- package/api/llms.txt +72 -23
- package/contributing/README.md +10 -0
- package/contributing/architecture.md +601 -0
- package/contributing/configuration.md +368 -0
- package/contributing/deployment.md +333 -0
- package/contributing/development.md +503 -0
- package/contributing/testing.md +461 -0
- package/examples/@xmachines/play-dom-demo/README.md +181 -0
- package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +24 -0
- package/examples/@xmachines/play-dom-demo/functions/initShell.md +25 -0
- package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-dom-demo/variables/About.md +12 -0
- package/examples/@xmachines/play-dom-demo/variables/Contact.md +12 -0
- package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Home.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Login.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +16 -0
- package/examples/@xmachines/play-dom-demo/variables/Navigation.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Overview.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Profile.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Settings.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Stats.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-dom-router-demo/README.md +145 -0
- package/examples/@xmachines/play-react-demo/README.md +187 -0
- package/examples/@xmachines/play-react-demo/functions/App.md +13 -0
- package/examples/@xmachines/play-react-demo/functions/DebugPanel.md +20 -0
- package/examples/@xmachines/play-react-demo/functions/HeaderNav.md +20 -0
- package/examples/@xmachines/play-react-demo/functions/Shell.md +22 -0
- package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-react-demo/variables/About.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Contact.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Dashboard.md +15 -0
- package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +16 -0
- package/examples/@xmachines/play-react-demo/variables/Home.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Login.md +16 -0
- package/examples/@xmachines/play-react-demo/variables/NavBar.md +16 -0
- package/examples/@xmachines/play-react-demo/variables/NavBarView.md +15 -0
- package/examples/@xmachines/play-react-demo/variables/Navigation.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Overview.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Profile.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Settings.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Shell.md +19 -0
- package/examples/@xmachines/play-react-demo/variables/Stats.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-react-router-demo/README.md +151 -0
- package/examples/@xmachines/play-solid-demo/README.md +187 -0
- package/examples/@xmachines/play-solid-demo/functions/App.md +13 -0
- package/examples/@xmachines/play-solid-demo/functions/DebugPanel.md +20 -0
- package/examples/@xmachines/play-solid-demo/functions/HeaderNav.md +20 -0
- package/examples/@xmachines/play-solid-demo/functions/Shell.md +22 -0
- package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/About.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Contact.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +17 -0
- package/examples/@xmachines/play-solid-demo/variables/Home.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Login.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/NavBar.md +11 -0
- package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +15 -0
- package/examples/@xmachines/play-solid-demo/variables/Navigation.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Overview.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Profile.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Settings.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Shell.md +18 -0
- package/examples/@xmachines/play-solid-demo/variables/Stats.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-solid-router-demo/README.md +137 -0
- package/examples/@xmachines/play-svelte-demo/README.md +143 -0
- package/examples/@xmachines/play-svelte-demo/type-aliases/App.md +9 -0
- package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-svelte-demo/variables/App.md +9 -0
- package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-svelte-spa-router-demo/README.md +129 -0
- package/examples/@xmachines/play-sveltekit-router-demo/README.md +133 -0
- package/examples/@xmachines/play-tanstack-react-router-demo/README.md +156 -0
- package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +139 -0
- package/examples/@xmachines/play-vue-demo/README.md +183 -0
- package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-vue-demo/variables/App.md +9 -0
- package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-vue-router-demo/README.md +139 -0
- package/examples/README.md +78 -30
- package/examples/basic-state-machine.md +73 -31
- package/examples/form-validation.md +259 -118
- package/examples/multi-router-integration.md +312 -194
- package/examples/routing-patterns.md +228 -189
- package/examples/traffic-light.md +112 -65
- package/guides/README.md +7 -21
- package/guides/actor-model.md +180 -0
- package/guides/getting-started.md +627 -137
- package/guides/signals.md +166 -0
- package/guides/state-machines.md +284 -0
- package/package.json +21 -7
- package/rfc/broker.md +100 -0
- package/rfc/browser.md +44 -0
- package/rfc/cli.md +118 -0
- package/rfc/git.md +61 -0
- package/rfc/mcp.md +43 -0
- package/rfc/node.md +36 -0
- package/rfc/play.md +472 -0
- package/rfc/rest.md +102 -0
- package/rfc/run.md +159 -0
- package/rfc/streams.md +168 -0
- package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +0 -17
- package/api/@xmachines/play-catalog/README.md +0 -331
- package/api/@xmachines/play-catalog/functions/defineCatalog.md +0 -98
- package/api/@xmachines/play-catalog/functions/defineComponents.md +0 -134
- package/api/@xmachines/play-catalog/type-aliases/Catalog.md +0 -48
- package/api/@xmachines/play-catalog/type-aliases/ComponentsFor.md +0 -20
- package/api/@xmachines/play-catalog/type-aliases/InferComponentProps.md +0 -65
- package/api/@xmachines/play-catalog/type-aliases/NoExtraKeys.md +0 -17
- package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +0 -15
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-react-router-demo/README.md +0 -137
- package/api/@xmachines/play-router/classes/BaseRouteMap.md +0 -142
- package/api/@xmachines/play-router/functions/connectRouter.md +0 -67
- package/api/@xmachines/play-router/functions/crawlMachine.md +0 -92
- package/api/@xmachines/play-router/functions/createRouter.md +0 -76
- package/api/@xmachines/play-router/functions/extractRoute.md +0 -45
- package/api/@xmachines/play-router/interfaces/BaseRouteMapping.md +0 -27
- package/api/@xmachines/play-router/interfaces/BrowserHistory.md +0 -172
- package/api/@xmachines/play-router/interfaces/BrowserWindow.md +0 -69
- package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +0 -13
- package/api/@xmachines/play-router/interfaces/RouteMap.md +0 -56
- package/api/@xmachines/play-router/interfaces/StateVisit.md +0 -15
- package/api/@xmachines/play-router/interfaces/VanillaRouter.md +0 -28
- package/api/@xmachines/play-router-demo/README.md +0 -137
- package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +0 -15
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-solid-router-demo/README.md +0 -127
- package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +0 -38
- package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +0 -33
- package/api/@xmachines/play-tanstack-react-router/variables/extractMachineRoutes.md +0 -64
- package/api/@xmachines/play-tanstack-react-router-demo/README.md +0 -126
- package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +0 -343
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-tanstack-solid-router-demo/README.md +0 -126
- package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +0 -14
- package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +0 -201
- package/api/@xmachines/play-vue-router-demo/README.md +0 -133
- package/api/@xmachines/play-xstate/functions/mergeViewProps.md +0 -26
- package/api/@xmachines/play-xstate/functions/stateMatches.md +0 -25
- package/api/@xmachines/play-xstate/functions/validateComponentBinding.md +0 -39
- package/api/@xmachines/play-xstate/functions/validateViewProps.md +0 -80
- package/api/@xmachines/play-xstate/interfaces/CatalogEntry.md +0 -16
- package/api/@xmachines/play-xstate/type-aliases/Catalog.md +0 -21
- package/api/@xmachines/play-xstate/type-aliases/ValidationResult.md +0 -17
- package/api/@xmachines/play-xstate/type-aliases/ViewMergeContext.md +0 -35
- package/api/@xmachines/shared/functions/defineXmVitestConfig.md +0 -29
- package/api/@xmachines/shared/functions/xmAliases.md +0 -24
- package/guides/installation.md +0 -323
|
@@ -0,0 +1,503 @@
|
|
|
1
|
+
# Development
|
|
2
|
+
|
|
3
|
+
This guide covers everything you need to set up a local development environment, understand the build system, and contribute code to the XMachines JS monorepo.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Local Setup](#local-setup)
|
|
8
|
+
- [Monorepo Structure](#monorepo-structure)
|
|
9
|
+
- [Build Commands](#build-commands)
|
|
10
|
+
- [Updating Dependencies](#updating-dependencies)
|
|
11
|
+
- [TypeScript Composite Build System](#typescript-composite-build-system)
|
|
12
|
+
- [Code Style](#code-style)
|
|
13
|
+
- [Branch Conventions](#branch-conventions)
|
|
14
|
+
- [PR Process](#pr-process)
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Local Setup
|
|
19
|
+
|
|
20
|
+
### Prerequisites
|
|
21
|
+
|
|
22
|
+
- **Node.js** `>= 22.0.0`
|
|
23
|
+
- **pnpm** via corepack (`corepack enable`; version pinned by the `packageManager` field — the project uses pnpm workspaces)
|
|
24
|
+
- **Git**
|
|
25
|
+
|
|
26
|
+
No global tool installs are required beyond Node.js. All build, lint, and format tooling is installed locally via `pnpm install --frozen-lockfile`.
|
|
27
|
+
|
|
28
|
+
### Clone and Install
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
git clone git@gitlab.com:xmachin-es/xmachines-js.git
|
|
32
|
+
cd xmachines-js
|
|
33
|
+
pnpm install --frozen-lockfile
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
> **Use `pnpm install --frozen-lockfile` (not `pnpm install`)** — it installs the exact versions from the lockfile.
|
|
37
|
+
|
|
38
|
+
### Build
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pnpm run build
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The root-level `tsc --build` command uses TypeScript project references to build all packages in the correct dependency order automatically. You never need to sequence builds manually.
|
|
45
|
+
|
|
46
|
+
To build a single package (and its upstream dependencies):
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
pnpm --filter @xmachines/<package-name> run build
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Dev Container (Optional)
|
|
53
|
+
|
|
54
|
+
A fully configured dev container is provided at `.devcontainer/`. It includes Docker-outside-of-Docker, Claude Code, and OpenCode.
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
pnpm run devcontainer:up
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Or open the repository in VS Code and choose **Reopen in Container** when prompted.
|
|
61
|
+
|
|
62
|
+
### Verify Your Setup
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
pnpm test # Run the full test suite
|
|
66
|
+
pnpm run lint # Check for lint errors
|
|
67
|
+
pnpm run format:check # Check formatting without modifying files
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
All three should pass without errors on a freshly cloned repository.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Monorepo Structure
|
|
75
|
+
|
|
76
|
+
The repository is organized as a **pnpm workspaces** monorepo with all packages under `packages/`:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
packages/
|
|
80
|
+
├── shared/ # Shared configs (tsconfig, oxlint, oxfmt, vitest)
|
|
81
|
+
├── play/ # Core protocol (PlayEvent, PlayError)
|
|
82
|
+
├── play-signals/ # TC39 Signals polyfill wrapper
|
|
83
|
+
├── play-actor/ # Abstract actor base (AbstractActor, Routable, Viewable)
|
|
84
|
+
├── play-xstate/ # XState v5 adapter (definePlayer, PlayerActor)
|
|
85
|
+
├── play-router/ # Route extraction and RouterBridgeBase
|
|
86
|
+
├── play-dom/ # Vanilla DOM renderer
|
|
87
|
+
├── play-dom-router/ # DOM router adapter
|
|
88
|
+
├── play-react/ # React renderer (PlayRenderer)
|
|
89
|
+
├── play-react-router/ # React Router v7 adapter
|
|
90
|
+
├── play-vue/ # Vue 3 renderer
|
|
91
|
+
├── play-vue-router/ # Vue Router adapter
|
|
92
|
+
├── play-solid/ # SolidJS renderer
|
|
93
|
+
├── play-solid-router/ # SolidJS Router adapter
|
|
94
|
+
├── play-svelte/ # Svelte renderer
|
|
95
|
+
├── play-svelte-spa-router/ # Svelte SPA Router adapter
|
|
96
|
+
├── play-sveltekit-router/ # SvelteKit Router adapter
|
|
97
|
+
├── play-tanstack-react-router/ # TanStack Router (React)
|
|
98
|
+
├── play-tanstack-solid-router/ # TanStack Router (SolidJS)
|
|
99
|
+
└── docs/ # API docs, guides, RFCs (@xmachines/docs)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Many packages also contain an `examples/` subdirectory with runnable demo apps.
|
|
103
|
+
|
|
104
|
+
### Standard Package Layout
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
packages/<name>/
|
|
108
|
+
├── src/ # TypeScript source files
|
|
109
|
+
├── dist/ # Build output (gitignored)
|
|
110
|
+
├── test/ # Test files (*.spec.ts or *.test.ts)
|
|
111
|
+
├── examples/ # Runnable demo apps (optional)
|
|
112
|
+
├── package.json # Must have "type": "module"
|
|
113
|
+
├── tsconfig.json # Composite build config (extends tsconfig.base.json)
|
|
114
|
+
├── tsconfig.base.json # Local base (extends @xmachines/shared/tsconfig)
|
|
115
|
+
├── vitest.config.ts # Package test config
|
|
116
|
+
└── README.md
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Build Commands
|
|
122
|
+
|
|
123
|
+
All commands are run from the **repository root** unless otherwise noted.
|
|
124
|
+
|
|
125
|
+
| Command | Description |
|
|
126
|
+
| ------------------------------------------ | --------------------------------------------------------------------- |
|
|
127
|
+
| `pnpm run build` | TypeScript composite build — all packages in dependency order |
|
|
128
|
+
| `pnpm --filter @xmachines/<pkg> run build` | Build a single package (and its deps) |
|
|
129
|
+
| `pnpm run clean` | Remove coverage, Vite caches, and all `dist/` directories in packages |
|
|
130
|
+
| `pnpm test` | Run all unit/integration tests once |
|
|
131
|
+
| `pnpm run test:watch` | Re-run tests on file changes (interactive) |
|
|
132
|
+
| `pnpm run test:browser` | Run Playwright browser tests |
|
|
133
|
+
| `pnpm run test:coverage` | Run tests with V8 coverage reporting |
|
|
134
|
+
| `pnpm run test:browser:coverage` | Run browser tests with coverage reporting |
|
|
135
|
+
| `pnpm run test:build` | Type-check test files without running them (`tsconfig.test.json`) |
|
|
136
|
+
| `pnpm run lint` | Lint all packages with oxlint |
|
|
137
|
+
| `pnpm run lint:fix` | Auto-fix lint issues |
|
|
138
|
+
| `pnpm run format` | Format all files with oxfmt |
|
|
139
|
+
| `pnpm run format:check` | Check formatting (CI mode — no writes) |
|
|
140
|
+
| `pnpm run docs` | Build packages, generate TypeDoc API docs, then format |
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Updating Dependencies
|
|
145
|
+
|
|
146
|
+
Every dependency is declared with the same range in every manifest that uses it, and a test fails if two disagree — `pnpm update` should move a package everywhere at once, not leave one package a minor behind.
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
pnpm update -r # move within the declared ranges
|
|
150
|
+
pnpm update -r --latest # move the ranges themselves
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
`pnpm update -r` alone will not move a `0.x` dependency past its current minor: a caret on a `0.x` version means `>=0.58.0 <0.59.0`, because minors are where a pre-1.0 package is allowed to break. `oxfmt` sat six minors behind that way while `pnpm outdated` reported it on every pipeline. Use `--latest` for those, and read what changed.
|
|
154
|
+
|
|
155
|
+
Two dependencies are pinned on purpose and must not be swept up:
|
|
156
|
+
|
|
157
|
+
| Dependency | Constraint | Why |
|
|
158
|
+
| ------------ | ------------------------------------ | --------------------------------------------------------------------------------------------------- |
|
|
159
|
+
| `playwright` | exact, equal to `PLAYWRIGHT_VERSION` | The browsers are baked into the CI image; the browser job fails on any mismatch |
|
|
160
|
+
| `typescript` | `^5.9.3 \|\| ^6.0.3` | TypeScript 7 ships no programmatic compiler API, which TypeDoc and `@vue/compiler-sfc` both require |
|
|
161
|
+
|
|
162
|
+
New versions also wait out pnpm's `minimumReleaseAge` (24 hours) before they can be installed at all.
|
|
163
|
+
|
|
164
|
+
### Peer ranges are wider than what CI installs
|
|
165
|
+
|
|
166
|
+
`peerDependencies` and `devDependencies` say different things about the same package, so the one-range rule does not apply across them and the test exempts peers.
|
|
167
|
+
|
|
168
|
+
A peer range is a contract with the consumer: _bring your own React, anything in this range works_. It is deliberately wide, because the application owns that dependency — narrowing it forces consumers to upgrade in lockstep, or leaves two copies of a framework in their bundle. A dev range is what this repository installs to compile and test, and is concrete because CI needs one resolution.
|
|
169
|
+
|
|
170
|
+
So `react: ^18.0.0 || ^19.0.0` as a peer alongside `react: ^19.2.5` as a dev dependency is the correct pairing, not drift.
|
|
171
|
+
|
|
172
|
+
What that costs is worth stating plainly: **CI only ever exercises the dev version.** Two peers currently claim support across a major boundary that nothing here tests:
|
|
173
|
+
|
|
174
|
+
| Package | Peer range | Tested against |
|
|
175
|
+
| --------------------- | ---------------------- | -------------- |
|
|
176
|
+
| `react` / `react-dom` | `^18.0.0 \|\| ^19.0.0` | 19.x |
|
|
177
|
+
| `vue-router` | `^4.0.0 \|\| ^5.0.0` | 5.x |
|
|
178
|
+
|
|
179
|
+
React 18 and vue-router 4 are supported by intent — nothing known depends on 19-only or 5-only behaviour — but neither is installed by any job, so a regression there would surface as a consumer's bug report rather than a red pipeline. Narrowing either range to what is tested would be a breaking change for consumers and needs a major release; adding a floor-install job would close the gap instead. Until one of those happens, treat the lower major as untested.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## TypeScript Composite Build System
|
|
184
|
+
|
|
185
|
+
The monorepo uses **TypeScript project references** for correct build-order management. No manual sequencing or separate build scripts are needed.
|
|
186
|
+
|
|
187
|
+
### How It Works
|
|
188
|
+
|
|
189
|
+
- The **root `tsconfig.json`** coordinates all packages via a `references` array — it compiles nothing itself
|
|
190
|
+
- Each package has `composite: true` in its own `tsconfig.json`, enabling incremental and referenced builds
|
|
191
|
+
- Packages declare `references` to their `@xmachines/*` dependencies so `tsc --build` resolves order automatically
|
|
192
|
+
- With `declarationMap: true` in the base config, **Go to Definition** in your IDE navigates to `.ts` source files rather than compiled `.d.ts` files
|
|
193
|
+
|
|
194
|
+
### Build Layers
|
|
195
|
+
|
|
196
|
+
Packages are grouped into dependency layers as defined in the root `tsconfig.json`:
|
|
197
|
+
|
|
198
|
+
| Layer | Packages | Depends on |
|
|
199
|
+
| ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
|
|
200
|
+
| 0 | `play-signals`, `play`, `docs` | External libs only |
|
|
201
|
+
| 1 | `play-actor` | Layer 0 |
|
|
202
|
+
| 2 | `play-router`, `play-dom-router`, `play-sveltekit-router`, `play-xstate`, `play-react`, `play-vue`, `play-solid`, `play-svelte`, `play-dom`, `play-tanstack-react-router`, `play-vue-router`, `play-solid-router`, `play-svelte-spa-router`, `play-tanstack-solid-router` | Layers 0–1 |
|
|
203
|
+
| 3 | `play-react-router`, example demo apps | Layer 2 |
|
|
204
|
+
|
|
205
|
+
#### Mermaid Diagram
|
|
206
|
+
|
|
207
|
+
```mermaid
|
|
208
|
+
flowchart LR
|
|
209
|
+
subgraph L0["Layer 0 — no internal deps"]
|
|
210
|
+
play-signals
|
|
211
|
+
play
|
|
212
|
+
docs
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
subgraph L1["Layer 1"]
|
|
216
|
+
play-actor
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
subgraph L2["Layer 2 — view renderers & router adapters"]
|
|
220
|
+
play-router
|
|
221
|
+
play-dom-router
|
|
222
|
+
play-sveltekit-router
|
|
223
|
+
play-xstate
|
|
224
|
+
play-react
|
|
225
|
+
play-vue
|
|
226
|
+
play-solid
|
|
227
|
+
play-svelte
|
|
228
|
+
play-dom
|
|
229
|
+
play-tanstack-react-router
|
|
230
|
+
play-vue-router
|
|
231
|
+
play-solid-router
|
|
232
|
+
play-svelte-spa-router
|
|
233
|
+
play-tanstack-solid-router
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
subgraph L3["Layer 3 — application layer"]
|
|
237
|
+
play-react-router
|
|
238
|
+
examples["example demo apps"]
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
L0 --> L1
|
|
242
|
+
L1 --> L2
|
|
243
|
+
L2 --> L3
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Adding a New Package
|
|
247
|
+
|
|
248
|
+
1. **Create the package directory** following the standard structure:
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
packages/<your-package>/
|
|
252
|
+
├── src/
|
|
253
|
+
│ └── index.ts
|
|
254
|
+
├── test/
|
|
255
|
+
├── package.json # must have "type": "module"
|
|
256
|
+
├── tsconfig.json
|
|
257
|
+
├── tsconfig.base.json
|
|
258
|
+
├── vitest.config.ts
|
|
259
|
+
└── README.md
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
2. **`tsconfig.base.json`** — extend the shared config:
|
|
263
|
+
|
|
264
|
+
```json
|
|
265
|
+
{
|
|
266
|
+
"$schema": "https://json.schemastore.org/tsconfig",
|
|
267
|
+
"extends": "@xmachines/shared/tsconfig",
|
|
268
|
+
"compilerOptions": {
|
|
269
|
+
"skipLibCheck": true
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
If the package depends on other monorepo packages, add `references`:
|
|
275
|
+
|
|
276
|
+
```json
|
|
277
|
+
{
|
|
278
|
+
"extends": "@xmachines/shared/tsconfig",
|
|
279
|
+
"compilerOptions": { "skipLibCheck": true },
|
|
280
|
+
"references": [{ "path": "../play" }, { "path": "../play-actor" }]
|
|
281
|
+
}
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
3. **`tsconfig.json`** — enable composite build:
|
|
285
|
+
|
|
286
|
+
```json
|
|
287
|
+
{
|
|
288
|
+
"$schema": "https://json.schemastore.org/tsconfig",
|
|
289
|
+
"extends": "./tsconfig.base.json",
|
|
290
|
+
"compilerOptions": {
|
|
291
|
+
"composite": true,
|
|
292
|
+
"rootDir": "./src",
|
|
293
|
+
"outDir": "./dist"
|
|
294
|
+
},
|
|
295
|
+
"include": ["src/**/*"]
|
|
296
|
+
}
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
4. **Register in root `tsconfig.json`** — add a reference in the correct layer:
|
|
300
|
+
|
|
301
|
+
```json
|
|
302
|
+
{
|
|
303
|
+
"references": [{ "path": "./packages/your-package" }]
|
|
304
|
+
}
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
5. **Register in root `tsconfig.test.json`** and **root `vitest.config.ts`** (`projects` array).
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## Code Style
|
|
312
|
+
|
|
313
|
+
All style rules are **mandatory** — CI enforces them on every merge request.
|
|
314
|
+
|
|
315
|
+
### Formatter — oxfmt
|
|
316
|
+
|
|
317
|
+
oxfmt (Biome-based) is configured via `oxfmt.config.ts` at the root (extends `@xmachines/shared/oxfmt`).
|
|
318
|
+
|
|
319
|
+
```bash
|
|
320
|
+
pnpm run format # Format all files
|
|
321
|
+
pnpm run format:check # Check without writing (CI mode)
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
Key settings (from `packages/shared/config/oxfmt.config.ts`):
|
|
325
|
+
|
|
326
|
+
| Setting | Value |
|
|
327
|
+
| --------------- | ------------------------------------- |
|
|
328
|
+
| Print width | 100 characters |
|
|
329
|
+
| Indentation | Tabs (`useTabs: true`, `tabWidth: 4`) |
|
|
330
|
+
| Semicolons | Always (`semi: true`) |
|
|
331
|
+
| Quotes | Double (`singleQuote: false`) |
|
|
332
|
+
| Trailing commas | All |
|
|
333
|
+
| JSON / YAML | 2-space indent (override) |
|
|
334
|
+
|
|
335
|
+
### Linter — oxlint
|
|
336
|
+
|
|
337
|
+
oxlint is configured via `oxlint.config.ts` at the root (extends `@xmachines/shared/oxlint`).
|
|
338
|
+
|
|
339
|
+
```bash
|
|
340
|
+
pnpm run lint # Lint all packages
|
|
341
|
+
pnpm run lint:fix # Auto-fix lint issues
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
Active plugins: `typescript`, `unicorn`, `import`. Key rules:
|
|
345
|
+
|
|
346
|
+
| Rule | Severity |
|
|
347
|
+
| ---------------------------- | ------------------------------ |
|
|
348
|
+
| `typescript/no-explicit-any` | error |
|
|
349
|
+
| `import/no-cycle` | error |
|
|
350
|
+
| `typescript/no-unused-vars` | error (prefix unused with `_`) |
|
|
351
|
+
| `correctness` category | error |
|
|
352
|
+
| `suspicious` category | warn |
|
|
353
|
+
|
|
354
|
+
### Editor Config
|
|
355
|
+
|
|
356
|
+
`.editorconfig` is present at the root and enforces:
|
|
357
|
+
|
|
358
|
+
- Tabs for indentation in all source files
|
|
359
|
+
- 2-space indent for JSON/YAML
|
|
360
|
+
- LF line endings, UTF-8, insert final newline
|
|
361
|
+
|
|
362
|
+
### TypeScript Strict Mode
|
|
363
|
+
|
|
364
|
+
All packages extend `@xmachines/shared/tsconfig` which enables full strict mode. Mandatory constraints:
|
|
365
|
+
|
|
366
|
+
| Option | Value |
|
|
367
|
+
| ---------------------------- | ------ |
|
|
368
|
+
| `strict` | `true` |
|
|
369
|
+
| `noUnusedLocals` | `true` |
|
|
370
|
+
| `noUnusedParameters` | `true` |
|
|
371
|
+
| `noImplicitReturns` | `true` |
|
|
372
|
+
| `noImplicitOverride` | `true` |
|
|
373
|
+
| `exactOptionalPropertyTypes` | `true` |
|
|
374
|
+
| `verbatimModuleSyntax` | `true` |
|
|
375
|
+
| `isolatedModules` | `true` |
|
|
376
|
+
|
|
377
|
+
Use `unknown` with type guards instead of `any`. Prefix unused locals/parameters with `_` to suppress errors.
|
|
378
|
+
|
|
379
|
+
### Import Rules
|
|
380
|
+
|
|
381
|
+
1. Always use `.js` extensions in imports, even for TypeScript source files:
|
|
382
|
+
|
|
383
|
+
```typescript
|
|
384
|
+
// ✅ Correct
|
|
385
|
+
import { PlayError } from "./errors.js";
|
|
386
|
+
|
|
387
|
+
// ❌ Wrong — will not resolve at runtime with NodeNext module resolution
|
|
388
|
+
import { PlayError } from "./errors";
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
2. Use `import type` for type-only imports (required by `verbatimModuleSyntax`):
|
|
392
|
+
|
|
393
|
+
```typescript
|
|
394
|
+
import type { RouteNode, RouteTree } from "../src/types.js";
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
3. Import order: Node.js built-ins (`node:` prefix) → external packages → internal `@xmachines/*` packages → relative imports
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
## Branch Conventions
|
|
402
|
+
|
|
403
|
+
Use a `<type>/` prefix that matches the conventional commit type for the work being done:
|
|
404
|
+
|
|
405
|
+
```
|
|
406
|
+
feat/vue-router-adapter
|
|
407
|
+
fix/signal-watcher-cleanup
|
|
408
|
+
docs/play-actor-jsdoc
|
|
409
|
+
chore/update-vitest-4
|
|
410
|
+
refactor/route-map-extraction
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
Release branches are managed by the project maintainers:
|
|
414
|
+
|
|
415
|
+
| Branch | Purpose |
|
|
416
|
+
| ------- | ------------------------- |
|
|
417
|
+
| `main` | Stable releases |
|
|
418
|
+
| `rc` | Release candidate channel |
|
|
419
|
+
| `beta` | Pre-release beta channel |
|
|
420
|
+
| `alpha` | Pre-release alpha channel |
|
|
421
|
+
| `pre` | Pre-release channel |
|
|
422
|
+
|
|
423
|
+
**Do not** manually version packages or create release branches — semantic-release owns the version, and a release is cut by starting its manual CI job.
|
|
424
|
+
|
|
425
|
+
---
|
|
426
|
+
|
|
427
|
+
## PR Process
|
|
428
|
+
|
|
429
|
+
### Commit Messages
|
|
430
|
+
|
|
431
|
+
This project uses **Conventional Commits** — changelogs and version bumps are generated automatically from commit history.
|
|
432
|
+
|
|
433
|
+
```
|
|
434
|
+
<type>[(<scope>)][!]: <short description>
|
|
435
|
+
|
|
436
|
+
[optional body]
|
|
437
|
+
|
|
438
|
+
[optional footer]
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
| Type | Triggers version bump | When to use |
|
|
442
|
+
| ---------- | ------------------------- | ---------------------------------------- |
|
|
443
|
+
| `feat` | Minor | New user-facing feature |
|
|
444
|
+
| `fix` | Patch | Bug fix |
|
|
445
|
+
| `docs` | No bump | Documentation only |
|
|
446
|
+
| `refactor` | No bump | Code restructure without behavior change |
|
|
447
|
+
| `test` | No bump | Adding or updating tests |
|
|
448
|
+
| `chore` | No bump | Build, tooling, or dependency changes |
|
|
449
|
+
| `perf` | No bump (unless breaking) | Performance improvements |
|
|
450
|
+
| `ci` | No bump | CI/CD pipeline changes |
|
|
451
|
+
|
|
452
|
+
Breaking changes: append `!` after the type (`feat!:`) or add `BREAKING CHANGE:` in the footer.
|
|
453
|
+
|
|
454
|
+
Use the package short-name as scope when the change is isolated to one package:
|
|
455
|
+
|
|
456
|
+
```
|
|
457
|
+
fix(play-actor): correct signal cleanup on dispose
|
|
458
|
+
feat(play-react): add PlayRenderer suspense boundary
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
### Before Submitting
|
|
462
|
+
|
|
463
|
+
1. **Read the relevant RFC** in [`packages/docs/rfc/`](../rfc/) — ensure your change conforms to the spec
|
|
464
|
+
2. **Run the full check suite** from the repo root:
|
|
465
|
+
|
|
466
|
+
```bash
|
|
467
|
+
pnpm run build
|
|
468
|
+
pnpm test
|
|
469
|
+
pnpm run lint
|
|
470
|
+
pnpm run format:check
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
3. **Write tests** — new code must meet coverage thresholds (80% lines/functions/statements and 75% branches at the monorepo level; core packages enforce higher per-package thresholds)
|
|
474
|
+
4. **Add JSDoc** — all new public exports require JSDoc with `@param`, `@returns`, and `@see` RFC links
|
|
475
|
+
5. **Never edit `packages/docs/api/`** — API docs are auto-generated; edit source JSDoc and regenerate with `pnpm run docs`
|
|
476
|
+
|
|
477
|
+
### Merge Request Checklist
|
|
478
|
+
|
|
479
|
+
- [ ] Branch is up to date with `main`
|
|
480
|
+
- [ ] All tests pass (`pnpm test`)
|
|
481
|
+
- [ ] Lint passes (`pnpm run lint`)
|
|
482
|
+
- [ ] Formatting is correct (`pnpm run format:check`)
|
|
483
|
+
- [ ] Build succeeds (`pnpm run build`)
|
|
484
|
+
- [ ] New code has tests at or above coverage thresholds
|
|
485
|
+
- [ ] All new public exports have JSDoc
|
|
486
|
+
- [ ] Conventional commit format used on all commits
|
|
487
|
+
- [ ] RFC read and implementation conforms to spec
|
|
488
|
+
|
|
489
|
+
### CI Pipeline
|
|
490
|
+
|
|
491
|
+
The GitLab CI pipeline runs automatically on merge requests, pushes to `main`, and git tags.
|
|
492
|
+
|
|
493
|
+
| Job | Command | Artifacts |
|
|
494
|
+
| ------------------ | ------------------------------------------------ | -------------------------------------- |
|
|
495
|
+
| Build | `pnpm run build` | — |
|
|
496
|
+
| Test with coverage | `vitest run --coverage` | JUnit XML, Cobertura coverage report |
|
|
497
|
+
| Lint | `oxlint .` | — |
|
|
498
|
+
| Audit | `pnpm audit --audit-level=high` | — |
|
|
499
|
+
| Semantic release | (manual job on `main`/`rc`/`beta`/`alpha`/`pre`) | CHANGELOG, npm publish, GitLab release |
|
|
500
|
+
|
|
501
|
+
---
|
|
502
|
+
|
|
503
|
+
_See [Architecture](architecture.md) for the package layering and data flow details, and [Configuration](configuration.md) for tooling configuration reference._
|