@real-router/core 0.71.0 → 0.72.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.
Files changed (46) hide show
  1. package/dist/cjs/Router-Bm2qafJA.d.ts.map +1 -1
  2. package/dist/cjs/Router-BuxYCscR.js +2 -0
  3. package/dist/cjs/Router-BuxYCscR.js.map +1 -0
  4. package/dist/cjs/api.d.ts +1 -1
  5. package/dist/cjs/api.js +1 -1
  6. package/dist/cjs/{cloneRouter-CF6QEI2C.js → cloneRouter-Bq5GO3He.js} +2 -2
  7. package/dist/cjs/{cloneRouter-CF6QEI2C.js.map → cloneRouter-Bq5GO3He.js.map} +1 -1
  8. package/dist/cjs/esm-DR_1FhY4.js +2 -0
  9. package/dist/cjs/esm-DR_1FhY4.js.map +1 -0
  10. package/dist/cjs/{index-CmCnmwso.d.ts → index-Ti9C-wWj.d.ts} +6 -32
  11. package/dist/cjs/index-Ti9C-wWj.d.ts.map +1 -0
  12. package/dist/cjs/index.d.ts +1 -1
  13. package/dist/cjs/index.js +1 -1
  14. package/dist/cjs/utils.js +1 -1
  15. package/dist/cjs/validation.d.ts +7 -2
  16. package/dist/cjs/validation.d.ts.map +1 -1
  17. package/dist/cjs/validation.js +1 -1
  18. package/dist/esm/Router-BbTrW9yV.mjs +2 -0
  19. package/dist/esm/Router-BbTrW9yV.mjs.map +1 -0
  20. package/dist/esm/Router-Bm2qafJA.d.mts.map +1 -1
  21. package/dist/esm/api.d.mts +1 -1
  22. package/dist/esm/api.mjs +1 -1
  23. package/dist/esm/cloneRouter-DRSREvBx.mjs +2 -0
  24. package/dist/esm/{cloneRouter-ecGQaSQL.mjs.map → cloneRouter-DRSREvBx.mjs.map} +1 -1
  25. package/dist/esm/esm-4Z26j6n2.mjs +2 -0
  26. package/dist/esm/esm-4Z26j6n2.mjs.map +1 -0
  27. package/dist/esm/{index-CmCnmwso.d.mts → index-Ti9C-wWj.d.mts} +6 -32
  28. package/dist/esm/index-Ti9C-wWj.d.mts.map +1 -0
  29. package/dist/esm/index.d.mts +1 -1
  30. package/dist/esm/index.mjs +1 -1
  31. package/dist/esm/utils.mjs +1 -1
  32. package/dist/esm/validation.d.mts +7 -2
  33. package/dist/esm/validation.d.mts.map +1 -1
  34. package/dist/esm/validation.mjs +1 -1
  35. package/package.json +2 -2
  36. package/dist/cjs/Router-GNhL-jKu.js +0 -2
  37. package/dist/cjs/Router-GNhL-jKu.js.map +0 -1
  38. package/dist/cjs/esm-uttDiCgu.js +0 -2
  39. package/dist/cjs/esm-uttDiCgu.js.map +0 -1
  40. package/dist/cjs/index-CmCnmwso.d.ts.map +0 -1
  41. package/dist/esm/Router-D1XbAoNF.mjs +0 -2
  42. package/dist/esm/Router-D1XbAoNF.mjs.map +0 -1
  43. package/dist/esm/cloneRouter-ecGQaSQL.mjs +0 -2
  44. package/dist/esm/esm-BRwV1olW.mjs +0 -2
  45. package/dist/esm/esm-BRwV1olW.mjs.map +0 -1
  46. package/dist/esm/index-CmCnmwso.d.mts.map +0 -1
@@ -1,4 +1,4 @@
1
- import { a as validateRoute, i as RouteTree, n as Matcher, r as RouteDefinition, t as CreateMatcherOptions } from "./index-CmCnmwso.js";
1
+ import { a as validateRoute, i as RouteTree, n as Matcher, r as RouteDefinition, t as CreateMatcherOptions } from "./index-Ti9C-wWj.js";
2
2
  import { a as PluginFactory, i as Limits, n as EventMethodMap, r as GuardFnFactory } from "./Router-Bm2qafJA.js";
3
3
  import { n as RouterValidator } from "./RouterError-BEqOMMFO.js";
4
4
  import { n as SerializedRouterState } from "./index-A1sdfTRT.js";
@@ -12,6 +12,12 @@ interface DependenciesStore<Dependencies extends DefaultDependencies = DefaultDe
12
12
  //#region src/namespaces/RouteLifecycleNamespace/types.d.ts
13
13
  interface RouteLifecycleDependencies<Dependencies extends DefaultDependencies = DefaultDependencies> {
14
14
  compileFactory: (factory: GuardFnFactory<Dependencies>) => GuardFn;
15
+ /**
16
+ * Returns the opt-in DX validator, or `null` when no validation-plugin is
17
+ * installed. A plain deps field (#1331) — internals are registered before
18
+ * wiring, so `getInternals(router)` never throws and no try/catch is needed.
19
+ */
20
+ getValidator: () => RouterValidator | null;
15
21
  }
16
22
  //#endregion
17
23
  //#region src/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.d.ts
