@real-router/core 0.78.0 → 0.79.1
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 +1 -1
- package/dist/cjs/Router-DGUed2F4.js +2 -0
- package/dist/cjs/Router-DGUed2F4.js.map +1 -0
- package/dist/cjs/{Router-BG5yNYUG.d.ts → Router.d.ts} +5 -4
- package/dist/cjs/Router.d.ts.map +1 -0
- package/dist/cjs/Router.js +2 -0
- package/dist/cjs/Router.js.map +1 -0
- package/dist/cjs/RouterError.d.ts +182 -0
- package/dist/cjs/RouterError.d.ts.map +1 -0
- package/dist/cjs/RouterError.js +2 -0
- package/dist/cjs/RouterError.js.map +1 -0
- package/dist/cjs/api/cloneRouter.d.ts +86 -0
- package/dist/cjs/api/cloneRouter.d.ts.map +1 -0
- package/dist/cjs/api/cloneRouter.js +2 -0
- package/dist/cjs/api/cloneRouter.js.map +1 -0
- package/dist/cjs/api/getDependenciesApi.d.ts +7 -0
- package/dist/cjs/api/getDependenciesApi.d.ts.map +1 -0
- package/dist/cjs/api/getDependenciesApi.js +2 -0
- package/dist/cjs/api/getDependenciesApi.js.map +1 -0
- package/dist/cjs/api/getLifecycleApi.d.ts +7 -0
- package/dist/cjs/api/getLifecycleApi.d.ts.map +1 -0
- package/dist/cjs/api/getLifecycleApi.js +2 -0
- package/dist/cjs/api/getLifecycleApi.js.map +1 -0
- package/dist/cjs/api/getPluginApi.d.ts +7 -0
- package/dist/cjs/api/getPluginApi.d.ts.map +1 -0
- package/dist/cjs/api/getPluginApi.js +2 -0
- package/dist/cjs/api/getPluginApi.js.map +1 -0
- package/dist/cjs/api/getRoutesApi.d.ts +7 -0
- package/dist/cjs/api/getRoutesApi.d.ts.map +1 -0
- package/dist/cjs/api/getRoutesApi.js +2 -0
- package/dist/cjs/api/getRoutesApi.js.map +1 -0
- package/dist/cjs/api/helpers.js +2 -0
- package/dist/cjs/api/helpers.js.map +1 -0
- package/dist/cjs/api/types.d.ts +9 -0
- package/dist/cjs/api/types.d.ts.map +1 -0
- package/dist/cjs/api.d.ts +8 -105
- package/dist/cjs/api.js +1 -1
- package/dist/cjs/api.js.map +1 -1
- package/dist/cjs/buildParamMeta-DniluAIV.js +2 -0
- package/dist/cjs/buildParamMeta-DniluAIV.js.map +1 -0
- package/dist/cjs/{cloneRouter-a6LJt-zh.js → cloneRouter-Ch25z3Z2.js} +2 -2
- package/dist/cjs/{cloneRouter-a6LJt-zh.js.map → cloneRouter-Ch25z3Z2.js.map} +1 -1
- package/dist/cjs/constants.d.ts +25 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +2 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/createRouter.d.ts +23 -0
- package/dist/cjs/createRouter.d.ts.map +1 -0
- package/dist/cjs/createRouter.js +2 -0
- package/dist/cjs/createRouter.js.map +1 -0
- package/dist/cjs/engine/builder/buildTree.js +2 -0
- package/dist/cjs/engine/builder/buildTree.js.map +1 -0
- package/dist/cjs/engine/builder/computeCaches.js +2 -0
- package/dist/cjs/engine/builder/computeCaches.js.map +1 -0
- package/dist/cjs/engine/builder/createRouteTree.js +2 -0
- package/dist/cjs/engine/builder/createRouteTree.js.map +1 -0
- package/dist/cjs/engine/builder/types.d.ts +48 -0
- package/dist/cjs/engine/builder/types.d.ts.map +1 -0
- package/dist/cjs/engine/createMatcher.d.ts +29 -0
- package/dist/cjs/engine/createMatcher.d.ts.map +1 -0
- package/dist/cjs/engine/createMatcher.js +2 -0
- package/dist/cjs/engine/createMatcher.js.map +1 -0
- package/dist/cjs/engine/operations/routeTreeToDefinitions.js +2 -0
- package/dist/cjs/engine/operations/routeTreeToDefinitions.js.map +1 -0
- package/dist/cjs/engine/path-matcher/SegmentMatcher.d.ts +16 -0
- package/dist/cjs/engine/path-matcher/SegmentMatcher.d.ts.map +1 -0
- package/dist/cjs/engine/path-matcher/SegmentMatcher.js +2 -0
- package/dist/cjs/engine/path-matcher/SegmentMatcher.js.map +1 -0
- package/dist/cjs/engine/path-matcher/buildParamMeta.js +2 -0
- package/dist/cjs/engine/path-matcher/buildParamMeta.js.map +1 -0
- package/dist/cjs/engine/path-matcher/encoding.js +2 -0
- package/dist/cjs/engine/path-matcher/encoding.js.map +1 -0
- package/dist/cjs/engine/path-matcher/parseSegment.js +2 -0
- package/dist/cjs/engine/path-matcher/parseSegment.js.map +1 -0
- package/dist/cjs/engine/path-matcher/pathUtils.js +2 -0
- package/dist/cjs/engine/path-matcher/pathUtils.js.map +1 -0
- package/dist/cjs/engine/path-matcher/percentEncoding.js +2 -0
- package/dist/cjs/engine/path-matcher/percentEncoding.js.map +1 -0
- package/dist/cjs/engine/path-matcher/registration/buildParts.js +2 -0
- package/dist/cjs/engine/path-matcher/registration/buildParts.js.map +1 -0
- package/dist/cjs/engine/path-matcher/registration/context.js +2 -0
- package/dist/cjs/engine/path-matcher/registration/context.js.map +1 -0
- package/dist/cjs/engine/path-matcher/registration/errors.js +2 -0
- package/dist/cjs/engine/path-matcher/registration/errors.js.map +1 -0
- package/dist/cjs/engine/path-matcher/registration/index.js +2 -0
- package/dist/cjs/engine/path-matcher/registration/index.js.map +1 -0
- package/dist/cjs/engine/path-matcher/registration/trie.js +2 -0
- package/dist/cjs/engine/path-matcher/registration/trie.js.map +1 -0
- package/dist/cjs/engine/path-matcher/registration/trieNodes.js +2 -0
- package/dist/cjs/engine/path-matcher/registration/trieNodes.js.map +1 -0
- package/dist/cjs/{types-xg2zHVF6.d.ts → engine/path-matcher/types.d.ts} +2 -80
- package/dist/cjs/engine/path-matcher/types.d.ts.map +1 -0
- package/dist/cjs/engine/search-params/decode.js +2 -0
- package/dist/cjs/engine/search-params/decode.js.map +1 -0
- package/dist/cjs/engine/search-params/encode.js +2 -0
- package/dist/cjs/engine/search-params/encode.js.map +1 -0
- package/dist/cjs/engine/search-params/searchParams.js +2 -0
- package/dist/cjs/engine/search-params/searchParams.js.map +1 -0
- package/dist/cjs/engine/search-params/strategies/array.js +2 -0
- package/dist/cjs/engine/search-params/strategies/array.js.map +1 -0
- package/dist/cjs/engine/search-params/strategies/boolean.js +2 -0
- package/dist/cjs/engine/search-params/strategies/boolean.js.map +1 -0
- package/dist/cjs/engine/search-params/strategies/index.js +2 -0
- package/dist/cjs/engine/search-params/strategies/index.js.map +1 -0
- package/dist/cjs/engine/search-params/strategies/null.js +2 -0
- package/dist/cjs/engine/search-params/strategies/null.js.map +1 -0
- package/dist/cjs/engine/search-params/strategies/number.js +2 -0
- package/dist/cjs/engine/search-params/strategies/number.js.map +1 -0
- package/dist/cjs/engine/search-params/types.d.ts +72 -0
- package/dist/cjs/engine/search-params/types.d.ts.map +1 -0
- package/dist/cjs/engine/search-params/utils.js +2 -0
- package/dist/cjs/engine/search-params/utils.js.map +1 -0
- package/dist/cjs/engine/validation/route-batch.d.ts +38 -0
- package/dist/cjs/engine/validation/route-batch.d.ts.map +1 -0
- package/dist/cjs/engine/validation/route-batch.js +2 -0
- package/dist/cjs/engine/validation/route-batch.js.map +1 -0
- package/dist/cjs/engine/validation/routes.js +2 -0
- package/dist/cjs/engine/validation/routes.js.map +1 -0
- package/dist/cjs/foundation/event-emitter/EventEmitter.js +2 -0
- package/dist/cjs/foundation/event-emitter/EventEmitter.js.map +1 -0
- package/dist/cjs/foundation/fsm/fsm.js +2 -0
- package/dist/cjs/foundation/fsm/fsm.js.map +1 -0
- package/dist/cjs/foundation/logger/RouterLogger.js +2 -0
- package/dist/cjs/foundation/logger/RouterLogger.js.map +1 -0
- package/dist/cjs/foundation/logger/constants.js +2 -0
- package/dist/cjs/foundation/logger/constants.js.map +1 -0
- package/dist/cjs/getNavigator.d.ts +6 -0
- package/dist/cjs/getNavigator.d.ts.map +1 -0
- package/dist/cjs/getNavigator.js +2 -0
- package/dist/cjs/getNavigator.js.map +1 -0
- package/dist/cjs/guards.js +2 -0
- package/dist/cjs/guards.js.map +1 -0
- package/dist/cjs/helpers.js +2 -0
- package/dist/cjs/helpers.js.map +1 -0
- package/dist/cjs/index.d.ts +17 -239
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/internals.d.ts +99 -0
- package/dist/cjs/internals.d.ts.map +1 -0
- package/dist/cjs/internals.js +2 -0
- package/dist/cjs/internals.js.map +1 -0
- package/dist/cjs/namespaces/DependenciesNamespace/dependenciesStore.d.ts +10 -0
- package/dist/cjs/namespaces/DependenciesNamespace/dependenciesStore.d.ts.map +1 -0
- package/dist/cjs/namespaces/DependenciesNamespace/dependenciesStore.js +2 -0
- package/dist/cjs/namespaces/DependenciesNamespace/dependenciesStore.js.map +1 -0
- package/dist/cjs/namespaces/EventBusNamespace/EventBusNamespace.js +2 -0
- package/dist/cjs/namespaces/EventBusNamespace/EventBusNamespace.js.map +1 -0
- package/dist/cjs/namespaces/NavigationNamespace/NavigationNamespace.js +2 -0
- package/dist/cjs/namespaces/NavigationNamespace/NavigationNamespace.js.map +1 -0
- package/dist/cjs/namespaces/NavigationNamespace/constants.js +2 -0
- package/dist/cjs/namespaces/NavigationNamespace/constants.js.map +1 -0
- package/dist/cjs/namespaces/NavigationNamespace/transition/completeTransition.js +2 -0
- package/dist/cjs/namespaces/NavigationNamespace/transition/completeTransition.js.map +1 -0
- package/dist/cjs/namespaces/NavigationNamespace/transition/errorHandling.js +2 -0
- package/dist/cjs/namespaces/NavigationNamespace/transition/errorHandling.js.map +1 -0
- package/dist/cjs/namespaces/NavigationNamespace/transition/guardPhase.js +2 -0
- package/dist/cjs/namespaces/NavigationNamespace/transition/guardPhase.js.map +1 -0
- package/dist/cjs/namespaces/OptionsNamespace/OptionsNamespace.js +2 -0
- package/dist/cjs/namespaces/OptionsNamespace/OptionsNamespace.js.map +1 -0
- package/dist/cjs/namespaces/OptionsNamespace/constants.js +2 -0
- package/dist/cjs/namespaces/OptionsNamespace/constants.js.map +1 -0
- package/dist/cjs/namespaces/OptionsNamespace/helpers.js +2 -0
- package/dist/cjs/namespaces/OptionsNamespace/helpers.js.map +1 -0
- package/dist/cjs/namespaces/OptionsNamespace/validators.js +2 -0
- package/dist/cjs/namespaces/OptionsNamespace/validators.js.map +1 -0
- package/dist/cjs/namespaces/PluginsNamespace/PluginsNamespace.js +2 -0
- package/dist/cjs/namespaces/PluginsNamespace/PluginsNamespace.js.map +1 -0
- package/dist/cjs/namespaces/PluginsNamespace/constants.js +2 -0
- package/dist/cjs/namespaces/PluginsNamespace/constants.js.map +1 -0
- package/dist/cjs/namespaces/PluginsNamespace/validators.js +2 -0
- package/dist/cjs/namespaces/PluginsNamespace/validators.js.map +1 -0
- package/dist/cjs/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.d.ts +174 -0
- package/dist/cjs/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.d.ts.map +1 -0
- package/dist/cjs/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.js +2 -0
- package/dist/cjs/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.js.map +1 -0
- package/dist/cjs/namespaces/RouteLifecycleNamespace/types.d.ts +17 -0
- package/dist/cjs/namespaces/RouteLifecycleNamespace/types.d.ts.map +1 -0
- package/dist/cjs/namespaces/RouterLifecycleNamespace/RouterLifecycleNamespace.js +2 -0
- package/dist/cjs/namespaces/RouterLifecycleNamespace/RouterLifecycleNamespace.js.map +1 -0
- package/dist/cjs/namespaces/RouterLifecycleNamespace/constants.js +2 -0
- package/dist/cjs/namespaces/RouterLifecycleNamespace/constants.js.map +1 -0
- package/dist/cjs/namespaces/RoutesNamespace/RoutesNamespace.js +2 -0
- package/dist/cjs/namespaces/RoutesNamespace/RoutesNamespace.js.map +1 -0
- package/dist/cjs/namespaces/RoutesNamespace/constants.js +2 -0
- package/dist/cjs/namespaces/RoutesNamespace/constants.js.map +1 -0
- package/dist/cjs/namespaces/RoutesNamespace/forwardChain.d.ts +5 -0
- package/dist/cjs/namespaces/RoutesNamespace/forwardChain.d.ts.map +1 -0
- package/dist/cjs/namespaces/RoutesNamespace/forwardChain.js +2 -0
- package/dist/cjs/namespaces/RoutesNamespace/forwardChain.js.map +1 -0
- package/dist/cjs/namespaces/RoutesNamespace/helpers.js +2 -0
- package/dist/cjs/namespaces/RoutesNamespace/helpers.js.map +1 -0
- package/dist/cjs/namespaces/RoutesNamespace/routeGuards.js +2 -0
- package/dist/cjs/namespaces/RoutesNamespace/routeGuards.js.map +1 -0
- package/dist/cjs/namespaces/RoutesNamespace/routesStore.d.ts +42 -0
- package/dist/cjs/namespaces/RoutesNamespace/routesStore.d.ts.map +1 -0
- package/dist/cjs/namespaces/RoutesNamespace/routesStore.js +2 -0
- package/dist/cjs/namespaces/RoutesNamespace/routesStore.js.map +1 -0
- package/dist/cjs/namespaces/RoutesNamespace/types.d.ts +57 -0
- package/dist/cjs/namespaces/RoutesNamespace/types.d.ts.map +1 -0
- package/dist/cjs/namespaces/StateNamespace/StateNamespace.js +2 -0
- package/dist/cjs/namespaces/StateNamespace/StateNamespace.js.map +1 -0
- package/dist/cjs/namespaces/StateNamespace/helpers.js +2 -0
- package/dist/cjs/namespaces/StateNamespace/helpers.js.map +1 -0
- package/dist/cjs/routerFSM.js +2 -0
- package/dist/cjs/routerFSM.js.map +1 -0
- package/dist/cjs/stateMetaStore.js +2 -0
- package/dist/cjs/stateMetaStore.js.map +1 -0
- package/dist/cjs/transitionPath.js +2 -0
- package/dist/cjs/transitionPath.js.map +1 -0
- package/dist/cjs/{RouterValidator-CZ8kPkrI.d.ts → types/RouterValidator.d.ts} +2 -2
- package/dist/cjs/types/RouterValidator.d.ts.map +1 -0
- package/dist/cjs/types/api.d.ts +184 -0
- package/dist/cjs/types/api.d.ts.map +1 -0
- package/dist/cjs/types/base.d.ts +86 -0
- package/dist/cjs/types/base.d.ts.map +1 -0
- package/dist/cjs/types/constants.d.ts +72 -0
- package/dist/cjs/types/constants.d.ts.map +1 -0
- package/dist/cjs/types/internal.d.ts +9 -0
- package/dist/cjs/types/internal.d.ts.map +1 -0
- package/dist/cjs/types/limits.d.ts +45 -0
- package/dist/cjs/types/limits.d.ts.map +1 -0
- package/dist/cjs/types/route-node-types.d.ts +46 -0
- package/dist/cjs/types/route-node-types.d.ts.map +1 -0
- package/dist/cjs/types/router.d.ts +313 -0
- package/dist/cjs/types/router.d.ts.map +1 -0
- package/dist/cjs/types/tree-changed.d.ts +55 -0
- package/dist/cjs/types/tree-changed.d.ts.map +1 -0
- package/dist/cjs/types.d.ts +208 -2
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/utils/createRequestScope.d.ts +111 -0
- package/dist/cjs/utils/createRequestScope.d.ts.map +1 -0
- package/dist/cjs/utils/createRequestScope.js +2 -0
- package/dist/cjs/utils/createRequestScope.js.map +1 -0
- package/dist/cjs/utils/getStaticPaths.d.ts +7 -0
- package/dist/cjs/utils/getStaticPaths.d.ts.map +1 -0
- package/dist/cjs/utils/getStaticPaths.js +2 -0
- package/dist/cjs/utils/getStaticPaths.js.map +1 -0
- package/dist/cjs/utils/hydrateRouter.d.ts +69 -0
- package/dist/cjs/utils/hydrateRouter.d.ts.map +1 -0
- package/dist/cjs/utils/hydrateRouter.js +2 -0
- package/dist/cjs/utils/hydrateRouter.js.map +1 -0
- package/dist/cjs/utils/serializeRouterState.d.ts +84 -0
- package/dist/cjs/utils/serializeRouterState.d.ts.map +1 -0
- package/dist/cjs/utils/serializeRouterState.js +2 -0
- package/dist/cjs/utils/serializeRouterState.js.map +1 -0
- package/dist/cjs/utils/serializeState.d.ts +50 -0
- package/dist/cjs/utils/serializeState.d.ts.map +1 -0
- package/dist/cjs/utils/serializeState.js +2 -0
- package/dist/cjs/utils/serializeState.js.map +1 -0
- package/dist/cjs/utils.d.ts +5 -1
- package/dist/cjs/utils.js +1 -1
- package/dist/cjs/validation.d.ts +6 -518
- package/dist/cjs/validation.js +1 -1
- package/dist/cjs/validation.js.map +1 -1
- package/dist/cjs/wiring/wireNamespaces.js +2 -0
- package/dist/cjs/wiring/wireNamespaces.js.map +1 -0
- package/dist/esm/Router-Bk6PfSE8.mjs +2 -0
- package/dist/esm/Router-Bk6PfSE8.mjs.map +1 -0
- package/dist/esm/{Router-Cy75qbgU.d.mts → Router.d.mts} +5 -4
- package/dist/esm/Router.d.mts.map +1 -0
- package/dist/esm/RouterError.d.mts +182 -0
- package/dist/esm/RouterError.d.mts.map +1 -0
- package/dist/esm/api/cloneRouter.d.mts +86 -0
- package/dist/esm/api/cloneRouter.d.mts.map +1 -0
- package/dist/esm/api/getDependenciesApi.d.mts +7 -0
- package/dist/esm/api/getDependenciesApi.d.mts.map +1 -0
- package/dist/esm/api/getLifecycleApi.d.mts +7 -0
- package/dist/esm/api/getLifecycleApi.d.mts.map +1 -0
- package/dist/esm/api/getPluginApi.d.mts +7 -0
- package/dist/esm/api/getPluginApi.d.mts.map +1 -0
- package/dist/esm/api/getRoutesApi.d.mts +7 -0
- package/dist/esm/api/getRoutesApi.d.mts.map +1 -0
- package/dist/esm/api/types.d.mts +9 -0
- package/dist/esm/api/types.d.mts.map +1 -0
- package/dist/esm/api.d.mts +8 -105
- package/dist/esm/api.mjs +1 -1
- package/dist/esm/api.mjs.map +1 -1
- package/dist/esm/buildParamMeta-bOLhLF9h.mjs +2 -0
- package/dist/esm/buildParamMeta-bOLhLF9h.mjs.map +1 -0
- package/dist/esm/{cloneRouter-CqS4kTs8.mjs → cloneRouter-D4rnqmi9.mjs} +2 -2
- package/dist/esm/{cloneRouter-CqS4kTs8.mjs.map → cloneRouter-D4rnqmi9.mjs.map} +1 -1
- package/dist/esm/constants.d.mts +25 -0
- package/dist/esm/constants.d.mts.map +1 -0
- package/dist/esm/createRouter.d.mts +23 -0
- package/dist/esm/createRouter.d.mts.map +1 -0
- package/dist/esm/engine/builder/types.d.mts +48 -0
- package/dist/esm/engine/builder/types.d.mts.map +1 -0
- package/dist/esm/engine/createMatcher.d.mts +29 -0
- package/dist/esm/engine/createMatcher.d.mts.map +1 -0
- package/dist/esm/engine/path-matcher/SegmentMatcher.d.mts +16 -0
- package/dist/esm/engine/path-matcher/SegmentMatcher.d.mts.map +1 -0
- package/dist/esm/{types-xg2zHVF6.d.mts → engine/path-matcher/types.d.mts} +2 -80
- package/dist/esm/engine/path-matcher/types.d.mts.map +1 -0
- package/dist/esm/engine/search-params/types.d.mts +72 -0
- package/dist/esm/engine/search-params/types.d.mts.map +1 -0
- package/dist/esm/engine/validation/route-batch.d.mts +38 -0
- package/dist/esm/engine/validation/route-batch.d.mts.map +1 -0
- package/dist/esm/getNavigator.d.mts +6 -0
- package/dist/esm/getNavigator.d.mts.map +1 -0
- package/dist/esm/index.d.mts +17 -239
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/internals.d.mts +99 -0
- package/dist/esm/internals.d.mts.map +1 -0
- package/dist/esm/namespaces/DependenciesNamespace/dependenciesStore.d.mts +10 -0
- package/dist/esm/namespaces/DependenciesNamespace/dependenciesStore.d.mts.map +1 -0
- package/dist/esm/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.d.mts +174 -0
- package/dist/esm/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.d.mts.map +1 -0
- package/dist/esm/namespaces/RouteLifecycleNamespace/types.d.mts +17 -0
- package/dist/esm/namespaces/RouteLifecycleNamespace/types.d.mts.map +1 -0
- package/dist/esm/namespaces/RoutesNamespace/forwardChain.d.mts +5 -0
- package/dist/esm/namespaces/RoutesNamespace/forwardChain.d.mts.map +1 -0
- package/dist/esm/namespaces/RoutesNamespace/routesStore.d.mts +42 -0
- package/dist/esm/namespaces/RoutesNamespace/routesStore.d.mts.map +1 -0
- package/dist/esm/namespaces/RoutesNamespace/types.d.mts +57 -0
- package/dist/esm/namespaces/RoutesNamespace/types.d.mts.map +1 -0
- package/dist/esm/{RouterValidator-CZ8kPkrI.d.mts → types/RouterValidator.d.mts} +2 -2
- package/dist/esm/types/RouterValidator.d.mts.map +1 -0
- package/dist/esm/types/api.d.mts +184 -0
- package/dist/esm/types/api.d.mts.map +1 -0
- package/dist/esm/types/base.d.mts +86 -0
- package/dist/esm/types/base.d.mts.map +1 -0
- package/dist/esm/types/constants.d.mts +72 -0
- package/dist/esm/types/constants.d.mts.map +1 -0
- package/dist/esm/types/internal.d.mts +9 -0
- package/dist/esm/types/internal.d.mts.map +1 -0
- package/dist/esm/types/limits.d.mts +45 -0
- package/dist/esm/types/limits.d.mts.map +1 -0
- package/dist/esm/types/route-node-types.d.mts +46 -0
- package/dist/esm/types/route-node-types.d.mts.map +1 -0
- package/dist/esm/types/router.d.mts +313 -0
- package/dist/esm/types/router.d.mts.map +1 -0
- package/dist/esm/types/tree-changed.d.mts +55 -0
- package/dist/esm/types/tree-changed.d.mts.map +1 -0
- package/dist/esm/types.d.mts +208 -2
- package/dist/esm/types.d.mts.map +1 -0
- package/dist/esm/utils/createRequestScope.d.mts +111 -0
- package/dist/esm/utils/createRequestScope.d.mts.map +1 -0
- package/dist/esm/utils/getStaticPaths.d.mts +7 -0
- package/dist/esm/utils/getStaticPaths.d.mts.map +1 -0
- package/dist/esm/utils/hydrateRouter.d.mts +69 -0
- package/dist/esm/utils/hydrateRouter.d.mts.map +1 -0
- package/dist/esm/utils/serializeRouterState.d.mts +84 -0
- package/dist/esm/utils/serializeRouterState.d.mts.map +1 -0
- package/dist/esm/utils/serializeState.d.mts +50 -0
- package/dist/esm/utils/serializeState.d.mts.map +1 -0
- package/dist/esm/utils.d.mts +5 -1
- package/dist/esm/utils.mjs +1 -1
- package/dist/esm/validation.d.mts +6 -518
- package/dist/esm/validation.mjs +1 -1
- package/dist/esm/validation.mjs.map +1 -1
- package/package.json +2 -2
- package/dist/cjs/Router-BG5yNYUG.d.ts.map +0 -1
- package/dist/cjs/Router-D6NzRxBA.js +0 -2
- package/dist/cjs/Router-D6NzRxBA.js.map +0 -1
- package/dist/cjs/RouterValidator-CZ8kPkrI.d.ts.map +0 -1
- package/dist/cjs/api.d.ts.map +0 -1
- package/dist/cjs/buildParamMeta-CkG6cUIl.js +0 -2
- package/dist/cjs/buildParamMeta-CkG6cUIl.js.map +0 -1
- package/dist/cjs/index-CAnGQpnz.d.ts +0 -974
- package/dist/cjs/index-CAnGQpnz.d.ts.map +0 -1
- package/dist/cjs/index-DDrryY2U.d.ts +0 -309
- package/dist/cjs/index-DDrryY2U.d.ts.map +0 -1
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/types-xg2zHVF6.d.ts.map +0 -1
- package/dist/cjs/validation.d.ts.map +0 -1
- package/dist/esm/Router-Cy75qbgU.d.mts.map +0 -1
- package/dist/esm/Router-De0Gr9Ll.mjs +0 -2
- package/dist/esm/Router-De0Gr9Ll.mjs.map +0 -1
- package/dist/esm/RouterValidator-CZ8kPkrI.d.mts.map +0 -1
- package/dist/esm/api.d.mts.map +0 -1
- package/dist/esm/buildParamMeta-Bl0uORu6.mjs +0 -2
- package/dist/esm/buildParamMeta-Bl0uORu6.mjs.map +0 -1
- package/dist/esm/index-CAnGQpnz.d.mts +0 -974
- package/dist/esm/index-CAnGQpnz.d.mts.map +0 -1
- package/dist/esm/index-DnSU6huX.d.mts +0 -309
- package/dist/esm/index-DnSU6huX.d.mts.map +0 -1
- package/dist/esm/index.d.mts.map +0 -1
- package/dist/esm/types-xg2zHVF6.d.mts.map +0 -1
- package/dist/esm/validation.d.mts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouterValidator.d.ts","names":[],"sources":["../../../src/types/RouterValidator.ts"],"mappings":";;;;;;;;;;UAUiB;;;;EAIf;IACE,wBAAwB;IACxB,wBAAwB;IACxB,4BACE,eACA,iBACA,iBACA;IAEF,+BAA+B;IAC/B,2BACE,eACA,iBACA;IAEF,uBAAuB;IACvB,iBACE,mBACA,eACA;IAEF,0BAA0B;IAC1B,+BAA+B,eAAe;IAC9C,mCAAmC,cAAc;IACjD,sBACE,cACA,kBACA;IAEF,uBAAuB,iBAAiB;IACxC,oBAAoB,eAAe;IACnC,uBAAuB,eAAe;IACtC,8BAA8B,mBAAmB;IACjD,0BAA0B;IAC1B,sBAAsB;IACtB,wBAAwB;;;;;EAM1B;IACE,kBAAkB,kBAAkB;IACpC,+BAA+B,oBAAoB;;;;;EAMrD;IACE,yBAAyB,eAAe;IACxC,4BACE,eACA,gBACA;IAEF,6BAA6B,eAAe;IAC5C,2BAA2B,cAAc;IACzC,0BAA0B,gBAAgB;IAC1C,oBAAoB;IACpB,gBAAgB,cAAc;IAC9B,qBAAqB,gBAAgB;IACrC,wBAAwB;;;;;EAM1B;IACE,sBAAsB,eAAe;IACrC,6BACE,kBACA;IAEF,qBAAqB;IACrB,0BAA0B;IAC1B,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;IACvB,6BAA6B,iBAAiB;;;;;EAMhD;IACE,kBAAkB,kBAAkB;IACpC,uBAAuB,eAAe;IACtC,0BAA0B,eAAe;IACzC,gBAAgB,cAAc,cAAc;IAC5C,qBAAqB,cAAc;;;;;EAMrC;IACE,uBAAuB;IACvB,gCAAgC;IAChC,8BAA8B;IAC9B,4BAA4B,kBAAkB;IAC9C,iBAAiB,iBAAiB;IAClC,oBAAoB;;;;;EAMtB;IACE,wBACE,eACA,iBACA;IAEF,6BACE,aACA,aACA;;;;;EAOJ;IACE,uBAAuB,eAAe;IACtC,0BACE,eACA,mBACA"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { RouteTreeState } from "./route-node-types.js";
|
|
2
|
+
import { Params, SimpleState, State, StateMetaInput, Unsubscribe } from "./base.js";
|
|
3
|
+
import { DefaultDependencies, GuardFnFactory, Options, Plugin, Route, RouteConfigUpdate } from "./router.js";
|
|
4
|
+
import { EventMethodMap, EventName } from "./constants.js";
|
|
5
|
+
import { TreeChangedEvent } from "./tree-changed.js";
|
|
6
|
+
import { NavigationOptions, StateContext } from "../types.js";
|
|
7
|
+
//#region src/types/api.d.ts
|
|
8
|
+
/**
|
|
9
|
+
* Maps interceptable method names to their signatures.
|
|
10
|
+
* Used by {@link PluginApi.addInterceptor} to provide type-safe interceptor registration.
|
|
11
|
+
*
|
|
12
|
+
* To add a new interceptable method:
|
|
13
|
+
* 1. Add its signature here
|
|
14
|
+
* 2. Wrap it with `createInterceptable()` / `createBinaryInterceptable()` in
|
|
15
|
+
* the `registerInternals` block of the Router constructor
|
|
16
|
+
* (`packages/core/src/Router.ts`)
|
|
17
|
+
*/
|
|
18
|
+
interface InterceptableMethodMap {
|
|
19
|
+
start: (path?: string) => Promise<State>;
|
|
20
|
+
buildPath: (route: string, params?: Params) => string;
|
|
21
|
+
forwardState: (routeName: string, routeParams: Params) => SimpleState;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Type-safe interceptor callback.
|
|
25
|
+
* Receives `next` (the next function in the chain) followed by the method's original parameters.
|
|
26
|
+
*/
|
|
27
|
+
type InterceptorFn<M extends keyof InterceptableMethodMap> = (next: InterceptableMethodMap[M], ...args: Parameters<InterceptableMethodMap[M]>) => ReturnType<InterceptableMethodMap[M]>;
|
|
28
|
+
/**
|
|
29
|
+
* Writer object returned by {@link PluginApi.claimContextNamespace}. Holds
|
|
30
|
+
* exclusive ownership of a single `state.context.<namespace>` key for the
|
|
31
|
+
* lifetime of the owning plugin.
|
|
32
|
+
*
|
|
33
|
+
* @description
|
|
34
|
+
* A plugin obtains a claim by calling `api.claimContextNamespace("ns")` at
|
|
35
|
+
* registration, then publishes per-navigation data via {@link write} from a
|
|
36
|
+
* lifecycle hook (typically `onTransitionSuccess`) or from an interceptor.
|
|
37
|
+
* The plugin must call {@link release} in its `teardown()` so another plugin
|
|
38
|
+
* can reclaim the same namespace.
|
|
39
|
+
*
|
|
40
|
+
* The core runtime enforces one invariant: a namespace can be held by at most
|
|
41
|
+
* one claim at a time. Double-claiming throws `CONTEXT_NAMESPACE_ALREADY_CLAIMED`.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const navigationPlugin: PluginFactory = (router) => {
|
|
46
|
+
* const api = getPluginApi(router);
|
|
47
|
+
* const claim = api.claimContextNamespace("navigation");
|
|
48
|
+
*
|
|
49
|
+
* return {
|
|
50
|
+
* onTransitionSuccess(toState, fromState) {
|
|
51
|
+
* claim.write(toState, { direction: detectDirection(fromState, toState) });
|
|
52
|
+
* },
|
|
53
|
+
* teardown() {
|
|
54
|
+
* claim.release();
|
|
55
|
+
* },
|
|
56
|
+
* };
|
|
57
|
+
* };
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @see {@link PluginApi.claimContextNamespace}
|
|
61
|
+
* @see {@link State.context}
|
|
62
|
+
*/
|
|
63
|
+
interface ContextNamespaceClaim<T = unknown> {
|
|
64
|
+
write: (state: State, value: T) => void;
|
|
65
|
+
release: () => void;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Plugin API — for plugins and infrastructure packages.
|
|
69
|
+
* Hides plugin-internal methods from public autocomplete.
|
|
70
|
+
*/
|
|
71
|
+
interface PluginApi {
|
|
72
|
+
makeState: <P extends Params = Params>(name: string, params?: P, path?: string, meta?: StateMetaInput) => State<P>;
|
|
73
|
+
buildState: (routeName: string, routeParams: Params) => RouteTreeState | undefined;
|
|
74
|
+
forwardState: <P extends Params = Params>(routeName: string, routeParams: P) => SimpleState<P>;
|
|
75
|
+
matchPath: <P extends Params = Params>(path: string) => State<P> | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* Navigate to a fully-built `State`, skipping the redundant
|
|
78
|
+
* `forwardState`/`buildPath` round-trip in `buildNavigateState`.
|
|
79
|
+
*
|
|
80
|
+
* Plugin-only entry point for browser-initiated navigation: a plugin
|
|
81
|
+
* receives a URL event, resolves it via `api.matchPath(url)`, then commits
|
|
82
|
+
* the resulting `State` directly via `api.navigateToState(state, opts)`.
|
|
83
|
+
*
|
|
84
|
+
* Semantics vs `router.navigate(name, params, opts)`:
|
|
85
|
+
* - `forwardState` is NOT re-applied (matchPath already ran it).
|
|
86
|
+
* - `buildPath` is NOT re-run; `state.path` is used verbatim, preserving
|
|
87
|
+
* `trailingSlash:"preserve"` source-URL output.
|
|
88
|
+
* - `forwardState`/`buildPath` interceptors do NOT run on this path; the
|
|
89
|
+
* URL the user navigated to is the source of truth.
|
|
90
|
+
* - Pipeline: SAME_STATES check, FSM transition, guards, `subscribeLeave`,
|
|
91
|
+
* `completeTransition`, plugin lifecycle hooks — all unchanged.
|
|
92
|
+
*
|
|
93
|
+
* Programmatic / userland navigation should keep using
|
|
94
|
+
* `router.navigate(name, params, opts)` so interceptors apply.
|
|
95
|
+
*/
|
|
96
|
+
navigateToState: (state: State, options?: NavigationOptions) => Promise<State>;
|
|
97
|
+
setRootPath: (rootPath: string) => void;
|
|
98
|
+
getRootPath: () => string;
|
|
99
|
+
addEventListener: <E extends EventName>(eventName: E, cb: Plugin[EventMethodMap[E]]) => Unsubscribe;
|
|
100
|
+
buildNavigationState: (name: string, params?: Params) => State | undefined;
|
|
101
|
+
getOptions: () => Options;
|
|
102
|
+
getTree: () => unknown;
|
|
103
|
+
addInterceptor: <M extends keyof InterceptableMethodMap>(method: M, fn: InterceptorFn<M>) => Unsubscribe;
|
|
104
|
+
extendRouter: (extensions: Record<string, unknown>) => Unsubscribe;
|
|
105
|
+
/**
|
|
106
|
+
* Emits a `$$error` event without going through the navigation pipeline.
|
|
107
|
+
*
|
|
108
|
+
* Used by plugins that detect an error outside a running transition (e.g.,
|
|
109
|
+
* an unmatched URL on popstate in strict mode). The event reaches any
|
|
110
|
+
* `onTransitionError` plugin hook and any `$$error` listener so developers
|
|
111
|
+
* can observe errors raised by the plugin layer.
|
|
112
|
+
*
|
|
113
|
+
* The current router state is used as `fromState`; `toState` is `undefined`
|
|
114
|
+
* because no transition was attempted. Safe to call at any FSM state —
|
|
115
|
+
* delegates to `sendFailSafe` internally (direct emit when not READY).
|
|
116
|
+
*/
|
|
117
|
+
emitTransitionError: (error: Error) => void;
|
|
118
|
+
claimContextNamespace: {
|
|
119
|
+
<K extends keyof StateContext & string>(namespace: K): ContextNamespaceClaim<StateContext[K]>;
|
|
120
|
+
(namespace: string): ContextNamespaceClaim;
|
|
121
|
+
};
|
|
122
|
+
getRouteConfig: (name: string) => Record<string, unknown> | undefined;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Routes API — for dynamic route mutation.
|
|
126
|
+
*/
|
|
127
|
+
interface RoutesApi<Dependencies extends DefaultDependencies = DefaultDependencies> {
|
|
128
|
+
add: (routes: Route<Dependencies>[] | Route<Dependencies>, options?: {
|
|
129
|
+
parent?: string;
|
|
130
|
+
}) => void;
|
|
131
|
+
remove: (name: string) => void;
|
|
132
|
+
/**
|
|
133
|
+
* Patch an existing route's configuration in place (no tree rebuild).
|
|
134
|
+
*
|
|
135
|
+
* Applies the structural/guard fields and any plugin-defined custom fields
|
|
136
|
+
* (lifecycle hooks, `preload`, `searchSchema`, …) from the patch. Fields are
|
|
137
|
+
* shallow-merged by key; `null` removes a field, `undefined` is a no-op.
|
|
138
|
+
* `name`/`path`/`children` are immutable — use `remove` + `add` to
|
|
139
|
+
* restructure. See {@link RouteConfigUpdate} for the full semantics and the
|
|
140
|
+
* plugin augmentation pattern.
|
|
141
|
+
*/
|
|
142
|
+
update: (name: string, updates: RouteConfigUpdate<Dependencies>) => void;
|
|
143
|
+
clear: () => void;
|
|
144
|
+
replace: (routes: Route<Dependencies>[] | Route<Dependencies>) => void;
|
|
145
|
+
has: (name: string) => boolean;
|
|
146
|
+
get: (name: string) => Route<Dependencies> | undefined;
|
|
147
|
+
/**
|
|
148
|
+
* Subscribe to structural route-tree mutations (`add` / `remove` / `update`
|
|
149
|
+
* with structural fields / `replace` / `clear`). Fire-and-forget: the handler
|
|
150
|
+
* cannot cancel the mutation, runs after the atomic commit, and sees the
|
|
151
|
+
* post-mutation tree via `get()` / `has()`.
|
|
152
|
+
*
|
|
153
|
+
* Duplicate-registration semantics are **lenient** (mirrors
|
|
154
|
+
* `router.subscribe`): each call registers an independent listener and
|
|
155
|
+
* returns its own unsubscribe.
|
|
156
|
+
*
|
|
157
|
+
* @returns Unsubscribe function for this specific registration.
|
|
158
|
+
*/
|
|
159
|
+
subscribeChanges: (handler: (event: TreeChangedEvent<Dependencies>) => void) => Unsubscribe;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Dependencies API — CRUD for dependency injection.
|
|
163
|
+
*/
|
|
164
|
+
interface DependenciesApi<Dependencies extends DefaultDependencies = DefaultDependencies> {
|
|
165
|
+
get: <K extends keyof Dependencies>(key: K) => Dependencies[K];
|
|
166
|
+
getAll: () => Partial<Dependencies>;
|
|
167
|
+
set: <K extends keyof Dependencies & string>(name: K, value: Dependencies[K]) => void;
|
|
168
|
+
setAll: (deps: Dependencies) => void;
|
|
169
|
+
remove: (name: keyof Dependencies) => void;
|
|
170
|
+
reset: () => void;
|
|
171
|
+
has: (name: keyof Dependencies) => boolean;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Lifecycle API — guard registration (addActivateGuard, addDeactivateGuard, etc.)
|
|
175
|
+
*/
|
|
176
|
+
interface LifecycleApi<Dependencies extends DefaultDependencies = DefaultDependencies> {
|
|
177
|
+
addActivateGuard: (name: string, canActivateHandler: GuardFnFactory<Dependencies> | boolean) => void;
|
|
178
|
+
addDeactivateGuard: (name: string, canDeactivateHandler: GuardFnFactory<Dependencies> | boolean) => void;
|
|
179
|
+
removeActivateGuard: (name: string) => void;
|
|
180
|
+
removeDeactivateGuard: (name: string) => void;
|
|
181
|
+
}
|
|
182
|
+
//#endregion
|
|
183
|
+
export { ContextNamespaceClaim, DependenciesApi, InterceptableMethodMap, InterceptorFn, LifecycleApi, PluginApi, RoutesApi };
|
|
184
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","names":[],"sources":["../../../src/types/api.ts"],"mappings":";;;;;;;;;;;;;;;;;UAqCiB;EACf,QAAQ,kBAAkB,QAAQ;EAClC,YAAY,eAAe,SAAS;EACpC,eAAe,mBAAmB,aAAa,WAAW;;;;;;KAOhD,cAAc,gBAAgB,2BACxC,MAAM,uBAAuB,OAC1B,MAAM,WAAW,uBAAuB,QACxC,WAAW,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAqCtB,sBAAsB;EACrC,QAAQ,OAAO,OAAO,OAAO;EAC7B;;;;;;UAOe;EACf,YAAY,UAAU,SAAS,QAC7B,cACA,SAAS,GACT,eACA,OAAO,mBACJ,MAAM;EAEX,aACE,mBACA,aAAa,WACV;EAEL,eAAe,UAAU,SAAS,QAChC,mBACA,aAAa,MACV,YAAY;EAEjB,YAAY,UAAU,SAAS,QAAQ,iBAAiB,MAAM;;;;;;;;;;;;;;;;;;;;;EAsB9D,kBACE,OAAO,OACP,UAAU,sBACP,QAAQ;EAEb,cAAc;EACd;EAEA,mBAAmB,UAAU,WAC3B,WAAW,GACX,IAAI,OAAO,eAAe,QACvB;EAEL,uBAAuB,cAAc,SAAS,WAAW;EAEzD,kBAAkB;EAElB;EAEA,iBAAiB,gBAAgB,wBAC/B,QAAQ,GACR,IAAI,cAAc,OACf;EAEL,eAAe,YAAY,4BAA4B;;;;;;;;;;;;;EAcvD,sBAAsB,OAAO;EAE7B;KAEG,gBAAgB,uBACf,WAAW,IACV,sBAAsB,aAAa;KACrC,oBAAoB;;EAGvB,iBAAiB,iBAAiB;;;;;UAMnB,UACf,qBAAqB,sBAAsB;EAE3C,MACE,QAAQ,MAAM,kBAAkB,MAAM,eACtC;IAAY;;EAGd,SAAS;;;;;;;;;;;EAYT,SAAS,cAAc,SAAS,kBAAkB;EAElD;EAEA,UAAU,QAAQ,MAAM,kBAAkB,MAAM;EAEhD,MAAM;EAEN,MAAM,iBAAiB,MAAM;;;;;;;;;;;;;EAc7B,mBACE,UAAU,OAAO,iBAAiB,2BAC/B;;;;;UAMU,gBACf,qBAAqB,sBAAsB;EAE3C,MAAM,gBAAgB,cAAc,KAAK,MAAM,aAAa;EAC5D,cAAc,QAAQ;EACtB,MAAM,gBAAgB,uBACpB,MAAM,GACN,OAAO,aAAa;EAEtB,SAAS,MAAM;EACf,SAAS,YAAY;EACrB;EACA,MAAM,YAAY;;;;;UAMH,aACf,qBAAqB,sBAAsB;EAE3C,mBACE,cACA,oBAAoB,eAAe;EAErC,qBACE,cACA,sBAAsB,eAAe;EAEvC,sBAAsB;EACtB,wBAAwB"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { StateContext } from "../types.js";
|
|
2
|
+
//#region src/types/base.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Detach function returned by subscription APIs.
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* Calling this function removes the associated listener. Returned by
|
|
8
|
+
* `router.subscribe()`, `router.addEventListener()`, `router.subscribeLeave()`,
|
|
9
|
+
* and plugin interceptors. Idempotent — calling more than once is safe and
|
|
10
|
+
* has no additional effect after the first call.
|
|
11
|
+
*/
|
|
12
|
+
type Unsubscribe = () => void;
|
|
13
|
+
interface SimpleState<P extends Params = Params> {
|
|
14
|
+
name: string;
|
|
15
|
+
params: P;
|
|
16
|
+
}
|
|
17
|
+
type TransitionPhase = "deactivating" | "activating";
|
|
18
|
+
type TransitionReason = "success" | "blocked" | "cancelled" | "error";
|
|
19
|
+
interface TransitionMeta {
|
|
20
|
+
phase: TransitionPhase;
|
|
21
|
+
reason: TransitionReason;
|
|
22
|
+
reload?: boolean;
|
|
23
|
+
replace?: boolean;
|
|
24
|
+
redirected?: boolean;
|
|
25
|
+
from?: string;
|
|
26
|
+
blocker?: string;
|
|
27
|
+
segments: {
|
|
28
|
+
deactivated: string[];
|
|
29
|
+
activated: string[];
|
|
30
|
+
intersection: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
interface State<P extends Params = Params> {
|
|
34
|
+
name: string;
|
|
35
|
+
params: P;
|
|
36
|
+
path: string;
|
|
37
|
+
transition: TransitionMeta;
|
|
38
|
+
/**
|
|
39
|
+
* Plugin-extensible per-route data, attached by plugins via
|
|
40
|
+
* `PluginApi.claimContextNamespace()` + `claim.write(state, value)`.
|
|
41
|
+
*
|
|
42
|
+
* @description
|
|
43
|
+
* Required field — always present as at least `{}` on every State created by
|
|
44
|
+
* the router (via `makeState`, `navigateToNotFound`, or `cloneRouter`).
|
|
45
|
+
*
|
|
46
|
+
* Typed extensions come from plugins augmenting {@link StateContext} through
|
|
47
|
+
* module augmentation. The intersection with `Record<string, unknown>` allows
|
|
48
|
+
* untyped namespaces (inline plugins, tests, or plugins that skip augmentation)
|
|
49
|
+
* to write without compile errors.
|
|
50
|
+
*
|
|
51
|
+
* The `context` object itself is **not frozen** — this is intentional, so
|
|
52
|
+
* plugins can attach data without cloning state. Core structural fields
|
|
53
|
+
* (`name`, `params`, `path`, `transition`) remain immutable via shallow
|
|
54
|
+
* `Object.freeze(state)`.
|
|
55
|
+
*
|
|
56
|
+
* @see {@link StateContext}
|
|
57
|
+
*/
|
|
58
|
+
context: StateContext & Record<string, unknown>;
|
|
59
|
+
}
|
|
60
|
+
interface StateMetaInput<P extends Params = Params> {
|
|
61
|
+
params: P;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* RouterError interface describing the public API of the RouterError class.
|
|
65
|
+
* The actual class implementation is in the real-router package.
|
|
66
|
+
* This interface enables structural typing compatibility between
|
|
67
|
+
* core-types and real-router packages.
|
|
68
|
+
*/
|
|
69
|
+
interface RouterError extends Error {
|
|
70
|
+
[key: string]: unknown;
|
|
71
|
+
readonly code: string;
|
|
72
|
+
readonly segment: string | undefined;
|
|
73
|
+
readonly path: string | undefined;
|
|
74
|
+
setCode: (code: string) => void;
|
|
75
|
+
setErrorInstance: (err: Error) => void;
|
|
76
|
+
setAdditionalFields: (fields: Record<string, unknown>) => void;
|
|
77
|
+
hasField: (key: string) => boolean;
|
|
78
|
+
getField: (key: string) => unknown;
|
|
79
|
+
toJSON: () => Record<string, unknown>;
|
|
80
|
+
}
|
|
81
|
+
interface Params {
|
|
82
|
+
[key: string]: string | string[] | number | number[] | boolean | boolean[] | Params | Params[] | Record<string, string | number | boolean> | null | undefined;
|
|
83
|
+
}
|
|
84
|
+
//#endregion
|
|
85
|
+
export { Params, RouterError, SimpleState, State, StateMetaInput, TransitionMeta, TransitionPhase, TransitionReason, Unsubscribe };
|
|
86
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","names":[],"sources":["../../../src/types/base.ts"],"mappings":";;;;;;;;;;;KAmBY;UAEK,YAAY,UAAU,SAAS;EAC9C;EACA,QAAQ;;KAGE;KAEA;UAEK;EACf,OAAO;EACP,QAAQ;EACR;EACA;EACA;EACA;EACA;EACA;IACE;IACA;IACA;;;UAIa,MAAM,UAAU,SAAS;EACxC;EACA,QAAQ;EACR;EACA,YAAY;;;;;;;;;;;;;;;;;;;;;EAqBZ,SAAS,eAAe;;UAGT,eAAe,UAAU,SAAS;EACjD,QAAQ;;;;;;;;UASO,oBAAoB;GAClC;WACQ;WACA;WACA;EACT,UAAU;EACV,mBAAmB,KAAK;EACxB,sBAAsB,QAAQ;EAC9B,WAAW;EACX,WAAW;EACX,cAAc;;UAGC;GACd,4EAOG,SACA,WACA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
//#region src/types/constants.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Plugin lifecycle method names
|
|
4
|
+
*/
|
|
5
|
+
type PluginMethod = "onStart" | "onStop" | "onTransitionStart" | "onTransitionLeaveApprove" | "onTransitionCancel" | "onTransitionSuccess" | "onTransitionError";
|
|
6
|
+
/**
|
|
7
|
+
* Router event names
|
|
8
|
+
*/
|
|
9
|
+
type EventName = "$start" | "$stop" | "$$start" | "$$leaveApprove" | "$$cancel" | "$$success" | "$$error";
|
|
10
|
+
/**
|
|
11
|
+
* Event type keys
|
|
12
|
+
*/
|
|
13
|
+
type EventsKeys = "ROUTER_START" | "ROUTER_STOP" | "TRANSITION_START" | "TRANSITION_LEAVE_APPROVE" | "TRANSITION_CANCEL" | "TRANSITION_SUCCESS" | "TRANSITION_ERROR";
|
|
14
|
+
/**
|
|
15
|
+
* Error code values
|
|
16
|
+
*/
|
|
17
|
+
type ErrorCodeValues = "NOT_STARTED" | "NO_START_PATH_OR_STATE" | "ALREADY_STARTED" | "ROUTE_NOT_FOUND" | "SAME_STATES" | "CANNOT_DEACTIVATE" | "CANNOT_ACTIVATE" | "TRANSITION_ERR" | "CANCELLED" | "DISPOSED" | "PLUGIN_CONFLICT" | "CONTEXT_NAMESPACE_ALREADY_CLAIMED";
|
|
18
|
+
/**
|
|
19
|
+
* Error code keys
|
|
20
|
+
*/
|
|
21
|
+
type ErrorCodeKeys = "ROUTER_NOT_STARTED" | "NO_START_PATH_OR_STATE" | "ROUTER_ALREADY_STARTED" | "ROUTE_NOT_FOUND" | "SAME_STATES" | "CANNOT_DEACTIVATE" | "CANNOT_ACTIVATE" | "TRANSITION_ERR" | "TRANSITION_CANCELLED" | "ROUTER_DISPOSED" | "PLUGIN_CONFLICT" | "CONTEXT_NAMESPACE_ALREADY_CLAIMED" | "REENTRANT_NAVIGATION" | "REENTRANT_TREE_MUTATION";
|
|
22
|
+
/**
|
|
23
|
+
* Mapping of event keys to plugin methods
|
|
24
|
+
*/
|
|
25
|
+
interface EventToPluginMap {
|
|
26
|
+
readonly ROUTER_START: "onStart";
|
|
27
|
+
readonly ROUTER_STOP: "onStop";
|
|
28
|
+
readonly TRANSITION_START: "onTransitionStart";
|
|
29
|
+
readonly TRANSITION_LEAVE_APPROVE: "onTransitionLeaveApprove";
|
|
30
|
+
readonly TRANSITION_CANCEL: "onTransitionCancel";
|
|
31
|
+
readonly TRANSITION_SUCCESS: "onTransitionSuccess";
|
|
32
|
+
readonly TRANSITION_ERROR: "onTransitionError";
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Mapping of event keys to event names
|
|
36
|
+
*/
|
|
37
|
+
interface EventToNameMap {
|
|
38
|
+
ROUTER_START: "$start";
|
|
39
|
+
ROUTER_STOP: "$stop";
|
|
40
|
+
TRANSITION_START: "$$start";
|
|
41
|
+
TRANSITION_LEAVE_APPROVE: "$$leaveApprove";
|
|
42
|
+
TRANSITION_CANCEL: "$$cancel";
|
|
43
|
+
TRANSITION_SUCCESS: "$$success";
|
|
44
|
+
TRANSITION_ERROR: "$$error";
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Mapping of event names to plugin method names.
|
|
48
|
+
* Type-level computation from EventToNameMap + EventToPluginMap.
|
|
49
|
+
*/
|
|
50
|
+
type EventMethodMap = { [K in EventsKeys as EventToNameMap[K]]: EventToPluginMap[K]; };
|
|
51
|
+
/**
|
|
52
|
+
* Mapping of error code keys to their values
|
|
53
|
+
*/
|
|
54
|
+
interface ErrorCodeToValueMap {
|
|
55
|
+
ROUTER_NOT_STARTED: "NOT_STARTED";
|
|
56
|
+
NO_START_PATH_OR_STATE: "NO_START_PATH_OR_STATE";
|
|
57
|
+
ROUTER_ALREADY_STARTED: "ALREADY_STARTED";
|
|
58
|
+
ROUTE_NOT_FOUND: "ROUTE_NOT_FOUND";
|
|
59
|
+
SAME_STATES: "SAME_STATES";
|
|
60
|
+
CANNOT_DEACTIVATE: "CANNOT_DEACTIVATE";
|
|
61
|
+
CANNOT_ACTIVATE: "CANNOT_ACTIVATE";
|
|
62
|
+
TRANSITION_ERR: "TRANSITION_ERR";
|
|
63
|
+
TRANSITION_CANCELLED: "CANCELLED";
|
|
64
|
+
ROUTER_DISPOSED: "DISPOSED";
|
|
65
|
+
PLUGIN_CONFLICT: "PLUGIN_CONFLICT";
|
|
66
|
+
CONTEXT_NAMESPACE_ALREADY_CLAIMED: "CONTEXT_NAMESPACE_ALREADY_CLAIMED";
|
|
67
|
+
REENTRANT_NAVIGATION: "REENTRANT_NAVIGATION";
|
|
68
|
+
REENTRANT_TREE_MUTATION: "REENTRANT_TREE_MUTATION";
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
export { ErrorCodeKeys, ErrorCodeToValueMap, ErrorCodeValues, EventMethodMap, EventName, EventToNameMap, EventToPluginMap, EventsKeys, PluginMethod };
|
|
72
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","names":[],"sources":["../../../src/types/constants.ts"],"mappings":";;;;KAGY;;;;KAYA;;;;KAYA;;;;KAYA;;;;KAiBA;;;;UAmBK;WACN;WACA;WACA;WACA;WACA;WACA;WACA;;;;;UAMM;EACf;EACA;EACA;EACA;EACA;EACA;EACA;;;;;;KAOU,oBACT,KAAK,cAAc,eAAe,KAAK,iBAAiB;;;;UAM1C;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","names":[],"sources":["../../../src/types/internal.ts"],"mappings":";;;;;KAwDY,SAAS,SAAS"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
//#region src/types/limits.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Configuration for router resource limits.
|
|
4
|
+
* Controls maximum allowed values for various router operations to prevent resource exhaustion.
|
|
5
|
+
*/
|
|
6
|
+
interface LimitsConfig {
|
|
7
|
+
/**
|
|
8
|
+
* Maximum number of route dependencies allowed.
|
|
9
|
+
* Prevents circular dependency chains and excessive dependency graphs.
|
|
10
|
+
*
|
|
11
|
+
* @default 100
|
|
12
|
+
*/
|
|
13
|
+
maxDependencies: number;
|
|
14
|
+
/**
|
|
15
|
+
* Maximum number of plugins that can be registered.
|
|
16
|
+
* Limits plugin stack depth to prevent performance degradation.
|
|
17
|
+
*
|
|
18
|
+
* @default 50
|
|
19
|
+
*/
|
|
20
|
+
maxPlugins: number;
|
|
21
|
+
/**
|
|
22
|
+
* Maximum number of event listeners per event type.
|
|
23
|
+
* Prevents memory leaks from excessive listener registration.
|
|
24
|
+
*
|
|
25
|
+
* @default 10000
|
|
26
|
+
*/
|
|
27
|
+
maxListeners: number;
|
|
28
|
+
/**
|
|
29
|
+
* Listener count at which a memory leak warning is logged per event type.
|
|
30
|
+
* Set to 0 to disable the warning.
|
|
31
|
+
*
|
|
32
|
+
* @default 1000
|
|
33
|
+
*/
|
|
34
|
+
warnListeners: number;
|
|
35
|
+
/**
|
|
36
|
+
* Maximum number of lifecycle handlers (canActivate/canDeactivate) per route.
|
|
37
|
+
* Controls guard function stack to prevent excessive validation overhead.
|
|
38
|
+
*
|
|
39
|
+
* @default 200
|
|
40
|
+
*/
|
|
41
|
+
maxLifecycleHandlers: number;
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
export { LimitsConfig };
|
|
45
|
+
//# sourceMappingURL=limits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limits.d.ts","names":[],"sources":["../../../src/types/limits.ts"],"mappings":";;;;;UAIiB;;;;;;;EAOf;;;;;;;EAQA;;;;;;;EAQA;;;;;;;EAQA;;;;;;;EAQA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
//#region src/types/route-node-types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Route Node Type Definitions — Minimal Public API.
|
|
4
|
+
*
|
|
5
|
+
* This module exports ONLY the essential types used by real-router:
|
|
6
|
+
* - QueryParamsMode, QueryParamsOptions
|
|
7
|
+
* - RouteParams, RouteTreeState
|
|
8
|
+
*
|
|
9
|
+
* These types are copied from route-node to avoid circular dependencies.
|
|
10
|
+
*
|
|
11
|
+
* @module route-node-types
|
|
12
|
+
*/
|
|
13
|
+
type ArrayFormat = "none" | "brackets" | "index" | "comma";
|
|
14
|
+
type BooleanFormat = "none" | "auto" | "empty-true";
|
|
15
|
+
type NullFormat = "default" | "hidden";
|
|
16
|
+
type NumberFormat = "none" | "auto";
|
|
17
|
+
/**
|
|
18
|
+
* Options for query parameter parsing and building.
|
|
19
|
+
*/
|
|
20
|
+
interface QueryParamsOptions {
|
|
21
|
+
arrayFormat?: ArrayFormat;
|
|
22
|
+
booleanFormat?: BooleanFormat;
|
|
23
|
+
nullFormat?: NullFormat;
|
|
24
|
+
numberFormat?: NumberFormat;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Controls how query parameters are handled during matching.
|
|
28
|
+
*/
|
|
29
|
+
type QueryParamsMode = "default" | "strict" | "loose";
|
|
30
|
+
type ParamSource = "url" | "query";
|
|
31
|
+
type ParamTypeMap = Record<string, ParamSource>;
|
|
32
|
+
type RouteTreeStateMeta = Record<string, ParamTypeMap>;
|
|
33
|
+
interface RouteParams {
|
|
34
|
+
[key: string]: string | string[] | number | number[] | boolean | boolean[] | RouteParams | RouteParams[] | Record<string, string | number | boolean> | null | undefined;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Complete state representation of a matched route.
|
|
38
|
+
*/
|
|
39
|
+
interface RouteTreeState<P extends Record<string, unknown> = RouteParams> {
|
|
40
|
+
name: string;
|
|
41
|
+
params: P;
|
|
42
|
+
meta: RouteTreeStateMeta;
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
export { QueryParamsMode, QueryParamsOptions, RouteParams, RouteTreeState };
|
|
46
|
+
//# sourceMappingURL=route-node-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-node-types.d.ts","names":[],"sources":["../../../src/types/route-node-types.ts"],"mappings":";;;;;;;;;;;;KAgBK;KACA;KACA;KACA;;;;UAKY;EACf,cAAc;EACd,gBAAgB;EAChB,aAAa;EACb,eAAe;;;;;KAUL;KAMP;KACA,eAAe,eAAe;KAC9B,qBAAqB,eAAe;UAExB;GACd,4EAOG,cACA,gBACA;;;;;UAQW,eACf,UAAU,0BAA0B;EAEpC;EACA,QAAQ;EACR,MAAM"}
|