@real-router/core 0.132.8 → 0.134.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/cjs/Router-DSHn-OMr.js +2 -0
  2. package/dist/cjs/Router-DSHn-OMr.js.map +1 -0
  3. package/dist/cjs/Router.d.ts.map +1 -1
  4. package/dist/cjs/api.js +1 -1
  5. package/dist/cjs/api.js.map +1 -1
  6. package/dist/cjs/index.js +1 -1
  7. package/dist/cjs/internals-BGTllfGV.js.map +1 -1
  8. package/dist/cjs/internals.d.ts +17 -0
  9. package/dist/cjs/internals.d.ts.map +1 -1
  10. package/dist/cjs/namespaces/RoutesNamespace/routesStore.d.ts +5 -4
  11. package/dist/cjs/namespaces/RoutesNamespace/routesStore.d.ts.map +1 -1
  12. package/dist/cjs/pipeline/port.d.ts +30 -9
  13. package/dist/cjs/pipeline/port.d.ts.map +1 -1
  14. package/dist/cjs/types/api.d.ts +16 -0
  15. package/dist/cjs/types/api.d.ts.map +1 -1
  16. package/dist/esm/Router-Vyf1k63r.mjs +2 -0
  17. package/dist/esm/Router-Vyf1k63r.mjs.map +1 -0
  18. package/dist/esm/Router.d.mts.map +1 -1
  19. package/dist/esm/api.mjs +1 -1
  20. package/dist/esm/api.mjs.map +1 -1
  21. package/dist/esm/index.mjs +1 -1
  22. package/dist/esm/internals-CcqRqpm9.mjs.map +1 -1
  23. package/dist/esm/internals.d.mts +17 -0
  24. package/dist/esm/internals.d.mts.map +1 -1
  25. package/dist/esm/namespaces/RoutesNamespace/routesStore.d.mts +5 -4
  26. package/dist/esm/namespaces/RoutesNamespace/routesStore.d.mts.map +1 -1
  27. package/dist/esm/pipeline/port.d.mts +30 -9
  28. package/dist/esm/pipeline/port.d.mts.map +1 -1
  29. package/dist/esm/types/api.d.mts +16 -0
  30. package/dist/esm/types/api.d.mts.map +1 -1
  31. package/package.json +1 -1
  32. package/dist/cjs/Router-BPMxquQn.js +0 -2
  33. package/dist/cjs/Router-BPMxquQn.js.map +0 -1
  34. package/dist/esm/Router-Df6x8P8M.mjs +0 -2
  35. package/dist/esm/Router-Df6x8P8M.mjs.map +0 -1
