@xmachines/docs 1.0.0-beta.9 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +135 -7
- package/api/@xmachines/play/README.md +159 -39
- package/api/@xmachines/play/classes/NonNullableError.md +189 -0
- package/api/@xmachines/play/classes/PlayError.md +251 -0
- package/api/@xmachines/play/functions/assertNonNullable.md +56 -0
- package/api/@xmachines/play/type-aliases/PlayEvent.md +6 -6
- package/api/@xmachines/play-actor/README.md +153 -160
- package/api/@xmachines/play-actor/classes/AbstractActor.md +106 -121
- package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +40 -0
- package/api/@xmachines/play-actor/functions/toAtomState.md +33 -0
- package/api/@xmachines/play-actor/functions/typedSpec.md +54 -0
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +46 -0
- package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +33 -0
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +28 -0
- package/api/@xmachines/play-actor/interfaces/Routable.md +6 -21
- package/api/@xmachines/play-actor/interfaces/Viewable.md +12 -6
- package/api/@xmachines/play-dom/README.md +385 -0
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +115 -0
- package/api/@xmachines/play-dom/functions/createPlayUI.md +28 -0
- package/api/@xmachines/play-dom/functions/createRenderer.md +44 -0
- package/api/@xmachines/play-dom/functions/defineRegistry.md +26 -0
- package/api/@xmachines/play-dom/functions/renderSpec.md +67 -0
- package/api/@xmachines/play-dom/interfaces/ComponentContext.md +23 -0
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +34 -0
- package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +17 -0
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +28 -0
- package/api/@xmachines/play-dom/interfaces/EventHandle.md +15 -0
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +18 -0
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +30 -0
- package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +26 -0
- package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +32 -0
- package/api/@xmachines/play-dom/type-aliases/ActionFn.md +46 -0
- package/api/@xmachines/play-dom/type-aliases/Actions.md +18 -0
- package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +114 -0
- package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +25 -0
- package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +26 -0
- package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +15 -0
- package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +44 -0
- package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +39 -0
- package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +20 -0
- package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +9 -0
- package/api/@xmachines/play-dom/type-aliases/DomSchema.md +9 -0
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +27 -0
- package/api/@xmachines/play-dom/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-dom/type-aliases/SetState.md +30 -0
- package/api/@xmachines/play-dom/variables/schema.md +62 -0
- package/api/@xmachines/play-dom-router/README.md +272 -0
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +43 -0
- package/api/@xmachines/{play-router → play-dom-router}/functions/createBrowserHistory.md +10 -2
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-dom-router/functions/createRouter.md +54 -0
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +176 -0
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +69 -0
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +15 -0
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +68 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +54 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +121 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +28 -0
- package/api/@xmachines/play-react/README.md +185 -333
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +46 -42
- package/api/@xmachines/play-react/functions/ActionProvider.md +21 -0
- package/api/@xmachines/play-react/functions/JSONUIProvider.md +21 -0
- package/api/@xmachines/play-react/functions/Renderer.md +21 -0
- package/api/@xmachines/play-react/functions/StateProvider.md +27 -0
- package/api/@xmachines/play-react/functions/ValidationProvider.md +21 -0
- package/api/@xmachines/play-react/functions/VisibilityProvider.md +21 -0
- package/api/@xmachines/play-react/functions/defineRegistry.md +49 -0
- package/api/@xmachines/play-react/functions/useActor.md +13 -0
- package/api/@xmachines/play-react/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-react/functions/usePlayView.md +32 -0
- package/api/@xmachines/play-react/functions/useSignalEffect.md +29 -20
- package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +15 -0
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +27 -0
- package/api/@xmachines/play-react/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-react/interfaces/JSONUIProviderProps.md +22 -0
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +7 -7
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +6 -6
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +26 -0
- package/api/@xmachines/play-react/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-react/interfaces/StateProviderProps.md +16 -0
- package/api/@xmachines/play-react/interfaces/ValidationProviderProps.md +14 -0
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +20 -0
- package/api/@xmachines/play-react/interfaces/VisibilityProviderProps.md +13 -0
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-react/type-aliases/ComponentFn.md +36 -0
- package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-react/variables/ActorProvider.md +33 -0
- package/api/@xmachines/play-react/variables/PlayRenderer.md +6 -56
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +43 -0
- package/api/@xmachines/play-react-router/README.md +130 -115
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +19 -242
- package/api/@xmachines/play-react-router/classes/RouteMap.md +48 -36
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +45 -0
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +23 -12
- package/api/@xmachines/play-react-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +19 -9
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +32 -0
- package/api/@xmachines/play-router/README.md +275 -352
- package/api/@xmachines/play-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +21 -221
- package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +32 -0
- package/api/@xmachines/play-router/functions/buildRouteTree.md +12 -2
- package/api/@xmachines/play-router/functions/createRouteMap.md +22 -36
- package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +46 -0
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +14 -7
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +10 -46
- package/api/@xmachines/play-router/functions/extractQuery.md +22 -0
- package/api/@xmachines/play-router/functions/extractRouteParams.md +54 -0
- package/api/@xmachines/play-router/functions/findRouteById.md +2 -2
- package/api/@xmachines/play-router/functions/findRouteByPath.md +2 -2
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +2 -2
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +2 -2
- package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +43 -0
- package/api/@xmachines/play-router/functions/isRouteReachable.md +38 -0
- package/api/@xmachines/play-router/functions/machineToGraph.md +19 -0
- package/api/@xmachines/play-router/functions/routeExists.md +2 -2
- package/api/@xmachines/play-router/functions/sanitizePathname.md +40 -0
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +10 -9
- package/api/@xmachines/play-router/functions/validateStateExists.md +9 -9
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +13 -0
- package/api/@xmachines/play-router/interfaces/LocationLike.md +27 -0
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +15 -0
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +17 -0
- package/api/@xmachines/play-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +17 -0
- package/api/@xmachines/play-router/interfaces/RoutableActor.md +64 -0
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +11 -11
- package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +12 -0
- package/api/@xmachines/play-router/interfaces/RouteNode.md +13 -13
- package/api/@xmachines/play-router/interfaces/RouteObject.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteTree.md +8 -7
- package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +55 -0
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-router/interfaces/WindowLike.md +65 -0
- package/api/@xmachines/play-router/type-aliases/MachineGraph.md +20 -0
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +2 -2
- package/api/@xmachines/play-signals/README.md +117 -65
- package/api/@xmachines/play-signals/functions/watchSignal.md +42 -0
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +7 -5
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +3 -3
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +7 -5
- package/api/@xmachines/play-signals/interfaces/SignalState.md +4 -4
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +5 -5
- package/api/@xmachines/play-signals/namespaces/Signal/README.md +1 -1
- package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +7 -7
- package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +8 -8
- package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +7 -7
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +1 -1
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +9 -9
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +2 -2
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +2 -2
- package/api/@xmachines/play-solid/README.md +196 -233
- package/api/@xmachines/play-solid/functions/ActionProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/JSONUIProvider.md +21 -0
- package/api/@xmachines/play-solid/functions/Renderer.md +21 -0
- package/api/@xmachines/play-solid/functions/StateProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/ValidationProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/VisibilityProvider.md +20 -0
- package/api/@xmachines/play-solid/functions/defineRegistry.md +49 -0
- package/api/@xmachines/play-solid/functions/useAction.md +24 -0
- package/api/@xmachines/play-solid/functions/useActions.md +13 -0
- package/api/@xmachines/play-solid/functions/useActor.md +13 -0
- package/api/@xmachines/play-solid/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-solid/functions/useFieldValidation.md +29 -0
- package/api/@xmachines/play-solid/functions/useIsVisible.md +19 -0
- package/api/@xmachines/play-solid/functions/useOptionalValidation.md +13 -0
- package/api/@xmachines/play-solid/functions/usePlayView.md +30 -0
- package/api/@xmachines/play-solid/functions/useStateBinding.md +25 -0
- package/api/@xmachines/play-solid/functions/useStateStore.md +13 -0
- package/api/@xmachines/play-solid/functions/useStateValue.md +25 -0
- package/api/@xmachines/play-solid/functions/useVisibility.md +13 -0
- package/api/@xmachines/play-solid/interfaces/ActionProviderProps.md +12 -0
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +30 -0
- package/api/@xmachines/play-solid/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-solid/interfaces/DefineRegistryResult.md +15 -0
- package/api/@xmachines/play-solid/interfaces/JSONUIProviderProps.md +22 -0
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +26 -0
- package/api/@xmachines/play-solid/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-solid/interfaces/StateProviderProps.md +13 -0
- package/api/@xmachines/play-solid/interfaces/ValidationProviderProps.md +11 -0
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +21 -0
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-solid/type-aliases/ComponentFn.md +36 -0
- package/api/@xmachines/play-solid/type-aliases/ComponentRegistry.md +11 -0
- package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-solid/type-aliases/SetState.md +21 -0
- package/api/@xmachines/play-solid/type-aliases/VisibilityProviderProps.md +9 -0
- package/api/@xmachines/play-solid/variables/ActorContext.md +13 -0
- package/api/@xmachines/play-solid/variables/ActorProvider.md +27 -0
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +6 -62
- package/api/@xmachines/play-solid/variables/PlayUIProvider.md +26 -0
- package/api/@xmachines/play-solid-router/README.md +151 -559
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +31 -32
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +27 -242
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +44 -0
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +18 -11
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +99 -114
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +30 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +20 -7
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +34 -0
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +22 -19
- package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +52 -0
- package/api/@xmachines/play-svelte/README.md +270 -0
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +31 -0
- package/api/@xmachines/play-svelte/functions/getActorContext.md +21 -0
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +19 -0
- package/api/@xmachines/play-svelte/functions/setActorContext.md +19 -0
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +44 -0
- package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +29 -0
- package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +29 -0
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +24 -0
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +43 -0
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +24 -0
- package/api/@xmachines/play-svelte/type-aliases/ActionFn.md +30 -0
- package/api/@xmachines/play-svelte/type-aliases/Actions.md +17 -0
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-svelte/type-aliases/ComponentFn.md +18 -0
- package/api/@xmachines/play-svelte/type-aliases/JSONUIProviderProps.md +7 -0
- package/api/@xmachines/play-svelte/type-aliases/PlayRenderer.md +9 -0
- package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-svelte/type-aliases/SetState.md +21 -0
- package/api/@xmachines/play-svelte/variables/PlayRenderer.md +9 -0
- package/api/@xmachines/play-svelte-spa-router/README.md +197 -0
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +32 -0
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +17 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +65 -0
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-sveltekit-router/README.md +212 -0
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +32 -0
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +27 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-tanstack-react-router/README.md +155 -125
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +48 -36
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +31 -252
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +45 -0
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +22 -36
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +23 -12
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +28 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +19 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +2 -2
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +40 -18
- package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +34 -0
- package/api/@xmachines/play-tanstack-router/README.md +61 -0
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +131 -0
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +57 -0
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +100 -0
- package/api/@xmachines/play-tanstack-solid-router/README.md +216 -175
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +31 -32
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +121 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +44 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +18 -11
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +31 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +23 -9
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +14 -10
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +40 -18
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +33 -0
- package/api/@xmachines/play-vue/README.md +190 -210
- package/api/@xmachines/play-vue/functions/defineRegistry.md +32 -0
- package/api/@xmachines/play-vue/functions/getPlayViewContext.md +28 -0
- package/api/@xmachines/play-vue/functions/useActor.md +13 -0
- package/api/@xmachines/play-vue/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-vue/interfaces/ActionProviderProps.md +12 -0
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +25 -0
- package/api/@xmachines/play-vue/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-vue/interfaces/DefineRegistryResult.md +15 -0
- package/api/@xmachines/play-vue/interfaces/JSONUIProviderProps.md +21 -0
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +24 -0
- package/api/@xmachines/play-vue/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-vue/interfaces/StateProviderProps.md +15 -0
- package/api/@xmachines/play-vue/interfaces/ValidationProviderProps.md +11 -0
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +21 -0
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +5 -0
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +16 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentFn.md +35 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +15 -0
- package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +22 -0
- package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-vue/variables/ActionProvider.md +64 -0
- package/api/@xmachines/play-vue/variables/JSONUIProvider.md +105 -0
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +2 -2
- package/api/@xmachines/play-vue/variables/Renderer.md +88 -0
- package/api/@xmachines/play-vue/variables/StateProvider.md +79 -0
- package/api/@xmachines/play-vue/variables/ValidationProvider.md +55 -0
- package/api/@xmachines/play-vue/variables/VisibilityProvider.md +40 -0
- package/api/@xmachines/play-vue-router/README.md +173 -486
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +56 -116
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +23 -271
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +26 -6
- package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +20 -8
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +12 -6
- package/api/@xmachines/play-xstate/README.md +203 -354
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +195 -201
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +24 -20
- package/api/@xmachines/play-xstate/functions/composeGuards.md +8 -3
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +8 -3
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +43 -0
- package/api/@xmachines/play-xstate/functions/definePlayer.md +14 -63
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +3 -3
- package/api/@xmachines/play-xstate/functions/eventMatches.md +8 -3
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +3 -3
- package/api/@xmachines/play-xstate/functions/hasContext.md +8 -5
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +2 -2
- package/api/@xmachines/play-xstate/functions/negateGuard.md +8 -3
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +10 -14
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +22 -0
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +14 -16
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +15 -13
- package/api/@xmachines/play-xstate/interfaces/RouteObject.md +17 -0
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +8 -3
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +8 -6
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +9 -7
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +15 -18
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +15 -5
- package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +9 -0
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +22 -6
- package/api/@xmachines/shared/README.md +95 -295
- package/api/@xmachines/shared/vite-aliases/README.md +11 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +38 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +27 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +35 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +42 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +33 -0
- package/api/@xmachines/shared/vitest/README.md +12 -0
- package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +42 -0
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +34 -0
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +16 -0
- package/api/README.md +6 -7
- package/api/llms.txt +72 -23
- package/contributing/README.md +10 -0
- package/contributing/architecture.md +601 -0
- package/contributing/configuration.md +368 -0
- package/contributing/deployment.md +333 -0
- package/contributing/development.md +503 -0
- package/contributing/testing.md +461 -0
- package/examples/@xmachines/play-dom-demo/README.md +181 -0
- package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +24 -0
- package/examples/@xmachines/play-dom-demo/functions/initShell.md +25 -0
- package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-dom-demo/variables/About.md +12 -0
- package/examples/@xmachines/play-dom-demo/variables/Contact.md +12 -0
- package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Home.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Login.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +16 -0
- package/examples/@xmachines/play-dom-demo/variables/Navigation.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Overview.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Profile.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Settings.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Stats.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-dom-router-demo/README.md +145 -0
- package/examples/@xmachines/play-react-demo/README.md +187 -0
- package/examples/@xmachines/play-react-demo/functions/App.md +13 -0
- package/examples/@xmachines/play-react-demo/functions/DebugPanel.md +20 -0
- package/examples/@xmachines/play-react-demo/functions/HeaderNav.md +20 -0
- package/examples/@xmachines/play-react-demo/functions/Shell.md +22 -0
- package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-react-demo/variables/About.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Contact.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Dashboard.md +15 -0
- package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +16 -0
- package/examples/@xmachines/play-react-demo/variables/Home.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Login.md +16 -0
- package/examples/@xmachines/play-react-demo/variables/NavBar.md +16 -0
- package/examples/@xmachines/play-react-demo/variables/NavBarView.md +15 -0
- package/examples/@xmachines/play-react-demo/variables/Navigation.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Overview.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Profile.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Settings.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Shell.md +19 -0
- package/examples/@xmachines/play-react-demo/variables/Stats.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-react-router-demo/README.md +151 -0
- package/examples/@xmachines/play-solid-demo/README.md +187 -0
- package/examples/@xmachines/play-solid-demo/functions/App.md +13 -0
- package/examples/@xmachines/play-solid-demo/functions/DebugPanel.md +20 -0
- package/examples/@xmachines/play-solid-demo/functions/HeaderNav.md +20 -0
- package/examples/@xmachines/play-solid-demo/functions/Shell.md +22 -0
- package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/About.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Contact.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +17 -0
- package/examples/@xmachines/play-solid-demo/variables/Home.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Login.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/NavBar.md +11 -0
- package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +15 -0
- package/examples/@xmachines/play-solid-demo/variables/Navigation.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Overview.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Profile.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Settings.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Shell.md +18 -0
- package/examples/@xmachines/play-solid-demo/variables/Stats.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-solid-router-demo/README.md +137 -0
- package/examples/@xmachines/play-svelte-demo/README.md +143 -0
- package/examples/@xmachines/play-svelte-demo/type-aliases/App.md +9 -0
- package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-svelte-demo/variables/App.md +9 -0
- package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-svelte-spa-router-demo/README.md +129 -0
- package/examples/@xmachines/play-sveltekit-router-demo/README.md +133 -0
- package/examples/@xmachines/play-tanstack-react-router-demo/README.md +156 -0
- package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +139 -0
- package/examples/@xmachines/play-vue-demo/README.md +183 -0
- package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-vue-demo/variables/App.md +9 -0
- package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-vue-router-demo/README.md +139 -0
- package/examples/README.md +78 -30
- package/examples/basic-state-machine.md +73 -31
- package/examples/form-validation.md +259 -118
- package/examples/multi-router-integration.md +312 -194
- package/examples/routing-patterns.md +228 -189
- package/examples/traffic-light.md +112 -65
- package/guides/README.md +7 -21
- package/guides/actor-model.md +180 -0
- package/guides/getting-started.md +627 -137
- package/guides/signals.md +166 -0
- package/guides/state-machines.md +284 -0
- package/package.json +21 -7
- package/rfc/broker.md +100 -0
- package/rfc/browser.md +44 -0
- package/rfc/cli.md +118 -0
- package/rfc/git.md +61 -0
- package/rfc/mcp.md +43 -0
- package/rfc/node.md +36 -0
- package/rfc/play.md +472 -0
- package/rfc/rest.md +102 -0
- package/rfc/run.md +159 -0
- package/rfc/streams.md +168 -0
- package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +0 -17
- package/api/@xmachines/play-catalog/README.md +0 -331
- package/api/@xmachines/play-catalog/functions/defineCatalog.md +0 -98
- package/api/@xmachines/play-catalog/functions/defineComponents.md +0 -134
- package/api/@xmachines/play-catalog/type-aliases/Catalog.md +0 -48
- package/api/@xmachines/play-catalog/type-aliases/ComponentsFor.md +0 -20
- package/api/@xmachines/play-catalog/type-aliases/InferComponentProps.md +0 -65
- package/api/@xmachines/play-catalog/type-aliases/NoExtraKeys.md +0 -17
- package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +0 -15
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-react-router-demo/README.md +0 -137
- package/api/@xmachines/play-router/classes/BaseRouteMap.md +0 -142
- package/api/@xmachines/play-router/functions/connectRouter.md +0 -67
- package/api/@xmachines/play-router/functions/crawlMachine.md +0 -92
- package/api/@xmachines/play-router/functions/createRouter.md +0 -76
- package/api/@xmachines/play-router/functions/extractRoute.md +0 -45
- package/api/@xmachines/play-router/interfaces/BaseRouteMapping.md +0 -27
- package/api/@xmachines/play-router/interfaces/BrowserHistory.md +0 -172
- package/api/@xmachines/play-router/interfaces/BrowserWindow.md +0 -69
- package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +0 -13
- package/api/@xmachines/play-router/interfaces/RouteMap.md +0 -56
- package/api/@xmachines/play-router/interfaces/StateVisit.md +0 -15
- package/api/@xmachines/play-router/interfaces/VanillaRouter.md +0 -28
- package/api/@xmachines/play-router-demo/README.md +0 -137
- package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +0 -15
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-solid-router-demo/README.md +0 -127
- package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +0 -38
- package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +0 -33
- package/api/@xmachines/play-tanstack-react-router/variables/extractMachineRoutes.md +0 -64
- package/api/@xmachines/play-tanstack-react-router-demo/README.md +0 -126
- package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +0 -343
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-tanstack-solid-router-demo/README.md +0 -126
- package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +0 -14
- package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +0 -201
- package/api/@xmachines/play-vue-router-demo/README.md +0 -133
- package/api/@xmachines/play-xstate/functions/mergeViewProps.md +0 -26
- package/api/@xmachines/play-xstate/functions/stateMatches.md +0 -25
- package/api/@xmachines/play-xstate/functions/validateComponentBinding.md +0 -39
- package/api/@xmachines/play-xstate/functions/validateViewProps.md +0 -80
- package/api/@xmachines/play-xstate/interfaces/CatalogEntry.md +0 -16
- package/api/@xmachines/play-xstate/type-aliases/Catalog.md +0 -21
- package/api/@xmachines/play-xstate/type-aliases/ValidationResult.md +0 -17
- package/api/@xmachines/play-xstate/type-aliases/ViewMergeContext.md +0 -35
- package/api/@xmachines/shared/functions/defineXmVitestConfig.md +0 -29
- package/api/@xmachines/shared/functions/xmAliases.md +0 -24
- package/guides/installation.md +0 -323
|
@@ -1,38 +1,46 @@
|
|
|
1
|
-
[
|
|
1
|
+
[API](../../README.md) / @xmachines/shared
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# `@xmachines/shared`
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Shared configurations for XMachines packages — TypeScript, linting, formatting, and Vitest setup used across the monorepo.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
`@xmachines/shared` provides shared configuration files for all XMachines packages, establishing consistent TypeScript compilation, linting rules, formatting, and Vitest setup across the monorepo.
|
|
12
|
-
|
|
13
|
-
**Enhancement:** Added TypeScript composite build system with project references enabling correct build order, incremental compilation, and IDE source navigation via declaration maps.
|
|
9
|
+
Part of the [xmachines-js monorepo](../../README.md).
|
|
14
10
|
|
|
15
11
|
## Installation
|
|
16
12
|
|
|
17
|
-
This package is
|
|
13
|
+
This package is an internal monorepo dependency. It is **not intended for installation by external consumers**.
|
|
18
14
|
|
|
19
|
-
|
|
15
|
+
Within the monorepo it is referenced by package name:
|
|
20
16
|
|
|
21
|
-
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@xmachines/shared": "*"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
```
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
|
|
25
|
+
## Exports
|
|
26
|
+
|
|
27
|
+
| Export | File | Description |
|
|
28
|
+
| ------------------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------- |
|
|
29
|
+
| `@xmachines/shared/tsconfig` | `config/tsconfig.json` | Base TypeScript configuration for all packages |
|
|
30
|
+
| `@xmachines/shared/tsconfig-test` | `config/tsconfig.test.json` | TypeScript configuration for test files (no emit, `allowImportingTsExtensions`, Vitest globals) |
|
|
31
|
+
| `@xmachines/shared/oxlint` | `config/oxlint.config.ts` | Shared oxlint configuration |
|
|
32
|
+
| `@xmachines/shared/oxfmt` | `config/oxfmt.config.ts` | Shared oxfmt formatter configuration |
|
|
33
|
+
| `@xmachines/shared/vite-aliases` | `config/vite-aliases.ts` | Vite resolve aliases for all `@xmachines/*` workspace packages |
|
|
34
|
+
| `@xmachines/shared/vitest` | `config/vitest.ts` | `defineXmVitestConfig` helper for per-package Vitest configs |
|
|
35
|
+
| `@xmachines/shared/vitest-setup` | `config/vitest.setup.ts` | Shared Vitest setup — extends matchers with `@testing-library/jest-dom` |
|
|
36
|
+
| `@xmachines/shared/vitest-node-setup` | `config/vitest.node.setup.ts` | Node.js runtime guard — asserts `Node.js >= 22` |
|
|
37
|
+
| `@xmachines/shared/vitest-urlpattern-setup` | `config/vitest.urlpattern.setup.ts` | Optional URLPattern polyfill setup for route-matching tests |
|
|
30
38
|
|
|
31
39
|
## Usage
|
|
32
40
|
|
|
33
41
|
### TypeScript Configuration
|
|
34
42
|
|
|
35
|
-
|
|
43
|
+
Extend the base TypeScript config in any package:
|
|
36
44
|
|
|
37
45
|
```json
|
|
38
46
|
{
|
|
@@ -45,335 +53,127 @@ Configuration files in `config/` directory:
|
|
|
45
53
|
}
|
|
46
54
|
```
|
|
47
55
|
|
|
48
|
-
|
|
56
|
+
For test-specific TypeScript settings (no emit, `allowImportingTsExtensions`, Vitest globals), extend:
|
|
49
57
|
|
|
50
58
|
```json
|
|
51
59
|
{
|
|
52
|
-
"extends": "@xmachines/shared/
|
|
53
|
-
"
|
|
54
|
-
"composite": true,
|
|
55
|
-
"rootDir": "./src",
|
|
56
|
-
"outDir": "./dist"
|
|
57
|
-
}
|
|
60
|
+
"extends": "@xmachines/shared/tsconfig-test",
|
|
61
|
+
"include": ["src/**/*", "test/**/*"]
|
|
58
62
|
}
|
|
59
63
|
```
|
|
60
64
|
|
|
61
|
-
|
|
65
|
+
### Linting (`oxlint`)
|
|
62
66
|
|
|
63
|
-
|
|
67
|
+
Reference the shared oxlint config from a package's `oxlint.config.ts`:
|
|
64
68
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
{
|
|
69
|
-
"extends": ["@xmachines/shared/oxlint"]
|
|
70
|
-
}
|
|
69
|
+
```typescript
|
|
70
|
+
import sharedConfig from "@xmachines/shared/oxlint";
|
|
71
|
+
export default sharedConfig;
|
|
71
72
|
```
|
|
72
73
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
**Recommended:**
|
|
74
|
+
The shared config enables the `typescript`, `unicorn`, and `import` plugins with:
|
|
76
75
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### Vite Alias Configuration
|
|
76
|
+
- `correctness` rules as errors
|
|
77
|
+
- `suspicious` and `perf` rules as warnings
|
|
78
|
+
- `import/no-cycle` and `typescript/no-explicit-any` as errors
|
|
79
|
+
- `typescript/no-unused-vars` as an error (ignoring `_`-prefixed names)
|
|
84
80
|
|
|
85
|
-
|
|
81
|
+
### Formatting (`oxfmt`)
|
|
86
82
|
|
|
87
|
-
|
|
88
|
-
import { defineConfig } from "vite";
|
|
89
|
-
import { xmAliases } from "@xmachines/shared/vite-aliases";
|
|
83
|
+
Reference the shared oxfmt config from a package's `oxfmt.config.ts`:
|
|
90
84
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
},
|
|
95
|
-
});
|
|
85
|
+
```typescript
|
|
86
|
+
import sharedConfig from "@xmachines/shared/oxfmt";
|
|
87
|
+
export default sharedConfig;
|
|
96
88
|
```
|
|
97
89
|
|
|
98
|
-
|
|
90
|
+
Key formatting rules: 4-space tab width using actual tabs, 100-character print width, double quotes, trailing commas, final newline. JSON/YAML files use 2-space indentation.
|
|
99
91
|
|
|
100
92
|
### Vitest Configuration
|
|
101
93
|
|
|
102
|
-
Use
|
|
94
|
+
Use `defineXmVitestConfig` for per-package Vitest configs. It automatically injects shared setup files and wires `@xmachines/*` source aliases:
|
|
103
95
|
|
|
104
|
-
```
|
|
96
|
+
```typescript
|
|
97
|
+
// vitest.config.ts
|
|
105
98
|
import { defineXmVitestConfig } from "@xmachines/shared/vitest";
|
|
106
99
|
|
|
107
100
|
export default defineXmVitestConfig(import.meta.url, {
|
|
108
101
|
test: {
|
|
109
|
-
|
|
110
|
-
include: ["test/**/*.test.ts"],
|
|
111
|
-
exclude: ["node_modules/**"],
|
|
102
|
+
globals: true,
|
|
112
103
|
},
|
|
113
104
|
});
|
|
114
105
|
```
|
|
115
106
|
|
|
116
|
-
**
|
|
107
|
+
**What `defineXmVitestConfig` applies automatically:**
|
|
117
108
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
109
|
+
- `resolve.alias` from `xmAliases(import.meta.url)` — resolves `@xmachines/*` to TypeScript source
|
|
110
|
+
- `config/vitest.node.setup.ts` — Node.js runtime guard (skipped in browser mode)
|
|
111
|
+
- `config/vitest.setup.ts` — `@testing-library/jest-dom` matcher extensions
|
|
112
|
+
|
|
113
|
+
For packages that test URL routing, add the URLPattern polyfill setup:
|
|
121
114
|
|
|
115
|
+
```typescript
|
|
122
116
|
export default defineXmVitestConfig(import.meta.url, {
|
|
123
117
|
test: {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
enabled: true,
|
|
127
|
-
provider: playwright(),
|
|
128
|
-
headless: true,
|
|
129
|
-
instances: [{ browser: "chromium" }],
|
|
130
|
-
},
|
|
131
|
-
include: ["test/browser/**/*.browser.test.ts"],
|
|
132
|
-
exclude: ["node_modules/**"],
|
|
118
|
+
globals: true,
|
|
119
|
+
setupFiles: ["@xmachines/shared/vitest-urlpattern-setup"],
|
|
133
120
|
},
|
|
134
121
|
});
|
|
135
122
|
```
|
|
136
123
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
- `resolve.alias` for all `@xmachines/*` packages via `xmAliases(...)`
|
|
140
|
-
- Shared setup injection (`config/vitest.setup.ts`) unless already present
|
|
141
|
-
- Node setup injection (`config/vitest.node.setup.ts`) for non-browser projects
|
|
142
|
-
- Runtime preflight:
|
|
143
|
-
- Node.js runtime/version check (`>=22`) in node setup
|
|
144
|
-
- DOM matcher extension via `@testing-library/jest-dom/vitest`
|
|
145
|
-
|
|
146
|
-
### Vitest Setup Injection Rules
|
|
147
|
-
|
|
148
|
-
`defineXmVitestConfig(...)` applies setup files predictably:
|
|
149
|
-
|
|
150
|
-
1. It normalizes `test.setupFiles` into an array.
|
|
151
|
-
2. It injects `config/vitest.setup.ts` if missing.
|
|
152
|
-
3. It injects `config/vitest.node.setup.ts` only when `test.browser.enabled !== true`.
|
|
153
|
-
4. It avoids duplicates by checking filenames (suffix match).
|
|
154
|
-
5. Injected setup files run before user-provided setup files.
|
|
155
|
-
|
|
156
|
-
This gives a safe default for Node package tests while keeping browser projects compatible.
|
|
124
|
+
### Vite Aliases
|
|
157
125
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
`@xmachines/shared` exports these Vitest entry points:
|
|
161
|
-
|
|
162
|
-
- `@xmachines/shared/vitest` → `config/vitest.ts`
|
|
163
|
-
- `@xmachines/shared/vitest-setup` → `config/vitest.setup.ts`
|
|
164
|
-
- `@xmachines/shared/vitest-node-setup` → `config/vitest.node.setup.ts`
|
|
165
|
-
- `@xmachines/shared/vitest-urlpattern-setup` → `config/vitest.urlpattern.setup.ts`
|
|
166
|
-
|
|
167
|
-
Use `@xmachines/shared/vitest` for package config files; direct setup exports are for advanced customization only.
|
|
168
|
-
|
|
169
|
-
`vitest-urlpattern-setup` must be added explicitly to `setupFiles` in packages that exercise URLPattern-based route matching (e.g. `play-router` and its adapter packages). It mirrors what consumers must do in production on Node < 24 or older browsers.
|
|
170
|
-
|
|
171
|
-
## Configuration Details
|
|
172
|
-
|
|
173
|
-
### TypeScript (`config/tsconfig.json`)
|
|
174
|
-
|
|
175
|
-
- **Target:** ESNext (Node.js 22+)
|
|
176
|
-
- **Module:** NodeNext (ESM with `.js` extensions required)
|
|
177
|
-
- **Strict:** Full strict mode enabled
|
|
178
|
-
- **Output:** Colocated `.d.ts` files with source maps
|
|
179
|
-
- **Composite:** Enabled for project references ()
|
|
180
|
-
|
|
181
|
-
**Important:** You must use `.js` extensions in imports:
|
|
126
|
+
For Vite-based demo or app packages, resolve all `@xmachines/*` packages to TypeScript source (no prior build required):
|
|
182
127
|
|
|
183
128
|
```typescript
|
|
184
|
-
|
|
185
|
-
import {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
### Oxlint (`config/oxlint.json`)
|
|
189
|
-
|
|
190
|
-
- **Plugins:** TypeScript, Unicorn, Import
|
|
191
|
-
- **Categories:** Correctness (error), Suspicious (warn), Performance (warn)
|
|
192
|
-
- **Key Rules:**
|
|
193
|
-
- Circular dependency detection (`import/no-cycle`)
|
|
194
|
-
- Unused variables (allow `_` prefix)
|
|
195
|
-
- TypeScript-specific checks
|
|
196
|
-
|
|
197
|
-
### Oxfmt (`config/oxfmt.json`)
|
|
198
|
-
|
|
199
|
-
- **Line Width:** 100 characters
|
|
200
|
-
- **Indentation:** Tabs (4 spaces)
|
|
201
|
-
- **Style:** Double quotes, semicolons, trailing commas
|
|
202
|
-
- **Final Newline:** Always insert
|
|
203
|
-
|
|
204
|
-
### Vitest (`config/vitest.ts`, `config/vitest.setup.ts`, `config/vitest.node.setup.ts`, `config/vitest.urlpattern.setup.ts`)
|
|
205
|
-
|
|
206
|
-
- **Helper API:** `defineXmVitestConfig(importMetaUrl, overrides)` merges shared defaults with package-specific Vitest config
|
|
207
|
-
- **Auto-aliasing:** `resolve.alias` is wired to `xmAliases(importMetaUrl)` so workspace packages resolve to source
|
|
208
|
-
- **Cross-runtime setup (`config/vitest.setup.ts`):**
|
|
209
|
-
- extends `expect` with `@testing-library/jest-dom/vitest`
|
|
210
|
-
- **URLPattern setup (`config/vitest.urlpattern.setup.ts`):**
|
|
211
|
-
- loads `urlpattern-polyfill` — opt-in per package via `setupFiles: ["@xmachines/shared/vitest-urlpattern-setup"]`
|
|
212
|
-
- required for packages exercising URLPattern-based route matching (play-router and adapters)
|
|
213
|
-
- mirrors what consumers must do in production on Node < 24 or older browsers
|
|
214
|
-
- **Node-only setup (`config/vitest.node.setup.ts`):**
|
|
215
|
-
- asserts Node runtime (`process.release.name === "node"`)
|
|
216
|
-
- enforces Node version `>=22`
|
|
217
|
-
- **Browser behavior:** Browser projects do not receive node-only setup injection
|
|
218
|
-
- **Override model:** Package-level config still controls test environment, includes/excludes, plugins, coverage, and browser provider
|
|
219
|
-
|
|
220
|
-
### Vite Aliases (`config/vite-aliases.ts`)
|
|
221
|
-
|
|
222
|
-
- **Helper API:** `xmAliases(importMetaUrl)` returns a complete `resolve.alias` map for all `@xmachines/*` workspace packages
|
|
223
|
-
- **Root discovery:** Walks upward from `import.meta.url` until it finds the workspace root (`package.json` with `workspaces`)
|
|
224
|
-
- **Source-first resolution:** Maps package imports to `packages/*/src/index.ts` for fast local dev without prebuild
|
|
225
|
-
- **Extra aliases:** Includes `@xmachines/play-router-shared` and `@xmachines/play-router-shared/index.css` for demo shared assets
|
|
226
|
-
- **Primary use cases:** `vite.config.ts`, `vitest` browser configs, and any local tooling relying on Vite resolver semantics
|
|
227
|
-
|
|
228
|
-
### Vite Alias Troubleshooting
|
|
229
|
-
|
|
230
|
-
- **`[xmAliases] Could not find workspace root`**
|
|
231
|
-
- Ensure `xmAliases` receives `import.meta.url` from the calling config file.
|
|
232
|
-
- Ensure the config file lives somewhere under the monorepo root.
|
|
233
|
-
- **Workspace package import resolves to missing `dist/` files**
|
|
234
|
-
- Ensure config includes `resolve.alias: xmAliases(import.meta.url)`.
|
|
235
|
-
- Re-run after cleaning caches when lockfile/deps changed.
|
|
236
|
-
|
|
237
|
-
### Vitest Troubleshooting
|
|
238
|
-
|
|
239
|
-
- **`URLPattern is unavailable after setup`**
|
|
240
|
-
- Ensure `test.setupFiles` is not replacing shared setup unexpectedly.
|
|
241
|
-
- Ensure config is created via `defineXmVitestConfig(...)`.
|
|
242
|
-
- **`Node runtime is required for this Vitest configuration`**
|
|
243
|
-
- This indicates node-only setup loaded in a browser project.
|
|
244
|
-
- Set `test.browser.enabled: true` in that project config.
|
|
245
|
-
- **Workspace import resolution failures (e.g. `@xmachines/play-signals`)**
|
|
246
|
-
- Confirm config uses `defineXmVitestConfig(import.meta.url, ...)` so aliases are injected.
|
|
247
|
-
|
|
248
|
-
## TypeScript Composite Build System
|
|
249
|
-
|
|
250
|
-
This package introduced TypeScript project references for proper build-order management in the monorepo.
|
|
251
|
-
|
|
252
|
-
### What This Means
|
|
253
|
-
|
|
254
|
-
- **Root `tsconfig.json`** coordinates all packages via `references` array
|
|
255
|
-
- **Each package** has `composite: true` enabling incremental builds
|
|
256
|
-
- **Packages with dependencies** declare `references` to their deps
|
|
257
|
-
- **TypeScript builds in correct order automatically** (no manual sequencing needed)
|
|
258
|
-
|
|
259
|
-
### Building
|
|
129
|
+
// vite.config.ts
|
|
130
|
+
import { defineConfig } from "vite";
|
|
131
|
+
import { xmResolve } from "@xmachines/shared/vite-aliases";
|
|
260
132
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
133
|
+
export default defineConfig({
|
|
134
|
+
resolve: xmResolve(import.meta.url),
|
|
135
|
+
});
|
|
264
136
|
```
|
|
265
137
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
- Understands the dependency graph
|
|
269
|
-
- Builds packages in correct order
|
|
270
|
-
- Only rebuilds changed packages (incremental)
|
|
271
|
-
- Produces `.d.ts.map` files for IDE navigation
|
|
138
|
+
Use `xmAliases` for alias-only setup, or `xmResolve` for the full resolve config including `conditions: ["source"]` and `preserveSymlinks: true`.
|
|
272
139
|
|
|
273
|
-
|
|
140
|
+
For browser test projects, use `xmOptimizeDeps` to pre-bundle packages and avoid mid-run optimizer restarts, and `xmCacheDir` to share a single Vite dep cache across the workspace:
|
|
274
141
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
When TypeScript compiles with `declarationMap: true`, it produces `.d.ts.map` files that map type definitions back to source. This enables:
|
|
278
|
-
|
|
279
|
-
- **Go to Definition** jumps to `.ts` source files (not compiled `.d.ts`)
|
|
280
|
-
- **Rename refactoring** works across package boundaries
|
|
281
|
-
- **Error messages** reference source locations
|
|
282
|
-
|
|
283
|
-
**Cost:** Slightly larger `dist/` output (~10% more)
|
|
284
|
-
**Benefit:** Dramatically better IDE experience
|
|
285
|
-
|
|
286
|
-
### Project References
|
|
287
|
-
|
|
288
|
-
Packages with internal dependencies should declare `references` in their `tsconfig.json`:
|
|
142
|
+
```typescript
|
|
143
|
+
import { xmResolve, xmOptimizeDeps, xmCacheDir } from "@xmachines/shared/vite-aliases";
|
|
289
144
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
"
|
|
294
|
-
|
|
295
|
-
"rootDir": "./src",
|
|
296
|
-
"outDir": "./dist"
|
|
297
|
-
},
|
|
298
|
-
"references": [{ "path": "../dependency-package" }]
|
|
299
|
-
}
|
|
145
|
+
export default defineConfig({
|
|
146
|
+
cacheDir: xmCacheDir(import.meta.url, "my-project"),
|
|
147
|
+
resolve: xmResolve(import.meta.url),
|
|
148
|
+
optimizeDeps: xmOptimizeDeps(["my-framework-package"]),
|
|
149
|
+
});
|
|
300
150
|
```
|
|
301
151
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
- Build packages in correct dependency order
|
|
305
|
-
- Support incremental builds (only rebuild what changed)
|
|
306
|
-
- Enable cross-package type checking and navigation
|
|
307
|
-
|
|
308
|
-
### Adding New Packages
|
|
152
|
+
## Key TypeScript Settings
|
|
309
153
|
|
|
310
|
-
|
|
154
|
+
The base `config/tsconfig.json` configures:
|
|
311
155
|
|
|
312
|
-
|
|
156
|
+
- **Target:** `ESNext`, **Module:** `NodeNext` with `moduleResolution: NodeNext`
|
|
157
|
+
- **Strict mode:** full strict, `noUnusedLocals`, `noUnusedParameters`, `exactOptionalPropertyTypes`, `noImplicitReturns`, `noImplicitOverride`
|
|
158
|
+
- **Emit:** `declaration`, `declarationMap`, `sourceMap` enabled
|
|
159
|
+
- **Interop:** `verbatimModuleSyntax`, `isolatedModules`
|
|
160
|
+
- **Custom condition:** `"source"` — used by `xmAliases` to resolve packages to TypeScript source in dev/test
|
|
313
161
|
|
|
314
|
-
|
|
315
|
-
{
|
|
316
|
-
"references": [{ "path": "./packages/your-new-package" }]
|
|
317
|
-
}
|
|
318
|
-
```
|
|
162
|
+
## Testing
|
|
319
163
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
{
|
|
324
|
-
"extends": "@xmachines/shared/tsconfig",
|
|
325
|
-
"compilerOptions": {
|
|
326
|
-
"composite": true,
|
|
327
|
-
"rootDir": "./src",
|
|
328
|
-
"outDir": "./dist"
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
3. **Declare dependencies (if any):**
|
|
334
|
-
```json
|
|
335
|
-
{
|
|
336
|
-
"references": [{ "path": "../dependency-package" }]
|
|
337
|
-
}
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
### IDE Benefits
|
|
341
|
-
|
|
342
|
-
With `declarationMap: true` in the base config:
|
|
343
|
-
|
|
344
|
-
- **Go to Definition** jumps to source files (not compiled `.d.ts`)
|
|
345
|
-
- **Real-time errors** across package boundaries
|
|
346
|
-
- **Refactoring works** across the entire monorepo
|
|
347
|
-
|
|
348
|
-
No build required for IDE features - TypeScript understands the source graph directly.
|
|
349
|
-
|
|
350
|
-
See `AGENTS.md` (section: TypeScript Composite Build System) for complete composite build documentation.
|
|
351
|
-
|
|
352
|
-
## Adding New Configurations
|
|
353
|
-
|
|
354
|
-
To add a new shared configuration (e.g., for Jest, Vitest, etc.):
|
|
164
|
+
```bash
|
|
165
|
+
# Run tests for this package
|
|
166
|
+
pnpm --filter @xmachines/shared test
|
|
355
167
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
{
|
|
360
|
-
"exports": {
|
|
361
|
-
"./<tool>": "./config/<tool>.json",
|
|
362
|
-
"./config/<tool>.json": "./config/<tool>.json"
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
```
|
|
366
|
-
3. Document in this README with usage examples
|
|
367
|
-
4. Note whether the tool supports package exports or requires relative paths
|
|
168
|
+
# Or from the package directory
|
|
169
|
+
pnpm test
|
|
170
|
+
```
|
|
368
171
|
|
|
369
172
|
## License
|
|
370
173
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
This work is licensed under the terms of the MIT license.
|
|
374
|
-
For a copy, see <https://opensource.org/licenses/MIT>.
|
|
174
|
+
MIT — see [LICENSE](LICENSE).
|
|
375
175
|
|
|
376
|
-
##
|
|
176
|
+
## Modules
|
|
377
177
|
|
|
378
|
-
- [
|
|
379
|
-
- [
|
|
178
|
+
- [vite-aliases](vite-aliases/README.md)
|
|
179
|
+
- [vitest](vitest/README.md)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/shared](../README.md) / vite-aliases
|
|
2
|
+
|
|
3
|
+
# vite-aliases
|
|
4
|
+
|
|
5
|
+
## Functions
|
|
6
|
+
|
|
7
|
+
- [xmAliases](functions/xmAliases.md)
|
|
8
|
+
- [xmCacheDir](functions/xmCacheDir.md)
|
|
9
|
+
- [xmOptimizeDeps](functions/xmOptimizeDeps.md)
|
|
10
|
+
- [xmResolve](functions/xmResolve.md)
|
|
11
|
+
- [xmSvelteRunes](functions/xmSvelteRunes.md)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/shared](../../README.md) / [vite-aliases](../README.md) / xmAliases
|
|
2
|
+
|
|
3
|
+
# Function: xmAliases()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function xmAliases(importMetaUrl): Record<string, string>;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [vite-aliases.ts:221](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/shared/config/vite-aliases.ts#L221)
|
|
10
|
+
|
|
11
|
+
Vite resolve.alias entries for all @xmachines/* workspace packages.
|
|
12
|
+
|
|
13
|
+
Maps every package to its TypeScript source entry so that `pnpm run dev`
|
|
14
|
+
works without a prior `pnpm run build`. Required because `pnpm run clean`
|
|
15
|
+
removes all dist/ directories — including transitive dependencies —
|
|
16
|
+
leaving Vite unable to resolve package.json `exports` that point to dist/.
|
|
17
|
+
|
|
18
|
+
The map is derived from the workspace layout at config-load time (see
|
|
19
|
+
`buildAliases`), so adding a new package needs no edit here. A few
|
|
20
|
+
special-case subpath aliases are maintained explicitly on top.
|
|
21
|
+
|
|
22
|
+
Usage in a demo vite.config.ts:
|
|
23
|
+
|
|
24
|
+
import { xmAliases } from "@xmachines/shared/vite-aliases";
|
|
25
|
+
|
|
26
|
+
export default defineConfig({
|
|
27
|
+
resolve: { alias: xmAliases(import.meta.url) },
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
## Parameters
|
|
31
|
+
|
|
32
|
+
| Parameter | Type | Description |
|
|
33
|
+
| --------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
34
|
+
| `importMetaUrl` | `string` | Pass `import.meta.url` from the calling config file. Used to locate the workspace root (the directory containing `packages/`). |
|
|
35
|
+
|
|
36
|
+
## Returns
|
|
37
|
+
|
|
38
|
+
`Record`\<`string`, `string`\>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/shared](../../README.md) / [vite-aliases](../README.md) / xmCacheDir
|
|
2
|
+
|
|
3
|
+
# Function: xmCacheDir()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function xmCacheDir(importMetaUrl, name): string;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [vite-aliases.ts:333](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/shared/config/vite-aliases.ts#L333)
|
|
10
|
+
|
|
11
|
+
Returns the shared Vite `cacheDir` for this workspace package.
|
|
12
|
+
|
|
13
|
+
All browser test projects use a single cache under `<workspace-root>/node_modules/.vite/`
|
|
14
|
+
keyed by the project name. This means the dep optimizer runs once per project
|
|
15
|
+
across the whole workspace rather than once per local `node_modules/.vite/` directory,
|
|
16
|
+
and a lockfile change only triggers one rebuild per project — not one per local cache.
|
|
17
|
+
|
|
18
|
+
## Parameters
|
|
19
|
+
|
|
20
|
+
| Parameter | Type | Description |
|
|
21
|
+
| --------------- | -------- | ---------------------------------------------------- |
|
|
22
|
+
| `importMetaUrl` | `string` | Pass `import.meta.url` from the calling config file. |
|
|
23
|
+
| `name` | `string` | Unique project name (matches `test.name`). |
|
|
24
|
+
|
|
25
|
+
## Returns
|
|
26
|
+
|
|
27
|
+
`string`
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/shared](../../README.md) / [vite-aliases](../README.md) / xmOptimizeDeps
|
|
2
|
+
|
|
3
|
+
# Function: xmOptimizeDeps()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function xmOptimizeDeps(include?): DepOptimizationOptions;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [vite-aliases.ts:291](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/shared/config/vite-aliases.ts#L291)
|
|
10
|
+
|
|
11
|
+
Returns the standard Vite `optimizeDeps` config for browser test projects.
|
|
12
|
+
|
|
13
|
+
Tells Vite's dep optimizer which packages to pre-bundle at startup rather than
|
|
14
|
+
discovering them lazily at runtime. Without this, adding or changing dependencies
|
|
15
|
+
(e.g. a lockfile change) causes Vite to re-optimize mid-run, producing the
|
|
16
|
+
"Re-optimizing dependencies because lockfile has changed" warnings that slow down
|
|
17
|
+
and occasionally destabilise browser test runs.
|
|
18
|
+
|
|
19
|
+
Every entry has to be a dependency the calling package declares. pnpm gives each
|
|
20
|
+
package its own `node_modules`, so a specifier the project does not declare cannot
|
|
21
|
+
be resolved from its root — and the optimizer only warns: `Failed to resolve
|
|
22
|
+
dependency: <name>, present in client 'optimizeDeps.include'` on stderr, with the
|
|
23
|
+
run carrying on. That reads as a failure inside a passing job, and it hides the
|
|
24
|
+
same message when it is real. So nothing is pre-bundled by default: pass the
|
|
25
|
+
packages this project actually depends on.
|
|
26
|
+
|
|
27
|
+
## Parameters
|
|
28
|
+
|
|
29
|
+
| Parameter | Type | Default value | Description |
|
|
30
|
+
| --------- | ---------- | ------------- | -------------------------------------------------------------- |
|
|
31
|
+
| `include` | `string`[] | `[]` | Package specifiers to pre-bundle, each declared by the caller. |
|
|
32
|
+
|
|
33
|
+
## Returns
|
|
34
|
+
|
|
35
|
+
`DepOptimizationOptions`
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/shared](../../README.md) / [vite-aliases](../README.md) / xmResolve
|
|
2
|
+
|
|
3
|
+
# Function: xmResolve()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function xmResolve(importMetaUrl, extra?): ResolveOptions & object;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [vite-aliases.ts:258](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/shared/config/vite-aliases.ts#L258)
|
|
10
|
+
|
|
11
|
+
Full Vite `resolve` config for @xmachines/* workspace packages.
|
|
12
|
+
|
|
13
|
+
Combines `xmAliases` with `conditions: ["source"]` so Vite resolves every
|
|
14
|
+
`@xmachines/*` package to its TypeScript source via the `"source"` export
|
|
15
|
+
condition — without requiring a prior `pnpm run build`.
|
|
16
|
+
|
|
17
|
+
`preserveSymlinks` defaults to `false`: under pnpm every dependency is a
|
|
18
|
+
symlink into the content-addressed store, and preserving symlink paths
|
|
19
|
+
prevents Vite from deduplicating packages and from resolving nested
|
|
20
|
+
dependencies of pre-bundled modules (vitest's own browser-mode chunks fail
|
|
21
|
+
to load). Callers can still override it explicitly.
|
|
22
|
+
|
|
23
|
+
Use this instead of manually setting `resolve.alias: xmAliases(...)`:
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
import { xmResolve } from "@xmachines/shared/vite-aliases";
|
|
27
|
+
|
|
28
|
+
export default defineConfig({
|
|
29
|
+
resolve: xmResolve(import.meta.url),
|
|
30
|
+
});
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Parameters
|
|
34
|
+
|
|
35
|
+
| Parameter | Type | Description |
|
|
36
|
+
| --------------- | ---------------------------------------- | ---------------------------------------------------- |
|
|
37
|
+
| `importMetaUrl` | `string` | Pass `import.meta.url` from the calling config file. |
|
|
38
|
+
| `extra?` | `Partial`\<`ResolveOptions` & `object`\> | - |
|
|
39
|
+
|
|
40
|
+
## Returns
|
|
41
|
+
|
|
42
|
+
`ResolveOptions` & `object`
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
[API](../../../../README.md) / [@xmachines/shared](../../README.md) / [vite-aliases](../README.md) / xmSvelteRunes
|
|
2
|
+
|
|
3
|
+
# Function: xmSvelteRunes()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function xmSvelteRunes(): object;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [vite-aliases.ts:312](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/shared/config/vite-aliases.ts#L312)
|
|
10
|
+
|
|
11
|
+
Svelte plugin options that enforce runes mode for workspace sources only.
|
|
12
|
+
|
|
13
|
+
Forcing `compilerOptions.runes` globally also applies to third-party
|
|
14
|
+
`.svelte` files pulled in through Vite dependency optimization — e.g.
|
|
15
|
+
`@testing-library/svelte-core`'s `wrapper-scaffold-legacy.svelte`, which is
|
|
16
|
+
intentionally written in legacy syntax and fails to compile in runes mode.
|
|
17
|
+
Scoping the flag with `dynamicCompileOptions` keeps the strictness for our
|
|
18
|
+
own components while letting node_modules compile in their intended mode.
|
|
19
|
+
|
|
20
|
+
Usage:
|
|
21
|
+
|
|
22
|
+
import { svelte } from "@sveltejs/vite-plugin-svelte";
|
|
23
|
+
import { xmSvelteRunes } from "@xmachines/shared/vite-aliases";
|
|
24
|
+
|
|
25
|
+
export default defineConfig({ plugins: [svelte(xmSvelteRunes())] });
|
|
26
|
+
|
|
27
|
+
## Returns
|
|
28
|
+
|
|
29
|
+
`object`
|
|
30
|
+
|
|
31
|
+
| Name | Type | Defined in |
|
|
32
|
+
| ------------------------- | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
33
|
+
| `dynamicCompileOptions()` | (`data`) => \| \{ `runes`: `boolean`; \} \| `undefined` | [vite-aliases.ts:313](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/shared/config/vite-aliases.ts#L313) |
|