@real-router/core 0.130.0 → 0.131.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ingest-C6HQ7xXf.js"),t=require("./Router-B_Zdy0II.js"),n=require("./RouterError-B-j6UqeF.js"),r=(e=[],n={},r={})=>new t.t(e,n,r),i=Object.freeze,a=new WeakMap,o=e=>{let t=a.get(e);return t||(t=i({navigate:e.navigate,getState:e.getState,isActiveRoute:e.isActiveRoute,canNavigateTo:e.canNavigateTo,subscribe:e.subscribe,subscribeLeave:e.subscribeLeave,isLeaveApproved:e.isLeaveApproved}),a.set(e,t)),t};exports.Router=t.t,exports.RouterError=n.t,exports.UNKNOWN_ROUTE=e.d,exports.constants=e.p,exports.createRouter=r,exports.errorCodes=e.m,exports.events=e.h,exports.getNavigator=o,exports.resolveForwardChain=t.v;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ingest-C6HQ7xXf.js"),t=require("./Router-BiGqB1Jw.js"),n=require("./RouterError-B-j6UqeF.js"),r=(e=[],n={},r={})=>new t.t(e,n,r),i=Object.freeze,a=new WeakMap,o=e=>{let t=a.get(e);return t||(t=i({navigate:e.navigate,getState:e.getState,isActiveRoute:e.isActiveRoute,canNavigateTo:e.canNavigateTo,subscribe:e.subscribe,subscribeLeave:e.subscribeLeave,isLeaveApproved:e.isLeaveApproved}),a.set(e,t)),t};exports.Router=t.t,exports.RouterError=n.t,exports.UNKNOWN_ROUTE=e.d,exports.constants=e.p,exports.createRouter=r,exports.errorCodes=e.m,exports.events=e.h,exports.getNavigator=o,exports.resolveForwardChain=t.v;
2
2
  //# sourceMappingURL=index.js.map
@@ -37,6 +37,17 @@ export interface RoutesStore<Dependencies extends DefaultDependencies = DefaultD
37
37
  */
38
38
  readonly queryParamsCache: Map<string, readonly string[]>;
39
39
  resolvedForwardMap: Record<string, string>;
