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