@@ -37,7 +43,6 @@ interface RouteLifecycleDependencies<Dependencies extends DefaultDependencies =
37
43
  declare class RouteLifecycleNamespace<Dependencies extends DefaultDependencies = DefaultDependencies> {
38
44
  #private;
39
45
  setDependencies(deps: RouteLifecycleDependencies<Dependencies>): void;
40
- setValidatorGetter(getter: () => RouterValidator | null): void;
41
46
  getHandlerCount(type: "activate" | "deactivate"): number;
42
47
  /**
43
48
  * Pre-flights the #961 handler-limit `RangeError` into the route-CRUD PREPARE
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","names":[],"sources":["../../src/namespaces/DependenciesNamespace/dependenciesStore.ts","../../src/namespaces/RouteLifecycleNamespace/types.ts","../../src/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.ts","../../src/namespaces/RoutesNamespace/types.ts","../../src/namespaces/RoutesNamespace/routesStore.ts","../../src/internals.ts"],"mappings":";;;;;;UAKiB,iBAAA,sBACM,mBAAA,GAAsB,mBAAA;EAE3C,YAAA,EAAc,OAAA,CAAQ,YAAA;EACtB,MAAA,EAAQ,MAAA;AAAA;;;UCJO,0BAAA,sBACM,mBAAA,GAAsB,mBAAA;EAE3C,cAAA,GAAiB,OAAA,EAAS,cAAA,CAAe,YAAA,MAAkB,OAAA;AAAA;;;;;;;ADH7D;;;;;;;;;;;;;;;cE0Ca,uBAAA,sBACU,mBAAA,GAAsB,mBAAA;EAAA;EAoC3C,eAAA,CAAgB,IAAA,EAAM,0BAAA,CAA2B,YAAA;EAIjD,kBAAA,CAAmB,MAAA,QAAc,eAAA;EAIjC,eAAA,CAAgB,IAAA;;;;ADvFlB;;;;;;;;;;;;;;;;ECqIE,qBAAA,CACE,aAAA,EAAe,QAAA,UACf,eAAA,EAAiB,QAAA,UACjB,gBAAA;EDrIyD;;AAAO;;;;ACuCpE;;;;;;;;;EAoKE,cAAA,CACE,IAAA,UACA,OAAA,EAAS,cAAA,CAAe,YAAA,aACxB,gBAAA,YACA,aAAA,GAAgB,OAAA;EAFQ;;;;;EAmB1B,gBAAA,CACE,IAAA,UACA,OAAA,EAAS,cAAA,CAAe,YAAA,aACxB,gBAAA,YACA,aAAA,GAAgB,OAAA;EAwGc;;;;;;;;;;;;;EA/EhC,gBAAA,CAAiB,IAAA,UAAc,cAAA;EAiH3B;;;;;;EAhGJ,kBAAA,CAAmB,IAAA,UAAc,cAAA;EAiIM;;;;EAlHvC,QAAA;EA2KG;;;;;;;;;;EAxJH,qBAAA;EAhOA;;;;;;;;;;EA2PA,YAAA,KACE,MAAA,SAAe,cAAA,CAAe,YAAA,IAC9B,MAAA,SAAe,cAAA,CAAe,YAAA;EAhIN;;;;;EA2J1B,oBAAA;IACE,UAAA,GACE,MAAA,SAAe,cAAA,CAAe,YAAA,IAC9B,MAAA,SAAe,cAAA,CAAe,YAAA;IAEhC,QAAA,GACE,MAAA,SAAe,cAAA,CAAe,YAAA,IAC9B,MAAA,SAAe,cAAA,CAAe,YAAA;EAAA;EAlHH;;;;;EAkJ/B,YAAA,KAAiB,GAAA,SAAY,OAAA,GAAU,GAAA,SAAY,OAAA;EAInD,aAAA,CACE,YAAA,YACA,UAAA,YACA,OAAA,EAAS,KAAA,EACT,SAAA,EAAW,KAAA;EA3EX;;;;;;;;;;;;;EAyHF,mBAAA,CACE,OAAA,EAAS,cAAA,CAAe,YAAA,aACxB,UAAA,WACC,OAAA;AAAA;;;;;;;;;UC9bY,kBAAA,sBACM,mBAAA,GAAsB,mBAAA;EHdX;;;;;;EGsBhC,gBAAA,GACE,IAAA,UACA,OAAA,EAAS,cAAA,CAAe,YAAA,GACxB,aAAA,GAAgB,OAAA;EHrBJ;EGyBd,kBAAA,GACE,IAAA,UACA,OAAA,EAAS,cAAA,CAAe,YAAA,GACxB,aAAA,GAAgB,OAAA;EH/BlB;;;;;EGuCA,YAAA,GACE,OAAA,EAAS,cAAA,CAAe,YAAA,GACxB,UAAA,aACG,OAAA;EHvCL;EG0CA,SAAA,aAAsB,MAAA,GAAS,MAAA,EAC7B,IAAA,UACA,MAAA,GAAS,CAAA,EACT,IAAA,WACA,IAAA,GAAO,MAAA,SAAe,MAAA,+BACnB,KAAA,CAAM,CAAA;EH/CG;EGkDd,QAAA,QAAgB,KAAA;;EAGhB,cAAA,GACE,MAAA,EAAQ,KAAA,cACR,MAAA,EAAQ,KAAA,cACR,iBAAA;;EAIF,aAAA,mBAAgC,YAAA,EAAc,IAAA,EAAM,CAAA,KAAM,YAAA,CAAa,CAAA;EFhE9B;EEmEzC,YAAA,aAAyB,MAAA,GAAS,MAAA,EAChC,IAAA,UACA,MAAA,EAAQ,CAAA,KACL,WAAA,CAAY,CAAA;AAAA;;;;;UAOF,WAAA;EF1EmD;EE4ElE,QAAA,EAAU,MAAA,UAAgB,MAAA,EAAQ,MAAA,KAAW,MAAA;EF9ExB;EEiFrB,QAAA,EAAU,MAAA,UAAgB,MAAA,EAAQ,MAAA,KAAW,MAAA;EF/E7C;EEkFA,aAAA,EAAe,MAAA,SAAe,MAAA;EFlFW;EEqFzC,UAAA,EAAY,MAAA;EFrF+C;EEyF3D,YAAA,EAAc,MAAA,SAAe,iBAAA;AAAA;;;UC/Dd,WAAA,sBACM,mBAAA,GAAsB,mBAAA;EAAA,SAElC,WAAA,EAAa,eAAA;EAAA,SACb,MAAA,EAAQ,WAAA;EACjB,IAAA,EAAM,SAAA;EACN,OAAA,EAAS,OAAA;EJnCuB;;;;;;EAAA,SI0CvB,cAAA,EAAgB,GAAA;EACzB,kBAAA,EAAoB,MAAA;EACpB,iBAAA,EAAmB,MAAA,SAAe,MAAA;EAClC,QAAA;EAAA,SACS,cAAA,EAAgB,oBAAA;EACzB,SAAA,EAAW,kBAAA,CAAmB,YAAA;EAC9B,kBAAA,EAAoB,uBAAA,CAAwB,YAAA;EAAA,SACnC,kBAAA,EAAoB,GAAA,SAAY,cAAA,CAAe,YAAA;EAAA,SAC/C,oBAAA,EAAsB,GAAA,SAAY,cAAA,CAAe,YAAA;AAAA;;;UCjC3C,eAAA,WACL,mBAAA,GAAsB,mBAAA;EAAA,SAEvB,SAAA,aAAsB,MAAA,GAAS,MAAA,EACtC,IAAA,UACA,MAAA,GAAS,CAAA,EACT,IAAA,WACA,IAAA,GAAO,MAAA,SAAe,MAAA,+BACnB,KAAA,CAAM,CAAA;EAAA,SAEF,YAAA,aAAyB,MAAA,GAAS,MAAA,EACzC,SAAA,UACA,WAAA,EAAa,CAAA,KACV,WAAA,CAAY,CAAA;EAAA,SAER,kBAAA,GACP,YAAA,UACA,cAAA,EAAgB,MAAA,KACb,cAAA;EAAA,SAEI,SAAA,aAAsB,MAAA,GAAS,MAAA,EACtC,IAAA,UACA,OAAA,GAAU,OAAA,KACP,KAAA,CAAM,CAAA;EAAA,SAEF,UAAA,QAAkB,OAAA;EAAA,SAElB,gBAAA,aAA6B,SAAA,EACpC,SAAA,EAAW,CAAA,EACX,EAAA,EAAI,MAAA,CAAO,cAAA,CAAe,CAAA,OACvB,WAAA;EL3CG;;;;;;;EAAA,SKoDC,WAAA;IAAA,SACE,IAAA,GAAO,KAAA,EAAO,gBAAA;IAAA,SACd,SAAA,GACP,OAAA,GAAU,KAAA,EAAO,gBAAA,cACd,WAAA;IAAA,SACI,aAAA;ILzDG;AAAA;;;IAAA,SK8DH,UAAA;EAAA;EAAA,SAGF,SAAA,GAAY,KAAA,UAAe,MAAA,GAAS,MAAA;EAAA,SAEpC,mBAAA,GAAsB,KAAA,EAAO,KAAA;EJtEjB;;;;;;EAAA,SI8EZ,qBAAA,GACP,OAAA,EAAS,KAAA,EACT,SAAA,EAAW,KAAA,cACX,IAAA,GAAO,iBAAA;EJjFT;;;;;;;EAAA,SI2FS,kBAAA,GAAqB,IAAA,aAAiB,KAAA;EAAA,SAEtC,KAAA,GAAQ,IAAA,aAAiB,OAAA,CAAQ,KAAA;EJ3FwB;;;;ACuCpE;;EDvCoE,SImGzD,eAAA,GACP,KAAA,EAAO,KAAA,EACP,OAAA,GAAU,iBAAA,KACP,OAAA,CAAQ,KAAA;EAAA,SAGJ,YAAA,EAAc,GAAA,WAEnB,IAAA,MAAU,IAAA,oBAAwB,IAAA;EAAA,SAI7B,WAAA,GAAc,QAAA;EAAA,SACd,WAAA;EAAA,SAEA,OAAA,QAAe,SAAA;EAAA,SAEf,UAAA;EAET,SAAA,EAAW,eAAA;EAAA,SAGF,oBAAA,QAA4B,iBAAA,CAAkB,CAAA;EAAA,SAM9C,aAAA;IACP,OAAA,EAAS,OAAA;IACT,YAAA,EAAc,MAAA;IACd,eAAA,EAAiB,aAAA,CAAc,CAAA;EAAA;EAAA,SAIxB,aAAA,QAAqB,WAAA,CAAY,CAAA;EAAA,SAGjC,YAAA;EAAA,SACA,eAAA;EAAA,SACA,UAAA;EAAA,SACA,QAAA,GAAW,KAAA,EAAO,KAAA;EAAA,SAClB,gBAAA;IAAoB,IAAA;EAAA;EAAA,SACpB,mBAAA,EAAqB,GAAA;EH4N1B;;;;;;;;;EGjNJ,cAAA,EAAgB,qBAAA;AAAA;AAAA,iBAMF,YAAA,WAAuB,mBAAA,EACrC,MAAA,EAAQ,MAAA,CAAgB,CAAA,IACvB,eAAA,CAAgB,CAAA"}
1
+ {"version":3,"file":"validation.d.ts","names":[],"sources":["../../src/namespaces/DependenciesNamespace/dependenciesStore.ts","../../src/namespaces/RouteLifecycleNamespace/types.ts","../../src/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.ts","../../src/namespaces/RoutesNamespace/types.ts","../../src/namespaces/RoutesNamespace/routesStore.ts","../../src/internals.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./esm-uttDiCgu.js");exports.getInternals=e.l,exports.validateRoute=e.n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./esm-DR_1FhY4.js");exports.getInternals=e.l,exports.validateRoute=e.r;
@@ -0,0 +1,2 @@
1
+ import{c as e,i as t,l as n,o as r,s as i,t as a,u as o}from"./esm-4Z26j6n2.mjs";import{logger as s}from"@real-router/logger";import{FSM as c}from"@real-router/fsm";const l={maxListeners:0,warnListeners:0};var u=class{#e=new Map;#t=new Set;#n=null;#r=l;#i;#a;constructor(e){e?.limits&&(this.#r=e.limits),this.#i=e?.onListenerError??null,this.#a=e?.onListenerWarn??null}static validateCallback(e,t){if(typeof e!=`function`)throw TypeError(`Expected callback to be a function for event ${t}`)}setLimits(e){this.#r=e}on(e,t){let n=this.#s(e);if(n.has(t))throw Error(`Duplicate listener for "${e}"`);let{maxListeners:r,warnListeners:i}=this.#r;if(r!==0&&n.size>=r)throw Error(`Listener limit (${r}) reached for "${e}"`);return i!==0&&n.size===i&&this.#a!==null&&(this.#n??=new Set,this.#n.has(e)||(this.#n.add(e),this.#a(e,i))),n.add(t),()=>{this.off(e,t)}}off(e,t){let n=this.#e.get(e);n&&(n.delete(t),n.size===0&&(this.#e.delete(e),this.#n?.delete(e)))}emit(e,t,n,r,i){let a=this.#e.get(e);if(!a||a.size===0||this.#t.has(e))return;let o=arguments.length-1;this.#t.add(e);try{if(a.size===1){let[s]=a;try{this.#o(s,o,t,n,r,i)}catch(t){this.#i?.(e,t)}}else{let s=[...a];for(let a of s)try{this.#o(a,o,t,n,r,i)}catch(t){this.#i?.(e,t)}}}finally{this.#t.delete(e)}}clearAll(){this.#e.clear(),this.#t.clear(),this.#n=null}listenerCount(e){return this.#e.get(e)?.size??0}isDispatching(e){return this.#t.has(e)}#o(e,t,n,r,i,a){switch(t){case 0:e();break;case 1:e(n);break;case 2:e(n,r);break;case 3:e(n,r,i);break;default:e(n,r,i,a)}}#s(e){let t=this.#e.get(e);if(t)return t;let n=new Set;return this.#e.set(e,n),n}};const d=Object.freeze({ROUTER_NOT_STARTED:`NOT_STARTED`,NO_START_PATH_OR_STATE:`NO_START_PATH_OR_STATE`,ROUTER_ALREADY_STARTED:`ALREADY_STARTED`,ROUTE_NOT_FOUND:`ROUTE_NOT_FOUND`,SAME_STATES:`SAME_STATES`,CANNOT_DEACTIVATE:`CANNOT_DEACTIVATE`,CANNOT_ACTIVATE:`CANNOT_ACTIVATE`,TRANSITION_ERR:`TRANSITION_ERR`,TRANSITION_CANCELLED:`CANCELLED`,ROUTER_DISPOSED:`DISPOSED`,PLUGIN_CONFLICT:`PLUGIN_CONFLICT`,CONTEXT_NAMESPACE_ALREADY_CLAIMED:`CONTEXT_NAMESPACE_ALREADY_CLAIMED`,REENTRANT_NAVIGATION:`REENTRANT_NAVIGATION`,REENTRANT_TREE_MUTATION:`REENTRANT_TREE_MUTATION`}),f=`@@router/UNKNOWN_ROUTE`,p={UNKNOWN_ROUTE:f},m={ROUTER_START:`onStart`,ROUTER_STOP:`onStop`,TRANSITION_START:`onTransitionStart`,TRANSITION_LEAVE_APPROVE:`onTransitionLeaveApprove`,TRANSITION_CANCEL:`onTransitionCancel`,TRANSITION_SUCCESS:`onTransitionSuccess`,TRANSITION_ERROR:`onTransitionError`},h={ROUTER_START:`$start`,ROUTER_STOP:`$stop`,TRANSITION_START:`$$start`,TRANSITION_LEAVE_APPROVE:`$$leaveApprove`,TRANSITION_CANCEL:`$$cancel`,TRANSITION_SUCCESS:`$$success`,TRANSITION_ERROR:`$$error`},g={maxDependencies:100,maxPlugins:50,maxListeners:1e4,warnListeners:1e3,maxLifecycleHandlers:200},_=Object.freeze({}),v=Object.freeze({deactivated:Object.freeze([]),activated:Object.freeze([]),intersection:``}),y=Object.freeze({phase:`activating`,reason:`success`,segments:v}),b={IDLE:`IDLE`,STARTING:`STARTING`,READY:`READY`,TRANSITION_STARTED:`TRANSITION_STARTED`,LEAVE_APPROVED:`LEAVE_APPROVED`,DISPOSED:`DISPOSED`},x={START:`START`,STARTED:`STARTED`,NAVIGATE:`NAVIGATE`,LEAVE_APPROVE:`LEAVE_APPROVE`,COMPLETE:`COMPLETE`,FAIL:`FAIL`,CANCEL:`CANCEL`,STOP:`STOP`,DISPOSE:`DISPOSE`},ee={initial:b.IDLE,context:null,transitions:{[b.IDLE]:{[x.START]:b.STARTING,[x.DISPOSE]:b.DISPOSED},[b.STARTING]:{[x.STARTED]:b.READY,[x.FAIL]:b.IDLE,[x.DISPOSE]:b.DISPOSED},[b.READY]:{[x.NAVIGATE]:b.TRANSITION_STARTED,[x.FAIL]:b.READY,[x.STOP]:b.IDLE,[x.DISPOSE]:b.DISPOSED},[b.TRANSITION_STARTED]:{[x.NAVIGATE]:b.TRANSITION_STARTED,[x.LEAVE_APPROVE]:b.LEAVE_APPROVED,[x.CANCEL]:b.READY,[x.FAIL]:b.READY,[x.DISPOSE]:b.DISPOSED},[b.LEAVE_APPROVED]:{[x.NAVIGATE]:b.TRANSITION_STARTED,[x.COMPLETE]:b.READY,[x.CANCEL]:b.READY,[x.FAIL]:b.READY,[x.DISPOSE]:b.DISPOSED},[b.DISPOSED]:{}}};function te(){return new c(ee)}function ne(e){if(!e||typeof e!=`object`||e.constructor!==Object)throw TypeError(`dependencies must be a plain object`);for(let t in e)if(Object.getOwnPropertyDescriptor(e,t)?.get)throw TypeError(`dependencies cannot contain getters: "${t}"`)}function S(e,t){for(let n of e){let e=n;if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError(`route must be a non-array object`);t?.routes.guardRouteCallbacks(n),t?.routes.guardNoAsyncCallbacks(n);let r=n.children;r&&S(r,t)}}function re(e){return Object.freeze(e)}function ie(e={}){return{...g,...e}}function C(e){if(e===void 0)return e;let t;for(let n in e){if(!Object.hasOwn(e,n))continue;let r=e[n];r!==void 0&&(t??={},t[n]=r)}return t??_}function ae(e={}){let t=Object.create(null);for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return{dependencies:t,limits:g}}const oe={defaultRoute:``,defaultParams:{},trailingSlash:`preserve`,caseSensitive:!0,queryParamsMode:`loose`,queryParams:r,urlParamsEncoding:`default`,allowNotFound:!0,rewritePathOnMatch:!0};function se(e){Object.freeze(e);for(let t of Object.values(e))t&&typeof t==`object`&&t.constructor===Object&&se(t);return e}function ce(e,t){return typeof e==`function`?e(t):e}function le(e){if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(`[router.constructor] options must be a plain object`)}var ue=class{#e;constructor(e={}){this.#e=se({...oe,...e})}static validateOptionsIsObject(e){le(e)}get(){return this.#e}};function w(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!w(e[n],t[n]))return!1;return!0}return!1}const de=new WeakMap;function fe(e){return de.get(e)}function pe(e,t){de.set(e,t)}var me=class{#e=void 0;#t=void 0;#n;get(){return this.#e}set(e){this.#t=this.#e,this.#e=e?re(e):void 0}getPrevious(){return this.#t}reset(){this.#e=void 0,this.#t=void 0}setDependencies(e){this.#n=e}makeState(e,t,n,r,i){let a=this.#n.getDefaultParams(),o=Object.hasOwn(a,e),s;s=o?Object.freeze({...a[e],...t}):!t||t===_?_:Object.freeze({...t});let c={name:e,params:s,path:n??this.#n.buildPath(e,t),context:{},...!i&&{transition:y}};return r&&pe(c,r),i?c:re(c)}areStatesEqual(e,t,n=!0){if(!e||!t)return!!e==!!t;if(e.name!==t.name)return!1;if(n){let n=this.#n.getUrlParams(e.name);for(let r of n)if(!w(e.params[r],t.params[r]))return!1;return!0}let r=Object.keys(e.params),i=Object.keys(t.params);if(r.length!==i.length)return!1;for(let n of r)if(!(n in t.params)||!w(e.params[n],t.params[n]))return!1;return!0}};const he={[m.ROUTER_START]:h.ROUTER_START,[m.ROUTER_STOP]:h.ROUTER_STOP,[m.TRANSITION_SUCCESS]:h.TRANSITION_SUCCESS,[m.TRANSITION_START]:h.TRANSITION_START,[m.TRANSITION_LEAVE_APPROVE]:h.TRANSITION_LEAVE_APPROVE,[m.TRANSITION_ERROR]:h.TRANSITION_ERROR,[m.TRANSITION_CANCEL]:h.TRANSITION_CANCEL},ge=Object.keys(he),T=`router.usePlugin`;function _e(e){if(!(e&&typeof e==`object`)||Array.isArray(e))throw TypeError(`[router.usePlugin] Plugin factory must return an object, got ${typeof e}`);if(typeof e.then==`function`)throw TypeError(`[router.usePlugin] Async plugin factories are not supported. Factory returned a Promise instead of a plugin object.`)}var ve=class e{#e=new Set;#t=new Set;#n;static validatePlugin(e){_e(e)}setDependencies(e){this.#n=e}count(){return this.#e.size}use(...e){if(this.#n.getValidator()?.plugins.validateCountThresholds(this.#e.size+e.length),e.length===1){let t=e[0],n=this.#i(t);this.#e.add(t);let r=!1,i=()=>{if(!r){r=!0,this.#e.delete(t),this.#t.delete(i);try{n()}catch(e){s.error(T,`Error during cleanup:`,e)}}};return this.#t.add(i),i}let t=this.#r(e),n=[];try{for(let e of t){let t=this.#i(e);n.push({factory:e,cleanup:t})}}catch(e){for(let{cleanup:e}of n)try{e()}catch(e){s.error(T,`Cleanup error:`,e)}throw e}for(let{factory:e}of n)this.#e.add(e);let r=!1,i=()=>{if(!r){r=!0,this.#t.delete(i);for(let{factory:e}of n)this.#e.delete(e);for(let{cleanup:e}of n)try{e()}catch(e){s.error(T,`Error during cleanup:`,e)}}};return this.#t.add(i),i}getAll(){return[...this.#e]}has(e){return this.#e.has(e)}disposeAll(){for(let e of this.#t)e();this.#e.clear(),this.#t.clear()}#r(e){let t=new Set;for(let n of e)t.has(n)?this.#n.getValidator()?.plugins.warnBatchDuplicates(e):t.add(n);return t}#i(t){let n=this.#n.compileFactory(t);e.validatePlugin(n),this.#n.getValidator()?.plugins.validatePluginKeys(n),Object.freeze(n);let r=[];for(let e of ge)e in n&&(typeof n[e]==`function`?(r.push(this.#n.addEventListener(he[e],n[e])),e===`onStart`&&this.#n.canNavigate()&&this.#n.getValidator()?.plugins.warnPluginAfterStart(e)):this.#n.getValidator()?.plugins.warnPluginMethodType(e));return()=>{for(let e of r)e();typeof n.teardown==`function`&&n.teardown()}}};const ye=()=>!0,be=()=>!1,xe=()=>ye,Se=()=>be;function Ce(e){return e?xe:Se}var we=class{#e=new Map;#t=new Map;#n=new Map;#r=new Map;#i=new Map;#a=new Map;#o=[this.#i,this.#a];#s;setDependencies(e){this.#s=e}getHandlerCount(e){let t=e===`activate`?this.#e:this.#n,n=e===`activate`?this.#t:this.#r;if(t.size===0)return n.size;if(n.size===0)return t.size;let r=new Set(t.keys());for(let e of n.keys())r.add(e);return r.size}preflightHandlerLimit(e,t,n){let r=this.#s.getValidator();if(!r)return;let i=(e,t,i)=>{let{definition:a,external:o}=this.#u(e),s=0;for(let e of t)(n?o.has(e):a.has(e)||o.has(e))||s++;if(s===0)return;let c=n?o.size:this.getHandlerCount(e);r.lifecycle.validateHandlerLimit(c+s-1,i)};i(`activate`,e,`canActivate`),i(`deactivate`,t,`canDeactivate`)}addCanActivate(e,t,n=!1,r){this.#c(`activate`,e,t,n,`canActivate`,r)}addCanDeactivate(e,t,n=!1,r){this.#c(`deactivate`,e,t,n,`canDeactivate`,r)}clearCanActivate(e,t=!1){let n=this.#e.delete(e),r=t?!1:this.#t.delete(e);(n||r)&&this.#l(`activate`,e)}clearCanDeactivate(e,t=!1){let n=this.#n.delete(e),r=t?!1:this.#r.delete(e);(n||r)&&this.#l(`deactivate`,e)}clearAll(){this.#e.clear(),this.#t.clear(),this.#n.clear(),this.#r.clear(),this.#a.clear(),this.#i.clear()}clearDefinitionGuards(){for(let e of this.#e.keys())this.#t.has(e)||this.#a.delete(e);for(let e of this.#n.keys())this.#r.has(e)||this.#i.delete(e);this.#e.clear(),this.#n.clear()}getFactories(){let e={},t={};for(let[t,n]of this.#n)e[t]=n;for(let[t,n]of this.#r)e[t]=n;for(let[e,n]of this.#e)t[e]=n;for(let[e,n]of this.#t)t[e]=n;return[e,t]}getFactoriesByOrigin(){let e={},t={},n={},r={};for(let[t,n]of this.#n)e[t]=n;for(let[e,n]of this.#e)t[e]=n;for(let[e,t]of this.#r)n[e]=t;for(let[e,t]of this.#t)r[e]=t;return{definition:[e,t],external:[n,r]}}getFunctions(){return this.#o}canNavigateTo(e,t,n,r){for(let t of e)if(!this.#d(this.#i,t,n,r,`canNavigateTo`))return!1;for(let e of t)if(!this.#d(this.#a,e,n,r,`canNavigateTo`))return!1;return!0}compileGuardFactory(e,t){let n=typeof e==`boolean`?Ce(e):e,r=this.#s.compileFactory(n);if(typeof r!=`function`)throw TypeError(`[router.${t}] Factory must return a function, got ${typeof r}`);return r}#c(e,t,n,r,i,a){let o=this.#u(e),s=e===`activate`?this.#a:this.#i,c=r?o.definition:o.external,l=r?o.external:o.definition;if(c.has(t)||l.has(t))this.#s.getValidator()?.lifecycle.warnOverwrite(t,e,i);else{let t=this.#s.getValidator();if(t){let n=this.getHandlerCount(e);t.lifecycle.validateHandlerLimit(n,i),t.lifecycle.validateCountThresholds(n+1,i)}}let u=typeof n==`boolean`?Ce(n):n,d=c.get(t);c.set(t,u);try{let e=a??this.compileGuardFactory(u,i);s.set(t,e)}catch(n){throw d===void 0?c.delete(t):c.set(t,d),this.#l(e,t),n}}#l(e,t){let n=this.#u(e),r=e===`activate`?this.#a:this.#i,i=n.external.get(t)??n.definition.get(t);if(!i){r.delete(t);return}try{let e=this.#s.compileFactory(i);if(typeof e!=`function`){r.delete(t);return}r.set(t,e)}catch{r.delete(t)}}#u(e){return e===`activate`?{definition:this.#e,external:this.#t}:{definition:this.#n,external:this.#r}}#d(e,t,n,r,i){let a=e.get(t);if(!a)return!0;try{let e=a(n,r);return typeof e==`boolean`?e:(this.#s.getValidator()?.lifecycle.warnAsyncGuardSync(t,i),!1)}catch(e){return s.warn(`router.${i}`,`Guard for "${t}" threw — treated as navigation-blocking (returned false)`,e),!1}}};const Te=new Set([`name`,`path`,`children`,`canActivate`,`canDeactivate`,`forwardTo`,`encodeParams`,`decodeParams`,`defaultParams`]);function E(){return{decoders:Object.create(null),encoders:Object.create(null),defaultParams:Object.create(null),forwardMap:Object.create(null),forwardFnMap:Object.create(null)}}function Ee(e,t){for(let n of Object.keys(t))Object.assign(e[n],t[n])}function De(e,t){for(let n in e)if(e[n]!==t[n])return!1;return!0}function Oe(e,t,n){for(let r in e)if(!(r in n)&&e[r]!==t[r])return!1;return!0}function ke(e,t){if(!t||!Ae(e,t))return e;let n={};for(let r in e)t[r]!==`query`&&(n[r]=e[r]);return n}function Ae(e,t){for(let n in e)if(t[n]===`query`)return!0;return!1}function D(e){let t={name:e.name,path:e.path};return e.children&&(t.children=e.children.map(e=>D(e))),t}function je(e,t,n=``){for(let r=0;r<e.length;r++){let i=e[r],a=n?`${n}.${i.name}`:i.name;if(a===t)return e.splice(r,1),!0;if(i.children&&t.startsWith(`${a}.`)&&je(i.children,t,a))return!0}return!1}function Me(e,t){for(let n of Object.keys(e))t(n)&&delete e[n]}function Ne(e,t){let n=t.search(/[?#]/),r=n===-1?t:t.slice(0,n);if(r===`/`||r.endsWith(`/`))return t;let i=e.search(/[?#]/),a=i===-1?e:e.slice(0,i);return a.length>1&&a.endsWith(`/`)?`${r}/${n===-1?``:t.slice(n)}`:t}function Pe(e,t,n=100){let r=new Set,i=[e],a=e;for(;t[a];){let e=t[a];if(r.has(e)){let t=i.indexOf(e),n=[...i.slice(t),e];throw Error(`Circular forwardTo: ${n.join(` → `)}`)}if(r.add(a),i.push(e),a=e,i.length>n)throw Error(`forwardTo chain exceeds maximum depth (${n}): ${i.join(` → `)}`)}return a}function Fe(e,n,r){let i=t(``,n,e),o=a(r);return o.registerTree(i),{tree:i,matcher:o}}function O(e){let t=Fe(e.definitions,e.rootPath,e.matcherOptions);e.tree=t.tree,e.matcher=t.matcher,e.urlParamsCache.clear()}function Ie(e){O(e),e.resolvedForwardMap=k(e.config)}function Le(e){Re(e),O(e)}function Re(e){e.definitions.length=0,Object.assign(e.config,E()),e.resolvedForwardMap=Object.create(null),e.routeCustomFields=Object.create(null)}function k(e){let t=Object.create(null);for(let n of Object.keys(e.forwardMap))t[n]=Pe(n,e.forwardMap);return t}function ze(e,t){if(typeof e!=`function`)return;let n=e.constructor.name===`AsyncFunction`,r=e.toString().includes(`__awaiter`);if(n||r)throw TypeError(`forwardTo callback cannot be async for route "${t}". Async functions break matchPath/buildPath.`)}function Be(e,t,n){if(e.canActivate){let n=typeof e.forwardTo==`string`?e.forwardTo:`[dynamic]`;s.warn(`real-router`,`Route "${t}" has both forwardTo and canActivate. canActivate will be ignored because forwardTo creates a redirect (industry standard). Move canActivate to the target route "${n}".`)}if(e.canDeactivate){let n=typeof e.forwardTo==`string`?e.forwardTo:`[dynamic]`;s.warn(`real-router`,`Route "${t}" has both forwardTo and canDeactivate. canDeactivate will be ignored because forwardTo creates a redirect (industry standard). Move canDeactivate to the target route "${n}".`)}ze(e.forwardTo,t),typeof e.forwardTo==`string`?n.forwardMap[t]=e.forwardTo:n.forwardFnMap[t]=e.forwardTo}function Ve(e,t,n,r,i,a){let o=Object.fromEntries(Object.entries(e).filter(([e])=>!Te.has(e)));Object.keys(o).length>0&&(r[t]=o),e.canActivate&&i.set(t,e.canActivate),e.canDeactivate&&a.set(t,e.canDeactivate),e.forwardTo&&Be(e,t,n),e.decodeParams&&(n.decoders[t]=t=>e.decodeParams?.(t)??t),e.encodeParams&&(n.encoders[t]=t=>e.encodeParams?.(t)??t),e.defaultParams&&(n.defaultParams[t]=e.defaultParams)}function He(e,t,n,r,i,a=``){for(let o of e){let e=a?`${a}.${o.name}`:o.name;Ve(o,e,t,n,r,i),o.children&&He(o.children,t,n,r,i,e)}}function Ue(e){let t=E();return Ee(t,e),t}function We(e,t,n){if(n.length===0)return[...e,...t];let[r,...i]=n;return e.map(e=>{if(e.name!==r)return e;let n=e.children??[];return{...e,children:i.length===0?[...n,...t]:We(n,t,i)}})}function A(e,t,n){for(let r of e){let e=t?`${t}.${r.name}`:r.name;n(e),r.children&&A(r.children,e,n)}}function Ge(e,t,n){let r=new Set;A(e,t,e=>{if(r.has(e))throw Error(`[router.${n}] Duplicate route "${e}" in batch`);r.add(e)})}function Ke(e,t){if(e.startsWith(`@@`))throw Error(`[router.${t}] Route name "${e}" uses the reserved "@@" prefix. Routes with this prefix are internal and cannot be modified through the public API.`)}function j(e,t){for(let n of e)Ke(n.name,t),n.children&&j(n.children,t)}function M(e,t,n){let r=new Map,i=(e,t)=>{for(let a of e){let e=r.get(t);if(e?.has(a.path))throw Error(`[router.${n}] Path "${a.path}" is already defined`);e?e.add(a.path):r.set(t,new Set([a.path])),a.children&&i(a.children,t?`${t}.${a.name}`:a.name)}};i(e,t)}function qe(e,t,n){if(j(t,`addRoute`),n!==void 0&&!e.matcher.hasRoute(n))throw Error(`[router.addRoute] Parent route "${n}" does not exist`);A(t,n??``,t=>{if(e.matcher.hasRoute(t))throw Error(`[router.addRoute] Route "${t}" already exists`)}),Ge(t,n??``,`addRoute`),M(t,n??``,`addRoute`)}function N(e,t,n,r,i,a,o){let s=new Map,c=new Map;He(t,n,r,s,c,i);let l=k(n),{tree:u,matcher:d}=Fe(e,a,o);return{definitions:e,config:n,routeCustomFields:r,pendingCanActivate:s,pendingCanDeactivate:c,tree:u,matcher:d,resolvedForwardMap:l}}function Je(e,t,n){return N(We(e.definitions,t.map(e=>D(e)),n===void 0?[]:n.split(`.`)),t,Ue(e.config),Object.assign(Object.create(null),e.routeCustomFields),n??``,e.rootPath,e.matcherOptions)}function P(e,t,n){return N(e.map(e=>D(e)),e,E(),Object.create(null),``,t,n)}function F(e,t,n){let r=[];for(let[i,a]of e)r.push([i,a,t(a,n)]);return r}function Ye(e,t){let n=e.depsStore,r=F(t.pendingCanActivate,n.compileGuard,`canActivate`),i=F(t.pendingCanDeactivate,n.compileGuard,`canDeactivate`);e.definitions.length=0;for(let n of t.definitions)e.definitions.push(n);Object.assign(e.config,t.config),e.routeCustomFields=t.routeCustomFields,e.tree=t.tree,e.matcher=t.matcher,e.urlParamsCache.clear(),e.resolvedForwardMap=t.resolvedForwardMap;for(let[e,t,i]of r)n.addActivateGuard(e,t,i);for(let[e,t,r]of i)n.addDeactivateGuard(e,t,r)}function Xe(e,t,n,r){let{forwardTo:i,defaultParams:a,decodeParams:o,encodeParams:s,canActivate:c,canDeactivate:l}=r,u=i===void 0?void 0:Ze(n,i,e.config),d=Qe(e,n,r),f=c==null?void 0:t.compileGuardFactory(c,`canActivate`),p=l==null?void 0:t.compileGuardFactory(l,`canDeactivate`);return t.preflightHandlerLimit(f===void 0?[]:[n],p===void 0?[]:[n],!1),d!==void 0&&(Object.keys(d).length>0?e.routeCustomFields[n]=d:delete e.routeCustomFields[n]),u!==void 0&&(e.config.forwardMap=u.forwardMap,e.config.forwardFnMap=u.forwardFnMap,e.resolvedForwardMap=u.resolved),$e(e,n,{defaultParams:a,decodeParams:o,encodeParams:s}),I(t,`activate`,n,c,f),I(t,`deactivate`,n,l,p),{forwardTo:i,defaultParams:a,decodeParams:o,encodeParams:s}}function Ze(e,t,n){ze(t,e);let r=Object.assign(Object.create(null),n.forwardMap),i=Object.assign(Object.create(null),n.forwardFnMap);return t===null?(delete r[e],delete i[e]):typeof t==`string`?(delete i[e],r[e]=t):(delete r[e],i[e]=t),{forwardMap:r,forwardFnMap:i,resolved:k({...n,forwardMap:r})}}function Qe(e,t,n){let r;for(let i of Object.keys(n)){if(Te.has(i))continue;let a=n[i];a!==void 0&&(r??={...e.routeCustomFields[t]},a===null?delete r[i]:r[i]=a)}return r}function $e(e,t,n){if(n.defaultParams!==void 0&&(n.defaultParams===null?delete e.config.defaultParams[t]:e.config.defaultParams[t]=n.defaultParams),n.decodeParams!==void 0)if(n.decodeParams===null)delete e.config.decoders[t];else{let r=n.decodeParams;e.config.decoders[t]=e=>r(e)??e}if(n.encodeParams!==void 0)if(n.encodeParams===null)delete e.config.encoders[t];else{let r=n.encodeParams;e.config.encoders[t]=e=>r(e)??e}}function I(e,t,n,r,i){r!==void 0&&(t===`activate`?r===null?e.clearCanActivate(n,!0):e.addCanActivate(n,r,!0,i):r===null?e.clearCanDeactivate(n,!0):e.addCanDeactivate(n,r,!0,i))}function et(e,t){let n=P(e,``,t);return{definitions:n.definitions,config:n.config,tree:n.tree,matcher:n.matcher,urlParamsCache:new Map,resolvedForwardMap:n.resolvedForwardMap,routeCustomFields:n.routeCustomFields,rootPath:``,matcherOptions:t,depsStore:void 0,lifecycleNamespace:void 0,pendingCanActivate:n.pendingCanActivate,pendingCanDeactivate:n.pendingCanDeactivate}}const L=[];Object.freeze(L);function tt(e){let t=e.split(`.`),n=t.length,r=[t[0]],i=t[0].length;for(let a=1;a<n-1;a++)i+=1+t[a].length,r.push(e.slice(0,i));return r.push(e),r}const nt=new Set([`string`,`number`,`boolean`]);function rt(e){return nt.has(typeof e)}function it(e,t,n,r){let i=t[e];if(!i||typeof i!=`object`)return!0;for(let e of Object.keys(i)){let t=n.params[e],i=r.params[e];if(rt(t)&&rt(i)&&String(t)!==String(i))return!1}return!0}function at(e,t,n,r,i,a){for(let o=0;o<a;o++){let a=r[o];if(a!==i[o]||!it(a,e,t,n))return o}return a}const ot=new Map;function R(e){let t=ot.get(e);if(t)return t;let n=st(e);return Object.freeze(n),ot.set(e,n),n}function st(e){if(!e)return[``];let t=e.indexOf(`.`);if(t===-1)return[e];let n=e.indexOf(`.`,t+1);if(n===-1)return[e.slice(0,t),e];let r=e.indexOf(`.`,n+1);return r===-1?[e.slice(0,t),e.slice(0,n),e]:e.indexOf(`.`,r+1)===-1?[e.slice(0,t),e.slice(0,n),e.slice(0,r),e]:tt(e)}let z,B,V=null,ct,H,U=null;function lt(e,t){if(!t)return{intersection:``,toActivate:R(e.name),toDeactivate:L};let n=fe(e),r=fe(t);if(!n&&!r)return{intersection:``,toActivate:R(e.name),toDeactivate:R(t.name)};let i=R(e.name),a=R(t.name),o=Math.min(a.length,i.length),s=at(n??r,e,t,i,a,o),c;if(s>=a.length)c=L;else if(s===0&&a.length===1)c=a;else{c=[];for(let e=a.length-1;e>=s;e--)c.push(a[e])}let l=s===0?i:i.slice(s);return{intersection:s>0?a[s-1]:``,toDeactivate:c,toActivate:l}}function W(e,t){if(V!==null&&e===z&&t===B)return V;if(U!==null&&e===ct&&t===H)return U;let n=lt(e,t);return ct=z,H=B,U=V,z=e,B=t,V=n,n}function ut(e){let t=[];for(let n of e)for(let e of n.paramMeta.urlParams)t.push(e);return t}function dt(e,t){return{name:t??e.segments.at(-1).fullName,params:e.params,meta:e.meta}}var ft=class{#e;#t;#n;get#r(){return this.#e.depsStore}constructor(e=[],t){this.#e=et(e,t)}static shouldUpdateNode(e){return(t,n)=>{if(!(t&&typeof t==`object`&&`name`in t))throw TypeError(`[router.shouldUpdateNode] toState must be valid State object`);if(t.transition.reload||e===``)return!0;let{intersection:r,toActivate:i,toDeactivate:a}=W(t,n);return e===r||i.includes(e)?!0:a.includes(e)}}setDependencies(e){this.#e.depsStore=e}flushPendingGuards(){let e=this.#r;for(let[t,n]of this.#e.pendingCanActivate)e.addActivateGuard(t,n);this.#e.pendingCanActivate.clear();for(let[t,n]of this.#e.pendingCanDeactivate)e.addDeactivateGuard(t,n);this.#e.pendingCanDeactivate.clear()}setLifecycleNamespace(e){this.#e.lifecycleNamespace=e}setRootPath(e){this.#e.rootPath=e,O(this.#e)}hasRoute(e){return this.#e.matcher.hasRoute(e)}clearRoutes(){Le(this.#e)}buildPath(e,t,n){if(e===p.UNKNOWN_ROUTE)return typeof t?.path==`string`?t.path:``;let r=Object.hasOwn(this.#e.config.defaultParams,e)?{...this.#e.config.defaultParams[e],...t}:t??{},i=typeof this.#e.config.encoders[e]==`function`?this.#e.config.encoders[e]({...r}):r;return this.#e.matcher.buildPath(e,i,this.#a(n))}matchPath(e,t){let n=t,r=this.#e.matcher.match(e);if(!r)return;let{name:i,params:a,meta:o}=dt(r),s=typeof this.#e.config.decoders[i]==`function`?this.#e.config.decoders[i](a):a,{name:c,params:l}=this.#r.forwardState(i,s),u=e;if(n.rewritePathOnMatch){let t=typeof this.#e.config.encoders[c]==`function`?this.#e.config.encoders[c]({...l}):l,r=n.trailingSlash;try{u=this.#e.matcher.buildPath(c,t,{trailingSlash:r===`never`||r===`always`?r:void 0,queryParamsMode:n.queryParamsMode}),r===`preserve`&&(u=Ne(e,u))}catch{u=e}}return this.#r.makeState(c,l,u,o)}forwardState(e,t){if(Object.hasOwn(this.#e.config.forwardFnMap,e)){let n=this.#i(e,t),r=this.#e.config.forwardFnMap[e],i=this.#o(e,r,t);return{name:i,params:this.#i(i,n)}}let n=this.#e.resolvedForwardMap[e]??e;if(n!==e&&Object.hasOwn(this.#e.config.forwardFnMap,n)){let r=this.#i(e,t),i=this.#e.config.forwardFnMap[n],a=this.#o(n,i,t);return{name:a,params:this.#i(a,r)}}if(n!==e){let r=this.#i(e,t);return{name:n,params:this.#i(n,r)}}return{name:e,params:this.#i(e,t)}}buildStateResolved(e,t){let n=this.#e.matcher.getSegmentsByName(e);if(n)return dt({segments:n,params:t,meta:this.#e.matcher.getMetaByName(e)},e)}isActiveRoute(e,t={},n=!1,r=!0){let i=this.#r.getState();if(!i)return!1;let a=i.name;if(a!==e&&!a.startsWith(`${e}.`)&&!e.startsWith(`${a}.`))return!1;let o=this.#e.config.defaultParams[e];if(n||a===e){let n={name:e,params:o?{...o,...t}:t,path:``,transition:y,context:{}};return this.#r.areStatesEqual(n,i,r)}if(!a.startsWith(`${e}.`))return!1;let s=i.params;return De(t,s)?o?Oe(r?ke(o,this.#e.matcher.getMetaByName(e)?.[e]):o,s,t):!0:!1}getMetaForState(e){return this.#e.matcher.hasRoute(e)?this.#e.matcher.getMetaByName(e):void 0}getUrlParams(e){let t=this.#e.urlParamsCache.get(e);if(t!==void 0)return t;let n=this.#e.matcher.getSegmentsByName(e),r=n?ut(n):[];return this.#e.urlParamsCache.set(e,r),r}getStore(){return this.#e}#i(e,t){return Object.hasOwn(this.#e.config.defaultParams,e)?{...this.#e.config.defaultParams[e],...t}:t}#a(e){if(this.#t)return e!==this.#n&&s.warn(`router.buildPath`,"`options` differs from the cached source reference; router options are immutable per router instance, so the first-cached buildPath options are reused (#957)."),this.#t;this.#n=e;let t=e?.trailingSlash;return this.#t=Object.freeze({trailingSlash:t===`never`||t===`always`?t:void 0,queryParamsMode:e?.queryParamsMode}),this.#t}#o(e,t,n){let r=new Set([e]),i=t(this.#r.getDependency,n),a=0;if(typeof i!=`string`)throw TypeError(`forwardTo callback must return a string, got ${typeof i}`);for(;a<100;){if(this.#e.matcher.getSegmentsByName(i)===void 0)throw Error(`Route "${i}" does not exist`);if(r.has(i)){let e=[...r,i].join(` → `);throw Error(`Circular forwardTo: ${e}`)}if(r.add(i),Object.hasOwn(this.#e.config.forwardFnMap,i)){let e=this.#e.config.forwardFnMap[i];i=e(this.#r.getDependency,n),a++;continue}let e=this.#e.config.forwardMap[i];if(e!==void 0){i=e,a++;continue}return i}throw Error(`forwardTo exceeds maximum depth of 100`)}};const pt=new Set(Object.values(d)),mt=new Set([`code`,`segment`,`path`]),ht=new Set([`setCode`,`setErrorInstance`,`setAdditionalFields`,`hasField`,`getField`,`toJSON`]);var G=class extends Error{segment;path;code;constructor(e,{message:t,segment:n,path:r,...i}={}){super(t??e),this.name=`RouterError`,this.code=e,this.segment=n,this.path=r;for(let[e,t]of Object.entries(i)){if(mt.has(e))throw TypeError(`[RouterError] Cannot set reserved property "${e}"`);ht.has(e)||(this[e]=t)}}setCode(e){this.code=e,pt.has(this.message)&&(this.message=e)}setErrorInstance(e){if(!e)throw TypeError(`[RouterError.setErrorInstance] err parameter is required and must be an Error instance`);this.message=e.message,this.cause=e.cause,this.stack=e.stack??``}setAdditionalFields(e){for(let[t,n]of Object.entries(e)){if(mt.has(t))throw TypeError(`[RouterError.setAdditionalFields] Cannot set reserved property "${t}"`);ht.has(t)||(this[t]=n)}}hasField(e){return e in this}getField(e){return this[e]}toJSON(){let e={code:this.code,message:this.message};this.segment!==void 0&&(e.segment=this.segment),this.path!==void 0&&(e.path=this.path);let t=new Set([`code`,`message`,`segment`,`path`,`stack`,`name`]);for(let n in this)Object.hasOwn(this,n)&&!t.has(n)&&(e[n]=this[n]);return e}};const gt=new G(d.ROUTER_NOT_STARTED),_t=new G(d.ROUTE_NOT_FOUND),vt=new G(d.SAME_STATES),K=Promise.reject(gt),yt=Promise.reject(_t),bt=Promise.reject(vt);K.catch(()=>{}),yt.catch(()=>{}),bt.catch(()=>{});function xt(e,t,n,r,i){Object.freeze(n),Object.freeze(r);let a={phase:`activating`,reason:`success`,segments:Object.freeze({deactivated:n,activated:r,intersection:i})};return e?.name!==void 0&&(a.from=e.name),t.reload!==void 0&&(a.reload=t.reload),t.replace!==void 0&&(a.replace=t.replace),t.redirected!==void 0&&(a.redirected=t.redirected),Object.freeze(a)}function St({signal:e,...t}){return t}function Ct(e,t){let{toState:n,fromState:r,opts:i,toDeactivate:a,toActivate:o,intersection:s}=t;if(n.name!==p.UNKNOWN_ROUTE&&!e.hasRoute(n.name)){let t=new G(d.ROUTE_NOT_FOUND,{routeName:n.name});throw e.sendTransitionFail(n,r,t),t}if(r)for(let n of a)!o.includes(n)&&t.canDeactivateFunctions.has(n)&&e.clearCanDeactivate(n);n.transition=xt(r,i,a,o,s);let c=Object.freeze(n);e.setState(c);let l=i.signal===void 0?i:St(i);return e.sendTransitionDone(c,r,l),c}function wt(e,t,n,r){let i=t;i.code===d.TRANSITION_CANCELLED||i.code===d.ROUTE_NOT_FOUND||e.sendTransitionFail(n,r,i)}function q(e,t,n){if(e instanceof DOMException&&e.name===`AbortError`)throw new G(d.TRANSITION_CANCELLED);if(e instanceof G&&e.code===d.TRANSITION_CANCELLED)throw e;Tt(e,t,n)}function Tt(e,t,n){throw e instanceof G?(e.setCode(t),e):new G(t,Dt(e,n))}const Et=new Set([`code`,`segment`,`path`,`then`]);function Dt(e,t){let n={segment:t};if(e instanceof Error)return{...n,message:e.message,stack:e.stack,...`cause`in e&&e.cause!==void 0&&{cause:e.cause}};if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))Et.has(n)||(t[n]=r);return{...n,...t}}return n}async function Ot(e,t,n){let r;try{r=await e}catch(e){q(e,t,n);return}if(!r)throw new G(t,{segment:n})}async function kt(e,t,n,r,i,a,o,s,c,l){await Ot(c,n,l);for(let c=s;c<t.length;c++){if(!o())throw new G(d.TRANSITION_CANCELLED);let s=t[c],l=e.get(s);if(!l)continue;let u=!1;try{u=l(r,i,a)}catch(e){q(e,n,s)}if(u instanceof Promise){await Ot(u,n,s);continue}if(!u)throw new G(n,{segment:s})}}async function At(e,t,n,r,i,a,o,s,c){if(await e,!s())throw new G(d.TRANSITION_CANCELLED);let l=c();if(l!==void 0&&(await l,!s()))throw new G(d.TRANSITION_CANCELLED);if(r){let e=J(t,n,d.CANNOT_ACTIVATE,i,a,o,s);if(e!==void 0&&await e,!s())throw new G(d.TRANSITION_CANCELLED)}}function jt(e,t,n,r,i,a,o,s,c,l,u){if(i){let i=J(e,n,d.CANNOT_DEACTIVATE,o,s,c,l);if(i!==void 0)return At(i,t,r,a,o,s,c,l,u)}if(!l())throw new G(d.TRANSITION_CANCELLED);let f=u();if(f!==void 0)return Mt(f,a?t:void 0,r,o,s,c,l);if(a)return J(t,r,d.CANNOT_ACTIVATE,o,s,c,l)}async function Mt(e,t,n,r,i,a,o){if(await e,!o())throw new G(d.TRANSITION_CANCELLED);if(t!==void 0){let e=J(t,n,d.CANNOT_ACTIVATE,r,i,a,o);if(e!==void 0&&await e,!o())throw new G(d.TRANSITION_CANCELLED)}}function J(e,t,n,r,i,a,o){for(let[s,c]of t.entries()){if(!o())throw new G(d.TRANSITION_CANCELLED);let l=e.get(c);if(!l)continue;let u=!1;try{u=l(r,i,a)}catch(e){q(e,n,c)}if(u instanceof Promise)return kt(e,t,n,r,i,a,o,s+1,u,c);if(!u)throw new G(n,{segment:c})}}const Nt=Object.freeze([p.UNKNOWN_ROUTE]),Pt=Object.freeze({replace:!0});function Ft(e,t){return t?.name===p.UNKNOWN_ROUTE&&!e.replace?{...e,replace:!0}:e}function It(e,t,n){return!!e&&!t.reload&&!t.force&&e.path===n.path}var Lt=class{lastSyncResolved=!1;lastSyncRejected=!1;#e;#t=null;#n=0;setDependencies(e){this.#e=e}navigate(e,t,n){this.lastSyncResolved=!1;let r=this.#e;if(!r.canNavigate())return this.lastSyncRejected=!0,K;let i;try{i=r.buildNavigateState(e,t)}catch(e){return Promise.reject(e)}return i?this.#r(i,n):(r.emitTransitionError(void 0,r.getState(),_t),this.lastSyncRejected=!0,yt)}navigateToState(e,t){this.lastSyncResolved=!1;let n=this.#e;if(!n.canNavigate())return this.lastSyncRejected=!0,K;if(e.name!==p.UNKNOWN_ROUTE&&!n.hasRoute(e.name)){let t=new G(d.ROUTE_NOT_FOUND,{routeName:e.name});return n.emitTransitionError(void 0,n.getState(),t),Promise.reject(t)}let r={name:e.name,params:e.params,path:e.path,context:{...e.context}};return this.#r(r,t)}navigateToDefault(e){this.lastSyncResolved=!1;let t=this.#e;if(!t.getOptions().defaultRoute)return Promise.reject(new G(d.ROUTE_NOT_FOUND,{routeName:`defaultRoute not configured`}));let n,r;try{({route:n,params:r}=t.resolveDefault())}catch(e){return Promise.reject(e)}return n?this.navigate(n,r,e):Promise.reject(new G(d.ROUTE_NOT_FOUND,{routeName:`defaultRoute resolved to empty`}))}navigateToNotFound(e){this.#c();let t=this.#e.getState(),n=t?R(t.name).toReversed():[];Object.freeze(n);let r={deactivated:n,activated:Nt,intersection:``};Object.freeze(r);let i={phase:`activating`,...t&&{from:t.name},reason:`success`,replace:!0,segments:r};Object.freeze(i);let a={name:p.UNKNOWN_ROUTE,params:_,path:e,transition:i,context:{}};return Object.freeze(a),this.#e.setState(a),this.#e.emitTransitionSuccess(a,t,Pt),a}abortCurrentController(e){this.#t?.abort(e??new G(d.TRANSITION_CANCELLED)),this.#t=null}#r(e,t){let n=this.#e,r,i=!1,a=null;try{if(r=n.getState(),t=Ft(t,r),It(r,t,e))return n.emitTransitionError(e,r,vt),this.lastSyncRejected=!0,bt;this.#c(t.signal);let o=++this.#n;n.startTransition(e,r),i=!0;let[s,c]=n.getLifecycleFunctions(),l=e.name===p.UNKNOWN_ROUTE,u=W(e,r),{toDeactivate:f,toActivate:m,intersection:h}=u,g=r&&!t.forceDeactivate&&f.length>0,_=!l&&m.length>0,v=s.size>0||c.size>0,y=e;if(!v){let e=this.#o(y,r,o,t,u,s);if(e!==void 0)return e}if(v){a=new AbortController,this.#t=a;let i=()=>this.#n===o&&n.isActive(),l=a.signal,u=jt(s,c,f,m,!!g,_,e,r,l,i,()=>{if(n.sendLeaveApprove(y,r),n.hasLeaveListeners())return n.awaitLeaveListeners(y,r,l)});if(u!==void 0)return this.#i(u,{toState:e,fromState:r,opts:t,toDeactivate:f,toActivate:m,intersection:h,canDeactivateFunctions:s},a,o);if(!i())throw new G(d.TRANSITION_CANCELLED);this.#s(a,!1)}let b=Ct(n,{toState:e,fromState:r,opts:t,toDeactivate:f,toActivate:m,intersection:h,canDeactivateFunctions:s});return this.lastSyncResolved=!0,Promise.resolve(b)}catch(t){return this.#a(t,a,i,e,r),Promise.reject(t)}}async#i(e,t,n,r){let i=this.#e,a=()=>this.#n===r&&!n.signal.aborted&&i.isActive(),o=t.opts.signal,s,c,l=!1,u,f=new Promise(e=>{if(n.signal.aborted){e();return}c=()=>{e()},n.signal.addEventListener(`abort`,c,{once:!0})});e.catch(()=>{});try{if(o){if(o.aborted)throw new G(d.TRANSITION_CANCELLED,{reason:o.reason});s=()=>{i.cancelNavigation(o.reason)},o.addEventListener(`abort`,s,{once:!0})}if(await Promise.race([e,f]),!a())throw new G(d.TRANSITION_CANCELLED);let n=Ct(i,t);return l=!0,n}catch(e){throw u=e,wt(i,e,t.toState,t.fromState),e}finally{s&&o?.removeEventListener(`abort`,s),c&&n.signal.removeEventListener(`abort`,c),this.#s(n,!l,u)}}#a(e,t,n,r,i){t&&this.#s(t,!0,e),n&&r&&wt(this.#e,e,r,i)}#o(e,t,n,r,i,a){let o=this.#e;if(o.sendLeaveApprove(e,t),o.hasLeaveListeners()){let s=new AbortController;this.#t=s;let c;try{c=o.awaitLeaveListeners(e,t,s.signal)}catch(e){throw this.#s(s,!0,e),e}if(c!==void 0)return this.#i(c,{toState:e,fromState:t,opts:r,toDeactivate:i.toDeactivate,toActivate:i.toActivate,intersection:i.intersection,canDeactivateFunctions:a},s,n);this.#s(s,!1);return}}#s(e,t,n){t&&e.abort(n),this.#t===e&&(this.#t=null)}#c(e){if(this.#e.isTransitioning()&&(s.warn(`router.navigate`,`Concurrent navigation detected on shared router instance. For SSR, use cloneRouter() to create isolated instance per request.`),this.#e.cancelNavigation()),e?.aborted)throw new G(d.TRANSITION_CANCELLED,{reason:e.reason})}};const Rt=Object.freeze({replace:!0});var zt=class{#e;setDependencies(e){this.#e=e}async start(e){let t=this.#e,n=t.getOptions();if(typeof e!=`string`)throw TypeError(`[router.start] path must be a string, got ${typeof e}`);let r=t.matchPath(e);if(!r&&!n.allowNotFound){let n=new G(d.ROUTE_NOT_FOUND,{path:e});throw t.emitTransitionError(void 0,void 0,n),n}return t.completeStart(),r?t.navigateToState(r,Rt):t.navigateToNotFound(e)}stop(){this.#e.clearState()}};const Y=`TREE_CHANGED`;function X(e){return e instanceof Error?e:Error(String(e))}function Bt(e,t,n){return new Promise((r,i)=>{let a=()=>{i(X(n.reason))};if(n.aborted){a();return}n.addEventListener(`abort`,a,{once:!0}),Promise.allSettled(e).then(e=>{if(n.removeEventListener(`abort`,a),n.aborted)return;if(t!==void 0){i(X(t));return}let o=e.find(e=>e.status===`rejected`);if(o!==void 0){i(X(o.reason));return}r()})})}var Z=class{#e;#t;#n;#r;#i=[];#a=0;#o;#s;#c;#l;#u;constructor(e){this.#e=e.routerFSM,this.#t=e.emitter,this.#n=e.onListenerError,this.#r=e.abortController,this.#o=void 0,this.#f()}static validateSubscribeListener(e){if(typeof e!=`function`)throw TypeError(`[router.subscribe] Expected a function. For Observable pattern use observable(router) from @real-router/rx`)}static validateSubscribeLeaveListener(e){if(typeof e!=`function`)throw TypeError(`[router.subscribeLeave] Expected a function`)}emitRouterStart(){this.#t.emit(h.ROUTER_START)}emitRouterStop(){this.#t.emit(h.ROUTER_STOP)}emitTransitionStart(e,t){this.#a++;try{this.#t.emit(h.TRANSITION_START,e,t)}finally{this.#a--}}emitTransitionSuccess(e,t,n){this.#a++;try{this.#t.emit(h.TRANSITION_SUCCESS,e,t,n)}finally{this.#a--}}emitTransitionError(e,t,n){this.#a++;try{this.#t.emit(h.TRANSITION_ERROR,e,t,n)}finally{this.#a--}}emitTransitionCancel(e,t){this.#a++;try{this.#t.emit(h.TRANSITION_CANCEL,e,t)}finally{this.#a--}}emitTransitionLeaveApprove(e,t){this.#a++;try{this.#t.emit(h.TRANSITION_LEAVE_APPROVE,e,t)}finally{this.#a--}}isProcessing(){return this.#a>0}emitTreeChanged(e){this.#t.emit(Y,e)}isEmittingTreeChanged(){return this.#t.isDispatching(Y)}subscribeTreeChanged(e){if(this.isDisposed())throw new G(d.ROUTER_DISPOSED);return this.#t.on(Y,t=>{e(t)})}treeChangedListenerCount(){return this.#t.listenerCount(Y)}sendStart(){this.#e.send(x.START)}sendStop(){this.#e.send(x.STOP)}sendDispose(){this.#e.send(x.DISPOSE)}sendStarted(){this.#e.send(x.STARTED)}sendNavigate(e,t){this.#o=e,this.#e.forceState(b.TRANSITION_STARTED),this.emitTransitionStart(e,t)}sendComplete(e,t,n={}){this.#e.forceState(b.READY),this.emitTransitionSuccess(e,t,n),this.#o=void 0}sendLeaveApprove(e,t){this.#e.forceState(b.LEAVE_APPROVED),this.emitTransitionLeaveApprove(e,t)}sendFail(e,t,n){this.#s=e,this.#c=t,this.#l=n,this.#e.send(x.FAIL),this.#o=void 0}sendFailSafe(e,t,n){this.isReady()?this.sendFail(e,t,n):this.emitTransitionError(e,t,n)}sendCancel(e,t,n){this.#s=e,this.#c=t,this.#u=n,this.#e.send(x.CANCEL),this.#o=void 0}canBeginTransition(){return this.#e.canSend(x.NAVIGATE)}canStart(){return this.#e.canSend(x.START)}canCancel(){return this.#e.canSend(x.CANCEL)}isActive(){let e=this.#e.getState();return e!==b.IDLE&&e!==b.DISPOSED}isDisposed(){return this.#e.getState()===b.DISPOSED}isTransitioning(){let e=this.#e.getState();return e===b.TRANSITION_STARTED||e===b.LEAVE_APPROVED}isLeaveApproved(){return this.#e.getState()===b.LEAVE_APPROVED}isReady(){return this.#e.getState()===b.READY}isStarting(){return this.#e.getState()===b.STARTING}addEventListener(e,t){return this.#t.on(e,t)}subscribe(e){if(this.isDisposed())throw new G(d.ROUTER_DISPOSED);return this.#t.on(h.TRANSITION_SUCCESS,(t,n)=>{let r=e({route:t,previousRoute:n});r!=null&&typeof r.then==`function`&&Promise.resolve(r).catch(e=>{this.#n(h.TRANSITION_SUCCESS,e)})})}subscribeLeave(e){if(this.isDisposed())throw new G(d.ROUTER_DISPOSED);return this.#i.push(e),()=>{let t=this.#i.indexOf(e);t!==-1&&this.#i.splice(t,1)}}hasLeaveListeners(){return this.#i.length>0}awaitLeaveListeners(e,t,n){if(t===void 0)return;let r=Object.freeze({route:t,nextRoute:e,signal:n}),i,a,o=[...this.#i];this.#a++;try{for(let e of o)try{let t=e(r);t!==void 0&&typeof t.then==`function`&&(i??=[],i.push(t))}catch(e){a===void 0&&(a=e)}}finally{this.#a--}if(i===void 0){if(a!==void 0)throw X(a);return}return Bt(i,a,n)}clearAll(){this.#t.clearAll(),this.#i.length=0}setLimits(e){this.#t.setLimits(e)}sendCancelIfPossible(e,t){let n=this.#o;!this.canCancel()||n===void 0||this.sendCancel(n,e,t)}#d(){this.emitTransitionError(this.#s,this.#c,this.#l),this.#s=void 0,this.#c=void 0,this.#l=void 0}#f(){let e=this.#e;e.on(b.STARTING,x.STARTED,()=>{this.emitRouterStart()}),e.on(b.READY,x.STOP,()=>{this.emitRouterStop()});let t=()=>{let e=this.#s,t=this.#u;this.#u=void 0,this.#r(t),e!==void 0&&this.emitTransitionCancel(e,this.#c)};e.on(b.TRANSITION_STARTED,x.CANCEL,t),e.on(b.LEAVE_APPROVED,x.CANCEL,t),e.on(b.LEAVE_APPROVED,x.FAIL,()=>{this.#d()}),e.on(b.STARTING,x.FAIL,()=>{this.#d()}),e.on(b.READY,x.FAIL,()=>{this.#d()}),e.on(b.TRANSITION_STARTED,x.FAIL,()=>{this.#d()})}};const Vt=new G(d.ROUTER_ALREADY_STARTED),Ht=new Set([`all`,`warn-error`,`error-only`,`none`]);function Ut(e){return typeof e==`string`&&Ht.has(e)}function Wt(e){return typeof e==`string`?`"${e}"`:typeof e==`object`?JSON.stringify(e):String(e)}function Gt(e){if(typeof e!=`object`)throw TypeError(`Logger config must be an object`);let t=e;for(let e of Object.keys(t))if(e!==`level`&&e!==`callback`&&e!==`callbackIgnoresLevel`)throw TypeError(`Unknown logger config property: "${e}"`);if(`level`in t&&t.level!==void 0&&!Ut(t.level))throw TypeError(`Invalid logger level: ${Wt(t.level)}. Expected: "all" | "warn-error" | "error-only" | "none"`);if(`callback`in t&&t.callback!==void 0&&typeof t.callback!=`function`)throw TypeError(`Logger callback must be a function, got ${typeof t.callback}`);if(`callbackIgnoresLevel`in t&&t.callbackIgnoresLevel!==void 0&&typeof t.callbackIgnoresLevel!=`boolean`)throw TypeError(`Logger callbackIgnoresLevel must be a boolean, got ${typeof t.callbackIgnoresLevel}`)}function Kt(e){let t=qt(e),r=()=>n(e.router).validator;Jt(e),Yt(e,t,r),Xt(e),Zt(e,t,r),Qt(e),$t(e),en(e)}function qt(e){let{router:t,dependenciesStore:n}=e,r=e=>n.dependencies[e];return e=>e(t,r)}function Jt(e){e.dependenciesStore.limits=e.limits,e.eventBus.setLimits({maxListeners:e.limits.maxListeners,warnListeners:e.limits.warnListeners})}function Yt(e,t,n){let r={compileFactory:t,getValidator:n};e.routeLifecycle.setDependencies(r)}function Xt(e){e.routes.setDependencies({addActivateGuard:(t,n,r)=>{e.routeLifecycle.addCanActivate(t,n,!0,r)},addDeactivateGuard:(t,n,r)=>{e.routeLifecycle.addCanDeactivate(t,n,!0,r)},compileGuard:(t,n)=>e.routeLifecycle.compileGuardFactory(t,n),makeState:(t,n,r,i)=>e.state.makeState(t,n,r,i),getState:()=>e.state.get(),areStatesEqual:(t,n,r)=>e.state.areStatesEqual(t,n,r),getDependency:t=>e.dependenciesStore.dependencies[t],forwardState:(t,r)=>{let i=n(e.router);return i.validator?.routes.validateStateBuilderArgs(t,r,`forwardState`),i.forwardState(t,r)}}),e.routes.setLifecycleNamespace(e.routeLifecycle)}function Zt(e,t,n){let r={addEventListener:(t,n)=>e.eventBus.addEventListener(t,n),canNavigate:()=>e.eventBus.canBeginTransition(),compileFactory:t,getValidator:n};e.plugins.setDependencies(r)}function Qt(e){e.navigation.setDependencies({getOptions:()=>e.options.get(),hasRoute:t=>e.routes.hasRoute(t),getState:()=>e.state.get(),setState:t=>{e.state.set(t)},buildNavigateState:(t,r)=>{let i=n(e.router);i.validator?.routes.validateStateBuilderArgs(t,r,`navigate`);let a=i.forwardState(t,r),o=a.name,s=C(a.params),c=e.routes.getMetaForState(o);if(c===void 0)return;let l=i.buildPath(o,s);return e.state.makeState(o,s,l,c,!0)},resolveDefault:()=>{let t=e.options.get(),r=n(e.router),i=ce(t.defaultRoute,t=>e.dependenciesStore.dependencies[t]),a=ce(t.defaultParams,t=>e.dependenciesStore.dependencies[t]);return typeof t.defaultRoute==`function`&&r.validator?.options.validateResolvedDefaultRoute(i,r.routeGetStore()),{route:i,params:a}},startTransition:(t,n)=>{e.eventBus.sendNavigate(t,n)},cancelNavigation:t=>{e.eventBus.sendCancelIfPossible(e.state.get(),t)},sendTransitionDone:(t,n,r)=>{e.eventBus.sendComplete(t,n,r)},sendTransitionFail:(t,n,r)=>{e.eventBus.sendFail(t,n,r)},emitTransitionError:(t,n,r)=>{e.eventBus.sendFailSafe(t,n,r)},emitTransitionSuccess:(t,n,r)=>{e.eventBus.emitTransitionSuccess(t,n,r)},sendLeaveApprove:(t,n)=>{e.eventBus.sendLeaveApprove(t,n)},canNavigate:()=>e.eventBus.canBeginTransition(),getLifecycleFunctions:()=>e.routeLifecycle.getFunctions(),isActive:()=>e.router.isActive(),isTransitioning:()=>e.eventBus.isTransitioning(),clearCanDeactivate:t=>{e.routeLifecycle.clearCanDeactivate(t)},hasLeaveListeners:()=>e.eventBus.hasLeaveListeners(),awaitLeaveListeners:(t,n,r)=>e.eventBus.awaitLeaveListeners(t,n,r)})}function $t(e){e.lifecycle.setDependencies({getOptions:()=>e.options.get(),navigateToState:(t,n)=>e.navigation.navigateToState(t,n),navigateToNotFound:t=>e.navigation.navigateToNotFound(t),clearState:()=>{e.state.set(void 0)},matchPath:t=>e.routes.matchPath(t,e.options.get()),completeStart:()=>{e.eventBus.sendStarted()},emitTransitionError:(t,n,r)=>{e.eventBus.sendFail(t,n,r)}})}function en(e){e.state.setDependencies({getDefaultParams:()=>e.routes.getStore().config.defaultParams,buildPath:(t,r)=>n(e.router).buildPath(t,r),getUrlParams:t=>e.routes.getUrlParams(t)})}const Q=Object.freeze({}),tn=new Set([d.SAME_STATES,d.TRANSITION_CANCELLED,d.ROUTER_NOT_STARTED,d.ROUTE_NOT_FOUND,d.CANNOT_ACTIVATE,d.CANNOT_DEACTIVATE]);function nn(e,t){s.error(`Router`,`Error in listener for ${e}:`,t)}var rn=class t{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;constructor(n=[],r={},a={}){let{logger:c,...l}=r;c&&(Gt(c),s.configure(c)),ue.validateOptionsIsObject(r),ne(a),n.length>0&&S(n),this.#e=new ue(l),this.#t=ie(l.limits),this.#n=ae(a),this.#r=new me,this.#i=new ft(n,an(this.#e.get())),this.#a=new we,this.#o=new ve,this.#s=new Lt,this.#c=new zt;let d=te(),f=new u({onListenerError:nn,onListenerWarn:(e,t)=>{s.warn(`router.addEventListener`,`Event "${e}" has ${t} listeners — possible memory leak`)}});this.#l=new Z({routerFSM:d,emitter:f,onListenerError:nn,abortController:e=>{this.#s.abortCurrentController(e)}});let p=new Map;o(this,{makeState:(e,t,n,r)=>this.#r.makeState(e,t,n,r),forwardState:i(`forwardState`,(e,t)=>this.#i.forwardState(e,t),p),buildStateResolved:(e,t)=>this.#i.buildStateResolved(e,t),matchPath:(e,t)=>this.#i.matchPath(e,t),getOptions:()=>this.#e.get(),addEventListener:(e,t)=>this.#l.addEventListener(e,t),treeChanged:{emit:e=>{this.#l.emitTreeChanged(e)},subscribe:e=>this.#l.subscribeTreeChanged(e),listenerCount:()=>this.#l.treeChangedListenerCount(),isEmitting:()=>this.#l.isEmittingTreeChanged()},buildPath:i(`buildPath`,(e,t)=>this.#i.buildPath(e,t??_,this.#e.get()),p),emitTransitionError:e=>{this.#l.sendFailSafe(void 0,this.#r.get(),e)},emitTransitionSuccess:(e,t,n)=>{this.#l.emitTransitionSuccess(e,t,n)},navigateToNotFound:e=>this.#s.navigateToNotFound(e),start:e(`start`,e=>this.#c.start(e),p),navigateToState:(e,n)=>{this.#m();let r=this.#s.navigateToState(e,n??Q);return this.#s.lastSyncResolved?this.#s.lastSyncResolved=!1:this.#s.lastSyncRejected?this.#s.lastSyncRejected=!1:t.#p(r),r},interceptors:p,setRootPath:e=>{this.#i.setRootPath(e)},getRootPath:()=>this.#i.getStore().rootPath,getTree:()=>this.#i.getStore().tree,isDisposed:()=>this.#l.isDisposed(),validator:null,dependenciesGetStore:()=>this.#n,getCloneState:()=>({options:{...this.#e.get()},dependencies:{...this.#n.dependencies},pluginFactories:this.#o.getAll()}),routeGetStore:()=>this.#i.getStore(),getStateName:()=>this.#r.get()?.name,isTransitioning:()=>this.#l.isTransitioning(),clearState:()=>{this.#r.set(void 0)},setState:e=>{this.#r.set(e)},routerExtensions:[],contextClaimRecords:new Set,hydrationState:null}),Kt({router:this,options:this.#e,limits:this.#t,dependenciesStore:this.#n,state:this.#r,routes:this.#i,routeLifecycle:this.#a,plugins:this.#o,navigation:this.#s,lifecycle:this.#c,eventBus:this.#l}),this.isActiveRoute=this.isActiveRoute.bind(this),this.buildPath=this.buildPath.bind(this),this.getState=this.getState.bind(this),this.getPreviousState=this.getPreviousState.bind(this),this.areStatesEqual=this.areStatesEqual.bind(this),this.shouldUpdateNode=this.shouldUpdateNode.bind(this),this.isActive=this.isActive.bind(this),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.dispose=this.dispose.bind(this),this.canNavigateTo=this.canNavigateTo.bind(this),this.usePlugin=this.usePlugin.bind(this),this.navigate=this.navigate.bind(this),this.navigateToDefault=this.navigateToDefault.bind(this),this.navigateToNotFound=this.navigateToNotFound.bind(this),this.subscribe=this.subscribe.bind(this),this.subscribeLeave=this.subscribeLeave.bind(this),this.isLeaveApproved=this.isLeaveApproved.bind(this);try{this.#i.flushPendingGuards()}catch(e){throw this.dispose(),e}}isActiveRoute(e,t,r,i){return n(this).validator?.routes.validateIsActiveRouteArgs(e,t,r,i),n(this).validator?.routes.validateRouteName(e,`isActiveRoute`),e===``?(s.warn(`real-router`,`isActiveRoute("") called with empty string. Root node is not considered a parent of any route.`),!1):this.#i.isActiveRoute(e,t,r,i)}buildPath(e,t){let r=n(this);return r.validator?.routes.validateBuildPathArgs(e),r.validator?.navigation.validateParams(t,`buildPath`),r.buildPath(e,C(t))}getState(){return this.#r.get()}getPreviousState(){return this.#r.getPrevious()}areStatesEqual(e,t,r=!0){return n(this).validator?.state.validateAreStatesEqualArgs(e,t,r),this.#r.areStatesEqual(e,t,r)}shouldUpdateNode(e){return n(this).validator?.routes.validateShouldUpdateNodeArgs(e),ft.shouldUpdateNode(e)}isActive(){return this.#l.isActive()}start(e){if(!this.#l.canStart())return Promise.reject(Vt);n(this).validator?.navigation.validateStartArgs(e),this.#l.sendStart();let r;try{r=n(this).start(e)}catch(e){r=Promise.reject(e)}let i=r.catch(e=>this.#h(e));return t.#p(i,t.#f),i}stop(){return this.#l.sendCancelIfPossible(this.#r.get()),!this.#l.isReady()&&!this.#l.isTransitioning()?this:(this.#c.stop(),this.#l.sendStop(),this)}dispose(){if(this.#l.isDisposed())return;this.#l.sendCancelIfPossible(this.#r.get()),(this.#l.isReady()||this.#l.isTransitioning())&&(this.#c.stop(),this.#l.sendStop()),this.#l.sendDispose(),this.#l.clearAll(),this.#o.disposeAll();let e=n(this);for(let t of e.routerExtensions)for(let e of t.keys)delete this[e];e.routerExtensions.length=0,e.contextClaimRecords.clear(),this.#i.clearRoutes(),this.#a.clearAll(),this.#r.reset(),this.#n.dependencies=Object.create(null),this.#g()}canNavigateTo(e,t){let r=n(this);if(r.validator?.routes.validateRouteName(e,`canNavigateTo`),r.validator?.navigation.validateParams(t,`canNavigateTo`),!this.#i.hasRoute(e))return!1;let{name:i,params:a}=r.forwardState(e,t??{}),o;try{let e=C(a),t=this.#i.getMetaForState(i),n=r.buildPath(i,e);o=this.#r.makeState(i,e,n,t,!0)}catch{return!1}let s=this.#r.get(),{toDeactivate:c,toActivate:l}=W(o,s);return this.#a.canNavigateTo(c,l,o,s)}usePlugin(...e){let t=e.filter(Boolean);if(t.length===0)return()=>{};let r=n(this);r.validator?.plugins.validatePluginLimit(this.#o.count(),this.#t);for(let e of t)r.validator?.plugins.validateNoDuplicatePlugins(e,this.#o.getAll());return this.#o.use(...t)}subscribe(e){return Z.validateSubscribeListener(e),this.#l.subscribe(e)}subscribeLeave(e){return Z.validateSubscribeLeaveListener(e),this.#l.subscribeLeave(e)}isLeaveApproved(){return this.#l.isLeaveApproved()}navigate(e,r,i){this.#m();let a=n(this);a.validator?.navigation.validateNavigateArgs(e),a.validator?.navigation.validateParams(r,`navigate`);let o=i??Q;a.validator?.navigation.validateNavigationOptions(o,`navigate`);let s=this.#s.navigate(e,r??_,o);return this.#s.lastSyncResolved?this.#s.lastSyncResolved=!1:this.#s.lastSyncRejected?this.#s.lastSyncRejected=!1:t.#p(s),s}navigateToDefault(e){this.#m();let r=n(this);r.validator?.navigation.validateNavigateToDefaultArgs(e);let i=e??Q;r.validator?.navigation.validateNavigationOptions(i,`navigateToDefault`);let a=this.#s.navigateToDefault(i);return this.#s.lastSyncResolved?this.#s.lastSyncResolved=!1:this.#s.lastSyncRejected?this.#s.lastSyncRejected=!1:t.#p(a),a}navigateToNotFound(e){if(this.#m(),!this.#l.isActive())throw new G(d.ROUTER_NOT_STARTED);if(e!==void 0&&typeof e!=`string`)throw TypeError(`[router.navigateToNotFound] path must be a string, got ${typeof e}`);let t=e??this.#r.get().path;return this.#s.navigateToNotFound(t)}static#u(e){return e instanceof G&&tn.has(e.code)}static#d=e=>{t.#u(e)||s.error(`router.navigate`,`Unexpected navigation error`,e)};static#f=e=>{t.#u(e)||s.error(`router.start`,`Unexpected start error`,e)};static#p(e,n=t.#d){e.catch(n)}#m(){if(this.#l.isProcessing())throw new G(d.REENTRANT_NAVIGATION)}#h(e){throw this.#l.isReady()&&this.#r.get()===void 0?(this.#c.stop(),this.#l.sendStop()):this.#l.isStarting()&&this.#l.sendFail(void 0,void 0,e),e}#g(){this.navigate=$,this.navigateToDefault=$,this.navigateToNotFound=$,this.start=$,this.stop=$,this.usePlugin=$,this.subscribe=$,this.subscribeLeave=$,this.canNavigateTo=$}};function $(){throw new G(d.ROUTER_DISPOSED)}function an(e){return{strictTrailingSlash:e.trailingSlash===`strict`,caseSensitive:e.caseSensitive,strictQueryParams:e.queryParamsMode===`strict`,urlParamsEncoding:e.urlParamsEncoding,queryParams:e.queryParams}}export{h as S,je as _,Ge as a,p as b,Ke as c,Xe as d,Ie as f,Me as g,Ee as h,qe as i,Je as l,Pe as m,G as n,M as o,Le as p,Ye as r,j as s,rn as t,P as u,S as v,d as x,f as y};
2
+ //# sourceMappingURL=Router-BbTrW9yV.mjs.map