@xmachines/docs 2.0.0-alpha.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -5
- package/api/@xmachines/play/README.md +1 -4
- package/api/@xmachines/play/classes/NonNullableError.md +11 -11
- package/api/@xmachines/play/classes/PlayError.md +11 -11
- package/api/@xmachines/play/functions/assertNonNullable.md +1 -1
- package/api/@xmachines/play/type-aliases/PlayEvent.md +4 -4
- package/api/@xmachines/play-actor/README.md +81 -26
- package/api/@xmachines/play-actor/classes/AbstractActor.md +35 -20
- package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +1 -1
- package/api/@xmachines/play-actor/functions/composePlayState.md +26 -0
- package/api/@xmachines/play-actor/functions/createViewStoreLifecycle.md +21 -0
- package/api/@xmachines/play-actor/functions/guardContextWrites.md +41 -0
- package/api/@xmachines/play-actor/functions/refreshContextSubtree.md +27 -0
- package/api/@xmachines/play-actor/functions/reuseComposedState.md +41 -0
- package/api/@xmachines/play-actor/functions/shallowEqualExcept.md +28 -0
- package/api/@xmachines/play-actor/functions/toAtomState.md +1 -1
- package/api/@xmachines/play-actor/functions/typedSpec.md +23 -26
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +7 -7
- package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +7 -7
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +12 -14
- package/api/@xmachines/play-actor/interfaces/ResolveViewStoreOptions.md +11 -0
- package/api/@xmachines/play-actor/interfaces/Routable.md +5 -5
- package/api/@xmachines/play-actor/interfaces/ViewStoreLifecycle.md +50 -0
- package/api/@xmachines/play-actor/interfaces/ViewStoreResolution.md +15 -0
- package/api/@xmachines/play-actor/interfaces/Viewable.md +4 -4
- package/api/@xmachines/play-actor/variables/CONTEXT_STATE_KEY.md +15 -0
- package/api/@xmachines/play-dom/README.md +6 -3
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
- 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/createValidationRegistry.md +22 -0
- package/api/@xmachines/play-dom/functions/defineRegistry.md +5 -5
- package/api/@xmachines/play-dom/interfaces/ComponentContext.md +9 -8
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +10 -10
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +2 -0
- package/api/@xmachines/play-dom/interfaces/FieldValidationState.md +16 -0
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +5 -5
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +12 -12
- package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +2 -0
- package/api/@xmachines/play-dom/interfaces/ValidationRegistry.md +21 -0
- package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +10 -0
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
- package/api/@xmachines/play-dom/variables/schema.md +35 -45
- package/api/@xmachines/play-dom-router/README.md +3 -3
- 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 +2 -2
- package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +16 -16
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +16 -16
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.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 +4 -4
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +6 -6
- package/api/@xmachines/play-react/README.md +4 -3
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +5 -5
- package/api/@xmachines/play-react/functions/defineRegistry.md +5 -5
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/useFieldValidation.md +31 -0
- 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 +10 -10
- package/api/@xmachines/play-react/interfaces/ComponentContext.md +9 -8
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +5 -5
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +7 -7
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.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 +2 -4
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +4 -4
- package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +2 -2
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-react-router/interfaces/PlayActor.md +7 -7
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +7 -7
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +7 -7
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-router/README.md +9 -17
- package/api/@xmachines/play-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +4 -4
- 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 +2 -2
- package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +2 -2
- 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 +6 -6
- package/api/@xmachines/play-router/interfaces/LocationLike.md +5 -5
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +5 -7
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +7 -7
- package/api/@xmachines/play-router/interfaces/PlayActor.md +7 -7
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +5 -5
- package/api/@xmachines/play-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +10 -10
- package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteNode.md +12 -12
- package/api/@xmachines/play-router/interfaces/RouteObject.md +4 -4
- package/api/@xmachines/play-router/interfaces/RouteTree.md +7 -7
- 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 +2 -2
- package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +4 -4
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +4 -4
- 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 +2 -2
- 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 +10 -10
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +7 -7
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.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 +7 -7
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +5 -5
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +2 -2
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +35 -20
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +7 -7
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +7 -7
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +7 -7
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- 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-solid-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-svelte/README.md +22 -4
- 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 +10 -10
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +6 -6
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +7 -7
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/README.md +19 -28
- 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 +2 -2
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +6 -6
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +5 -5
- 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 +7 -7
- 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 +2 -2
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +5 -5
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +5 -5
- 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 +3 -3
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +2 -2
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +2 -2
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- 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-react-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-router/README.md +2 -0
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +2 -2
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/README.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +2 -2
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- 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 +4 -4
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-vue/README.md +3 -5
- 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/functions/useFieldValidation.md +31 -0
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +7 -7
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +10 -10
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +7 -7
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.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 +4 -4
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue-router/README.md +3 -3
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +5 -5
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +2 -2
- package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +7 -7
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +5 -5
- 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 +100 -111
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +81 -58
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +5 -12
- package/api/@xmachines/play-xstate/functions/composeGuards.md +23 -24
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +22 -17
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +7 -2
- package/api/@xmachines/play-xstate/functions/definePlayer.md +3 -3
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
- package/api/@xmachines/play-xstate/functions/eventMatches.md +7 -2
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +11 -45
- package/api/@xmachines/play-xstate/functions/hasContext.md +7 -4
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
- package/api/@xmachines/play-xstate/functions/negateGuard.md +21 -16
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +5 -5
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +4 -4
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +10 -11
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +7 -7
- package/api/@xmachines/play-xstate/interfaces/RouteObject.md +4 -4
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +9 -25
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +7 -5
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +7 -5
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +11 -15
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +6 -13
- package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -16
- package/api/@xmachines/shared/README.md +2 -2
- 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 +12 -7
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +9 -4
- package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +6 -6
- package/contributing/architecture.md +27 -28
- package/contributing/configuration.md +10 -10
- package/contributing/deployment.md +51 -30
- package/contributing/development.md +62 -21
- package/contributing/testing.md +36 -14
- 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-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-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-svelte-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +1 -1
- 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/README.md +4 -1
- package/examples/basic-state-machine.md +24 -24
- package/examples/form-validation.md +110 -121
- package/examples/multi-router-integration.md +0 -2
- package/examples/routing-patterns.md +60 -94
- package/examples/traffic-light.md +57 -48
- package/guides/README.md +6 -2
- package/guides/actor-model.md +1 -1
- package/guides/getting-started.md +89 -90
- package/guides/inspector.md +197 -0
- package/guides/state-machines.md +55 -69
- package/package.json +10 -7
- package/rfc/play.md +15 -6
- package/api/@xmachines/play-xstate/functions/createRoutedMachine.md +0 -87
- package/api/@xmachines/play-xstate/type-aliases/PlayRoutePayload.md +0 -30
- package/api/@xmachines/play-xstate/type-aliases/SetupLike.md +0 -33
- package/api/@xmachines/play-xstate/type-aliases/WithOptional.md +0 -31
- package/api/@xmachines/play-xstate/variables/emptyEventSchema.md +0 -37
- package/api/@xmachines/play-xstate/variables/playMetaSchema.md +0 -40
- package/api/@xmachines/play-xstate/variables/playRouteEventSchema.md +0 -9
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
# Class: PlayerActor\<TMachine\>
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play-xstate/src/player-actor.ts:
|
|
5
|
+
Defined in: [packages/play-xstate/src/player-actor.ts:190](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L190)
|
|
6
6
|
|
|
7
7
|
Concrete XState actor implementing Play Architecture signal protocol
|
|
8
8
|
|
|
9
|
-
Extends [@xmachines/play-actor!AbstractActor](../../play-actor/classes/AbstractActor.md)
|
|
10
|
-
while maintaining ecosystem compatibility (XState
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
Extends [@xmachines/play-actor!AbstractActor](../../play-actor/classes/AbstractActor.md) — and so XState's own `Actor` —
|
|
10
|
+
to provide XState v5 integration while maintaining ecosystem compatibility (XState
|
|
11
|
+
inspection, devtools). The machine is handed to the base constructor, so a
|
|
12
|
+
`PlayerActor` **is** the XState actor rather than a wrapper around one: everything
|
|
13
|
+
XState's `Actor` exposes operates on this instance's own state, and the class adds
|
|
14
|
+
TC39 Signal-based reactive state for Infrastructure observation on top.
|
|
13
15
|
|
|
14
16
|
**Capabilities:** Implements both [@xmachines/play-actor!Routable](../../play-actor/interfaces/Routable.md) and
|
|
15
17
|
[@xmachines/play-actor!Viewable](../../play-actor/interfaces/Viewable.md) interfaces, providing routing and view
|
|
@@ -32,7 +34,14 @@ const machine = setup({}).createMachine({
|
|
|
32
34
|
initial: "idle",
|
|
33
35
|
states: {
|
|
34
36
|
idle: {
|
|
35
|
-
meta: {
|
|
37
|
+
meta: {
|
|
38
|
+
route: "/",
|
|
39
|
+
// A view spec needs `root` and `elements` — other shapes derive null.
|
|
40
|
+
view: {
|
|
41
|
+
root: "home",
|
|
42
|
+
elements: { home: { type: "HomePage", props: {}, children: [] } },
|
|
43
|
+
},
|
|
44
|
+
},
|
|
36
45
|
},
|
|
37
46
|
},
|
|
38
47
|
});
|
|
@@ -43,7 +52,7 @@ actor.start();
|
|
|
43
52
|
|
|
44
53
|
// Observe signals
|
|
45
54
|
console.log(actor.currentRoute.get()); // '/'
|
|
46
|
-
console.log(actor.currentView.get()); //
|
|
55
|
+
console.log(actor.currentView.get()?.root); // 'home'
|
|
47
56
|
```
|
|
48
57
|
|
|
49
58
|
Signal lifecycle with watchers
|
|
@@ -89,7 +98,7 @@ cached and updated at state entry, not computed on every read.
|
|
|
89
98
|
|
|
90
99
|
| Type Parameter | Description |
|
|
91
100
|
| ---------------------------------------------------------------------------------------------- | ---------------------------- |
|
|
92
|
-
| `TMachine` _extends_ [`AnyStateMachine`](https://www.jsdocs.io/package/xstate#AnyStateMachine) | XState
|
|
101
|
+
| `TMachine` _extends_ [`AnyStateMachine`](https://www.jsdocs.io/package/xstate#AnyStateMachine) | XState v5 state machine type |
|
|
93
102
|
|
|
94
103
|
## Implements
|
|
95
104
|
|
|
@@ -108,16 +117,16 @@ new PlayerActor<TMachine>(
|
|
|
108
117
|
restoredSnapshot?): PlayerActor<TMachine>;
|
|
109
118
|
```
|
|
110
119
|
|
|
111
|
-
Defined in: [packages/play-xstate/src/player-actor.ts:
|
|
120
|
+
Defined in: [packages/play-xstate/src/player-actor.ts:342](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L342)
|
|
112
121
|
|
|
113
122
|
#### Parameters
|
|
114
123
|
|
|
115
|
-
| Parameter | Type
|
|
116
|
-
| ------------------- |
|
|
117
|
-
| `machine` | `TMachine`
|
|
118
|
-
| `options` | [`PlayerOptions`](../interfaces/PlayerOptions.md)\<`TMachine`\>
|
|
119
|
-
| `input?` | [`InputFrom`](https://www.jsdocs.io/package/xstate#InputFrom)\<`TMachine`\>
|
|
120
|
-
| `restoredSnapshot?` | [`
|
|
124
|
+
| Parameter | Type |
|
|
125
|
+
| ------------------- | --------------------------------------------------------------------------- |
|
|
126
|
+
| `machine` | `TMachine` |
|
|
127
|
+
| `options` | [`PlayerOptions`](../interfaces/PlayerOptions.md)\<`TMachine`\> |
|
|
128
|
+
| `input?` | [`InputFrom`](https://www.jsdocs.io/package/xstate#InputFrom)\<`TMachine`\> |
|
|
129
|
+
| `restoredSnapshot?` | [`Snapshot`](https://www.jsdocs.io/package/xstate#Snapshot)\<`unknown`\> |
|
|
121
130
|
|
|
122
131
|
#### Returns
|
|
123
132
|
|
|
@@ -129,23 +138,22 @@ Defined in: [packages/play-xstate/src/player-actor.ts:459](https://gitlab.com/xm
|
|
|
129
138
|
|
|
130
139
|
## Properties
|
|
131
140
|
|
|
132
|
-
| Property | Modifier | Type
|
|
133
|
-
| ------------------------------------------------- | ---------- |
|
|
134
|
-
| <a id="property-_parent"></a> `_parent?` | `public` | `
|
|
135
|
-
| <a id="property-clock"></a> `clock` | `public` | [`Clock`](https://www.jsdocs.io/package/xstate#Clock)
|
|
136
|
-
| <a id="property-currentroute"></a> `currentRoute` | `public` | [`Computed`](../../play-signals/namespaces/Signal/classes/Computed.md)\<`string` \| `null`\>
|
|
137
|
-
| <a id="property-currentview"></a> `currentView` | `
|
|
138
|
-
| <a id="property-id"></a> `id` | `public` | `string`
|
|
139
|
-
| <a id="property-initialroute"></a> `initialRoute` | `readonly` | `string` \| `null`
|
|
140
|
-
| <a id="property-logic"></a> `logic` | `public` | [`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic)
|
|
141
|
-
| <a id="property-options"></a> `options` | `public` | `Readonly`\<[`ActorOptions`](https://www.jsdocs.io/package/xstate#ActorOptions)\<`TLogic`\>\>
|
|
142
|
-
| <a id="property-ref"></a> `ref` | `public` | [`ActorRef`](https://www.jsdocs.io/package/xstate#ActorRef)\<`any`, `any`,
|
|
143
|
-
| <a id="property-
|
|
144
|
-
| <a id="property-
|
|
145
|
-
| <a id="property-
|
|
146
|
-
| <a id="property-
|
|
147
|
-
| <a id="property-
|
|
148
|
-
| <a id="property-trigger"></a> `trigger` | `public` | `ActorTrigger`\<`SendableEventFromLogic`\<`TLogic`\>\> | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`trigger`](../../play-actor/classes/AbstractActor.md#property-trigger) | - |
|
|
141
|
+
| Property | Modifier | Type | Description | Overrides | Inherited from | Defined in |
|
|
142
|
+
| ------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
143
|
+
| <a id="property-_parent"></a> `_parent?` | `public` | [`AnyActorRef`](https://www.jsdocs.io/package/xstate#AnyActorRef) | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`_parent`](../../play-actor/classes/AbstractActor.md#property-_parent) | - |
|
|
144
|
+
| <a id="property-clock"></a> `clock` | `public` | [`Clock`](https://www.jsdocs.io/package/xstate#Clock) | The clock that is responsible for setting and clearing timeouts, such as delayed events and transitions. | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`clock`](../../play-actor/classes/AbstractActor.md#property-clock) | - |
|
|
145
|
+
| <a id="property-currentroute"></a> `currentRoute` | `public` | [`Computed`](../../play-signals/namespaces/Signal/classes/Computed.md)\<`string` \| `null`\> | A TC39 `Signal.Computed` that derives the current URL path from the active machine state's `meta.route` template and the actor's context. Returns `null` when the current state has no `meta.route`, or when the route template cannot be fully resolved — a required `:param` absent from context is caught internally (`MissingRouteParamError` never escapes `get()`): the condition is transient mid-transition and the signal recomputes on the next snapshot. **Example** `// Returns "/profile/alice" when context.params.userId === "alice", // and null while the param is still missing. const route = actor.currentRoute.get();` | - | - | [packages/play-xstate/src/player-actor.ts:289](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L289) |
|
|
146
|
+
| <a id="property-currentview"></a> `currentView` | `readonly` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<[`PlaySpec`](../../play-actor/interfaces/PlaySpec.md) \| `null`\> | Reactive signal containing the current view spec derived from the active state's `meta.view` metadata. Emits a **fresh object reference** whenever the rendered view actually changes — a different state's view, or a param/context change that alters the resolved spec (including `reenter: true` re-entries with new params). Snapshots that do not change the rendered view (e.g. context-only assigns) keep the previous reference so downstream providers do not remount the UI on every event. The emitted `PlaySpec` carries the machine's context in its composed `state` under the read-only `/context` subtree, so specs read context — URL params included — through the ordinary state grammar (`{ $state: "/context/params/section" }`). See `@xmachines/play-actor`'s context-projection module for the full contract. Returns `null` when the current state has no `meta.view` metadata. Two states declaring separate but structurally identical `meta.view` literals emit distinct references on a transition between them (a provider remount); hoist the shared literal into one `typedSpec` constant to deduplicate by identity. **Example** `const view = actor.currentView.get(); if (view) { console.log(view.root); // e.g. "root" console.log(view.elements); // @xmachines/json-render-core Spec elements }` | - | - | [packages/play-xstate/src/player-actor.ts:340](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L340) |
|
|
147
|
+
| <a id="property-id"></a> `id` | `public` | `string` | The unique identifier for this actor relative to its parent. | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`id`](../../play-actor/classes/AbstractActor.md#property-id) | - |
|
|
148
|
+
| <a id="property-initialroute"></a> `initialRoute` | `readonly` | `string` \| `null` | The route derived from the machine's initial state — fixed at construction, never changes even when the actor is restored from a snapshot. Router bridges compare this against the browser URL to distinguish a deep-link (non-initial URL → router wins) from a restore (initial URL + actor at a different restored route → actor wins). Derived statically from the machine definition via `deriveInitialRoute` (XState's pure `initialTransition` helper): the initial state chain and its `meta.route` templates are fixed at machine definition time, while `:param` substitution uses the machine's real initial context for this actor's `input`. No extra actor is ever created, and a restored snapshot never influences the value — it is always the machine's **default** initial route. | - | - | [packages/play-xstate/src/player-actor.ts:306](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L306) |
|
|
149
|
+
| <a id="property-logic"></a> `logic` | `public` | [`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic) | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`logic`](../../play-actor/classes/AbstractActor.md#property-logic) | - |
|
|
150
|
+
| <a id="property-options"></a> `options` | `public` | `Readonly`\<[`ActorOptions`](https://www.jsdocs.io/package/xstate#ActorOptions)\<`TLogic`\>\> | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`options`](../../play-actor/classes/AbstractActor.md#property-options) | - |
|
|
151
|
+
| <a id="property-ref"></a> `ref` | `public` | [`ActorRef`](https://www.jsdocs.io/package/xstate#ActorRef)\<`any`, `any`, `any`\> | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`ref`](../../play-actor/classes/AbstractActor.md#property-ref) | - |
|
|
152
|
+
| <a id="property-sessionid"></a> `sessionId` | `public` | `string` | The globally unique process ID for this invocation. | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`sessionId`](../../play-actor/classes/AbstractActor.md#property-sessionid) | - |
|
|
153
|
+
| <a id="property-src"></a> `src` | `public` | \| `string` \| [`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic) | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`src`](../../play-actor/classes/AbstractActor.md#property-src) | - |
|
|
154
|
+
| <a id="property-state"></a> `state` | `public` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<`ReturnType`\<`TMachine`\[`"transition"`\]\>\> | Reactive snapshot of current actor state. Infrastructure observes this signal to react to state changes without directly coupling to the actor's internal state machine implementation. | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`state`](../../play-actor/classes/AbstractActor.md#property-state) | - | [packages/play-xstate/src/player-actor.ts:249](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L249) |
|
|
155
|
+
| <a id="property-system"></a> `system` | `public` | [`AnyActorSystem`](https://www.jsdocs.io/package/xstate#AnyActorSystem) | The system to which this actor belongs. | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`system`](../../play-actor/classes/AbstractActor.md#property-system) | - |
|
|
156
|
+
| <a id="property-systemid"></a> `systemId` | `public` | `string` \| `undefined` | - | - | [`AbstractActor`](../../play-actor/classes/AbstractActor.md).[`systemId`](../../play-actor/classes/AbstractActor.md#property-systemid) | - |
|
|
149
157
|
|
|
150
158
|
## Methods
|
|
151
159
|
|
|
@@ -173,12 +181,12 @@ Defined in: `xstate`
|
|
|
173
181
|
can(event): boolean;
|
|
174
182
|
```
|
|
175
183
|
|
|
176
|
-
Defined in: [packages/play-xstate/src/player-actor.ts:
|
|
184
|
+
Defined in: [packages/play-xstate/src/player-actor.ts:262](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L262)
|
|
177
185
|
|
|
178
186
|
Returns whether the actor's current state can accept the given event.
|
|
179
187
|
|
|
180
188
|
Typed to the machine's event union — passing an unknown event type is a
|
|
181
|
-
compile error.
|
|
189
|
+
compile error. Evaluated against the current snapshot signal.
|
|
182
190
|
|
|
183
191
|
#### Parameters
|
|
184
192
|
|
|
@@ -204,11 +212,9 @@ if (actor.can({ type: "auth.logout" })) { ... }
|
|
|
204
212
|
dispose(): void;
|
|
205
213
|
```
|
|
206
214
|
|
|
207
|
-
Defined in: [packages/play-xstate/src/player-actor.ts:
|
|
215
|
+
Defined in: [packages/play-xstate/src/player-actor.ts:722](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L722)
|
|
208
216
|
|
|
209
|
-
Convenience dispose method for cleanup
|
|
210
|
-
|
|
211
|
-
Per CONTEXT.md: "Both .dispose() convenience method and manual machine.stop()"
|
|
217
|
+
Convenience dispose method for cleanup — an alias for [stop](#stop).
|
|
212
218
|
|
|
213
219
|
#### Returns
|
|
214
220
|
|
|
@@ -219,16 +225,22 @@ Per CONTEXT.md: "Both .dispose() convenience method and manual machine.stop()"
|
|
|
219
225
|
### getPersistedSnapshot()
|
|
220
226
|
|
|
221
227
|
```ts
|
|
222
|
-
getPersistedSnapshot(): Snapshot<unknown>;
|
|
228
|
+
getPersistedSnapshot(options?): Snapshot<unknown>;
|
|
223
229
|
```
|
|
224
230
|
|
|
225
|
-
Defined in: [packages/play-xstate/src/player-actor.ts:
|
|
231
|
+
Defined in: [packages/play-xstate/src/player-actor.ts:671](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L671)
|
|
226
232
|
|
|
227
|
-
Get
|
|
233
|
+
Get this actor's persisted snapshot.
|
|
228
234
|
|
|
229
235
|
Suitable for serialization and later restoration via the factory's
|
|
230
236
|
`restore.snapshot` option.
|
|
231
237
|
|
|
238
|
+
#### Parameters
|
|
239
|
+
|
|
240
|
+
| Parameter | Type |
|
|
241
|
+
| ---------- | --------- |
|
|
242
|
+
| `options?` | `unknown` |
|
|
243
|
+
|
|
232
244
|
#### Returns
|
|
233
245
|
|
|
234
246
|
[`Snapshot`](https://www.jsdocs.io/package/xstate#Snapshot)\<`unknown`\>
|
|
@@ -245,7 +257,7 @@ Suitable for serialization and later restoration via the factory's
|
|
|
245
257
|
getSnapshot(): SnapshotFrom<TMachine>;
|
|
246
258
|
```
|
|
247
259
|
|
|
248
|
-
Defined in: [packages/play-xstate/src/player-actor.ts:
|
|
260
|
+
Defined in: [packages/play-xstate/src/player-actor.ts:569](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L569)
|
|
249
261
|
|
|
250
262
|
Get current snapshot
|
|
251
263
|
|
|
@@ -265,15 +277,15 @@ Get current snapshot
|
|
|
265
277
|
on<TType>(type, handler): Subscription;
|
|
266
278
|
```
|
|
267
279
|
|
|
268
|
-
Defined in: [packages/play-xstate/src/player-actor.ts:
|
|
280
|
+
Defined in: [packages/play-xstate/src/player-actor.ts:656](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L656)
|
|
269
281
|
|
|
270
|
-
Listen for events
|
|
282
|
+
Listen for events this actor emits via the `emit` action.
|
|
271
283
|
|
|
272
284
|
#### Type Parameters
|
|
273
285
|
|
|
274
|
-
| Type Parameter
|
|
275
|
-
|
|
|
276
|
-
| `TType` _extends_ `
|
|
286
|
+
| Type Parameter |
|
|
287
|
+
| ----------------------- |
|
|
288
|
+
| `TType` _extends_ `any` |
|
|
277
289
|
|
|
278
290
|
#### Parameters
|
|
279
291
|
|
|
@@ -331,9 +343,9 @@ Defined in: `xstate`
|
|
|
331
343
|
send(event): void;
|
|
332
344
|
```
|
|
333
345
|
|
|
334
|
-
Defined in: [packages/play-xstate/src/player-actor.ts:
|
|
346
|
+
Defined in: [packages/play-xstate/src/player-actor.ts:531](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L531)
|
|
335
347
|
|
|
336
|
-
Send an event to
|
|
348
|
+
Send an event to this actor.
|
|
337
349
|
|
|
338
350
|
The actor's state machine guards decide whether the event causes a transition.
|
|
339
351
|
Pass any event from the machine's event union — domain events, routing events, etc.
|
|
@@ -375,11 +387,15 @@ actor.send({ type: "play.route", to: "#home" });
|
|
|
375
387
|
start(): this;
|
|
376
388
|
```
|
|
377
389
|
|
|
378
|
-
Defined in: [packages/play-xstate/src/player-actor.ts:
|
|
390
|
+
Defined in: [packages/play-xstate/src/player-actor.ts:459](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L459)
|
|
379
391
|
|
|
380
|
-
Start the actor
|
|
392
|
+
Start the actor.
|
|
381
393
|
|
|
382
|
-
|
|
394
|
+
Fires `onStart` on each real start — every transition from not-running to
|
|
395
|
+
running, including a start after a stop, which XState allows (its own
|
|
396
|
+
`start()` bails only while the actor is already RUNNING). A repeated call
|
|
397
|
+
while running does not re-fire it, so a defensive double mount does not
|
|
398
|
+
re-run `onStart` side effects for one actual start.
|
|
383
399
|
|
|
384
400
|
#### Returns
|
|
385
401
|
|
|
@@ -397,9 +413,16 @@ Per RESEARCH.md Pitfall 1: Always call start() after creation
|
|
|
397
413
|
stop(): this;
|
|
398
414
|
```
|
|
399
415
|
|
|
400
|
-
Defined in: [packages/play-xstate/src/player-actor.ts:
|
|
416
|
+
Defined in: [packages/play-xstate/src/player-actor.ts:489](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L489)
|
|
417
|
+
|
|
418
|
+
Stop the actor and clean up.
|
|
401
419
|
|
|
402
|
-
|
|
420
|
+
Fires `onStop` only when the actor was actually running — mirroring
|
|
421
|
+
XState, where stopping a never-started or already-stopped actor is a
|
|
422
|
+
no-op with zero teardown — so paired cleanup never runs twice, nor
|
|
423
|
+
against resources `onStart` never acquired. Stopping does not close the
|
|
424
|
+
actor for good: a later `start()` is a fresh lifecycle and fires
|
|
425
|
+
`onStart` again.
|
|
403
426
|
|
|
404
427
|
#### Returns
|
|
405
428
|
|
|
@@ -419,9 +442,9 @@ Stop the actor and cleanup
|
|
|
419
442
|
subscribe(observer): Subscription;
|
|
420
443
|
```
|
|
421
444
|
|
|
422
|
-
Defined in: [packages/play-xstate/src/player-actor.ts:
|
|
445
|
+
Defined in: [packages/play-xstate/src/player-actor.ts:593](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L593)
|
|
423
446
|
|
|
424
|
-
Subscribe to snapshot updates
|
|
447
|
+
Subscribe to this actor's snapshot updates.
|
|
425
448
|
|
|
426
449
|
Accepts an observer object, exactly like XState's `Actor.subscribe`.
|
|
427
450
|
|
|
@@ -450,9 +473,9 @@ subscribe(
|
|
|
450
473
|
completeListener?): Subscription;
|
|
451
474
|
```
|
|
452
475
|
|
|
453
|
-
Defined in: [packages/play-xstate/src/player-actor.ts:
|
|
476
|
+
Defined in: [packages/play-xstate/src/player-actor.ts:604](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/player-actor.ts#L604)
|
|
454
477
|
|
|
455
|
-
Subscribe to snapshot updates
|
|
478
|
+
Subscribe to this actor's snapshot updates.
|
|
456
479
|
|
|
457
480
|
Accepts listener functions, exactly like XState's `Actor.subscribe`.
|
|
458
481
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function buildRouteUrl(routeTemplate, context?): string;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/routing/build-url.ts:
|
|
9
|
+
Defined in: [packages/play-xstate/src/routing/build-url.ts:35](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/routing/build-url.ts#L35)
|
|
10
10
|
|
|
11
11
|
Build a full URL from a route template and the actor's context.
|
|
12
12
|
|
|
@@ -19,10 +19,10 @@ error rather than silently resolving to `undefined`.
|
|
|
19
19
|
|
|
20
20
|
## Parameters
|
|
21
21
|
|
|
22
|
-
| Parameter | Type | Description
|
|
23
|
-
| --------------- | ----------------------------------------------- |
|
|
24
|
-
| `routeTemplate` | `string` | Route path template, e.g. `"/profile/:userId"` or `"/settings/:section?"`.
|
|
25
|
-
| `context` | [`RouteContext`](../interfaces/RouteContext.md) | Actor context object. Route parameters must be in `context.params`; flat context fields are not inspected.
|
|
22
|
+
| Parameter | Type | Description |
|
|
23
|
+
| --------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
24
|
+
| `routeTemplate` | `string` | Route path template, e.g. `"/profile/:userId"` or `"/settings/:section?"`. |
|
|
25
|
+
| `context` | [`RouteContext`](../interfaces/RouteContext.md) | Actor context object. Route parameters must be in `context.params`; flat context fields are not inspected. A missing `query` field builds a query-less URL, exactly like `query: {}`. |
|
|
26
26
|
|
|
27
27
|
## Returns
|
|
28
28
|
|
|
@@ -36,13 +36,6 @@ When a **required** `:param` placeholder has no
|
|
|
36
36
|
matching value in context. Optional parameters (`:param?`) are silently omitted
|
|
37
37
|
when missing. Import the class from `@xmachines/play-xstate/errors`.
|
|
38
38
|
|
|
39
|
-
## Throws
|
|
40
|
-
|
|
41
|
-
When the context has a `params` field but no
|
|
42
|
-
`query` field. This indicates a routing-aware machine context that was not set up
|
|
43
|
-
to receive query parameters, which would silently drop query params from
|
|
44
|
-
`play.route` events. Import the class from `@xmachines/play-xstate/errors`.
|
|
45
|
-
|
|
46
39
|
## Example
|
|
47
40
|
|
|
48
41
|
```typescript
|
|
@@ -1,43 +1,41 @@
|
|
|
1
1
|
[API](../../../README.md) / [@xmachines/play-xstate](../README.md) / composeGuards
|
|
2
2
|
|
|
3
|
-
# Function: composeGuards()
|
|
3
|
+
# ~~Function: composeGuards()~~
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
6
|
function composeGuards<TContext, TEvent>(guards): ComposedGuard;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/guards/compose.ts:
|
|
9
|
+
Defined in: [packages/play-xstate/src/guards/compose.ts:97](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-xstate/src/guards/compose.ts#L97)
|
|
10
10
|
|
|
11
|
-
Compose guards with AND logic
|
|
11
|
+
Compose guards with AND logic using XState's and() helper
|
|
12
12
|
|
|
13
13
|
Combines multiple guard predicates using AND semantics—all guards must pass for
|
|
14
|
-
the composition to succeed.
|
|
14
|
+
the composition to succeed. Uses XState's built-in `and()` helper to ensure proper
|
|
15
|
+
type inference and machine serialization.
|
|
15
16
|
|
|
16
17
|
**Architectural Context:** Supports **Actor Authority (INV-01)** by enabling
|
|
17
18
|
declarative guard composition in state machine transitions. Guards enforce business
|
|
18
19
|
logic rules that determine whether navigation or actions are valid.
|
|
19
20
|
|
|
20
|
-
**XState v6:** the composed value is a plain predicate. Call it inside a
|
|
21
|
-
transition function and return early to block the transition:
|
|
22
|
-
|
|
23
21
|
## Type Parameters
|
|
24
22
|
|
|
25
|
-
| Type Parameter | Default type | Description
|
|
26
|
-
| -------------- | ------------ |
|
|
27
|
-
| `TContext` | `any` | State machine context type
|
|
28
|
-
| `TEvent` | `any` | Event type
|
|
23
|
+
| Type Parameter | Default type | Description |
|
|
24
|
+
| -------------- | ------------ | -------------------------- |
|
|
25
|
+
| `TContext` | `any` | State machine context type |
|
|
26
|
+
| `TEvent` | `any` | Event type |
|
|
29
27
|
|
|
30
28
|
## Parameters
|
|
31
29
|
|
|
32
|
-
| Parameter | Type | Description
|
|
33
|
-
| --------- | --------------------------------------------------------------------- |
|
|
34
|
-
| `guards` | [`GuardArray`](../type-aliases/GuardArray.md)\<`TContext`, `TEvent`\> | Array of guard predicates or guard names (string references
|
|
30
|
+
| Parameter | Type | Description |
|
|
31
|
+
| --------- | --------------------------------------------------------------------- | ------------------------------------------------------------ |
|
|
32
|
+
| `guards` | [`GuardArray`](../type-aliases/GuardArray.md)\<`TContext`, `TEvent`\> | Array of guard predicates or guard names (string references) |
|
|
35
33
|
|
|
36
34
|
## Returns
|
|
37
35
|
|
|
38
36
|
[`ComposedGuard`](../type-aliases/ComposedGuard.md)
|
|
39
37
|
|
|
40
|
-
|
|
38
|
+
XState and() guard composition
|
|
41
39
|
|
|
42
40
|
## Throws
|
|
43
41
|
|
|
@@ -51,8 +49,6 @@ AND composition with named guards
|
|
|
51
49
|
import { setup } from "xstate";
|
|
52
50
|
import { composeGuards } from "@xmachines/play-xstate";
|
|
53
51
|
|
|
54
|
-
const canAccessAdmin = composeGuards(["isLoggedIn", "hasPermission"]);
|
|
55
|
-
|
|
56
52
|
const machine = setup({
|
|
57
53
|
guards: {
|
|
58
54
|
isLoggedIn: ({ context }) => !!context.userId,
|
|
@@ -60,9 +56,10 @@ const machine = setup({
|
|
|
60
56
|
},
|
|
61
57
|
}).createMachine({
|
|
62
58
|
on: {
|
|
63
|
-
accessAdmin:
|
|
64
|
-
|
|
65
|
-
|
|
59
|
+
accessAdmin: {
|
|
60
|
+
// Both guards must pass
|
|
61
|
+
guard: composeGuards(["isLoggedIn", "hasPermission"]),
|
|
62
|
+
target: "adminPanel",
|
|
66
63
|
},
|
|
67
64
|
},
|
|
68
65
|
});
|
|
@@ -73,13 +70,15 @@ AND composition with inline predicates
|
|
|
73
70
|
```typescript
|
|
74
71
|
import { composeGuards } from "@xmachines/play-xstate";
|
|
75
72
|
|
|
76
|
-
|
|
77
|
-
({ context }) => context.age >= 18,
|
|
78
|
-
({ context }) => context.verified,
|
|
79
|
-
]);
|
|
73
|
+
guard: composeGuards([({ context }) => context.age >= 18, ({ context }) => context.verified]);
|
|
80
74
|
```
|
|
81
75
|
|
|
82
76
|
## See
|
|
83
77
|
|
|
84
78
|
- [composeGuardsOr](composeGuardsOr.md) for OR composition
|
|
85
79
|
- [negateGuard](negateGuard.md) for NOT logic
|
|
80
|
+
|
|
81
|
+
## Deprecated
|
|
82
|
+
|
|
83
|
+
Use XState's own `and()`/`or()`/`not()` directly — this helper does not
|
|
84
|
+
compose with `setup()`-typed guard slots and will be removed in the next major.
|