@real-router/core 0.36.1 → 0.36.2

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.
Files changed (35) hide show
  1. package/dist/cjs/api.js +1 -1
  2. package/dist/cjs/api.js.map +1 -1
  3. package/dist/cjs/index.js +1 -1
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/metafile-cjs.json +1 -1
  6. package/dist/esm/api.mjs +1 -1
  7. package/dist/esm/api.mjs.map +1 -1
  8. package/dist/esm/chunk-PKKD6URG.mjs +1 -0
  9. package/dist/esm/chunk-PKKD6URG.mjs.map +1 -0
  10. package/dist/esm/index.mjs +1 -1
  11. package/dist/esm/metafile-esm.json +1 -1
  12. package/package.json +4 -4
  13. package/src/Router.ts +33 -12
  14. package/src/api/getPluginApi.ts +10 -4
  15. package/src/constants.ts +2 -0
  16. package/src/fsm/routerFSM.ts +2 -21
  17. package/src/internals.ts +21 -2
  18. package/src/namespaces/EventBusNamespace/EventBusNamespace.ts +35 -39
  19. package/src/namespaces/NavigationNamespace/NavigationNamespace.ts +221 -153
  20. package/src/namespaces/NavigationNamespace/constants.ts +55 -0
  21. package/src/namespaces/NavigationNamespace/transition/completeTransition.ts +100 -0
  22. package/src/namespaces/NavigationNamespace/transition/errorHandling.ts +34 -0
  23. package/src/namespaces/NavigationNamespace/transition/guardPhase.ts +214 -0
  24. package/src/namespaces/NavigationNamespace/types.ts +14 -30
  25. package/src/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.ts +6 -1
  26. package/src/namespaces/RoutesNamespace/RoutesNamespace.ts +36 -35
  27. package/src/namespaces/RoutesNamespace/forwardToValidation.ts +2 -5
  28. package/src/namespaces/RoutesNamespace/types.ts +1 -2
  29. package/src/namespaces/StateNamespace/StateNamespace.ts +13 -17
  30. package/src/transitionPath.ts +68 -39
  31. package/src/wiring/RouterWiringBuilder.ts +8 -11
  32. package/dist/esm/chunk-HZ7RFKT5.mjs +0 -1
  33. package/dist/esm/chunk-HZ7RFKT5.mjs.map +0 -1
  34. package/src/namespaces/NavigationNamespace/transition/executeLifecycleGuards.ts +0 -52
  35. package/src/namespaces/NavigationNamespace/transition/index.ts +0 -93
