@xmachines/docs 3.0.0 → 5.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 +14 -20
- package/api/@xmachines/play/README.md +29 -118
- package/api/@xmachines/play/errors/README.md +8 -0
- package/api/@xmachines/play/{classes → errors/classes}/NonNullableError.md +6 -6
- package/api/@xmachines/play/{classes → errors/classes}/PlayError.md +36 -10
- package/api/@xmachines/play/index/README.md +75 -0
- package/api/@xmachines/play/index/functions/asCleanup.md +77 -0
- package/api/@xmachines/play/{functions → index/functions}/assertNonNullable.md +2 -2
- package/api/@xmachines/{play-actor → play/index}/functions/shallowEqualExcept.md +3 -3
- package/api/@xmachines/play/{type-aliases → index/type-aliases}/Cleanup.md +5 -5
- package/api/@xmachines/play/{type-aliases → index/type-aliases}/DisposeKey.md +2 -2
- package/api/@xmachines/play/{type-aliases → index/type-aliases}/PlayEvent.md +4 -4
- package/api/@xmachines/play/{variables → index/variables}/DISPOSE.md +2 -2
- package/api/@xmachines/play-actor/README.md +80 -231
- package/api/@xmachines/play-actor/interfaces/ActorEvent.md +18 -0
- package/api/@xmachines/play-actor/interfaces/PlayActor.md +73 -0
- package/api/@xmachines/play-atom/README.md +281 -0
- package/api/@xmachines/play-atom/functions/watchAtom.md +79 -0
- package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +16 -0
- package/api/@xmachines/play-atom/interfaces/Atom.md +149 -0
- package/api/@xmachines/play-atom/interfaces/AtomObserver.md +25 -0
- package/api/@xmachines/play-atom/interfaces/AtomOptions.md +33 -0
- package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +23 -0
- package/api/@xmachines/play-atom/interfaces/BaseAtom.md +97 -0
- package/api/@xmachines/play-atom/interfaces/CreateAtom.md +91 -0
- package/api/@xmachines/play-atom/interfaces/Readable.md +93 -0
- package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +108 -0
- package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +13 -0
- package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +32 -0
- package/api/@xmachines/{play-signals → play-atom}/type-aliases/Cleanup.md +5 -5
- package/api/@xmachines/play-atom/variables/createAsyncAtom.md +42 -0
- package/api/@xmachines/play-atom/variables/createAtom.md +18 -0
- package/api/@xmachines/play-atom/variables/createWritableAtom.md +70 -0
- package/api/@xmachines/play-dom/README.md +44 -52
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +17 -16
- package/api/@xmachines/play-dom/functions/asCleanup.md +77 -0
- package/api/@xmachines/play-dom/functions/createPlayUI.md +4 -4
- package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +6 -6
- package/api/@xmachines/play-dom/type-aliases/Cleanup.md +4 -4
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +29 -12
- package/api/@xmachines/play-dom-router/README.md +83 -83
- package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +24 -23
- package/api/@xmachines/play-dom-router/{interfaces → classes}/RouteMap.md +42 -7
- package/api/@xmachines/{play → play-dom-router}/functions/asCleanup.md +5 -6
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +3 -8
- package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +9 -3
- package/api/@xmachines/play-dom-router/functions/createRouter.md +8 -14
- package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +5 -9
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +70 -26
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +11 -9
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +24 -21
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +8 -8
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +36 -23
- package/api/@xmachines/play-dom-router/type-aliases/Cleanup.md +4 -4
- package/api/@xmachines/play-dom-router/variables/DISPOSE.md +2 -2
- package/api/@xmachines/play-pattern/README.md +115 -0
- package/api/@xmachines/play-pattern/functions/buildPath.md +46 -0
- package/api/@xmachines/play-pattern/functions/createPatternCache.md +47 -0
- package/api/@xmachines/play-pattern/functions/getIndexKey.md +30 -0
- package/api/@xmachines/play-pattern/functions/isDotSegment.md +40 -0
- package/api/@xmachines/play-pattern/functions/parsePattern.md +28 -0
- package/api/@xmachines/play-pattern/interfaces/GroupPart.md +15 -0
- package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +14 -0
- package/api/@xmachines/play-pattern/interfaces/ParamPart.md +21 -0
- package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +19 -0
- package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +23 -0
- package/api/@xmachines/play-pattern/interfaces/PatternCache.md +65 -0
- package/api/@xmachines/play-pattern/interfaces/PatternParam.md +15 -0
- package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +74 -0
- package/api/@xmachines/play-pattern/type-aliases/PathParams.md +15 -0
- package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +11 -0
- package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +9 -0
- package/api/@xmachines/play-react/README.md +46 -58
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +14 -10
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/useAtomEffect.md +103 -0
- package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +11 -11
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +8 -8
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -3
- package/api/@xmachines/play-react/variables/ActorProvider.md +2 -2
- 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/variables/schema.md +52 -0
- package/api/@xmachines/play-react-router/README.md +23 -51
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +24 -23
- package/api/@xmachines/play-react-router/classes/RouteMap.md +18 -12
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +11 -8
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +16 -9
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +14 -12
- package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +29 -12
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-router/README.md +116 -197
- package/api/@xmachines/play-router/errors/README.md +15 -0
- package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +191 -0
- package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +175 -0
- package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +175 -0
- package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +200 -0
- package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +203 -0
- package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +175 -0
- package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +199 -0
- package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +192 -0
- package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +182 -0
- package/api/@xmachines/play-router/index/README.md +83 -0
- package/api/@xmachines/play-router/{classes → index/classes}/RouteMap.md +19 -13
- package/api/@xmachines/play-router/{classes → index/classes}/RouterBridgeBase.md +22 -20
- package/api/@xmachines/play-router/{functions → index/functions}/buildPlayRouteEvent.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/buildRouteTree.md +14 -4
- package/api/@xmachines/play-router/{functions → index/functions}/cleanFrameworkParams.md +3 -4
- package/api/@xmachines/play-router/index/functions/createPatternCache.md +47 -0
- package/api/@xmachines/play-router/{functions → index/functions}/createRouteMapFromTree.md +17 -10
- package/api/@xmachines/play-router/{functions → index/functions}/createRouterConnection.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/detectDuplicateRoutes.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/extractQuery.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/extractRouteParams.md +9 -8
- package/api/@xmachines/play-router/{functions → index/functions}/findRouteById.md +2 -2
- package/api/@xmachines/play-router/index/functions/findRouteByPath.md +48 -0
- package/api/@xmachines/play-router/{functions → index/functions}/isMountableBridge.md +2 -2
- package/api/@xmachines/play-router/index/functions/joinBasePath.md +38 -0
- package/api/@xmachines/play-router/{functions → index/functions}/mountKey.md +2 -2
- package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +43 -0
- package/api/@xmachines/play-router/{functions → index/functions}/openProviderBridge.md +14 -14
- package/api/@xmachines/play-router/index/functions/parsePattern.md +28 -0
- package/api/@xmachines/play-router/index/functions/pickOwnParams.md +41 -0
- package/api/@xmachines/play-router/{functions → index/functions}/repointProviderBridge.md +2 -2
- package/api/@xmachines/play-router/index/functions/resolveBasePath.md +51 -0
- package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +49 -0
- package/api/@xmachines/play-router/index/functions/sanitizePathname.md +27 -0
- package/api/@xmachines/play-router/index/functions/splitLocation.md +37 -0
- package/api/@xmachines/play-router/index/functions/stripBasePath.md +44 -0
- package/api/@xmachines/play-router/{functions → index/functions}/validateRouteFormat.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/validateStateExists.md +2 -2
- package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +32 -0
- package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +13 -0
- package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +35 -0
- package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +52 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/LocationLike.md +6 -6
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/MountableRouterBridge.md +12 -12
- package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +30 -0
- package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +24 -0
- package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +23 -0
- package/api/@xmachines/play-router/index/interfaces/PatternCache.md +65 -0
- package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +130 -0
- package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +39 -0
- package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +14 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/ResolvedRoutePath.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/Routable.md +26 -0
- package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteInfo.md +11 -11
- package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +19 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteMapping.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +12 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteNode.md +13 -13
- package/api/@xmachines/play-router/index/interfaces/RouteObject.md +34 -0
- package/api/@xmachines/play-router/index/interfaces/RouteTree.md +27 -0
- package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +55 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouterBridge.md +17 -19
- package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +31 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouterConnection.md +10 -10
- package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +16 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/WindowLike.md +4 -4
- package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +53 -0
- package/api/@xmachines/play-router/index/type-aliases/RouteData.md +12 -0
- package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +31 -0
- package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +11 -0
- package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +68 -0
- package/api/@xmachines/{play-xstate → play-router/index}/variables/DISPOSE.md +3 -3
- package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +18 -0
- package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +18 -0
- package/api/@xmachines/play-router/xstate/README.md +53 -0
- package/api/@xmachines/play-router/{functions → xstate/functions}/createRouteMap.md +11 -9
- package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +30 -0
- package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +35 -0
- package/api/@xmachines/play-router/{functions → xstate/functions}/getRoutableRoutes.md +6 -6
- package/api/@xmachines/play-router/{functions → xstate/functions}/getRouteMappings.md +7 -7
- package/api/@xmachines/play-router/{functions → xstate/functions}/getTransitionReachableRoutes.md +2 -2
- package/api/@xmachines/play-router/{functions → xstate/functions}/isRouteReachable.md +2 -2
- package/api/@xmachines/play-router/{functions → xstate/functions}/machineToGraph.md +2 -2
- package/api/@xmachines/play-router/xstate/functions/routeExists.md +26 -0
- package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +15 -0
- package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +17 -0
- package/api/@xmachines/play-router/{type-aliases → xstate/type-aliases}/MachineGraph.md +2 -2
- package/api/@xmachines/play-solid/README.md +21 -34
- 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 +11 -11
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +8 -8
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -3
- package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorProvider.md +2 -2
- 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/variables/schema.md +71 -0
- package/api/@xmachines/play-solid-router/README.md +34 -55
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +18 -12
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +33 -56
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +9 -8
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +38 -35
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +14 -12
- package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +29 -12
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
- package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-svelte/README.md +18 -29
- 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 +12 -12
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +14 -14
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +8 -8
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -3
- package/api/@xmachines/play-svelte/variables/schema.md +16 -0
- package/api/@xmachines/play-svelte-spa-router/README.md +25 -44
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +18 -12
- package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +24 -23
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +3 -2
- package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +5 -9
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +11 -9
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +8 -8
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/README.md +32 -50
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +18 -12
- package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +24 -23
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +3 -2
- package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +5 -9
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +15 -23
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +8 -8
- package/api/@xmachines/play-tanstack-react-router/README.md +25 -49
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +18 -12
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +22 -21
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +11 -8
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +16 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +14 -12
- package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +29 -12
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-tanstack-router/README.md +6 -4
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +26 -29
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/README.md +29 -55
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +18 -12
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +52 -48
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +9 -8
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +14 -12
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +29 -12
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-url/README.md +75 -0
- package/api/@xmachines/play-url/errors/README.md +17 -0
- package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +200 -0
- package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +203 -0
- package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +199 -0
- package/api/@xmachines/play-url/index/README.md +72 -0
- package/api/@xmachines/play-url/index/functions/buildPath.md +46 -0
- package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +39 -0
- package/api/@xmachines/play-url/index/functions/createPatternCache.md +47 -0
- package/api/@xmachines/play-url/index/functions/getCandidates.md +29 -0
- package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +32 -0
- package/api/@xmachines/play-url/index/functions/getIndexKey.md +30 -0
- package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +36 -0
- package/api/@xmachines/play-url/index/functions/isDotSegment.md +40 -0
- package/api/@xmachines/{play-router → play-url/index}/functions/joinBasePath.md +3 -2
- package/api/@xmachines/{play-router → play-url/index}/functions/normalizeBasePath.md +2 -2
- package/api/@xmachines/play-url/index/functions/parsePattern.md +28 -0
- package/api/@xmachines/{play-router → play-url/index}/functions/pickOwnParams.md +4 -4
- package/api/@xmachines/{play-router → play-url/index}/functions/resolveBasePath.md +2 -2
- package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +49 -0
- package/api/@xmachines/play-url/index/functions/sanitizePathname.md +27 -0
- package/api/@xmachines/play-url/index/functions/splitLocation.md +37 -0
- package/api/@xmachines/{play-router → play-url/index}/functions/stripBasePath.md +2 -2
- package/api/@xmachines/{play-router → play-url/index}/interfaces/BasePathOptions.md +6 -10
- package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +21 -0
- package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +52 -0
- package/api/@xmachines/play-url/index/interfaces/GroupPart.md +15 -0
- package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +14 -0
- package/api/@xmachines/play-url/index/interfaces/ParamPart.md +21 -0
- package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +24 -0
- package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +23 -0
- package/api/@xmachines/play-url/index/interfaces/PatternCache.md +65 -0
- package/api/@xmachines/play-url/index/interfaces/PatternParam.md +15 -0
- package/api/@xmachines/{play-router → play-url/index}/interfaces/ResolvedBasePath.md +6 -6
- package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +16 -0
- package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +74 -0
- package/api/@xmachines/play-url/index/type-aliases/PathParams.md +15 -0
- package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +11 -0
- package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +9 -0
- package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +22 -0
- package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +68 -0
- package/api/@xmachines/{play-router → play-url/index}/variables/NO_BASE_PATH.md +2 -2
- package/api/@xmachines/play-url/index/variables/URLPattern.md +21 -0
- package/api/@xmachines/play-view/README.md +176 -0
- package/api/@xmachines/play-view/errors/README.md +17 -0
- package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +192 -0
- package/api/@xmachines/play-view/index/README.md +55 -0
- package/api/@xmachines/{play-actor → play-view/index}/functions/attachRenderErrorHandler.md +6 -6
- package/api/@xmachines/{play-actor → play-view/index}/functions/composePlayState.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/createFailureLatch.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/createReportGuard.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/createViewStoreLifecycle.md +2 -2
- package/api/@xmachines/play-view/index/functions/guardContextWrites.md +19 -0
- package/api/@xmachines/{play-actor → play-view/index}/functions/refreshContextSubtree.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/reuseComposedState.md +3 -3
- package/api/@xmachines/{play-actor → play-view/index}/functions/sameViewInputs.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/toAtomState.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/typedSpec.md +2 -2
- package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +49 -0
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/BaseViewContextValue.md +12 -12
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/FailureLatch.md +6 -5
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/PlaySpec.md +8 -8
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ReportGuard.md +6 -6
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ReportGuardMessages.md +6 -6
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ResolveViewStoreOptions.md +5 -5
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewInputs.md +7 -7
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewStoreLifecycle.md +6 -5
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewStoreResolution.md +7 -7
- package/api/@xmachines/play-view/index/interfaces/Viewable.md +18 -0
- package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +26 -0
- package/api/@xmachines/{play-actor → play-view/index}/variables/CONTEXT_STATE_KEY.md +2 -2
- package/api/@xmachines/play-vue/README.md +26 -40
- package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-vue/functions/useActor.md +1 -1
- package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +9 -9
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +8 -8
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -3
- package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue/variables/schema.md +71 -0
- package/api/@xmachines/play-vue-router/README.md +42 -84
- package/api/@xmachines/play-vue-router/errors/README.md +8 -0
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +193 -0
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +177 -0
- package/api/@xmachines/play-vue-router/index/README.md +20 -0
- package/api/@xmachines/play-vue-router/{classes → index/classes}/RouteMap.md +19 -13
- package/api/@xmachines/play-vue-router/{classes → index/classes}/VueRouterBridge.md +26 -45
- package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +130 -0
- package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +19 -0
- package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouteMapping.md +6 -6
- package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouterBridge.md +17 -19
- package/api/@xmachines/play-vue-router/{variables → index/variables}/PlayRouterProvider.md +26 -4
- package/api/@xmachines/play-xstate/README.md +195 -116
- package/api/@xmachines/play-xstate/errors/README.md +14 -0
- package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +199 -0
- package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +198 -0
- package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +169 -0
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +197 -0
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +176 -0
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +207 -0
- package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +199 -0
- package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +203 -0
- package/api/@xmachines/play-xstate/index/README.md +38 -0
- package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +583 -0
- package/api/@xmachines/play-xstate/index/functions/compose.md +224 -0
- package/api/@xmachines/play-xstate/index/functions/definePlayer.md +158 -0
- package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +22 -0
- package/api/@xmachines/play-xstate/{interfaces → index/interfaces}/PlayerFactoryResumeOptions.md +3 -3
- package/api/@xmachines/play-xstate/{interfaces → index/interfaces}/PlayerOptions.md +10 -10
- package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +33 -0
- package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +39 -0
- package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +27 -0
- package/api/@xmachines/{play-router → play-xstate/index}/variables/DISPOSE.md +3 -3
- package/api/@xmachines/play-xstate/with-routing/README.md +46 -0
- package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +57 -0
- package/api/@xmachines/play-xstate/{functions → with-routing/functions}/deriveRoute.md +4 -4
- package/api/@xmachines/play-xstate/{functions → with-routing/functions}/formatPlayRouteTransitions.md +2 -2
- package/api/@xmachines/play-xstate/{functions → with-routing/functions}/isAbsoluteRoute.md +3 -3
- package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +36 -0
- package/api/@xmachines/play-xstate/{interfaces → with-routing/interfaces}/RouteContext.md +6 -6
- package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +34 -0
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +12 -0
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +31 -0
- package/api/@xmachines/play-xstate/{type-aliases → with-routing/type-aliases}/RouteMachineConfig.md +5 -5
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +11 -0
- package/api/@xmachines/play-xstate/{type-aliases → with-routing/type-aliases}/RouteStateNode.md +21 -7
- package/api/@xmachines/play-xstate/with-view/README.md +31 -0
- package/api/@xmachines/play-xstate/with-view/functions/withView.md +33 -0
- package/api/@xmachines/shared/README.md +10 -32
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
- package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +2 -1
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
- package/api/README.md +4 -1
- package/api/llms.txt +18 -12
- package/contributing/architecture.md +157 -148
- package/contributing/configuration.md +100 -41
- package/contributing/deployment.md +112 -34
- package/contributing/development.md +103 -34
- package/contributing/migrating-to-play-atom.md +209 -0
- package/contributing/testing.md +136 -80
- package/examples/README.md +11 -9
- package/examples/basic-state-machine.md +4 -4
- package/examples/form-validation.md +4 -3
- package/examples/multi-router-integration.md +81 -59
- package/examples/routing-patterns.md +20 -19
- package/examples/traffic-light.md +17 -11
- package/guides/README.md +2 -1
- package/guides/actor-model.md +50 -32
- package/guides/atoms.md +264 -0
- package/guides/getting-started.md +91 -53
- package/guides/inspector.md +7 -7
- package/guides/routing.md +265 -0
- package/guides/state-machines.md +20 -21
- package/package.json +10 -9
- package/rfc/play.md +104 -60
- package/api/@xmachines/play-actor/classes/AbstractActor.md +0 -505
- package/api/@xmachines/play-actor/functions/guardContextWrites.md +0 -43
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +0 -48
- package/api/@xmachines/play-actor/interfaces/Routable.md +0 -14
- package/api/@xmachines/play-actor/interfaces/Viewable.md +0 -18
- package/api/@xmachines/play-dom/type-aliases/DisposablePlayUI.md +0 -36
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-dom-router/interfaces/DisposableBrowserHistory.md +0 -262
- package/api/@xmachines/play-dom-router/interfaces/DisposableVanillaRouter.md +0 -80
- package/api/@xmachines/play-react/functions/useSignalEffect.md +0 -77
- package/api/@xmachines/play-react/type-aliases/PlayRendererProps.md +0 -13
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-react-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +0 -29
- package/api/@xmachines/play-router/functions/findRouteByPath.md +0 -41
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +0 -35
- package/api/@xmachines/play-router/functions/getPatternParamNames.md +0 -24
- package/api/@xmachines/play-router/functions/getRequiredPatternParamNames.md +0 -36
- package/api/@xmachines/play-router/functions/resolveFrameworkParams.md +0 -51
- package/api/@xmachines/play-router/functions/routeExists.md +0 -26
- package/api/@xmachines/play-router/functions/sanitizePathname.md +0 -42
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +0 -13
- package/api/@xmachines/play-router/interfaces/FrameworkParamsSource.md +0 -47
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +0 -15
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +0 -17
- package/api/@xmachines/play-router/interfaces/OpenProviderBridgeArgs.md +0 -28
- package/api/@xmachines/play-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +0 -135
- package/api/@xmachines/play-router/interfaces/PlayRouterProviderBaseProps.md +0 -33
- package/api/@xmachines/play-router/interfaces/RoutableActor.md +0 -65
- package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +0 -13
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +0 -12
- package/api/@xmachines/play-router/interfaces/RouteObject.md +0 -21
- package/api/@xmachines/play-router/interfaces/RouteTree.md +0 -21
- package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +0 -55
- package/api/@xmachines/play-router/type-aliases/BaseRouteMapping.md +0 -13
- package/api/@xmachines/play-router/type-aliases/PlayRouterBridgeConstructor.md +0 -36
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +0 -11
- package/api/@xmachines/play-signals/README.md +0 -231
- package/api/@xmachines/play-signals/functions/watchSignal.md +0 -65
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +0 -36
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +0 -49
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +0 -37
- package/api/@xmachines/play-signals/interfaces/SignalState.md +0 -68
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +0 -97
- package/api/@xmachines/play-signals/namespaces/Signal/README.md +0 -22
- package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +0 -52
- package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +0 -72
- package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +0 -21
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +0 -85
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +0 -13
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +0 -25
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +0 -9
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +0 -9
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +0 -19
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +0 -33
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +0 -471
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +0 -13
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +0 -9
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +0 -9
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +0 -29
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +0 -31
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +0 -13
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +0 -9
- package/api/@xmachines/play-vue/variables/getPlayViewContext.md +0 -39
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +0 -135
- package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +0 -13
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +0 -13
- package/api/@xmachines/play-vue-router/type-aliases/VueRouteMap.md +0 -13
- package/api/@xmachines/play-vue-router/variables/VueRouteMap.md +0 -13
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +0 -568
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +0 -50
- package/api/@xmachines/play-xstate/functions/composeGuards.md +0 -86
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +0 -72
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +0 -43
- package/api/@xmachines/play-xstate/functions/definePlayer.md +0 -78
- package/api/@xmachines/play-xstate/functions/eventMatches.md +0 -45
- package/api/@xmachines/play-xstate/functions/hasContext.md +0 -45
- package/api/@xmachines/play-xstate/functions/negateGuard.md +0 -67
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +0 -20
- package/api/@xmachines/play-xstate/interfaces/RouteObject.md +0 -17
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +0 -19
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +0 -36
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +0 -23
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +0 -26
- package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +0 -9
- package/guides/signals.md +0 -209
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> Documentation, guides, RFCs, and generated API reference for XMachines.
|
|
4
4
|
|
|
5
|
-
[](https://opensource.org/licenses/MIT) [](https://opensource.org/licenses/MIT) [](https://www.npmjs.com/package/@xmachines/docs)
|
|
6
6
|
|
|
7
7
|
## Overview
|
|
8
8
|
|
|
@@ -76,10 +76,11 @@ Concept guides and tutorials that show how to use XMachines:
|
|
|
76
76
|
|
|
77
77
|
**Learning:**
|
|
78
78
|
|
|
79
|
-
- **[Getting Started](guides/getting-started.md)** — `setup().createMachine()` → `definePlayer()` → `actor.start()` →
|
|
79
|
+
- **[Getting Started](guides/getting-started.md)** — `setup().createMachine()` → `definePlayer()` → `actor.start()` → atoms
|
|
80
80
|
- **[Understanding State Machines](guides/state-machines.md)** — `meta.route`, `meta.view`, and why machines replace boolean flags
|
|
81
|
-
- **[Understanding the Actor Model](guides/actor-model.md)** — Actor/infrastructure split, `
|
|
82
|
-
- **[Understanding
|
|
81
|
+
- **[Understanding the Actor Model](guides/actor-model.md)** — Actor/infrastructure split, `PlayActor`, and the reset invariant
|
|
82
|
+
- **[Understanding Routing](guides/routing.md)** — The URLPattern grammar of `meta.route`, the prefix rule, and the routing invariants
|
|
83
|
+
- **[Understanding Atoms](guides/atoms.md)** — Atom primitives and the five architectural invariants they enforce
|
|
83
84
|
|
|
84
85
|
**Tooling:**
|
|
85
86
|
|
|
@@ -94,12 +95,13 @@ Reference documentation for contributors and maintainers:
|
|
|
94
95
|
- **[Configuration](contributing/configuration.md)** — TypeScript, linting, formatting, Vitest, CI/CD, and release configuration
|
|
95
96
|
- **[Testing](contributing/testing.md)** — Vitest setup, node vs browser modes, test patterns, coverage requirements
|
|
96
97
|
- **[Deployment](contributing/deployment.md)** — npm publishing, semantic-release process, GitLab CI pipeline
|
|
98
|
+
- **[Migrating to @xmachines/play-atom](contributing/migrating-to-play-atom.md)** — the codemod, the name table, and the three behaviour changes it cannot make for you
|
|
97
99
|
|
|
98
100
|
### Examples
|
|
99
101
|
|
|
100
102
|
Practical code examples that show the XMachines patterns:
|
|
101
103
|
|
|
102
|
-
- **[Basic State Machine](examples/basic-state-machine.md)** — `setup().createMachine()` + `definePlayer()` +
|
|
104
|
+
- **[Basic State Machine](examples/basic-state-machine.md)** — `setup().createMachine()` + `definePlayer()` + atoms
|
|
103
105
|
- **[Traffic Light](examples/traffic-light.md)** — Multi-state machine with `meta.route` and `formatPlayRouteTransitions`
|
|
104
106
|
- **[Form Validation](examples/form-validation.md)** — Typed context mutations with `setup.assign`, guards, and `$bindState`
|
|
105
107
|
- **[Routing Patterns](examples/routing-patterns.md)** — `meta.route`, `play.route` events, `always` auth guards
|
|
@@ -112,25 +114,17 @@ TypeDoc generates the API reference for every public package. See [`api/README.m
|
|
|
112
114
|
The documented packages:
|
|
113
115
|
|
|
114
116
|
- [`@xmachines/play`](../play/README.md) — Core protocols (`PlayEvent`, `PlayError`)
|
|
115
|
-
- [`@xmachines/play-actor`](../play-actor/README.md) — `
|
|
116
|
-
- [`@xmachines/play-
|
|
117
|
-
- [`@xmachines/play-
|
|
117
|
+
- [`@xmachines/play-actor`](../play-actor/README.md) — `PlayActor`
|
|
118
|
+
- [`@xmachines/play-view`](../play-view/README.md) — `Viewable`, `PlaySpec`, the view store lifecycle
|
|
119
|
+
- [`@xmachines/play-atom`](../play-atom/README.md) — the atom primitives, `watchAtom`
|
|
120
|
+
- [`@xmachines/play-router`](../play-router/README.md) — `RouterBridgeBase`, `RouteMap`, `Routable`
|
|
121
|
+
- [`@xmachines/play-router/xstate`](../play-router/README.md) — `extractMachineRoutes`, `createRouteMap`
|
|
122
|
+
- [`@xmachines/play-pattern`](../play-pattern/README.md) — the route pattern language: one parse, and the path that `buildPath` writes back
|
|
123
|
+
- [`@xmachines/play-url`](../play-url/README.md) — the URLPattern API, a base path, the params of a framework router
|
|
118
124
|
- [`@xmachines/play-xstate`](../play-xstate/README.md) — `definePlayer`, `formatPlayRouteTransitions`, `PlayerActor`
|
|
119
125
|
- [`@xmachines/play-dom`](../play-dom/README.md), [`play-react`](../play-react/README.md), [`play-solid`](../play-solid/README.md), [`play-svelte`](../play-svelte/README.md), [`play-vue`](../play-vue/README.md) — View renderers
|
|
120
126
|
- [`@xmachines/play-dom-router`](../play-dom-router/README.md), [`play-tanstack-router`](../play-tanstack-router/README.md), [`play-react-router`](../play-react-router/README.md), [`play-tanstack-react-router`](../play-tanstack-react-router/README.md), [`play-solid-router`](../play-solid-router/README.md), [`play-tanstack-solid-router`](../play-tanstack-solid-router/README.md), [`play-vue-router`](../play-vue-router/README.md), [`play-svelte-spa-router`](../play-svelte-spa-router/README.md), [`play-sveltekit-router`](../play-sveltekit-router/README.md) — Router adapters
|
|
121
127
|
|
|
122
|
-
## Testing
|
|
123
|
-
|
|
124
|
-
Run the docs package tests in isolation:
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
# From the monorepo root
|
|
128
|
-
pnpm --filter @xmachines/docs test
|
|
129
|
-
|
|
130
|
-
# Or from within the package directory
|
|
131
|
-
pnpm test
|
|
132
|
-
```
|
|
133
|
-
|
|
134
128
|
## Regenerating API Docs
|
|
135
129
|
|
|
136
130
|
TypeDoc generates the `api/` directory. Never edit it by hand. Generate it again from the monorepo root:
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
> Core protocol layer for the Universal Player Architecture. It defines `PlayEvent`, `PlayError`, and the contracts that keep the business logic loosely coupled to the runtime adapters.
|
|
6
6
|
|
|
7
|
-
[](https://opensource.org/licenses/MIT) [](https://opensource.org/licenses/MIT) [](https://www.npmjs.com/package/@xmachines/play)
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
pnpm add @xmachines/play
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
> **This package requires Node.js `>=
|
|
17
|
+
> **This package requires Node.js `>= 24.0.0`.** Every package is an ES module (`"type": "module"`).
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
@@ -30,12 +30,13 @@ pnpm add @xmachines/play
|
|
|
30
30
|
|
|
31
31
|
These protocols implement the architectural invariants that the Play RFC defines:
|
|
32
32
|
|
|
33
|
-
| # | Invariant | Description
|
|
34
|
-
| ------ | -------------------------- |
|
|
35
|
-
| INV-01 | **Actor Authority** | The Actor is the final authority. Guards decide all transitions
|
|
36
|
-
| INV-02 | **Strict Separation** | The business logic never imports a UI framework or a routing library
|
|
37
|
-
| INV-
|
|
38
|
-
| INV-
|
|
33
|
+
| # | Invariant | Description |
|
|
34
|
+
| ------ | -------------------------- | ----------------------------------------------------------------------- |
|
|
35
|
+
| INV-01 | **Actor Authority** | The Actor is the final authority. Guards decide all transitions |
|
|
36
|
+
| INV-02 | **Strict Separation** | The business logic never imports a UI framework or a routing library |
|
|
37
|
+
| INV-03 | **Atom-Only Reactivity** | Atoms are the only medium that crosses a boundary |
|
|
38
|
+
| INV-04 | **Passive Infrastructure** | The infrastructure observes the Actor atoms. It never enforces a guard |
|
|
39
|
+
| INV-05 | **State-Driven Reset** | An invalid external navigation is overwritten by the state of the Actor |
|
|
39
40
|
|
|
40
41
|
---
|
|
41
42
|
|
|
@@ -69,8 +70,8 @@ const invalid: LoginEvent = { type: "auth.login" }; // Error!
|
|
|
69
70
|
Base class for every `@xmachines/*` runtime error. Each error has a stable `scope` (the class or the module that throws it) and a stable `code` (a machine-readable identifier). Always branch on `.code` or on the subclass. Never branch on `.message`.
|
|
70
71
|
|
|
71
72
|
```typescript
|
|
72
|
-
import {
|
|
73
|
-
import { NonNullableError } from "@xmachines/play/errors";
|
|
73
|
+
import { assertNonNullable } from "@xmachines/play";
|
|
74
|
+
import { NonNullableError, PlayError } from "@xmachines/play/errors";
|
|
74
75
|
|
|
75
76
|
try {
|
|
76
77
|
assertNonNullable(document.getElementById("app"), "#app");
|
|
@@ -91,7 +92,7 @@ try {
|
|
|
91
92
|
Extend `PlayError` in your own `@xmachines/*`-compatible packages:
|
|
92
93
|
|
|
93
94
|
```typescript
|
|
94
|
-
import { PlayError } from "@xmachines/play";
|
|
95
|
+
import { PlayError } from "@xmachines/play/errors";
|
|
95
96
|
|
|
96
97
|
export class MyPackageError extends PlayError {
|
|
97
98
|
constructor(message: string, options?: ErrorOptions) {
|
|
@@ -122,12 +123,12 @@ that keeps the release in a field, and the caller that gives it to a scope.
|
|
|
122
123
|
import { asCleanup, type Cleanup } from "@xmachines/play";
|
|
123
124
|
|
|
124
125
|
// The explicit form. It stays correct.
|
|
125
|
-
const stop =
|
|
126
|
+
const stop = watchAtom(count, render);
|
|
126
127
|
stop();
|
|
127
128
|
|
|
128
129
|
// The scoped form. The scope releases it, and an exception releases it too.
|
|
129
130
|
{
|
|
130
|
-
using stop =
|
|
131
|
+
using stop = watchAtom(count, render);
|
|
131
132
|
render(count.get());
|
|
132
133
|
}
|
|
133
134
|
```
|
|
@@ -137,10 +138,9 @@ added, and wraps nothing, so a caller that compares two releases or holds one in
|
|
|
137
138
|
sees what it saw before.
|
|
138
139
|
|
|
139
140
|
```ts
|
|
140
|
-
export function
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
return asCleanup(() => watcher.unwatch(signal));
|
|
141
|
+
export function watchAtom<T>(atom: Readable<T>, onValue: (v: T) => void): Cleanup {
|
|
142
|
+
const subscription = atom.subscribe(() => onValue(atom.get()));
|
|
143
|
+
return asCleanup(() => subscription.unsubscribe());
|
|
144
144
|
}
|
|
145
145
|
```
|
|
146
146
|
|
|
@@ -176,8 +176,6 @@ pair.
|
|
|
176
176
|
| Export | Kind | Description |
|
|
177
177
|
| --------------------- | ---------- | -------------------------------------------------------------------- |
|
|
178
178
|
| `PlayEvent<TPayload>` | `type` | Universal event contract — `{ type: string } & TPayload` |
|
|
179
|
-
| `PlayError` | `class` | Base class for all `@xmachines/*` typed errors |
|
|
180
|
-
| `NonNullableError` | `class` | `assertNonNullable` throws it when a value is `null` or `undefined` |
|
|
181
179
|
| `assertNonNullable` | `function` | Asserts that the value is not null. It returns the narrowed value |
|
|
182
180
|
| `Cleanup` | `type` | The release of a subscription — `(() => void) & Disposable` |
|
|
183
181
|
| `asCleanup` | `function` | Publishes one release as a `Cleanup`. It changes the function itself |
|
|
@@ -188,7 +186,7 @@ pair.
|
|
|
188
186
|
|
|
189
187
|
| Export | Kind | Description |
|
|
190
188
|
| ------------------ | ------- | --------------------------------------------------------- |
|
|
191
|
-
| `PlayError` | `class` | The base
|
|
189
|
+
| `PlayError` | `class` | The base class of every `@xmachines/*` typed error |
|
|
192
190
|
| `NonNullableError` | `class` | `scope: "assertNonNullable"`, `code: "PLAY_NON_NULLABLE"` |
|
|
193
191
|
|
|
194
192
|
---
|
|
@@ -201,30 +199,14 @@ pair.
|
|
|
201
199
|
|
|
202
200
|
Every other `@xmachines/*` package exports its own error subclasses from its `./errors` subpath:
|
|
203
201
|
|
|
204
|
-
| Package
|
|
205
|
-
|
|
|
206
|
-
| `@xmachines/play`
|
|
207
|
-
| `@xmachines/play-router`
|
|
208
|
-
| `@xmachines/play-
|
|
209
|
-
| `@xmachines/play-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
## Testing
|
|
214
|
-
|
|
215
|
-
Run tests for this package in isolation:
|
|
216
|
-
|
|
217
|
-
```bash
|
|
218
|
-
pnpm --filter @xmachines/play test
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
Or from the package directory:
|
|
222
|
-
|
|
223
|
-
```bash
|
|
224
|
-
pnpm test
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
Tests use **Vitest** and cover the `PlayError` class construction, inheritance, `cause` support, and subclassing patterns.
|
|
202
|
+
| Package | Import path |
|
|
203
|
+
| ------------------------------------------------------------ | ------------------------------------------------------------------- |
|
|
204
|
+
| `@xmachines/play` | `@xmachines/play/errors` |
|
|
205
|
+
| [`@xmachines/play-router`](../play-router/README.md) | [`@xmachines/play-router/errors`](../play-router/README.md) |
|
|
206
|
+
| [`@xmachines/play-url`](../play-url/README.md) | [`@xmachines/play-url/errors`](../play-url/README.md) |
|
|
207
|
+
| [`@xmachines/play-view`](../play-view/README.md) | [`@xmachines/play-view/errors`](../play-view/README.md) |
|
|
208
|
+
| [`@xmachines/play-xstate`](../play-xstate/README.md) | [`@xmachines/play-xstate/errors`](../play-xstate/README.md) |
|
|
209
|
+
| [`@xmachines/play-vue-router`](../play-vue-router/README.md) | [`@xmachines/play-vue-router/errors`](../play-vue-router/README.md) |
|
|
228
210
|
|
|
229
211
|
---
|
|
230
212
|
|
|
@@ -234,78 +216,7 @@ MIT © [Mikael Karon](mailto:mikael@karon.se)
|
|
|
234
216
|
|
|
235
217
|
See [LICENSE](./LICENSE) for details.
|
|
236
218
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
This package defines the architectural contracts that carry the communication
|
|
240
|
-
between the Actor and the infrastructure, with no direct dependency between them.
|
|
241
|
-
RFC section 5.2 gives these protocols. They are the base of the loose coupling
|
|
242
|
-
between the business logic and the runtime adapters.
|
|
243
|
-
|
|
244
|
-
## The exports
|
|
245
|
-
|
|
246
|
-
**PlayEvent<TPayload>** - the generic event type of the Actor communication
|
|
247
|
-
|
|
248
|
-
- It is every object with a `type: string` property
|
|
249
|
-
- The generic `TPayload` parameter gives a type-safe event shape, and it is optional
|
|
250
|
-
- The default is `Record<string, unknown>`, which accepts each shape
|
|
251
|
-
- It is framework-agnostic, and it is not bound to XState or to another library
|
|
252
|
-
|
|
253
|
-
**Use:**
|
|
254
|
-
|
|
255
|
-
```typescript
|
|
256
|
-
// Flexible, the default:
|
|
257
|
-
const event: PlayEvent = { type: "auth.login", userId: "123" };
|
|
258
|
-
|
|
259
|
-
// Type-safe, with the generic parameter:
|
|
260
|
-
type LoginEvent = PlayEvent<{ userId: string }>;
|
|
261
|
-
const event: LoginEvent = { type: "auth.login", userId: "123" };
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
**The common event patterns:**
|
|
265
|
-
|
|
266
|
-
- A domain event: `{ type: 'auth.login', userId: '123' }`
|
|
267
|
-
- Your own event: `{ type: 'form.submit', data: {...} }`
|
|
268
|
-
|
|
269
|
-
**The routing events** come from @xmachines/play-router:
|
|
270
|
-
|
|
271
|
-
- PlayRouteEvent: the routing event with the parameters and the target state ID
|
|
272
|
-
- RouterBridge: the protocol that connects a router adapter to an actor
|
|
273
|
-
|
|
274
|
-
**The browser navigation:** a router adapter handles the browser BACK and FORWARD
|
|
275
|
-
buttons, through the `popstate` event. The user presses BACK or FORWARD, the
|
|
276
|
-
router detects the new URL, and it sends a PlayRouteEvent to the actor. The actor
|
|
277
|
-
then checks the event.
|
|
278
|
-
|
|
279
|
-
```typescript
|
|
280
|
-
import type { PlayRouteEvent, RouterBridge } from "@xmachines/play-router";
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
## The architectural invariants
|
|
284
|
-
|
|
285
|
-
These protocols enforce the invariants below:
|
|
286
|
-
|
|
287
|
-
1. **Actor Authority**: the infrastructure makes a request, and the Actor decides the validity
|
|
288
|
-
2. **Strict Separation**: no layer depends on another layer directly
|
|
289
|
-
3. **Passive Infrastructure**: the infrastructure observes the Actor signals. It never controls them
|
|
290
|
-
4. **Signal-Only Reactivity**: every state change goes through a TC39 Signal
|
|
291
|
-
5. **State-Driven Reset**: each navigation follows the transition rules of the state machine
|
|
292
|
-
|
|
293
|
-
## Classes
|
|
294
|
-
|
|
295
|
-
- [NonNullableError](classes/NonNullableError.md)
|
|
296
|
-
- [PlayError](classes/PlayError.md)
|
|
297
|
-
|
|
298
|
-
## Type Aliases
|
|
299
|
-
|
|
300
|
-
- [Cleanup](type-aliases/Cleanup.md)
|
|
301
|
-
- [DisposeKey](type-aliases/DisposeKey.md)
|
|
302
|
-
- [PlayEvent](type-aliases/PlayEvent.md)
|
|
303
|
-
|
|
304
|
-
## Variables
|
|
305
|
-
|
|
306
|
-
- [DISPOSE](variables/DISPOSE.md)
|
|
307
|
-
|
|
308
|
-
## Functions
|
|
219
|
+
## Modules
|
|
309
220
|
|
|
310
|
-
- [
|
|
311
|
-
- [
|
|
221
|
+
- [errors](errors/README.md)
|
|
222
|
+
- [index](index/README.md)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
[API](
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/play](../../README.md) / [errors](../README.md) / NonNullableError
|
|
2
2
|
|
|
3
3
|
# Class: NonNullableError
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play/src/errors.ts:
|
|
5
|
+
Defined in: [packages/play/src/errors.ts:112](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play/src/errors.ts#L112)
|
|
6
6
|
|
|
7
|
-
[assertNonNullable](
|
|
7
|
+
[@xmachines/play!index.assertNonNullable](../../index/functions/assertNonNullable.md) throws this error when a value is `null` or `undefined`.
|
|
8
8
|
|
|
9
9
|
Catch it to separate a failed assertion of a missing value from every other
|
|
10
10
|
runtime error:
|
|
@@ -35,7 +35,7 @@ try {
|
|
|
35
35
|
new NonNullableError(message, options?): NonNullableError;
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
Defined in: [packages/play/src/errors.ts:
|
|
38
|
+
Defined in: [packages/play/src/errors.ts:113](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play/src/errors.ts#L113)
|
|
39
39
|
|
|
40
40
|
#### Parameters
|
|
41
41
|
|
|
@@ -57,10 +57,10 @@ Defined in: [packages/play/src/errors.ts:111](https://gitlab.com/xmachin-es/xmac
|
|
|
57
57
|
| Property | Modifier | Type | Description | Inherited from | Defined in |
|
|
58
58
|
| ------------------------------------------------------- | ---------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
|
|
59
59
|
| <a id="property-cause"></a> `cause?` | `public` | `unknown` | - | [`PlayError`](PlayError.md).[`cause`](PlayError.md#property-cause) | - |
|
|
60
|
-
| <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable identifier of the error. An error code follows the naming convention `PLAY_<PACKAGE>_<DESCRIPTION>`. It stays the same across each patch release and each minor release of one major version. Never match on `.message`. Always match on `.code`, or on the subclass. | [`PlayError`](PlayError.md).[`code`](PlayError.md#property-code) | [packages/play/src/errors.ts:
|
|
60
|
+
| <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable identifier of the error. An error code follows the naming convention `PLAY_<PACKAGE>_<DESCRIPTION>`. It stays the same across each patch release and each minor release of one major version. Never match on `.message`. Always match on `.code`, or on the subclass. | [`PlayError`](PlayError.md).[`code`](PlayError.md#property-code) | [packages/play/src/errors.ts:76](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play/src/errors.ts#L76) |
|
|
61
61
|
| <a id="property-message"></a> `message` | `public` | `string` | - | [`PlayError`](PlayError.md).[`message`](PlayError.md#property-message) | - |
|
|
62
62
|
| <a id="property-name"></a> `name` | `public` | `string` | - | [`PlayError`](PlayError.md).[`name`](PlayError.md#property-name) | - |
|
|
63
|
-
| <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or the module that threw this error, for example `"RouterBridgeBase"`. | [`PlayError`](PlayError.md).[`scope`](PlayError.md#property-scope) | [packages/play/src/errors.ts:
|
|
63
|
+
| <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or the module that threw this error, for example `"RouterBridgeBase"`. | [`PlayError`](PlayError.md).[`scope`](PlayError.md#property-scope) | [packages/play/src/errors.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play/src/errors.ts#L66) |
|
|
64
64
|
| <a id="property-stack"></a> `stack?` | `public` | `string` | - | [`PlayError`](PlayError.md).[`stack`](PlayError.md#property-stack) | - |
|
|
65
65
|
| <a id="property-stacktracelimit"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | [`PlayError`](PlayError.md).[`stackTraceLimit`](PlayError.md#property-stacktracelimit) | - |
|
|
66
66
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
[API](
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/play](../../README.md) / [errors](../README.md) / PlayError
|
|
2
2
|
|
|
3
3
|
# Class: PlayError
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play/src/errors.ts:
|
|
5
|
+
Defined in: [packages/play/src/errors.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play/src/errors.ts#L64)
|
|
6
6
|
|
|
7
7
|
The base class of every typed runtime error of an `@xmachines/*` package.
|
|
8
8
|
|
|
@@ -23,16 +23,18 @@ An `@xmachines/*` package that defines typed subclasses exports them from an
|
|
|
23
23
|
| ---------------------------- | ----------------------------------- |
|
|
24
24
|
| `@xmachines/play` | `@xmachines/play/errors` |
|
|
25
25
|
| `@xmachines/play-router` | `@xmachines/play-router/errors` |
|
|
26
|
+
| `@xmachines/play-url` | `@xmachines/play-url/errors` |
|
|
27
|
+
| `@xmachines/play-view` | `@xmachines/play-view/errors` |
|
|
26
28
|
| `@xmachines/play-vue-router` | `@xmachines/play-vue-router/errors` |
|
|
27
29
|
| `@xmachines/play-xstate` | `@xmachines/play-xstate/errors` |
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
`PlayError` is the base of every subclass above, and it sits on the subpath with them.
|
|
32
|
+
The root barrel of `@xmachines/play` exports it never: one name has one import.
|
|
31
33
|
|
|
32
34
|
## How to catch an error by its type
|
|
33
35
|
|
|
34
36
|
```typescript
|
|
35
|
-
import { PlayError } from "@xmachines/play";
|
|
37
|
+
import { PlayError } from "@xmachines/play/errors";
|
|
36
38
|
import { RouterSyncError } from "@xmachines/play-router/errors";
|
|
37
39
|
|
|
38
40
|
try {
|
|
@@ -55,7 +57,7 @@ try {
|
|
|
55
57
|
## How to extend PlayError
|
|
56
58
|
|
|
57
59
|
```typescript
|
|
58
|
-
import { PlayError } from "@xmachines/play";
|
|
60
|
+
import { PlayError } from "@xmachines/play/errors";
|
|
59
61
|
|
|
60
62
|
export class MyPackageError extends PlayError {
|
|
61
63
|
constructor(message: string, options?: ErrorOptions) {
|
|
@@ -72,6 +74,29 @@ export class MyPackageError extends PlayError {
|
|
|
72
74
|
## Extended by
|
|
73
75
|
|
|
74
76
|
- [`NonNullableError`](NonNullableError.md)
|
|
77
|
+
- [`DuplicateBridgeError`](../../../play-router/errors/classes/DuplicateBridgeError.md)
|
|
78
|
+
- [`DuplicateRoutePathError`](../../../play-router/errors/classes/DuplicateRoutePathError.md)
|
|
79
|
+
- [`EmptyRoutePathError`](../../../play-router/errors/classes/EmptyRoutePathError.md)
|
|
80
|
+
- [`InvalidBasePathError`](../../../play-router/errors/classes/InvalidBasePathError.md)
|
|
81
|
+
- [`InvalidRoutePatternError`](../../../play-router/errors/classes/InvalidRoutePatternError.md)
|
|
82
|
+
- [`InvalidStateIdError`](../../../play-router/errors/classes/InvalidStateIdError.md)
|
|
83
|
+
- [`MissingBasePathParamError`](../../../play-router/errors/classes/MissingBasePathParamError.md)
|
|
84
|
+
- [`RouterSyncError`](../../../play-router/errors/classes/RouterSyncError.md)
|
|
85
|
+
- [`UnknownStateTypeError`](../../../play-router/errors/classes/UnknownStateTypeError.md)
|
|
86
|
+
- [`InvalidBasePathError`](../../../play-url/errors/classes/InvalidBasePathError.md)
|
|
87
|
+
- [`InvalidRoutePatternError`](../../../play-url/errors/classes/InvalidRoutePatternError.md)
|
|
88
|
+
- [`MissingBasePathParamError`](../../../play-url/errors/classes/MissingBasePathParamError.md)
|
|
89
|
+
- [`ReadOnlyContextError`](../../../play-view/errors/classes/ReadOnlyContextError.md)
|
|
90
|
+
- [`VueRouterNavigationError`](../../../play-vue-router/errors/classes/VueRouterNavigationError.md)
|
|
91
|
+
- [`VueRouterSendError`](../../../play-vue-router/errors/classes/VueRouterSendError.md)
|
|
92
|
+
- [`ActorThrewNonErrorError`](../../../play-xstate/errors/classes/ActorThrewNonErrorError.md)
|
|
93
|
+
- [`InvalidEventError`](../../../play-xstate/errors/classes/InvalidEventError.md)
|
|
94
|
+
- [`InvalidMachineError`](../../../play-xstate/errors/classes/InvalidMachineError.md)
|
|
95
|
+
- [`InvalidRouteHandlerError`](../../../play-xstate/errors/classes/InvalidRouteHandlerError.md)
|
|
96
|
+
- [`InvalidRouteMetadataError`](../../../play-xstate/errors/classes/InvalidRouteMetadataError.md)
|
|
97
|
+
- [`InvalidRouteParamError`](../../../play-xstate/errors/classes/InvalidRouteParamError.md)
|
|
98
|
+
- [`MissingRouteParamError`](../../../play-xstate/errors/classes/MissingRouteParamError.md)
|
|
99
|
+
- [`MissingStateIdError`](../../../play-xstate/errors/classes/MissingStateIdError.md)
|
|
75
100
|
|
|
76
101
|
## Constructors
|
|
77
102
|
|
|
@@ -82,10 +107,11 @@ new PlayError(
|
|
|
82
107
|
scope,
|
|
83
108
|
code,
|
|
84
109
|
message,
|
|
85
|
-
options?
|
|
110
|
+
options?
|
|
111
|
+
): PlayError;
|
|
86
112
|
```
|
|
87
113
|
|
|
88
|
-
Defined in: [packages/play/src/errors.ts:
|
|
114
|
+
Defined in: [packages/play/src/errors.ts:84](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play/src/errors.ts#L84)
|
|
89
115
|
|
|
90
116
|
#### Parameters
|
|
91
117
|
|
|
@@ -111,10 +137,10 @@ Error.constructor;
|
|
|
111
137
|
| Property | Modifier | Type | Description | Inherited from | Defined in |
|
|
112
138
|
| ------------------------------------------------------- | ---------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------- |
|
|
113
139
|
| <a id="property-cause"></a> `cause?` | `public` | `unknown` | - | `Error.cause` | - |
|
|
114
|
-
| <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable identifier of the error. An error code follows the naming convention `PLAY_<PACKAGE>_<DESCRIPTION>`. It stays the same across each patch release and each minor release of one major version. Never match on `.message`. Always match on `.code`, or on the subclass. | - | [packages/play/src/errors.ts:
|
|
140
|
+
| <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable identifier of the error. An error code follows the naming convention `PLAY_<PACKAGE>_<DESCRIPTION>`. It stays the same across each patch release and each minor release of one major version. Never match on `.message`. Always match on `.code`, or on the subclass. | - | [packages/play/src/errors.ts:76](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play/src/errors.ts#L76) |
|
|
115
141
|
| <a id="property-message"></a> `message` | `public` | `string` | - | `Error.message` | - |
|
|
116
142
|
| <a id="property-name"></a> `name` | `public` | `string` | - | `Error.name` | - |
|
|
117
|
-
| <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or the module that threw this error, for example `"RouterBridgeBase"`. | - | [packages/play/src/errors.ts:
|
|
143
|
+
| <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or the module that threw this error, for example `"RouterBridgeBase"`. | - | [packages/play/src/errors.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play/src/errors.ts#L66) |
|
|
118
144
|
| <a id="property-stack"></a> `stack?` | `public` | `string` | - | `Error.stack` | - |
|
|
119
145
|
| <a id="property-stacktracelimit"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | `Error.stackTraceLimit` | - |
|
|
120
146
|
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play](../README.md) / index
|
|
2
|
+
|
|
3
|
+
# index
|
|
4
|
+
|
|
5
|
+
@xmachines/play - the core protocol layer
|
|
6
|
+
|
|
7
|
+
This package defines the architectural contracts that carry the communication
|
|
8
|
+
between the Actor and the infrastructure, with no direct dependency between them.
|
|
9
|
+
RFC section 5.2 gives these protocols. They are the base of the loose coupling
|
|
10
|
+
between the business logic and the runtime adapters.
|
|
11
|
+
|
|
12
|
+
## The exports
|
|
13
|
+
|
|
14
|
+
**PlayEvent<TPayload>** - the generic event type of the Actor communication
|
|
15
|
+
|
|
16
|
+
- It is every object with a `type: string` property
|
|
17
|
+
- The generic `TPayload` parameter gives a type-safe event shape, and it is optional
|
|
18
|
+
- The default is `Record<string, unknown>`, which accepts each shape
|
|
19
|
+
- It is framework-agnostic, and it is not bound to XState or to another library
|
|
20
|
+
|
|
21
|
+
**Use:**
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
// Flexible, the default:
|
|
25
|
+
const event: PlayEvent = { type: "auth.login", userId: "123" };
|
|
26
|
+
|
|
27
|
+
// Type-safe, with the generic parameter:
|
|
28
|
+
type LoginEvent = PlayEvent<{ userId: string }>;
|
|
29
|
+
const event: LoginEvent = { type: "auth.login", userId: "123" };
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**The common event patterns:**
|
|
33
|
+
|
|
34
|
+
- A domain event: `{ type: 'auth.login', userId: '123' }`
|
|
35
|
+
- Your own event: `{ type: 'form.submit', data: {...} }`
|
|
36
|
+
|
|
37
|
+
**The routing events** come from @xmachines/play-router:
|
|
38
|
+
|
|
39
|
+
- PlayRouteEvent: the routing event with the parameters and the target state ID
|
|
40
|
+
- RouterBridge: the protocol that connects a router adapter to an actor
|
|
41
|
+
|
|
42
|
+
**The browser navigation:** a router adapter handles the browser BACK and FORWARD
|
|
43
|
+
buttons, through the `popstate` event. The user presses BACK or FORWARD, the
|
|
44
|
+
router detects the new URL, and it sends a PlayRouteEvent to the actor. The actor
|
|
45
|
+
then checks the event.
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
import type { PlayRouteEvent, RouterBridge } from "@xmachines/play-router";
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## The architectural invariants
|
|
52
|
+
|
|
53
|
+
These protocols enforce the invariants below:
|
|
54
|
+
|
|
55
|
+
1. **Actor Authority**: the infrastructure makes a request, and the Actor decides the validity
|
|
56
|
+
2. **Strict Separation**: no layer depends on another layer directly
|
|
57
|
+
3. **Atom-Only Reactivity**: every state change goes through an atom
|
|
58
|
+
4. **Passive Infrastructure**: the infrastructure observes the Actor atoms. It never controls them
|
|
59
|
+
5. **State-Driven Reset**: each navigation follows the transition rules of the state machine
|
|
60
|
+
|
|
61
|
+
## Type Aliases
|
|
62
|
+
|
|
63
|
+
- [Cleanup](type-aliases/Cleanup.md)
|
|
64
|
+
- [DisposeKey](type-aliases/DisposeKey.md)
|
|
65
|
+
- [PlayEvent](type-aliases/PlayEvent.md)
|
|
66
|
+
|
|
67
|
+
## Variables
|
|
68
|
+
|
|
69
|
+
- [DISPOSE](variables/DISPOSE.md)
|
|
70
|
+
|
|
71
|
+
## Functions
|
|
72
|
+
|
|
73
|
+
- [asCleanup](functions/asCleanup.md)
|
|
74
|
+
- [assertNonNullable](functions/assertNonNullable.md)
|
|
75
|
+
- [shallowEqualExcept](functions/shallowEqualExcept.md)
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/play](../../README.md) / [index](../README.md) / asCleanup
|
|
2
|
+
|
|
3
|
+
# Function: asCleanup()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function asCleanup<R>(release): Cleanup;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play/src/disposable.ts:149](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play/src/disposable.ts#L149)
|
|
10
|
+
|
|
11
|
+
Makes one release function serve as a [Cleanup](../type-aliases/Cleanup.md).
|
|
12
|
+
|
|
13
|
+
The function comes back as itself, with [DISPOSE](../variables/DISPOSE.md) added. Nothing wraps it, so
|
|
14
|
+
the identity of the release holds: a caller that compares two releases, or that puts
|
|
15
|
+
one in a `Set`, sees what it saw before this protocol existed.
|
|
16
|
+
|
|
17
|
+
The release therefore must be idempotent. A scope releases the value one time, but a
|
|
18
|
+
caller that runs the function AND lets the scope end runs it two times. Every release
|
|
19
|
+
of this workspace already accepts that, because a teardown that runs two times is
|
|
20
|
+
older than this protocol.
|
|
21
|
+
|
|
22
|
+
The release must be synchronous. `Disposable` and not `AsyncDisposable`: a
|
|
23
|
+
`Disposable` serves `using` AND `await using`, because `await using` falls back to
|
|
24
|
+
`Symbol.dispose`, while an `AsyncDisposable` raises a TypeError under a plain `using`
|
|
25
|
+
and forces every holder into an async function. Nothing in this workspace releases
|
|
26
|
+
asynchronously. An `AsyncCleanup` can arrive the day something does.
|
|
27
|
+
|
|
28
|
+
The `R extends void | undefined` bound is what holds that line. A plain `() => void`
|
|
29
|
+
parameter would ACCEPT `async () => {}`, because TypeScript lets a function that
|
|
30
|
+
returns a value stand where one returning `void` is wanted. The promise would then go
|
|
31
|
+
on the floor: the scope releases, the release looks finished, and the work runs later
|
|
32
|
+
with nobody able to await it. The bound rejects that at the call, and it rejects a
|
|
33
|
+
release that returns any other value as well.
|
|
34
|
+
|
|
35
|
+
The bound holds where the compiler knows the return type. It cannot hold where the
|
|
36
|
+
caller erased it: `R` infers `any` for a release typed `any`, such as a bare
|
|
37
|
+
`vi.fn()`, and `any` satisfies every constraint. A release declared `() => void` whose
|
|
38
|
+
body is async passes for the same reason — the declaration, and not the body, is what
|
|
39
|
+
the call site sees. Write the release inline, or type it, and the bound applies.
|
|
40
|
+
|
|
41
|
+
The release lands under [DISPOSE](../variables/DISPOSE.md) and, when the two differ, under the
|
|
42
|
+
`Symbol.dispose` that exists at the CALL. `DISPOSE` resolves when the module evaluates,
|
|
43
|
+
so a polyfill that installs the well-known symbol later would otherwise leave the
|
|
44
|
+
release on the registered key while a downlevelled `using` reads the well-known one.
|
|
45
|
+
Writing both closes that window for every release this function publishes.
|
|
46
|
+
|
|
47
|
+
## Type Parameters
|
|
48
|
+
|
|
49
|
+
| Type Parameter |
|
|
50
|
+
| ----------------------------------- |
|
|
51
|
+
| `R` _extends_ `void` \| `undefined` |
|
|
52
|
+
|
|
53
|
+
## Parameters
|
|
54
|
+
|
|
55
|
+
| Parameter | Type | Description |
|
|
56
|
+
| --------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
57
|
+
| `release` | () => `R` | The release to publish. It must return nothing. The function is changed in place, so pass a function that this release owns: a shared or module-level function becomes a `Disposable` for every other holder of it. |
|
|
58
|
+
|
|
59
|
+
## Returns
|
|
60
|
+
|
|
61
|
+
[`Cleanup`](../type-aliases/Cleanup.md)
|
|
62
|
+
|
|
63
|
+
The same function, now also a `Disposable`.
|
|
64
|
+
|
|
65
|
+
## Throws
|
|
66
|
+
|
|
67
|
+
TypeError - When the release is frozen or is otherwise not extensible. The
|
|
68
|
+
protocol adds a property, and a sealed function accepts none.
|
|
69
|
+
|
|
70
|
+
## Example
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
export function watchAtom<T>(atom: Readable<T>, onValue: (v: T) => void): Cleanup {
|
|
74
|
+
const subscription = atom.subscribe(() => onValue(atom.get()));
|
|
75
|
+
return asCleanup(() => subscription.unsubscribe());
|
|
76
|
+
}
|
|
77
|
+
```
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[API](
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/play](../../README.md) / [index](../README.md) / assertNonNullable
|
|
2
2
|
|
|
3
3
|
# Function: assertNonNullable()
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function assertNonNullable<V>(value, name?): NonNullable<V>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play/src/utils.ts:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play/src/utils.ts:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play/src/utils.ts#L39)
|
|
10
10
|
|
|
11
11
|
Asserts that `value` is not `null` and not `undefined`, then returns it with the
|
|
12
12
|
type `NonNullable<V>`. One expression therefore holds the guard and the narrowed
|