@real-router/core 0.148.0 → 0.149.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/README.md +25 -10
  2. package/dist/cjs/Router-BA4QK0hW.js +2 -0
  3. package/dist/cjs/Router-BA4QK0hW.js.map +1 -0
  4. package/dist/cjs/Router.d.ts.map +1 -1
  5. package/dist/cjs/RouterError-CentZBJj.js.map +1 -1
  6. package/dist/cjs/api/cloneRouter.d.ts.map +1 -1
  7. package/dist/cjs/api/types.d.ts.map +1 -1
  8. package/dist/cjs/api.js +1 -1
  9. package/dist/cjs/api.js.map +1 -1
  10. package/dist/cjs/helpers-MqHoQdC_.js.map +1 -1
  11. package/dist/cjs/index.js +1 -1
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/internals-2GhdY5S9.js.map +1 -1
  14. package/dist/cjs/internals.d.ts.map +1 -1
  15. package/dist/cjs/types/router.d.ts +7 -0
  16. package/dist/cjs/types/router.d.ts.map +1 -1
  17. package/dist/esm/Router-B1fN9j6j.mjs +2 -0
  18. package/dist/esm/Router-B1fN9j6j.mjs.map +1 -0
  19. package/dist/esm/Router.d.mts.map +1 -1
  20. package/dist/esm/RouterError-Dy1_FfLa.mjs.map +1 -1
  21. package/dist/esm/api/cloneRouter.d.mts.map +1 -1
  22. package/dist/esm/api/types.d.mts.map +1 -1
  23. package/dist/esm/api.mjs +1 -1
  24. package/dist/esm/api.mjs.map +1 -1
  25. package/dist/esm/helpers-Bg_svUPj.mjs.map +1 -1
  26. package/dist/esm/index.mjs +1 -1
  27. package/dist/esm/index.mjs.map +1 -1
  28. package/dist/esm/internals-CL2IjTt7.mjs.map +1 -1
  29. package/dist/esm/internals.d.mts.map +1 -1
  30. package/dist/esm/types/router.d.mts +7 -0
  31. package/dist/esm/types/router.d.mts.map +1 -1
  32. package/package.json +3 -2
  33. package/dist/cjs/Router-D_KKo_8d.js +0 -2
  34. package/dist/cjs/Router-D_KKo_8d.js.map +0 -1
  35. package/dist/esm/Router-BZEAYHJu.mjs +0 -2
  36. package/dist/esm/Router-BZEAYHJu.mjs.map +0 -1