@@ -131,6 +131,22 @@ export interface PluginApi {
131
131
  * beats such a twin, matching the other five.
132
132
  */
133
133
  buildNavigationState: (name: string, params?: Params, search?: SearchParams) => State | undefined;
134
+ /**
135
+ * Prints a path for an intent you have ALREADY resolved, without running the
136
+ * `forwardState` chain again (#2260).
137
+ *
138
+ * Use it when you have just called `forwardState` yourself and want the URL
139
+ * for what it returned — building an `href` is the case this exists for.
140
+ * `router.buildPath` runs the chain one door lower (#2087), which is right
141
+ * for a caller holding a RAW intent and a second pass for one holding a
142
+ * resolved one; a plugin's interceptor should see one pass per operation.
143
+ *
144
+ * Identical to `router.buildPath` in every other respect: the route's
145
+ * `defaultParams` / `defaultSearch` are merged, `forwardTo` is NOT resolved
146
+ * (that is what you already did), and an unprintable intent throws the same
147
+ * error from the same place.
148
+ */
149
+ buildPathResolved: (name: string, params?: Params, search?: SearchParams) => string;
134
150
  getOptions: () => AnyOptions;
135
151
  getTree: () => unknown;
136
152
  addInterceptor: <M extends keyof InterceptableMethodMap>(method: M, fn: InterceptorFn<M>) => Unsubscribe;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.mts","names":[],"sources":["../../../src/types/api.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;iBA2CiB;EACf,QAAQ,kBAAkB,QAAQ;EAClC,eACE,mBACA,aAAa,QACb,cAAc,iBACX;;;;;;YAOK,cAAc,gBAAgB,2BACxC,MAAM,uBAAuB,OAC1B,MAAM,WAAW,uBAAuB,QACxC,WAAW,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwCtB,sBAAsB;EACrC,QAAQ,OAAO,OAAO,OAAO;EAC7B;;;;;;iBAOe;EACf,YAAY,UAAU,SAAS,QAAQ,UAAU,eAAe,cAC9D,cACA,SAAS,GACT,SAAS,GACT,kBACG,MAAM,GAAG;EAEd,eACE,UAAU,SAAS,QACnB,UAAU,eAAe,cAEzB,mBACA,aAAa,GACb,cAAc,MACX,YAAY,GAAG;EAEpB,YAAY,UAAU,SAAS,QAAQ,iBAAiB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B9D,kBACE,OAAO,OACP,UAAU,sBACP,QAAQ;;;;;;;EAQb,cAAc;EACd;EAEA,mBAAmB,UAAU,WAC3B,WAAW,GACX,IAAI,OAAO,eAAe,QACvB;;;;;;;;;;;;EAaL,uBACE,cACA,SAAS,QACT,SAAS,iBACN;EAEL,kBAAkB;EAElB;EAEA,iBAAiB,gBAAgB,wBAC/B,QAAQ,GACR,IAAI,cAAc,OACf;EAEL,eAAe,YAAY,4BAA4B;;;;;;;;;;;;;;;EAgBvD,sBAAsB,OAAO;EAE7B;KAEG,gBAAgB,uBACf,WAAW,IACV,sBAAsB,aAAa;KACrC,oBAAoB;;;;;;;;;;;;;;;;;;;EAoBvB,iBAAiB,iBAAiB;;;;;iBAMnB,UACf,qBAAqB,sBAAsB;EAE3C,MACE,QAAQ,MAAM,kBAAkB,MAAM,eACtC;IAAY;;EAGd,SAAS;;;;;;;;;;;EAYT,SAAS,cAAc,SAAS,kBAAkB;EAElD;EAEA,UAAU,QAAQ,MAAM,kBAAkB,MAAM;EAEhD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BN,MAAM,iBAAiB,MAAM;;;;;;;;;;;;;EAc7B,mBACE,UAAU,OAAO,iBAAiB,2BAC/B;;;;;iBAMU,gBACf,qBAAqB,sBAAsB;EAE3C,MAAM,gBAAgB,cAAc,KAAK,MAAM,aAAa;EAC5D,cAAc,QAAQ;EACtB,MAAM,gBAAgB,uBACpB,MAAM,GACN,OAAO,aAAa;EAEtB,SAAS,MAAM;EACf,SAAS,YAAY;EACrB;EACA,MAAM,YAAY;;;;;iBAMH,aACf,qBAAqB,sBAAsB;EAE3C,mBACE,cACA,oBAAoB,eAAe;EAErC,qBACE,cACA,sBAAsB,eAAe;EAEvC,sBAAsB;EACtB,wBAAwB"}
1
+ {"version":3,"file":"api.d.mts","names":[],"sources":["../../../src/types/api.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;iBA2CiB;EACf,QAAQ,kBAAkB,QAAQ;EAClC,eACE,mBACA,aAAa,QACb,cAAc,iBACX;;;;;;YAOK,cAAc,gBAAgB,2BACxC,MAAM,uBAAuB,OAC1B,MAAM,WAAW,uBAAuB,QACxC,WAAW,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwCtB,sBAAsB;EACrC,QAAQ,OAAO,OAAO,OAAO;EAC7B;;;;;;iBAOe;EACf,YAAY,UAAU,SAAS,QAAQ,UAAU,eAAe,cAC9D,cACA,SAAS,GACT,SAAS,GACT,kBACG,MAAM,GAAG;EAEd,eACE,UAAU,SAAS,QACnB,UAAU,eAAe,cAEzB,mBACA,aAAa,GACb,cAAc,MACX,YAAY,GAAG;EAEpB,YAAY,UAAU,SAAS,QAAQ,iBAAiB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B9D,kBACE,OAAO,OACP,UAAU,sBACP,QAAQ;;;;;;;EAQb,cAAc;EACd;EAEA,mBAAmB,UAAU,WAC3B,WAAW,GACX,IAAI,OAAO,eAAe,QACvB;;;;;;;;;;;;EAaL,uBACE,cACA,SAAS,QACT,SAAS,iBACN;;;;;;;;;;;;;;;;EAiBL,oBACE,cACA,SAAS,QACT,SAAS;EAGX,kBAAkB;EAElB;EAEA,iBAAiB,gBAAgB,wBAC/B,QAAQ,GACR,IAAI,cAAc,OACf;EAEL,eAAe,YAAY,4BAA4B;;;;;;;;;;;;;;;EAgBvD,sBAAsB,OAAO;EAE7B;KAEG,gBAAgB,uBACf,WAAW,IACV,sBAAsB,aAAa;KACrC,oBAAoB;;;;;;;;;;;;;;;;;;;EAoBvB,iBAAiB,iBAAiB;;;;;iBAMnB,UACf,qBAAqB,sBAAsB;EAE3C,MACE,QAAQ,MAAM,kBAAkB,MAAM,eACtC;IAAY;;EAGd,SAAS;;;;;;;;;;;EAYT,SAAS,cAAc,SAAS,kBAAkB;EAElD;EAEA,UAAU,QAAQ,MAAM,kBAAkB,MAAM;EAEhD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BN,MAAM,iBAAiB,MAAM;;;;;;;;;;;;;EAc7B,mBACE,UAAU,OAAO,iBAAiB,2BAC/B;;;;;iBAMU,gBACf,qBAAqB,sBAAsB;EAE3C,MAAM,gBAAgB,cAAc,KAAK,MAAM,aAAa;EAC5D,cAAc,QAAQ;EACtB,MAAM,gBAAgB,uBACpB,MAAM,GACN,OAAO,aAAa;EAEtB,SAAS,MAAM;EACf,SAAS,YAAY;EACrB;EACA,MAAM,YAAY;;;;;iBAMH,aACf,qBAAqB,sBAAsB;EAE3C,mBACE,cACA,oBAAoB,eAAe;EAErC,qBACE,cACA,sBAAsB,eAAe;EAEvC,sBAAsB;EACtB,wBAAwB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@real-router/core",
3
- "version": "0.132.8",
3
+ "version": "0.134.0",
4
4
  "type": "commonjs",
5
5
  "description": "A simple, powerful, view-agnostic, modular and extensible router",
6
6
  "main": "./dist/cjs/index.js",
@@ -1,2 +0,0 @@
1
- const e=require("./ingest-C6HQ7xXf.js"),t=require("./helpers-RoLubPTf.js"),n=require("./internals-BGTllfGV.js");function r(n){if(n())throw t.y(new t.v(e.m.ROUTER_DISPOSED))}function i(n,r){if(n())throw t.y(new t.v(e.m.REENTRANT_TREE_MUTATION,{message:`[router] cannot mutate the route tree from inside a subscribeChanges handler — the mutation would run while a TREE_CHANGED emit is on the stack and the tree must stay atomic. Defer it: queueMicrotask(() => routes.add(...)) or await.`}));if(r())throw t.y(new t.v(e.m.REENTRANT_TREE_MUTATION,{message:`[router] cannot mutate the route tree from inside replace()'s revalidation — the tree would move under a state that has not been revalidated yet. Defer it: queueMicrotask(() => routes.replace(...)) or await.`}))}const a=Object.entries,o=Object.hasOwn;function s(t,n,r){if(t===void 0||r.length===0)return t;let i,s=!1;for(let[c,l]of a(t)){if(o(n,c)&&n[c]!==void 0&&r.includes(c)){s=!0;continue}i??={},e.a(i,c,l)}return i===void 0?s?void 0:t:i}function c(e,t,r){for(let[i,o]of a(e))n.g(r,i,o,t(i),"this route's `defaultParams`","Move it to `defaultSearch`")}const l=Object.entries,u=Object.freeze;function d(t,n,r){let i,a=!1;for(let[o,s]of l(t))n.includes(o)?(i??={},e.a(i,o,s)):(a=!0,r?.(o));return a?u(i??e.u):t}function f(e,t){let n=e.path,r=n.startsWith(`~`),i=r?n.slice(1):n,a=i!==``&&!i.startsWith(`/`)&&!i.startsWith(`?`)?`/${i}`:i,o={name:e.name,path:a,absolute:r,children:[],parent:t};if(e.children)for(let t of e.children){let e=f(t,o);o.children.push(e)}return o}function p(e,t,n){let r=f({name:e,path:t},null);for(let e of n){let t=f(e,r);r.children.push(t)}return r}const m=/[^\w!$'()*+,.:;|~-]/gu,h=/[^\w!$'()*+,.:;|~-]/u,g=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,_=e=>t=>{try{return e(t)}catch{return e(t.replaceAll(g,`�`))}},v=_(e=>e.replaceAll(m,e=>encodeURIComponent(e))),y={default:e=>h.test(e)?v(e):e,uri:_(encodeURI),uriComponent:_(encodeURIComponent),none:e=>e},b={default:decodeURIComponent,uri:decodeURI,uriComponent:decodeURIComponent,none:e=>e},ee=(e,t)=>{let n=y[t],r=String(e).split(`/`),i=n(r[0]);for(let e=1;e<r.length;e++)i+=`/`+n(r[e]);return i},x=Object.freeze(Object.create(null));function S(){return{staticChildren:x,hasChildren:!1,paramChild:void 0,splatChild:void 0,route:void 0,slashChildRoute:void 0}}function C(e){return e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e}function te(e,t){return e===``?t:t===``?e:e.endsWith(`/`)&&t.startsWith(`/`)?e+t.slice(1):e+t}function ne(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function re(e){let t=0;for(;t<e.length;)if(e.codePointAt(t)===37){if(t+2>=e.length)return!1;let n=e.codePointAt(t+1)??0,r=e.codePointAt(t+2)??0;if(!ne(n)||!ne(r))return!1;t+=3}else t++;return!0}const ie=Object.freeze([]),ae=Object.freeze(new Set),oe=Object.freeze([]),se=Object.freeze({}),ce=Object.freeze({}),le=Object.freeze({});function ue(e,t){let n=e.kind===`splat`;return{paramName:e.name,encoder:n?e=>ee(e,t):y[t]}}function de(e,t,r,i){let a=new Set(i);for(let e of t)for(let t of e.paramMeta.urlParams)a.add(t);if(a.size===0)return{buildStaticParts:[e],buildParamSlots:oe};let o=[],s=[],c=``,l=n.h(e),u=l.length-1;for(let[e,t]of l.entries()){let i=n.m(t);if(`error`in i||i.kind!==`splat`||e===u){if(e>0&&(c+=`/`),`error`in i||i.kind===`static`){c+=t;continue}o.push(c),c=``,s.push(ue(i,r))}}return o.push(c),{buildStaticParts:o,buildParamSlots:s}}function fe(e,t,n){throw Error(`[SegmentMatcher.registerTree] Parameter name conflict at the same path position: '${n}${e}' and '${n}${t}'. One position binds one name across every route that shares it. Rename one — e.g. use '${n}${e}' in both.`)}function pe(){throw Error(`[SegmentMatcher.registerTree] Empty parameter name: a ':'/'*' marker must be followed by a name (e.g. ':id', '*rest'), and a segment cannot end in a bare '?'.`)}function me(e){throw Error(`[SegmentMatcher.registerTree] Fused parameter marker in segment "${e}": a ':'/'*' marker must begin a segment — write 'a/:b', not 'a:b'.`)}function he(e){throw Error(`[SegmentMatcher.registerTree] Trailing parameter marker in segment "${e}": a param name cannot end in a bare ':' or '*'. Drop the stray marker.`)}function ge(e){throw Error(`[SegmentMatcher.registerTree] Optional params are not supported: "${e}" — declare two sibling routes instead, one with the segment and one without.`)}function _e(e){throw Error(`[SegmentMatcher.registerTree] Regex constraints are not supported: '<' and '>' are reserved in path segments ("${e}"). Match it as a plain string and validate the value in a canActivate guard.`)}function ve(e){throw Error(`[SegmentMatcher.registerTree] Non-ASCII static segment "${e}": match compares static keys raw and rejects non-ASCII input, so this route can never match. Percent-encode it (e.g. "/caf%C3%A9") or use a param.`)}function ye(e,t){switch(e){case`name-less`:return pe();case`trailing-marker`:return he(t);case`fused-marker`:return me(t);case`optional-removed`:return ge(t);case`constraint-removed`:return _e(t)}}function be(e,t){let n=new Set,r=``;for(let e of t){if(n.has(e)){r=e;break}n.add(e)}throw Error(`[SegmentMatcher.registerTree] Duplicate parameter name '${r}' in route "${e}": a name must be unique within a route — the second position overwrites the first. Rename one.`)}function xe(e,t){throw Error(`[SegmentMatcher.registerTree] Invalid query-param declaration "${t}" in route "${e}": a query-param name cannot contain '<' or '>'. Rename it.`)}function Se(e){throw Error(`[SegmentMatcher.registerTree] Double slashes are not allowed in path "${e}": the route would build a URL its own matcher refuses. Remove the empty segment.`)}function Ce(e,t){throw Error(`[SegmentMatcher.registerTree] Duplicate route path: routes "${e}" and "${t}" resolve to the same URL — the later would shadow the earlier. Give them distinct paths.`)}function we(e,t){throw Error(`[SegmentMatcher.registerTree] Index route "${e}" (path "/") under the splat parent "${t}" is unreachable: the wildcard match never reaches the index node. Give the index a distinct path, or make the parent static.`)}function Te(e,t){return e.paramChild?e.paramChild.name!==t&&fe(e.paramChild.name,t,`:`):e.paramChild={node:S(),name:t},e.paramChild.node}function Ee(e,t){return e.splatChild?e.splatChild.name!==t&&fe(e.splatChild.name,t,`*`):e.splatChild={node:S(),name:t},e.splatChild.node}const De=Object.create;function Oe(e,t){e.route!==void 0&&e.route!==t&&Ce(e.route.name,t.name),e.route=t}function ke(e){for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>=128)return!0;return!1}function Ae(e,t,n){let r=C(n);if(r===`/`){Oe(e.root,t);return}je(e,e.root,r,1,t)}function je(e,t,n,r,i){let a=n.length;for(;r<=a;){let i=n.indexOf(`/`,r),o=i===-1?a:i,s=n.slice(r,o);t=Fe(e,t,s),r=o+1}Oe(t,i)}function Me(e,t,n){let r=n.length;for(;r>1&&n.codePointAt(r-1)===47;)--r;let i=n.slice(0,r);i.slice(i.lastIndexOf(`/`)+1).startsWith(`*`)&&we(t.name,n);let a=Ne(e,n);a.slashChildRoute=t}function Ne(e,t){return Pe(e,e.root,t)}function Pe(e,t,n){let r=C(n);if(r===`/`||r===``)return t;let i=t,a=1,o=r.length;for(;a<=o;){let t=r.indexOf(`/`,a),n=t===-1?o:t;if(n<=a)break;let s=r.slice(a,n);i=Fe(e,i,s),a=n+1}return i}function Fe(e,t,r){let i=n.m(r);if(`error`in i&&pe(),i.kind===`splat`){let e=Ee(t,i.name);return t.hasChildren=!0,e}if(i.kind===`param`){let e=Te(t,i.name);return t.hasChildren=!0,e}ke(r)&&ve(r);let a=e.options.caseSensitive?r:r.toLowerCase();return a in t.staticChildren||(t.staticChildren===x&&(t.staticChildren=De(null)),t.staticChildren[a]=S(),t.hasChildren=!0),t.staticChildren[a]}const w=Object.freeze,Ie=Object.hasOwn;function Le(e){let t=n.h(e);for(let[n,r]of t.entries())r===``&&n>0&&n<t.length-1&&Se(e)}function Re(e){for(let t of n.h(e)){let e=n.m(t);`error`in e&&ye(e.error,t)}}function ze(e,t,r,i,a){let o=t.fullName===``;o||i.push(t);let s=t.absolute,c=t.paramMeta===n.d?t.path:t.paramMeta.pathPattern,l=s&&c.startsWith(`~`)?c.slice(1):c,u=s?l:c;Le(t.path),Re(u);let d=u,f=s?d:te(r,d),p=o?a:Be(e,t,f,s?``:r,i,a);for(let n of t.children.values())ze(e,n,f,i,p);o||i.pop()}function Be(e,t,n,r,i,a){let o=Ge(n,r),s=w([...i]),c=Ve(s),l=C(n),u=w(Ke(e.rootQueryParams,i)),{buildStaticParts:d,buildParamSlots:f}=de(o?C(r):l,o?i.slice(0,-1):i,e.options.urlParamsEncoding,e.rootUrlParams),p=f.map(e=>e.paramName),m=p.length===0?ae:new Set(p);m.size!==p.length&&be(t.fullName,p),qe(t.fullName,u);let h={name:t.fullName,parent:a,matchSegments:s,meta:c,declaredQueryParams:u,declaredQueryParamsSet:u.length===0?ae:new Set(u),hasTrailingSlash:n.length>1&&n.endsWith(`/`),buildStaticParts:d,buildParamSlots:f,buildParamNamesSet:m,cachedResult:void 0};return t.paramMeta.urlParams.length===0&&(h.cachedResult=w({segments:h.matchSegments,params:se,search:ce,meta:h.meta})),e.routesByName.set(t.fullName,h),o?Ue(e,h,r):We(e,h,n,l,t),h}function Ve(t){let n;for(let r of t)He(r.paramTypeMap)&&(n??=e.r(),n[r.fullName]=r.paramTypeMap);return n===void 0?le:w(e.t(e.i(n)))}function He(e){for(let t in e)if(Ie(e,t))return!0;return!1}function Ue(e,t,n){Me(e,t,n);let r=C(n),i=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.has(i)&&e.staticCache.set(i,t)}function We(e,t,n,r,i){if(Ae(e,t,n),i.paramMeta.urlParams.length===0){let n=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.set(n,t)}}function Ge(e,t){return C(e)===C(t)}function Ke(e,t){let n=[];e.length>0&&n.push(...e);for(let e of t)e.paramMeta.queryParams.length>0&&n.push(...e.paramMeta.queryParams);return n.length===0?ie:n}function qe(e,t){for(let r of t)n.f.test(r)&&xe(e,r)}const Je=Symbol.for(`real-router.searchParams.configFault`),Ye=Object.hasOwn,Xe=Object.keys,Ze=Object.getOwnPropertyDescriptor;function Qe(e){try{return Ze(e,Je)?.configurable===!1}catch{return!1}}function $e(e){return typeof e==`string`?e:typeof e==`object`?JSON.stringify(e):String(e)}const et=Object.freeze({});function tt(e,t){return e===`strict`?t?`always`:`never`:e}var nt=class{get options(){return this.#e}#e;#t=S();#n=new Map;#r=new Map;#i={cleanPath:``,normalized:``,queryString:void 0};#a=[];#o=``;#s;#c;constructor(e){let t=e.urlParamsEncoding??`default`,n=typeof t==`string`?t:String(t),r=Ye(y,n)?n:`default`;this.#e={caseSensitive:e.caseSensitive??!0,strictTrailingSlash:e.strictTrailingSlash??!1,strictQueryParams:e.strictQueryParams??!1,urlParamsEncoding:r,parseQueryString:e.parseQueryString,buildQueryString:e.buildQueryString},this.#s=this.#e.caseSensitive,this.#c=this.#e.urlParamsEncoding===`none`?null:b[this.#e.urlParamsEncoding]}registerTree(e){this.#a=e.paramMeta.queryParams,ze({root:this.#t,options:this.#e,routesByName:this.#n,staticCache:this.#r,rootQueryParams:this.#a,rootUrlParams:e.paramMeta.urlParams},e,``,[],null)}match(e){if(!this.#f(e))return;let{cleanPath:t,normalized:n,queryString:r}=this.#i,i=this.#s?n:n.toLowerCase(),a=this.#r.get(i);if(a)return this.#e.strictTrailingSlash&&!this.#g(t,a)?void 0:r===void 0&&a.cachedResult?a.cachedResult:this.#m(a,{},r);let o={},s=this.#_(n,o);if(s&&(!this.#e.strictTrailingSlash||this.#g(t,s))&&this.#b(o))return this.#m(s,o,r)}buildPath(e,t,n,r){let i=this.#n.get(e);if(!i)throw Error(`[SegmentMatcher.buildPath] '${e}' is not defined`);let a=this.#l(i,t),o=this.#u(a,tt(r?.trailingSlash,i.hasTrailingSlash)),s=this.#d(i,n??t,r?.queryParamsMode);return o+(s?`?${s}`:``)}getSegmentsByName(e){return this.#n.get(e)?.matchSegments}getMetaByName(e){return this.#n.get(e)?.meta}getDeclaredQueryParams(e){return this.#n.get(e)?.declaredQueryParams}hasRoute(e){return this.#n.has(e)}#l(e,t){let n=e.buildStaticParts,r=e.buildParamSlots;if(r.length===0)return n[0];let i=n[0];for(let[e,a]of r.entries()){let r=t!=null&&Ye(t,a.paramName)?t[a.paramName]:void 0;if(r==null)throw Error(`[SegmentMatcher.buildPath] Missing required param '${a.paramName}'`);if(r===``)throw Error(`[SegmentMatcher.buildPath] Missing required param '${a.paramName}' (empty string)`);let o=a.encoder($e(r));i+=o+n[e+1]}return i}#u(e,t){return t===`always`&&!e.endsWith(`/`)?`${e}/`:t===`never`&&e!==`/`&&e.endsWith(`/`)?e.slice(0,-1):e}#d(t,n,r){if(!n||t.declaredQueryParams.length===0&&r!==`loose`)return``;let i={},a=!1;for(let r of t.declaredQueryParams)Ye(n,r)&&(e.a(i,r,n[r]),a=!0);if(r===`loose`)for(let r of Xe(n))t.declaredQueryParamsSet.has(r)||t.buildParamNamesSet.has(r)||(e.a(i,r,n[r]),a=!0);return a?this.#e.buildQueryString(i):``}#f(e){if(e===``&&(e=`/`),e.codePointAt(0)!==47)return!1;let t=this.#p(e);if(t===-2)return!1;t===-3&&(e=this.#o);let n=t>=0?e.slice(0,t):e,r=t>=0?e.slice(t+1):void 0;if(r!==void 0){let e=r.indexOf(`#`);e!==-1&&(r=r.slice(0,e))}let i=C(n);return this.#i.cleanPath=n,this.#i.normalized=i,this.#i.queryString=r,!0}#p(e){let t=!1;for(let n=0;n<e.length;n++){let r=e.codePointAt(n);if(r===35)return this.#o=e.slice(0,n),-3;if(r===63)return n;if(r>=128)return-2;if(r===47){if(t)return-2;t=!0}else t=!1}return-1}#m(e,t,n){let r=et;if(n!==void 0){let t=this.#h(e,n);if(t===void 0)return;r=t}return{segments:e.matchSegments,params:t,search:r,meta:e.meta}}#h(e,t){let n;try{n=this.#e.parseQueryString(t)}catch(e){if(Qe(e))throw e;return}if(this.#e.strictQueryParams){let t=e.declaredQueryParamsSet;for(let e of Xe(n))if(!t.has(e))return}return n}#g(e,t){return(e.length>1&&e.endsWith(`/`))===t.hasTrailingSlash}#_(e,t){return e.length===1?this.#t.slashChildRoute??this.#t.route:this.#v(this.#t,e,1,t)}#v(t,n,r,i){let a=t,o=n.length,s=this.#s;for(;r<=o;){let t=n.indexOf(`/`,r),c=t===-1?o:t,l=n.slice(r,c),u=s?l:l.toLowerCase(),d;if(u in a.staticChildren){let t=a.staticChildren[u];if(a.splatChild!==void 0){let o={},s=this.#v(t,n,c+1,o);return s===void 0?this.#y(a.splatChild,n,r,i):(e.n(i,o),s)}d=t}else if(a.paramChild){let t=a.paramChild;if(a.splatChild!==void 0){let o={[t.name]:l},s=this.#v(t.node,n,c+1,o);return s===void 0?this.#y(a.splatChild,n,r,i):(e.n(i,o),s)}d=t.node,e.a(i,t.name,l)}else if(a.splatChild)return this.#y(a.splatChild,n,r,i);else return;a=d,r=c+1}return a.slashChildRoute??a.route}#y(t,n,r,i){let a=t.node;if(!a.hasChildren)return e.a(i,t.name,n.slice(r)),a.route;let o={},s=this.#v(a,n,r,o);return s?(e.n(i,o),s):(e.a(i,t.name,n.slice(r)),a.route)}#b(e){let t=this.#c;if(!t)return!0;for(let n of Xe(e)){let r=e[n];if(r.includes(`%`)){if(!re(r))return!1;try{e[n]=t(r)}catch{return!1}}}return!0}};const T=Object.freeze,rt=Object.freeze(new Map),it=Object.freeze([]);function at(e){return e.parent?.name?`${e.parent.fullName}.${e.name}`:e.name}function ot(e){let t=new Map;for(let n of e)t.set(n.name,n);return t}function st(e,t){let n=[],r=[];for(let i of e){let e=ct(i,t);n.push(e),e.absolute||r.push(e)}return{childrenMap:ot(n),nonAbsoluteChildren:r}}function ct(e,t){let r=n.p(e.path),i=r.urlParams.length===0&&r.queryParams.length===0&&r.pathPattern===e.path?n.d:r,a=i.paramTypeMap,o={name:e.name,path:e.path,absolute:e.absolute,parent:t,children:void 0,paramMeta:i,nonAbsoluteChildren:void 0,fullName:``,paramTypeMap:a};if(o.fullName=at(o),e.children.length===0)o.children=rt,o.nonAbsoluteChildren=it;else{let{childrenMap:t,nonAbsoluteChildren:n}=st(e.children,o);o.children=t,o.nonAbsoluteChildren=n,T(o.nonAbsoluteChildren),T(o.children)}return T(a),T(i.urlParams),T(i.queryParams),T(i),T(o),o}function lt(e){return ct(e,null)}function ut(e,t,n){return lt(p(e,t,n))}function dt(t){let n=t.absolute?`~${t.path}`:t.path,r={name:t.name,path:n};return t.children.size>0&&e.a(r,`children`,Array.from(t.children.values(),dt)),r}function ft(e){return Array.from(e.children.values(),dt)}const pt=e=>{let t=e.indexOf(`%`),n=e.indexOf(`+`);if(t===-1&&n===-1)return e;let r=n===-1?e:e.replaceAll(`+`,` `);return t===-1?r:decodeURIComponent(r)},mt=(e,t)=>{if(e===void 0)return t.boolean.decodeUndefined();let n=t.boolean.decodeRaw(e);if(n!==null)return n;let r=pt(e),i=t.number.decode(r);return i===null?t.boolean.decodeValue(r):i},ht=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,gt=e=>{try{return encodeURIComponent(e)}catch(t){if(!(t instanceof URIError))throw t;return encodeURIComponent(String(e).replaceAll(ht,`�`))}},_t=e=>{let t=typeof e;if(t!==`string`&&t!==`number`&&t!==`boolean`)throw TypeError(`[router] Invalid query value: an array element must be a string, number, or boolean — received ${t}`);return gt(e)},vt=(e,t,n,r)=>{let i=`${e}${n}`,a=[];for(let e of t)if(e===null){let e=r.encode(i);e&&a.push(e)}else a.push(`${i}=${_t(e)}`);return a.join(`&`)},yt={none:{encodeArray:(e,t,n)=>vt(e,t,``,n)},brackets:{encodeArray:(e,t,n)=>vt(e,t,`[]`,n)},index:{encodeArray:(e,t,n)=>{let r=[];for(let[i,a]of t.entries()){let t=`${e}[${i}]`;if(a===null){let e=n.encode(t);e&&r.push(e)}else r.push(`${t}=${_t(a)}`)}return r.join(`&`)},indexed:!0},comma:{encodeArray:(e,t)=>{let n=[];for(let e of t)e!==null&&n.push(_t(e));return n.length===0?``:`${e}=${n.join(`,`)}`},decodeValue:e=>e.includes(`,`)?e.split(`,`):null}},bt={none:{encode:(e,t)=>`${e}=${t}`,decodeUndefined:()=>null,decodeRaw:()=>null,decodeValue:e=>e},auto:{encode:(e,t)=>`${e}=${t}`,decodeUndefined:()=>null,decodeRaw:e=>e===`true`||e!==`false`&&null,decodeValue:e=>e},"empty-true":{encode:(e,t)=>t?e:`${e}=false`,decodeUndefined:()=>!0,decodeRaw:e=>e===`true`||e!==`false`&&null,decodeValue:e=>e}},xt={default:{encode:e=>e},hidden:{encode:()=>``}},St={auto:{decode:e=>{let t=e.length;if(t===0)return null;let n=+(e.codePointAt(0)===45);if(n===t||t-n>1&&e.codePointAt(n)===48&&e.codePointAt(n+1)!==46)return null;let r=!1;for(let i=n;i<t;i++){let a=e.codePointAt(i);if(!(a!==void 0&&a>=48&&a<=57)){if(a===46&&!r&&i!==n&&i!==t-1){r=!0;continue}return null}}let i=Number(e);return String(i)!==e||!Number.isSafeInteger(i)&&!r?null:i}},none:{decode:()=>null}},Ct=Object.defineProperty,wt=Object.keys,Tt=Object.hasOwn,Et=Symbol.for(`real-router.searchParams.configFault`),E=(e,t,n)=>{let r=typeof t==`string`?t:String(t);if(!Tt(e,r)){let t=TypeError(`[router.constructor] Invalid "queryParams.${n}": "${r}" — expected ${wt(e).map(e=>`"${e}"`).join(` | `)}`);throw Ct(t,Et,{value:!0}),t}return e[r]},Dt=(e,t,n,r)=>({boolean:E(bt,t,`booleanFormat`),null:E(xt,n,`nullFormat`),number:E(St,r,`numberFormat`),array:E(yt,e,`arrayFormat`)}),Ot=Object.freeze({boolean:bt.auto,null:xt.default,number:St.auto,array:yt.none}),D=Object.freeze({arrayFormat:`none`,booleanFormat:`auto`,nullFormat:`default`,numberFormat:`auto`}),kt=Object.freeze({...D,strategies:Ot}),At=e=>{if(!e||e.arrayFormat===void 0&&e.booleanFormat===void 0&&e.nullFormat===void 0&&e.numberFormat===void 0)return kt;let t=e.arrayFormat??D.arrayFormat,n=e.booleanFormat??D.booleanFormat,r=e.nullFormat??D.nullFormat,i=e.numberFormat??D.numberFormat;return{arrayFormat:t,booleanFormat:n,nullFormat:r,numberFormat:i,strategies:Dt(t,n,r,i)}},O=e=>gt(e),jt=(e,t,n)=>{let r=O(e);switch(typeof t){case`string`:case`number`:return`${r}=${O(t)}`;case`boolean`:return n.strategies.boolean.encode(r,t);case`object`:return t===null?n.strategies.null.encode(r):Array.isArray(t)?n.strategies.array.encodeArray(r,t,n.strategies.null):`${r}=${O(t)}`;default:return`${r}=${O(t)}`}},Mt=Object.hasOwn,Nt=Object.keys;function Pt(t,n,r){e.a(t,n,r)}function Ft(e,t,n,r){if(!Mt(e,t)){Pt(e,t,r?[n]:n);return}let i=e[t];Array.isArray(i)?i.push(n):Pt(e,t,[i,n])}function It(e,t,n){let r=t+1,i=0,a=!1;for(;r<n;){let t=e.codePointAt(r);if(t===93)return a?i:null;if(t!==void 0&&t>=48&&t<=57){i=i*10+(t-48),a=!0,r++;continue}return null}return null}function Lt(e,t,n){let{searchPart:r,nameEnd:i,nameSourceEnd:a,rawValue:o,decodedName:s}=e,c=It(r,i,a);if(c===null)return!1;let l=mt(o,t),u=n.get(s);return u===void 0?n.set(s,[[c,l]]):u.push([c,l]),!0}function Rt(e,t,n,r,i,a,o){let s=a!==-1&&a<n?e.slice(a+1,n):void 0,c=s===void 0?n:a,l=c,u=!1;for(let n=t;n<c;n++)if(e.codePointAt(n)===91){l=n,u=!0;break}let d=pt(e.slice(t,l));if(!(o!==void 0&&u&&Lt({searchPart:e,nameEnd:l,nameSourceEnd:c,rawValue:s,decodedName:d},i,o))){if(!u&&s!==void 0&&i.array.decodeValue){let e=i.array.decodeValue(s);if(e){for(let t of e)Ft(r,d,mt(t,i),!0);return}}Ft(r,d,mt(s,i),u)}}const zt=(e,t)=>{if(e===``||e===`?`)return{};let n={};return Bt(e,n,t.strategies),n};function Bt(e,t,n){let r=n.array.indexed?new Map:void 0,i=0,a=e.length,o=-2;for(;i<a;){let s=e.indexOf(`&`,i);s===-1&&(s=a),s>i&&(o!==-1&&o<i&&(o=e.indexOf(`=`,i)),Rt(e,i,s,t,n,o,r)),i=s+1}if(r!==void 0)for(let[e,n]of r)n.sort((e,t)=>e[0]-t[0]),Pt(t,e,n.map(e=>e[1]))}const Vt=(e,t)=>{let n=Nt(e);if(n.length===0)return``;let r=[];for(let i of n){let n=e[i];if(n===void 0)continue;let a=jt(i,n,t);a&&r.push(a)}return r.join(`&`)};function Ht(e){let t=e?.queryParams,n=At(t);return new nt({...e?.caseSensitive!==void 0&&{caseSensitive:e.caseSensitive},...e?.strictTrailingSlash!==void 0&&{strictTrailingSlash:e.strictTrailingSlash},...e?.strictQueryParams!==void 0&&{strictQueryParams:e.strictQueryParams},...e?.urlParamsEncoding!==void 0&&{urlParamsEncoding:e.urlParamsEncoding},parseQueryString:e=>zt(e,n),buildQueryString:e=>Vt(e,n)})}const Ut=Object.keys,Wt=Object.values,Gt=Object.hasOwn,Kt=Object.getOwnPropertyDescriptor,qt=Object.getPrototypeOf,Jt=Object,Yt=new Set(Wt(e.h));function Xt(e){if(!Yt.has(e))throw TypeError(`[router.addEventListener] Invalid event name: ${String(e)}. Must be one of: ${[...Yt].join(`, `)}`)}function Zt(e){if(typeof e!=`function`)throw TypeError(`[router.addEventListener] callback must be a function, got ${typeof e}`)}function Qt(e){if(typeof e!=`function`)throw TypeError(`[router.subscribeChanges] Expected a function`)}function $t(e,t){if(typeof e!=`string`||!Gt(n.t,e))throw TypeError(`[router.addInterceptor] Invalid method: ${typeof e==`string`?`"${e}"`:typeof e}. Must be one of: ${Ut(n.t).join(`, `)}`);if(typeof t!=`function`)throw TypeError(`[router.addInterceptor] interceptor must be a function, got ${typeof t}`)}function en(e,t){if(typeof e!=`string`)throw TypeError(`[router.${t}] Route name must be a string, got ${typeof e}`)}function tn(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=qt(e);return t===null||t.constructor===Jt}function nn(e){if(!tn(e))throw TypeError(`dependencies must be a plain object`)}function rn(e){return e===null?`null`:typeof e==`object`?`a non-plain object`:typeof e}function an(e){if(!tn(e))throw TypeError(`[router.extendRouter] extensions must be a plain object, got ${rn(e)}`)}function on(e,t){nn(e);let n=e,r=[];for(let e of Ut(n)){if(Kt(n,e)?.get)throw TypeError(`dependencies cannot contain getters: "${e}"`);let t=n[e];t!==void 0&&r.push([e,t])}for(let[e,n]of r)t(e,n)}function sn(t){let r=[];for(let i of t){let t=i;if(typeof t!=`object`||!t||Array.isArray(t))throw TypeError(`route must be a non-array object`);n.c(t,`addRoute`);let a={...t},o=a.children;o&&e.a(a,`children`,sn(o)),r.push(a)}return r}function cn(e,t){if(t)for(let n of e){t.routes.guardRouteCallbacks(n),t.routes.guardNoAsyncCallbacks(n);let e=n.children;e&&cn(e,t)}}const ln=new Set([`all`,`warn-error`,`error-only`,`none`]);function un(e){return typeof e==`string`&&ln.has(e)}function dn(e){return typeof e==`string`?`"${e}"`:typeof e==`object`?JSON.stringify(e):String(e)}function fn(e){for(let t of Ut(e))if(t!==`level`&&t!==`callback`&&t!==`callbackIgnoresLevel`)throw TypeError(`Unknown logger config property: "${t}"`)}function pn(e){if(!Gt(e,`level`))return;let t=e.level;if(t!==void 0){if(!un(t))throw TypeError(`Invalid logger level: ${dn(t)}. Expected: "all" | "warn-error" | "error-only" | "none"`);return t}}function mn(e){if(!Gt(e,`callbackIgnoresLevel`))return;let t=e.callbackIgnoresLevel;if(t!==void 0){if(typeof t!=`boolean`)throw TypeError(`Logger callbackIgnoresLevel must be a boolean, got ${typeof t}`);return t}}function hn(t){if(typeof t!=`object`||!t)throw TypeError(`Logger config must be an object`);let n=t;fn(n);let r=e.r(),i=pn(n);if(i!==void 0&&(r.level=i),Gt(n,`callback`)){let e=n.callback;if(e!==void 0&&typeof e!=`function`)throw TypeError(`Logger callback must be a function, got ${typeof e}`);r.callback=e}let a=mn(n);return a!==void 0&&(r.callbackIgnoresLevel=a),r}const gn=Object.freeze;function _n(t={}){let n={...e.o,...t};return gn({maxDependencies:Number(n.maxDependencies),maxPlugins:Number(n.maxPlugins),maxListeners:Number(n.maxListeners),warnListeners:Number(n.warnListeners),maxLifecycleHandlers:Number(n.maxLifecycleHandlers)})}const vn=Object.create;function yn(e,t,n){e[t]=n}function bn(t={}){let n=vn(null),r=t,i=n;return on(r,(e,t)=>{yn(i,e,t)}),{dependencies:n,limits:e.o}}const xn={defaultRoute:``,defaultParams:{},defaultSearch:{},trailingSlash:`preserve`,caseSensitive:!0,queryParamsMode:`loose`,queryParams:D,urlParamsEncoding:`default`,allowNotFound:!0,rewritePathOnMatch:!0};function Sn(e){if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(`[router.constructor] options must be a plain object`)}const Cn=Object.freeze;var wn=class{#e;constructor(e={}){this.#e=Cn(t.s({...xn,...e}))}static validateOptionsIsObject(e){Sn(e)}get(){return this.#e}};function Tn(e,t){return typeof e==`function`?e(t):e}const En=Object.keys;function Dn(e,t,n,r,i){let a=e.pathNames(t);if(a!==void 0)for(let e of En(n))!r.includes(e)&&!a.includes(e)&&i(t,e)}function k(n,r,i,a,o){let c=String(r),l=o?.resolveForward===!1?{name:c,params:i,search:a}:n.resolveForward(c,i,a),u=l.name,f=t.f(l.params,e.l),p=o?.diagnoseUndeclared===!0?n.reportUndeclaredParamKey:void 0;p&&Dn(n,u,f,n.queryNames(u),p);let m=n.defaultParams(u),h=n.defaultSearch(u);if((l.search===void 0||l.search===e.u)&&m===void 0&&h===void 0)return{name:u,path:f,query:e.u};let g=n.queryNames(u),_=n.reportDroppedQueryKey,v=o?.resolveForward===!1?s(h,f,g):h,y=t.f(l.search,e.u),b=t.d(v,y);return{name:u,path:t.u(m,f),query:n.admitsUndeclaredQuery()?b:d(b,g,e=>{_!==void 0&&n.pathNames(u)!==void 0&&_(u,e)})}}function A(e,t){return t.buildPath(e.name,e.path,e.query)}const On=Object.freeze;function kn(t,n){let r={name:t.name,params:t.path,search:t.query,path:n,context:{},transition:e.s};return On(r.params),r}function j(e,n){return t.c(kn(e,n))}function An(e,t){return kn(e,t)}var jn=class{#e;#t;get(){return this.#e.current}getPrevious(){return this.#e.previous}setContext(e){this.#e=e}setDependencies(e){this.#t=e}makeState(t,r,i,a){let o=this.#t.port(),s=k(o,t,r??e.l,i,{resolveForward:!1});return n._(`makeState`,s.name,s.path,o.queryNames(s.name)),j(s,a??A(s,o))}areStatesEqual(e,n,r=!0){if(!e||!n)return!!e==!!n;let i=e.name;return i===n.name?r?t.g(e.params,n.params,this.#t.getUrlParams(i)):t.h(e.params,n.params)&&t.h(e.search,n.search):!1}};const Mn=Object.keys,Nn={[e.g.ROUTER_START]:e.h.ROUTER_START,[e.g.ROUTER_STOP]:e.h.ROUTER_STOP,[e.g.TRANSITION_SUCCESS]:e.h.TRANSITION_SUCCESS,[e.g.TRANSITION_START]:e.h.TRANSITION_START,[e.g.TRANSITION_LEAVE_APPROVE]:e.h.TRANSITION_LEAVE_APPROVE,[e.g.TRANSITION_ERROR]:e.h.TRANSITION_ERROR,[e.g.TRANSITION_CANCEL]:e.h.TRANSITION_CANCEL},Pn=Mn(Nn),Fn=`router.usePlugin`;function In(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.`)}const Ln=Object.freeze;var Rn=class e{#e=new Set;#t=new Set;#n;static validatePlugin(e){In(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){this.#n.logger.error(Fn,`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){this.#n.logger.error(Fn,`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){this.#n.logger.error(Fn,`Error during cleanup:`,e)}}};return this.#t.add(i),i}getAll(){return[...this.#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),Ln(n);let r=[];for(let e of Pn)e in n&&(typeof n[e]==`function`?(r.push(this.#n.addEventListener(Nn[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 M=Object.create,zn=()=>!0,Bn=()=>!1,Vn=()=>zn,Hn=()=>Bn;function Un(e){return e?Vn:Hn}function Wn(e,t,n){n===void 0?e.delete(t):e.set(t,n)}var Gn=class{#e=new Map;#t=new Map;#n=new Map;#r=new Map;#i=new Map;#a=new Map;#o=new Map;#s=new Map;#c=new Map;#l=new Map;#u=[this.#i,this.#a];#d;setDependencies(e){this.#d=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.#d.getValidator();if(!r)return;let i=(e,t,i)=>{let{definition:a,external:o}=this.#g(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,r){this.#f(`activate`,e,t,n,`canActivate`,r)}addCanDeactivate(e,t,n,r){this.#f(`deactivate`,e,t,n,`canDeactivate`,r)}clearCanActivate(e,t){this.#p(`activate`,e,t)}clearCanDeactivate(e,t){this.#p(`deactivate`,e,t)}clearAll(){this.#e.clear(),this.#t.clear(),this.#n.clear(),this.#r.clear(),this.#a.clear(),this.#i.clear(),this.#o.clear(),this.#s.clear(),this.#c.clear(),this.#l.clear()}clearDefinitionGuards(){for(let e of this.#e.keys())this.#c.delete(e),this.#t.has(e)?this.#m(`activate`,e):this.#a.delete(e);for(let e of this.#n.keys())this.#o.delete(e),this.#r.has(e)?this.#m(`deactivate`,e):this.#i.delete(e);this.#e.clear(),this.#n.clear()}getFactories(){let e=M(null),t=M(null);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=M(null),t=M(null),n=M(null),r=M(null);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.#u}canNavigateTo(e,t,n,r){for(let t of e)if(!this.#_(this.#i,t,n,r,`canNavigateTo`))return!1;for(let e of t)if(!this.#_(this.#a,e,n,r,`canNavigateTo`))return!1;return!0}compileGuardFactory(e,t){let n=typeof e==`boolean`?Un(e):e,r=this.#d.compileFactory(n);if(typeof r!=`function`)throw TypeError(`[router.${t}] Factory must return a function, got ${typeof r}`);return r}#f(e,t,n,r,i,a){let o=this.#g(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.#d.getValidator()?.lifecycle.warnOverwrite(t,e,i);else{let t=this.#d.getValidator();if(t){let n=this.getHandlerCount(e);t.lifecycle.validateHandlerLimit(n,i),t.lifecycle.validateCountThresholds(n+1,i)}}let u=typeof n==`boolean`?Un(n):n,d=c.get(t),f=this.#h(e),p=r?f.definition:f.external,m=p.get(t);c.set(t,u);let h=r&&l.has(t);try{let e=a??this.compileGuardFactory(u,i);p.set(t,e),h||s.set(t,e)}catch(n){throw Wn(c,t,d),Wn(p,t,m),this.#m(e,t),n}}#p(e,t,n){let{definition:r,external:i}=this.#g(e),a=this.#h(e),o=n!==`external`&&r.delete(t),s=n!==`definition`&&i.delete(t);o&&a.definition.delete(t),s&&a.external.delete(t),(o||s)&&this.#m(e,t)}#m(e,t){let n=this.#h(e),r=e===`activate`?this.#a:this.#i,i=n.external.get(t)??n.definition.get(t);if(!i){r.delete(t);return}r.set(t,i)}#h(e){return e===`activate`?{definition:this.#c,external:this.#l}:{definition:this.#o,external:this.#s}}#g(e){return e===`activate`?{definition:this.#e,external:this.#t}:{definition:this.#n,external:this.#r}}#_(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.#d.getValidator()?.lifecycle.warnAsyncGuardSync(t,i),!1)}catch(e){return this.#d.logger.warn(`router.${i}`,`Guard for "${t}" threw — treated as navigation-blocking (returned false)`,e),!1}}};const Kn=new Set([`name`,`path`,`children`,`canActivate`,`canDeactivate`,`forwardTo`,`encodeParams`,`decodeParams`,`defaultParams`,`defaultSearch`]),qn=Object.freeze,N=Object.create,Jn=Object.hasOwn,P=Object.keys;function Yn(){return{decoders:N(null),encoders:N(null),defaultParams:N(null),defaultSearch:N(null),forwardMap:N(null),forwardFnMap:N(null)}}function Xn(e){return P(e.forwardMap).length>0||P(e.forwardFnMap).length>0}function Zn(e,t){for(let n of P(t))Object.assign(e[n],t[n])}function Qn(e,n){for(let r in e)if(Jn(n,r)&&!t.a(e[r],n[r]))return!1;return!0}function $n(e){return typeof e==`string`?e:`<non-string>`}function er(e,n){for(let r in e)if(!t.a(e[r],n[r]))return!1;return!0}function tr(t){let n={name:t.name,path:t.path};return t.children&&e.a(n,`children`,t.children.map(e=>tr(e))),n}function nr(e,t,n){if(n.add(t),e.children)for(let r of e.children)nr(r,`${t}.${r.name}`,n)}function rr(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){e.splice(r,1);let t=new Set;return nr(i,a,t),t}if(i.children&&t.startsWith(`${a}.`)){let e=rr(i.children,t,a);if(e)return e}}}function ir(e,t){for(let n of P(e))t(n)&&delete e[n]}function ar(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 or(e){let t=[];for(let n of e)for(let e of n.paramMeta.urlParams)t.push(e);return t}function sr(e,t,n){let r=n.get(t);if(r!==void 0)return r;let i=e.getSegmentsByName(t),a=qn(i?or(i):[]);return n.set(t,a),a}function cr(e,t){return sr(e.matcher,t,e.urlParamsCache)}function lr(e,t,n,r){let i=r.get(t);if(i!==void 0)return i;let a=e.getDeclaredQueryParams(t),o=[];if(a){let r=sr(e,t,n);o=a.filter(e=>!r.includes(e))}let s=qn(o);return r.set(t,s),s}function ur(e,t){return lr(e.matcher,t,e.urlParamsCache,e.queryParamsCache)}function dr(e,t,n){let r=new Map,i=new Map;c(t.defaultParams,t=>lr(e,t,r,i),n)}function fr(e,t,n=100){let r=String(e),i=new Set,a=[r],o=r;for(;;){let e=t[o];if(!e)break;let r=String(e);if(i.has(r)){let e=a.indexOf(r),t=[...a.slice(e),r];throw Error(`Circular forwardTo: ${t.join(` → `)}`)}if(i.add(o),a.push(r),o=r,a.length>n)throw Error(`forwardTo chain exceeds maximum depth (${n}): ${a.join(` → `)}`)}return o}const pr=Object.freeze,F=Object.create,mr=Object.entries,I=Object.keys,hr=Object.defineProperty,gr=Object.fromEntries;function _r(e,t,n){let r=ut(``,t,e),i=Ht(n);return i.registerTree(r),{tree:r,matcher:i}}function vr(e,t=e.definitions){let n=_r(t,e.rootPath,e.matcherOptions);e.tree=n.tree,e.matcher=n.matcher,e.urlParamsCache.clear(),e.queryParamsCache.clear()}function yr(e,t){let n=_r(e.definitions,t,e.matcherOptions);dr(n.matcher,e.config,`setRootPath`),e.rootPath=t,e.tree=n.tree,e.matcher=n.matcher,e.urlParamsCache.clear(),e.queryParamsCache.clear()}function br(e,t){vr(e,t),L(e,Cr(e.config))}function xr(e){Sr(e),vr(e,[])}function Sr(e){Object.assign(e.config,Yn()),L(e,F(null)),e.routeCustomFields=F(null)}function L(e,t){e.resolvedForwardMap=t,e.hasAnyForward=Xn(e.config)}function Cr(e){let t=F(null);for(let n of I(e.forwardMap))t[n]=fr(n,e.forwardMap);return t}function wr(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 Tr(e,t,n,r){if(e.canActivate){let n=typeof e.forwardTo==`string`?e.forwardTo:`[dynamic]`;r.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]`;r.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}".`)}wr(e.forwardTo,t),typeof e.forwardTo==`string`?n.forwardMap[t]=e.forwardTo:n.forwardFnMap[t]=e.forwardTo}function Er(e,n,r,i,a,o,s){let c=gr(mr(e).filter(([e])=>!Kn.has(e)));if(I(c).length>0&&(i[n]=pr(c)),e.canActivate&&a.set(n,e.canActivate),e.canDeactivate&&o.set(n,e.canDeactivate),e.forwardTo&&Tr(e,n,r,s),e.decodeParams){let t=e.decodeParams;r.decoders[n]=e=>t(e)??e}if(e.encodeParams){let t=e.encodeParams;r.encoders[n]=e=>t(e)??e}e.defaultParams&&(r.defaultParams[n]=t.o(`defaultParams`,e.defaultParams)),e.defaultSearch&&(r.defaultSearch[n]=t.o(`defaultSearch`,e.defaultSearch))}function Dr(e,t,n,r,i,a,o=``){for(let s of e){let e=o?`${o}.${s.name}`:s.name;Er(s,e,t,n,r,i,a),s.children&&Dr(s.children,t,n,r,i,a,e)}}function Or(e){let t=Yn();return Zn(t,e),t}function kr(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]:kr(n,t,i)}})}function Ar(e,t,n){for(let r of e){let e=t?`${t}.${r.name}`:r.name;n(e),r.children&&Ar(r.children,e,n)}}function jr(e,t,n){let r=new Set;Ar(e,t,e=>{if(r.has(e))throw Error(`[router.${n}] Duplicate route "${e}" in batch`);r.add(e)})}function Mr(e,t){if(en(e,t),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 R(e,t){for(let n of e)Mr(n.name,t),n.children&&R(n.children,t)}function z(e,t){for(let r of e)n.u(r.name,t),r.children&&z(r.children,t)}function B(e,t){for(let r of e)n.l(r.name,t),r.children&&B(r.children,t)}function Nr(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 Pr(e,t,n){if(R(t,`addRoute`),z(t,`addRoute`),B(t,`addRoute`),n!==void 0&&!e.matcher.hasRoute(n))throw Error(`[router.addRoute] Parent route "${n}" does not exist`);Ar(t,n??``,t=>{if(e.matcher.hasRoute(t))throw Error(`[router.addRoute] Route "${t}" already exists`)}),jr(t,n??``,`addRoute`),Nr(t,n??``,`addRoute`)}function Fr({definitions:e,routesForHandlers:t,config:n,routeCustomFields:r,handlerParentName:i,rootPath:a,matcherOptions:o,logger:s}){let c=new Map,l=new Map;Dr(t,n,r,c,l,s,i);let u=Cr(n),{tree:d,matcher:f}=_r(e,a,o);return{config:n,routeCustomFields:r,pendingCanActivate:c,pendingCanDeactivate:l,tree:d,matcher:f,resolvedForwardMap:u}}function Ir(e,t,n,r){return Fr({definitions:kr(e.definitions,t.map(e=>tr(e)),n===void 0?[]:n.split(`.`)),routesForHandlers:t,config:Or(e.config),routeCustomFields:Object.assign(F(null),e.routeCustomFields),handlerParentName:n??``,rootPath:e.rootPath,matcherOptions:e.matcherOptions,logger:r})}function Lr(e,t,n,r){return Fr({definitions:e.map(e=>tr(e)),routesForHandlers:e,config:Yn(),routeCustomFields:F(null),handlerParentName:``,rootPath:t,matcherOptions:n,logger:r})}function Rr(e,t,n){let r=[];for(let[i,a]of e)r.push([i,a,t(a,n)]);return r}function zr(e,t){return{activate:Rr(e.pendingCanActivate,t.compileGuard,`canActivate`),deactivate:Rr(e.pendingCanDeactivate,t.compileGuard,`canDeactivate`)}}function Br(e,t,n){let r=e.depsStore,{activate:i,deactivate:a}=n??zr(t,r);Object.assign(e.config,t.config),e.routeCustomFields=t.routeCustomFields,e.tree=t.tree,e.matcher=t.matcher,e.urlParamsCache.clear(),e.queryParamsCache.clear(),L(e,t.resolvedForwardMap);for(let[e,t,n]of i)r.addActivateGuard(e,t,n);for(let[e,t,n]of a)r.addDeactivateGuard(e,t,n)}function V(e){return e===null?e:e||void 0}function Vr(e,n){return n==null?n:t.o(e,n)}function Hr(e,t,r,i){let{forwardTo:a,defaultParams:o,defaultSearch:s,decodeParams:c,encodeParams:l,canActivate:u,canDeactivate:d}=i,f=V(a),p=Vr(`defaultParams`,V(o)),m=Vr(`defaultSearch`,V(s)),h=V(c),g=V(l),_=V(u),v=V(d);p!=null&&n.g(`updateRoute`,r,p,ur(e,r),"this route's `defaultParams`","Move it to `defaultSearch`");let y=f===void 0?void 0:Ur(r,f,e.config),b=Wr(e,r,i),ee=_==null?void 0:t.compileGuardFactory(_,`canActivate`),x=v==null?void 0:t.compileGuardFactory(v,`canDeactivate`);return t.preflightHandlerLimit(ee===void 0?[]:[r],x===void 0?[]:[r],!1),b!==void 0&&(I(b).length>0?e.routeCustomFields[r]=pr(b):delete e.routeCustomFields[r]),y!==void 0&&(e.config.forwardMap=y.forwardMap,e.config.forwardFnMap=y.forwardFnMap,L(e,y.resolved)),Kr(e,r,{defaultParams:p,defaultSearch:m,decodeParams:h,encodeParams:g}),qr(t,`activate`,r,_,ee),qr(t,`deactivate`,r,v,x),{forwardTo:f,defaultParams:p,defaultSearch:m,decodeParams:h,encodeParams:g}}function Ur(e,t,n){wr(t,e);let r=Object.assign(F(null),n.forwardMap),i=Object.assign(F(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:Cr({...n,forwardMap:r})}}function Wr(t,n,r){let i;for(let a of I(r)){if(Kn.has(a))continue;let o=r[a];o!==void 0&&(i??={...t.routeCustomFields[n]},o===null?delete i[a]:e.a(i,a,o))}return i}function Gr(e,t,n){n!==void 0&&(n===null?delete e[t]:e[t]=n)}function Kr(e,t,n){if(Gr(e.config.defaultParams,t,n.defaultParams),Gr(e.config.defaultSearch,t,n.defaultSearch),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 qr(e,t,n,r,i){r!==void 0&&(t===`activate`?r===null?e.clearCanActivate(n,`definition`):e.addCanActivate(n,r,!0,i):r===null?e.clearCanDeactivate(n,`definition`):e.addCanDeactivate(n,r,!0,i))}function Jr(e,t,n){let r=e;R(r,`addRoute`),z(r,`constructor`),B(r,`constructor`),jr(r,``,`addRoute`);let i=Lr(r,``,t,n),a={get definitions(){return ft(a.tree)},config:i.config,tree:i.tree,matcher:i.matcher,urlParamsCache:new Map,queryParamsCache:new Map,resolvedForwardMap:i.resolvedForwardMap,hasAnyForward:Xn(i.config),routeCustomFields:i.routeCustomFields,rootPath:``,matcherOptions:t,depsStore:void 0,lifecycleNamespace:void 0,revalidating:!1,pendingCanActivate:i.pendingCanActivate,pendingCanDeactivate:i.pendingCanDeactivate};return dr(a.matcher,a.config,`addRoute`),hr(a,`matcherOptions`,{writable:!1,configurable:!1}),a}const Yr=Object.freeze,Xr=Object.keys,Zr=[];Object.freeze(Zr);function Qr(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 $r=new Set([`string`,`number`,`boolean`]);function ei(e){return $r.has(typeof e)}function ti(e,t,n,r){let i=t[e];if(!i||typeof i!=`object`)return!0;for(let e of Xr(i)){let t=n.params[e],i=r.params[e];if(ei(t)&&ei(i)&&String(t)!==String(i))return!1}return!0}function ni(e,t,n,r,i,a){for(let o=0;o<a;o++){let a=r[o];if(a!==i[o]||!ti(a,e,t,n))return o}return a}const ri=new Map;function H(e){let t=ri.get(e);if(t)return t;let n=ii(e);return Yr(n),ri.set(e,n),n}function ii(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]:Qr(e)}let ai,oi,U=null,si,ci,li=null;function ui(e,t,n){if(!t)return{intersection:``,toActivate:H(e.name),toDeactivate:Zr};let r=n(e.name),i=n(t.name);if(!r&&!i)return{intersection:``,toActivate:H(e.name),toDeactivate:H(t.name)};let a=H(e.name),o=H(t.name),s=Math.min(o.length,a.length),c=ni(r??i,e,t,a,o,s),l;if(c>=o.length)l=Zr;else if(c===0&&o.length===1)l=o;else{l=[];for(let e=o.length-1;e>=c;e--)l.push(o[e])}let u=c===0?a:a.slice(c);return{intersection:c>0?o[c-1]:``,toDeactivate:l,toActivate:u}}function W(e,t,n){if(U!==null&&e===ai&&t===oi)return U;if(li!==null&&e===si&&t===ci)return li;let r=ui(e,t,n);return si=ai,ci=oi,li=U,ai=e,oi=t,U=r,r}const di=Object.freeze,G=Object.hasOwn;function fi(e,t){return{name:t??e.segments.at(-1).fullName,params:e.params,search:e.search,meta:e.meta}}function pi(e){return e===`preserve`?void 0:e}var mi=class{#e;#t;#n;get#r(){return this.#e.depsStore}constructor(e,t,n){this.#e=Jr(e,t,n)}static shouldUpdateNode(e,t){return(n,r)=>{if(!(n&&typeof n==`object`&&`name`in n))throw TypeError(`[router.shouldUpdateNode] toState must be valid State object`);if(n.transition?.reload||e===``)return!0;let{intersection:i,toActivate:a,toDeactivate:o}=W(n,r,t);return e===i||a.includes(e)?!0:o.includes(e)}}isRevalidating(){return this.#e.revalidating}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){yr(this.#e,e)}hasRoute(e){return this.#e.matcher.hasRoute(e)}clearRoutes(){xr(this.#e)}buildPath(t,n,r,i){if(t===e.p.UNKNOWN_ROUTE)return typeof n.path==`string`?n.path:``;let a=this.#e.config.encoders[t];if(typeof a==`function`){let e=a({params:{...n},search:{...r}});return this.#e.matcher.buildPath(t,e.params,e.search,this.#c(i))}return this.#e.matcher.buildPath(t,n,r,this.#c(i))}buildPathFromIntent(n,r,i){return n===e.p.UNKNOWN_ROUTE?this.#r.port.buildPath(n,t.f(r,e.l),i??e.u):A(k(this.#r.port,n,r,i,{resolveForward:!1}),this.#r.port)}matchPath(e,r){let i=r,a=this.#e.matcher.match(e);if(!a)return;let o=fi(a),{name:s}=o,c=t._(o.params),l=t._(o.search),u=this.#e.config.decoders[s],d;if(typeof u==`function`){d=u({params:c,search:l});let e=d.params;d={params:e,search:d.search},this.#r.getValidator()?.routes.validateStateBuilderArgs(s,e,`matchPath`),n.g(`matchPath`,s,e,this.getQueryParams(s),"the `params` returned by this route's `decodeParams`")}else d={params:c,search:l};let f=k(this.#r.port,s,d.params,d.search),p=f.name;n._(`matchPath`,f.name,f.path,this.getQueryParams(f.name));let m=f.path,h=f.query,g=e;if(i.rewritePathOnMatch){let t=this.#e.config.encoders[p],n=typeof t==`function`?t({params:m,search:h}):{params:m,search:h},r=i.trailingSlash;try{g=this.#e.matcher.buildPath(p,n.params,n.search,{trailingSlash:pi(r),queryParamsMode:i.queryParamsMode}),r===`preserve`&&(g=ar(e,g))}catch{g=e}}return j(f,g)}forwardState(t,n,r){let i=r??e.u;if(G(this.#e.config.forwardFnMap,t)){let e=this.#e.config.forwardFnMap[t],{target:r,chain:a,params:o}=this.#l(t,e,n);return this.#s(r,a,o,i)}let a=this.#e.resolvedForwardMap[t]??t;if(a!==t&&G(this.#e.config.forwardFnMap,a)){let e=this.#e.config.forwardFnMap[a],{target:r,chain:o,params:s}=this.#l(a,e,n);return this.#s(r,[...this.#o(t),...o],s,i)}return a===t?{name:t,params:n,search:i}:this.#s(a,this.#o(t),n,i)}buildStateResolved(e,t){let n=this.#e.matcher.getSegmentsByName(e);if(n)return fi({segments:n,params:t,search:{},meta:this.#e.matcher.getMetaByName(e)},e)}isActiveRoute(t,n=e.l,r=e.u,i=!1,a=!0){if(this.#i(t,n,r,i,a))return!0;if(!this.#e.hasAnyForward)return!1;let o;try{o=typeof t==`string`?t:String(t)}catch{return!1}if(!G(this.#e.config.forwardMap,o)&&!G(this.#e.config.forwardFnMap,o))return!1;let s;try{s=this.forwardState(t,n,r)}catch(e){return this.#r.logger.warn(`router.isActiveRoute`,`Dynamic forwardTo of route "${$n(t)}" threw while resolving the active-link destination; treating the link as inactive.`,e),!1}return this.#i(s.name,s.params,s.search,i,a)}getMetaForState(e){return this.#e.matcher.hasRoute(e)?this.#e.matcher.getMetaByName(e):void 0}getUrlParams(e){return cr(this.#e,e)}getQueryParams(e){return ur(this.#e,e)}getStore(){return this.#e}getPort(){return this.#r.port}#i(e,t,n,r,i){try{return this.#a(e,t,n,r,i)}catch(t){return this.#r.logger.warn(`router.isActiveRoute`,`Reading the arguments for route "${$n(e)}" threw while resolving the active-link state; treating the link as inactive.`,t),!1}}#a(e,n,r,i,a){let o=this.#r.getState();if(!o)return!1;let s=o.name;if(s!==e&&!s.startsWith(`${e}.`)&&!e.startsWith(`${s}.`))return!1;let c=k(this.#r.port,e,n,r,{resolveForward:!1});if(i||s===e){let e=An(c,``);return!this.#r.areStatesEqual(e,o,!0)||!Qn(c.path,o.params)?!1:a||t.h(e.search,o.search)}return!(!s.startsWith(`${e}.`)||!Qn(c.path,o.params)||!a&&!er(c.query,o.search))}#o(e){let t=[],n=e;for(;G(this.#e.config.forwardMap,n);)t.push(n),n=this.#e.config.forwardMap[n];return t}#s(n,r,i,a){let o,s;for(let e of r)o=t.l(this.#e.config.defaultParams[e],o),s=t.l(this.#e.config.defaultSearch[e],s);return{name:n,params:t.f(t.l(o,i),e.l),search:t.f(t.l(s,a),e.u)}}#c(e){return this.#t?(e!==this.#n&&this.#r.logger.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,this.#t=di({trailingSlash:pi(e?.trailingSlash),queryParamsMode:e?.queryParamsMode}),this.#t)}#l(e,n,r){let i=t.t(r),a=new Set([e]),o=[e],s=n(this.#r.getDependency,i),c=0;if(typeof s!=`string`)throw TypeError(`forwardTo callback must return a string, got ${typeof s}`);for(;c<100;){if(this.#e.matcher.getSegmentsByName(s)===void 0)throw Error(`Route "${s}" does not exist`);if(a.has(s)){let e=[...a,s].join(` → `);throw Error(`Circular forwardTo: ${e}`)}if(a.add(s),G(this.#e.config.forwardFnMap,s)){let e=this.#e.config.forwardFnMap[s];o.push(s),s=e(this.#r.getDependency,i),c++;continue}let e=this.#e.config.forwardMap[s];if(e!==void 0){o.push(s),s=e,c++;continue}return{target:s,chain:o,params:i}}throw Error(`forwardTo exceeds maximum depth of 100`)}};const hi=new t.v(e.m.ROUTER_NOT_STARTED),gi=new t.v(e.m.ROUTE_NOT_FOUND),_i=new t.v(e.m.SAME_STATES),vi=new t.v(e.m.ROUTER_NOT_STARTED,{message:`[router] cannot commit before the start navigation does — the boot would overwrite it; defer with queueMicrotask/await, or navigate after start() resolves`});Object.freeze(hi),Object.freeze(gi),Object.freeze(_i),Object.freeze(vi);const K=Promise.reject(hi),yi=Promise.reject(gi),bi=Promise.reject(_i),q=Promise.reject(vi);K.catch(()=>{}),yi.catch(()=>{}),bi.catch(()=>{}),q.catch(()=>{});const xi=new Set([e.m.SAME_STATES,e.m.TRANSITION_CANCELLED,e.m.ROUTER_NOT_STARTED,e.m.ROUTE_NOT_FOUND,e.m.CANNOT_ACTIVATE,e.m.CANNOT_DEACTIVATE,e.m.ROUTER_ALREADY_STARTED]);function Si(e){return e instanceof t.v&&xi.has(e.code)}const Ci=new Set([K,yi,bi,q]),J=Object.freeze;function wi(e){let{fromState:t,toDeactivate:n,toActivate:r,intersection:i}=e;J(n),J(r);let a={phase:`activating`,reason:`success`,segments:J({deactivated:n,activated:r,intersection:i})};return t?.name!==void 0&&(a.from=t.name),e.reload!==void 0&&(a.reload=e.reload),e.replace!==void 0&&(a.replace=e.replace),e.redirected!==void 0&&(a.redirected=e.redirected),J(a)}function Ti(n,r){let{toState:i,fromState:a,toDeactivate:o,toActivate:s}=r;if(i.name!==e.p.UNKNOWN_ROUTE&&!n.hasRoute(i.name)){let o=new t.v(e.m.ROUTE_NOT_FOUND,{routeName:i.name});throw n.sendTransitionFail(a,o,r),t.y(o)}let c=r,l={...i,transition:wi(r)},u=J(l);r.toState=u;let d=n.canCommitTransition(c);if(!d)throw t.y(new t.v(e.m.TRANSITION_CANCELLED));for(let e of o)!s.includes(e)&&r.canDeactivateFunctions.has(e)&&n.clearCanDeactivate(e,d);return n.sendTransitionDone(c),u}const Ei=Object.entries;function Di(n){return n instanceof t.v&&n.code===e.m.TRANSITION_CANCELLED}function Oi(n){return Di(n)?n:new t.v(e.m.TRANSITION_CANCELLED,{reason:n})}function ki(t,n,r,i){let a=n;a.code!==e.m.TRANSITION_CANCELLED&&a.code!==e.m.ROUTE_NOT_FOUND&&t.sendTransitionFail(r,a,i)}function Ai(n,r,i){if(n instanceof DOMException&&n.name===`AbortError`)throw t.y(new t.v(e.m.TRANSITION_CANCELLED));if(Di(n))throw n;ji(n,r,i)}function ji(e,n,r){if(e instanceof t.v){let{code:r,message:i,...a}=e.toJSON(),o=new t.v(r,{...a,message:i});throw o.setCode(n),o.stack=e.stack??``,t.y(o)}throw t.y(new t.v(n,Ni(e,r)))}const Mi=new Set([`code`,`segment`,`path`,`then`]);function Ni(t,n){let r={segment:n};if(t instanceof Error){let e=t.message,n=t.stack,i=`cause`in t?t.cause:void 0;return{...r,message:e,stack:n,...i!==void 0&&{cause:i}}}if(t&&typeof t==`object`){let n={};for(let[r,i]of Ei(t))r!==`__proto__`&&!Mi.has(r)&&e.a(n,r,i);return{...r,...n}}return r}async function Pi(e,n,r){let i;try{i=await e}catch(e){Ai(e,n,r);return}if(!i)throw t.y(new t.v(n,{segment:r}))}function Fi(n,r,i,a,o,s,c,l,u,d){if(!u())throw t.y(new t.v(e.m.TRANSITION_CANCELLED));if(n===1){let e=d();return e===void 0?void 0:{phase:n,index:r+1,pending:e}}let f=i[r],p=a.get(f);if(!p)return;let m=!1;try{m=p(s,c,l)}catch(e){Ai(e,o,f)}let h;try{h=m.then}catch(e){Ai(e,o,f)}if(typeof h==`function`){let e=m;return{phase:n,index:r+1,pending:new Promise((t,n)=>{Reflect.apply(h,e,[t,n])})}}if(!m)throw t.y(new t.v(o,{segment:f}))}function Ii(t,n,r,i,a,o,s,c,l,u,d,f,p){let m=t===1,h=t===0;if(!m&&!(h?s:c))return;let g=h?a:o,_=m?1:g.length,v=h?r:i,y=h?e.m.CANNOT_DEACTIVATE:e.m.CANNOT_ACTIVATE;for(let e=n;e<_;e++){let n=Fi(t,e,g,v,y,l,u,d,f,p);if(n!==void 0)return n}}function Li(e,t,n,r,i,a,o,s,c,l,u,d,f){for(let p=d;p<=2;p++){let m=Ii(p,p===d?f:0,e,t,n,r,i,a,o,s,c,l,u);if(m!==void 0)return m}}async function Ri(t,n,r,i,a,o,s,c,l,u,d,f){let p=t;for(;p!==void 0;){if(p.phase===1)await p.pending;else{let t=p.phase===0;await Pi(p.pending,t?e.m.CANNOT_DEACTIVATE:e.m.CANNOT_ACTIVATE,(t?i:a)[p.index-1])}p=Li(n,r,i,a,o,s,c,l,u,d,f,p.phase,p.index)}}function zi(e,t,n,r,i,a,o,s,c,l,u){let d=Li(e,t,n,r,i,a,o,s,c,l,u,0,0);return d===void 0?void 0:Ri(d,e,t,n,r,i,a,o,s,c,l,u)}const Bi=Object.freeze,Vi=Object.freeze([]),Hi=new Map;function Ui(e,t){return t?Bi({...e,replace:!0}):e}function Wi(e,t,n,r){return!!e&&!t&&!n&&e.path===r.path}function Gi(e,t){if(e.size===0)return!1;for(let n of t)if(e.has(n))return!0;return!1}function Ki(e){let t=e.controller;if(t!==void 0)return t;let n=new AbortController;return e.cancelReason!==void 0&&n.abort(e.cancelReason),e.controller=n,n}function qi(e,t){t.externalSignal!==void 0&&t.cancelReason===void 0&&t.hasGuards&&e.bridgeExternalSignal(t)}function Ji(n,r,i,a,o,s,c,l,u,d){ta(n,s);let f=n.hasLeaveListeners()||n.hasPreCommitListeners(),p={toState:r,fromState:i,opts:a,suspendable:o!==void 0||f,forceDeactivate:d,toDeactivate:Vi,toActivate:Vi,intersection:``,canDeactivateFunctions:Hi,canActivateFunctions:Hi,shouldDeactivate:!1,shouldActivate:!1,hasGuards:!1,controller:void 0,cancelReason:void 0,detachExternalBridge:void 0,externalSignal:o,reload:c,replace:l,redirected:u};if(!n.startTransition(p))throw t.y(new t.v(e.m.TRANSITION_CANCELLED));return p}function Yi(e,t){return e.sendLeaveApprove(t),Ti(e,t)}function Xi(t,n){let[r,i]=t.getLifecycleFunctions(),{toDeactivate:a,toActivate:o,intersection:s}=W(n.toState,n.fromState,e=>t.getMetaForState(e));n.canDeactivateFunctions=r,n.canActivateFunctions=i,n.toDeactivate=a,n.toActivate=o,n.intersection=s,n.shouldDeactivate=!!n.fromState&&!n.forceDeactivate&&a.length>0,n.shouldActivate=n.toState.name!==e.p.UNKNOWN_ROUTE&&o.length>0,n.hasGuards=n.shouldDeactivate&&Gi(r,a)||n.shouldActivate&&Gi(i,o)}function Zi(n,r,i){let a,o;try{a=n.getState();let s=t.m(i),c=s?.aborted===!0?s:void 0;i=t.i(i);let l=t.p(i,`reload`),u=t.p(i,`force`),d=t.p(i,`replace`),f=t.p(i,`redirected`),p=t.p(i,`forceDeactivate`)===!0,m=a?.name===e.p.UNKNOWN_ROUTE&&!d,h=m||d;if(i=Ui(i,m),Wi(a,l,u,r))return n.emitTransitionError(r,a,_i),bi;let g=Ji(n,r,a,i,s,c,l,h,f,p);o=g;let _=g.externalSignal;if(_?.aborted===!0&&n.cancelNavigation(_.reason),Xi(n,g),qi(n,g),!g.hasGuards&&!g.suspendable)return Yi(n,g);let{canDeactivateFunctions:v,canActivateFunctions:y,toDeactivate:b,toActivate:ee,shouldDeactivate:x,shouldActivate:S,hasGuards:C}=g,te=r;if(!C){let e=ea(n,g);if(e!==void 0)return e}if(C){let i=Ki(g),o=()=>!i.signal.aborted,s=i.signal,c=zi(v,y,b,ee,x,S,r,a,s,o,()=>{if(n.sendLeaveApprove(g),n.hasLeaveListeners())return n.awaitLeaveListeners(te,a,s)});if(c!==void 0)return Qi(n,c,g,i);if(!o())throw t.y(new t.v(e.m.TRANSITION_CANCELLED))}return Ti(n,g)}catch(e){let t=$i(n,e,{nav:o,fromState:a});return Promise.reject(t)}}async function Qi(n,r,i,a){let o=()=>!a.signal.aborted,s=i.externalSignal,c,l=!1,u,d=new Promise(e=>{if(a.signal.aborted){e();return}c=()=>{e()},a.signal.addEventListener(`abort`,c,{once:!0})});r.catch(()=>{});try{if(s?.aborted)throw t.y(new t.v(e.m.TRANSITION_CANCELLED,{reason:s.reason}));if(await Promise.race([r,d]),!o())throw t.y(new t.v(e.m.TRANSITION_CANCELLED));let a=Ti(n,i);return l=!0,a}catch(e){let t=o()?e:Oi(e);throw u=t,ki(n,t,i.fromState,i),t}finally{c&&a.signal.removeEventListener(`abort`,c),l||a.abort(u)}}function $i(e,t,n){let{nav:r}=n;if(r?.controller?.abort(t),r!==void 0){let i=e.isTransitioning()?t:Oi(t);return ki(e,i,n.fromState,r),i}return t}function ea(e,t){let{toState:n,fromState:r}=t;if(e.hasLeaveListeners()&&Ki(t),e.sendLeaveApprove(t),e.hasLeaveListeners()){let i=Ki(t),a;try{a=e.awaitLeaveListeners(n,r,i.signal)}catch(e){throw i.abort(e),e}return a===void 0?void 0:Qi(e,a,t,i)}}function ta(n,r){if(n.isTransitioning()&&(n.logger.warn(`router.navigate`,`Concurrent navigation detected on shared router instance. For SSR, use cloneRouter() to create isolated instance per request.`),n.cancelNavigation()),r!==void 0)throw t.y(new t.v(e.m.TRANSITION_CANCELLED,{reason:r.reason}))}const na=Object.freeze,ra=Object.freeze([e.p.UNKNOWN_ROUTE]),ia=Object.freeze({replace:!0});function aa(n,r,i){ta(n,void 0);let a=n.getState(),o=a?H(a.name).toReversed():[];na(o);let s={deactivated:o,activated:ra,intersection:``};na(s);let c={phase:`activating`,...a&&{from:a.name},reason:`success`,replace:!0,segments:s};na(c);let l={name:e.p.UNKNOWN_ROUTE,params:e.l,search:e.u,path:r,transition:c,context:{}};if(na(l),i&&a!==void 0&&!n.canDeactivateCurrent(o,l,a)){let i=new t.v(e.m.CANNOT_DEACTIVATE,{path:r,message:`[router.navigateToNotFound] a canDeactivate guard on "${a.name}" refused to leave for ${r}`});throw n.emitTransitionError(void 0,a,i),t.y(i)}return n.systemCommit(l,a,ia)}function oa(e,t){return aa(e,t,!0)}function sa(e,t){return aa(e,t,!1)}var ca=class{#e;#t;#n=0;setDependencies(e){this.#e=e,this.#t=t=>{Si(t)||e.logger.error(`router.navigate`,`Unexpected navigation error`,t)}}navigate(e,t,n,r){return this.#r(this.#i(e,t,n,r))}navigateToState(e,t){return this.#r(this.#a(e,t))}navigateToDefault(e){return this.#r(this.#s(e))}navigateToNotFound(e){return oa(this.#e,e)}revalidateToNotFound(e){return sa(this.#e,e)}isPreparing(){return this.#n>0}#r(e){return e instanceof Promise&&!Ci.has(e)&&e.catch(this.#t),e}#i(e,t,n,r){let i=this.#e;if(!i.canNavigate())return i.isStarting()?q:K;let a;this.#n++;try{a=i.buildNavigateState(e,t,n)}catch(e){return Promise.reject(e)}finally{this.#n--}return a?Zi(this.#e,a,r):(i.emitTransitionError(void 0,i.getState(),gi),yi)}#a(r,i){let a=this.#e;if(!a.canNavigate())return a.isStarting()?q:K;let o=r.name;if(o!==e.p.UNKNOWN_ROUTE&&!a.hasRoute(o)){let n=new t.v(e.m.ROUTE_NOT_FOUND,{routeName:o});return a.emitTransitionError(void 0,a.getState(),n),Promise.reject(n)}let s=n.v(r.params,a.getQueryParams(o));if(s!==void 0){let r=new t.v(e.m.WRONG_CHANNEL,{routeName:o,message:`[router.navigateToState] ${n.y(o,s,"`state.params`")}`});return a.emitTransitionError(void 0,a.getState(),r),Promise.reject(r)}let c;try{c=this.#o(r,o)}catch(e){return Promise.reject(e)}return Zi(this.#e,c,i)}#o(n,r){let i={name:r,params:t.n(n.params,e.l),search:t.n(n.search,e.u),path:n.path,context:{...n.context},transition:e.s};return t.c(i)}#s(n){let r=this.#e;if(!r.getOptions().defaultRoute)return Promise.reject(new t.v(e.m.ROUTE_NOT_FOUND,{routeName:`defaultRoute not configured`}));let i,a,o;this.#n++;try{({route:i,params:a,search:o}=r.resolveDefault())}catch(e){return Promise.reject(e)}finally{this.#n--}return i?typeof i==`string`?this.#i(i,a,o,n):Promise.reject(new t.v(e.m.ROUTE_NOT_FOUND,{routeName:`defaultRoute did not resolve to a route name`})):Promise.reject(new t.v(e.m.ROUTE_NOT_FOUND,{routeName:`defaultRoute resolved to empty`}))}};const la={},ua=Object.freeze({replace:!0});function da(n){return[n,n?.reason].some(n=>n instanceof t.v&&n.code===e.m.ROUTE_NOT_FOUND)}var fa=class{#e;setDependencies(e){this.#e=e}async start(n){let r=this.#e;if(r.isIdle())throw t.y(new t.v(e.m.TRANSITION_CANCELLED));let i=r.getOptions();if(typeof n!=`string`)throw TypeError(`[router.start] path must be a string, got ${typeof n}`);let a=r.matchPath(n);if(!a&&!i.allowNotFound){let r=new t.v(e.m.ROUTE_NOT_FOUND,{path:n});throw t.y(r)}if(r.completeStart(),a)try{return await r.navigateToState(a,ua)}catch(e){if(!i.allowNotFound||!da(e))throw e;return r.navigateToNotFound(n)}return r.navigateToNotFound(n)}};const pa={},ma=Object.create,ha=Object.entries,ga=Object.hasOwn,_a=Object.values,va=new WeakMap;function ya(e,t,n){if(typeof n==`string`)return{target:n,when:void 0,update:void 0};let r=n.when,i=n.update;if(r!==void 0&&typeof r!=`function`)throw Error(`[FSM.constructor] transitions["${e}"]["${t}"].when is not a function`);if(i!==void 0&&typeof i!=`function`)throw Error(`[FSM.constructor] transitions["${e}"]["${t}"].update is not a function`);return{target:n.target,when:r,update:i}}function ba(e){let t=va.get(e);if(t!==void 0)return t;let n=e,r=ma(null);for(let[e,t]of ha(n)){let n=ma(null);for(let[r,i]of ha(t))i!==void 0&&(n[r]=ya(e,r,i));r[e]=n}for(let e of _a(r))for(let t of _a(e))if(t!==void 0&&r[t.target]===void 0)throw Error(`[FSM.constructor] state "${t.target}" is not declared in config.transitions`);return va.set(e,r),r}var xa=class{#e;#t;#n=0;#r=null;#i;#a;#o=[];constructor(e){let t=e.initial;if(this.#e=t,this.#i=e.context,this.#a=ba(e.transitions),this.#a[t]===void 0)throw Error(`[FSM.constructor] state "${t}" is not declared in config.transitions`);this.#t=this.#a[t]}send(e,t){let n=this.#t[e];if(n===void 0)return this.#e;let r=t,i=n.when;if(i!==void 0&&!i(this.#i,r))return this.#e;let a=n.target,o=n.update,s=this.#e;if(this.#e=a,this.#t=this.#a[a],o?.(this.#i,r),this.#r!==null){let t=this.#r.get(s)?.get(e);t!==void 0&&t(r)}if(this.#n>0){let t={from:s,to:a,event:e,payload:r};for(let e of this.#o)e!==null&&e(t)}return this.#e}canSend(e,t){let n=this.#t[e];return n===void 0?!1:n.when===void 0||n.when(this.#i,t)}getState(){return this.#e}getContext(){return this.#i}on(e,t,n){let r=this.#a[e];if(r===void 0)throw Error(`[FSM.on] state "${e}" is not declared in config.transitions`);if(!ga(r,t))throw Error(`[FSM.on] event "${t}" has no edge from state "${e}"`);this.#r??=new Map;let i=this.#r.get(e);i||(i=new Map,this.#r.set(e,i));let a=n;return i.set(t,a),()=>{let n=this.#r?.get(e);n?.get(t)===a&&n.delete(t)}}onTransition(e){let t=this.#o.indexOf(null),n;t===-1?(n=this.#o.length,this.#o.push(e)):(this.#o[t]=e,n=t),this.#n++;let r=!0;return()=>{r&&(r=!1,this.#o[n]=null,this.#n--)}}};const Y={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`,SYSTEM_COMMIT:`SYSTEM_COMMIT`};function Sa(){return{inflight:void 0,current:void 0,previous:void 0}}const Ca=(e,t)=>t?.nav===void 0||t.nav===e.inflight,wa=(e,t)=>t!==void 0&&t===e.inflight&&t.externalSignal?.aborted!==!0,Ta=(e,n)=>{e.previous=e.current,e.current=t.c(n)},Ea=(e,t)=>{Ta(e,t.toState),e.inflight=void 0},Da=(e,t)=>{Ta(e,t.toState)},Oa=e=>{e.previous=e.current,e.current=void 0},Z=e=>{e.current=void 0,e.previous=void 0,e.inflight=void 0},ka=(e,t)=>{e.inflight=t},Aa={[Y.IDLE]:{[X.START]:Y.STARTING,[X.DISPOSE]:{target:Y.DISPOSED,update:Z}},[Y.STARTING]:{[X.STARTED]:Y.READY,[X.FAIL]:Y.IDLE,[X.STOP]:{target:Y.IDLE,update:Oa},[X.DISPOSE]:{target:Y.DISPOSED,update:Z}},[Y.READY]:{[X.NAVIGATE]:{target:Y.TRANSITION_STARTED,update:ka},[X.SYSTEM_COMMIT]:{target:Y.READY,update:Da},[X.STOP]:{target:Y.IDLE,update:Oa},[X.DISPOSE]:{target:Y.DISPOSED,update:Z}},[Y.TRANSITION_STARTED]:{[X.NAVIGATE]:{target:Y.TRANSITION_STARTED,update:ka},[X.LEAVE_APPROVE]:Y.LEAVE_APPROVED,[X.CANCEL]:Y.READY,[X.FAIL]:{target:Y.READY,when:Ca},[X.DISPOSE]:{target:Y.DISPOSED,update:Z}},[Y.LEAVE_APPROVED]:{[X.NAVIGATE]:{target:Y.TRANSITION_STARTED,update:ka},[X.COMPLETE]:{target:Y.READY,when:wa,update:Ea},[X.CANCEL]:Y.READY,[X.FAIL]:{target:Y.READY,when:Ca},[X.DISPOSE]:{target:Y.DISPOSED,update:Z}},[Y.DISPOSED]:{}};function ja(){return new xa({initial:Y.IDLE,context:Sa(),transitions:Aa})}const Ma=Object.freeze,Na=`TREE_CHANGED`;function Pa(e){return e instanceof Error?e:Error(String(e))}function Fa(n,r,i){return new Promise((a,o)=>{let s=()=>{let n=i.reason;o(n instanceof t.v&&n.code===e.m.TRANSITION_CANCELLED?n:new t.v(e.m.TRANSITION_CANCELLED,{reason:n}))};if(i.aborted){s();return}i.addEventListener(`abort`,s,{once:!0}),Promise.allSettled(n).then(e=>{if(i.removeEventListener(`abort`,s),i.aborted)return;if(r!==void 0){o(Pa(r));return}let t=e.find(e=>e.status===`rejected`);if(t!==void 0){o(Pa(t.reason));return}a()})})}function Ia(e,t,n){return e.addEventListener(`abort`,t,{once:!0}),()=>{n(),e.removeEventListener(`abort`,t)}}var La=class{#e;#t;#n;#r=[];#i=0;constructor(e){this.#e=e.routerFSM,this.#t=e.emitter,this.#s()}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.#i++;try{this.#t.emit(e.h.ROUTER_START)}finally{this.#i--}}emitRouterStop(){this.#t.emit(e.h.ROUTER_STOP)}emitTransitionStart(t,n,r){this.#i++;try{this.#t.emit(e.h.TRANSITION_START,t,n)}finally{this.#i--}}emitTransitionSuccess(t,n,r){this.#i++;try{this.#t.emit(e.h.TRANSITION_SUCCESS,t,n,r)}finally{this.#i--}}emitTransitionError(t,n,r){this.#i++;try{this.#t.emit(e.h.TRANSITION_ERROR,t,n,r)}finally{this.#i--}}emitTransitionCancel(t,n){this.#i++;try{this.#t.emit(e.h.TRANSITION_CANCEL,t,n)}finally{this.#i--}}emitTransitionLeaveApprove(t,n){this.#i++;try{this.#t.emit(e.h.TRANSITION_LEAVE_APPROVE,t,n)}finally{this.#i--}}isProcessing(){return this.#i>0}emitTreeChanged(e){this.#t.emit(Na,e)}isEmittingTreeChanged(){return this.#t.isDispatching(Na)}subscribeTreeChanged(n){if(this.isDisposed())throw t.y(new t.v(e.m.ROUTER_DISPOSED));return this.#t.on(Na,e=>{n(e)})}treeChangedListenerCount(){return this.#t.listenerCount(Na)}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){return this.#e.send(X.NAVIGATE,e)===Y.TRANSITION_STARTED}canCommitTransition(e){return this.#e.canSend(X.COMPLETE,e)}sendComplete(e){this.#e.send(X.COMPLETE,e)}sendLeaveApprove(e){this.#e.send(X.LEAVE_APPROVE,e)}sendFail(e,t,n){this.#e.send(X.FAIL,{nav:n,fromState:e,error:t})}sendCancel(e,t){this.#e.send(X.CANCEL,{fromState:e,reason:t})}systemCommit(n){let{toState:r}=n,i=r.transition,a={name:r.name,params:t.n(r.params,e.l),search:t.n(r.search,e.u),path:r.path,context:{...r.context},...i!=null&&{transition:t.r(i)}};if(!this.#e.canSend(X.SYSTEM_COMMIT))throw this.#o();return this.#e.send(X.SYSTEM_COMMIT,{...n,toState:a}),a}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!==Y.IDLE&&e!==Y.DISPOSED}isDisposed(){return this.#e.getState()===Y.DISPOSED}isTransitioning(){let e=this.#e.getState();return e===Y.TRANSITION_STARTED||e===Y.LEAVE_APPROVED}isLeaveApproved(){return this.#e.getState()===Y.LEAVE_APPROVED}isReady(){return this.#e.getState()===Y.READY}isStarting(){return this.#e.getState()===Y.STARTING}isIdle(){return this.#e.getState()===Y.IDLE}addEventListener(e,t){return this.#a(e,`addEventListener`),this.#t.on(e,t)}subscribe(n){if(this.isDisposed())throw t.y(new t.v(e.m.ROUTER_DISPOSED));return this.#a(e.h.TRANSITION_SUCCESS,`subscribe`),this.#t.on(e.h.TRANSITION_SUCCESS,(e,t)=>n({route:e,previousRoute:t}))}subscribeLeave(n){if(this.isDisposed())throw t.y(new t.v(e.m.ROUTER_DISPOSED));this.#r.push(n);let r=!1;return()=>{if(r)return;r=!0;let e=this.#r.indexOf(n);e!==-1&&this.#r.splice(e,1)}}hasLeaveListeners(){return this.#r.length>0}hasPreCommitListeners(){return this.#t.listenerCount(e.h.TRANSITION_START)>0||this.#t.listenerCount(e.h.TRANSITION_LEAVE_APPROVE)>0}awaitLeaveListeners(e,t,n){if(t===void 0)return;let r=Ma({route:t,nextRoute:e,signal:n}),i,a,o=[...this.#r];this.#i++;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.#i--}if(i===void 0){if(a!==void 0)throw Pa(a);return}return Fa(i,a,n)}clearAll(){this.#t.clearAll(),this.#r.length=0}setLimits(e){this.#t.setLimits(e)}setValidatorAccessor(e){this.#n=e}sendCancelIfPossible(e,t){this.canCancel()&&this.sendCancel(e,t)}bridgeExternalSignal(e){let t=e.externalSignal;return t===void 0||e.detachExternalBridge!==void 0||(e.detachExternalBridge=Ia(t,()=>{this.sendCancelIfPossible(this.#e.getContext().current,t.reason)},()=>{e.detachExternalBridge=void 0})),pa}#a(e,t){let n=this.#n?.();n&&n.eventBus.validateCountThresholds(this.#t.listenerCount(e)+1,e,t)}#o(){if(this.isDisposed())return new t.v(e.m.ROUTER_DISPOSED);let n;return n=this.isTransitioning()?`[router] cannot commit a state while a transition is in flight — the navigation in progress commits its own`:this.isStarting()?`[router] cannot commit before the start navigation does — the boot would overwrite it; await start() first`:`[router] cannot commit a state before the router has started`,new t.v(e.m.ROUTER_NOT_STARTED,{message:n})}#s(){let n=this.#e;n.on(Y.STARTING,X.STARTED,()=>{this.emitRouterStart()}),n.on(Y.READY,X.STOP,()=>{this.emitRouterStop()});let r=e=>{let t=e.externalSignal!==void 0&&(this.hasLeaveListeners()||this.hasPreCommitListeners())?this.bridgeExternalSignal(e):pa;this.emitTransitionStart(e.toState,e.fromState,t)};n.on(Y.READY,X.NAVIGATE,r),n.on(Y.TRANSITION_STARTED,X.NAVIGATE,r),n.on(Y.LEAVE_APPROVED,X.NAVIGATE,r),n.on(Y.TRANSITION_STARTED,X.LEAVE_APPROVE,e=>{this.emitTransitionLeaveApprove(e.toState,e.fromState)}),n.on(Y.LEAVE_APPROVED,X.COMPLETE,e=>{e.detachExternalBridge?.(),this.emitTransitionSuccess(e.toState,e.fromState,e.opts)});let i=n=>{let{fromState:r,reason:i}=n,a=this.#e.getContext().inflight,o=i??new t.v(e.m.TRANSITION_CANCELLED);a.cancelReason=o,a.controller?.abort(o),a.detachExternalBridge?.(),this.emitTransitionCancel(a.toState,r)};n.on(Y.TRANSITION_STARTED,X.CANCEL,i),n.on(Y.LEAVE_APPROVED,X.CANCEL,i),n.on(Y.READY,X.SYSTEM_COMMIT,e=>{this.emitTransitionSuccess(e.toState,e.fromState,e.opts)});let a=e=>{let t=this.#e.getContext().inflight;t?.detachExternalBridge?.(),this.emitTransitionError(t?.toState,e.fromState,e.error)};n.on(Y.LEAVE_APPROVED,X.FAIL,a),n.on(Y.TRANSITION_STARTED,X.FAIL,a),n.on(Y.STARTING,X.FAIL,e=>{this.emitTransitionError(void 0,e.fromState,e.error)})}};const Ra=new t.v(e.m.ROUTER_ALREADY_STARTED);Object.freeze(Ra);const za={maxListeners:0,warnListeners:0};var Ba=class{#e=new Map;#t=new Set;#n=null;#r=za;#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.#e.get(e),r=n?.size??0;if(n?.has(t))throw Error(`Duplicate listener for "${e}"`);let{maxListeners:i,warnListeners:a}=this.#r;if(i!==0&&r>=i)throw Error(`Listener limit (${i}) reached for "${e}"`);a!==0&&r===a&&this.#a!==null&&(this.#n??=new Set,this.#n.has(e)||(this.#a(e,a),this.#n.add(e)));let o=n;return o===void 0&&(o=new Set,this.#e.set(e,o)),o.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;this.#o(e,s,o,t,n,r,i)}else{let s=[...a];for(let a of s)this.#o(e,a,o,t,n,r,i)}}finally{this.#t.delete(e)}}clearAll(){this.#e.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,o){try{let s=this.#s(t,n,r,i,a,o),c=s?.then;typeof c==`function`&&new Promise((e,t)=>{c.call(s,e,t)}).catch(t=>{this.#i?.(e,t)})}catch(t){this.#i?.(e,t)}}#s(e,t,n,r,i,a){switch(t){case 0:return e();case 1:return e(n);case 2:return e(n,r);case 3:return e(n,r,i);default:return e(n,r,i,a)}}};const Va=Object.freeze({log:0,warn:1,error:2}),Ha=Object.freeze({all:0,"warn-error":1,"error-only":2,none:3}),Ua=Object.hasOwn;var Wa=class{#e={level:`all`,callback:void 0,callbackIgnoresLevel:!1};#t=0;#n=!1;constructor(e){e&&this.configure(e)}configure(e){let t=hn(e),n=t.level;n!==void 0&&(this.#e.level=n,this.#t=Ha[n]),Ua(t,`callback`)&&(this.#e.callback=t.callback),t.callbackIgnoresLevel!==void 0&&(this.#e.callbackIgnoresLevel=t.callbackIgnoresLevel)}getConfig(){return{level:this.#e.level,callback:this.#e.callback,callbackIgnoresLevel:this.#e.callbackIgnoresLevel}}log(e,t,...n){this.#r(`log`,e,t,n)}warn(e,t,...n){this.#r(`warn`,e,t,n)}error(e,t,...n){this.#r(`error`,e,t,n)}#r(e,t,n,r){if(this.#e.level===`none`&&!this.#e.callbackIgnoresLevel)return;let i=Va[e]<this.#t;i||this.#i(e,t,n,r),this.#a(e,t,n,i,r)}#i(e,t,n,r){if(typeof console<`u`&&typeof console[e]==`function`){let i=t?`[${t}] ${n}`:n;console[e](i,...r)}}#a(e,t,n,r,i){if(!(!this.#e.callback||!this.#e.callbackIgnoresLevel&&r)&&!this.#n){this.#n=!0;try{let r=this.#e.callback(e,t,n,...i);r!=null&&typeof r.then==`function`&&Promise.resolve(r).catch(e=>{this.#o(`[Logger] Error in async callback:`,e)})}catch(e){this.#o(`[Logger] Error in callback:`,e)}finally{this.#n=!1}}}#o(e,t){typeof console<`u`&&typeof console.error==`function`&&console.error(e,t)}};function Ga(e){let t=Ka(e),r=Qa(e),i=()=>n.i(e.router).validator;qa(e),Ja(e,i),Ya(e,t,i),Xa(e,r,i),Za(e,t,i),$a(e,r),eo(e),to(e,r)}function Ka(e){let{router:t,dependenciesStore:n}=e,r=e=>n.dependencies[e];return e=>e(t,r)}function qa(e){e.dependenciesStore.limits=e.limits,e.eventBus.setLimits({maxListeners:e.limits.maxListeners,warnListeners:e.limits.warnListeners})}function Ja(e,t){e.eventBus.setValidatorAccessor(t)}function Ya(e,t,r){let i={logger:n.i(e.router).logger,compileFactory:t,getValidator:r};e.routeLifecycle.setDependencies(i)}function Xa(e,t,r){let i={logger:n.i(e.router).logger,getValidator:r,port:t,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),getState:()=>e.state.get(),areStatesEqual:(t,n,r)=>e.state.areStatesEqual(t,n,r),getDependency:t=>e.dependenciesStore.dependencies[t]};e.routes.setDependencies(i),e.routes.setLifecycleNamespace(e.routeLifecycle)}function Za(e,t,r){let i={logger:n.i(e.router).logger,addEventListener:(t,n)=>e.eventBus.addEventListener(t,n),canNavigate:()=>e.eventBus.canBeginTransition(),compileFactory:t,getValidator:r};e.plugins.setDependencies(i)}function Qa(e){let t=n.i(e.router),r=e.routes.getStore(),i=(e,n)=>{t.validator?.state.reportUndeclaredParamKey(e,n)},a=(e,n)=>{t.validator?.state.reportDroppedQueryKey(e,n)};return{resolveForward:(e,n,r)=>t.forwardState(e,n,r),defaultParams:e=>r.config.defaultParams[e],defaultSearch:e=>r.config.defaultSearch[e],buildPath:(t,n,r)=>e.routes.buildPath(t,n,r,e.options.get()),queryNames:t=>e.routes.getQueryParams(t),pathNames:t=>e.routes.hasRoute(t)?e.routes.getUrlParams(t):void 0,admitsUndeclaredQuery:()=>e.options.get().queryParamsMode===`loose`,get reportDroppedQueryKey(){return t.validator?a:void 0},get reportUndeclaredParamKey(){return t.validator?i:void 0}}}function $a(e,t){let r={logger:n.i(e.router).logger,getOptions:()=>e.options.get(),hasRoute:t=>e.routes.hasRoute(t),getQueryParams:t=>e.routes.getQueryParams(t),getMetaForState:t=>e.routes.getMetaForState(t),getState:()=>e.state.get(),buildNavigateState:(r,i,a)=>{n.i(e.router).validator?.routes.validateStateBuilderArgs(r,i,`navigate`);let o=k(t,r,i,a,{diagnoseUndeclared:!0});if(e.routes.getMetaForState(o.name)!==void 0)return n._(`navigate`,o.name,o.path,t.queryNames(o.name)),j(o,A(o,t))},resolveDefault:()=>{let t=e.options.get(),r=n.i(e.router),i=Tn(t.defaultRoute,t=>e.dependenciesStore.dependencies[t]),a=Tn(t.defaultParams,t=>e.dependenciesStore.dependencies[t]),o=Tn(t.defaultSearch,t=>e.dependenciesStore.dependencies[t]);return typeof t.defaultRoute==`function`&&r.validator?.options.validateResolvedDefaultRoute(i,r.routeGetStore()),{route:i,params:a,search:o}},startTransition:t=>e.eventBus.sendNavigate(t),systemCommit:(t,n,r)=>e.eventBus.systemCommit({toState:t,fromState:n,opts:r}),cancelNavigation:t=>{e.eventBus.sendCancelIfPossible(e.state.get(),t)},bridgeExternalSignal:t=>{e.eventBus.bridgeExternalSignal(t)},canCommitTransition:t=>e.eventBus.canCommitTransition(t)?la:void 0,sendTransitionDone:t=>{e.eventBus.sendComplete(t)},sendTransitionFail:(t,n,r)=>{e.eventBus.sendFail(t,n,r)},emitTransitionError:(t,n,r)=>{e.eventBus.emitTransitionError(t,n,r)},sendLeaveApprove:t=>{e.eventBus.sendLeaveApprove(t)},canNavigate:()=>e.eventBus.canBeginTransition(),isStarting:()=>e.eventBus.isStarting(),getLifecycleFunctions:()=>e.routeLifecycle.getFunctions(),canDeactivateCurrent:(t,n,r)=>e.routeLifecycle.canNavigateTo(t,[],n,r),isTransitioning:()=>e.eventBus.isTransitioning(),clearCanDeactivate:(t,n)=>{e.routeLifecycle.clearCanDeactivate(t,`external`)},hasLeaveListeners:()=>e.eventBus.hasLeaveListeners(),hasPreCommitListeners:()=>e.eventBus.hasPreCommitListeners(),awaitLeaveListeners:(t,n,r)=>e.eventBus.awaitLeaveListeners(t,n,r)};e.navigation.setDependencies(r)}function eo(e){e.lifecycle.setDependencies({getOptions:()=>e.options.get(),navigateToState:(t,n)=>e.navigation.navigateToState(t,n),navigateToNotFound:t=>e.navigation.navigateToNotFound(t),matchPath:t=>e.routes.matchPath(t,e.options.get()),completeStart:()=>{e.eventBus.sendStarted()},isIdle:()=>e.eventBus.isIdle()})}function to(e,t){e.state.setDependencies({port:()=>t,getUrlParams:t=>e.routes.getUrlParams(t)})}const no=Object.create,ro=Object.keys,io=Object.freeze;var ao=class i{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;constructor(a=[],o={},s={}){let{logger:c,...l}=o,u=new Wa(c?hn(c):void 0);this.#f=e=>{Si(e)||u.error(`router.start`,`Unexpected start error`,e)},wn.validateOptionsIsObject(o),nn(s);let d=sn(a),f=uo(l);this.#r=so(l),this.#e=new wn(f),this.#t=_n(f.limits),this.#n=f.limits==null?void 0:io(ro(f.limits)),this.#i=bn(s),this.#a=new jn,this.#o=new mi(d,ho(this.#e.get()),u),this.#s=new Gn,this.#c=new Rn,this.#l=new ca,this.#u=new fa;let p=ja();this.#a.setContext(p.getContext());let m=new Ba({onListenerError:(e,t)=>{u.error(`Router`,`Error in listener for ${e}:`,t)},onListenerWarn:(e,t)=>{u.warn(`router.addEventListener`,`Event "${e}" has ${t} listeners — possible memory leak`)}});this.#d=new La({routerFSM:p,emitter:m});let h=new Map,g=e=>{let n=e.params,r=e.search;return{name:e.name,params:n==null?n:t._(n),search:r==null?r:t._(r)}},_=n.r(n.t.forwardState,(e,t,n)=>this.#o.forwardState(e,t,n),h,g,co),v=((r,i,a)=>{let o=_(r,i,a),s=o.name,c=o.params;n.g(`forwardState`,s,c,this.#o.getQueryParams(s),()=>s===r?"the `params` bag leaving the forwardState chain":`the \`params\` bag leaving the forwardState chain (forwarded here from "${r}")`);let l=o.search,u=l==null;return{name:s,params:t._(c??e.l),search:u?l:t._(l)}}),y=n.r(n.t.forwardState,(e,t,n)=>({name:e,params:t,search:n}),h,g,co);this.#p=(t,n,r)=>{let i=y(t,n,r),a=i.params,o=i.search;return this.#o.buildPathFromIntent(i.name,a??e.l,o)};let b={logger:u,makeState:(e,r,i,a)=>{n.o(b,`makeState`,e,r);let o=t.t(r);return b.validator?.state.validateMakeStateArgs(e,o,a),b.validator?.navigation.validateSearch(i,`makeState`),this.#a.makeState(e,o,i,a)},getMetaForState:e=>this.#o.getMetaForState(e),getQueryParams:e=>this.#o.getQueryParams(e),forwardState:v,buildStateResolved:(e,t)=>this.#o.buildStateResolved(e,t),port:()=>this.#o.getPort(),matchPath:(e,t)=>(b.validator?.routes.validateMatchPathArgs(e),this.#o.matchPath(e,t??this.#e.get())),getOptions:()=>this.#e.get(),getAdoptedOrigins:()=>this.#r,addEventListener:(e,t)=>(r(b.isDisposed),Xt(e),Zt(t),b.validator?.eventBus.validateListenerArgs(e,t),this.#d.addEventListener(e,t)),treeChanged:{emit:e=>{this.#d.emitTreeChanged(e)},subscribe:e=>this.#d.subscribeTreeChanged(e),listenerCount:()=>this.#d.treeChangedListenerCount(),isEmitting:()=>this.#d.isEmittingTreeChanged()},emitTransitionError:e=>{this.#d.emitTransitionError(void 0,this.#a.get(),e)},navigateToNotFound:e=>{if(e!==void 0&&typeof e!=`string`)throw TypeError(`[router.navigateToNotFound] path must be a string, got ${typeof e}`);return this.#l.navigateToNotFound(e)},revalidateToNotFound:e=>this.#l.revalidateToNotFound(e),start:n.n(n.t.start,e=>this.#u.start(e),h),navigateToState:(t,n)=>(r(b.isDisposed),b.validator?.navigation.validateNavigateToStateArgs(t),n!==void 0&&b.validator?.navigation.validateNavigationOptions(n,`navigateToState`),this.#g(),i.#m(this.#l.navigateToState(t,n??e.c))),interceptors:h,setRootPath:e=>{b.validator?.routes.validateSetRootPathArgs(e),this.#o.setRootPath(e)},getRootPath:()=>this.#o.getStore().rootPath,getTree:()=>this.#o.getStore().tree,isDisposed:()=>this.#d.isDisposed(),validator:null,dependenciesGetStore:()=>this.#i,getCloneState:()=>({options:{...this.#e.get()},dependencies:t.s({...this.#i.dependencies}),pluginFactories:this.#c.getAll(),loggerConfig:u.getConfig(),limits:this.#t,limitKeys:this.#n}),routeGetStore:()=>this.#o.getStore(),getStateName:()=>this.#a.get()?.name,isTransitioning:()=>this.#d.isTransitioning(),systemCommit:(n,r,i)=>{let a=n.name;if(a!==`@@router/UNKNOWN_ROUTE`&&!this.#o.hasRoute(a))throw t.y(new t.v(e.m.ROUTE_NOT_FOUND,{routeName:a}));return this.#d.systemCommit({toState:n,fromState:r,opts:i})},routerExtensions:[],contextClaimRecords:new Map,hydrationState:null};n.a(this,b),Ga({router:this,options:this.#e,limits:this.#t,dependenciesStore:this.#i,state:this.#a,routes:this.#o,routeLifecycle:this.#s,plugins:this.#c,navigation:this.#l,lifecycle:this.#u,eventBus:this.#d}),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.#o.flushPendingGuards()}catch(e){throw this.dispose(),e}}isActiveRoute(e,t,r,i,a){let o=n.i(this);return o.validator?.routes.validateIsActiveRouteArgs(e,t,i,a),o.validator?.navigation.validateSearch(r,`isActiveRoute`),o.validator?.routes.validateRouteName(e,`isActiveRoute`),e===``?(o.logger.warn(`real-router`,`isActiveRoute("") called with empty string. Root node is not considered a parent of any route.`),!1):this.#o.isActiveRoute(e,t,r,i,a)}buildPath(r,i,a){let o=n.i(this);o.validator?.routes.validateBuildPathArgs(r,i),o.validator?.navigation.validateParamsShape(i,`buildPath`),o.validator?.navigation.validateSearch(a,`buildPath`);let s=t.t(i);return o.validator?.navigation.validateParams(s,`buildPath`),this.#p(r,s??e.l,a)}getState(){return this.#a.get()}getPreviousState(){return this.#a.getPrevious()}areStatesEqual(e,t,r=!0){return n.i(this).validator?.state.validateAreStatesEqualArgs(e,t,r),this.#a.areStatesEqual(e,t,r)}shouldUpdateNode(e){return n.i(this).validator?.routes.validateShouldUpdateNodeArgs(e),mi.shouldUpdateNode(e,e=>this.#o.getMetaForState(e))}isActive(){return this.#d.isActive()}start(e){let t=this.#h(e);return t.catch(this.#f),t}stop(){return this.#d.sendCancelIfPossible(this.#a.get()),!this.#d.isReady()&&!this.#d.isTransitioning()&&!this.#d.isStarting()||this.#d.sendStop(),this}dispose(){if(this.#d.isDisposed())return;this.#d.sendCancelIfPossible(this.#a.get()),(this.#d.isReady()||this.#d.isTransitioning())&&this.#d.sendStop(),this.#d.sendDispose(),this.#d.clearAll(),this.#c.disposeAll();let e=n.i(this);for(let t of e.routerExtensions)for(let e of t.keys)delete this[e];e.routerExtensions.length=0,e.contextClaimRecords.clear(),e.interceptors.clear(),this.#o.clearRoutes(),this.#s.clearAll(),this.#i.dependencies=no(null),this.#v()}canNavigateTo(r,i,a){let o=n.i(this);o.validator?.routes.validateRouteName(r,`canNavigateTo`),o.validator?.navigation.validateParamsShape(i,`canNavigateTo`),o.validator?.navigation.validateSearch(a,`canNavigateTo`);let s;try{s=t.t(i)}catch(e){return o.logger.warn(`router.canNavigateTo`,`Reading the params bag for route "${r}" threw; treating the route as unreachable.`,e),!1}if(o.validator?.navigation.validateParams(s,`canNavigateTo`),!this.#o.hasRoute(r)||n.v(i,this.#o.getQueryParams(r))!==void 0)return!1;let c=this.#o.getPort(),l;try{l=k(c,r,s??e.l,a)}catch(e){return o.logger.warn(`router.canNavigateTo`,`Resolving route "${r}" threw while answering the predicate; treating the route as unreachable.`,e),!1}let u;try{u=j(l,A(l,c))}catch{return!1}let d=this.#a.get(),{toDeactivate:f,toActivate:p}=W(u,d,e=>this.#o.getMetaForState(e));return this.#s.canNavigateTo(f,p,u,d)}usePlugin(...r){if(this.#d.isDisposed())throw t.y(new t.v(e.m.ROUTER_DISPOSED));let i=r.filter(Boolean);if(i.length===0)return()=>{};let a=n.i(this);a.validator?.plugins.validatePluginLimit(this.#c.count(),this.#t);for(let e of i)a.validator?.plugins.validateNoDuplicatePlugins(e,this.#c.getAll());return this.#c.use(...i)}subscribe(e){return La.validateSubscribeListener(e),this.#d.subscribe(e)}subscribeLeave(e){return La.validateSubscribeLeaveListener(e),this.#d.subscribeLeave(e)}isLeaveApproved(){return this.#d.isLeaveApproved()}navigate(r,a,o,s){this.#g();let c=n.i(this),l,u,d,f;typeof r==`object`&&r?(l=r.name,u=r.params,d=r.search,f=a??e.c):(l=r,u=a,d=o,f=s??e.c),n.o(c,`navigate`,l,u),c.validator?.navigation.validateNavigateArgs(l),c.validator?.navigation.validateParamsShape(u,`navigate`),c.validator?.navigation.validateSearch(d,`navigate`),c.validator?.navigation.validateNavigationOptions(f,`navigate`);let p;try{p=t.t(u)}catch(e){return Promise.reject(e)}return c.validator?.navigation.validateParams(p,`navigate`),i.#m(this.#l.navigate(l,p??e.l,d,f))}navigateToDefault(t){this.#g();let r=n.i(this);r.validator?.navigation.validateNavigateToDefaultArgs(t);let a=t??e.c;return r.validator?.navigation.validateNavigationOptions(a,`navigateToDefault`),i.#m(this.#l.navigateToDefault(a))}navigateToNotFound(n){if(this.#g(),!this.#d.isActive())throw t.y(new t.v(e.m.ROUTER_NOT_STARTED));if(n!==void 0&&typeof n!=`string`)throw TypeError(`[router.navigateToNotFound] path must be a string, got ${typeof n}`);if(n!==void 0)return this.#l.navigateToNotFound(n);let r=this.#a.get();if(r===void 0)throw t.y(new t.v(e.m.ROUTER_NOT_STARTED,{message:`[router.navigateToNotFound] cannot derive the path before the start navigation commits — pass an explicit path`}));return this.#l.navigateToNotFound(r.path)}static#m(e){return e instanceof Promise?e:Promise.resolve(e)}#h(e){if(!this.#d.canStart())return Promise.reject(Ra);n.i(this).validator?.navigation.validateStartArgs(e),this.#d.sendStart();let t;try{let r=n.i(this).start(e);t=typeof r?.then==`function`?r:Promise.reject(TypeError("[router.start] a `start` interceptor returned without calling next(). Every start interceptor must return `next(path)`."))}catch(e){t=Promise.reject(e)}return t.catch(e=>this.#_(e))}#g(){if(this.#d.isProcessing())throw t.y(new t.v(e.m.REENTRANT_NAVIGATION,{message:`[router] cannot start a navigation from inside a router event listener — the nested navigation would commit a state the outer one overwrites. Defer it: queueMicrotask(() => router.navigate(...)), await the current transition, or use an async listener.`}));if(this.#l.isPreparing())throw t.y(new t.v(e.m.REENTRANT_NAVIGATION,{message:`[router] cannot start a navigation from inside a forwardState interceptor, a route's encodeParams or dynamic forwardTo callback, or a defaultRoute/defaultParams/defaultSearch option callback — they run while a navigation is being prepared, before it is announced. Defer it: queueMicrotask(() => router.navigate(...)).`}));if(this.#o.isRevalidating())throw t.y(new t.v(e.m.REENTRANT_NAVIGATION,{message:`[router] cannot start a navigation from inside replace()'s revalidation — the revalidation would then defer to a commit that may never happen. Defer it: queueMicrotask(() => router.navigate(...)).`}))}#_(e){throw this.#d.isReady()&&this.#a.get()===void 0?this.#d.sendStop():this.#d.isStarting()&&this.#d.sendFail(void 0,e),e}#v(){this.navigate=Q,this.navigateToDefault=Q,this.navigateToNotFound=Q,this.start=Q,this.stop=Q,this.usePlugin=Q,this.subscribe=Q,this.subscribeLeave=Q,this.canNavigateTo=Q}};function Q(){throw t.y(new t.v(e.m.ROUTER_DISPOSED))}function oo(e){return lo(e)&&!Object.isFrozen(e)&&e!==xn.defaultParams&&e!==xn.defaultSearch}function so(e){let{defaultParams:t,defaultSearch:n}=e;return io({...oo(t)&&{defaultParams:new WeakRef(t)},...oo(n)&&{defaultSearch:new WeakRef(n)}})}function co(e,n,r){return[e,t.t(n),t.t(r)]}function lo(e){return typeof e==`object`&&!!e}function uo(e){let n={...e};return e.limits!=null&&(n.limits=t.o(`limits`,e.limits)),lo(e.defaultParams)&&(n.defaultParams=t.o(`defaultParams`,e.defaultParams)),lo(e.defaultSearch)&&(n.defaultSearch=t.o(`defaultSearch`,e.defaultSearch)),n}const fo=Object.freeze({});function $(e,t){let n;try{n=t[e]}catch(t){throw TypeError(`[router.constructor] Invalid "queryParams.${e}": reading it threw.`,{cause:t})}if(n!=null){if(typeof n==`string`)return n;try{return String(n)}catch(t){throw TypeError(`[router.constructor] Invalid "queryParams.${e}": its value cannot be converted to a string.`,{cause:t})}}}function po(e){if(e==null)return`default`;try{return String(e)}catch(e){throw TypeError(`[router.constructor] Invalid "urlParamsEncoding": coercing it threw.`,{cause:e})}}function mo(e){if(!e)return fo;let t=$(`arrayFormat`,e),n=$(`booleanFormat`,e),r=$(`nullFormat`,e),i=$(`numberFormat`,e);return io({...t!==void 0&&{arrayFormat:t},...n!==void 0&&{booleanFormat:n},...r!==void 0&&{nullFormat:r},...i!==void 0&&{numberFormat:i}})}function ho(e){return io({strictTrailingSlash:e.trailingSlash===`strict`,caseSensitive:e.caseSensitive,strictQueryParams:e.queryParamsMode===`strict`,urlParamsEncoding:po(e.urlParamsEncoding),queryParams:mo(e.queryParams)})}Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return Qt}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return an}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return yn}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return ft}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return sn}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return on}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return $t}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return dt}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return rr}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return xr}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return Pr}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return Zn}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return Nr}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return Ir}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return zr}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return br}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Br}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return cn}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return en}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return Hr}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return Lr}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return jr}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return ao}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return Mr}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return fr}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return ir}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return dr}});
2
- //# sourceMappingURL=Router-BPMxquQn.js.map