@xmachines/docs 1.0.0-beta.45 → 1.0.0-beta.48
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 +134 -57
- package/api/@xmachines/play/classes/NonNullableError.md +4 -4
- package/api/@xmachines/play/classes/PlayError.md +4 -4
- package/api/@xmachines/play/functions/assertNonNullable.md +1 -1
- package/api/@xmachines/play/type-aliases/PlayEvent.md +2 -2
- package/api/@xmachines/play-actor/README.md +130 -155
- package/api/@xmachines/play-actor/classes/AbstractActor.md +3 -3
- package/api/@xmachines/play-actor/functions/typedSpec.md +1 -1
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +5 -5
- package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +5 -5
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +2 -2
- package/api/@xmachines/play-actor/interfaces/Routable.md +3 -3
- package/api/@xmachines/play-actor/interfaces/Viewable.md +2 -2
- package/api/@xmachines/play-dom/README.md +140 -232
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
- package/api/@xmachines/play-dom/functions/connectRenderer.md +1 -1
- package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
- package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
- package/api/@xmachines/play-dom/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-dom/functions/renderSpec.md +1 -1
- package/api/@xmachines/play-dom/interfaces/ComponentContext.md +7 -7
- package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +13 -13
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +6 -6
- package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +4 -4
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +12 -12
- package/api/@xmachines/play-dom/interfaces/EventHandle.md +4 -4
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +5 -5
- package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +5 -5
- package/api/@xmachines/play-dom/type-aliases/ActionFn.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/Actions.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +7 -7
- package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +2 -2
- package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/DomSchema.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/SetState.md +1 -1
- package/api/@xmachines/play-dom/variables/schema.md +1 -1
- package/api/@xmachines/play-dom-router/README.md +160 -158
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +4 -4
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
- package/api/@xmachines/play-dom-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-react/README.md +109 -320
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +5 -5
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +8 -8
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-react/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
- package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-react-router/README.md +107 -124
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +23 -23
- package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-router/README.md +235 -475
- package/api/@xmachines/play-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +23 -23
- package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +1 -1
- package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
- package/api/@xmachines/play-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-router/functions/createRouteMatcher.md +1 -1
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
- package/api/@xmachines/play-router/functions/extractRouteParams.md +1 -1
- package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
- package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
- package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
- package/api/@xmachines/play-router/functions/routeExists.md +1 -1
- package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
- package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
- package/api/@xmachines/play-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
- package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouteMatcher.md +4 -4
- package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
- package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
- package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-signals/README.md +105 -73
- package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
- package/api/@xmachines/play-solid/README.md +117 -263
- package/api/@xmachines/play-solid/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +8 -8
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorProvider.md +1 -1
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-solid-router/README.md +93 -606
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +24 -24
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
- package/api/@xmachines/play-svelte/README.md +111 -103
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +11 -11
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-svelte/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/README.md +156 -17
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-sveltekit-router/README.md +168 -17
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +4 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/README.md +147 -122
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +23 -23
- package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/README.md +195 -173
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +24 -24
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +3 -3
- package/api/@xmachines/play-vue/README.md +126 -271
- package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-vue/functions/getPlayViewContext.md +1 -1
- package/api/@xmachines/play-vue/functions/useActor.md +1 -1
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +5 -5
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +8 -8
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
- package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue-router/README.md +148 -528
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +24 -24
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-xstate/README.md +167 -496
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +12 -12
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
- package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
- package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
- package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
- package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
- package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
- package/api/@xmachines/shared/README.md +81 -294
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
- package/examples/@xmachines/play-dom-demo/README.md +4 -4
- package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
- package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
- package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-dom-router-demo/README.md +3 -3
- package/examples/@xmachines/play-react-demo/README.md +2 -2
- package/examples/@xmachines/play-react-demo/functions/App.md +1 -1
- package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-react-router-demo/README.md +2 -2
- package/examples/@xmachines/play-solid-demo/README.md +2 -2
- package/examples/@xmachines/play-solid-demo/functions/App.md +1 -1
- package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-solid-router-demo/README.md +1 -1
- package/examples/@xmachines/play-svelte-demo/README.md +2 -2
- package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-svelte-spa-router-demo/README.md +3 -3
- package/examples/@xmachines/play-sveltekit-router-demo/README.md +3 -3
- package/examples/@xmachines/play-tanstack-react-router-demo/README.md +1 -1
- package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +1 -1
- package/examples/@xmachines/play-vue-demo/README.md +2 -2
- package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
- package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-vue-router-demo/README.md +1 -1
- package/examples/README.md +24 -25
- package/examples/form-validation.md +2 -2
- package/guides/README.md +7 -7
- package/guides/actor-model.md +18 -18
- package/guides/architecture.md +500 -0
- package/guides/configuration.md +556 -0
- package/guides/deployment.md +336 -0
- package/guides/development.md +617 -0
- package/guides/getting-started.md +351 -142
- package/guides/signals.md +19 -19
- package/guides/state-machines.md +16 -16
- package/guides/testing.md +460 -0
- package/package.json +5 -5
- package/guides/installation.md +0 -257
|
@@ -0,0 +1,336 @@
|
|
|
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
|
+
## Table of Contents
|
|
10
|
+
|
|
11
|
+
- [Deployment Targets](#deployment-targets)
|
|
12
|
+
- [Published Packages](#published-packages)
|
|
13
|
+
- [Build Pipeline](#build-pipeline)
|
|
14
|
+
- [CI Pipeline Stages](#ci-pipeline-stages)
|
|
15
|
+
- [Release Job Detail](#release-job-detail)
|
|
16
|
+
- [Release Smoke Test Job](#release-smoke-test-job)
|
|
17
|
+
- [Semantic Release Process](#semantic-release-process)
|
|
18
|
+
- [Branch Model](#branch-model)
|
|
19
|
+
- [Prepare Phase](#prepare-phase)
|
|
20
|
+
- [Publish Phase](#publish-phase)
|
|
21
|
+
- [Post-Release Phase](#post-release-phase)
|
|
22
|
+
- [Version Synchronisation](#version-synchronisation)
|
|
23
|
+
- [Credentials and Protected Variables](#credentials-and-protected-variables)
|
|
24
|
+
- [Artifacts](#artifacts)
|
|
25
|
+
- [Rollback Procedure](#rollback-procedure)
|
|
26
|
+
- [Local Release Dry-Run (Manual)](#local-release-dry-run-manual)
|
|
27
|
+
- [Monitoring](#monitoring)
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Deployment Targets
|
|
32
|
+
|
|
33
|
+
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.
|
|
34
|
+
|
|
35
|
+
| Target | Config File | Purpose |
|
|
36
|
+
| --------------- | ---------------------------------------------------------------------- | ------------------------------------------------------ |
|
|
37
|
+
| npm registry | `.releaserc.json` (per-package `@semantic-release/npm` plugin entries) | Publish all public packages |
|
|
38
|
+
| GitLab Releases | `.releaserc.json` (`@semantic-release/gitlab` plugin) | Attach tarball artifacts to the GitLab release tag |
|
|
39
|
+
| GitLab CI | `.gitlab-ci.yml` | Trigger builds, tests, and releases on push / MR / tag |
|
|
40
|
+
|
|
41
|
+
The root `package.json` is marked `"private": true` and is **never published** to npm.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Published Packages
|
|
46
|
+
|
|
47
|
+
The following packages are published on every release (derived from `.releaserc.json`):
|
|
48
|
+
|
|
49
|
+
| Package | Directory |
|
|
50
|
+
| ------------------------------------------------------------------------------------------------- | ------------------------------------- |
|
|
51
|
+
| [`@xmachines/shared`](../api/@xmachines/shared/README.md) | `packages/shared` |
|
|
52
|
+
| [`@xmachines/play`](../api/@xmachines/play/README.md) | `packages/play` |
|
|
53
|
+
| [`@xmachines/play-actor`](../api/@xmachines/play-actor/README.md) | `packages/play-actor` |
|
|
54
|
+
| [`@xmachines/play-signals`](../api/@xmachines/play-signals/README.md) | `packages/play-signals` |
|
|
55
|
+
| [`@xmachines/play-router`](../api/@xmachines/play-router/README.md) | `packages/play-router` |
|
|
56
|
+
| [`@xmachines/play-dom`](../api/@xmachines/play-dom/README.md) | `packages/play-dom` |
|
|
57
|
+
| [`@xmachines/play-dom-router`](../api/@xmachines/play-dom-router/README.md) | `packages/play-dom-router` |
|
|
58
|
+
| [`@xmachines/play-react`](../api/@xmachines/play-react/README.md) | `packages/play-react` |
|
|
59
|
+
| [`@xmachines/play-react-router`](../api/@xmachines/play-react-router/README.md) | `packages/play-react-router` |
|
|
60
|
+
| [`@xmachines/play-solid`](../api/@xmachines/play-solid/README.md) | `packages/play-solid` |
|
|
61
|
+
| [`@xmachines/play-solid-router`](../api/@xmachines/play-solid-router/README.md) | `packages/play-solid-router` |
|
|
62
|
+
| [`@xmachines/play-svelte`](../api/@xmachines/play-svelte/README.md) | `packages/play-svelte` |
|
|
63
|
+
| [`@xmachines/play-sveltekit-router`](../api/@xmachines/play-sveltekit-router/README.md) | `packages/play-sveltekit-router` |
|
|
64
|
+
| [`@xmachines/play-svelte-spa-router`](../api/@xmachines/play-svelte-spa-router/README.md) | `packages/play-svelte-spa-router` |
|
|
65
|
+
| [`@xmachines/play-tanstack-react-router`](../api/@xmachines/play-tanstack-react-router/README.md) | `packages/play-tanstack-react-router` |
|
|
66
|
+
| [`@xmachines/play-tanstack-solid-router`](../api/@xmachines/play-tanstack-solid-router/README.md) | `packages/play-tanstack-solid-router` |
|
|
67
|
+
| [`@xmachines/play-vue`](../api/@xmachines/play-vue/README.md) | `packages/play-vue` |
|
|
68
|
+
| [`@xmachines/play-vue-router`](../api/@xmachines/play-vue-router/README.md) | `packages/play-vue-router` |
|
|
69
|
+
| [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) | `packages/play-xstate` |
|
|
70
|
+
| [`@xmachines/docs`](../README.md) | `packages/docs` |
|
|
71
|
+
|
|
72
|
+
**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.
|
|
73
|
+
|
|
74
|
+
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).
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Build Pipeline
|
|
79
|
+
|
|
80
|
+
### CI Pipeline Stages
|
|
81
|
+
|
|
82
|
+
Pipeline runs are triggered by `.gitlab-ci.yml` under the following conditions:
|
|
83
|
+
|
|
84
|
+
| Trigger | Pipeline runs |
|
|
85
|
+
| --------------------------------------------- | --------------------------------------------- |
|
|
86
|
+
| Push to `main` / `master` / `beta` / `pre/rc` | Full pipeline including release |
|
|
87
|
+
| Merge request | Full pipeline (release job skipped or manual) |
|
|
88
|
+
| Tag push (`$CI_COMMIT_TAG`) | Full pipeline |
|
|
89
|
+
|
|
90
|
+
The pipeline includes two reusable CI components:
|
|
91
|
+
|
|
92
|
+
- **`to-be-continuous/node/gitlab-ci-node@5.1.2`** — handles install, lint, build, test, and audit
|
|
93
|
+
- **`to-be-continuous/semantic-release/gitlab-ci-semrel@4.1.0`** — runs `semantic-release` on eligible branches
|
|
94
|
+
|
|
95
|
+
The `node-build` job runs with:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
npm run build # tsc --build (TypeScript composite build)
|
|
99
|
+
npm test:coverage # vitest run --coverage (with JUnit + Cobertura reporters)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Coverage is extracted from the `node-build` job via the regex:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
/All files[^|]*\|[^|]*\s+([\d\.]+)/
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
JUnit results are published as `reports/junit.xml` and Cobertura coverage as `reports/coverage/cobertura-coverage.xml`.
|
|
109
|
+
|
|
110
|
+
### Release Job Detail
|
|
111
|
+
|
|
112
|
+
The `semantic-release` CI job is configured with:
|
|
113
|
+
|
|
114
|
+
```yaml
|
|
115
|
+
semantic-release:
|
|
116
|
+
id_tokens:
|
|
117
|
+
NPM_ID_TOKEN:
|
|
118
|
+
aud: "npm:registry.npmjs.org"
|
|
119
|
+
artifacts:
|
|
120
|
+
when: always
|
|
121
|
+
expire_in: 1 week
|
|
122
|
+
paths:
|
|
123
|
+
- dist/releases/*.tgz
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
The job uses a GitLab OIDC id token (`NPM_ID_TOKEN`) scoped to `npm:registry.npmjs.org` rather than a static `NPM_TOKEN`. <!-- VERIFY: Confirm the GitLab project is configured with an npm OIDC provider/trust policy that accepts this token audience for the @xmachines npm org -->
|
|
127
|
+
|
|
128
|
+
The `semantic-release` command is called with `--no-ci` to allow it to run inside CI without triggering its own CI-environment mode.
|
|
129
|
+
|
|
130
|
+
### Release Smoke Test Job
|
|
131
|
+
|
|
132
|
+
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):
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
npm run build
|
|
136
|
+
node scripts/release-pack-smoke.mjs
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
`scripts/release-pack-smoke.mjs`:
|
|
140
|
+
|
|
141
|
+
1. Reads `.releaserc.json` to find all `@semantic-release/npm` plugin entries where `npmPublish` is not `false`.
|
|
142
|
+
2. For each publishable package: runs `npm pack --json` in the package directory.
|
|
143
|
+
3. Creates a temporary directory, runs `npm init -y`, and installs the local tarball with `--ignore-scripts`.
|
|
144
|
+
4. Asserts the install succeeds — any missing files, broken exports, or pack-time errors surface here.
|
|
145
|
+
5. Cleans up temp directories and tarballs after each check.
|
|
146
|
+
|
|
147
|
+
This smoke test runs **before** the actual publish so packaging problems are caught in CI rather than on npm.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Semantic Release Process
|
|
152
|
+
|
|
153
|
+
### Branch Model
|
|
154
|
+
|
|
155
|
+
Releases are driven by commit history on protected branches:
|
|
156
|
+
|
|
157
|
+
| Branch | Channel | Tag format | Behaviour |
|
|
158
|
+
| -------- | ---------------- | --------------- | ----------------------------- |
|
|
159
|
+
| `main` | stable (default) | `v1.2.3` | Full production release |
|
|
160
|
+
| `beta` | `beta` | `v1.2.3-beta.N` | Beta pre-release |
|
|
161
|
+
| `pre/rc` | `pre/rc` | `v1.2.3-rc.N` | Release candidate pre-release |
|
|
162
|
+
|
|
163
|
+
Tag format is `v${version}` (e.g., `v1.0.0-beta.46`).
|
|
164
|
+
|
|
165
|
+
### Prepare Phase
|
|
166
|
+
|
|
167
|
+
Before any package is published, semantic-release runs the `prepareCmd` from `.releaserc.json`:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
npm install --prefix . @npmcli/arborist
|
|
171
|
+
npm run apply-patches
|
|
172
|
+
node scripts/set-workspace-versions.mjs ${nextRelease.version}
|
|
173
|
+
npm run build
|
|
174
|
+
npm run typedoc -w @xmachines/docs -- --gitRevision v${nextRelease.version}
|
|
175
|
+
npm run format -w @xmachines/docs
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Step by step:
|
|
179
|
+
|
|
180
|
+
1. **Install Arborist** — ensures the workspace introspection tool is available.
|
|
181
|
+
2. **Apply patches** — runs `patch-package` to apply any patches in the `patches/` directory.
|
|
182
|
+
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.
|
|
183
|
+
4. **Build** — runs `tsc --build` to produce compiled `dist/` output in all packages.
|
|
184
|
+
5. **Generate API docs** — runs TypeDoc to regenerate `packages/docs/api/` at the release git revision.
|
|
185
|
+
6. **Format docs** — runs `oxfmt` on the docs package to ensure consistent formatting.
|
|
186
|
+
|
|
187
|
+
### Publish Phase
|
|
188
|
+
|
|
189
|
+
Each publishable package is published in sequence via individual `@semantic-release/npm` plugin entries. Each entry specifies:
|
|
190
|
+
|
|
191
|
+
- `pkgRoot` — the package directory relative to the workspace root
|
|
192
|
+
- `tarballDir` — `dist/releases/` where the packed `.tgz` is saved
|
|
193
|
+
|
|
194
|
+
Example (from `.releaserc.json`):
|
|
195
|
+
|
|
196
|
+
```json
|
|
197
|
+
["@semantic-release/npm", { "pkgRoot": "packages/play", "tarballDir": "dist/releases" }]
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Post-Release Phase
|
|
201
|
+
|
|
202
|
+
After all packages are published:
|
|
203
|
+
|
|
204
|
+
1. **`@semantic-release/git`** commits updated files back to the repository:
|
|
205
|
+
- `CHANGELOG.md`
|
|
206
|
+
- `package.json` and `package-lock.json` (root)
|
|
207
|
+
- `packages/*/{package.json,examples/*/package.json}` (all workspace packages)
|
|
208
|
+
- `packages/docs/api/**` (generated API documentation)
|
|
209
|
+
|
|
210
|
+
Commit message format:
|
|
211
|
+
|
|
212
|
+
```
|
|
213
|
+
chore(release): <version>
|
|
214
|
+
|
|
215
|
+
<release notes>
|
|
216
|
+
|
|
217
|
+
[skip ci]
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
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".
|
|
221
|
+
|
|
222
|
+
3. **`@semantic-release/changelog`** updates `CHANGELOG.md` with generated release notes.
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Version Synchronisation
|
|
227
|
+
|
|
228
|
+
All packages in the monorepo share a **single version** at all times. This is enforced during release by `scripts/set-workspace-versions.mjs`, which:
|
|
229
|
+
|
|
230
|
+
- Sets `version` in every workspace `package.json` (including the root) to the new release version.
|
|
231
|
+
- 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).
|
|
232
|
+
|
|
233
|
+
This means packages always depend on the exact same version of sibling packages that was released together.
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Credentials and Protected Variables
|
|
238
|
+
|
|
239
|
+
| Variable | Source | Purpose |
|
|
240
|
+
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
241
|
+
| `NPM_ID_TOKEN` | GitLab CI OIDC (auto-generated per job) | Authenticates `semantic-release` to npm registry via OIDC token exchange |
|
|
242
|
+
| `GL_TOKEN` / `GITLAB_TOKEN` | <!-- VERIFY: Confirm variable name used by `@semantic-release/gitlab` plugin in CI project settings --> GitLab CI protected variable | Authenticates `@semantic-release/gitlab` for release creation and git push back |
|
|
243
|
+
| `CI_JOB_TOKEN` | GitLab CI built-in | Used by the `to-be-continuous` components for GitLab API calls <!-- VERIFY: Confirm which CI component uses CI_JOB_TOKEN vs GL_TOKEN --> |
|
|
244
|
+
|
|
245
|
+
**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`. <!-- VERIFY: Confirm the npm organization (`@xmachines`) has an OIDC provider configured at registry.npmjs.org to trust the GitLab issuer -->
|
|
246
|
+
|
|
247
|
+
To publish packages, a maintainer must:
|
|
248
|
+
|
|
249
|
+
1. Have push access to a release-eligible branch (`main`, `beta`, `pre/rc`).
|
|
250
|
+
2. Ensure the GitLab project CI/CD variables include the required tokens. <!-- VERIFY: List the exact variable names configured in the GitLab project's CI/CD settings -->
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Artifacts
|
|
255
|
+
|
|
256
|
+
Release tarballs are stored as GitLab CI artifacts for **1 week** after each pipeline:
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
dist/releases/*.tgz
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
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).
|
|
263
|
+
|
|
264
|
+
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.
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Rollback Procedure
|
|
269
|
+
|
|
270
|
+
There is no automated rollback mechanism. To revert a release:
|
|
271
|
+
|
|
272
|
+
1. **npm deprecate** (preferred) — deprecate the bad version on npm so it is hidden from installs:
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
npm deprecate @xmachines/play@<bad-version> "Deprecated: use <good-version>"
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
Repeat for each affected package.
|
|
279
|
+
|
|
280
|
+
2. **npm unpublish** — unpublish the bad version if it was published within 72 hours and no dependents exist:
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
npm unpublish @xmachines/play@<bad-version>
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
<!-- VERIFY: Confirm npm unpublish is allowed for the @xmachines org — unpublish is blocked after 72 hours or if the package has dependents -->
|
|
287
|
+
|
|
288
|
+
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.
|
|
289
|
+
|
|
290
|
+
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. <!-- VERIFY: Confirm maintainer has "Maintainer" or "Owner" role in the GitLab project to delete releases -->
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## Local Release Dry-Run (Manual)
|
|
295
|
+
|
|
296
|
+
To preview what semantic-release would do without publishing:
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
# Install dependencies first
|
|
300
|
+
npm ci
|
|
301
|
+
|
|
302
|
+
# Run semantic-release in dry-run mode
|
|
303
|
+
npx semantic-release --dry-run --no-ci
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
To test package packaging locally (the same check run by `release-pack-smoke` in CI):
|
|
307
|
+
|
|
308
|
+
```bash
|
|
309
|
+
npm run build
|
|
310
|
+
node scripts/release-pack-smoke.mjs
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
This packs every publishable package, installs each tarball in a temporary project, and verifies the install succeeds.
|
|
314
|
+
|
|
315
|
+
To manually version and pack a single package for local inspection:
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
# From the repo root
|
|
319
|
+
npm run build -w packages/play
|
|
320
|
+
npm pack --workspaces --workspace=packages/play
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
**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.
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## Monitoring
|
|
328
|
+
|
|
329
|
+
The project does not include application runtime monitoring (no Sentry, Datadog, or OpenTelemetry) — it is a library monorepo, not a deployed service.
|
|
330
|
+
|
|
331
|
+
Post-release health checks:
|
|
332
|
+
|
|
333
|
+
- **npm package availability** — verify new versions appear on `https://www.npmjs.com/package/@xmachines/<pkg>` after the pipeline completes. <!-- VERIFY: npm propagation may take a few minutes -->
|
|
334
|
+
- **GitLab pipeline status** — monitor the `semantic-release` job in the GitLab CI UI for the release commit.
|
|
335
|
+
- **GitLab Releases page** — confirm the release tag and tarball assets appear at `https://gitlab.com/xmachin-es/xmachines-js/-/releases`.
|
|
336
|
+
- **`packages/docs/api/` commit** — confirm the post-release git commit updated API docs on the target branch.
|