@@ -1 +1 @@
1
- import{Router as e}from"./chunk-HZ7RFKT5.mjs";export{Router,RouterError,UNKNOWN_ROUTE,constants,errorCodes,events}from"./chunk-HZ7RFKT5.mjs";var t=(t=[],r={},a={})=>new e(t,r,a),r=new WeakMap,a=e=>{let t=r.get(e);return t||(t=Object.freeze({navigate:e.navigate,getState:e.getState,isActiveRoute:e.isActiveRoute,canNavigateTo:e.canNavigateTo,subscribe:e.subscribe}),r.set(e,t)),t};export{t as createRouter,a as getNavigator};//# sourceMappingURL=index.mjs.map
1
+ import{Router as e}from"./chunk-PKKD6URG.mjs";export{Router,RouterError,UNKNOWN_ROUTE,constants,errorCodes,events}from"./chunk-PKKD6URG.mjs";var t=(t=[],r={},a={})=>new e(t,r,a),r=new WeakMap,a=e=>{let t=r.get(e);return t||(t=Object.freeze({navigate:e.navigate,getState:e.getState,isActiveRoute:e.isActiveRoute,canNavigateTo:e.canNavigateTo,subscribe:e.subscribe}),r.set(e,t)),t};export{t as createRouter,a as getNavigator};//# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"inputs":{"../event-emitter/dist/esm/index.mjs":{"bytes":1617,"imports":[],"format":"esm"},"../type-guards/dist/esm/index.mjs":{"bytes":3451,"imports":[],"format":"esm"},"src/constants.ts":{"bytes":4078,"imports":[],"format":"esm"},"src/fsm/routerFSM.ts":{"bytes":3369,"imports":[{"path":"@real-router/fsm","kind":"import-statement","external":true}],"format":"esm"},"src/fsm/index.ts":{"bytes":188,"imports":[{"path":"src/fsm/routerFSM.ts","kind":"import-statement","original":"./routerFSM"}],"format":"esm"},"src/helpers.ts":{"bytes":5658,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"./constants"},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"}],"format":"esm"},"src/internals.ts":{"bytes":4548,"imports":[],"format":"esm"},"src/namespaces/DependenciesNamespace/dependenciesStore.ts":{"bytes":828,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"}],"format":"esm"},"src/namespaces/DependenciesNamespace/index.ts":{"bytes":190,"imports":[{"path":"src/namespaces/DependenciesNamespace/dependenciesStore.ts","kind":"import-statement","original":"./dependenciesStore"}],"format":"esm"},"src/namespaces/OptionsNamespace/constants.ts":{"bytes":1156,"imports":[],"format":"esm"},"src/namespaces/OptionsNamespace/helpers.ts":{"bytes":1627,"imports":[],"format":"esm"},"src/namespaces/OptionsNamespace/validators.ts":{"bytes":6937,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/namespaces/OptionsNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"}],"format":"esm"},"src/namespaces/OptionsNamespace/OptionsNamespace.ts":{"bytes":1613,"imports":[{"path":"src/namespaces/OptionsNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/namespaces/OptionsNamespace/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/namespaces/OptionsNamespace/validators.ts","kind":"import-statement","original":"./validators"}],"format":"esm"},"src/namespaces/OptionsNamespace/index.ts":{"bytes":265,"imports":[{"path":"src/namespaces/OptionsNamespace/OptionsNamespace.ts","kind":"import-statement","original":"./OptionsNamespace"},{"path":"src/namespaces/OptionsNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/namespaces/OptionsNamespace/helpers.ts","kind":"import-statement","original":"./helpers"}],"format":"esm"},"src/namespaces/StateNamespace/helpers.ts":{"bytes":1045,"imports":[],"format":"esm"},"src/namespaces/StateNamespace/StateNamespace.ts":{"bytes":7317,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/namespaces/StateNamespace/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/helpers.ts","kind":"import-statement","original":"../../helpers"}],"format":"esm"},"src/namespaces/StateNamespace/index.ts":{"bytes":168,"imports":[{"path":"src/namespaces/StateNamespace/StateNamespace.ts","kind":"import-statement","original":"./StateNamespace"}],"format":"esm"},"src/namespaces/PluginsNamespace/constants.ts":{"bytes":1120,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"}],"format":"esm"},"src/namespaces/PluginsNamespace/validators.ts":{"bytes":2525,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/namespaces/PluginsNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"}],"format":"esm"},"src/namespaces/PluginsNamespace/PluginsNamespace.ts":{"bytes":9397,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"src/namespaces/PluginsNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/namespaces/PluginsNamespace/validators.ts","kind":"import-statement","original":"./validators"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/helpers.ts","kind":"import-statement","original":"../../helpers"}],"format":"esm"},"src/namespaces/PluginsNamespace/index.ts":{"bytes":230,"imports":[{"path":"src/namespaces/PluginsNamespace/PluginsNamespace.ts","kind":"import-statement","original":"./PluginsNamespace"},{"path":"src/namespaces/PluginsNamespace/constants.ts","kind":"import-statement","original":"./constants"}],"format":"esm"},"src/namespaces/RouteLifecycleNamespace/validators.ts":{"bytes":1873,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"}],"format":"esm"},"src/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.ts":{"bytes":12937,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/namespaces/RouteLifecycleNamespace/validators.ts","kind":"import-statement","original":"./validators"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/helpers.ts","kind":"import-statement","original":"../../helpers"}],"format":"esm"},"src/namespaces/RouteLifecycleNamespace/index.ts":{"bytes":195,"imports":[{"path":"src/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.ts","kind":"import-statement","original":"./RouteLifecycleNamespace"}],"format":"esm"},"src/namespaces/RoutesNamespace/constants.ts":{"bytes":503,"imports":[],"format":"esm"},"src/namespaces/RoutesNamespace/helpers.ts":{"bytes":3038,"imports":[],"format":"esm"},"../path-matcher/dist/esm/index.mjs":{"bytes":9525,"imports":[],"format":"esm"},"../search-params/dist/esm/index.mjs":{"bytes":3813,"imports":[],"format":"esm"},"../route-tree/dist/esm/index.mjs":{"bytes":6514,"imports":[{"path":"../path-matcher/dist/esm/index.mjs","kind":"import-statement","original":"path-matcher"},{"path":"../search-params/dist/esm/index.mjs","kind":"import-statement","original":"search-params"}],"format":"esm"},"src/namespaces/RoutesNamespace/forwardToValidation.ts":{"bytes":11832,"imports":[{"path":"../route-tree/dist/esm/index.mjs","kind":"import-statement","original":"route-tree"},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"}],"format":"esm"},"src/namespaces/RoutesNamespace/validators.ts":{"bytes":16834,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"../route-tree/dist/esm/index.mjs","kind":"import-statement","original":"route-tree"},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/namespaces/RoutesNamespace/forwardToValidation.ts","kind":"import-statement","original":"./forwardToValidation"}],"format":"esm"},"src/namespaces/RoutesNamespace/routesStore.ts":{"bytes":11975,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"../route-tree/dist/esm/index.mjs","kind":"import-statement","original":"route-tree"},{"path":"src/namespaces/RoutesNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/namespaces/RoutesNamespace/forwardToValidation.ts","kind":"import-statement","original":"./forwardToValidation"},{"path":"src/namespaces/RoutesNamespace/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/namespaces/RoutesNamespace/validators.ts","kind":"import-statement","original":"./validators"}],"format":"esm"},"src/transitionPath.ts":{"bytes":12824,"imports":[],"format":"esm"},"src/namespaces/RoutesNamespace/RoutesNamespace.ts":{"bytes":15382,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/namespaces/RoutesNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/namespaces/RoutesNamespace/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/namespaces/RoutesNamespace/routesStore.ts","kind":"import-statement","original":"./routesStore"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/transitionPath.ts","kind":"import-statement","original":"../../transitionPath"}],"format":"esm"},"src/namespaces/RoutesNamespace/index.ts":{"bytes":347,"imports":[{"path":"src/namespaces/RoutesNamespace/RoutesNamespace.ts","kind":"import-statement","original":"./RoutesNamespace"},{"path":"src/namespaces/RoutesNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/namespaces/RoutesNamespace/helpers.ts","kind":"import-statement","original":"./helpers"}],"format":"esm"},"src/RouterError.ts":{"bytes":10101,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers"}],"format":"esm"},"src/namespaces/NavigationNamespace/transition/errorHandling.ts":{"bytes":2613,"imports":[{"path":"src/RouterError.ts","kind":"import-statement","original":"../../../RouterError"}],"format":"esm"},"src/namespaces/NavigationNamespace/transition/executeLifecycleGuards.ts":{"bytes":1575,"imports":[{"path":"src/namespaces/NavigationNamespace/transition/errorHandling.ts","kind":"import-statement","original":"./errorHandling"},{"path":"src/constants.ts","kind":"import-statement","original":"../../../constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../../../RouterError"}],"format":"esm"},"src/namespaces/NavigationNamespace/transition/index.ts":{"bytes":2518,"imports":[{"path":"src/namespaces/NavigationNamespace/transition/executeLifecycleGuards.ts","kind":"import-statement","original":"./executeLifecycleGuards"},{"path":"src/constants.ts","kind":"import-statement","original":"../../../constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../../../RouterError"},{"path":"src/transitionPath.ts","kind":"import-statement","original":"../../../transitionPath"}],"format":"esm"},"src/namespaces/NavigationNamespace/validators.ts":{"bytes":1409,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"}],"format":"esm"},"src/namespaces/NavigationNamespace/NavigationNamespace.ts":{"bytes":8913,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"src/namespaces/NavigationNamespace/transition/index.ts","kind":"import-statement","original":"./transition"},{"path":"src/namespaces/NavigationNamespace/validators.ts","kind":"import-statement","original":"./validators"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../../RouterError"},{"path":"src/transitionPath.ts","kind":"import-statement","original":"../../transitionPath"}],"format":"esm"},"src/namespaces/NavigationNamespace/index.ts":{"bytes":179,"imports":[{"path":"src/namespaces/NavigationNamespace/NavigationNamespace.ts","kind":"import-statement","original":"./NavigationNamespace"}],"format":"esm"},"src/namespaces/RouterLifecycleNamespace/RouterLifecycleNamespace.ts":{"bytes":2863,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../../RouterError"}],"format":"esm"},"src/namespaces/RouterLifecycleNamespace/index.ts":{"bytes":199,"imports":[{"path":"src/namespaces/RouterLifecycleNamespace/RouterLifecycleNamespace.ts","kind":"import-statement","original":"./RouterLifecycleNamespace"}],"format":"esm"},"src/namespaces/EventBusNamespace/EventBusNamespace.ts":{"bytes":6724,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/fsm/index.ts","kind":"import-statement","original":"../../fsm"}],"format":"esm"},"src/namespaces/EventBusNamespace/index.ts":{"bytes":166,"imports":[{"path":"src/namespaces/EventBusNamespace/EventBusNamespace.ts","kind":"import-statement","original":"./EventBusNamespace"}],"format":"esm"},"src/namespaces/index.ts":{"bytes":899,"imports":[{"path":"src/namespaces/DependenciesNamespace/index.ts","kind":"import-statement","original":"./DependenciesNamespace"},{"path":"src/namespaces/OptionsNamespace/index.ts","kind":"import-statement","original":"./OptionsNamespace"},{"path":"src/namespaces/StateNamespace/index.ts","kind":"import-statement","original":"./StateNamespace"},{"path":"src/namespaces/PluginsNamespace/index.ts","kind":"import-statement","original":"./PluginsNamespace"},{"path":"src/namespaces/RouteLifecycleNamespace/index.ts","kind":"import-statement","original":"./RouteLifecycleNamespace"},{"path":"src/namespaces/RoutesNamespace/index.ts","kind":"import-statement","original":"./RoutesNamespace"},{"path":"src/namespaces/NavigationNamespace/index.ts","kind":"import-statement","original":"./NavigationNamespace"},{"path":"src/namespaces/RouterLifecycleNamespace/index.ts","kind":"import-statement","original":"./RouterLifecycleNamespace"},{"path":"src/namespaces/EventBusNamespace/index.ts","kind":"import-statement","original":"./EventBusNamespace"}],"format":"esm"},"src/namespaces/DependenciesNamespace/validators.ts":{"bytes":2852,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"}],"format":"esm"},"src/namespaces/RouterLifecycleNamespace/constants.ts":{"bytes":1142,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../../RouterError"}],"format":"esm"},"src/typeGuards.ts":{"bytes":1830,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"}],"format":"esm"},"src/wiring/RouterWiringBuilder.ts":{"bytes":8896,"imports":[{"path":"src/internals.ts","kind":"import-statement","original":"../internals"},{"path":"src/namespaces/OptionsNamespace/index.ts","kind":"import-statement","original":"../namespaces/OptionsNamespace"},{"path":"src/namespaces/RoutesNamespace/validators.ts","kind":"import-statement","original":"../namespaces/RoutesNamespace/validators"}],"format":"esm"},"src/wiring/wireRouter.ts":{"bytes":1058,"imports":[],"format":"esm"},"src/wiring/index.ts":{"bytes":190,"imports":[{"path":"src/wiring/RouterWiringBuilder.ts","kind":"import-statement","original":"./RouterWiringBuilder"},{"path":"src/wiring/wireRouter.ts","kind":"import-statement","original":"./wireRouter"}],"format":"esm"},"src/Router.ts":{"bytes":21303,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"../event-emitter/dist/esm/index.mjs","kind":"import-statement","original":"event-emitter"},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/fsm/index.ts","kind":"import-statement","original":"./fsm"},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/internals.ts","kind":"import-statement","original":"./internals"},{"path":"src/namespaces/index.ts","kind":"import-statement","original":"./namespaces"},{"path":"src/namespaces/DependenciesNamespace/validators.ts","kind":"import-statement","original":"./namespaces/DependenciesNamespace/validators"},{"path":"src/namespaces/RouterLifecycleNamespace/constants.ts","kind":"import-statement","original":"./namespaces/RouterLifecycleNamespace/constants"},{"path":"src/namespaces/RoutesNamespace/validators.ts","kind":"import-statement","original":"./namespaces/RoutesNamespace/validators"},{"path":"src/RouterError.ts","kind":"import-statement","original":"./RouterError"},{"path":"src/transitionPath.ts","kind":"import-statement","original":"./transitionPath"},{"path":"src/typeGuards.ts","kind":"import-statement","original":"./typeGuards"},{"path":"src/wiring/index.ts","kind":"import-statement","original":"./wiring"}],"format":"esm"},"src/createRouter.ts":{"bytes":897,"imports":[{"path":"src/Router.ts","kind":"import-statement","original":"./Router"}],"format":"esm"},"src/getNavigator.ts":{"bytes":605,"imports":[],"format":"esm"},"src/index.ts":{"bytes":1031,"imports":[{"path":"src/Router.ts","kind":"import-statement","original":"./Router"},{"path":"src/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"./RouterError"},{"path":"src/createRouter.ts","kind":"import-statement","original":"./createRouter"},{"path":"src/getNavigator.ts","kind":"import-statement","original":"./getNavigator"}],"format":"esm"},"src/api/helpers.ts":{"bytes":277,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../RouterError"}],"format":"esm"},"src/namespaces/EventBusNamespace/validators.ts":{"bytes":961,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"}],"format":"esm"},"src/namespaces/StateNamespace/validators.ts":{"bytes":1240,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"}],"format":"esm"},"src/api/getPluginApi.ts":{"bytes":4258,"imports":[{"path":"src/api/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/constants.ts","kind":"import-statement","original":"../constants"},{"path":"src/internals.ts","kind":"import-statement","original":"../internals"},{"path":"src/namespaces/EventBusNamespace/validators.ts","kind":"import-statement","original":"../namespaces/EventBusNamespace/validators"},{"path":"src/namespaces/RoutesNamespace/validators.ts","kind":"import-statement","original":"../namespaces/RoutesNamespace/validators"},{"path":"src/namespaces/StateNamespace/validators.ts","kind":"import-statement","original":"../namespaces/StateNamespace/validators"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../RouterError"}],"format":"esm"},"src/api/getRoutesApi.ts":{"bytes":17668,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/api/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/internals.ts","kind":"import-statement","original":"../internals"},{"path":"src/namespaces/RoutesNamespace/helpers.ts","kind":"import-statement","original":"../namespaces/RoutesNamespace/helpers"},{"path":"src/namespaces/RoutesNamespace/routesStore.ts","kind":"import-statement","original":"../namespaces/RoutesNamespace/routesStore"},{"path":"src/namespaces/RoutesNamespace/validators.ts","kind":"import-statement","original":"../namespaces/RoutesNamespace/validators"}],"format":"esm"},"src/api/getDependenciesApi.ts":{"bytes":6039,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/api/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/helpers.ts","kind":"import-statement","original":"../helpers"},{"path":"src/internals.ts","kind":"import-statement","original":"../internals"},{"path":"src/namespaces/DependenciesNamespace/validators.ts","kind":"import-statement","original":"../namespaces/DependenciesNamespace/validators"}],"format":"esm"},"src/api/getLifecycleApi.ts":{"bytes":1795,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/api/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/internals.ts","kind":"import-statement","original":"../internals"},{"path":"src/namespaces/RouteLifecycleNamespace/validators.ts","kind":"import-statement","original":"../namespaces/RouteLifecycleNamespace/validators"}],"format":"esm"},"src/api/cloneRouter.ts":{"bytes":3216,"imports":[{"path":"../route-tree/dist/esm/index.mjs","kind":"import-statement","original":"route-tree"},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/constants.ts","kind":"import-statement","original":"../constants"},{"path":"src/internals.ts","kind":"import-statement","original":"../internals"},{"path":"src/Router.ts","kind":"import-statement","original":"../Router"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../RouterError"},{"path":"src/api/getLifecycleApi.ts","kind":"import-statement","original":"./getLifecycleApi"}],"format":"esm"},"src/api/index.ts":{"bytes":349,"imports":[{"path":"src/api/getPluginApi.ts","kind":"import-statement","original":"./getPluginApi"},{"path":"src/api/getRoutesApi.ts","kind":"import-statement","original":"./getRoutesApi"},{"path":"src/api/getDependenciesApi.ts","kind":"import-statement","original":"./getDependenciesApi"},{"path":"src/api/getLifecycleApi.ts","kind":"import-statement","original":"./getLifecycleApi"},{"path":"src/api/cloneRouter.ts","kind":"import-statement","original":"./cloneRouter"}],"format":"esm"}},"outputs":{"dist/esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2150},"dist/esm/index.mjs":{"imports":[{"path":"dist/esm/chunk-HZ7RFKT5.mjs","kind":"import-statement"}],"exports":["Router","RouterError","UNKNOWN_ROUTE","constants","createRouter","errorCodes","events","getNavigator"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/createRouter.ts":{"bytesInOutput":126},"src/getNavigator.ts":{"bytesInOutput":390}},"bytes":804},"dist/esm/api.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":52431},"dist/esm/api.mjs":{"imports":[{"path":"dist/esm/chunk-HZ7RFKT5.mjs","kind":"import-statement"},{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"@real-router/logger","kind":"import-statement","external":true}],"exports":["cloneRouter","getDependenciesApi","getLifecycleApi","getPluginApi","getRoutesApi"],"entryPoint":"src/api/index.ts","inputs":{"src/api/helpers.ts":{"bytesInOutput":122},"src/namespaces/EventBusNamespace/validators.ts":{"bytesInOutput":369},"src/namespaces/StateNamespace/validators.ts":{"bytesInOutput":659},"src/api/getPluginApi.ts":{"bytesInOutput":3370},"src/api/index.ts":{"bytesInOutput":0},"src/api/getRoutesApi.ts":{"bytesInOutput":10690},"src/api/getDependenciesApi.ts":{"bytesInOutput":4180},"src/api/getLifecycleApi.ts":{"bytesInOutput":1147},"src/api/cloneRouter.ts":{"bytesInOutput":2365}},"bytes":24447},"dist/esm/chunk-HZ7RFKT5.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":297491},"dist/esm/chunk-HZ7RFKT5.mjs":{"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"@real-router/fsm","kind":"import-statement","external":true},{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"@real-router/logger","kind":"import-statement","external":true}],"exports":["Router","RouterError","UNKNOWN_ROUTE","b","clearConfigEntries","clearRouteData","computeThresholds","constants","errorCodes","events","f","g","getInternals","j","refreshForwardMap","registerAllRouteHandlers","removeFromDefinitions","s","sanitizeRoute","throwIfInternalRoute","throwIfInternalRouteInArray","validEventNames","validateAddRouteArgs","validateClearRoutes","validateDependenciesObject","validateDependencyExists","validateDependencyLimit","validateDependencyName","validateHandler","validateMatchPathArgs","validateParentOption","validateRemoveRoute","validateRemoveRouteArgs","validateSetDependencyArgs","validateSetRootPathArgs","validateStateBuilderArgs","validateUpdateRoute","validateUpdateRouteBasicArgs","validateUpdateRoutePropertyTypes"],"inputs":{"src/constants.ts":{"bytesInOutput":2595},"../type-guards/dist/esm/index.mjs":{"bytesInOutput":3182},"src/helpers.ts":{"bytesInOutput":1794},"src/RouterError.ts":{"bytesInOutput":8509},"src/Router.ts":{"bytesInOutput":14255},"../event-emitter/dist/esm/index.mjs":{"bytesInOutput":2382},"src/fsm/routerFSM.ts":{"bytesInOutput":1269},"src/fsm/index.ts":{"bytesInOutput":0},"src/internals.ts":{"bytesInOutput":851},"src/namespaces/DependenciesNamespace/dependenciesStore.ts":{"bytesInOutput":336},"src/namespaces/DependenciesNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/index.ts":{"bytesInOutput":0},"src/namespaces/OptionsNamespace/constants.ts":{"bytesInOutput":705},"src/namespaces/OptionsNamespace/helpers.ts":{"bytesInOutput":385},"src/namespaces/OptionsNamespace/validators.ts":{"bytesInOutput":4294},"src/namespaces/OptionsNamespace/OptionsNamespace.ts":{"bytesInOutput":930},"src/namespaces/OptionsNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/StateNamespace/helpers.ts":{"bytesInOutput":580},"src/namespaces/StateNamespace/StateNamespace.ts":{"bytesInOutput":5352},"src/namespaces/StateNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/PluginsNamespace/PluginsNamespace.ts":{"bytesInOutput":7151},"src/namespaces/PluginsNamespace/constants.ts":{"bytesInOutput":482},"src/namespaces/PluginsNamespace/validators.ts":{"bytesInOutput":1421},"src/namespaces/PluginsNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.ts":{"bytesInOutput":10431},"src/namespaces/RouteLifecycleNamespace/validators.ts":{"bytesInOutput":898},"src/namespaces/RouteLifecycleNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/RoutesNamespace/constants.ts":{"bytesInOutput":82},"src/namespaces/RoutesNamespace/helpers.ts":{"bytesInOutput":1653},"src/namespaces/RoutesNamespace/routesStore.ts":{"bytesInOutput":6346},"../path-matcher/dist/esm/index.mjs":{"bytesInOutput":13115},"../search-params/dist/esm/index.mjs":{"bytesInOutput":4202},"../route-tree/dist/esm/index.mjs":{"bytesInOutput":8191},"src/namespaces/RoutesNamespace/forwardToValidation.ts":{"bytesInOutput":7015},"src/namespaces/RoutesNamespace/validators.ts":{"bytesInOutput":8653},"src/transitionPath.ts":{"bytesInOutput":4084},"src/namespaces/RoutesNamespace/RoutesNamespace.ts":{"bytesInOutput":11313},"src/namespaces/RoutesNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/NavigationNamespace/NavigationNamespace.ts":{"bytesInOutput":7266},"src/namespaces/NavigationNamespace/transition/errorHandling.ts":{"bytesInOutput":949},"src/namespaces/NavigationNamespace/transition/executeLifecycleGuards.ts":{"bytesInOutput":855},"src/namespaces/NavigationNamespace/transition/index.ts":{"bytesInOutput":1605},"src/namespaces/NavigationNamespace/validators.ts":{"bytesInOutput":650},"src/namespaces/NavigationNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/RouterLifecycleNamespace/RouterLifecycleNamespace.ts":{"bytesInOutput":2116},"src/namespaces/RouterLifecycleNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/EventBusNamespace/EventBusNamespace.ts":{"bytesInOutput":4918},"src/namespaces/EventBusNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/DependenciesNamespace/validators.ts":{"bytesInOutput":1493},"src/namespaces/RouterLifecycleNamespace/constants.ts":{"bytesInOutput":91},"src/typeGuards.ts":{"bytesInOutput":1154},"src/wiring/RouterWiringBuilder.ts":{"bytesInOutput":6552},"src/wiring/index.ts":{"bytesInOutput":0},"src/wiring/wireRouter.ts":{"bytesInOutput":240}},"bytes":163698}}}
1
+ {"inputs":{"../event-emitter/dist/esm/index.mjs":{"bytes":1750,"imports":[],"format":"esm"},"../type-guards/dist/esm/index.mjs":{"bytes":3451,"imports":[],"format":"esm"},"src/constants.ts":{"bytes":4159,"imports":[],"format":"esm"},"src/fsm/routerFSM.ts":{"bytes":3088,"imports":[{"path":"@real-router/fsm","kind":"import-statement","external":true}],"format":"esm"},"src/fsm/index.ts":{"bytes":188,"imports":[{"path":"src/fsm/routerFSM.ts","kind":"import-statement","original":"./routerFSM"}],"format":"esm"},"src/helpers.ts":{"bytes":5658,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"./constants"},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"}],"format":"esm"},"src/internals.ts":{"bytes":5123,"imports":[],"format":"esm"},"src/namespaces/DependenciesNamespace/dependenciesStore.ts":{"bytes":828,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"}],"format":"esm"},"src/namespaces/DependenciesNamespace/index.ts":{"bytes":190,"imports":[{"path":"src/namespaces/DependenciesNamespace/dependenciesStore.ts","kind":"import-statement","original":"./dependenciesStore"}],"format":"esm"},"src/namespaces/OptionsNamespace/constants.ts":{"bytes":1156,"imports":[],"format":"esm"},"src/namespaces/OptionsNamespace/helpers.ts":{"bytes":1627,"imports":[],"format":"esm"},"src/namespaces/OptionsNamespace/validators.ts":{"bytes":6937,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/namespaces/OptionsNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"}],"format":"esm"},"src/namespaces/OptionsNamespace/OptionsNamespace.ts":{"bytes":1613,"imports":[{"path":"src/namespaces/OptionsNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/namespaces/OptionsNamespace/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/namespaces/OptionsNamespace/validators.ts","kind":"import-statement","original":"./validators"}],"format":"esm"},"src/namespaces/OptionsNamespace/index.ts":{"bytes":265,"imports":[{"path":"src/namespaces/OptionsNamespace/OptionsNamespace.ts","kind":"import-statement","original":"./OptionsNamespace"},{"path":"src/namespaces/OptionsNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/namespaces/OptionsNamespace/helpers.ts","kind":"import-statement","original":"./helpers"}],"format":"esm"},"src/namespaces/StateNamespace/helpers.ts":{"bytes":1045,"imports":[],"format":"esm"},"src/namespaces/StateNamespace/StateNamespace.ts":{"bytes":7409,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/namespaces/StateNamespace/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/helpers.ts","kind":"import-statement","original":"../../helpers"}],"format":"esm"},"src/namespaces/StateNamespace/index.ts":{"bytes":168,"imports":[{"path":"src/namespaces/StateNamespace/StateNamespace.ts","kind":"import-statement","original":"./StateNamespace"}],"format":"esm"},"src/namespaces/PluginsNamespace/constants.ts":{"bytes":1120,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"}],"format":"esm"},"src/namespaces/PluginsNamespace/validators.ts":{"bytes":2525,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/namespaces/PluginsNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"}],"format":"esm"},"src/namespaces/PluginsNamespace/PluginsNamespace.ts":{"bytes":9397,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"src/namespaces/PluginsNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/namespaces/PluginsNamespace/validators.ts","kind":"import-statement","original":"./validators"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/helpers.ts","kind":"import-statement","original":"../../helpers"}],"format":"esm"},"src/namespaces/PluginsNamespace/index.ts":{"bytes":230,"imports":[{"path":"src/namespaces/PluginsNamespace/PluginsNamespace.ts","kind":"import-statement","original":"./PluginsNamespace"},{"path":"src/namespaces/PluginsNamespace/constants.ts","kind":"import-statement","original":"./constants"}],"format":"esm"},"src/namespaces/RouteLifecycleNamespace/validators.ts":{"bytes":1873,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"}],"format":"esm"},"src/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.ts":{"bytes":13116,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/namespaces/RouteLifecycleNamespace/validators.ts","kind":"import-statement","original":"./validators"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/helpers.ts","kind":"import-statement","original":"../../helpers"}],"format":"esm"},"src/namespaces/RouteLifecycleNamespace/index.ts":{"bytes":195,"imports":[{"path":"src/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.ts","kind":"import-statement","original":"./RouteLifecycleNamespace"}],"format":"esm"},"src/namespaces/RoutesNamespace/constants.ts":{"bytes":503,"imports":[],"format":"esm"},"src/namespaces/RoutesNamespace/helpers.ts":{"bytes":3038,"imports":[],"format":"esm"},"../path-matcher/dist/esm/index.mjs":{"bytes":9525,"imports":[],"format":"esm"},"../search-params/dist/esm/index.mjs":{"bytes":3813,"imports":[],"format":"esm"},"../route-tree/dist/esm/index.mjs":{"bytes":6514,"imports":[{"path":"../path-matcher/dist/esm/index.mjs","kind":"import-statement","original":"path-matcher"},{"path":"../search-params/dist/esm/index.mjs","kind":"import-statement","original":"search-params"}],"format":"esm"},"src/namespaces/RoutesNamespace/forwardToValidation.ts":{"bytes":11766,"imports":[{"path":"../route-tree/dist/esm/index.mjs","kind":"import-statement","original":"route-tree"},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"}],"format":"esm"},"src/namespaces/RoutesNamespace/validators.ts":{"bytes":16834,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"../route-tree/dist/esm/index.mjs","kind":"import-statement","original":"route-tree"},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/namespaces/RoutesNamespace/forwardToValidation.ts","kind":"import-statement","original":"./forwardToValidation"}],"format":"esm"},"src/namespaces/RoutesNamespace/routesStore.ts":{"bytes":11975,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"../route-tree/dist/esm/index.mjs","kind":"import-statement","original":"route-tree"},{"path":"src/namespaces/RoutesNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/namespaces/RoutesNamespace/forwardToValidation.ts","kind":"import-statement","original":"./forwardToValidation"},{"path":"src/namespaces/RoutesNamespace/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/namespaces/RoutesNamespace/validators.ts","kind":"import-statement","original":"./validators"}],"format":"esm"},"src/transitionPath.ts":{"bytes":13289,"imports":[],"format":"esm"},"src/namespaces/RoutesNamespace/RoutesNamespace.ts":{"bytes":15363,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/namespaces/RoutesNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/namespaces/RoutesNamespace/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/namespaces/RoutesNamespace/routesStore.ts","kind":"import-statement","original":"./routesStore"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/transitionPath.ts","kind":"import-statement","original":"../../transitionPath"}],"format":"esm"},"src/namespaces/RoutesNamespace/index.ts":{"bytes":347,"imports":[{"path":"src/namespaces/RoutesNamespace/RoutesNamespace.ts","kind":"import-statement","original":"./RoutesNamespace"},{"path":"src/namespaces/RoutesNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/namespaces/RoutesNamespace/helpers.ts","kind":"import-statement","original":"./helpers"}],"format":"esm"},"src/RouterError.ts":{"bytes":10101,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers"}],"format":"esm"},"src/namespaces/NavigationNamespace/constants.ts":{"bytes":2358,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../../RouterError"}],"format":"esm"},"src/namespaces/NavigationNamespace/transition/completeTransition.ts":{"bytes":2242,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../../../constants"},{"path":"src/helpers.ts","kind":"import-statement","original":"../../../helpers"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../../../RouterError"}],"format":"esm"},"src/namespaces/NavigationNamespace/transition/errorHandling.ts":{"bytes":3458,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../../../constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../../../RouterError"}],"format":"esm"},"src/namespaces/NavigationNamespace/transition/guardPhase.ts":{"bytes":4634,"imports":[{"path":"src/namespaces/NavigationNamespace/transition/errorHandling.ts","kind":"import-statement","original":"./errorHandling"},{"path":"src/constants.ts","kind":"import-statement","original":"../../../constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../../../RouterError"}],"format":"esm"},"src/namespaces/NavigationNamespace/validators.ts":{"bytes":1409,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"}],"format":"esm"},"src/namespaces/NavigationNamespace/NavigationNamespace.ts":{"bytes":11239,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"src/namespaces/NavigationNamespace/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/namespaces/NavigationNamespace/transition/completeTransition.ts","kind":"import-statement","original":"./transition/completeTransition"},{"path":"src/namespaces/NavigationNamespace/transition/errorHandling.ts","kind":"import-statement","original":"./transition/errorHandling"},{"path":"src/namespaces/NavigationNamespace/transition/guardPhase.ts","kind":"import-statement","original":"./transition/guardPhase"},{"path":"src/namespaces/NavigationNamespace/validators.ts","kind":"import-statement","original":"./validators"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../../RouterError"},{"path":"src/transitionPath.ts","kind":"import-statement","original":"../../transitionPath"}],"format":"esm"},"src/namespaces/NavigationNamespace/index.ts":{"bytes":179,"imports":[{"path":"src/namespaces/NavigationNamespace/NavigationNamespace.ts","kind":"import-statement","original":"./NavigationNamespace"}],"format":"esm"},"src/namespaces/RouterLifecycleNamespace/RouterLifecycleNamespace.ts":{"bytes":2863,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../../RouterError"}],"format":"esm"},"src/namespaces/RouterLifecycleNamespace/index.ts":{"bytes":199,"imports":[{"path":"src/namespaces/RouterLifecycleNamespace/RouterLifecycleNamespace.ts","kind":"import-statement","original":"./RouterLifecycleNamespace"}],"format":"esm"},"src/namespaces/EventBusNamespace/EventBusNamespace.ts":{"bytes":6898,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/fsm/index.ts","kind":"import-statement","original":"../../fsm"}],"format":"esm"},"src/namespaces/EventBusNamespace/index.ts":{"bytes":166,"imports":[{"path":"src/namespaces/EventBusNamespace/EventBusNamespace.ts","kind":"import-statement","original":"./EventBusNamespace"}],"format":"esm"},"src/namespaces/index.ts":{"bytes":899,"imports":[{"path":"src/namespaces/DependenciesNamespace/index.ts","kind":"import-statement","original":"./DependenciesNamespace"},{"path":"src/namespaces/OptionsNamespace/index.ts","kind":"import-statement","original":"./OptionsNamespace"},{"path":"src/namespaces/StateNamespace/index.ts","kind":"import-statement","original":"./StateNamespace"},{"path":"src/namespaces/PluginsNamespace/index.ts","kind":"import-statement","original":"./PluginsNamespace"},{"path":"src/namespaces/RouteLifecycleNamespace/index.ts","kind":"import-statement","original":"./RouteLifecycleNamespace"},{"path":"src/namespaces/RoutesNamespace/index.ts","kind":"import-statement","original":"./RoutesNamespace"},{"path":"src/namespaces/NavigationNamespace/index.ts","kind":"import-statement","original":"./NavigationNamespace"},{"path":"src/namespaces/RouterLifecycleNamespace/index.ts","kind":"import-statement","original":"./RouterLifecycleNamespace"},{"path":"src/namespaces/EventBusNamespace/index.ts","kind":"import-statement","original":"./EventBusNamespace"}],"format":"esm"},"src/namespaces/DependenciesNamespace/validators.ts":{"bytes":2852,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"}],"format":"esm"},"src/namespaces/RouterLifecycleNamespace/constants.ts":{"bytes":1142,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../../RouterError"}],"format":"esm"},"src/typeGuards.ts":{"bytes":1830,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"}],"format":"esm"},"src/wiring/RouterWiringBuilder.ts":{"bytes":8763,"imports":[{"path":"src/internals.ts","kind":"import-statement","original":"../internals"},{"path":"src/namespaces/OptionsNamespace/index.ts","kind":"import-statement","original":"../namespaces/OptionsNamespace"},{"path":"src/namespaces/RoutesNamespace/validators.ts","kind":"import-statement","original":"../namespaces/RoutesNamespace/validators"}],"format":"esm"},"src/wiring/wireRouter.ts":{"bytes":1058,"imports":[],"format":"esm"},"src/wiring/index.ts":{"bytes":190,"imports":[{"path":"src/wiring/RouterWiringBuilder.ts","kind":"import-statement","original":"./RouterWiringBuilder"},{"path":"src/wiring/wireRouter.ts","kind":"import-statement","original":"./wireRouter"}],"format":"esm"},"src/Router.ts":{"bytes":22126,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"../event-emitter/dist/esm/index.mjs","kind":"import-statement","original":"event-emitter"},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/fsm/index.ts","kind":"import-statement","original":"./fsm"},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/internals.ts","kind":"import-statement","original":"./internals"},{"path":"src/namespaces/index.ts","kind":"import-statement","original":"./namespaces"},{"path":"src/namespaces/DependenciesNamespace/validators.ts","kind":"import-statement","original":"./namespaces/DependenciesNamespace/validators"},{"path":"src/namespaces/RouterLifecycleNamespace/constants.ts","kind":"import-statement","original":"./namespaces/RouterLifecycleNamespace/constants"},{"path":"src/namespaces/RoutesNamespace/validators.ts","kind":"import-statement","original":"./namespaces/RoutesNamespace/validators"},{"path":"src/RouterError.ts","kind":"import-statement","original":"./RouterError"},{"path":"src/transitionPath.ts","kind":"import-statement","original":"./transitionPath"},{"path":"src/typeGuards.ts","kind":"import-statement","original":"./typeGuards"},{"path":"src/wiring/index.ts","kind":"import-statement","original":"./wiring"}],"format":"esm"},"src/createRouter.ts":{"bytes":897,"imports":[{"path":"src/Router.ts","kind":"import-statement","original":"./Router"}],"format":"esm"},"src/getNavigator.ts":{"bytes":605,"imports":[],"format":"esm"},"src/index.ts":{"bytes":1031,"imports":[{"path":"src/Router.ts","kind":"import-statement","original":"./Router"},{"path":"src/constants.ts","kind":"import-statement","original":"./constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"./RouterError"},{"path":"src/createRouter.ts","kind":"import-statement","original":"./createRouter"},{"path":"src/getNavigator.ts","kind":"import-statement","original":"./getNavigator"}],"format":"esm"},"src/api/helpers.ts":{"bytes":277,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../constants"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../RouterError"}],"format":"esm"},"src/namespaces/EventBusNamespace/validators.ts":{"bytes":961,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"../../constants"}],"format":"esm"},"src/namespaces/StateNamespace/validators.ts":{"bytes":1240,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"}],"format":"esm"},"src/api/getPluginApi.ts":{"bytes":4369,"imports":[{"path":"src/api/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/constants.ts","kind":"import-statement","original":"../constants"},{"path":"src/internals.ts","kind":"import-statement","original":"../internals"},{"path":"src/namespaces/EventBusNamespace/validators.ts","kind":"import-statement","original":"../namespaces/EventBusNamespace/validators"},{"path":"src/namespaces/RoutesNamespace/validators.ts","kind":"import-statement","original":"../namespaces/RoutesNamespace/validators"},{"path":"src/namespaces/StateNamespace/validators.ts","kind":"import-statement","original":"../namespaces/StateNamespace/validators"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../RouterError"}],"format":"esm"},"src/api/getRoutesApi.ts":{"bytes":17668,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/api/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/internals.ts","kind":"import-statement","original":"../internals"},{"path":"src/namespaces/RoutesNamespace/helpers.ts","kind":"import-statement","original":"../namespaces/RoutesNamespace/helpers"},{"path":"src/namespaces/RoutesNamespace/routesStore.ts","kind":"import-statement","original":"../namespaces/RoutesNamespace/routesStore"},{"path":"src/namespaces/RoutesNamespace/validators.ts","kind":"import-statement","original":"../namespaces/RoutesNamespace/validators"}],"format":"esm"},"src/api/getDependenciesApi.ts":{"bytes":6039,"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/api/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/helpers.ts","kind":"import-statement","original":"../helpers"},{"path":"src/internals.ts","kind":"import-statement","original":"../internals"},{"path":"src/namespaces/DependenciesNamespace/validators.ts","kind":"import-statement","original":"../namespaces/DependenciesNamespace/validators"}],"format":"esm"},"src/api/getLifecycleApi.ts":{"bytes":1795,"imports":[{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/api/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/internals.ts","kind":"import-statement","original":"../internals"},{"path":"src/namespaces/RouteLifecycleNamespace/validators.ts","kind":"import-statement","original":"../namespaces/RouteLifecycleNamespace/validators"}],"format":"esm"},"src/api/cloneRouter.ts":{"bytes":3216,"imports":[{"path":"../route-tree/dist/esm/index.mjs","kind":"import-statement","original":"route-tree"},{"path":"../type-guards/dist/esm/index.mjs","kind":"import-statement","original":"type-guards"},{"path":"src/constants.ts","kind":"import-statement","original":"../constants"},{"path":"src/internals.ts","kind":"import-statement","original":"../internals"},{"path":"src/Router.ts","kind":"import-statement","original":"../Router"},{"path":"src/RouterError.ts","kind":"import-statement","original":"../RouterError"},{"path":"src/api/getLifecycleApi.ts","kind":"import-statement","original":"./getLifecycleApi"}],"format":"esm"},"src/api/index.ts":{"bytes":349,"imports":[{"path":"src/api/getPluginApi.ts","kind":"import-statement","original":"./getPluginApi"},{"path":"src/api/getRoutesApi.ts","kind":"import-statement","original":"./getRoutesApi"},{"path":"src/api/getDependenciesApi.ts","kind":"import-statement","original":"./getDependenciesApi"},{"path":"src/api/getLifecycleApi.ts","kind":"import-statement","original":"./getLifecycleApi"},{"path":"src/api/cloneRouter.ts","kind":"import-statement","original":"./cloneRouter"}],"format":"esm"}},"outputs":{"dist/esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2150},"dist/esm/index.mjs":{"imports":[{"path":"dist/esm/chunk-PKKD6URG.mjs","kind":"import-statement"}],"exports":["Router","RouterError","UNKNOWN_ROUTE","constants","createRouter","errorCodes","events","getNavigator"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/createRouter.ts":{"bytesInOutput":126},"src/getNavigator.ts":{"bytesInOutput":390}},"bytes":804},"dist/esm/api.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":52560},"dist/esm/api.mjs":{"imports":[{"path":"dist/esm/chunk-PKKD6URG.mjs","kind":"import-statement"},{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"@real-router/logger","kind":"import-statement","external":true}],"exports":["cloneRouter","getDependenciesApi","getLifecycleApi","getPluginApi","getRoutesApi"],"entryPoint":"src/api/index.ts","inputs":{"src/api/helpers.ts":{"bytesInOutput":122},"src/namespaces/EventBusNamespace/validators.ts":{"bytesInOutput":369},"src/namespaces/StateNamespace/validators.ts":{"bytesInOutput":659},"src/api/getPluginApi.ts":{"bytesInOutput":3396},"src/api/index.ts":{"bytesInOutput":0},"src/api/getRoutesApi.ts":{"bytesInOutput":10690},"src/api/getDependenciesApi.ts":{"bytesInOutput":4180},"src/api/getLifecycleApi.ts":{"bytesInOutput":1147},"src/api/cloneRouter.ts":{"bytesInOutput":2365}},"bytes":24473},"dist/esm/chunk-PKKD6URG.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":311995},"dist/esm/chunk-PKKD6URG.mjs":{"imports":[{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"@real-router/fsm","kind":"import-statement","external":true},{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"@real-router/logger","kind":"import-statement","external":true},{"path":"@real-router/logger","kind":"import-statement","external":true}],"exports":["Router","RouterError","UNKNOWN_ROUTE","b","clearConfigEntries","clearRouteData","computeThresholds","constants","errorCodes","events","f","g","getInternals","j","refreshForwardMap","registerAllRouteHandlers","removeFromDefinitions","s","sanitizeRoute","throwIfInternalRoute","throwIfInternalRouteInArray","validEventNames","validateAddRouteArgs","validateClearRoutes","validateDependenciesObject","validateDependencyExists","validateDependencyLimit","validateDependencyName","validateHandler","validateMatchPathArgs","validateParentOption","validateRemoveRoute","validateRemoveRouteArgs","validateSetDependencyArgs","validateSetRootPathArgs","validateStateBuilderArgs","validateUpdateRoute","validateUpdateRouteBasicArgs","validateUpdateRoutePropertyTypes"],"inputs":{"src/constants.ts":{"bytesInOutput":2633},"../type-guards/dist/esm/index.mjs":{"bytesInOutput":3182},"src/helpers.ts":{"bytesInOutput":1794},"src/RouterError.ts":{"bytesInOutput":8509},"src/Router.ts":{"bytesInOutput":14801},"../event-emitter/dist/esm/index.mjs":{"bytesInOutput":2699},"src/fsm/routerFSM.ts":{"bytesInOutput":1269},"src/fsm/index.ts":{"bytesInOutput":0},"src/internals.ts":{"bytesInOutput":1125},"src/namespaces/DependenciesNamespace/dependenciesStore.ts":{"bytesInOutput":336},"src/namespaces/DependenciesNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/index.ts":{"bytesInOutput":0},"src/namespaces/OptionsNamespace/constants.ts":{"bytesInOutput":705},"src/namespaces/OptionsNamespace/helpers.ts":{"bytesInOutput":385},"src/namespaces/OptionsNamespace/validators.ts":{"bytesInOutput":4294},"src/namespaces/OptionsNamespace/OptionsNamespace.ts":{"bytesInOutput":930},"src/namespaces/OptionsNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/StateNamespace/helpers.ts":{"bytesInOutput":580},"src/namespaces/StateNamespace/StateNamespace.ts":{"bytesInOutput":5385},"src/namespaces/StateNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/PluginsNamespace/PluginsNamespace.ts":{"bytesInOutput":7151},"src/namespaces/PluginsNamespace/constants.ts":{"bytesInOutput":482},"src/namespaces/PluginsNamespace/validators.ts":{"bytesInOutput":1421},"src/namespaces/PluginsNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.ts":{"bytesInOutput":10554},"src/namespaces/RouteLifecycleNamespace/validators.ts":{"bytesInOutput":898},"src/namespaces/RouteLifecycleNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/RoutesNamespace/constants.ts":{"bytesInOutput":82},"src/namespaces/RoutesNamespace/helpers.ts":{"bytesInOutput":1653},"src/namespaces/RoutesNamespace/routesStore.ts":{"bytesInOutput":6346},"../path-matcher/dist/esm/index.mjs":{"bytesInOutput":13115},"../search-params/dist/esm/index.mjs":{"bytesInOutput":4202},"../route-tree/dist/esm/index.mjs":{"bytesInOutput":8191},"src/namespaces/RoutesNamespace/forwardToValidation.ts":{"bytesInOutput":6986},"src/namespaces/RoutesNamespace/validators.ts":{"bytesInOutput":8653},"src/transitionPath.ts":{"bytesInOutput":4755},"src/namespaces/RoutesNamespace/RoutesNamespace.ts":{"bytesInOutput":11252},"src/namespaces/RoutesNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/NavigationNamespace/NavigationNamespace.ts":{"bytesInOutput":8637},"src/namespaces/NavigationNamespace/constants.ts":{"bytesInOutput":635},"src/namespaces/NavigationNamespace/transition/completeTransition.ts":{"bytesInOutput":1508},"src/namespaces/NavigationNamespace/transition/errorHandling.ts":{"bytesInOutput":1476},"src/namespaces/NavigationNamespace/transition/guardPhase.ts":{"bytesInOutput":3516},"src/namespaces/NavigationNamespace/validators.ts":{"bytesInOutput":650},"src/namespaces/NavigationNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/RouterLifecycleNamespace/RouterLifecycleNamespace.ts":{"bytesInOutput":2116},"src/namespaces/RouterLifecycleNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/EventBusNamespace/EventBusNamespace.ts":{"bytesInOutput":4703},"src/namespaces/EventBusNamespace/index.ts":{"bytesInOutput":0},"src/namespaces/DependenciesNamespace/validators.ts":{"bytesInOutput":1493},"src/namespaces/RouterLifecycleNamespace/constants.ts":{"bytesInOutput":91},"src/typeGuards.ts":{"bytesInOutput":1154},"src/wiring/RouterWiringBuilder.ts":{"bytesInOutput":6483},"src/wiring/index.ts":{"bytesInOutput":0},"src/wiring/wireRouter.ts":{"bytesInOutput":240}},"bytes":170696}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@real-router/core",
3
- "version": "0.36.1",
3
+ "version": "0.36.2",
4
4
  "type": "commonjs",
5
5
  "description": "A simple, powerful, view-agnostic, modular and extensible router",
6
6
  "main": "./dist/cjs/index.js",
@@ -63,12 +63,12 @@
63
63
  "homepage": "https://github.com/greydragon888/real-router",
64
64
  "sideEffects": false,
65
65
  "dependencies": {
66
+ "@real-router/fsm": "^0.2.1",
66
67
  "@real-router/logger": "^0.2.0",
67
- "@real-router/fsm": "^0.2.0",
68
- "@real-router/types": "^0.23.0"
68
+ "@real-router/types": "^0.23.1"
69
69
  },
70
70
  "devDependencies": {
71
- "event-emitter": "^0.1.0",
71
+ "event-emitter": "^0.1.1",
72
72
  "route-tree": "^0.3.3",
73
73
  "type-guards": "^0.3.5"
74
74
  },
package/src/Router.ts CHANGED
@@ -10,11 +10,12 @@ import { logger } from "@real-router/logger";
10
10
  import { EventEmitter } from "event-emitter";
11
11
  import { validateRouteName } from "type-guards";
12
12
 
13
- import { errorCodes } from "./constants";
13
+ import { EMPTY_PARAMS, errorCodes } from "./constants";
14
14
  import { createRouterFSM } from "./fsm";
15
15
  import { createLimits } from "./helpers";
16
16
  import {
17
17
  createInterceptable,
18
+ createInterceptable2,
18
19
  getInternals,
19
20
  registerInternals,
20
21
  } from "./internals";
@@ -58,6 +59,8 @@ import type {
58
59
  } from "@real-router/types";
59
60
  import type { CreateMatcherOptions } from "route-tree";
60
61
 
62
+ const EMPTY_OPTS: Readonly<NavigationOptions> = Object.freeze({});
63
+
61
64
  /**
62
65
  * Router class with integrated namespace architecture.
63
66
  *
@@ -212,11 +215,12 @@ export class Router<
212
215
  registerInternals(this, {
213
216
  makeState: (name, params, path, meta, forceId) =>
214
217
  this.#state.makeState(name, params, path, meta, forceId),
215
- forwardState: createInterceptable(
218
+ forwardState: createInterceptable2(
216
219
  "forwardState",
217
- (name, params) => this.#routes.forwardState(name, params),
220
+ (name: string, params: Params) =>
221
+ this.#routes.forwardState(name, params),
218
222
  interceptorsMap,
219
- ),
223
+ ) as unknown as RouterInternals["forwardState"],
220
224
  buildStateResolved: (name, params) =>
221
225
  this.#routes.buildStateResolved(name, params),
222
226
  matchPath: (path, matchOptions) =>
@@ -224,12 +228,16 @@ export class Router<
224
228
  getOptions: () => this.#options.get(),
225
229
  addEventListener: (eventName, cb) =>
226
230
  this.#eventBus.addEventListener(eventName, cb),
227
- buildPath: createInterceptable(
231
+ buildPath: createInterceptable2(
228
232
  "buildPath",
229
233
  (route: string, params?: Params) =>
230
- this.#routes.buildPath(route, params ?? {}, this.#options.get()),
234
+ this.#routes.buildPath(
235
+ route,
236
+ params ?? EMPTY_PARAMS,
237
+ this.#options.get(),
238
+ ),
231
239
  interceptorsMap,
232
- ),
240
+ ) as unknown as RouterInternals["buildPath"],
233
241
  start: createInterceptable(
234
242
  "start",
235
243
  (path: string) => {
@@ -566,7 +574,7 @@ export class Router<
566
574
  }
567
575
 
568
576
  // 2. Validate parsed options
569
- const opts = options ?? {};
577
+ const opts = options ?? EMPTY_OPTS;
570
578
 
571
579
  if (!this.#noValidate) {
572
580
  NavigationNamespace.validateNavigationOptions(opts, "navigate");
@@ -575,11 +583,18 @@ export class Router<
575
583
  // 3. Execute navigation with parsed arguments
576
584
  const promiseState = this.#navigation.navigate(
577
585
  routeName,
578
- routeParams ?? {},
586
+ routeParams ?? EMPTY_PARAMS,
579
587
  opts,
580
588
  );
581
589
 
582
- Router.#suppressUnhandledRejection(promiseState);
590
+ if (this.#navigation.lastSyncResolved) {
591
+ this.#navigation.lastSyncResolved = false;
592
+ } else if (this.#navigation.lastSyncRejected) {
593
+ // Cached rejection — already pre-suppressed at module load, skip .catch()
594
+ this.#navigation.lastSyncRejected = false;
595
+ } else {
596
+ Router.#suppressUnhandledRejection(promiseState);
597
+ }
583
598
 
584
599
  return promiseState;
585
600
  }
@@ -591,7 +606,7 @@ export class Router<
591
606
  }
592
607
 
593
608
  // 2. Validate parsed options
594
- const opts = options ?? {};
609
+ const opts = options ?? EMPTY_OPTS;
595
610
 
596
611
  if (!this.#noValidate) {
597
612
  NavigationNamespace.validateNavigationOptions(opts, "navigateToDefault");
@@ -600,7 +615,13 @@ export class Router<
600
615
  // 3. Execute navigation with parsed arguments
601
616
  const promiseState = this.#navigation.navigateToDefault(opts);
602
617
 
603
- Router.#suppressUnhandledRejection(promiseState);
618
+ if (this.#navigation.lastSyncResolved) {
619
+ this.#navigation.lastSyncResolved = false;
620
+ } else if (this.#navigation.lastSyncRejected) {
621
+ this.#navigation.lastSyncRejected = false;
622
+ } else {
623
+ Router.#suppressUnhandledRejection(promiseState);
624
+ }
604
625
 
605
626
  return promiseState;
606
627
  }
@@ -24,7 +24,15 @@ export function getPluginApi<
24
24
  validateMakeStateArgs(name, params, path, forceId);
25
25
  }
26
26
 
27
- return ctx.makeState(name, params, path, meta, forceId);
27
+ return ctx.makeState(
28
+ name,
29
+ params,
30
+ path,
31
+ meta?.params as
32
+ | Record<string, Record<string, "url" | "query">>
33
+ | undefined,
34
+ forceId,
35
+ );
28
36
  },
29
37
  buildState: (routeName, routeParams) => {
30
38
  if (!ctx.noValidate) {
@@ -90,9 +98,7 @@ export function getPluginApi<
90
98
  routeInfo.name,
91
99
  routeInfo.params,
92
100
  ctx.buildPath(routeInfo.name, routeInfo.params),
93
- {
94
- params: routeInfo.meta,
95
- },
101
+ routeInfo.meta,
96
102
  );
97
103
  },
98
104
  getOptions: ctx.getOptions,
package/src/constants.ts CHANGED
@@ -99,6 +99,8 @@ export const DEFAULT_LIMITS = {
99
99
  maxLifecycleHandlers: 200,
100
100
  } as const;
101
101
 
102
+ export const EMPTY_PARAMS: Readonly<Record<string, never>> = Object.freeze({});
103
+
102
104
  /**
103
105
  * Bounds for each limit - defines min and max allowed values.
104
106
  * Used for runtime validation in setLimit/withLimits.
@@ -3,7 +3,6 @@
3
3
  import { FSM } from "@real-router/fsm";
4
4
 
5
5
  import type { FSMConfig } from "@real-router/fsm";
6
- import type { NavigationOptions, State } from "@real-router/types";
7
6
 
8
7
  /**
9
8
  * Router FSM states.
@@ -54,26 +53,8 @@ export type RouterEvent = (typeof routerEvents)[keyof typeof routerEvents];
54
53
  *
55
54
  * Events without entries have no payload.
56
55
  */
57
- export interface RouterPayloads {
58
- NAVIGATE: {
59
- toState: State;
60
- fromState: State | undefined;
61
- };
62
- COMPLETE: {
63
- state: State;
64
- fromState: State | undefined;
65
- opts: NavigationOptions;
66
- };
67
- FAIL: {
68
- toState?: State | undefined;
69
- fromState?: State | undefined;
70
- error?: unknown;
71
- };
72
- CANCEL: {
73
- toState: State;
74
- fromState: State | undefined;
75
- };
76
- }
56
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- payloads stored in EventBusNamespace fields (N8+N9 optimization)
57
+ export interface RouterPayloads {}
77
58
 
78
59
  /**
79
60
  * Router FSM configuration.
package/src/internals.ts CHANGED
@@ -12,7 +12,6 @@ import type {
12
12
  RouteTreeState,
13
13
  SimpleState,
14
14
  State,
15
- StateMetaInput,
16
15
  Unsubscribe,
17
16
  } from "@real-router/types";
18
17
  import type { RouteTree } from "route-tree";
@@ -24,7 +23,7 @@ export interface RouterInternals<
24
23
  name: string,
25
24
  params?: P,
26
25
  path?: string,
27
- meta?: StateMetaInput<MP>,
26
+ meta?: Record<string, Record<string, "url" | "query">>,
28
27
  forceId?: number,
29
28
  ) => State<P, MP>;
30
29
 
@@ -152,3 +151,23 @@ export function createInterceptable<T extends (...args: any[]) => any>(
152
151
  return executeInterceptorChain(chain, original, args);
153
152
  }) as T;
154
153
  }
154
+
155
+ export function createInterceptable2<A, B, R>(
156
+ name: string,
157
+ original: (a: A, b: B) => R,
158
+ interceptors: Map<
159
+ string,
160
+ ((next: (...args: any[]) => any, ...args: any[]) => any)[]
161
+ >,
162
+ ): (a: A, b: B) => R {
163
+ return (a: A, b: B) => {
164
+ const chain = interceptors.get(name);
165
+
166
+ if (!chain || chain.length === 0) {
167
+ return original(a, b);
168
+ }
169
+
170
+ return executeInterceptorChain(chain, original, [a, b]);
171
+ };
172
+ }
173
+ /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-argument */
@@ -23,6 +23,9 @@ export class EventBusNamespace {
23
23
  readonly #emitter: EventEmitter<RouterEventMap>;
24
24
 
25
25
  #currentToState: State | undefined;
26
+ #pendingToState: State | undefined;
27
+ #pendingFromState: State | undefined;
28
+ #pendingError: unknown;
26
29
 
27
30
  constructor(options: EventBusOptions) {
28
31
  this.#fsm = options.routerFSM;
@@ -90,7 +93,9 @@ export class EventBusNamespace {
90
93
 
91
94
  sendNavigate(toState: State, fromState?: State): void {
92
95
  this.#currentToState = toState;
93
- this.#fsm.send(routerEvents.NAVIGATE, { toState, fromState });
96
+ // Bypass FSM dispatch — forceState + direct emit (no action lookup, no rest params)
97
+ this.#fsm.forceState(routerStates.TRANSITIONING);
98
+ this.emitTransitionStart(toState, fromState);
94
99
  }
95
100
 
96
101
  sendComplete(
@@ -98,15 +103,11 @@ export class EventBusNamespace {
98
103
  fromState?: State,
99
104
  opts: NavigationOptions = {},
100
105
  ): void {
101
- const prev = this.#currentToState;
102
-
103
- this.#fsm.send(routerEvents.COMPLETE, {
104
- state,
105
- fromState,
106
- opts,
107
- });
106
+ // Bypass FSM dispatch — forceState + direct emit
107
+ this.#fsm.forceState(routerStates.READY);
108
+ this.emitTransitionSuccess(state, fromState, opts);
108
109
 
109
- if (this.#currentToState === prev) {
110
+ if (this.#currentToState === state) {
110
111
  this.#currentToState = undefined;
111
112
  }
112
113
  }
@@ -114,7 +115,10 @@ export class EventBusNamespace {
114
115
  sendFail(toState?: State, fromState?: State, error?: unknown): void {
115
116
  const prev = this.#currentToState;
116
117
 
117
- this.#fsm.send(routerEvents.FAIL, { toState, fromState, error });
118
+ this.#pendingToState = toState;
119
+ this.#pendingFromState = fromState;
120
+ this.#pendingError = error;
121
+ this.#fsm.send(routerEvents.FAIL);
118
122
 
119
123
  if (this.#currentToState === prev) {
120
124
  this.#currentToState = undefined;
@@ -132,7 +136,9 @@ export class EventBusNamespace {
132
136
  sendCancel(toState: State, fromState?: State): void {
133
137
  const prev = this.#currentToState;
134
138
 
135
- this.#fsm.send(routerEvents.CANCEL, { toState, fromState });
139
+ this.#pendingToState = toState;
140
+ this.#pendingFromState = fromState;
141
+ this.#fsm.send(routerEvents.CANCEL);
136
142
 
137
143
  if (this.#currentToState === prev) {
138
144
  this.#currentToState = undefined;
@@ -212,6 +218,14 @@ export class EventBusNamespace {
212
218
  this.sendCancel(this.#currentToState!, fromState); // eslint-disable-line @typescript-eslint/no-non-null-assertion -- guaranteed set before TRANSITIONING
213
219
  }
214
220
 
221
+ #emitPendingError(): void {
222
+ this.emitTransitionError(
223
+ this.#pendingToState,
224
+ this.#pendingFromState,
225
+ this.#pendingError as RouterError | undefined,
226
+ );
227
+ }
228
+
215
229
  #setupFSMActions(): void {
216
230
  const fsm = this.#fsm;
217
231
 
@@ -223,40 +237,22 @@ export class EventBusNamespace {
223
237
  this.emitRouterStop();
224
238
  });
225
239
 
226
- fsm.on(routerStates.READY, routerEvents.NAVIGATE, (params) => {
227
- this.emitTransitionStart(params.toState, params.fromState);
240
+ // NAVIGATE and COMPLETE actions bypassed — sendNavigate/sendComplete
241
+ // use fsm.forceState() + direct emit for zero-allocation hot path.
242
+ fsm.on(routerStates.TRANSITIONING, routerEvents.CANCEL, () => {
243
+ this.emitTransitionCancel(this.#pendingToState!, this.#pendingFromState); // eslint-disable-line @typescript-eslint/no-non-null-assertion -- set by sendCancel before send()
228
244
  });
229
245
 
230
- fsm.on(routerStates.TRANSITIONING, routerEvents.COMPLETE, (params) => {
231
- this.emitTransitionSuccess(params.state, params.fromState, params.opts);
246
+ fsm.on(routerStates.STARTING, routerEvents.FAIL, () => {
247
+ this.#emitPendingError();
232
248
  });
233
249
 
234
- fsm.on(routerStates.TRANSITIONING, routerEvents.CANCEL, (params) => {
235
- this.emitTransitionCancel(params.toState, params.fromState);
250
+ fsm.on(routerStates.READY, routerEvents.FAIL, () => {
251
+ this.#emitPendingError();
236
252
  });
237
253
 
238
- fsm.on(routerStates.STARTING, routerEvents.FAIL, (params) => {
239
- this.emitTransitionError(
240
- params.toState,
241
- params.fromState,
242
- params.error as RouterError | undefined,
243
- );
244
- });
245
-
246
- fsm.on(routerStates.READY, routerEvents.FAIL, (params) => {
247
- this.emitTransitionError(
248
- params.toState,
249
- params.fromState,
250
- params.error as RouterError | undefined,
251
- );
252
- });
253
-
254
- fsm.on(routerStates.TRANSITIONING, routerEvents.FAIL, (params) => {
255
- this.emitTransitionError(
256
- params.toState,
257
- params.fromState,
258
- params.error as RouterError | undefined,
259
- );
254
+ fsm.on(routerStates.TRANSITIONING, routerEvents.FAIL, () => {
255
+ this.#emitPendingError();
260
256
  });
261
257
  }
262
258
  }