@@ -1,2 +0,0 @@
1
- import{_ as e,a as t,b as n,c as r,d as i,f as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,s as p,t as m,u as h,v as g,y as _}from"./RouterError-Dy1_FfLa.mjs";import{C as v,S as y,_ as b,a as x,b as ee,c as S,d as C,g as te,h as ne,i as re,l as ie,m as ae,n as w,o as T,p as oe,r as E,s as se,t as ce,u as le,v as ue,w as de,x as fe,y as pe}from"./internals-CL2IjTt7.mjs";import{_ as D,a as me,c as he,d as ge,f as O,g as _e,h as ve,i as ye,l as be,m as xe,n as Se,o as k,p as A,r as Ce,s as we,t as j,u as Te}from"./helpers-Bg_svUPj.mjs";const Ee=Object.entries,De=Object.hasOwn;function Oe(e,t,n){if(e===void 0||n.length===0)return e;let r,i=!1;for(let[a,o]of Ee(e)){if(De(t,a)&&t[a]!==void 0&&n.includes(a)){i=!0;continue}r??={},s(r,a,o)}return r===void 0?i?void 0:e:r}function ke(e,t,n){for(let[r,i]of Ee(e))fe(n,r,i,t(r),"this route's `defaultParams`","Move it to `defaultSearch`")}const Ae=Object.entries,je=Object.freeze;function Me(e,t,n){let r,i=!1;for(let[a,o]of Ae(e))t.includes(a)?(r??={},s(r,a,o)):(i=!0,n?.(a));return i?je(r??c):e}function Ne(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=Ne(t,o);o.children.push(e)}return o}function Pe(e,t,n){let r=Ne({name:e,path:t},null);for(let e of n){let t=Ne(e,r);r.children.push(t)}return r}const Fe=/[^\w!$'()*+,.:;|~-]/gu,Ie=/[^\w!$'()*+,.:;|~-]/u,Le=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,Re=e=>t=>{try{return e(t)}catch{return e(t.replaceAll(Le,`�`))}},ze=Re(e=>e.replaceAll(Fe,e=>encodeURIComponent(e))),Be={default:e=>Ie.test(e)?ze(e):e,uri:Re(encodeURI),uriComponent:Re(encodeURIComponent),none:e=>e},Ve={default:decodeURIComponent,uri:decodeURI,uriComponent:decodeURIComponent,none:e=>e},He=(e,t)=>{let n=Be[t],r=String(e).split(`/`),i=n(r[0]);for(let e=1;e<r.length;e++)i+=`/`+n(r[e]);return i},Ue=Object.freeze(Object.create(null));function We(){return{staticChildren:Ue,hasChildren:!1,paramChild:void 0,splatChild:void 0,route:void 0,slashChildRoute:void 0}}function M(e){return e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e}function Ge(e,t){return e===``?t:t===``?e:e.endsWith(`/`)&&t.startsWith(`/`)?e+t.slice(1):e+t}function Ke(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function qe(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(!Ke(n)||!Ke(r))return!1;t+=3}else t++;return!0}const Je=Object.freeze([]),Ye=Object.freeze(new Set),Xe=Object.freeze([]),Ze=Object.freeze({}),Qe=Object.freeze({}),$e=Object.freeze({});function et(e,t){let n=e.kind===`splat`;return{paramName:e.name,encoder:n?e=>He(e,t):Be[t]}}function tt(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:Xe};let a=[],o=[],s=``,c=ee(e),l=c.length-1;for(let[e,t]of c.entries()){let r=pe(t);if(`error`in r||r.kind!==`splat`||e===l){if(e>0&&(s+=`/`),`error`in r||r.kind===`static`){s+=t;continue}a.push(s),s=``,o.push(et(r,n))}}return a.push(s),{buildStaticParts:a,buildParamSlots:o}}const N=o(`router`);function nt(e,t,n){throw N.plain`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 rt(){throw N.plain`Empty parameter name: a ':'/'*' marker must be followed by a name (e.g. ':id', '*rest'), and a segment cannot end in a bare '?'.`}function it(e){throw N.plain`Fused parameter marker in segment "${e}": a ':'/'*' marker must begin a segment — write 'a/:b', not 'a:b'.`}function at(e){throw N.plain`Trailing parameter marker in segment "${e}": a param name cannot end in a bare ':' or '*'. Drop the stray marker.`}function ot(e){throw N.plain`Optional params are not supported: "${e}" — declare two sibling routes instead, one with the segment and one without.`}function st(e){throw N.plain`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 ct(e){throw N.plain`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 lt(e,t){switch(e){case`name-less`:return rt();case`trailing-marker`:return at(t);case`fused-marker`:return it(t);case`optional-removed`:return ot(t);case`constraint-removed`:return st(t)}}function ut(e,t){let n=new Set,r=``;for(let e of t){if(n.has(e)){r=e;break}n.add(e)}throw N.plain`Duplicate parameter name '${r}' in route "${e}": a name must be unique within a route — the second position overwrites the first. Rename one.`}function dt(e,t){throw N.plain`Invalid query-param declaration "${t}" in route "${e}": a query-param name cannot contain '<' or '>'. Rename it.`}function ft(e){throw N.plain`Double slashes are not allowed in path "${e}": the route would build a URL its own matcher refuses. Remove the empty segment.`}function pt(e,t){throw N.plain`Duplicate route path: routes "${e}" and "${t}" resolve to the same URL — the later would shadow the earlier. Give them distinct paths.`}function mt(e,t){throw N.plain`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 ht(e,t){return e.paramChild?e.paramChild.name!==t&&nt(e.paramChild.name,t,`:`):e.paramChild={node:We(),name:t},e.paramChild.node}function gt(e,t){return e.splatChild?e.splatChild.name!==t&&nt(e.splatChild.name,t,`*`):e.splatChild={node:We(),name:t},e.splatChild.node}const _t=Object.create;function vt(e,t){e.route!==void 0&&e.route!==t&&pt(e.route.name,t.name),e.route=t}function yt(e){for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>=128)return!0;return!1}function bt(e,t,n){let r=M(n);if(r===`/`){vt(e.root,t);return}xt(e,e.root,r,1,t)}function xt(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=Tt(e,t,s),r=o+1}vt(t,i)}function St(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(`*`)&&mt(t.name,n);let a=Ct(e,n);a.slashChildRoute=t}function Ct(e,t){return wt(e,e.root,t)}function wt(e,t,n){let r=M(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=Tt(e,i,s),a=n+1}return i}function Tt(e,t,n){let r=pe(n);if(`error`in r&&rt(),r.kind===`splat`){let e=gt(t,r.name);return t.hasChildren=!0,e}if(r.kind===`param`){let e=ht(t,r.name);return t.hasChildren=!0,e}yt(n)&&ct(n);let i=e.options.caseSensitive?n:n.toLowerCase();return i in t.staticChildren||(t.staticChildren===Ue&&(t.staticChildren=_t(null)),t.staticChildren[i]=We(),t.hasChildren=!0),t.staticChildren[i]}const Et=Object.freeze,Dt=Object.hasOwn;function Ot(e){let t=ee(e);for(let[n,r]of t.entries())r===``&&n>0&&n<t.length-1&&ft(e)}function kt(e){for(let t of ee(e)){let e=pe(t);`error`in e&&lt(e.error,t)}}function At(e,t,n,r,i){let a=t.fullName===``;a||r.push(t);let o=t.absolute,s=t.paramMeta===te?t.path:t.paramMeta.pathPattern,c=o&&s.startsWith(`~`)?s.slice(1):s,l=o?c:s;Ot(t.path),kt(l);let u=l,d=o?u:Ge(n,u),f=a?i:jt(e,t,d,o?``:n,r,i);for(let n of t.children.values())At(e,n,d,r,f);a||r.pop()}function jt(e,t,n,r,i,a){let o=It(n,r),s=Et([...i]),c=Mt(s),l=M(n),u=Et(Lt(e.rootQueryParams,i)),{buildStaticParts:d,buildParamSlots:f}=tt(o?M(r):l,o?i.slice(0,-1):i,e.options.urlParamsEncoding,e.rootUrlParams),p=f.map(e=>e.paramName),m=p.length===0?Ye:new Set(p);m.size!==p.length&&ut(t.fullName,p),Rt(t.fullName,u);let h={name:t.fullName,parent:a,matchSegments:s,meta:c,declaredQueryParams:u,declaredQueryParamsSet:u.length===0?Ye: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=Et({segments:h.matchSegments,params:Ze,search:Qe,meta:h.meta})),e.routesByName.set(t.fullName,h),o?Pt(e,h,r):Ft(e,h,n,l,t),h}function Mt(e){let n;for(let t of e)Nt(t.paramTypeMap)&&(n??=p(),n[t.fullName]=t.paramTypeMap);return n===void 0?$e:Et(t(r(n)))}function Nt(e){for(let t in e)if(Dt(e,t))return!0;return!1}function Pt(e,t,n){St(e,t,n);let r=M(n),i=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.has(i)&&e.staticCache.set(i,t)}function Ft(e,t,n,r,i){if(bt(e,t,n),i.paramMeta.urlParams.length===0){let n=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.set(n,t)}}function It(e,t){return M(e)===M(t)}function Lt(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?Je:n}function Rt(e,t){for(let n of t)b.test(n)&&dt(e,n)}const zt=o(`router`,`buildPath`),Bt=Symbol.for(`real-router.searchParams.configFault`),Vt=Object.hasOwn,Ht=Object.keys,Ut=Object.getOwnPropertyDescriptor;function Wt(e){try{return Ut(e,Bt)?.configurable===!1}catch{return!1}}function Gt(e){return typeof e==`string`?e:typeof e==`object`?JSON.stringify(e):String(e)}const Kt=Object.freeze({});function qt(e,t){return e===`strict`?t?`always`:`never`:e}var Jt=class{get options(){return this.#e}#e;#t=We();#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=Vt(Be,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:Ve[this.#e.urlParamsEncoding]}registerTree(e){this.#a=e.paramMeta.queryParams,At({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 zt.plain`'${e}' is not defined`;let a=this.#l(i,t),o=this.#u(a,qt(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&&Vt(t,a.paramName)?t[a.paramName]:void 0;if(r==null)throw zt.plain`Missing required param '${a.paramName}'`;if(r===``)throw zt.plain`Missing required param '${a.paramName}' (empty string)`;let o=a.encoder(Gt(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)Vt(t,n)&&(s(r,n,t[n]),i=!0);if(n===`loose`)for(let n of Ht(t))e.declaredQueryParamsSet.has(n)||e.buildParamNamesSet.has(n)||(s(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=M(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=Kt;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(Wt(e))throw e;return}if(this.#e.strictQueryParams){let t=e.declaredQueryParamsSet;for(let e of Ht(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),c=e===-1?a:e,l=t.slice(n,c),d=o?l:l.toLowerCase(),f;if(d in i.staticChildren){let e=i.staticChildren[d];if(i.splatChild!==void 0){let a={},o=this.#v(e,t,c+1,a);return o===void 0?this.#y(i.splatChild,t,n,r):(u(r,a),o)}f=e}else if(i.paramChild){let e=i.paramChild;if(i.splatChild!==void 0){let a={[e.name]:l},o=this.#v(e.node,t,c+1,a);return o===void 0?this.#y(i.splatChild,t,n,r):(u(r,a),o)}f=e.node,s(r,e.name,l)}else if(i.splatChild)return this.#y(i.splatChild,t,n,r);else return;i=f,n=c+1}return i.slashChildRoute??i.route}#y(e,t,n,r){let i=e.node;if(!i.hasChildren)return s(r,e.name,t.slice(n)),i.route;let a={},o=this.#v(i,t,n,a);return o?(u(r,a),o):(s(r,e.name,t.slice(n)),i.route)}#b(e){let t=this.#c;if(!t)return!0;for(let n of Ht(e)){let r=e[n];if(r.includes(`%`)){if(!qe(r))return!1;try{e[n]=t(r)}catch{return!1}}}return!0}};const P=Object.freeze,Yt=Object.freeze(new Map),Xt=Object.freeze([]);function Zt(e){return e.parent?.name?`${e.parent.fullName}.${e.name}`:e.name}function Qt(e){let t=new Map;for(let n of e)t.set(n.name,n);return t}function $t(e,t){let n=[],r=[];for(let i of e){let e=en(i,t);n.push(e),e.absolute||r.push(e)}return{childrenMap:Qt(n),nonAbsoluteChildren:r}}function en(e,t){let n=ue(e.path),r=n.urlParams.length===0&&n.queryParams.length===0&&n.pathPattern===e.path?te:n,i=r.paramTypeMap,a={name:e.name,path:e.path,absolute:e.absolute,parent:t,children:void 0,paramMeta:r,nonAbsoluteChildren:void 0,fullName:``,paramTypeMap:i};if(a.fullName=Zt(a),e.children.length===0)a.children=Yt,a.nonAbsoluteChildren=Xt;else{let{childrenMap:t,nonAbsoluteChildren:n}=$t(e.children,a);a.children=t,a.nonAbsoluteChildren=n,P(a.nonAbsoluteChildren),P(a.children)}return P(i),P(r.urlParams),P(r.queryParams),P(r),P(a),a}function tn(e){return en(e,null)}function nn(e,t,n){return tn(Pe(e,t,n))}function rn(e){let t=e.absolute?`~${e.path}`:e.path,n={name:e.name,path:t};return e.children.size>0&&s(n,`children`,Array.from(e.children.values(),rn)),n}function an(e){return Array.from(e.children.values(),rn)}const on=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)},sn=(e,t)=>{if(e===void 0)return t.boolean.decodeUndefined();let n=t.boolean.decodeRaw(e);if(n!==null)return n;let r=on(e),i=t.number.decode(r);return i===null?t.boolean.decodeValue(r):i},cn=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,ln=e=>{try{return encodeURIComponent(e)}catch(t){if(!(t instanceof URIError))throw t;return encodeURIComponent(String(e).replaceAll(cn,`�`))}},un=o(`router`),dn=e=>{let t=typeof e;if(t!==`string`&&t!==`number`&&t!==`boolean`)throw un.type`Invalid query value: an array element must be a string, number, or boolean — received ${t}`;return ln(e)},fn=(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}=${dn(e)}`);return a.join(`&`)},pn={none:{encodeArray:(e,t,n)=>fn(e,t,``,n)},brackets:{encodeArray:(e,t,n)=>fn(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}=${dn(a)}`)}return r.join(`&`)},indexed:!0},comma:{encodeArray:(e,t)=>{let n=[];for(let e of t)e!==null&&n.push(dn(e));return n.length===0?``:`${e}=${n.join(`,`)}`},decodeValue:e=>e.includes(`,`)?e.split(`,`):null}},mn={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}},hn={default:{encode:e=>e},hidden:{encode:()=>``}},gn={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}},_n=o(`router`),vn=Object.defineProperty,yn=Object.keys,bn=Object.hasOwn,xn=Symbol.for(`real-router.searchParams.configFault`),Sn=(e,t,n)=>{let r=typeof t==`string`?t:String(t);if(!bn(e,r)){let t=_n.type`Invalid "queryParams.${n}": "${r}" — expected ${yn(e).map(e=>`"${e}"`).join(` | `)}`;throw vn(t,xn,{value:!0}),t}return e[r]},Cn=(e,t,n,r)=>({boolean:Sn(mn,t,`booleanFormat`),null:Sn(hn,n,`nullFormat`),number:Sn(gn,r,`numberFormat`),array:Sn(pn,e,`arrayFormat`)}),wn=Object.freeze({boolean:mn.auto,null:hn.default,number:gn.auto,array:pn.none}),F=Object.freeze({arrayFormat:`none`,booleanFormat:`auto`,nullFormat:`default`,numberFormat:`auto`}),Tn=Object.freeze({...F,strategies:wn}),En=e=>{if(!e||e.arrayFormat===void 0&&e.booleanFormat===void 0&&e.nullFormat===void 0&&e.numberFormat===void 0)return Tn;let t=e.arrayFormat??F.arrayFormat,n=e.booleanFormat??F.booleanFormat,r=e.nullFormat??F.nullFormat,i=e.numberFormat??F.numberFormat;return{arrayFormat:t,booleanFormat:n,nullFormat:r,numberFormat:i,strategies:Cn(t,n,r,i)}},Dn=e=>ln(e),On=(e,t,n)=>{let r=Dn(e);switch(typeof t){case`string`:case`number`:return`${r}=${Dn(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}=${Dn(t)}`;default:return`${r}=${Dn(t)}`}},kn=Object.hasOwn,An=Object.keys;function jn(e,t,n){s(e,t,n)}function Mn(e,t,n,r){if(!kn(e,t)){jn(e,t,r?[n]:n);return}let i=e[t];Array.isArray(i)?i.push(n):jn(e,t,[i,n])}function Nn(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 Pn(e,t,n){let{searchPart:r,nameEnd:i,nameSourceEnd:a,rawValue:o,decodedName:s}=e,c=Nn(r,i,a);if(c===null)return!1;let l=sn(o,t),u=n.get(s);return u===void 0?n.set(s,[[c,l]]):u.push([c,l]),!0}function Fn(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=on(e.slice(t,l));if(!(o!==void 0&&u&&Pn({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)Mn(r,d,sn(t,i),!0);return}}Mn(r,d,sn(s,i),u)}}const In=(e,t)=>{if(e===``||e===`?`)return{};let n={};return Ln(e,n,t.strategies),n};function Ln(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)),Fn(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]),jn(t,e,n.map(e=>e[1]))}const Rn=(e,t)=>{let n=An(e);if(n.length===0)return``;let r=[];for(let i of n){let n=e[i];if(n===void 0)continue;let a=On(i,n,t);a&&r.push(a)}return r.join(`&`)};function zn(e){let t=e?.queryParams,n=En(t);return new Jt({...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=>In(e,n),buildQueryString:e=>Rn(e,n)})}const Bn=o(`router`,`addEventListener`),Vn=o(`router`,`subscribeChanges`),Hn=o(`router`,`addInterceptor`),Un=o(`router`,`addCheck`),Wn=o(`router`,`extendRouter`),I=o(`router`),Gn=Object.keys,Kn=Object.values,L=Object.hasOwn,qn=Object.getOwnPropertyDescriptor,Jn=Object.getPrototypeOf,Yn=Object,Xn=new Set(Kn(_));function Zn(e){if(!Xn.has(e))throw Bn.type`Invalid event name: ${String(e)}. Must be one of: ${[...Xn].join(`, `)}`}function Qn(e){if(typeof e!=`function`)throw Bn.type`callback must be a function, got ${typeof e}`}function $n(e){if(typeof e!=`function`)throw Vn.type`Expected a function`}function er(e,t){if(typeof e!=`string`||!L(E,e))throw Hn.type`Invalid method: ${typeof e==`string`?`"${e}"`:typeof e}. Must be one of: ${Gn(E).join(`, `)}`;if(typeof t!=`function`)throw Hn.type`interceptor must be a function, got ${typeof t}`}function tr(e,t){if(typeof e!=`string`||!L(w,e))throw Un.type`Invalid position: ${typeof e==`string`?`"${e}"`:typeof e}. Must be one of: ${Gn(w).join(`, `)}`;if(typeof t!=`function`)throw Un.type`check must be a function, got ${typeof t}`}function nr(e,t){if(typeof e!=`string`)throw o(`router`,t).type`Route name must be a string, got ${typeof e}`}function rr(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Jn(e);return t===null||t.constructor===Yn}function ir(e){if(!rr(e))throw I.type`dependencies must be a plain object`}function ar(e){return e===null?`null`:typeof e==`object`?`a non-plain object`:typeof e}function or(e){if(!rr(e))throw Wn.type`extensions must be a plain object, got ${ar(e)}`}function sr(e,t){ir(e);let n=e,r=[];for(let e of Gn(n)){if(qn(n,e)?.get)throw I.type`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 cr(e){let t=[];for(let n of e){let e=n;if(typeof e!=`object`||!e||Array.isArray(e))throw I.type`route must be a non-array object`;oe(e,`addRoute`);let r={...e},i=r.children;i&&s(r,`children`,cr(i)),t.push(r)}return t}const lr=new Set([`all`,`warn-error`,`error-only`,`none`]);function ur(e){return typeof e==`string`&&lr.has(e)}function dr(e){return typeof e==`string`?`"${e}"`:typeof e==`object`?JSON.stringify(e):String(e)}function fr(e){for(let t of Gn(e))if(t!==`level`&&t!==`callback`&&t!==`callbackIgnoresLevel`)throw I.type`Unknown logger config property: "${t}"`}function pr(e){if(!L(e,`level`))return;let t=e.level;if(t!==void 0){if(!ur(t))throw I.type`Invalid logger level: ${dr(t)}. Expected: "all" | "warn-error" | "error-only" | "none"`;return t}}function mr(e){if(!L(e,`callbackIgnoresLevel`))return;let t=e.callbackIgnoresLevel;if(t!==void 0){if(typeof t!=`boolean`)throw I.type`Logger callbackIgnoresLevel must be a boolean, got ${typeof t}`;return t}}function hr(e){if(typeof e!=`object`||!e)throw I.type`Logger config must be an object`;let t=e;fr(t);let n=p(),r=pr(t);if(r!==void 0&&(n.level=r),L(t,`callback`)){let e=t.callback;if(e!==void 0&&typeof e!=`function`)throw I.type`Logger callback must be a function, got ${typeof e}`;n.callback=e}let i=mr(t);return i!==void 0&&(n.callbackIgnoresLevel=i),n}const gr=Object.create;function _r(e,t,n){e[t]=n}function vr(e,t){return e.dependencies[t]}function yr(e){e.dependencies=gr(null)}function br(e){return we({...e.dependencies})}function xr(e,t){let n=gr(null),r=e,i=n;return sr(r,(e,t)=>{_r(i,e,t)}),{dependencies:n,limits:t}}const R={defaultRoute:``,defaultParams:{},defaultSearch:{},trailingSlash:`preserve`,caseSensitive:!0,queryParamsMode:`loose`,queryParams:F,urlParamsEncoding:`default`,allowNotFound:!0,rewritePathOnMatch:!0},Sr=[`strict`,`never`,`always`,`preserve`],Cr=[`default`,`strict`,`loose`];function wr(e){return e!==void 0&&Sr.includes(e)?e:R.trailingSlash}function Tr(e){return e!==void 0&&Cr.includes(e)?e:R.queryParamsMode}const Er=o(`router`);function Dr(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Er.type`options must be a plain object`}const Or=Object.freeze;var kr=class{#e;constructor(e={}){this.#e=Or(we({...R,...e}))}static validateOptionsIsObject(e){Dr(e)}get(){return this.#e}};function Ar(e,t){return typeof e==`function`?e(t):e}const jr=Object.keys;function Mr(e,t,n,r,i){let a=e.pathNames(t);if(a!==void 0)for(let e of jr(n))!r.includes(e)&&!a.includes(e)&&i(t,e)}function z(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,l=O(o.params,d),u=i?.diagnoseUndeclared===!0?e.reportUndeclaredParamKey:void 0;u&&Mr(e,s,l,e.queryNames(s),u);let f=e.defaultParams(s),p=e.defaultSearch(s);if((o.search===void 0||o.search===c)&&f===void 0&&p===void 0)return{name:s,path:l,query:c};let m=e.queryNames(s),h=e.reportDroppedQueryKey,g=i?.resolveForward===!1?Oe(p,l,m):p,_=O(o.search,c),v=ge(g,_);return{name:s,path:Te(f,l),query:e.admitsUndeclaredQuery()?v:Me(v,e.printedQueryNames(s),t=>{h!==void 0&&e.pathNames(s)!==void 0&&h(s,t)})}}function B(e,t){return t.buildPath(e.name,e.path,e.query)}const Nr=Object.freeze;function Pr(e,t){let n={name:e.name,params:e.path,search:e.query,path:t,context:{},transition:i};return Nr(n.params),n}function V(e,t){return he(Pr(e,t))}function Fr(e,t){return Pr(e,t)}var Ir=class{#e;#t;get(){return this.#e.current}getPrevious(){return this.#e.previous}setContext(e){this.#e=e}setDependencies(e){this.#t=e}makeState(e,t,n,r){let i=this.#t.port(),a=z(i,e,t??d,n,{resolveForward:!1});return y(`makeState`,a.name,a.path,i.queryNames(a.name)),V(a,r??B(a,i))}areStatesEqual(e,t,n=!0){if(!e||!t)return!!e==!!t;let r=e.name;return r===t.name?n?_e(e.params,t.params,this.#t.getUrlParams(r)):ve(e.params,t.params)&&ve(e.search,t.search):!1}};const Lr=Object.keys,Rr={[n.ROUTER_START]:_.ROUTER_START,[n.ROUTER_STOP]:_.ROUTER_STOP,[n.TRANSITION_SUCCESS]:_.TRANSITION_SUCCESS,[n.TRANSITION_START]:_.TRANSITION_START,[n.TRANSITION_LEAVE_APPROVE]:_.TRANSITION_LEAVE_APPROVE,[n.TRANSITION_ERROR]:_.TRANSITION_ERROR,[n.TRANSITION_CANCEL]:_.TRANSITION_CANCEL},zr=Lr(Rr),Br=`router.usePlugin`,Vr=o(`router`,`usePlugin`);function Hr(e){if(!(e&&typeof e==`object`)||Array.isArray(e))throw Vr.type`Plugin factory must return an object, got ${typeof e}`;if(typeof e.then==`function`)throw Vr.type`Async plugin factories are not supported. Factory returned a Promise instead of a plugin object.`}const Ur=Object.freeze;var Wr=class e{#e=new Set;#t=new Set;#n;static validatePlugin(e){Hr(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(Br,`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(Br,`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(Br,`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),Ur(n);let r=[];for(let e of zr)e in n&&(typeof n[e]==`function`?(r.push(this.#n.addEventListener(Rr[e],n[e])),e===`onStart`&&this.#n.canNavigate()&&this.#n.emitDiagnostic(ce.PLUGIN_AFTER_START,e)):this.#n.getValidator()?.plugins.warnPluginMethodType(e));return()=>{for(let e of r)e();typeof n.teardown==`function`&&n.teardown()}}};const H=Object.create,Gr=()=>!0,Kr=()=>!1,qr=()=>Gr,Jr=()=>Kr;function Yr(e){return e?qr:Jr}function Xr(e,t,n){n===void 0?e.delete(t):e.set(t,n)}var Zr=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=H(null),t=H(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=H(null),t=H(null),n=H(null),r=H(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`?Yr(e):e,r=this.#d.compileFactory(n);if(typeof r!=`function`)throw o(`router`,t).type`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`?Yr(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 Xr(c,t,d),Xr(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 Qr=new Set([`name`,`path`,`children`,`canActivate`,`canDeactivate`,`forwardTo`,`encodeParams`,`decodeParams`,`defaultParams`,`defaultSearch`]),$r=Object.freeze,U=Object.create,ei=Object.hasOwn,ti=Object.keys;function ni(){return{decoders:U(null),encoders:U(null),defaultParams:U(null),defaultSearch:U(null),forwardMap:U(null),forwardFnMap:U(null)}}function ri(e){return ti(e.forwardMap).length>0||ti(e.forwardFnMap).length>0}function ii(e,t){for(let n of ti(t))Object.assign(e[n],t[n])}function ai(e,t){for(let n in e)if(ei(t,n)&&!me(e[n],t[n]))return!1;return!0}function oi(e){return typeof e==`string`?e:`<non-string>`}function si(e,t){for(let n in e)if(!me(e[n],t[n]))return!1;return!0}function ci(e){let t={name:e.name,path:e.path};return e.children&&s(t,`children`,e.children.map(e=>ci(e))),t}function li(e,t,n){if(n.add(t),e.children)for(let r of e.children)li(r,`${t}.${r.name}`,n)}function ui(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 li(i,a,t),t}if(i.children&&t.startsWith(`${a}.`)){let e=ui(i.children,t,a);if(e)return e}}}function di(e,t){for(let n of ti(e))t(n)&&delete e[n]}function fi(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 pi(e){let t=[];for(let n of e)for(let e of n.paramMeta.urlParams)t.push(e);return t}const mi=$r([]);function hi(e,t,n){let r=n.get(t);if(r!==void 0)return r;let i=e.getSegmentsByName(t);if(!i)return mi;let a=$r(pi(i));return n.set(t,a),a}function gi(e,t){return hi(e.matcher,t,e.urlParamsCache)}const _i=$r([]);function vi(e,t,n,r){let i=r.get(t);if(i!==void 0)return i;let a=e.getDeclaredQueryParams(t);if(!a)return _i;let o=hi(e,t,n),s=$r(a.filter(e=>!o.includes(e)));return r.set(t,s),s}function yi(e,t){return e.getDeclaredQueryParams(t)??_i}function bi(e,t){return vi(e.matcher,t,e.urlParamsCache,e.queryParamsCache)}function xi(e,t,n){let r=new Map,i=new Map;ke(t.defaultParams,t=>vi(e,t,r,i),n)}const Si=o(`router`);function Ci(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 Si.plain`Circular forwardTo: ${t.join(` → `)}`}if(i.add(o),a.push(r),o=r,a.length>n)throw Si.plain`forwardTo chain exceeds maximum depth (${n}): ${a.join(` → `)}`}return o}const wi=o(`router`),Ti=o(`router`,`addRoute`),Ei=Object.freeze,W=Object.create,Di=Object.entries,Oi=Object.keys,ki=Object.defineProperty,Ai=Object.fromEntries;function ji(e,t,n){let r=nn(``,t,e),i=zn(n);return i.registerTree(r),{tree:r,matcher:i}}function Mi(e,t=e.definitions){let n=ji(t,e.rootPath,e.matcherOptions);e.tree=n.tree,e.matcher=n.matcher,e.urlParamsCache.clear(),e.queryParamsCache.clear()}function Ni(e,t){let n=ji(e.definitions,t,e.matcherOptions);xi(n.matcher,e.config,`setRootPath`),e.rootPath=t,e.tree=n.tree,e.matcher=n.matcher,e.urlParamsCache.clear(),e.queryParamsCache.clear()}function Pi(e,t){Mi(e,t),G(e,Li(e.config))}function Fi(e){Ii(e),Mi(e,[])}function Ii(e){Object.assign(e.config,ni()),G(e,W(null)),e.routeCustomFields=W(null)}function G(e,t){e.resolvedForwardMap=t,e.hasAnyForward=ri(e.config)}function Li(e){let t=W(null);for(let n of Oi(e.forwardMap))t[n]=Ci(n,e.forwardMap);return t}function Ri(e,t){if(typeof e!=`function`){if(typeof e!=`string`&&e!==null)throw wi.type`forwardTo must be a string or function for route "${t}", got ${typeof e}`;return}let n=e.constructor.name===`AsyncFunction`,r=e.toString().includes(`__awaiter`);if(n||r)throw wi.type`forwardTo callback cannot be async for route "${t}". Async functions break matchPath/buildPath.`}function zi(e,t,n){t&&C(`encodeParams`,t,n,void 0),e&&C(`decodeParams`,e,n,void 0)}function Bi(e,t,n,r){if(Ri(e.forwardTo,t),e.canActivate){let n=typeof e.forwardTo==`string`?e.forwardTo:`[dynamic]`;r.warn(`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(`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}".`)}typeof e.forwardTo==`string`?n.forwardMap[t]=e.forwardTo:n.forwardFnMap[t]=e.forwardTo}function Vi(e,t,n,r,i,a,o){let{decodeParams:s,encodeParams:c}=e;zi(s,c,t);let l=Ai(Di(e).filter(([e])=>!Qr.has(e)));Oi(l).length>0&&(r[t]=Ei(l)),e.canActivate&&i.set(t,e.canActivate),e.canDeactivate&&a.set(t,e.canDeactivate),e.forwardTo&&Bi(e,t,n,o),s&&(n.decoders[t]=e=>s(e)??e),c&&(n.encoders[t]=e=>c(e)??e),e.defaultParams&&(n.defaultParams[t]=k(`defaultParams`,e.defaultParams)),e.defaultSearch&&(n.defaultSearch[t]=k(`defaultSearch`,e.defaultSearch))}function Hi(e,t,n,r,i,a,o=``){for(let s of e){let e=o?`${o}.${s.name}`:s.name;Vi(s,e,t,n,r,i,a),s.children&&Hi(s.children,t,n,r,i,a,e)}}function Ui(e){let t=ni();return ii(t,e),t}function Wi(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]:Wi(n,t,i)}})}function Gi(e,t,n){for(let r of e){let e=t?`${t}.${r.name}`:r.name;n(e),r.children&&Gi(r.children,e,n)}}function Ki(e,t,n){let r=new Set;Gi(e,t,e=>{if(r.has(e))throw o(`router`,n).plain`Duplicate route "${e}" in batch`;r.add(e)})}function qi(e,t){if(nr(e,t),e.startsWith(`@@`))throw o(`router`,t).plain`Route name "${e}" uses the reserved "${`@@`}" prefix. Routes with this prefix are internal and cannot be modified through the public API.`}function Ji(e,t){for(let n of e)qi(n.name,t),n.children&&Ji(n.children,t)}function Yi(e,t){for(let n of e)ne(n.name,t),n.children&&Yi(n.children,t)}function Xi(e,t){for(let n of e)ae(n.name,t),n.children&&Xi(n.children,t)}function Zi(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 o(`router`,n).plain`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 Qi(e,t,n){if(Ji(t,`addRoute`),Yi(t,`addRoute`),Xi(t,`addRoute`),n!==void 0&&!e.matcher.hasRoute(n))throw Ti.plain`Parent route "${n}" does not exist`;Gi(t,n??``,t=>{if(e.matcher.hasRoute(t))throw Ti.plain`Route "${t}" already exists`}),Ki(t,n??``,`addRoute`),Zi(t,n??``,`addRoute`)}function $i({definitions:e,routesForHandlers:t,config:n,routeCustomFields:r,handlerParentName:i,rootPath:a,matcherOptions:o,logger:s}){let c=new Map,l=new Map;Hi(t,n,r,c,l,s,i);let u=Li(n),{tree:d,matcher:f}=ji(e,a,o);return{config:n,routeCustomFields:r,pendingCanActivate:c,pendingCanDeactivate:l,tree:d,matcher:f,resolvedForwardMap:u}}function ea(e,t,n,r){return $i({definitions:Wi(e.definitions,t.map(e=>ci(e)),n===void 0?[]:n.split(`.`)),routesForHandlers:t,config:Ui(e.config),routeCustomFields:Object.assign(W(null),e.routeCustomFields),handlerParentName:n??``,rootPath:e.rootPath,matcherOptions:e.matcherOptions,logger:r})}function ta(e,t,n,r){return $i({definitions:e.map(e=>ci(e)),routesForHandlers:e,config:ni(),routeCustomFields:W(null),handlerParentName:``,rootPath:t,matcherOptions:n,logger:r})}function na(e,t,n){let r=[];for(let[i,a]of e)r.push([i,a,t(a,n)]);return r}function ra(e,t){return{activate:na(e.pendingCanActivate,t.compileGuard,`canActivate`),deactivate:na(e.pendingCanDeactivate,t.compileGuard,`canDeactivate`)}}function ia(e,t,n){let r=e.depsStore,{activate:i,deactivate:a}=n??ra(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(),G(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 K(e){return e===null?e:e||void 0}function aa(e,t){return t==null?t:k(e,t)}function oa(e,t,n,r){let{forwardTo:i,defaultParams:a,defaultSearch:o,decodeParams:s,encodeParams:c,canActivate:l,canDeactivate:u}=r,d=K(i),f=aa(`defaultParams`,K(a)),p=aa(`defaultSearch`,K(o)),m=K(s),h=K(c),g=K(l),_=K(u);f!=null&&fe(`updateRoute`,n,f,bi(e,n),"this route's `defaultParams`","Move it to `defaultSearch`"),zi(m,h,n);let v=d===void 0?void 0:sa(n,d,e.config),y=ca(e,n,r),b=g==null?void 0:t.compileGuardFactory(g,`canActivate`),x=_==null?void 0:t.compileGuardFactory(_,`canDeactivate`);return t.preflightHandlerLimit(b===void 0?[]:[n],x===void 0?[]:[n],!1),y!==void 0&&(Oi(y).length>0?e.routeCustomFields[n]=Ei(y):delete e.routeCustomFields[n]),v!==void 0&&(e.config.forwardMap=v.forwardMap,e.config.forwardFnMap=v.forwardFnMap,G(e,v.resolved)),ua(e,n,{defaultParams:f,defaultSearch:p,decodeParams:m,encodeParams:h}),da(t,`activate`,n,g,b),da(t,`deactivate`,n,_,x),{forwardTo:d,defaultParams:f,defaultSearch:p,decodeParams:m,encodeParams:h}}function sa(e,t,n){Ri(t,e);let r=Object.assign(W(null),n.forwardMap),i=Object.assign(W(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:Li({...n,forwardMap:r})}}function ca(e,t,n){let r;for(let i of Oi(n)){if(Qr.has(i))continue;let a=n[i];a!==void 0&&(r??={...e.routeCustomFields[t]},a===null?delete r[i]:s(r,i,a))}return r}function la(e,t,n){n!==void 0&&(n===null?delete e[t]:e[t]=n)}function ua(e,t,n){if(la(e.config.defaultParams,t,n.defaultParams),la(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 da(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 fa(e,t,n){let r=e;Ji(r,`addRoute`),Yi(r,void 0),Xi(r,void 0),Ki(r,``,`addRoute`);let i=ta(r,``,t,n),a={get definitions(){return an(a.tree)},config:i.config,tree:i.tree,matcher:i.matcher,urlParamsCache:new Map,queryParamsCache:new Map,resolvedForwardMap:i.resolvedForwardMap,hasAnyForward:ri(i.config),routeCustomFields:i.routeCustomFields,rootPath:``,matcherOptions:t,depsStore:void 0,lifecycleNamespace:void 0,revalidating:!1,pendingCanActivate:i.pendingCanActivate,pendingCanDeactivate:i.pendingCanDeactivate};return xi(a.matcher,a.config,`addRoute`),ki(a,`matcherOptions`,{writable:!1,configurable:!1}),a}const pa=Object.freeze,ma=Object.keys,ha=[];Object.freeze(ha);function ga(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 _a=new Set([`string`,`number`,`boolean`]);function va(e){return _a.has(typeof e)}function ya(e,t,n,r){let i=t[e];if(!i||typeof i!=`object`)return!0;for(let e of ma(i)){let t=n.params[e],i=r.params[e];if(va(t)&&va(i)&&String(t)!==String(i))return!1}return!0}function ba(e,t,n,r,i,a){for(let o=0;o<a;o++){let a=r[o];if(a!==i[o]||!ya(a,e,t,n))return o}return a}const xa=new Map;function q(e){let t=xa.get(e);if(t)return t;let n=Sa(e);return pa(n),xa.set(e,n),n}function Sa(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]:ga(e)}let Ca,wa,Ta=null,Ea,Da,Oa=null;function ka(e,t,n){if(!t)return{intersection:``,toActivate:q(e.name),toDeactivate:ha};let r=n(e.name),i=n(t.name);if(!r&&!i)return{intersection:``,toActivate:q(e.name),toDeactivate:q(t.name)};let a=q(e.name),o=q(t.name),s=Math.min(o.length,a.length),c=ba(r??i,e,t,a,o,s),l;if(c>=o.length)l=ha;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 Aa(e,t,n){if(Ta!==null&&e===Ca&&t===wa)return Ta;if(Oa!==null&&e===Ea&&t===Da)return Oa;let r=ka(e,t,n);return Ea=Ca,Da=wa,Oa=Ta,Ca=e,wa=t,Ta=r,r}const ja=o(`router`),Ma=o(`router`,`shouldUpdateNode`),Na=Object.freeze,J=Object.hasOwn;function Pa(e,t){return{name:t??e.segments.at(-1).fullName,params:e.params,search:e.search,meta:e.meta}}function Fa(e){let t=wr(e);return t===`preserve`?void 0:t}var Ia=class{#e;#t;#n;get#r(){return this.#e.depsStore}constructor(e,t,n){this.#e=fa(e,t,n)}static shouldUpdateNode(e,t){return(n,r)=>{if(!(n&&typeof n==`object`&&`name`in n))throw Ma.type`toState must be valid State object`;if(n.transition?.reload||e===``)return!0;let{intersection:i,toActivate:a,toDeactivate:o}=Aa(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){Ni(this.#e,e)}hasRoute(e){return this.#e.matcher.hasRoute(e)}clearRoutes(){Fi(this.#e)}buildPath(t,n,r,i){if(t===e.UNKNOWN_ROUTE)return typeof n.path==`string`?n.path:``;let a=this.#e.config.encoders[t];if(typeof a==`function`){let e=a({params:{...n},search:{...r}});return this.#e.matcher.buildPath(t,e.params,e.search,this.#c(i))}return this.#e.matcher.buildPath(t,n,r,this.#c(i))}buildPathFromIntent(t,n,r){return t===e.UNKNOWN_ROUTE?this.#r.port.buildPath(t,O(n,d),r??c):B(z(this.#r.port,t,n,r,{resolveForward:!1}),this.#r.port)}matchPath(e,t){let n=t,r=this.#e.matcher.match(e);if(!r)return;let i=Pa(r),{name:a}=i,o=D(i.params),s=D(i.search),c=this.#e.config.decoders[a],l;if(typeof c==`function`){l=c({params:o,search:s});let e=l.params;l={params:e,search:l.search},this.#r.getValidator()?.routes.validateStateBuilderArgs(a,e,`matchPath`),fe(`matchPath`,a,e,this.getQueryParams(a),"the `params` returned by this route's `decodeParams`")}else l={params:o,search:s};let u=z(this.#r.port,a,l.params,l.search),d=u.name;y(`matchPath`,u.name,u.path,this.getQueryParams(u.name));let f=u.path,p=u.query,m=e;if(n.rewritePathOnMatch){let t=this.#e.config.encoders[d],r=typeof t==`function`?t({params:f,search:p}):{params:f,search:p},i=n.trailingSlash;try{m=this.#e.matcher.buildPath(d,r.params,r.search,{trailingSlash:Fa(i),queryParamsMode:Tr(n.queryParamsMode)}),wr(i)===`preserve`&&(m=fi(e,m))}catch{m=e}}return V(u,m)}forwardState(e,t,n){let r=n??c;if(J(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&&J(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 Pa({segments:n,params:t,search:{},meta:this.#e.matcher.getMetaByName(e)},e)}isActiveRoute(e,t=d,n=c,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(!J(this.#e.config.forwardMap,a)&&!J(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 "${oi(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 gi(this.#e,e)}getQueryParams(e){return bi(this.#e,e)}getPrintedQueryParams(e){return yi(this.#e.matcher,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 "${oi(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=z(this.#r.port,e,t,n,{resolveForward:!1});if(r||o===e){let e=Fr(s,``);return!this.#r.areStatesEqual(e,a,!0)||!ai(s.path,a.params)?!1:i||ve(e.search,a.search)}return!(!o.startsWith(`${e}.`)||!ai(s.path,a.params)||!i&&!si(s.query,a.search))}#o(e){let t=[],n=e;for(;J(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=be(this.#e.config.defaultParams[e],i),a=be(this.#e.config.defaultSearch[e],a);return{name:e,params:O(be(i,n),d),search:O(be(a,r),c)}}#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=Na({trailingSlash:Fa(e?.trailingSlash),queryParamsMode:Tr(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 ja.type`forwardTo callback must return a string, got ${typeof o}`;for(;s<100;){if(this.#e.matcher.getSegmentsByName(o)===void 0)throw ja.plain`Route "${o}" does not exist`;if(i.has(o)){let e=[...i,o].join(` → `);throw ja.plain`Circular forwardTo: ${e}`}if(i.add(o),J(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 ja.plain`forwardTo exceeds maximum depth of ${100}`}};const La=o(`router`),Ra=new m(g.ROUTER_NOT_STARTED),za=new m(g.SAME_STATES),Ba=La.code(g.ROUTER_NOT_STARTED)`cannot commit before the start navigation does — the boot would overwrite it; defer with queueMicrotask/await, or navigate after start() resolves`;Object.freeze(Ra),Object.freeze(za),Object.freeze(Ba);const Va=Promise.reject(Ra),Ha=Promise.reject(za),Ua=Promise.reject(Ba);Va.catch(()=>{}),Ha.catch(()=>{}),Ua.catch(()=>{});const Wa=new Set([g.SAME_STATES,g.TRANSITION_CANCELLED,g.ROUTER_NOT_STARTED,g.ROUTE_NOT_FOUND,g.CANNOT_ACTIVATE,g.CANNOT_DEACTIVATE,g.ROUTER_ALREADY_STARTED]);function Ga(e){return e instanceof m&&Wa.has(e.code)}const Ka=new Set([Va,Ha,Ua]),Y=Object.freeze;function qa(e){let{fromState:t,toDeactivate:n,toActivate:r,intersection:i}=e;Y(n),Y(r);let a={phase:`activating`,reason:`success`,segments:Y({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),Y(a)}function Ja(t,n){let{toState:r,fromState:i,toDeactivate:a,toActivate:o}=n;if(r.name!==e.UNKNOWN_ROUTE&&!t.hasRoute(r.name)){let e=l(new m(g.ROUTE_NOT_FOUND,{routeName:r.name}));throw t.sendTransitionFail(i,e,n),e}let s=n,c={...r,transition:qa(n)},u=Y(c);n.toState=u;let d=t.canCommitTransition(s);if(!d)throw l(new m(g.TRANSITION_CANCELLED));for(let e of a)!o.includes(e)&&n.canDeactivateFunctions.has(e)&&t.clearCanDeactivate(e,d);return t.sendTransitionDone(s),u}const Ya=Object.entries;function Xa(e){return e instanceof m&&e.code===g.TRANSITION_CANCELLED}function Za(e){return Xa(e)?e:l(new m(g.TRANSITION_CANCELLED,{reason:e}))}function Qa(e,t,n,r){let i=t;i.code!==g.TRANSITION_CANCELLED&&i.code!==g.ROUTE_NOT_FOUND&&e.sendTransitionFail(n,i,r)}function $a(e,t,n){if(e instanceof DOMException&&e.name===`AbortError`)throw l(new m(g.TRANSITION_CANCELLED));if(Xa(e))throw e;eo(e,t,n)}function eo(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??``,l(a)}throw l(new m(t,no(e,n)))}const to=new Set([`code`,`segment`,`path`,`then`]);function no(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 Ya(e))n!==`__proto__`&&!to.has(n)&&s(t,n,r);return{...n,...t}}return n}async function ro(e,t,n){let r;try{r=await e}catch(e){$a(e,t,n);return}if(!r)throw l(new m(t,{segment:n}))}function io(e,t,n,r,i,a,o,s,c,u){if(!c())throw l(new m(g.TRANSITION_CANCELLED));if(e===1){let n=u();return n===void 0?void 0:{phase:e,index:t+1,pending:n}}let d=n[t],f=r.get(d);if(!f)return;let p=!1;try{p=f(a,o,s)}catch(e){$a(e,i,d)}let h;try{h=p.then}catch(e){$a(e,i,d)}if(typeof h==`function`){let n=p;return{phase:e,index:t+1,pending:new Promise((e,t)=>{Reflect.apply(h,n,[e,t])})}}if(!p)throw l(new m(i,{segment:d}))}function ao(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,_=p?1:h.length,v=m?n:r,y=m?g.CANNOT_DEACTIVATE:g.CANNOT_ACTIVATE;for(let n=t;n<_;n++){let t=io(e,n,h,v,y,c,l,u,d,f);if(t!==void 0)return t}}function oo(e,t,n,r,i,a,o,s,c,l,u,d,f){for(let p=d;p<=2;p++){let m=ao(p,p===d?f:0,e,t,n,r,i,a,o,s,c,l,u);if(m!==void 0)return m}}async function so(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 ro(f.pending,e?g.CANNOT_DEACTIVATE:g.CANNOT_ACTIVATE,(e?r:i)[f.index-1])}f=oo(t,n,r,i,a,o,s,c,l,u,d,f.phase,f.index)}}function co(e,t,n,r,i,a,o,s,c,l,u){let d=oo(e,t,n,r,i,a,o,s,c,l,u,0,0);return d===void 0?void 0:so(d,e,t,n,r,i,a,o,s,c,l,u)}const lo=Object.freeze,uo=Object.freeze([]),fo=new Map;function po(e,t){return t?lo({...e,replace:!0}):e}function mo(e,t,n,r){return!!e&&!t&&!n&&e.path===r.path}function ho(e,t){if(e.size===0)return!1;for(let n of t)if(e.has(n))return!0;return!1}function go(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 _o(e,t){t.externalSignal!==void 0&&t.cancelReason===void 0&&t.hasGuards&&e.bridgeExternalSignal(t)}function vo(e,t,n,r,i,a,o,s,c,u){To(e,a);let d=e.hasLeaveListeners()||e.hasPreCommitListeners(),f={toState:t,fromState:n,opts:r,suspendable:i!==void 0||d,forceDeactivate:u,toDeactivate:uo,toActivate:uo,intersection:``,canDeactivateFunctions:fo,canActivateFunctions:fo,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(f))throw l(new m(g.TRANSITION_CANCELLED));return f}function yo(e,t){return e.sendLeaveApprove(t),Ja(e,t)}function bo(t,n){let[r,i]=t.getLifecycleFunctions(),{toDeactivate:a,toActivate:o,intersection:s}=Aa(n.toState,n.fromState,e=>t.getMetaForState(e));n.canDeactivateFunctions=r,n.canActivateFunctions=i,n.toDeactivate=a,n.toActivate=o,n.intersection=s,n.shouldDeactivate=!!n.fromState&&!n.forceDeactivate&&a.length>0,n.shouldActivate=n.toState.name!==e.UNKNOWN_ROUTE&&o.length>0,n.hasGuards=n.shouldDeactivate&&ho(r,a)||n.shouldActivate&&ho(i,o)}function xo(t,n,r){let i,a;try{i=t.getState();let o=xe(r),s=o?.aborted===!0?o:void 0;r=ye(r);let c=A(r,`reload`),u=A(r,`force`),d=A(r,`replace`),f=A(r,`redirected`),p=A(r,`forceDeactivate`)===!0,h=i?.name===e.UNKNOWN_ROUTE&&!d,_=h||d;if(r=po(r,h),mo(i,c,u,n))return t.emitTransitionError(n,i,za),Ha;let v=vo(t,n,i,r,o,s,c,_,f,p);a=v;let y=v.externalSignal;if(y?.aborted===!0&&t.cancelNavigation(y.reason),bo(t,v),_o(t,v),!v.hasGuards&&!v.suspendable)return yo(t,v);let{canDeactivateFunctions:b,canActivateFunctions:x,toDeactivate:ee,toActivate:S,shouldDeactivate:C,shouldActivate:te,hasGuards:ne}=v,re=n;if(!ne){let e=wo(t,v);if(e!==void 0)return e}if(ne){let e=go(v),r=()=>!e.signal.aborted,a=e.signal,o=co(b,x,ee,S,C,te,n,i,a,r,()=>{if(t.sendLeaveApprove(v),t.hasLeaveListeners())return t.awaitLeaveListeners(re,i,a)});if(o!==void 0)return So(t,o,v,e);if(!r())throw l(new m(g.TRANSITION_CANCELLED))}return Ja(t,v)}catch(e){let n=Co(t,e,{nav:a,fromState:i});return Promise.reject(n)}}async function So(e,t,n,r){let i=()=>!r.signal.aborted,a=n.externalSignal,o,s=!1,c,u=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 l(new m(g.TRANSITION_CANCELLED,{reason:a.reason}));if(await Promise.race([t,u]),!i())throw l(new m(g.TRANSITION_CANCELLED));let r=Ja(e,n);return s=!0,r}catch(t){let r=i()?t:Za(t);throw c=r,Qa(e,r,n.fromState,n),r}finally{o&&r.signal.removeEventListener(`abort`,o),s||r.abort(c)}}function Co(e,t,n){let{nav:r}=n;if(r?.controller?.abort(t),r!==void 0){let i=e.isTransitioning()?t:Za(t);return Qa(e,i,n.fromState,r),i}return t}function wo(e,t){let{toState:n,fromState:r}=t;if(e.hasLeaveListeners()&&go(t),e.sendLeaveApprove(t),e.hasLeaveListeners()){let i=go(t),a;try{a=e.awaitLeaveListeners(n,r,i.signal)}catch(e){throw i.abort(e),e}return a===void 0?void 0:So(e,a,t,i)}}function To(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 l(new m(g.TRANSITION_CANCELLED,{reason:t.reason}))}const Eo=Object.freeze,Do=o(`router`,`navigateToNotFound`),Oo=Object.freeze([e.UNKNOWN_ROUTE]),ko=Object.freeze({replace:!0});function Ao(t,n,r){To(t,void 0);let i=t.getState(),a=i?q(i.name).toReversed():[];Eo(a);let o={deactivated:a,activated:Oo,intersection:``};Eo(o);let s={phase:`activating`,...i&&{from:i.name},reason:`success`,replace:!0,segments:o};Eo(s);let l={name:e.UNKNOWN_ROUTE,params:d,search:c,path:n,transition:s,context:{}};if(Eo(l),r&&i!==void 0&&!t.canDeactivateCurrent(a,l,i)){let e=Do.code(g.CANNOT_DEACTIVATE,{path:n})`a canDeactivate guard on "${i.name}" refused to leave for ${n}`;throw t.emitTransitionError(void 0,i,e),e}return t.systemCommit(l,i,ko)}function jo(e,t){return Ao(e,t,!0)}function Mo(e,t){return Ao(e,t,!1)}const No=o(`router`,`navigateToState`),Po=o(`router`,`navigateToDefault`);var Fo=class{#e;#t;#n=0;setDependencies(e){this.#e=e,this.#t=t=>{Ga(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 jo(this.#e,e)}revalidateToNotFound(e){return Mo(this.#e,e)}isPreparing(){return this.#n>0}#r(e){return e instanceof Promise&&!Ka.has(e)&&e.catch(this.#t),e}#i(e,t,n,r){let i=this.#e;if(!i.canNavigate())return i.isStarting()?Ua:Va;let a;this.#n++;try{a=i.buildNavigateState(e,t,n)}catch(e){return Promise.reject(e)}finally{this.#n--}if(!a){let t=l(new m(g.ROUTE_NOT_FOUND,{routeName:e}));return i.emitTransitionError(void 0,i.getState(),t),Promise.reject(t)}return xo(this.#e,a,r)}#a(t,n){let r=this.#e;if(!r.canNavigate())return r.isStarting()?Ua:Va;let i=t.name;if(i!==e.UNKNOWN_ROUTE&&!r.hasRoute(i)){let e=l(new m(g.ROUTE_NOT_FOUND,{routeName:i}));return r.emitTransitionError(void 0,r.getState(),e),Promise.reject(e)}let a=v(t.params,r.getQueryParams(i));if(a!==void 0){let e=No.code(g.WRONG_CHANNEL,{routeName:i})`${de(i,a,"`state.params`")}`;return r.emitTransitionError(void 0,r.getState(),e),Promise.reject(e)}let o;try{o=this.#o(t,i)}catch(e){return Promise.reject(e)}return xo(this.#e,o,n)}#o(e,t){let n={name:t,params:Se(e.params,d),search:Se(e.search,c),path:e.path,context:{...e.context},transition:i};return he(n)}#s(e){let t=this.#e;if(!t.getOptions().defaultRoute)return Promise.reject(Po.code(g.ROUTE_NOT_FOUND)`no defaultRoute is configured — pass one to createRouter, or navigate to a route by name`);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(Po.code(g.ROUTE_NOT_FOUND)`defaultRoute resolved to ${typeof n}, which cannot name a route`):Promise.reject(Po.code(g.ROUTE_NOT_FOUND)`defaultRoute resolved to an empty name`)}};const Io={},Lo=o(`router`,`start`),Ro=Object.freeze({replace:!0});function zo(e){return[e,e?.reason].some(e=>e instanceof m&&e.code===g.ROUTE_NOT_FOUND)}var Bo=class{#e;setDependencies(e){this.#e=e}async start(e){let t=this.#e;if(t.isIdle())throw l(new m(g.TRANSITION_CANCELLED));let n=t.getOptions();if(typeof e!=`string`)throw Lo.type`path must be a string, got ${typeof e}`;let r=t.getRootPath(),i=t.matchPath(e);if(!i&&!n.allowNotFound){let t=new m(g.ROUTE_NOT_FOUND,{path:e});throw l(t)}if(t.completeStart(),i!==void 0&&t.getRootPath()!==r&&(i=t.matchPath(e),!i&&!n.allowNotFound))throw l(new m(g.ROUTE_NOT_FOUND,{path:e}));if(i)try{return await t.navigateToState(i,Ro)}catch(r){if(!n.allowNotFound||!zo(r))throw r;return t.navigateToNotFound(e)}return t.navigateToNotFound(e)}};const Vo={},Ho=Object.create,Uo=Object.entries,Wo=Object.hasOwn,Go=Object.values,Ko=new WeakMap;function qo(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 f.plain`transitions["${e}"]["${t}"].when is not a function`;if(i!==void 0&&typeof i!=`function`)throw f.plain`transitions["${e}"]["${t}"].update is not a function`;return{target:n.target,when:r,update:i}}function Jo(e){let t=Ko.get(e);if(t!==void 0)return t;let n=e,r=Ho(null);for(let[e,t]of Uo(n)){let n=Ho(null);for(let[r,i]of Uo(t))i!==void 0&&(n[r]=qo(e,r,i));r[e]=n}for(let e of Go(r))for(let t of Go(e))if(t!==void 0&&r[t.target]===void 0)throw f.plain`state "${t.target}" is not declared in config.transitions`;return Ko.set(e,r),r}var Yo=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=Jo(e.transitions),this.#a[t]===void 0)throw f.plain`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 f.plain`state "${e}" is not declared in config.transitions`;if(!Wo(r,t))throw f.plain`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 X={IDLE:`IDLE`,STARTING:`STARTING`,READY:`READY`,TRANSITION_STARTED:`TRANSITION_STARTED`,LEAVE_APPROVED:`LEAVE_APPROVED`,DISPOSED:`DISPOSED`},Z={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 Xo(){return{inflight:void 0,current:void 0,previous:void 0}}const Zo=(e,t)=>t?.nav===void 0||t.nav===e.inflight,Qo=(e,t)=>t!==void 0&&t===e.inflight&&t.externalSignal?.aborted!==!0,$o=(e,t)=>{e.previous=e.current,e.current=he(t)},es=(e,t)=>{$o(e,t.toState),e.inflight=void 0},ts=(e,t)=>{$o(e,t.toState)},ns=e=>{e.previous=e.current,e.current=void 0},Q=e=>{e.current=void 0,e.previous=void 0,e.inflight=void 0},rs=(e,t)=>{e.inflight=t},is={[X.IDLE]:{[Z.START]:X.STARTING,[Z.DISPOSE]:{target:X.DISPOSED,update:Q}},[X.STARTING]:{[Z.STARTED]:X.READY,[Z.FAIL]:X.IDLE,[Z.STOP]:{target:X.IDLE,update:ns},[Z.DISPOSE]:{target:X.DISPOSED,update:Q}},[X.READY]:{[Z.NAVIGATE]:{target:X.TRANSITION_STARTED,update:rs},[Z.SYSTEM_COMMIT]:{target:X.READY,update:ts},[Z.STOP]:{target:X.IDLE,update:ns},[Z.DISPOSE]:{target:X.DISPOSED,update:Q}},[X.TRANSITION_STARTED]:{[Z.NAVIGATE]:{target:X.TRANSITION_STARTED,update:rs},[Z.LEAVE_APPROVE]:X.LEAVE_APPROVED,[Z.CANCEL]:X.READY,[Z.FAIL]:{target:X.READY,when:Zo},[Z.DISPOSE]:{target:X.DISPOSED,update:Q}},[X.LEAVE_APPROVED]:{[Z.NAVIGATE]:{target:X.TRANSITION_STARTED,update:rs},[Z.COMPLETE]:{target:X.READY,when:Qo,update:es},[Z.CANCEL]:X.READY,[Z.FAIL]:{target:X.READY,when:Zo},[Z.DISPOSE]:{target:X.DISPOSED,update:Q}},[X.DISPOSED]:{}};function as(){return new Yo({initial:X.IDLE,context:Xo(),transitions:is})}const os=o(`router`,`subscribe`),ss=o(`router`,`subscribeChanges`),cs=o(`router`,`subscribeDiagnostic`),ls=o(`router`,`subscribeLeave`),us=Object.freeze,ds=`TREE_CHANGED`;function fs(e){return e instanceof Error?e:Error(String(e))}function ps(e,t,n){return new Promise((r,i)=>{let a=()=>{let e=n.reason;i(e instanceof m&&e.code===g.TRANSITION_CANCELLED?e:l(new m(g.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(fs(t));return}let o=e.find(e=>e.status===`rejected`);if(o!==void 0){i(fs(o.reason));return}r()})})}function ms(e,t,n){return e.addEventListener(`abort`,t,{once:!0}),()=>{n(),e.removeEventListener(`abort`,t)}}var hs=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 os.type`Expected a function. For Observable pattern use observable(router) from @real-router/rx`}static validateSubscribeLeaveListener(e){if(typeof e!=`function`)throw ls.type`Expected a function`}emitRouterStart(){this.#i++;try{this.#t.emit(_.ROUTER_START)}finally{this.#i--}}emitRouterStop(){this.#t.emit(_.ROUTER_STOP)}emitTransitionStart(e,t,n){this.#i++;try{this.#t.emit(_.TRANSITION_START,e,t)}finally{this.#i--}}emitTransitionSuccess(e,t,n){this.#i++;try{this.#t.emit(_.TRANSITION_SUCCESS,e,t,n)}finally{this.#i--}}emitTransitionError(e,t,n){this.#i++;try{this.#t.emit(_.TRANSITION_ERROR,e,t,n)}finally{this.#i--}}emitTransitionCancel(e,t){this.#i++;try{this.#t.emit(_.TRANSITION_CANCEL,e,t)}finally{this.#i--}}emitTransitionLeaveApprove(e,t){this.#i++;try{this.#t.emit(_.TRANSITION_LEAVE_APPROVE,e,t)}finally{this.#i--}}isProcessing(){return this.#i>0}emitTreeChanged(e){this.#t.emit(ds,e)}isEmittingTreeChanged(){return this.#t.isDispatching(ds)}subscribeTreeChanged(e){if(this.isDisposed())throw ss.code(g.ROUTER_DISPOSED)`cannot subscribe on a disposed router — dispose() is terminal`;return this.#t.on(ds,t=>{e(t)})}emitDiagnostic(e,...t){this.#t.emit(e,...t)}subscribeDiagnostic(e,t){if(this.isDisposed())throw cs.code(g.ROUTER_DISPOSED)`cannot subscribe on a disposed router — dispose() is terminal`;return this.#t.on(e,(...e)=>{t(...e)})}treeChangedListenerCount(){return this.#t.listenerCount(ds)}sendStart(){this.#e.send(Z.START)}sendStop(){this.#e.send(Z.STOP)}sendDispose(){this.#e.send(Z.DISPOSE)}sendStarted(){this.#e.send(Z.STARTED)}sendNavigate(e){return this.#e.send(Z.NAVIGATE,e)===X.TRANSITION_STARTED}canCommitTransition(e){return this.#e.canSend(Z.COMPLETE,e)}sendComplete(e){this.#e.send(Z.COMPLETE,e)}sendLeaveApprove(e){this.#e.send(Z.LEAVE_APPROVE,e)}sendFail(e,t,n){this.#e.send(Z.FAIL,{nav:n,fromState:e,error:t})}sendCancel(e,t){this.#e.send(Z.CANCEL,{fromState:e,reason:t})}systemCommit(e){let{toState:t}=e,n=t.transition,r={name:t.name,params:Se(t.params,d),search:Se(t.search,c),path:t.path,context:{...t.context},...n!=null&&{transition:Ce(n)}};if(!this.#e.canSend(Z.SYSTEM_COMMIT))throw l(this.#o());return this.#e.send(Z.SYSTEM_COMMIT,{...e,toState:r}),r}canBeginTransition(){return this.#e.canSend(Z.NAVIGATE)}canStart(){return this.#e.canSend(Z.START)}canCancel(){return this.#e.canSend(Z.CANCEL)}isActive(){let e=this.#e.getState();return e!==X.IDLE&&e!==X.DISPOSED}isDisposed(){return this.#e.getState()===X.DISPOSED}isTransitioning(){let e=this.#e.getState();return e===X.TRANSITION_STARTED||e===X.LEAVE_APPROVED}isLeaveApproved(){return this.#e.getState()===X.LEAVE_APPROVED}isReady(){return this.#e.getState()===X.READY}isStarting(){return this.#e.getState()===X.STARTING}isIdle(){return this.#e.getState()===X.IDLE}addEventListener(e,t){return this.#a(e,`addEventListener`),this.#t.on(e,t)}subscribe(e){if(this.isDisposed())throw os.code(g.ROUTER_DISPOSED)`cannot subscribe on a disposed router — dispose() is terminal`;return this.#a(_.TRANSITION_SUCCESS,`subscribe`),this.#t.on(_.TRANSITION_SUCCESS,(t,n)=>e({route:t,previousRoute:n}))}subscribeLeave(e){if(this.isDisposed())throw ls.code(g.ROUTER_DISPOSED)`cannot subscribe on a disposed router — dispose() is terminal`;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(_.TRANSITION_START)>0||this.#t.listenerCount(_.TRANSITION_LEAVE_APPROVE)>0}awaitLeaveListeners(e,t,n){if(t===void 0)return;let r=us({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 fs(a);return}return ps(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=ms(t,()=>{this.sendCancelIfPossible(this.#e.getContext().current,t.reason)},()=>{e.detachExternalBridge=void 0})),Vo}#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(g.ROUTER_DISPOSED,{message:`[router] cannot commit a state on a disposed router — dispose() is terminal`});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(g.ROUTER_NOT_STARTED,{message:e})}#s(){let e=this.#e;e.on(X.STARTING,Z.STARTED,()=>{this.emitRouterStart()}),e.on(X.READY,Z.STOP,()=>{this.emitRouterStop()});let t=e=>{let t=e.externalSignal!==void 0&&(this.hasLeaveListeners()||this.hasPreCommitListeners())?this.bridgeExternalSignal(e):Vo;this.emitTransitionStart(e.toState,e.fromState,t)};e.on(X.READY,Z.NAVIGATE,t),e.on(X.TRANSITION_STARTED,Z.NAVIGATE,t),e.on(X.LEAVE_APPROVED,Z.NAVIGATE,t),e.on(X.TRANSITION_STARTED,Z.LEAVE_APPROVE,e=>{this.emitTransitionLeaveApprove(e.toState,e.fromState)}),e.on(X.LEAVE_APPROVED,Z.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??l(new m(g.TRANSITION_CANCELLED));r.cancelReason=i,r.controller?.abort(i),r.detachExternalBridge?.(),this.emitTransitionCancel(r.toState,t)};e.on(X.TRANSITION_STARTED,Z.CANCEL,n),e.on(X.LEAVE_APPROVED,Z.CANCEL,n),e.on(X.READY,Z.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(X.LEAVE_APPROVED,Z.FAIL,r),e.on(X.TRANSITION_STARTED,Z.FAIL,r),e.on(X.STARTING,Z.FAIL,e=>{this.emitTransitionError(void 0,e.fromState,e.error)})}};const gs=Object.freeze;function _s(e){return ys(e)&&!Object.isFrozen(e)&&e!==R.defaultParams&&e!==R.defaultSearch}function vs(e){let{defaultParams:t,defaultSearch:n}=e;return gs({..._s(t)&&{defaultParams:new WeakRef(t)},..._s(n)&&{defaultSearch:new WeakRef(n)}})}function ys(e){return typeof e==`object`&&!!e}function bs(e){let t={...e};return e.limits!=null&&(t.limits=k(`limits`,e.limits)),ys(e.defaultParams)&&(t.defaultParams=k(`defaultParams`,e.defaultParams)),ys(e.defaultSearch)&&(t.defaultSearch=k(`defaultSearch`,e.defaultSearch)),t}const xs=Object.keys,Ss=Object.freeze;function Cs(e={}){let t={...h,...e};return Ss({maxDependencies:Number(t.maxDependencies),maxPlugins:Number(t.maxPlugins),maxListeners:Number(t.maxListeners),warnListeners:Number(t.warnListeners),maxLifecycleHandlers:Number(t.maxLifecycleHandlers)})}function ws(e){return e==null?void 0:Ss(xs(e))}const Ts=o(`router`),Es=Object.freeze,Ds=Object.freeze({});function Os(e,t){let n;try{n=t[e]}catch(t){throw Ts.type({cause:t})`Invalid "queryParams.${e}": reading it threw.`}if(n!=null){if(typeof n==`string`)return n;try{return String(n)}catch(t){throw Ts.type({cause:t})`Invalid "queryParams.${e}": its value cannot be converted to a string.`}}}function ks(e){if(e==null)return`default`;try{return String(e)}catch(e){throw Ts.type({cause:e})`Invalid "urlParamsEncoding": coercing it threw.`}}function As(e){if(!e)return Ds;let t=Os(`arrayFormat`,e),n=Os(`booleanFormat`,e),r=Os(`nullFormat`,e),i=Os(`numberFormat`,e);return Es({...t!==void 0&&{arrayFormat:t},...n!==void 0&&{booleanFormat:n},...r!==void 0&&{nullFormat:r},...i!==void 0&&{numberFormat:i}})}function js(e){return Es({strictTrailingSlash:e.trailingSlash===`strict`,caseSensitive:e.caseSensitive,strictQueryParams:e.queryParamsMode===`strict`,urlParamsEncoding:ks(e.urlParamsEncoding),queryParams:As(e.queryParams)})}const Ms=new m(g.ROUTER_ALREADY_STARTED);Object.freeze(Ms);const Ns=o(`router`),Ps={maxListeners:0,warnListeners:0};var Fs=class{#e=new Map;#t=new Set;#n=null;#r=Ps;#i;#a;constructor(e){e?.limits&&(this.#r=e.limits),this.#i=e?.onListenerError??null,this.#a=e?.onListenerWarn??null}setLimits(e){this.#r=e}on(e,t){let n=this.#e.get(e),r=n?.size??0;if(n?.has(t))throw Ns.plain`Duplicate listener for "${e}"`;let{maxListeners:i,warnListeners:a}=this.#r;if(i!==0&&r>=i)throw Ns.plain`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 Is=Object.freeze({log:0,warn:1,error:2}),Ls=Object.freeze({all:0,"warn-error":1,"error-only":2,none:3}),Rs=Object.hasOwn;var zs=class{#e={level:`all`,callback:void 0,callbackIgnoresLevel:!1};#t=0;#n=!1;constructor(e){e&&this.configure(e)}configure(e){let t=hr(e),n=t.level;n!==void 0&&(this.#e.level=n,this.#t=Ls[n]),Rs(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=Is[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(`[router] Error in async callback:`,e)})}catch(e){this.#o(`[router] Error in callback:`,e)}finally{this.#n=!1}}}#o(e,t){typeof console<`u`&&typeof console.error==`function`&&console.error(e,t)}};function Bs(e){let t=t=>vr(e.dependenciesStore,t),n=Vs(e.router,t),r=qs(e),i=()=>T(e.router).validator;Hs(e),Us(e,i),Ws(e,n,i),Gs(e,r,i,t),Ks(e,n,i),Js(e,r,t),Ys(e),Xs(e,r)}function Vs(e,t){return n=>n(e,t)}function Hs(e){e.eventBus.setLimits({maxListeners:e.limits.maxListeners,warnListeners:e.limits.warnListeners})}function Us(e,t){e.eventBus.setValidatorAccessor(t)}function Ws(e,t,n){let r={logger:T(e.router).logger,compileFactory:t,getValidator:n};e.routeLifecycle.setDependencies(r)}function Gs(e,t,n,r){let i={logger:T(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:r};e.routes.setDependencies(i),e.routes.setLifecycleNamespace(e.routeLifecycle)}function Ks(e,t,n){let r={logger:T(e.router).logger,addEventListener:(t,n)=>e.eventBus.addEventListener(t,n),canNavigate:()=>e.eventBus.canBeginTransition(),compileFactory:t,getValidator:n,emitDiagnostic:(t,...n)=>{e.eventBus.emitDiagnostic(t,...n)}};e.plugins.setDependencies(r)}function qs(e){let t=T(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),printedQueryNames:t=>e.routes.getPrintedQueryParams(t),pathNames:t=>e.routes.hasRoute(t)?e.routes.getUrlParams(t):void 0,admitsUndeclaredQuery:()=>Tr(e.options.get().queryParamsMode)===`loose`,get reportDroppedQueryKey(){return t.validator?i:void 0},get reportUndeclaredParamKey(){return t.validator?r:void 0}}}function Js(e,t,n){let r=e=>n(e),i={logger:T(e.router).logger,getOptions:()=>e.options.get(),hasRoute:t=>e.routes.hasRoute(t),getQueryParams:t=>e.routes.getQueryParams(t),getMetaForState:t=>e.routes.getMetaForState(t),getState:()=>e.state.get(),buildNavigateState:(n,r,i)=>{T(e.router).validator?.routes.validateStateBuilderArgs(n,r,`navigate`);let a=z(t,n,r,i,{diagnoseUndeclared:!0});if(e.routes.getMetaForState(a.name)!==void 0)return y(`navigate`,a.name,a.path,t.queryNames(a.name)),V(a,B(a,t))},resolveDefault:()=>{let t=e.options.get(),n=T(e.router),i=Ar(t.defaultRoute,r),a=Ar(t.defaultParams,r),o=Ar(t.defaultSearch,r);return typeof t.defaultRoute==`function`&&n.validator?.options.validateResolvedDefaultRoute(i),{route:i,params:a,search:o}},startTransition:t=>e.eventBus.sendNavigate(t),systemCommit:(t,n,r)=>e.eventBus.systemCommit({toState:t,fromState:n,opts:r}),cancelNavigation:t=>{e.eventBus.sendCancelIfPossible(e.state.get(),t)},bridgeExternalSignal:t=>{e.eventBus.bridgeExternalSignal(t)},canCommitTransition:t=>e.eventBus.canCommitTransition(t)?Io:void 0,sendTransitionDone:t=>{e.eventBus.sendComplete(t)},sendTransitionFail:(t,n,r)=>{e.eventBus.sendFail(t,n,r)},emitTransitionError:(t,n,r)=>{e.eventBus.emitTransitionError(t,n,r)},sendLeaveApprove:t=>{e.eventBus.sendLeaveApprove(t)},canNavigate:()=>e.eventBus.canBeginTransition(),isStarting:()=>e.eventBus.isStarting(),getLifecycleFunctions:()=>e.routeLifecycle.getFunctions(),canDeactivateCurrent:(t,n,r)=>e.routeLifecycle.canNavigateTo(t,[],n,r),isTransitioning:()=>e.eventBus.isTransitioning(),clearCanDeactivate:(t,n)=>{e.routeLifecycle.clearCanDeactivate(t,`external`)},hasLeaveListeners:()=>e.eventBus.hasLeaveListeners(),hasPreCommitListeners:()=>e.eventBus.hasPreCommitListeners(),awaitLeaveListeners:(t,n,r)=>e.eventBus.awaitLeaveListeners(t,n,r)};e.navigation.setDependencies(i)}function Ys(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()),getRootPath:()=>e.routes.getStore().rootPath,completeStart:()=>{e.eventBus.sendStarted()},isIdle:()=>e.eventBus.isIdle()})}function Xs(e,t){e.state.setDependencies({port:()=>t,getUrlParams:t=>e.routes.getUrlParams(t)})}const Zs=o(`router`,`navigateToNotFound`),Qs=o(`router`,`usePlugin`),$s=o(`router`,`start`),ec=o(`router`);var tc=class e{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;constructor(t=[],n={},r={}){let{logger:i,...o}=n,s=new zs(i?hr(i):void 0);this.#f=e=>{Ga(e)||s.error(`router.start`,`Unexpected start error`,e)},kr.validateOptionsIsObject(n),ir(r);let c=cr(t),u=bs(o);this.#r=vs(o),this.#e=new kr(u),this.#t=Cs(u.limits),this.#n=ws(u.limits),this.#i=xr(r,this.#t),this.#a=new Ir,this.#o=new Ia(c,js(this.#e.get()),s),this.#s=new Zr,this.#c=new Wr,this.#l=new Fo,this.#u=new Bo;let f=as();this.#a.setContext(f.getContext());let p=new Fs({onListenerError:(e,t)=>{s.error(`router`,`Error in listener for ${e}:`,t)},onListenerWarn:(e,t)=>{s.warn(`router.addEventListener`,`Event "${e}" has ${t} listeners — possible memory leak`)}});this.#d=new hs({routerFSM:f,emitter:p});let h=new Map,_=new Map,v=e=>{let t=e.params,n=e.search;return{name:e.name,params:t==null?t:D(t),search:n==null?n:D(n)}},y=x(E.forwardState,(e,t,n)=>this.#o.forwardState(e,t,n),h,v,nc),b=((e,t,n)=>{let r=y(e,t,n),i=r.name,a=r.params;fe(`forwardState`,i,a,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 o=r.search,s=o==null;return{name:i,params:D(a??d),search:s?o:D(o)}}),ee=x(E.forwardState,(e,t,n)=>({name:e,params:t,search:n}),h,v,nc);this.#p=(e,t,n)=>{let r=ee(e,t,n),i=r.params,a=r.search;return this.#o.buildPathFromIntent(r.name,i??d,a)};let C={logger:s,makeState:(e,t,n,r)=>{le(C,`makeState`,e,t);let i=j(t);return C.validator?.state.validateMakeStateArgs(e,i,r),C.validator?.navigation.validateSearch(n,`makeState`),this.#a.makeState(e,i,n,r)},getMetaForState:e=>this.#o.getMetaForState(e),getDeclaredQueryNames:e=>this.#o.getQueryParams(e),forwardState:b,buildStateResolved:(e,t)=>this.#o.buildStateResolved(e,t),buildPathResolved:(e,t,n)=>{let r=j(t);return C.validator?.navigation.validateParamsShape(t,`buildPathResolved`),C.validator?.navigation.validateSearch(n,`buildPathResolved`),S(C.checks,w[`buildPathResolved:params`],r),this.#o.buildPathFromIntent(e,r??d,n)},port:()=>this.#o.getPort(),matchPath:(e,t)=>(C.validator?.routes.validateMatchPathArgs(e),this.#o.matchPath(e,t??this.#e.get())),getOptions:()=>this.#e.get(),getAdoptedOrigins:()=>this.#r,addEventListener:(e,t)=>(ie(C.isDisposed),Zn(e),Qn(t),C.validator?.eventBus.validateListenerArgs(e,t),this.#d.addEventListener(e,t)),subscribeDiagnostic:(e,t)=>this.#d.subscribeDiagnostic(e,t),treeChanged:{emit:e=>{this.#d.emitTreeChanged(e)},subscribe:e=>this.#d.subscribeTreeChanged(e),listenerCount:()=>this.#d.treeChangedListenerCount(),isEmitting:()=>this.#d.isEmittingTreeChanged()},emitTransitionError:e=>{this.#d.emitTransitionError(void 0,this.#a.get(),e)},navigateToNotFound:e=>{if(e!==void 0&&typeof e!=`string`)throw Zs.type`path must be a string, got ${typeof e}`;return this.#l.navigateToNotFound(e)},revalidateToNotFound:e=>this.#l.revalidateToNotFound(e),start:re(E.start,e=>this.#u.start(e),h),navigateToState:(t,n)=>(ie(C.isDisposed),C.validator?.navigation.validateNavigateToStateArgs(t),n!==void 0&&C.validator?.navigation.validateNavigationOptions(n,`navigateToState`),this.#g(),e.#m(this.#l.navigateToState(t,n??a))),interceptors:h,checks:_,setRootPath:e=>{C.validator?.routes.validateSetRootPathArgs(e),this.#o.setRootPath(e)},getRootPath:()=>this.#o.getStore().rootPath,getTree:()=>this.#o.getStore().tree,isDisposed:()=>this.#d.isDisposed(),validator:null,dependenciesGetStore:()=>this.#i,getCloneState:()=>({options:{...this.#e.get()},dependencies:br(this.#i),pluginFactories:this.#c.getAll(),loggerConfig:s.getConfig(),limits:this.#t,limitKeys:this.#n}),routeGetStore:()=>this.#o.getStore(),getStateName:()=>this.#a.get()?.name,isTransitioning:()=>this.#d.isTransitioning(),systemCommit:(e,t,n)=>{let r=e.name;if(r!==`@@router/UNKNOWN_ROUTE`&&!this.#o.hasRoute(r))throw l(new m(g.ROUTE_NOT_FOUND,{routeName:r}));return this.#d.systemCommit({toState:e,fromState:t,opts:n})},routerExtensions:[],contextClaimRecords:new Map};se(this,C),Bs({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=T(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(`router.isActiveRoute`,`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=T(this);r.validator?.routes.validateBuildPathArgs(e,t),r.validator?.navigation.validateParamsShape(t,`buildPath`),r.validator?.navigation.validateSearch(n,`buildPath`);let i=j(t);return S(r.checks,w[`buildPath:params`],i),this.#p(e,i??d,n)}getState(){return this.#a.get()}getPreviousState(){return this.#a.getPrevious()}areStatesEqual(e,t,n=!0){return T(this).validator?.state.validateAreStatesEqualArgs(e,t,n),this.#a.areStatesEqual(e,t,n)}shouldUpdateNode(e){return T(this).validator?.routes.validateShouldUpdateNodeArgs(e),Ia.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=T(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(),e.checks.clear(),this.#o.clearRoutes(),this.#s.clearAll(),yr(this.#i),this.#v()}canNavigateTo(e,t,n){let r=T(this);S(r.checks,w[`canNavigateTo:entry`],e,t,n);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(S(r.checks,w[`canNavigateTo:params`],i),!this.#o.hasRoute(e)||v(t,this.#o.getQueryParams(e))!==void 0)return!1;let a=this.#o.getPort(),o;try{o=z(a,e,i??d,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 s;try{s=V(o,B(o,a))}catch{return!1}let c=this.#a.get(),{toDeactivate:l,toActivate:u}=Aa(s,c,e=>this.#o.getMetaForState(e));return this.#s.canNavigateTo(l,u,s,c)}usePlugin(...e){if(this.#d.isDisposed())throw Qs.code(g.ROUTER_DISPOSED)`cannot install a plugin on a disposed router — dispose() is terminal`;let t=e.filter(Boolean);if(t.length===0)return()=>{};let n=T(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 hs.validateSubscribeListener(e),this.#d.subscribe(e)}subscribeLeave(e){return hs.validateSubscribeLeaveListener(e),this.#d.subscribeLeave(e)}isLeaveApproved(){return this.#d.isLeaveApproved()}navigate(t,n,r,i){this.#g();let o=T(this),s,c,l,u;typeof t==`object`&&t?(s=t.name,c=t.params,l=t.search,u=n??a):(s=t,c=n,l=r,u=i??a),le(o,`navigate`,s,c),S(o.checks,w[`navigate:entry`],s,c,l,u);let f;try{f=j(c)}catch(e){return Promise.reject(e)}return S(o.checks,w[`navigate:params`],f),e.#m(this.#l.navigate(s,f??d,l,u))}navigateToDefault(t){this.#g();let n=T(this);n.validator?.navigation.validateNavigateToDefaultArgs(t);let r=t??a;return n.validator?.navigation.validateNavigationOptions(r,`navigateToDefault`),e.#m(this.#l.navigateToDefault(r))}navigateToNotFound(e){if(this.#g(),!this.#d.isActive())throw l(new m(g.ROUTER_NOT_STARTED));if(e!==void 0&&typeof e!=`string`)throw Zs.type`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 Zs.code(g.ROUTER_NOT_STARTED)`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(Ms);T(this).validator?.navigation.validateStartArgs(e),this.#d.sendStart();let t;try{let n=T(this).start(e);t=typeof n?.then==`function`?n:Promise.reject($s.type`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 ec.code(g.REENTRANT_NAVIGATION)`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 ec.code(g.REENTRANT_NAVIGATION)`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 ec.code(g.REENTRANT_NAVIGATION)`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=$,this.navigateToDefault=$,this.navigateToNotFound=$,this.start=$,this.stop=$,this.usePlugin=$,this.subscribe=$,this.subscribeLeave=$,this.canNavigateTo=$}};function $(){throw ec.code(g.ROUTER_DISPOSED)`this router is disposed — dispose() is terminal and swapped every method to refuse`}function nc(e,t,n){return[e,j(t),j(n)]}export{_r as A,gi as C,yr as D,z as E,$n as F,cr as I,sr as L,or as M,er as N,vr as O,nr as P,rn as R,ui as S,B as T,Fi as _,Qi as a,ii as b,Zi as c,Yi as d,ea as f,ra as g,Pi as h,ia as i,tr as j,br as k,Ji as l,oa as m,Aa as n,Xi as o,ta as p,G as r,Ki as s,tc as t,qi as u,Ci as v,V as w,di as x,xi as y,an as z};
2
- //# sourceMappingURL=Router-BZEAYHJu.mjs.map