40
+ /**
41
+ * Is `replace()`'s revalidation window open (#1758 / #1759)?
42
+ *
43
+ * ⚑ Application code runs inside it — the route's `decodeParams`, invoked by
44
+ * the revalidating `matchPath`, and the new route's activation guards — while
45
+ * the router holds a state it has not yet revalidated. Reached from there,
46
+ * route-CRUD committed a bag the route could no longer build and a navigation
47
+ * left the committed state on a route the batch had dropped. Both doors
48
+ * consult this; `revalidation-window-ban-1758-1759.test.ts` owns the cells.
49
+ */
50
+ revalidating: boolean;
40
51
  /**
41
52
  * Does ANY route in the tree forward? Read by `isActiveRoute` before its
42
53
  * `forwardTo` arm's per-route gate, and worth its own field for a reason that
@@ -1 +1 @@
1
- {"version":3,"file":"routesStore.d.ts","names":[],"sources":["../../../../src/namespaces/RoutesNamespace/routesStore.ts"],"mappings":";;;;;;iBAoFiB,YACf,qBAAqB,sBAAsB;;;;;;;;;;;;;WAclC,aAAa;WACb,QAAQ;EACjB,MAAM;EACN,SAAS;;;;;;;WAOA,gBAAgB;;;;;;;;WAQhB,kBAAkB;EAC3B,oBAAoB;;;;;;;;;;;;;;;;;;;;;;EAuBpB;EACA,mBAAmB,eAAe;EAClC;WACS,gBAAgB;EACzB,WAAW,mBAAmB;EAC9B,oBAAoB,wBAAwB;WACnC,oBAAoB,YAAY,eAAe;WAC/C,sBAAsB,YAAY,eAAe"}
1
+ {"version":3,"file":"routesStore.d.ts","names":[],"sources":["../../../../src/namespaces/RoutesNamespace/routesStore.ts"],"mappings":";;;;;;iBAoFiB,YACf,qBAAqB,sBAAsB;;;;;;;;;;;;;WAclC,aAAa;WACb,QAAQ;EACjB,MAAM;EACN,SAAS;;;;;;;WAOA,gBAAgB;;;;;;;;WAQhB,kBAAkB;EAC3B,oBAAoB;;;;;;;;;;;EAYpB;;;;;;;;;;;;;;;;;;;;;;EAuBA;EACA,mBAAmB,eAAe;EAClC;WACS,gBAAgB;EACzB,WAAW,mBAAmB;EAC9B,oBAAoB,wBAAwB;WACnC,oBAAoB,YAAY,eAAe;WAC/C,sBAAsB,YAAY,eAAe"}
@@ -0,0 +1,2 @@
1
+ import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,t as m,u as h,v as g,y as _}from"./internals-CcqRqpm9.mjs";import{a as v,c as y,g as b,h as x,i as S,l as C,m as w,n as ee,o as te,p as T,r as ne,s as re,t as ie,u as E}from"./ingest-XMtKw1RB.mjs";import{_ as ae,a as oe,c as D,d as se,f as ce,g as le,h as O,i as ue,l as de,m as k,n as A,o as fe,p as pe,r as j,s as me,t as M,u as he,v as ge,y as N}from"./RouterError-4CmDe8Nu.mjs";const _e=Object.entries,ve=Object.hasOwn;function ye(e,t,n){if(e===void 0||n.length===0)return e;let r,i=!1;for(let[a,o]of _e(e)){if(ve(t,a)&&t[a]!==void 0&&n.includes(a)){i=!0;continue}r??={},v(r,a,o)}return r===void 0?i?void 0:e:r}function be(e,t,n){for(let[r,i]of _e(e))a(n,r,i,t(r),"this route's `defaultParams`","Move it to `defaultSearch`")}const xe=Object.entries,Se=Object.freeze;function Ce(e,t,n){let r,i=!1;for(let[a,o]of xe(e))t.includes(a)?(r??={},v(r,a,o)):(i=!0,n?.(a));return i?Se(r??E):e}function we(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=we(t,o);o.children.push(e)}return o}function Te(e,t,n){let r=we({name:e,path:t},null);for(let e of n){let t=we(e,r);r.children.push(t)}return r}const Ee=/[^\w!$'()*+,.:;|~-]/gu,De=/[^\w!$'()*+,.:;|~-]/u,Oe=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,ke=e=>t=>{try{return e(t)}catch{return e(t.replaceAll(Oe,`�`))}},Ae=ke(e=>e.replaceAll(Ee,e=>encodeURIComponent(e))),je={default:e=>De.test(e)?Ae(e):e,uri:ke(encodeURI),uriComponent:ke(encodeURIComponent),none:e=>e},Me={default:decodeURIComponent,uri:decodeURI,uriComponent:decodeURIComponent,none:e=>e},Ne=(e,t)=>{let n=je[t],r=String(e).split(`/`),i=n(r[0]);for(let e=1;e<r.length;e++)i+=`/`+n(r[e]);return i},Pe=Object.freeze(Object.create(null));function Fe(){return{staticChildren:Pe,hasChildren:!1,paramChild:void 0,splatChild:void 0,route:void 0,slashChildRoute:void 0}}function P(e){return e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e}function Ie(e,t){return e===``?t:t===``?e:e.endsWith(`/`)&&t.startsWith(`/`)?e+t.slice(1):e+t}function Le(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(!Le(n)||!Le(r))return!1;t+=3}else t++;return!0}const ze=Object.freeze([]),Be=Object.freeze(new Set),Ve=Object.freeze([]),He=Object.freeze({}),Ue=Object.freeze({}),We=Object.freeze({});function Ge(e,t){let n=e.kind===`splat`;return{paramName:e.name,encoder:n?e=>Ne(e,t):je[t]}}function Ke(e,t,n,r){let i=new Set(r);for(let e of t)for(let t of e.paramMeta.urlParams)i.add(t);if(i.size===0)return{buildStaticParts:[e],buildParamSlots:Ve};let a=[],s=[],c=``,u=o(e),d=u.length-1;for(let[e,t]of u.entries()){let r=l(t);if(`error`in r||r.kind!==`splat`||e===d){if(e>0&&(c+=`/`),`error`in r||r.kind===`static`){c+=t;continue}a.push(c),c=``,s.push(Ge(r,n))}}return a.push(c),{buildStaticParts:a,buildParamSlots:s}}function qe(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 Je(){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 Ye(e){throw Error(`[SegmentMatcher.registerTree] Fused parameter marker in segment "${e}": a ':'/'*' marker must begin a segment — write 'a/:b', not 'a:b'.`)}function Xe(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 Ze(e){throw Error(`[SegmentMatcher.registerTree] Optional params are not supported: "${e}" — declare two sibling routes instead, one with the segment and one without.`)}function Qe(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 $e(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 et(e,t){switch(e){case`name-less`:return Je();case`trailing-marker`:return Xe(t);case`fused-marker`:return Ye(t);case`optional-removed`:return Ze(t);case`constraint-removed`:return Qe(t)}}function tt(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 nt(e,t){throw Error(`[SegmentMatcher.registerTree] Invalid query-param declaration "${t}" in route "${e}": a query-param name cannot contain '<' or '>'. Rename it.`)}function rt(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 it(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 at(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 ot(e,t){return e.paramChild?e.paramChild.name!==t&&qe(e.paramChild.name,t,`:`):e.paramChild={node:Fe(),name:t},e.paramChild.node}function st(e,t){return e.splatChild?e.splatChild.name!==t&&qe(e.splatChild.name,t,`*`):e.splatChild={node:Fe(),name:t},e.splatChild.node}const ct=Object.create;function lt(e,t){e.route!==void 0&&e.route!==t&&it(e.route.name,t.name),e.route=t}function ut(e){for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>=128)return!0;return!1}function dt(e,t,n){let r=P(n);if(r===`/`){lt(e.root,t);return}ft(e,e.root,r,1,t)}function ft(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=gt(e,t,s),r=o+1}lt(t,i)}function pt(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(`*`)&&at(t.name,n);let a=mt(e,n);a.slashChildRoute=t}function mt(e,t){return ht(e,e.root,t)}function ht(e,t,n){let r=P(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=gt(e,i,s),a=n+1}return i}function gt(e,t,n){let r=l(n);if(`error`in r&&Je(),r.kind===`splat`){let e=st(t,r.name);return t.hasChildren=!0,e}if(r.kind===`param`){let e=ot(t,r.name);return t.hasChildren=!0,e}ut(n)&&$e(n);let i=e.options.caseSensitive?n:n.toLowerCase();return i in t.staticChildren||(t.staticChildren===Pe&&(t.staticChildren=ct(null)),t.staticChildren[i]=Fe(),t.hasChildren=!0),t.staticChildren[i]}const _t=Object.freeze,vt=Object.hasOwn;function yt(e){let t=o(e);for(let[n,r]of t.entries())r===``&&n>0&&n<t.length-1&&rt(e)}function bt(e){for(let t of o(e)){let e=l(t);`error`in e&&et(e.error,t)}}function xt(e,t,n,i,a){let o=t.fullName===``;o||i.push(t);let s=t.absolute,c=t.paramMeta===r?t.path:t.paramMeta.pathPattern,l=s&&c.startsWith(`~`)?c.slice(1):c,u=s?l:c;yt(t.path),bt(u);let d=u,f=s?d:Ie(n,d),p=o?a:St(e,t,f,s?``:n,i,a);for(let n of t.children.values())xt(e,n,f,i,p);o||i.pop()}function St(e,t,n,r,i,a){let o=Dt(n,r),s=_t([...i]),c=Ct(s),l=P(n),u=_t(Ot(e.rootQueryParams,i)),{buildStaticParts:d,buildParamSlots:f}=Ke(o?P(r):l,o?i.slice(0,-1):i,e.options.urlParamsEncoding,e.rootUrlParams),p=f.map(e=>e.paramName),m=p.length===0?Be:new Set(p);m.size!==p.length&&tt(t.fullName,p),kt(t.fullName,u);let h={name:t.fullName,parent:a,matchSegments:s,meta:c,declaredQueryParams:u,declaredQueryParamsSet:u.length===0?Be: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=_t({segments:h.matchSegments,params:He,search:Ue,meta:h.meta})),e.routesByName.set(t.fullName,h),o?Tt(e,h,r):Et(e,h,n,l,t),h}function Ct(e){let t;for(let n of e)wt(n.paramTypeMap)&&(t??=ne(),t[n.fullName]=n.paramTypeMap);return t===void 0?We:_t(ie(S(t)))}function wt(e){for(let t in e)if(vt(e,t))return!0;return!1}function Tt(e,t,n){pt(e,t,n);let r=P(n),i=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.has(i)&&e.staticCache.set(i,t)}function Et(e,t,n,r,i){if(dt(e,t,n),i.paramMeta.urlParams.length===0){let n=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.set(n,t)}}function Dt(e,t){return P(e)===P(t)}function Ot(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?ze:n}function kt(e,t){for(let n of t)i.test(n)&&nt(e,n)}const At=Symbol.for(`real-router.searchParams.configFault`),jt=Object.hasOwn,Mt=Object.keys,Nt=Object.getOwnPropertyDescriptor;function Pt(e){try{return Nt(e,At)?.configurable===!1}catch{return!1}}function Ft(e){return typeof e==`string`?e:typeof e==`object`?JSON.stringify(e):String(e)}const It=Object.freeze({});function Lt(e,t){return e===`strict`?t?`always`:`never`:e}var Rt=class{get options(){return this.#e}#e;#t=Fe();#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=jt(je,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:Me[this.#e.urlParamsEncoding]}registerTree(e){this.#a=e.paramMeta.queryParams,xt({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,Lt(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&&jt(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(Ft(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(e,t,n){if(!t||e.declaredQueryParams.length===0&&n!==`loose`)return``;let r={},i=!1;for(let n of e.declaredQueryParams)jt(t,n)&&(v(r,n,t[n]),i=!0);if(n===`loose`)for(let n of Mt(t))e.declaredQueryParamsSet.has(n)||e.buildParamNamesSet.has(n)||(v(r,n,t[n]),i=!0);return i?this.#e.buildQueryString(r):``}#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=P(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=It;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(Pt(e))throw e;return}if(this.#e.strictQueryParams){let t=e.declaredQueryParamsSet;for(let e of Mt(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(e,t,n,r){let i=e,a=t.length,o=this.#s;for(;n<=a;){let e=t.indexOf(`/`,n),s=e===-1?a:e,c=t.slice(n,s),l=o?c:c.toLowerCase(),u;if(l in i.staticChildren){let e=i.staticChildren[l];if(i.splatChild!==void 0){let a={},o=this.#v(e,t,s+1,a);return o===void 0?this.#y(i.splatChild,t,n,r):(ee(r,a),o)}u=e}else if(i.paramChild){let e=i.paramChild;if(i.splatChild!==void 0){let a={[e.name]:c},o=this.#v(e.node,t,s+1,a);return o===void 0?this.#y(i.splatChild,t,n,r):(ee(r,a),o)}u=e.node,v(r,e.name,c)}else if(i.splatChild)return this.#y(i.splatChild,t,n,r);else return;i=u,n=s+1}return i.slashChildRoute??i.route}#y(e,t,n,r){let i=e.node;if(!i.hasChildren)return v(r,e.name,t.slice(n)),i.route;let a={},o=this.#v(i,t,n,a);return o?(ee(r,a),o):(v(r,e.name,t.slice(n)),i.route)}#b(e){let t=this.#c;if(!t)return!0;for(let n of Mt(e)){let r=e[n];if(r.includes(`%`)){if(!Re(r))return!1;try{e[n]=t(r)}catch{return!1}}}return!0}};const F=Object.freeze,zt=Object.freeze(new Map),Bt=Object.freeze([]);function Vt(e){return e.parent?.name?`${e.parent.fullName}.${e.name}`:e.name}function Ht(e){let t=new Map;for(let n of e)t.set(n.name,n);return t}function Ut(e,t){let n=[],r=[];for(let i of e){let e=Wt(i,t);n.push(e),e.absolute||r.push(e)}return{childrenMap:Ht(n),nonAbsoluteChildren:r}}function Wt(e,t){let n=f(e.path),i=n.urlParams.length===0&&n.queryParams.length===0&&n.pathPattern===e.path?r:n,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=Vt(o),e.children.length===0)o.children=zt,o.nonAbsoluteChildren=Bt;else{let{childrenMap:t,nonAbsoluteChildren:n}=Ut(e.children,o);o.children=t,o.nonAbsoluteChildren=n,F(o.nonAbsoluteChildren),F(o.children)}return F(a),F(i.urlParams),F(i.queryParams),F(i),F(o),o}function Gt(e){return Wt(e,null)}function Kt(e,t,n){return Gt(Te(e,t,n))}function qt(e){let t=e.absolute?`~${e.path}`:e.path,n={name:e.name,path:t};return e.children.size>0&&v(n,`children`,Array.from(e.children.values(),qt)),n}function Jt(e){return Array.from(e.children.values(),qt)}const Yt=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)},Xt=(e,t)=>{if(e===void 0)return t.boolean.decodeUndefined();let n=t.boolean.decodeRaw(e);if(n!==null)return n;let r=Yt(e),i=t.number.decode(r);return i===null?t.boolean.decodeValue(r):i},Zt=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,Qt=e=>{try{return encodeURIComponent(e)}catch(t){if(!(t instanceof URIError))throw t;return encodeURIComponent(String(e).replaceAll(Zt,`�`))}},$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 Qt(e)},en=(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(`&`)},tn={none:{encodeArray:(e,t,n)=>en(e,t,``,n)},brackets:{encodeArray:(e,t,n)=>en(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}},nn={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}},rn={default:{encode:e=>e},hidden:{encode:()=>``}},an={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}},on=Object.defineProperty,sn=Object.keys,cn=Object.hasOwn,ln=Symbol.for(`real-router.searchParams.configFault`),un=(e,t,n)=>{let r=typeof t==`string`?t:String(t);if(!cn(e,r)){let t=TypeError(`[router.constructor] Invalid "queryParams.${n}": "${r}" — expected ${sn(e).map(e=>`"${e}"`).join(` | `)}`);throw on(t,ln,{value:!0}),t}return e[r]},dn=(e,t,n,r)=>({boolean:un(nn,t,`booleanFormat`),null:un(rn,n,`nullFormat`),number:un(an,r,`numberFormat`),array:un(tn,e,`arrayFormat`)}),fn=Object.freeze({boolean:nn.auto,null:rn.default,number:an.auto,array:tn.none}),I=Object.freeze({arrayFormat:`none`,booleanFormat:`auto`,nullFormat:`default`,numberFormat:`auto`}),pn=Object.freeze({...I,strategies:fn}),mn=e=>{if(!e||e.arrayFormat===void 0&&e.booleanFormat===void 0&&e.nullFormat===void 0&&e.numberFormat===void 0)return pn;let t=e.arrayFormat??I.arrayFormat,n=e.booleanFormat??I.booleanFormat,r=e.nullFormat??I.nullFormat,i=e.numberFormat??I.numberFormat;return{arrayFormat:t,booleanFormat:n,nullFormat:r,numberFormat:i,strategies:dn(t,n,r,i)}},hn=e=>Qt(e),gn=(e,t,n)=>{let r=hn(e);switch(typeof t){case`string`:case`number`:return`${r}=${hn(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}=${hn(t)}`;default:return`${r}=${hn(t)}`}},_n=Object.hasOwn,vn=Object.keys;function yn(e,t,n){v(e,t,n)}function bn(e,t,n,r){if(!_n(e,t)){yn(e,t,r?[n]:n);return}let i=e[t];Array.isArray(i)?i.push(n):yn(e,t,[i,n])}function xn(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 Sn(e,t,n){let{searchPart:r,nameEnd:i,nameSourceEnd:a,rawValue:o,decodedName:s}=e,c=xn(r,i,a);if(c===null)return!1;let l=Xt(o,t),u=n.get(s);return u===void 0?n.set(s,[[c,l]]):u.push([c,l]),!0}function Cn(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=Yt(e.slice(t,l));if(!(o!==void 0&&u&&Sn({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)bn(r,d,Xt(t,i),!0);return}}bn(r,d,Xt(s,i),u)}}const wn=(e,t)=>{if(e===``||e===`?`)return{};let n={};return Tn(e,n,t.strategies),n};function Tn(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)),Cn(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]),yn(t,e,n.map(e=>e[1]))}const En=(e,t)=>{let n=vn(e);if(n.length===0)return``;let r=[];for(let i of n){let n=e[i];if(n===void 0)continue;let a=gn(i,n,t);a&&r.push(a)}return r.join(`&`)};function Dn(e){let t=e?.queryParams,n=mn(t);return new Rt({...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=>wn(e,n),buildQueryString:e=>En(e,n)})}const On=Object.keys,kn=Object.values,An=Object.hasOwn,jn=Object.getOwnPropertyDescriptor,Mn=Object.getPrototypeOf,Nn=Object,Pn=new Set(kn(x));function Fn(e){if(!Pn.has(e))throw TypeError(`[router.addEventListener] Invalid event name: ${String(e)}. Must be one of: ${[...Pn].join(`, `)}`)}function In(e){if(typeof e!=`function`)throw TypeError(`[router.addEventListener] callback must be a function, got ${typeof e}`)}function Ln(e,t){if(typeof e!=`string`||!An(m,e))throw TypeError(`[router.addInterceptor] Invalid method: ${typeof e==`string`?`"${e}"`:typeof e}. Must be one of: ${On(m).join(`, `)}`);if(typeof t!=`function`)throw TypeError(`[router.addInterceptor] interceptor must be a function, got ${typeof t}`)}function Rn(e,t){if(typeof e!=`string`)throw TypeError(`[router.${t}] Route name must be a string, got ${typeof e}`)}function zn(e){if(!e||typeof e!=`object`)throw TypeError(`dependencies must be a plain object`);let t=Mn(e);if(t!==null&&t.constructor!==Nn)throw TypeError(`dependencies must be a plain object`)}function Bn(e,t){zn(e);let n=e,r=[];for(let e of On(n)){if(jn(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 Vn(e){let t=[];for(let r of e){let e=r;if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError(`route must be a non-array object`);n(e,`addRoute`);let i={...e},a=i.children;a&&v(i,`children`,Vn(a)),t.push(i)}return t}function Hn(e,t){if(t)for(let n of e){t.routes.guardRouteCallbacks(n),t.routes.guardNoAsyncCallbacks(n);let e=n.children;e&&Hn(e,t)}}const Un=new Set([`all`,`warn-error`,`error-only`,`none`]);function Wn(e){return typeof e==`string`&&Un.has(e)}function Gn(e){return typeof e==`string`?`"${e}"`:typeof e==`object`?JSON.stringify(e):String(e)}function Kn(e){for(let t of On(e))if(t!==`level`&&t!==`callback`&&t!==`callbackIgnoresLevel`)throw TypeError(`Unknown logger config property: "${t}"`)}function qn(e){if(!An(e,`level`))return;let t=e.level;if(t!==void 0){if(!Wn(t))throw TypeError(`Invalid logger level: ${Gn(t)}. Expected: "all" | "warn-error" | "error-only" | "none"`);return t}}function Jn(e){if(!An(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 Yn(e){if(typeof e!=`object`||!e)throw TypeError(`Logger config must be an object`);let t=e;Kn(t);let n=ne(),r=qn(t);if(r!==void 0&&(n.level=r),An(t,`callback`)){let e=t.callback;if(e!==void 0&&typeof e!=`function`)throw TypeError(`Logger callback must be a function, got ${typeof e}`);n.callback=e}let i=Jn(t);return i!==void 0&&(n.callbackIgnoresLevel=i),n}const Xn=Object.freeze;function Zn(e={}){let t={...te,...e};return Xn({maxDependencies:Number(t.maxDependencies),maxPlugins:Number(t.maxPlugins),maxListeners:Number(t.maxListeners),warnListeners:Number(t.warnListeners),maxLifecycleHandlers:Number(t.maxLifecycleHandlers)})}const Qn=Object.create;function $n(e,t,n){e[t]=n}function er(e={}){let t=Qn(null),n=e,r=t;return Bn(n,(e,t)=>{$n(r,e,t)}),{dependencies:t,limits:te}}const tr={defaultRoute:``,defaultParams:{},defaultSearch:{},trailingSlash:`preserve`,caseSensitive:!0,queryParamsMode:`loose`,queryParams:I,urlParamsEncoding:`default`,allowNotFound:!0,rewritePathOnMatch:!0};function nr(e){if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(`[router.constructor] options must be a plain object`)}const rr=Object.freeze;var ir=class{#e;constructor(e={}){this.#e=rr(de({...tr,...e}))}static validateOptionsIsObject(e){nr(e)}get(){return this.#e}};function ar(e,t){return typeof e==`function`?e(t):e}const or=Object.keys;function sr(e,t,n,r,i){let a=e.pathNames(t);if(a!==void 0)for(let e of or(n))!r.includes(e)&&!a.includes(e)&&i(t,e)}function L(e,t,n,r,i){let a=String(t),o=i?.resolveForward===!1?{name:a,params:n,search:r}:e.resolveForward(a,n,r),s=o.name,c=k(o.params,C),l=i?.diagnoseUndeclared===!0?e.reportUndeclaredParamKey:void 0;l&&sr(e,s,c,e.queryNames(s),l);let u=e.defaultParams(s),d=e.defaultSearch(s);if((o.search===void 0||o.search===E)&&u===void 0&&d===void 0)return{name:s,path:c,query:E};let f=e.queryNames(s),p=e.reportDroppedQueryKey,m=i?.resolveForward===!1?ye(d,c,f):d,h=k(o.search,E),g=pe(m,h);return{name:s,path:ce(u,c),query:e.admitsUndeclaredQuery()?g:Ce(g,f,t=>{p!==void 0&&e.pathNames(s)!==void 0&&p(s,t)})}}function R(e,t){return t.buildPath(e.name,e.path,e.query)}const cr=Object.freeze;function lr(e,t){let n={name:e.name,params:e.path,search:e.query,path:t,context:{},transition:re};return cr(n.params),n}function z(e,t){return he(lr(e,t))}function ur(e,t){return lr(e,t)}var dr=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,n,r,i){let a=this.#t.port(),o=L(a,t,n??C,r,{resolveForward:!1});return e(`makeState`,o.name,o.path,a.queryNames(o.name)),z(o,i??R(o,a))}areStatesEqual(e,t,n=!0){if(!e||!t)return!!e==!!t;let r=e.name;return r===t.name?n?ge(e.params,t.params,this.#t.getUrlParams(r)):ae(e.params,t.params)&&ae(e.search,t.search):!1}};const fr=Object.keys,pr={[b.ROUTER_START]:x.ROUTER_START,[b.ROUTER_STOP]:x.ROUTER_STOP,[b.TRANSITION_SUCCESS]:x.TRANSITION_SUCCESS,[b.TRANSITION_START]:x.TRANSITION_START,[b.TRANSITION_LEAVE_APPROVE]:x.TRANSITION_LEAVE_APPROVE,[b.TRANSITION_ERROR]:x.TRANSITION_ERROR,[b.TRANSITION_CANCEL]:x.TRANSITION_CANCEL},mr=fr(pr),hr=`router.usePlugin`;function gr(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 _r=Object.freeze;var vr=class e{#e=new Set;#t=new Set;#n;static validatePlugin(e){gr(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(hr,`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(hr,`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(hr,`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),_r(n);let r=[];for(let e of mr)e in n&&(typeof n[e]==`function`?(r.push(this.#n.addEventListener(pr[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 B=Object.create,yr=()=>!0,br=()=>!1,xr=()=>yr,Sr=()=>br;function Cr(e){return e?xr:Sr}function wr(e,t,n){n===void 0?e.delete(t):e.set(t,n)}var Tr=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=B(null),t=B(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=B(null),t=B(null),n=B(null),r=B(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`?Cr(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`?Cr(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 wr(c,t,d),wr(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 Er=new Set([`name`,`path`,`children`,`canActivate`,`canDeactivate`,`forwardTo`,`encodeParams`,`decodeParams`,`defaultParams`,`defaultSearch`]),Dr=Object.freeze,V=Object.create,Or=Object.hasOwn,kr=Object.keys;function Ar(){return{decoders:V(null),encoders:V(null),defaultParams:V(null),defaultSearch:V(null),forwardMap:V(null),forwardFnMap:V(null)}}function jr(e){return kr(e.forwardMap).length>0||kr(e.forwardFnMap).length>0}function Mr(e,t){for(let n of kr(t))Object.assign(e[n],t[n])}function Nr(e,t){for(let n in e)if(Or(t,n)&&!me(e[n],t[n]))return!1;return!0}function Pr(e){return typeof e==`string`?e:`<non-string>`}function Fr(e,t){for(let n in e)if(!me(e[n],t[n]))return!1;return!0}function Ir(e){let t={name:e.name,path:e.path};return e.children&&v(t,`children`,e.children.map(e=>Ir(e))),t}function Lr(e,t,n){if(n.add(t),e.children)for(let r of e.children)Lr(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 Lr(i,a,t),t}if(i.children&&t.startsWith(`${a}.`)){let e=Rr(i.children,t,a);if(e)return e}}}function zr(e,t){for(let n of kr(e))t(n)&&delete e[n]}function Br(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 Vr(e){let t=[];for(let n of e)for(let e of n.paramMeta.urlParams)t.push(e);return t}function Hr(e,t,n){let r=n.get(t);if(r!==void 0)return r;let i=e.getSegmentsByName(t),a=Dr(i?Vr(i):[]);return n.set(t,a),a}function Ur(e,t){return Hr(e.matcher,t,e.urlParamsCache)}function Wr(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=Hr(e,t,n);o=a.filter(e=>!r.includes(e))}let s=Dr(o);return r.set(t,s),s}function Gr(e,t){return Wr(e.matcher,t,e.urlParamsCache,e.queryParamsCache)}function Kr(e,t,n){let r=new Map,i=new Map;be(t.defaultParams,t=>Wr(e,t,r,i),n)}function qr(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 Jr=Object.freeze,H=Object.create,Yr=Object.entries,Xr=Object.keys,Zr=Object.defineProperty,Qr=Object.fromEntries;function $r(e,t,n){let r=Kt(``,t,e),i=Dn(n);return i.registerTree(r),{tree:r,matcher:i}}function ei(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 ti(e,t){let n=$r(e.definitions,t,e.matcherOptions);Kr(n.matcher,e.config,`setRootPath`),e.rootPath=t,e.tree=n.tree,e.matcher=n.matcher,e.urlParamsCache.clear(),e.queryParamsCache.clear()}function ni(e,t){ei(e,t),U(e,ai(e.config))}function ri(e){ii(e),ei(e,[])}function ii(e){Object.assign(e.config,Ar()),U(e,H(null)),e.routeCustomFields=H(null)}function U(e,t){e.resolvedForwardMap=t,e.hasAnyForward=jr(e.config)}function ai(e){let t=H(null);for(let n of Xr(e.forwardMap))t[n]=qr(n,e.forwardMap);return t}function oi(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 si(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}".`)}oi(e.forwardTo,t),typeof e.forwardTo==`string`?n.forwardMap[t]=e.forwardTo:n.forwardFnMap[t]=e.forwardTo}function ci(e,t,n,r,i,a,o){let s=Qr(Yr(e).filter(([e])=>!Er.has(e)));if(Xr(s).length>0&&(r[t]=Jr(s)),e.canActivate&&i.set(t,e.canActivate),e.canDeactivate&&a.set(t,e.canDeactivate),e.forwardTo&&si(e,t,n,o),e.decodeParams){let r=e.decodeParams;n.decoders[t]=e=>r(e)??e}if(e.encodeParams){let r=e.encodeParams;n.encoders[t]=e=>r(e)??e}e.defaultParams&&(n.defaultParams[t]=D(`defaultParams`,e.defaultParams)),e.defaultSearch&&(n.defaultSearch[t]=D(`defaultSearch`,e.defaultSearch))}function li(e,t,n,r,i,a,o=``){for(let s of e){let e=o?`${o}.${s.name}`:s.name;ci(s,e,t,n,r,i,a),s.children&&li(s.children,t,n,r,i,a,e)}}function ui(e){let t=Ar();return Mr(t,e),t}function di(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]:di(n,t,i)}})}function fi(e,t,n){for(let r of e){let e=t?`${t}.${r.name}`:r.name;n(e),r.children&&fi(r.children,e,n)}}function pi(e,t,n){let r=new Set;fi(e,t,e=>{if(r.has(e))throw Error(`[router.${n}] Duplicate route "${e}" in batch`);r.add(e)})}function mi(e,t){if(Rn(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 hi(e,t){for(let n of e)mi(n.name,t),n.children&&hi(n.children,t)}function gi(e,t){for(let n of e)h(n.name,t),n.children&&gi(n.children,t)}function _i(e,t){for(let n of e)c(n.name,t),n.children&&_i(n.children,t)}function vi(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 yi(e,t,n){if(hi(t,`addRoute`),gi(t,`addRoute`),_i(t,`addRoute`),n!==void 0&&!e.matcher.hasRoute(n))throw Error(`[router.addRoute] Parent route "${n}" does not exist`);fi(t,n??``,t=>{if(e.matcher.hasRoute(t))throw Error(`[router.addRoute] Route "${t}" already exists`)}),pi(t,n??``,`addRoute`),vi(t,n??``,`addRoute`)}function bi({definitions:e,routesForHandlers:t,config:n,routeCustomFields:r,handlerParentName:i,rootPath:a,matcherOptions:o,logger:s}){let c=new Map,l=new Map;li(t,n,r,c,l,s,i);let u=ai(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 xi(e,t,n,r){return bi({definitions:di(e.definitions,t.map(e=>Ir(e)),n===void 0?[]:n.split(`.`)),routesForHandlers:t,config:ui(e.config),routeCustomFields:Object.assign(H(null),e.routeCustomFields),handlerParentName:n??``,rootPath:e.rootPath,matcherOptions:e.matcherOptions,logger:r})}function Si(e,t,n,r){return bi({definitions:e.map(e=>Ir(e)),routesForHandlers:e,config:Ar(),routeCustomFields:H(null),handlerParentName:``,rootPath:t,matcherOptions:n,logger:r})}function Ci(e,t,n){let r=[];for(let[i,a]of e)r.push([i,a,t(a,n)]);return r}function wi(e,t){return{activate:Ci(e.pendingCanActivate,t.compileGuard,`canActivate`),deactivate:Ci(e.pendingCanDeactivate,t.compileGuard,`canDeactivate`)}}function Ti(e,t,n){let r=e.depsStore,{activate:i,deactivate:a}=n??wi(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(),U(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 W(e){return e===null?e:e||void 0}function Ei(e,t){return t==null?t:D(e,t)}function Di(e,t,n,r){let{forwardTo:i,defaultParams:o,defaultSearch:s,decodeParams:c,encodeParams:l,canActivate:u,canDeactivate:d}=r,f=W(i),p=Ei(`defaultParams`,W(o)),m=Ei(`defaultSearch`,W(s)),h=W(c),g=W(l),_=W(u),v=W(d);p!=null&&a(`updateRoute`,n,p,Gr(e,n),"this route's `defaultParams`","Move it to `defaultSearch`");let y=f===void 0?void 0:Oi(n,f,e.config),b=ki(e,n,r),x=_==null?void 0:t.compileGuardFactory(_,`canActivate`),S=v==null?void 0:t.compileGuardFactory(v,`canDeactivate`);return t.preflightHandlerLimit(x===void 0?[]:[n],S===void 0?[]:[n],!1),b!==void 0&&(Xr(b).length>0?e.routeCustomFields[n]=Jr(b):delete e.routeCustomFields[n]),y!==void 0&&(e.config.forwardMap=y.forwardMap,e.config.forwardFnMap=y.forwardFnMap,U(e,y.resolved)),ji(e,n,{defaultParams:p,defaultSearch:m,decodeParams:h,encodeParams:g}),Mi(t,`activate`,n,_,x),Mi(t,`deactivate`,n,v,S),{forwardTo:f,defaultParams:p,defaultSearch:m,decodeParams:h,encodeParams:g}}function Oi(e,t,n){oi(t,e);let r=Object.assign(H(null),n.forwardMap),i=Object.assign(H(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:ai({...n,forwardMap:r})}}function ki(e,t,n){let r;for(let i of Xr(n)){if(Er.has(i))continue;let a=n[i];a!==void 0&&(r??={...e.routeCustomFields[t]},a===null?delete r[i]:v(r,i,a))}return r}function Ai(e,t,n){n!==void 0&&(n===null?delete e[t]:e[t]=n)}function ji(e,t,n){if(Ai(e.config.defaultParams,t,n.defaultParams),Ai(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 Mi(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 Ni(e,t,n){let r=e;hi(r,`addRoute`),gi(r,`constructor`),_i(r,`constructor`),pi(r,``,`addRoute`);let i=Si(r,``,t,n),a={get definitions(){return Jt(a.tree)},config:i.config,tree:i.tree,matcher:i.matcher,urlParamsCache:new Map,queryParamsCache:new Map,resolvedForwardMap:i.resolvedForwardMap,hasAnyForward:jr(i.config),routeCustomFields:i.routeCustomFields,rootPath:``,matcherOptions:t,depsStore:void 0,lifecycleNamespace:void 0,revalidating:!1,pendingCanActivate:i.pendingCanActivate,pendingCanDeactivate:i.pendingCanDeactivate};return Kr(a.matcher,a.config,`addRoute`),Zr(a,`matcherOptions`,{writable:!1,configurable:!1}),a}const Pi=Object.freeze,Fi=Object.keys,Ii=[];Object.freeze(Ii);function Li(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 Ri=new Set([`string`,`number`,`boolean`]);function zi(e){return Ri.has(typeof e)}function Bi(e,t,n,r){let i=t[e];if(!i||typeof i!=`object`)return!0;for(let e of Fi(i)){let t=n.params[e],i=r.params[e];if(zi(t)&&zi(i)&&String(t)!==String(i))return!1}return!0}function Vi(e,t,n,r,i,a){for(let o=0;o<a;o++){let a=r[o];if(a!==i[o]||!Bi(a,e,t,n))return o}return a}const Hi=new Map;function G(e){let t=Hi.get(e);if(t)return t;let n=Ui(e);return Pi(n),Hi.set(e,n),n}function Ui(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]:Li(e)}let Wi,Gi,Ki=null,qi,Ji,Yi=null;function Xi(e,t,n){if(!t)return{intersection:``,toActivate:G(e.name),toDeactivate:Ii};let r=n(e.name),i=n(t.name);if(!r&&!i)return{intersection:``,toActivate:G(e.name),toDeactivate:G(t.name)};let a=G(e.name),o=G(t.name),s=Math.min(o.length,a.length),c=Vi(r??i,e,t,a,o,s),l;if(c>=o.length)l=Ii;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 Zi(e,t,n){if(Ki!==null&&e===Wi&&t===Gi)return Ki;if(Yi!==null&&e===qi&&t===Ji)return Yi;let r=Xi(e,t,n);return qi=Wi,Ji=Gi,Yi=Ki,Wi=e,Gi=t,Ki=r,r}const Qi=Object.freeze,K=Object.hasOwn;function $i(e,t){return{name:t??e.segments.at(-1).fullName,params:e.params,search:e.search,meta:e.meta}}function ea(e){return e===`preserve`?void 0:e}var ta=class{#e;#t;#n;get#r(){return this.#e.depsStore}constructor(e,t,n){this.#e=Ni(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}=Zi(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){ti(this.#e,e)}hasRoute(e){return this.#e.matcher.hasRoute(e)}clearRoutes(){ri(this.#e)}buildPath(e,t,n,r){if(e===T.UNKNOWN_ROUTE)return typeof t.path==`string`?t.path:``;let i=this.#e.config.encoders[e];if(typeof i==`function`){let a=i({params:{...t},search:{...n}});return this.#e.matcher.buildPath(e,a.params,a.search,this.#c(r))}return this.#e.matcher.buildPath(e,t,n,this.#c(r))}buildPathFromIntent(e,t,n){return e===T.UNKNOWN_ROUTE?this.#r.port.buildPath(e,k(t,C),n??E):R(L(this.#r.port,e,t,n,{resolveForward:!1}),this.#r.port)}matchPath(t,n){let r=n,i=this.#e.matcher.match(t);if(!i)return;let o=$i(i),{name:s}=o,c=N(o.params),l=N(o.search),u=this.#e.config.decoders[s],d;typeof u==`function`?(d=u({params:c,search:l}),this.#r.getValidator()?.routes.validateStateBuilderArgs(s,d.params,`matchPath`),a(`matchPath`,s,d.params,this.getQueryParams(s),"the `params` returned by this route's `decodeParams`")):d={params:c,search:l};let f=L(this.#r.port,s,d.params,d.search),p=f.name;e(`matchPath`,f.name,f.path,this.getQueryParams(f.name));let m=f.path,h=f.query,g=t;if(r.rewritePathOnMatch){let e=this.#e.config.encoders[p],n=typeof e==`function`?e({params:m,search:h}):{params:m,search:h},i=r.trailingSlash;try{g=this.#e.matcher.buildPath(p,n.params,n.search,{trailingSlash:ea(i),queryParamsMode:r.queryParamsMode}),i===`preserve`&&(g=Br(t,g))}catch{g=t}}return z(f,g)}forwardState(e,t,n){let r=n??E;if(K(this.#e.config.forwardFnMap,e)){let n=this.#e.config.forwardFnMap[e],{target:i,chain:a,params:o}=this.#l(e,n,t);return this.#s(i,a,o,r)}let i=this.#e.resolvedForwardMap[e]??e;if(i!==e&&K(this.#e.config.forwardFnMap,i)){let n=this.#e.config.forwardFnMap[i],{target:a,chain:o,params:s}=this.#l(i,n,t);return this.#s(a,[...this.#o(e),...o],s,r)}return i===e?{name:e,params:t,search:r}:this.#s(i,this.#o(e),t,r)}buildStateResolved(e,t){let n=this.#e.matcher.getSegmentsByName(e);if(n)return $i({segments:n,params:t,search:{},meta:this.#e.matcher.getMetaByName(e)},e)}isActiveRoute(e,t=C,n=E,r=!1,i=!0){if(this.#i(e,t,n,r,i))return!0;if(!this.#e.hasAnyForward)return!1;let a;try{a=typeof e==`string`?e:String(e)}catch{return!1}if(!K(this.#e.config.forwardMap,a)&&!K(this.#e.config.forwardFnMap,a))return!1;let o;try{o=this.forwardState(e,t,n)}catch(t){return this.#r.logger.warn(`router.isActiveRoute`,`Dynamic forwardTo of route "${Pr(e)}" threw while resolving the active-link destination; treating the link as inactive.`,t),!1}return this.#i(o.name,o.params,o.search,r,i)}getMetaForState(e){return this.#e.matcher.hasRoute(e)?this.#e.matcher.getMetaByName(e):void 0}getUrlParams(e){return Ur(this.#e,e)}getQueryParams(e){return Gr(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 "${Pr(e)}" threw while resolving the active-link state; treating the link as inactive.`,t),!1}}#a(e,t,n,r,i){let a=this.#r.getState();if(!a)return!1;let o=a.name;if(o!==e&&!o.startsWith(`${e}.`)&&!e.startsWith(`${o}.`))return!1;let s=L(this.#r.port,e,t,n,{resolveForward:!1});if(r||o===e){let e=ur(s,``);return!this.#r.areStatesEqual(e,a,!0)||!Nr(s.path,a.params)?!1:i||ae(e.search,a.search)}return!(!o.startsWith(`${e}.`)||!Nr(s.path,a.params)||!i&&!Fr(s.query,a.search))}#o(e){let t=[],n=e;for(;K(this.#e.config.forwardMap,n);)t.push(n),n=this.#e.config.forwardMap[n];return t}#s(e,t,n,r){let i,a;for(let e of t)i=se(this.#e.config.defaultParams[e],i),a=se(this.#e.config.defaultSearch[e],a);return{name:e,params:k(se(i,n),C),search:k(se(a,r),E)}}#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=Qi({trailingSlash:ea(e?.trailingSlash),queryParamsMode:e?.queryParamsMode}),this.#t)}#l(e,t,n){let r=j(n),i=new Set([e]),a=[e],o=t(this.#r.getDependency,r),s=0;if(typeof o!=`string`)throw TypeError(`forwardTo callback must return a string, got ${typeof o}`);for(;s<100;){if(this.#e.matcher.getSegmentsByName(o)===void 0)throw Error(`Route "${o}" does not exist`);if(i.has(o)){let e=[...i,o].join(` → `);throw Error(`Circular forwardTo: ${e}`)}if(i.add(o),K(this.#e.config.forwardFnMap,o)){let e=this.#e.config.forwardFnMap[o];a.push(o),o=e(this.#r.getDependency,r),s++;continue}let e=this.#e.config.forwardMap[o];if(e!==void 0){a.push(o),o=e,s++;continue}return{target:o,chain:a,params:r}}throw Error(`forwardTo exceeds maximum depth of 100`)}};const na=new M(w.ROUTER_NOT_STARTED),ra=new M(w.ROUTE_NOT_FOUND),ia=new M(w.SAME_STATES),aa=new M(w.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(na),Object.freeze(ra),Object.freeze(ia),Object.freeze(aa);const oa=Promise.reject(na),sa=Promise.reject(ra),ca=Promise.reject(ia),la=Promise.reject(aa);oa.catch(()=>{}),sa.catch(()=>{}),ca.catch(()=>{}),la.catch(()=>{});const ua=new Set([w.SAME_STATES,w.TRANSITION_CANCELLED,w.ROUTER_NOT_STARTED,w.ROUTE_NOT_FOUND,w.CANNOT_ACTIVATE,w.CANNOT_DEACTIVATE,w.ROUTER_ALREADY_STARTED]);function da(e){return e instanceof M&&ua.has(e.code)}const fa=new Set([oa,sa,ca,la]),q=Object.freeze;function pa(e){let{fromState:t,toDeactivate:n,toActivate:r,intersection:i}=e;q(n),q(r);let a={phase:`activating`,reason:`success`,segments:q({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),q(a)}function ma(e,t){let{toState:n,fromState:r,toDeactivate:i,toActivate:a}=t;if(n.name!==T.UNKNOWN_ROUTE&&!e.hasRoute(n.name)){let i=new M(w.ROUTE_NOT_FOUND,{routeName:n.name});throw e.sendTransitionFail(r,i,t),A(i)}let o=t,s={...n,transition:pa(t)},c=q(s);t.toState=c;let l=e.canCommitTransition(o);if(!l)throw A(new M(w.TRANSITION_CANCELLED));for(let n of i)!a.includes(n)&&t.canDeactivateFunctions.has(n)&&e.clearCanDeactivate(n,l);return e.sendTransitionDone(o),c}const ha=Object.entries;function ga(e){return e instanceof M&&e.code===w.TRANSITION_CANCELLED}function _a(e){return ga(e)?e:new M(w.TRANSITION_CANCELLED,{reason:e})}function va(e,t,n,r){let i=t;i.code!==w.TRANSITION_CANCELLED&&i.code!==w.ROUTE_NOT_FOUND&&e.sendTransitionFail(n,i,r)}function ya(e,t,n){if(e instanceof DOMException&&e.name===`AbortError`)throw A(new M(w.TRANSITION_CANCELLED));if(ga(e))throw e;ba(e,t,n)}function ba(e,t,n){if(e instanceof M){let{code:n,message:r,...i}=e.toJSON(),a=new M(n,{...i,message:r});throw a.setCode(t),a.stack=e.stack??``,A(a)}throw A(new M(t,Sa(e,n)))}const xa=new Set([`code`,`segment`,`path`,`then`]);function Sa(e,t){let n={segment:t};if(e instanceof Error){let t=e.message,r=e.stack,i=`cause`in e?e.cause:void 0;return{...n,message:t,stack:r,...i!==void 0&&{cause:i}}}if(e&&typeof e==`object`){let t={};for(let[n,r]of ha(e))n!==`__proto__`&&!xa.has(n)&&v(t,n,r);return{...n,...t}}return n}async function Ca(e,t,n){let r;try{r=await e}catch(e){ya(e,t,n);return}if(!r)throw A(new M(t,{segment:n}))}function wa(e,t,n,r,i,a,o,s,c,l){if(!c())throw A(new M(w.TRANSITION_CANCELLED));if(e===1){let n=l();return n===void 0?void 0:{phase:e,index:t+1,pending:n}}let u=n[t],d=r.get(u);if(!d)return;let f=!1;try{f=d(a,o,s)}catch(e){ya(e,i,u)}if(f instanceof Promise)return{phase:e,index:t+1,pending:f};if(!f)throw A(new M(i,{segment:u}))}function Ta(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=e===1,m=e===0;if(!p&&!(m?o:s))return;let h=m?i:a,g=p?1:h.length,_=m?n:r,v=m?w.CANNOT_DEACTIVATE:w.CANNOT_ACTIVATE;for(let n=t;n<g;n++){let t=wa(e,n,h,_,v,c,l,u,d,f);if(t!==void 0)return t}}function Ea(e,t,n,r,i,a,o,s,c,l,u,d,f){for(let p=d;p<=2;p++){let m=Ta(p,p===d?f:0,e,t,n,r,i,a,o,s,c,l,u);if(m!==void 0)return m}}async function Da(e,t,n,r,i,a,o,s,c,l,u,d){let f=e;for(;f!==void 0;){if(f.phase===1)await f.pending;else{let e=f.phase===0;await Ca(f.pending,e?w.CANNOT_DEACTIVATE:w.CANNOT_ACTIVATE,(e?r:i)[f.index-1])}f=Ea(t,n,r,i,a,o,s,c,l,u,d,f.phase,f.index)}}function Oa(e,t,n,r,i,a,o,s,c,l,u){let d=Ea(e,t,n,r,i,a,o,s,c,l,u,0,0);return d===void 0?void 0:Da(d,e,t,n,r,i,a,o,s,c,l,u)}const ka=Object.freeze,Aa=Object.freeze([]),ja=new Map;function Ma(e,t){return t?ka({...e,replace:!0}):e}function Na(e,t,n,r){return!!e&&!t&&!n&&e.path===r.path}function Pa(e,t){if(e.size===0)return!1;for(let n of t)if(e.has(n))return!0;return!1}function Fa(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 Ia(e,t){t.externalSignal!==void 0&&t.cancelReason===void 0&&t.hasGuards&&e.bridgeExternalSignal(t)}function La(e,t,n,r,i,a,o,s,c,l){Wa(e,a);let u=e.hasLeaveListeners()||e.hasPreCommitListeners(),d={toState:t,fromState:n,opts:r,suspendable:i!==void 0||u,forceDeactivate:l,toDeactivate:Aa,toActivate:Aa,intersection:``,canDeactivateFunctions:ja,canActivateFunctions:ja,shouldDeactivate:!1,shouldActivate:!1,hasGuards:!1,controller:void 0,cancelReason:void 0,detachExternalBridge:void 0,externalSignal:i,reload:o,replace:s,redirected:c};if(!e.startTransition(d))throw A(new M(w.TRANSITION_CANCELLED));return d}function Ra(e,t){return e.sendLeaveApprove(t),ma(e,t)}function za(e,t){let[n,r]=e.getLifecycleFunctions(),{toDeactivate:i,toActivate:a,intersection:o}=Zi(t.toState,t.fromState,t=>e.getMetaForState(t));t.canDeactivateFunctions=n,t.canActivateFunctions=r,t.toDeactivate=i,t.toActivate=a,t.intersection=o,t.shouldDeactivate=!!t.fromState&&!t.forceDeactivate&&i.length>0,t.shouldActivate=t.toState.name!==T.UNKNOWN_ROUTE&&a.length>0,t.hasGuards=t.shouldDeactivate&&Pa(n,i)||t.shouldActivate&&Pa(r,a)}function Ba(e,t,n){let r,i;try{r=e.getState();let a=le(n),o=a?.aborted===!0?a:void 0;n=fe(n);let s=O(n,`reload`),c=O(n,`force`),l=O(n,`replace`),u=O(n,`redirected`),d=O(n,`forceDeactivate`)===!0,f=r?.name===T.UNKNOWN_ROUTE&&!l,p=f||l;if(n=Ma(n,f),Na(r,s,c,t))return e.emitTransitionError(t,r,ia),ca;let m=La(e,t,r,n,a,o,s,p,u,d);i=m;let h=m.externalSignal;if(h?.aborted===!0&&e.cancelNavigation(h.reason),za(e,m),Ia(e,m),!m.hasGuards&&!m.suspendable)return Ra(e,m);let{canDeactivateFunctions:g,canActivateFunctions:_,toDeactivate:v,toActivate:y,shouldDeactivate:b,shouldActivate:x,hasGuards:S}=m,C=t;if(!S){let t=Ua(e,m);if(t!==void 0)return t}if(S){let n=Fa(m),i=()=>!n.signal.aborted,a=n.signal,o=Oa(g,_,v,y,b,x,t,r,a,i,()=>{if(e.sendLeaveApprove(m),e.hasLeaveListeners())return e.awaitLeaveListeners(C,r,a)});if(o!==void 0)return Va(e,o,m,n);if(!i())throw A(new M(w.TRANSITION_CANCELLED))}return ma(e,m)}catch(t){let n=Ha(e,t,{nav:i,fromState:r});return Promise.reject(n)}}async function Va(e,t,n,r){let i=()=>!r.signal.aborted,a=n.externalSignal,o,s=!1,c,l=new Promise(e=>{if(r.signal.aborted){e();return}o=()=>{e()},r.signal.addEventListener(`abort`,o,{once:!0})});t.catch(()=>{});try{if(a?.aborted)throw A(new M(w.TRANSITION_CANCELLED,{reason:a.reason}));if(await Promise.race([t,l]),!i())throw A(new M(w.TRANSITION_CANCELLED));let r=ma(e,n);return s=!0,r}catch(t){let r=i()?t:_a(t);throw c=r,va(e,r,n.fromState,n),r}finally{o&&r.signal.removeEventListener(`abort`,o),s||r.abort(c)}}function Ha(e,t,n){let{nav:r}=n;if(r?.controller?.abort(t),r!==void 0){let i=e.isTransitioning()?t:_a(t);return va(e,i,n.fromState,r),i}return t}function Ua(e,t){let{toState:n,fromState:r}=t;if(e.hasLeaveListeners()&&Fa(t),e.sendLeaveApprove(t),e.hasLeaveListeners()){let i=Fa(t),a;try{a=e.awaitLeaveListeners(n,r,i.signal)}catch(e){throw i.abort(e),e}return a===void 0?void 0:Va(e,a,t,i)}}function Wa(e,t){if(e.isTransitioning()&&(e.logger.warn(`router.navigate`,`Concurrent navigation detected on shared router instance. For SSR, use cloneRouter() to create isolated instance per request.`),e.cancelNavigation()),t!==void 0)throw A(new M(w.TRANSITION_CANCELLED,{reason:t.reason}))}const J=Object.freeze,Ga=Object.freeze([T.UNKNOWN_ROUTE]),Ka=Object.freeze({replace:!0});function qa(e,t,n){Wa(e,void 0);let r=e.getState(),i=r?G(r.name).toReversed():[];J(i);let a={deactivated:i,activated:Ga,intersection:``};J(a);let o={phase:`activating`,...r&&{from:r.name},reason:`success`,replace:!0,segments:a};J(o);let s={name:T.UNKNOWN_ROUTE,params:C,search:E,path:t,transition:o,context:{}};if(J(s),n&&r!==void 0&&!e.canDeactivateCurrent(i,s,r)){let n=new M(w.CANNOT_DEACTIVATE,{path:t,message:`[router.navigateToNotFound] a canDeactivate guard on "${r.name}" refused to leave for ${t}`});throw e.emitTransitionError(void 0,r,n),A(n)}return e.systemCommit(s,r,Ka)}function Ja(e,t){return qa(e,t,!0)}function Ya(e,t){return qa(e,t,!1)}var Xa=class{#e;#t;#n=0;setDependencies(e){this.#e=e,this.#t=t=>{da(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 Ja(this.#e,e)}revalidateToNotFound(e){return Ya(this.#e,e)}isPreparing(){return this.#n>0}#r(e){return e instanceof Promise&&!fa.has(e)&&e.catch(this.#t),e}#i(e,t,n,r){let i=this.#e;if(!i.canNavigate())return i.isStarting()?la:oa;let a;this.#n++;try{a=i.buildNavigateState(e,t,n)}catch(e){return Promise.reject(e)}finally{this.#n--}return a?Ba(this.#e,a,r):(i.emitTransitionError(void 0,i.getState(),ra),sa)}#a(e,t){let n=this.#e;if(!n.canNavigate())return n.isStarting()?la:oa;let r=e.name;if(r!==T.UNKNOWN_ROUTE&&!n.hasRoute(r)){let e=new M(w.ROUTE_NOT_FOUND,{routeName:r});return n.emitTransitionError(void 0,n.getState(),e),Promise.reject(e)}let i=g(e.params,n.getQueryParams(r));if(i!==void 0){let e=new M(w.WRONG_CHANNEL,{routeName:r,message:`[router.navigateToState] ${_(r,i,"`state.params`")}`});return n.emitTransitionError(void 0,n.getState(),e),Promise.reject(e)}let a;try{a=this.#o(e,r)}catch(e){return Promise.reject(e)}return Ba(this.#e,a,t)}#o(e,t){let n={name:t,params:ue(e.params,C),search:ue(e.search,E),path:e.path,context:{...e.context},transition:re};return he(n)}#s(e){let t=this.#e;if(!t.getOptions().defaultRoute)return Promise.reject(new M(w.ROUTE_NOT_FOUND,{routeName:`defaultRoute not configured`}));let n,r,i;this.#n++;try{({route:n,params:r,search:i}=t.resolveDefault())}catch(e){return Promise.reject(e)}finally{this.#n--}return n?typeof n==`string`?this.#i(n,r,i,e):Promise.reject(new M(w.ROUTE_NOT_FOUND,{routeName:`defaultRoute did not resolve to a route name`})):Promise.reject(new M(w.ROUTE_NOT_FOUND,{routeName:`defaultRoute resolved to empty`}))}};const Za={},Qa=Object.freeze({replace:!0});function $a(e){return[e,e?.reason].some(e=>e instanceof M&&e.code===w.ROUTE_NOT_FOUND)}var eo=class{#e;setDependencies(e){this.#e=e}async start(e){let t=this.#e;if(t.isIdle())throw A(new M(w.TRANSITION_CANCELLED));let n=t.getOptions();if(typeof e!=`string`)throw TypeError(`[router.start] path must be a string, got ${typeof e}`);let r=t.matchPath(e);if(!r&&!n.allowNotFound){let t=new M(w.ROUTE_NOT_FOUND,{path:e});throw A(t)}if(t.completeStart(),r)try{return await t.navigateToState(r,Qa)}catch(r){if(!n.allowNotFound||!$a(r))throw r;return t.navigateToNotFound(e)}return t.navigateToNotFound(e)}};const to={},no=Object.create,ro=Object.entries,io=Object.hasOwn,ao=Object.values,oo=new WeakMap;function so(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 co(e){let t=oo.get(e);if(t!==void 0)return t;let n=e,r=no(null);for(let[e,t]of ro(n)){let n=no(null);for(let[r,i]of ro(t))i!==void 0&&(n[r]=so(e,r,i));r[e]=n}for(let e of ao(r))for(let t of ao(e))if(t!==void 0&&r[t.target]===void 0)throw Error(`[FSM.constructor] state "${t.target}" is not declared in config.transitions`);return oo.set(e,r),r}var lo=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=co(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(!io(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 uo(){return{inflight:void 0,current:void 0,previous:void 0}}const fo=(e,t)=>t?.nav===void 0||t.nav===e.inflight,po=(e,t)=>t!==void 0&&t===e.inflight&&t.externalSignal?.aborted!==!0,mo=(e,t)=>{e.previous=e.current,e.current=he(t)},ho=(e,t)=>{mo(e,t.toState),e.inflight=void 0},go=(e,t)=>{mo(e,t.toState)},_o=e=>{e.previous=e.current,e.current=void 0},Z=e=>{e.current=void 0,e.previous=void 0,e.inflight=void 0},vo=(e,t)=>{e.inflight=t},yo={[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:_o},[X.DISPOSE]:{target:Y.DISPOSED,update:Z}},[Y.READY]:{[X.NAVIGATE]:{target:Y.TRANSITION_STARTED,update:vo},[X.SYSTEM_COMMIT]:{target:Y.READY,update:go},[X.STOP]:{target:Y.IDLE,update:_o},[X.DISPOSE]:{target:Y.DISPOSED,update:Z}},[Y.TRANSITION_STARTED]:{[X.NAVIGATE]:{target:Y.TRANSITION_STARTED,update:vo},[X.LEAVE_APPROVE]:Y.LEAVE_APPROVED,[X.CANCEL]:Y.READY,[X.FAIL]:{target:Y.READY,when:fo},[X.DISPOSE]:{target:Y.DISPOSED,update:Z}},[Y.LEAVE_APPROVED]:{[X.NAVIGATE]:{target:Y.TRANSITION_STARTED,update:vo},[X.COMPLETE]:{target:Y.READY,when:po,update:ho},[X.CANCEL]:Y.READY,[X.FAIL]:{target:Y.READY,when:fo},[X.DISPOSE]:{target:Y.DISPOSED,update:Z}},[Y.DISPOSED]:{}};function bo(){return new lo({initial:Y.IDLE,context:uo(),transitions:yo})}const xo=Object.freeze,So=`TREE_CHANGED`;function Co(e){return e instanceof Error?e:Error(String(e))}function wo(e,t,n){return new Promise((r,i)=>{let a=()=>{let e=n.reason;i(e instanceof M&&e.code===w.TRANSITION_CANCELLED?e:new M(w.TRANSITION_CANCELLED,{reason:e}))};if(n.aborted){a();return}n.addEventListener(`abort`,a,{once:!0}),Promise.allSettled(e).then(e=>{if(n.removeEventListener(`abort`,a),n.aborted)return;if(t!==void 0){i(Co(t));return}let o=e.find(e=>e.status===`rejected`);if(o!==void 0){i(Co(o.reason));return}r()})})}function To(e,t,n){return e.addEventListener(`abort`,t,{once:!0}),()=>{n(),e.removeEventListener(`abort`,t)}}var Eo=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(x.ROUTER_START)}finally{this.#i--}}emitRouterStop(){this.#t.emit(x.ROUTER_STOP)}emitTransitionStart(e,t,n){this.#i++;try{this.#t.emit(x.TRANSITION_START,e,t)}finally{this.#i--}}emitTransitionSuccess(e,t,n){this.#i++;try{this.#t.emit(x.TRANSITION_SUCCESS,e,t,n)}finally{this.#i--}}emitTransitionError(e,t,n){this.#i++;try{this.#t.emit(x.TRANSITION_ERROR,e,t,n)}finally{this.#i--}}emitTransitionCancel(e,t){this.#i++;try{this.#t.emit(x.TRANSITION_CANCEL,e,t)}finally{this.#i--}}emitTransitionLeaveApprove(e,t){this.#i++;try{this.#t.emit(x.TRANSITION_LEAVE_APPROVE,e,t)}finally{this.#i--}}isProcessing(){return this.#i>0}emitTreeChanged(e){this.#t.emit(So,e)}isEmittingTreeChanged(){return this.#t.isDispatching(So)}subscribeTreeChanged(e){if(this.isDisposed())throw A(new M(w.ROUTER_DISPOSED));return this.#t.on(So,t=>{e(t)})}treeChangedListenerCount(){return this.#t.listenerCount(So)}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(e){let{toState:t}=e,n=t.transition,r={name:t.name,params:ue(t.params,C),search:ue(t.search,E),path:t.path,context:{...t.context},...n!=null&&{transition:oe(n)}};if(!this.#e.canSend(X.SYSTEM_COMMIT))throw this.#o();return this.#e.send(X.SYSTEM_COMMIT,{...e,toState:r}),r}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(e){if(this.isDisposed())throw A(new M(w.ROUTER_DISPOSED));return this.#a(x.TRANSITION_SUCCESS,`subscribe`),this.#t.on(x.TRANSITION_SUCCESS,(t,n)=>e({route:t,previousRoute:n}))}subscribeLeave(e){if(this.isDisposed())throw A(new M(w.ROUTER_DISPOSED));this.#r.push(e);let t=!1;return()=>{if(t)return;t=!0;let n=this.#r.indexOf(e);n!==-1&&this.#r.splice(n,1)}}hasLeaveListeners(){return this.#r.length>0}hasPreCommitListeners(){return this.#t.listenerCount(x.TRANSITION_START)>0||this.#t.listenerCount(x.TRANSITION_LEAVE_APPROVE)>0}awaitLeaveListeners(e,t,n){if(t===void 0)return;let r=xo({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 Co(a);return}return wo(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=To(t,()=>{this.sendCancelIfPossible(this.#e.getContext().current,t.reason)},()=>{e.detachExternalBridge=void 0})),to}#a(e,t){let n=this.#n?.();n&&n.eventBus.validateCountThresholds(this.#t.listenerCount(e)+1,e,t)}#o(){if(this.isDisposed())return new M(w.ROUTER_DISPOSED);let e;return e=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 M(w.ROUTER_NOT_STARTED,{message:e})}#s(){let e=this.#e;e.on(Y.STARTING,X.STARTED,()=>{this.emitRouterStart()}),e.on(Y.READY,X.STOP,()=>{this.emitRouterStop()});let t=e=>{let t=e.externalSignal!==void 0&&(this.hasLeaveListeners()||this.hasPreCommitListeners())?this.bridgeExternalSignal(e):to;this.emitTransitionStart(e.toState,e.fromState,t)};e.on(Y.READY,X.NAVIGATE,t),e.on(Y.TRANSITION_STARTED,X.NAVIGATE,t),e.on(Y.LEAVE_APPROVED,X.NAVIGATE,t),e.on(Y.TRANSITION_STARTED,X.LEAVE_APPROVE,e=>{this.emitTransitionLeaveApprove(e.toState,e.fromState)}),e.on(Y.LEAVE_APPROVED,X.COMPLETE,e=>{e.detachExternalBridge?.(),this.emitTransitionSuccess(e.toState,e.fromState,e.opts)});let n=e=>{let{fromState:t,reason:n}=e,r=this.#e.getContext().inflight,i=n??new M(w.TRANSITION_CANCELLED);r.cancelReason=i,r.controller?.abort(i),r.detachExternalBridge?.(),this.emitTransitionCancel(r.toState,t)};e.on(Y.TRANSITION_STARTED,X.CANCEL,n),e.on(Y.LEAVE_APPROVED,X.CANCEL,n),e.on(Y.READY,X.SYSTEM_COMMIT,e=>{this.emitTransitionSuccess(e.toState,e.fromState,e.opts)});let r=e=>{let t=this.#e.getContext().inflight;t?.detachExternalBridge?.(),this.emitTransitionError(t?.toState,e.fromState,e.error)};e.on(Y.LEAVE_APPROVED,X.FAIL,r),e.on(Y.TRANSITION_STARTED,X.FAIL,r),e.on(Y.STARTING,X.FAIL,e=>{this.emitTransitionError(void 0,e.fromState,e.error)})}};const Do=new M(w.ROUTER_ALREADY_STARTED);Object.freeze(Do);const Oo={maxListeners:0,warnListeners:0};var ko=class{#e=new Map;#t=new Set;#n=null;#r=Oo;#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 Ao=Object.freeze({log:0,warn:1,error:2}),jo=Object.freeze({all:0,"warn-error":1,"error-only":2,none:3}),Mo=Object.hasOwn;var No=class{#e={level:`all`,callback:void 0,callbackIgnoresLevel:!1};#t=0;#n=!1;constructor(e){e&&this.configure(e)}configure(e){let t=Yn(e),n=t.level;n!==void 0&&(this.#e.level=n,this.#t=jo[n]),Mo(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=Ao[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 Po(e){let t=Fo(e),n=Vo(e),r=()=>s(e.router).validator;Io(e),Lo(e,r),Ro(e,t,r),zo(e,n,r),Bo(e,t,r),Ho(e,n),Uo(e),Wo(e,n)}function Fo(e){let{router:t,dependenciesStore:n}=e,r=e=>n.dependencies[e];return e=>e(t,r)}function Io(e){e.dependenciesStore.limits=e.limits,e.eventBus.setLimits({maxListeners:e.limits.maxListeners,warnListeners:e.limits.warnListeners})}function Lo(e,t){e.eventBus.setValidatorAccessor(t)}function Ro(e,t,n){let r={logger:s(e.router).logger,compileFactory:t,getValidator:n};e.routeLifecycle.setDependencies(r)}function zo(e,t,n){let r={logger:s(e.router).logger,getValidator:n,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(r),e.routes.setLifecycleNamespace(e.routeLifecycle)}function Bo(e,t,n){let r={logger:s(e.router).logger,addEventListener:(t,n)=>e.eventBus.addEventListener(t,n),canNavigate:()=>e.eventBus.canBeginTransition(),compileFactory:t,getValidator:n};e.plugins.setDependencies(r)}function Vo(e){let t=s(e.router),n=e.routes.getStore(),r=(e,n)=>{t.validator?.state.reportUndeclaredParamKey(e,n)},i=(e,n)=>{t.validator?.state.reportDroppedQueryKey(e,n)};return{resolveForward:(e,n,r)=>t.forwardState(e,n,r),defaultParams:e=>n.config.defaultParams[e],defaultSearch:e=>n.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?i:void 0},get reportUndeclaredParamKey(){return t.validator?r:void 0}}}function Ho(t,n){let r={logger:s(t.router).logger,getOptions:()=>t.options.get(),hasRoute:e=>t.routes.hasRoute(e),getQueryParams:e=>t.routes.getQueryParams(e),getMetaForState:e=>t.routes.getMetaForState(e),getState:()=>t.state.get(),buildNavigateState:(r,i,a)=>{s(t.router).validator?.routes.validateStateBuilderArgs(r,i,`navigate`);let o=L(n,r,i,a,{diagnoseUndeclared:!0});if(t.routes.getMetaForState(o.name)!==void 0)return e(`navigate`,o.name,o.path,n.queryNames(o.name)),z(o,R(o,n))},resolveDefault:()=>{let e=t.options.get(),n=s(t.router),r=ar(e.defaultRoute,e=>t.dependenciesStore.dependencies[e]),i=ar(e.defaultParams,e=>t.dependenciesStore.dependencies[e]),a=ar(e.defaultSearch,e=>t.dependenciesStore.dependencies[e]);return typeof e.defaultRoute==`function`&&n.validator?.options.validateResolvedDefaultRoute(r,n.routeGetStore()),{route:r,params:i,search:a}},startTransition:e=>t.eventBus.sendNavigate(e),systemCommit:(e,n,r)=>t.eventBus.systemCommit({toState:e,fromState:n,opts:r}),cancelNavigation:e=>{t.eventBus.sendCancelIfPossible(t.state.get(),e)},bridgeExternalSignal:e=>{t.eventBus.bridgeExternalSignal(e)},canCommitTransition:e=>t.eventBus.canCommitTransition(e)?Za:void 0,sendTransitionDone:e=>{t.eventBus.sendComplete(e)},sendTransitionFail:(e,n,r)=>{t.eventBus.sendFail(e,n,r)},emitTransitionError:(e,n,r)=>{t.eventBus.emitTransitionError(e,n,r)},sendLeaveApprove:e=>{t.eventBus.sendLeaveApprove(e)},canNavigate:()=>t.eventBus.canBeginTransition(),isStarting:()=>t.eventBus.isStarting(),getLifecycleFunctions:()=>t.routeLifecycle.getFunctions(),canDeactivateCurrent:(e,n,r)=>t.routeLifecycle.canNavigateTo(e,[],n,r),isTransitioning:()=>t.eventBus.isTransitioning(),clearCanDeactivate:(e,n)=>{t.routeLifecycle.clearCanDeactivate(e,`external`)},hasLeaveListeners:()=>t.eventBus.hasLeaveListeners(),hasPreCommitListeners:()=>t.eventBus.hasPreCommitListeners(),awaitLeaveListeners:(e,n,r)=>t.eventBus.awaitLeaveListeners(e,n,r)};t.navigation.setDependencies(r)}function Uo(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 Wo(e,t){e.state.setDependencies({port:()=>t,getUrlParams:t=>e.routes.getUrlParams(t)})}const Go=Object.create,Ko=Object.keys,qo=Object.freeze;var Jo=class e{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;constructor(n=[],r={},i={}){let{logger:o,...s}=r,c=new No(o?Yn(o):void 0);this.#f=e=>{da(e)||c.error(`router.start`,`Unexpected start error`,e)},ir.validateOptionsIsObject(r),zn(i);let l=Vn(n),d=$o(s);this.#r=Xo(s),this.#e=new ir(d),this.#t=Zn(d.limits),this.#n=d.limits==null?void 0:qo(Ko(d.limits)),this.#i=er(i),this.#a=new dr,this.#o=new ta(l,rs(this.#e.get()),c),this.#s=new Tr,this.#c=new vr,this.#l=new Xa,this.#u=new eo;let f=bo();this.#a.setContext(f.getContext());let h=new ko({onListenerError:(e,t)=>{c.error(`Router`,`Error in listener for ${e}:`,t)},onListenerWarn:(e,t)=>{c.warn(`router.addEventListener`,`Event "${e}" has ${t} listeners — possible memory leak`)}});this.#d=new Eo({routerFSM:f,emitter:h});let g=new Map,_=e=>{let t=e.params,n=e.search;return{name:e.name,params:t==null?t:N(t),search:n==null?n:N(n)}},v=p(m.forwardState,(e,t,n)=>this.#o.forwardState(e,t,n),g,_,Zo),b=((e,t,n)=>{let r=v(e,t,n),i=r.name,o=r.params;a(`forwardState`,i,o,this.#o.getQueryParams(i),()=>i===e?"the `params` bag leaving the forwardState chain":`the \`params\` bag leaving the forwardState chain (forwarded here from "${e}")`);let s=r.search,c=s==null;return{name:i,params:N(o??C),search:c?s:N(s)}}),x=p(m.forwardState,(e,t,n)=>({name:e,params:t,search:n}),g,_,Zo);this.#p=(e,t,n)=>{let r=x(e,t,n),i=r.params,a=r.search;return this.#o.buildPathFromIntent(r.name,i??C,a)},t(this,{logger:c,makeState:(e,t,n,r)=>this.#a.makeState(e,t,n,r),getMetaForState:e=>this.#o.getMetaForState(e),getQueryParams:e=>this.#o.getQueryParams(e),forwardState:b,buildStateResolved:(e,t)=>this.#o.buildStateResolved(e,t),port:()=>this.#o.getPort(),matchPath:(e,t)=>this.#o.matchPath(e,t),getOptions:()=>this.#e.get(),getAdoptedOrigins:()=>this.#r,addEventListener:(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=>this.#l.navigateToNotFound(e),revalidateToNotFound:e=>this.#l.revalidateToNotFound(e),start:u(m.start,e=>this.#u.start(e),g),navigateToState:(t,n)=>(this.#g(),e.#m(this.#l.navigateToState(t,n??y))),interceptors:g,setRootPath: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:de({...this.#i.dependencies}),pluginFactories:this.#c.getAll(),loggerConfig:c.getConfig(),limits:this.#t,limitKeys:this.#n}),routeGetStore:()=>this.#o.getStore(),getStateName:()=>this.#a.get()?.name,isTransitioning:()=>this.#d.isTransitioning(),systemCommit:(e,t,n)=>this.#d.systemCommit({toState:e,fromState:t,opts:n}),routerExtensions:[],contextClaimRecords:new Map,hydrationState:null}),Po({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,n,r,i){let a=s(this);return a.validator?.routes.validateIsActiveRouteArgs(e,t,r,i),a.validator?.navigation.validateSearch(n,`isActiveRoute`),a.validator?.routes.validateRouteName(e,`isActiveRoute`),e===``?(a.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,n,r,i)}buildPath(e,t,n){let r=s(this);r.validator?.routes.validateBuildPathArgs(e),r.validator?.navigation.validateParamsShape(t,`buildPath`),r.validator?.navigation.validateSearch(n,`buildPath`);let i=j(t);return r.validator?.navigation.validateParams(i,`buildPath`),this.#p(e,i??C,n)}getState(){return this.#a.get()}getPreviousState(){return this.#a.getPrevious()}areStatesEqual(e,t,n=!0){return s(this).validator?.state.validateAreStatesEqualArgs(e,t,n),this.#a.areStatesEqual(e,t,n)}shouldUpdateNode(e){return s(this).validator?.routes.validateShouldUpdateNodeArgs(e),ta.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=s(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=Go(null),this.#v()}canNavigateTo(e,t,n){let r=s(this);r.validator?.routes.validateRouteName(e,`canNavigateTo`),r.validator?.navigation.validateParamsShape(t,`canNavigateTo`),r.validator?.navigation.validateSearch(n,`canNavigateTo`);let i;try{i=j(t)}catch(t){return r.logger.warn(`router.canNavigateTo`,`Reading the params bag for route "${e}" threw; treating the route as unreachable.`,t),!1}if(r.validator?.navigation.validateParams(i,`canNavigateTo`),!this.#o.hasRoute(e)||g(t,this.#o.getQueryParams(e))!==void 0)return!1;let a=this.#o.getPort(),o;try{o=L(a,e,i??C,n)}catch(t){return r.logger.warn(`router.canNavigateTo`,`Resolving route "${e}" threw while answering the predicate; treating the route as unreachable.`,t),!1}let c;try{c=z(o,R(o,a))}catch{return!1}let l=this.#a.get(),{toDeactivate:u,toActivate:d}=Zi(c,l,e=>this.#o.getMetaForState(e));return this.#s.canNavigateTo(u,d,c,l)}usePlugin(...e){if(this.#d.isDisposed())throw A(new M(w.ROUTER_DISPOSED));let t=e.filter(Boolean);if(t.length===0)return()=>{};let n=s(this);n.validator?.plugins.validatePluginLimit(this.#c.count(),this.#t);for(let e of t)n.validator?.plugins.validateNoDuplicatePlugins(e,this.#c.getAll());return this.#c.use(...t)}subscribe(e){return Eo.validateSubscribeListener(e),this.#d.subscribe(e)}subscribeLeave(e){return Eo.validateSubscribeLeaveListener(e),this.#d.subscribeLeave(e)}isLeaveApproved(){return this.#d.isLeaveApproved()}navigate(t,n,r,i){this.#g();let a=s(this),o,c,l,u;typeof t==`object`&&t?(o=t.name,c=t.params,l=t.search,u=n??y):(o=t,c=n,l=r,u=i??y),d(a,`navigate`,o,c),a.validator?.navigation.validateNavigateArgs(o),a.validator?.navigation.validateParamsShape(c,`navigate`),a.validator?.navigation.validateSearch(l,`navigate`),a.validator?.navigation.validateNavigationOptions(u,`navigate`);let f;try{f=j(c)}catch(e){return Promise.reject(e)}return a.validator?.navigation.validateParams(f,`navigate`),e.#m(this.#l.navigate(o,f??C,l,u))}navigateToDefault(t){this.#g();let n=s(this);n.validator?.navigation.validateNavigateToDefaultArgs(t);let r=t??y;return n.validator?.navigation.validateNavigationOptions(r,`navigateToDefault`),e.#m(this.#l.navigateToDefault(r))}navigateToNotFound(e){if(this.#g(),!this.#d.isActive())throw A(new M(w.ROUTER_NOT_STARTED));if(e!==void 0&&typeof e!=`string`)throw TypeError(`[router.navigateToNotFound] path must be a string, got ${typeof e}`);if(e!==void 0)return this.#l.navigateToNotFound(e);let t=this.#a.get();if(t===void 0)throw A(new M(w.ROUTER_NOT_STARTED,{message:`[router.navigateToNotFound] cannot derive the path before the start navigation commits — pass an explicit path`}));return this.#l.navigateToNotFound(t.path)}static#m(e){return e instanceof Promise?e:Promise.resolve(e)}#h(e){if(!this.#d.canStart())return Promise.reject(Do);s(this).validator?.navigation.validateStartArgs(e),this.#d.sendStart();let t;try{let n=s(this).start(e);t=typeof n?.then==`function`?n: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 A(new M(w.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 A(new M(w.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 A(new M(w.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 A(new M(w.ROUTER_DISPOSED))}function Yo(e){return Qo(e)&&!Object.isFrozen(e)&&e!==tr.defaultParams&&e!==tr.defaultSearch}function Xo(e){let{defaultParams:t,defaultSearch:n}=e;return qo({...Yo(t)&&{defaultParams:new WeakRef(t)},...Yo(n)&&{defaultSearch:new WeakRef(n)}})}function Zo(e,t,n){return[e,j(t),j(n)]}function Qo(e){return typeof e==`object`&&!!e}function $o(e){let t={...e};return e.limits!=null&&(t.limits=D(`limits`,e.limits)),Qo(e.defaultParams)&&(t.defaultParams=D(`defaultParams`,e.defaultParams)),Qo(e.defaultSearch)&&(t.defaultSearch=D(`defaultSearch`,e.defaultSearch)),t}const es=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 ts(e){if(e==null)return`default`;try{return String(e)}catch(e){throw TypeError(`[router.constructor] Invalid "urlParamsEncoding": coercing it threw.`,{cause:e})}}function ns(e){if(!e)return es;let t=$(`arrayFormat`,e),n=$(`booleanFormat`,e),r=$(`nullFormat`,e),i=$(`numberFormat`,e);return qo({...t!==void 0&&{arrayFormat:t},...n!==void 0&&{booleanFormat:n},...r!==void 0&&{nullFormat:r},...i!==void 0&&{numberFormat:i}})}function rs(e){return qo({strictTrailingSlash:e.trailingSlash===`strict`,caseSensitive:e.caseSensitive,strictQueryParams:e.queryParamsMode===`strict`,urlParamsEncoding:ts(e.urlParamsEncoding),queryParams:ns(e.queryParams)})}export{Rn as A,z as C,Fn as D,$n as E,Jt as F,Vn as M,Bn as N,Ln as O,qt as P,Rr as S,L as T,ri as _,yi as a,Mr as b,vi as c,gi as d,xi as f,wi as g,ni as h,Ti as i,Hn as j,In as k,hi as l,Di as m,Zi as n,_i as o,Si as p,U as r,pi as s,Jo as t,mi as u,qr as v,R as w,zr as x,Kr as y};
2
+ //# sourceMappingURL=Router-6i5tIy-l.mjs.map