@xmachines/docs 2.0.0-alpha.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -17
- package/api/@xmachines/play/README.md +58 -66
- package/api/@xmachines/play/classes/NonNullableError.md +14 -14
- package/api/@xmachines/play/classes/PlayError.md +32 -34
- package/api/@xmachines/play/functions/assertNonNullable.md +17 -17
- package/api/@xmachines/play/type-aliases/PlayEvent.md +28 -27
- package/api/@xmachines/play-actor/README.md +114 -50
- package/api/@xmachines/play-actor/classes/AbstractActor.md +45 -30
- package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +19 -18
- package/api/@xmachines/play-actor/functions/composePlayState.md +27 -0
- package/api/@xmachines/play-actor/functions/createViewStoreLifecycle.md +21 -0
- package/api/@xmachines/play-actor/functions/guardContextWrites.md +43 -0
- package/api/@xmachines/play-actor/functions/refreshContextSubtree.md +28 -0
- package/api/@xmachines/play-actor/functions/reuseComposedState.md +42 -0
- package/api/@xmachines/play-actor/functions/shallowEqualExcept.md +29 -0
- package/api/@xmachines/play-actor/functions/toAtomState.md +16 -14
- package/api/@xmachines/play-actor/functions/typedSpec.md +25 -27
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +17 -15
- package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +15 -14
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +13 -15
- package/api/@xmachines/play-actor/interfaces/ResolveViewStoreOptions.md +11 -0
- package/api/@xmachines/play-actor/interfaces/Routable.md +6 -6
- 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 +9 -9
- package/api/@xmachines/play-actor/variables/CONTEXT_STATE_KEY.md +15 -0
- package/api/@xmachines/play-dom/README.md +123 -86
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +34 -32
- package/api/@xmachines/play-dom/functions/createPlayUI.md +10 -10
- package/api/@xmachines/play-dom/functions/createRenderer.md +21 -17
- 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 +16 -16
- 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 +9 -9
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +17 -17
- 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 +5 -5
- package/api/@xmachines/play-dom/variables/schema.md +35 -45
- package/api/@xmachines/play-dom-router/README.md +68 -51
- package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +116 -0
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +4 -3
- package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +16 -14
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-dom-router/functions/createRouter.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +25 -26
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +21 -20
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +7 -7
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +41 -35
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +18 -17
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +9 -9
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +39 -38
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +7 -7
- package/api/@xmachines/play-react/README.md +65 -55
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +14 -13
- 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 +4 -4
- package/api/@xmachines/play-react/functions/useSignalEffect.md +39 -39
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +11 -11
- package/api/@xmachines/play-react/interfaces/ComponentContext.md +9 -8
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +7 -7
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +6 -6
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +14 -14
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +8 -8
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +2 -2
- package/api/@xmachines/play-react/type-aliases/PlayRendererProps.md +13 -0
- package/api/@xmachines/play-react/variables/ActorProvider.md +9 -8
- package/api/@xmachines/play-react/variables/PlayRenderer.md +5 -4
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +6 -6
- package/api/@xmachines/play-react-router/README.md +38 -31
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +22 -19
- package/api/@xmachines/play-react-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +16 -14
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +18 -18
- package/api/@xmachines/play-react-router/interfaces/PlayActor.md +22 -20
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +41 -35
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +12 -12
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +11 -11
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +2 -2
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +7 -6
- package/api/@xmachines/play-router/README.md +99 -95
- package/api/@xmachines/play-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +29 -23
- package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +6 -5
- package/api/@xmachines/play-router/functions/buildRouteTree.md +16 -15
- package/api/@xmachines/play-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +18 -18
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +18 -17
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +11 -10
- package/api/@xmachines/play-router/functions/extractQuery.md +3 -3
- package/api/@xmachines/play-router/functions/extractRouteParams.md +22 -19
- package/api/@xmachines/play-router/functions/findRouteById.md +10 -9
- package/api/@xmachines/play-router/functions/findRouteByPath.md +14 -12
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +9 -9
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +9 -9
- package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +16 -15
- package/api/@xmachines/play-router/functions/isRouteReachable.md +12 -11
- package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
- package/api/@xmachines/play-router/functions/routeExists.md +8 -8
- package/api/@xmachines/play-router/functions/sanitizePathname.md +15 -13
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +10 -10
- package/api/@xmachines/play-router/functions/validateStateExists.md +9 -9
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +6 -6
- package/api/@xmachines/play-router/interfaces/LocationLike.md +11 -11
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +7 -9
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +9 -9
- package/api/@xmachines/play-router/interfaces/PlayActor.md +22 -20
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +41 -35
- package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +7 -7
- package/api/@xmachines/play-router/interfaces/RoutableActor.md +18 -17
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +11 -11
- package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteNode.md +13 -13
- package/api/@xmachines/play-router/interfaces/RouteObject.md +6 -6
- package/api/@xmachines/play-router/interfaces/RouteTree.md +11 -11
- package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +13 -13
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-router/interfaces/WindowLike.md +10 -10
- package/api/@xmachines/play-router/type-aliases/BaseRouteMapping.md +13 -0
- package/api/@xmachines/play-router/type-aliases/MachineGraph.md +4 -3
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +2 -2
- package/api/@xmachines/play-signals/README.md +38 -36
- package/api/@xmachines/play-signals/functions/watchSignal.md +15 -15
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +6 -6
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +10 -10
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +6 -6
- package/api/@xmachines/play-signals/interfaces/SignalState.md +13 -13
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +18 -18
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +6 -5
- package/api/@xmachines/play-solid/README.md +46 -42
- package/api/@xmachines/play-solid/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/functions/usePlayView.md +3 -3
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +13 -13
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +14 -14
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +9 -9
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +2 -2
- package/api/@xmachines/play-solid/variables/ActorContext.md +5 -4
- package/api/@xmachines/play-solid/variables/ActorProvider.md +8 -7
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +6 -4
- package/api/@xmachines/play-solid/variables/PlayUIProvider.md +7 -7
- package/api/@xmachines/play-solid-router/README.md +39 -34
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +43 -34
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +15 -13
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +45 -30
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +22 -20
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +41 -35
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +10 -10
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +11 -11
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +5 -5
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +2 -2
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +11 -11
- package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +9 -8
- package/api/@xmachines/play-svelte/README.md +60 -33
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +9 -8
- package/api/@xmachines/play-svelte/functions/getActorContext.md +5 -4
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +3 -3
- package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +17 -15
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +9 -9
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +20 -18
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +12 -11
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +2 -2
- package/api/@xmachines/play-svelte-spa-router/README.md +43 -52
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +133 -0
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +7 -7
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +41 -35
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +10 -10
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-sveltekit-router/README.md +43 -39
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +132 -0
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +3 -3
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +11 -11
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +41 -35
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/README.md +67 -49
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +43 -38
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +16 -14
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +18 -18
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +11 -10
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +22 -20
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +41 -35
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +12 -12
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +11 -11
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +16 -11
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +2 -2
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +15 -13
- package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +9 -8
- package/api/@xmachines/play-tanstack-router/README.md +38 -16
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +43 -38
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +9 -9
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +15 -13
- package/api/@xmachines/play-tanstack-solid-router/README.md +76 -50
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +38 -30
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +15 -13
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +22 -20
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +41 -35
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +11 -11
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +2 -2
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +2 -2
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +15 -13
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +7 -7
- package/api/@xmachines/play-vue/README.md +39 -39
- package/api/@xmachines/play-vue/functions/defineRegistry.md +10 -9
- 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/functions/usePlayView.md +28 -0
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +10 -9
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +13 -12
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +10 -9
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +6 -2
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +2 -2
- 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/variables/getPlayViewContext.md +34 -0
- package/api/@xmachines/play-vue-router/README.md +66 -57
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +50 -48
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +26 -19
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +12 -11
- package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +22 -20
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +41 -35
- package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +11 -10
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +27 -24
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +2 -2
- package/api/@xmachines/play-vue-router/type-aliases/VueRouteMap.md +13 -0
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +5 -5
- package/api/@xmachines/play-vue-router/variables/VueRouteMap.md +13 -0
- package/api/@xmachines/play-xstate/README.md +129 -138
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +148 -114
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +19 -23
- package/api/@xmachines/play-xstate/functions/composeGuards.md +34 -33
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +27 -22
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +19 -14
- package/api/@xmachines/play-xstate/functions/definePlayer.md +19 -19
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +26 -25
- package/api/@xmachines/play-xstate/functions/eventMatches.md +12 -7
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +17 -48
- package/api/@xmachines/play-xstate/functions/hasContext.md +12 -9
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +10 -10
- package/api/@xmachines/play-xstate/functions/negateGuard.md +26 -20
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +6 -6
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +7 -7
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +10 -11
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +15 -14
- 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 +13 -11
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +8 -5
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +11 -15
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +12 -19
- package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +15 -26
- package/api/@xmachines/shared/README.md +12 -14
- 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 +90 -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-vue/functions/getPlayViewContext.md +0 -28
- 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,32 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
# Class: RouteMap
|
|
4
4
|
|
|
5
|
-
Defined in: [base-route-map.ts:
|
|
5
|
+
Defined in: [base-route-map.ts:105](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/base-route-map.ts#L105)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
The shared base class of the route map for both directions.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
own and
|
|
9
|
+
Every framework adapter uses this class as its route map. An adapter adds no logic
|
|
10
|
+
of its own, and it inherits the complete public API from here.
|
|
11
11
|
|
|
12
|
-
**
|
|
12
|
+
**The strategy of a lookup:**
|
|
13
13
|
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
of routes
|
|
17
|
-
-
|
|
18
|
-
|
|
14
|
+
- A static path, without a `:param` → a `Map` lookup in O(1)
|
|
15
|
+
- A dynamic path → a scan of the bucket index in O(k), with `URLPattern`, where
|
|
16
|
+
`k` is the number of the routes with the same first path segment
|
|
17
|
+
- The class keeps each result of a first match in an LRU cache. The default size
|
|
18
|
+
is 500 entries, and the `cacheSize` constructor option changes it
|
|
19
19
|
|
|
20
|
-
**
|
|
20
|
+
**The syntax of a pattern** (`:param`, `:param?`, and `*`):
|
|
21
21
|
|
|
22
|
-
- `:param` —
|
|
23
|
-
- `:param?` — optional segment
|
|
24
|
-
- `*` — wildcard
|
|
22
|
+
- `:param` — a necessary segment. It matches exactly one segment without a `/`
|
|
23
|
+
- `:param?` — an optional segment. It matches zero segments or one segment without a `/`
|
|
24
|
+
- `*` — a wildcard. It matches each number of segments, as URLPattern defines
|
|
25
25
|
|
|
26
|
-
**
|
|
27
|
-
`"#stateId"` or `"stateId"
|
|
28
|
-
`getStateIdByPath` returns the stateId exactly as
|
|
29
|
-
`getPathByStateId` accepts both forms.
|
|
30
|
-
forms
|
|
26
|
+
**The forms of a stateId:** you can register a stateId, and you can look one up,
|
|
27
|
+
in the form `"#stateId"` or in the form `"stateId"`. `RouteMap` makes the
|
|
28
|
+
canonical form itself. `getStateIdByPath` returns the stateId exactly as you
|
|
29
|
+
registered it, and `getPathByStateId` accepts both forms. A registration of the
|
|
30
|
+
same stateId in both forms gives one entry, and the later registration wins for
|
|
31
|
+
the lookup in the other direction.
|
|
31
32
|
|
|
32
33
|
## Example
|
|
33
34
|
|
|
@@ -57,21 +58,22 @@ map.getPathByStateId("missing"); // null
|
|
|
57
58
|
new RouteMap(mappings, options?): RouteMap;
|
|
58
59
|
```
|
|
59
60
|
|
|
60
|
-
Defined in: [base-route-map.ts:
|
|
61
|
+
Defined in: [base-route-map.ts:133](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/base-route-map.ts#L133)
|
|
61
62
|
|
|
62
|
-
|
|
63
|
+
Builds a route map from an array of the mappings between a state ID and a path.
|
|
63
64
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
buckets
|
|
65
|
+
The constructor puts each static path, which holds no `:param`, into a `Map` for a
|
|
66
|
+
lookup in O(1). It compiles each parameterized path to a `URLPattern`, and it
|
|
67
|
+
groups the patterns into the buckets of the first segment. The selection of the
|
|
68
|
+
candidates is therefore efficient.
|
|
67
69
|
|
|
68
70
|
#### Parameters
|
|
69
71
|
|
|
70
|
-
| Parameter | Type | Description
|
|
71
|
-
| -------------------- | ------------------------------------------------- |
|
|
72
|
-
| `mappings` | [`RouteMapping`](../interfaces/RouteMapping.md)[] |
|
|
73
|
-
| `options` | \{ `cacheSize?`: `number`; \} |
|
|
74
|
-
| `options.cacheSize?` | `number` | -
|
|
72
|
+
| Parameter | Type | Description |
|
|
73
|
+
| -------------------- | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
74
|
+
| `mappings` | [`RouteMapping`](../interfaces/RouteMapping.md)[] | The array of the `{ stateId, path }` entries. The order gives the priority when more than one pattern can match the same path. |
|
|
75
|
+
| `options` | \{ `cacheSize?`: `number`; \} | The optional configuration. `options.cacheSize`: the maximum number of the resolved parameterized path lookups in the cache. The default is `500`. Raise it for an application with many different values in a parameterized URL, for example a page of a user profile with thousands of different IDs. After an eviction, the path goes to the bucket pattern scan in O(k) again, which is correct but slower. The smallest effective value is `1`, because QuickLRU requires it. |
|
|
76
|
+
| `options.cacheSize?` | `number` | - |
|
|
75
77
|
|
|
76
78
|
#### Returns
|
|
77
79
|
|
|
@@ -85,31 +87,31 @@ buckets for efficient candidate selection.
|
|
|
85
87
|
getPathByStateId(stateId): string | null;
|
|
86
88
|
```
|
|
87
89
|
|
|
88
|
-
Defined in: [base-route-map.ts:
|
|
90
|
+
Defined in: [base-route-map.ts:225](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/base-route-map.ts#L225)
|
|
89
91
|
|
|
90
|
-
|
|
92
|
+
Returns the path pattern of a state ID.
|
|
91
93
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
The method accepts the stateId in the form `"#stateId"` and in the form
|
|
95
|
+
`"stateId"`, and the form of the registration has no effect. The method makes the
|
|
96
|
+
canonical form itself. Therefore a consumer tries never both forms.
|
|
95
97
|
|
|
96
98
|
#### Parameters
|
|
97
99
|
|
|
98
|
-
| Parameter | Type | Description
|
|
99
|
-
| --------- | -------- |
|
|
100
|
-
| `stateId` | `string` |
|
|
100
|
+
| Parameter | Type | Description |
|
|
101
|
+
| --------- | -------- | --------------------------------------------------------------------------- |
|
|
102
|
+
| `stateId` | `string` | The state ID of the state machine, for example `"profile"` or `"#settings"` |
|
|
101
103
|
|
|
102
104
|
#### Returns
|
|
103
105
|
|
|
104
106
|
`string` \| `null`
|
|
105
107
|
|
|
106
|
-
The registered path pattern, or `null`
|
|
108
|
+
The registered path pattern, or `null` when the state ID is unknown
|
|
107
109
|
|
|
108
110
|
#### Example
|
|
109
111
|
|
|
110
112
|
```typescript
|
|
111
113
|
map.getPathByStateId("profile"); // "/profile/:userId"
|
|
112
|
-
map.getPathByStateId("#profile"); // "/profile/:userId"
|
|
114
|
+
map.getPathByStateId("#profile"); // "/profile/:userId" — the same entry
|
|
113
115
|
map.getPathByStateId("missing"); // null
|
|
114
116
|
```
|
|
115
117
|
|
|
@@ -121,25 +123,25 @@ map.getPathByStateId("missing"); // null
|
|
|
121
123
|
getStateIdByPath(path): string | null;
|
|
122
124
|
```
|
|
123
125
|
|
|
124
|
-
Defined in: [base-route-map.ts:
|
|
126
|
+
Defined in: [base-route-map.ts:185](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/base-route-map.ts#L185)
|
|
125
127
|
|
|
126
|
-
|
|
128
|
+
Resolves a URL path to its state ID.
|
|
127
129
|
|
|
128
|
-
|
|
129
|
-
lookup first, then
|
|
130
|
-
|
|
130
|
+
The method removes the query string and the hash fragment before the match. It
|
|
131
|
+
tries an exact lookup in O(1) first, then it uses the pattern match on the bucket
|
|
132
|
+
index. It keeps each result of a first pattern match in the cache.
|
|
131
133
|
|
|
132
134
|
#### Parameters
|
|
133
135
|
|
|
134
|
-
| Parameter | Type | Description
|
|
135
|
-
| --------- | -------- |
|
|
136
|
-
| `path` | `string` | URL pathname
|
|
136
|
+
| Parameter | Type | Description |
|
|
137
|
+
| --------- | -------- | -------------------------------------------------------------------------------------- |
|
|
138
|
+
| `path` | `string` | The URL pathname. It can hold a query and a hash, for example `"/profile/123?ref=nav"` |
|
|
137
139
|
|
|
138
140
|
#### Returns
|
|
139
141
|
|
|
140
142
|
`string` \| `null`
|
|
141
143
|
|
|
142
|
-
The
|
|
144
|
+
The state ID of the path, or `null` when no route matches
|
|
143
145
|
|
|
144
146
|
#### Example
|
|
145
147
|
|
|
@@ -2,19 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
# Abstract Class: RouterBridgeBase
|
|
4
4
|
|
|
5
|
-
Defined in: [router-bridge-base.ts:
|
|
5
|
+
Defined in: [router-bridge-base.ts:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/router-bridge-base.ts#L99)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
The abstract base class of every router adapter bridge of `@xmachines`.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
The class implements the RouterBridge protocol, and it holds every part of the
|
|
10
|
+
bridge logic that the adapters share. A subclass implements the 3 abstract methods
|
|
11
|
+
that are different in each framework, and it implements nothing more.
|
|
12
12
|
|
|
13
13
|
## Extended by
|
|
14
14
|
|
|
15
|
+
- [`DomRouterBridge`](../../play-dom-router/classes/DomRouterBridge.md)
|
|
15
16
|
- [`ReactRouterBridge`](../../play-react-router/classes/ReactRouterBridge.md)
|
|
16
17
|
- [`TanStackRouterBridgeBase`](../../play-tanstack-router/classes/TanStackRouterBridgeBase.md)
|
|
17
18
|
- [`SolidRouterBridge`](../../play-solid-router/classes/SolidRouterBridge.md)
|
|
19
|
+
- [`SvelteKitRouterBridge`](../../play-sveltekit-router/classes/SvelteKitRouterBridge.md)
|
|
20
|
+
- [`SvelteSpaRouterBridge`](../../play-svelte-spa-router/classes/SvelteSpaRouterBridge.md)
|
|
18
21
|
- [`TanStackReactRouterBridge`](../../play-tanstack-react-router/classes/TanStackReactRouterBridge.md)
|
|
19
22
|
- [`VueRouterBridge`](../../play-vue-router/classes/VueRouterBridge.md)
|
|
20
23
|
|
|
@@ -30,14 +33,14 @@ between frameworks.
|
|
|
30
33
|
new RouterBridgeBase(actor, routeMap): RouterBridgeBase;
|
|
31
34
|
```
|
|
32
35
|
|
|
33
|
-
Defined in: [router-bridge-base.ts:
|
|
36
|
+
Defined in: [router-bridge-base.ts:127](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/router-bridge-base.ts#L127)
|
|
34
37
|
|
|
35
38
|
#### Parameters
|
|
36
39
|
|
|
37
|
-
| Parameter | Type | Description
|
|
38
|
-
| --------------------------- | ------------------------------------------------------------------------------------------------------------------- |
|
|
39
|
-
| `actor` | [`RoutableActor`](../interfaces/RoutableActor.md) | A `RoutableActor
|
|
40
|
-
| `routeMap` | \{ `getPathByStateId`: `string` \| `null` \| `undefined`; `getStateIdByPath`: `string` \| `null` \| `undefined`; \} |
|
|
40
|
+
| Parameter | Type | Description |
|
|
41
|
+
| --------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
42
|
+
| `actor` | [`RoutableActor`](../interfaces/RoutableActor.md) | A `RoutableActor`, with `currentRoute`, `initialRoute`, and `send`. |
|
|
43
|
+
| `routeMap` | \{ `getPathByStateId`: `string` \| `null` \| `undefined`; `getStateIdByPath`: `string` \| `null` \| `undefined`; \} | The route map of both directions, for the resolution between a `stateId` and a `path`. Give `getStateIdByPath` and `getPathByStateId`. A framework adapter usually wraps the result of `createRouteMap(machine)`, or an equivalent value. The key of `getPathByStateId` is the form `"#stateId"` or the bare form `"stateId"`. The bridge tries both forms. Therefore an implementation of your own, for example a plain test object, handles one form only. |
|
|
41
44
|
| `routeMap.getPathByStateId` | - |
|
|
42
45
|
| `routeMap.getStateIdByPath` | - |
|
|
43
46
|
|
|
@@ -53,21 +56,23 @@ Defined in: [router-bridge-base.ts:123](https://gitlab.com/xmachin-es/xmachines-
|
|
|
53
56
|
connect(): void;
|
|
54
57
|
```
|
|
55
58
|
|
|
56
|
-
Defined in: [router-bridge-base.ts:
|
|
59
|
+
Defined in: [router-bridge-base.ts:158](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/router-bridge-base.ts#L158)
|
|
57
60
|
|
|
58
|
-
|
|
61
|
+
Connects the router bridge to the Actor.
|
|
59
62
|
|
|
60
|
-
|
|
61
|
-
starts
|
|
63
|
+
The method installs the TC39 Signal watcher of the direction from the actor to the
|
|
64
|
+
router. It then starts the watch of the router changes, which each framework does
|
|
65
|
+
in its own way.
|
|
62
66
|
|
|
63
|
-
|
|
67
|
+
The order of these steps is part of the contract of the bridge:
|
|
64
68
|
|
|
65
|
-
- `lastSyncedPath`
|
|
66
|
-
- the actor watcher
|
|
67
|
-
-
|
|
69
|
+
- The constructor seeds `lastSyncedPath` from `actor.currentRoute`
|
|
70
|
+
- The method installs the actor watcher before the router subscriptions of the adapter
|
|
71
|
+
- The first synchronization then separates a deep link from a restore, with `actor.initialRoute`
|
|
68
72
|
|
|
69
|
-
|
|
70
|
-
`getInitialRouterPath()
|
|
73
|
+
An adapter that needs a different behavior of the first synchronization overrides
|
|
74
|
+
`getInitialRouterPath()`. It does not change the order of the steps of
|
|
75
|
+
`connect()`.
|
|
71
76
|
|
|
72
77
|
#### Returns
|
|
73
78
|
|
|
@@ -85,11 +90,12 @@ Adapters that need custom initial-sync behavior should override
|
|
|
85
90
|
disconnect(): void;
|
|
86
91
|
```
|
|
87
92
|
|
|
88
|
-
Defined in: [router-bridge-base.ts:
|
|
93
|
+
Defined in: [router-bridge-base.ts:270](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/router-bridge-base.ts#L270)
|
|
89
94
|
|
|
90
|
-
|
|
95
|
+
Disconnects the router bridge from the Actor.
|
|
91
96
|
|
|
92
|
-
|
|
97
|
+
The method stops the watch of the signal, and it removes the router listener of the
|
|
98
|
+
framework.
|
|
93
99
|
|
|
94
100
|
#### Returns
|
|
95
101
|
|
|
@@ -9,13 +9,14 @@ function buildPlayRouteEvent(options): {
|
|
|
9
9
|
} | null;
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
Defined in: [router-sync.ts:
|
|
12
|
+
Defined in: [router-sync.ts:175](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/router-sync.ts#L175)
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Builds a normalized `play.route` event from the raw input of a router or of a
|
|
15
|
+
browser.
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
`connectRouter()` of `@xmachines/play-dom-router` and `RouterBridgeBase` both use
|
|
18
|
+
this helper. Therefore a low-level adapter and a framework adapter clean each
|
|
19
|
+
pathname, match each route, and read each query in the same way.
|
|
19
20
|
|
|
20
21
|
## Parameters
|
|
21
22
|
|
|
@@ -6,32 +6,33 @@
|
|
|
6
6
|
function buildRouteTree(routes): RouteTree;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [build-tree.ts:
|
|
9
|
+
Defined in: [build-tree.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/build-tree.ts#L22)
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Builds the hierarchical route tree from the flat list of the routes
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
The function makes a nested tree, and it keeps the parent-child relation of the
|
|
14
|
+
states. An absolute route becomes a route of the top level, and a relative route
|
|
15
|
+
goes below its parent. The function also makes the maps of both directions, for
|
|
16
|
+
the lookup between a state ID and a path.
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
the same
|
|
21
|
-
|
|
18
|
+
The detection of a duplicate runs here, after the function resolved each relative
|
|
19
|
+
route against the complete path of its parent. Therefore two relative routes with
|
|
20
|
+
the same raw string below two different parents are valid, and two different raw
|
|
21
|
+
strings that resolve to the same complete path are not: those two overwrite each
|
|
22
|
+
other in `byPath` in silence.
|
|
22
23
|
|
|
23
24
|
## Parameters
|
|
24
25
|
|
|
25
|
-
| Parameter | Type | Description
|
|
26
|
-
| --------- | ------------------------------------------- |
|
|
27
|
-
| `routes` | [`RouteInfo`](../interfaces/RouteInfo.md)[] |
|
|
26
|
+
| Parameter | Type | Description |
|
|
27
|
+
| --------- | ------------------------------------------- | ----------------------------------------------------------- |
|
|
28
|
+
| `routes` | [`RouteInfo`](../interfaces/RouteInfo.md)[] | The flat list of the RouteInfo objects, from the extraction |
|
|
28
29
|
|
|
29
30
|
## Returns
|
|
30
31
|
|
|
31
32
|
[`RouteTree`](../interfaces/RouteTree.md)
|
|
32
33
|
|
|
33
|
-
RouteTree with root, byStateId map, and byPath map
|
|
34
|
+
The RouteTree, with its root, its byStateId map, and its byPath map
|
|
34
35
|
|
|
35
36
|
## Throws
|
|
36
37
|
|
|
37
|
-
|
|
38
|
+
When two states resolve to the same complete path
|
|
@@ -6,27 +6,28 @@
|
|
|
6
6
|
function createRouteMap(machine, options?): RouteMap;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [create-route-map.ts:
|
|
9
|
+
Defined in: [create-route-map.ts:47](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/create-route-map.ts#L47)
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Creates a `RouteMap` from an XState state machine.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
The function reads every state with a route, which means each state with a
|
|
14
|
+
`meta.route` field. It then builds the lookup structure between a path and a
|
|
15
|
+
stateId, for both directions. A subclass of `RouterBridgeBase` uses the map: it
|
|
16
|
+
converts each change of the browser URL into a `play.route` actor event, and each
|
|
17
|
+
actor route into a URL.
|
|
17
18
|
|
|
18
19
|
## Parameters
|
|
19
20
|
|
|
20
|
-
| Parameter | Type | Description
|
|
21
|
-
| ---------- | ------------------------------------------------------------------------- |
|
|
22
|
-
| `machine` | [`AnyStateMachine`](https://www.jsdocs.io/package/xstate#AnyStateMachine) | XState
|
|
23
|
-
| `options?` | [`RouteMapOptions`](../interfaces/RouteMapOptions.md) |
|
|
21
|
+
| Parameter | Type | Description |
|
|
22
|
+
| ---------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
|
23
|
+
| `machine` | [`AnyStateMachine`](https://www.jsdocs.io/package/xstate#AnyStateMachine) | The XState v5 state machine, with a `meta.route` annotation on each state with a route. |
|
|
24
|
+
| `options?` | [`RouteMapOptions`](../interfaces/RouteMapOptions.md) | The optional configuration. Give `{ cacheSize }` to change the default size of the LRU cache of the parameterized path lookups. |
|
|
24
25
|
|
|
25
26
|
## Returns
|
|
26
27
|
|
|
27
28
|
[`RouteMap`](../classes/RouteMap.md)
|
|
28
29
|
|
|
29
|
-
A `RouteMap` for
|
|
30
|
+
A `RouteMap` for each adapter on `RouterBridgeBase`.
|
|
30
31
|
|
|
31
32
|
## Example
|
|
32
33
|
|
|
@@ -6,41 +6,41 @@
|
|
|
6
6
|
function createRouteMapFromTree(routeTree, options?): RouteMap;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [create-route-map-from-tree.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.
|
|
9
|
+
Defined in: [create-route-map-from-tree.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/create-route-map-from-tree.ts#L33)
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Creates a `RouteMap` from the node structure of a `RouteTree`.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
`
|
|
15
|
-
`createRouteMap()` directly.
|
|
13
|
+
A framework router adapter uses this function when it gives a `RouteTree` from
|
|
14
|
+
`extractMachineRoutes()`, and not when it calls `createRouteMap()` directly.
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
`node.fullPath` is always the
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
The function walks every node, and it collects the pairs
|
|
17
|
+
`{ stateId: node.id, path: node.fullPath }`. `node.fullPath` is always the
|
|
18
|
+
absolute resolved path, for example `"/dashboard/overview"`, and `RouteMap` needs
|
|
19
|
+
that path for the match of a browser URL. `createRouteMap(machine)` behaves in the
|
|
20
|
+
same way, because it also uses `node.fullPath`.
|
|
21
21
|
|
|
22
22
|
## Parameters
|
|
23
23
|
|
|
24
|
-
| Parameter | Type | Description
|
|
25
|
-
| ----------- | ----------------------------------------------------- |
|
|
26
|
-
| `routeTree` | [`RouteTree`](../interfaces/RouteTree.md) | A `RouteTree
|
|
27
|
-
| `options?` | [`RouteMapOptions`](../interfaces/RouteMapOptions.md) |
|
|
24
|
+
| Parameter | Type | Description |
|
|
25
|
+
| ----------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------- |
|
|
26
|
+
| `routeTree` | [`RouteTree`](../interfaces/RouteTree.md) | A `RouteTree`, as `extractMachineRoutes()` returns it. |
|
|
27
|
+
| `options?` | [`RouteMapOptions`](../interfaces/RouteMapOptions.md) | The optional configuration, for example `{ cacheSize }` to change the size of the LRU cache. |
|
|
28
28
|
|
|
29
29
|
## Returns
|
|
30
30
|
|
|
31
31
|
[`RouteMap`](../classes/RouteMap.md)
|
|
32
32
|
|
|
33
|
-
A `RouteMap` for
|
|
33
|
+
A `RouteMap` for each adapter on `RouterBridgeBase`.
|
|
34
34
|
|
|
35
35
|
## Example
|
|
36
36
|
|
|
37
37
|
```typescript
|
|
38
|
-
//
|
|
38
|
+
// The preferred form — one call for an XState machine:
|
|
39
39
|
import { createRouteMap } from "@xmachines/play-router";
|
|
40
|
-
const routeMap = createRouteMap(machine); // takes AnyStateMachine
|
|
40
|
+
const routeMap = createRouteMap(machine); // it takes an AnyStateMachine
|
|
41
41
|
|
|
42
|
-
//
|
|
42
|
+
// The two-step form, for a framework adapter that works with a route tree:
|
|
43
43
|
import { extractMachineRoutes, createRouteMapFromTree } from "@xmachines/play-router";
|
|
44
44
|
const routeTree = extractMachineRoutes(machine);
|
|
45
|
-
const routeMap = createRouteMapFromTree(routeTree); // uses node.fullPath
|
|
45
|
+
const routeMap = createRouteMapFromTree(routeTree); // it uses node.fullPath, which is absolute
|
|
46
46
|
```
|
|
@@ -6,29 +6,30 @@
|
|
|
6
6
|
function detectDuplicateRoutes(routes): void;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [validate-routes.ts:
|
|
9
|
+
Defined in: [validate-routes.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/validate-routes.ts#L70)
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Finds each duplicate route path
|
|
12
12
|
|
|
13
|
-
THROWS ERROR when
|
|
13
|
+
The function THROWS AN ERROR when more than one state holds the same RESOLVED
|
|
14
|
+
complete path.
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
strings: two relative `"settings"` routes
|
|
18
|
-
|
|
19
|
-
route
|
|
20
|
-
|
|
16
|
+
The detection works on the resolved complete paths, after `buildRouteTree` put the
|
|
17
|
+
path of each parent before its relative routes. It does not work on the raw route
|
|
18
|
+
strings: two relative `"settings"` routes below two different parents resolve to
|
|
19
|
+
two different complete paths, and they are valid; a relative route and an absolute
|
|
20
|
+
route that resolve to the same URL are a real collision, and the function refuses
|
|
21
|
+
them. `buildRouteTree` calls this function when the complete paths are known.
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
direct URL
|
|
25
|
-
conditional
|
|
23
|
+
The reason: a routing on the URL requires one state for each URL. Two states at
|
|
24
|
+
the same path make the browser navigation ambiguous, for the BACK button and for a
|
|
25
|
+
direct URL. Use a different path for each state, or use one state with a
|
|
26
|
+
conditional render.
|
|
26
27
|
|
|
27
28
|
## Parameters
|
|
28
29
|
|
|
29
|
-
| Parameter | Type | Description
|
|
30
|
-
| --------- | ----------------------------------------------------------- |
|
|
31
|
-
| `routes` | [`ResolvedRoutePath`](../interfaces/ResolvedRoutePath.md)[] |
|
|
30
|
+
| Parameter | Type | Description |
|
|
31
|
+
| --------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
|
|
32
|
+
| `routes` | [`ResolvedRoutePath`](../interfaces/ResolvedRoutePath.md)[] | The array of the route entries with their resolved complete paths, for example the `RouteNode` objects |
|
|
32
33
|
|
|
33
34
|
## Returns
|
|
34
35
|
|
|
@@ -36,4 +37,4 @@ conditional rendering.
|
|
|
36
37
|
|
|
37
38
|
## Throws
|
|
38
39
|
|
|
39
|
-
|
|
40
|
+
When the function finds two resolved route paths that are equal
|
|
@@ -6,23 +6,24 @@
|
|
|
6
6
|
function extractMachineRoutes(machine): RouteTree;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [extract-routes.ts:
|
|
9
|
+
Defined in: [extract-routes.ts:92](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/extract-routes.ts#L92)
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Reads the complete route tree from the graph of a state machine
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
then walks graph nodes
|
|
15
|
-
|
|
16
|
-
RouteTree for
|
|
13
|
+
The function converts the XState machine into a Graph of @statelyai/graph, with
|
|
14
|
+
machineToGraph(). It then walks the graph nodes: it reads the route metadata of
|
|
15
|
+
each node, it checks each route reference, and it builds a hierarchical RouteTree.
|
|
16
|
+
The RouteTree of the return value also holds the graph, for a later query that
|
|
17
|
+
needs the transitions.
|
|
17
18
|
|
|
18
19
|
## Parameters
|
|
19
20
|
|
|
20
|
-
| Parameter | Type | Description
|
|
21
|
-
| --------- | ------------------------------------------------------------------------- |
|
|
22
|
-
| `machine` | [`AnyStateMachine`](https://www.jsdocs.io/package/xstate#AnyStateMachine) | XState
|
|
21
|
+
| Parameter | Type | Description |
|
|
22
|
+
| --------- | ------------------------------------------------------------------------- | --------------------------- |
|
|
23
|
+
| `machine` | [`AnyStateMachine`](https://www.jsdocs.io/package/xstate#AnyStateMachine) | The XState v5 state machine |
|
|
23
24
|
|
|
24
25
|
## Returns
|
|
25
26
|
|
|
26
27
|
[`RouteTree`](../interfaces/RouteTree.md)
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
The route tree, with its root, its byStateId map, its byPath map, and its graph
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
function extractQuery(search): Record<string, string>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [router-sync.ts:
|
|
9
|
+
Defined in: [router-sync.ts:155](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.1.0/packages/play-router/src/router-sync.ts#L155)
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
Parses a URL search string into the plain object that a `play.route` event
|
|
12
|
+
needs.
|
|
13
13
|
|
|
14
14
|
## Parameters
|
|
15
15
|
|