@real-router/core 0.126.7 → 0.126.9

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.
@@ -0,0 +1,2 @@
1
+ import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,t as m,u as h,v as g,y as _}from"./internals-CcqRqpm9.mjs";import{a as v,c as y,f as b,g as x,h as S,i as ee,l as C,m as w,n as te,o as ne,p as T,r as re,s as ie,t as ae,u as E}from"./ingest-XMtKw1RB.mjs";import{n as D,t as O}from"./RouterError-iSQqAez7.mjs";const oe=Object.entries,se=Object.hasOwn;function ce(e,t,n){if(e===void 0||n.length===0)return e;let r,i=!1;for(let[a,o]of oe(e)){if(se(t,a)&&t[a]!==void 0&&n.includes(a)){i=!0;continue}r??={},v(r,a,o)}return r===void 0?i?void 0:e:r}function le(e,t,n){for(let[r,i]of oe(e))a(n,r,i,t(r),"this route's `defaultParams`","Move it to `defaultSearch`")}const ue=Object.entries,de=Object.freeze;function fe(e,t,n){let r,i=!1;for(let[a,o]of ue(e))t.includes(a)?(r??={},v(r,a,o)):(i=!0,n?.(a));return i?de(r??E):e}function pe(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=pe(t,o);o.children.push(e)}return o}function me(e,t,n){let r=pe({name:e,path:t},null);for(let e of n){let t=pe(e,r);r.children.push(t)}return r}const he=/[^\w!$'()*+,.:;|~-]/gu,ge=/[^\w!$'()*+,.:;|~-]/u,_e=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,ve=e=>t=>{try{return e(t)}catch{return e(t.replaceAll(_e,`�`))}},ye=ve(e=>e.replaceAll(he,e=>encodeURIComponent(e))),be={default:e=>ge.test(e)?ye(e):e,uri:ve(encodeURI),uriComponent:ve(encodeURIComponent),none:e=>e},xe={default:decodeURIComponent,uri:decodeURI,uriComponent:decodeURIComponent,none:e=>e},Se=(e,t)=>{let n=be[t],r=String(e).split(`/`),i=n(r[0]);for(let e=1;e<r.length;e++)i+=`/`+n(r[e]);return i},Ce=Object.freeze(Object.create(null));function we(){return{staticChildren:Ce,hasChildren:!1,paramChild:void 0,splatChild:void 0,route:void 0,slashChildRoute:void 0}}function k(e){return e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e}function Te(e,t){return e===``?t:t===``?e:e.endsWith(`/`)&&t.startsWith(`/`)?e+t.slice(1):e+t}function Ee(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function De(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(!Ee(n)||!Ee(r))return!1;t+=3}else t++;return!0}const Oe=Object.freeze([]),ke=Object.freeze(new Set),Ae=Object.freeze([]),je=Object.freeze({}),Me=Object.freeze({}),Ne=Object.freeze({});function Pe(e,t){let n=e.kind===`splat`;return{paramName:e.name,encoder:n?e=>Se(e,t):be[t]}}function Fe(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:Ae};let a=[],s=[],c=``,u=o(e),d=u.length-1;for(let[e,t]of u.entries()){let r=l(t);if(`error`in r||r.kind!==`splat`||e===d){if(e>0&&(c+=`/`),`error`in r||r.kind===`static`){c+=t;continue}a.push(c),c=``,s.push(Pe(r,n))}}return a.push(c),{buildStaticParts:a,buildParamSlots:s}}function Ie(e,t,n){throw Error(`[SegmentMatcher.registerTree] Parameter name conflict at the same path position: '${n}${e}' and '${n}${t}'. One position binds one name across every route that shares it. Rename one — e.g. use '${n}${e}' in both.`)}function Le(){throw Error(`[SegmentMatcher.registerTree] Empty parameter name: a ':'/'*' marker must be followed by a name (e.g. ':id', '*rest'), and a segment cannot end in a bare '?'.`)}function Re(e){throw Error(`[SegmentMatcher.registerTree] Fused parameter marker in segment "${e}": a ':'/'*' marker must begin a segment — write 'a/:b', not 'a:b'.`)}function ze(e){throw Error(`[SegmentMatcher.registerTree] Trailing parameter marker in segment "${e}": a param name cannot end in a bare ':' or '*'. Drop the stray marker.`)}function Be(e){throw Error(`[SegmentMatcher.registerTree] Optional params are not supported: "${e}" — declare two sibling routes instead, one with the segment and one without.`)}function Ve(e){throw Error(`[SegmentMatcher.registerTree] Regex constraints are not supported: '<' and '>' are reserved in path segments ("${e}"). Match it as a plain string and validate the value in a canActivate guard.`)}function He(e){throw Error(`[SegmentMatcher.registerTree] Non-ASCII static segment "${e}": match compares static keys raw and rejects non-ASCII input, so this route can never match. Percent-encode it (e.g. "/caf%C3%A9") or use a param.`)}function Ue(e,t){switch(e){case`name-less`:return Le();case`trailing-marker`:return ze(t);case`fused-marker`:return Re(t);case`optional-removed`:return Be(t);case`constraint-removed`:return Ve(t)}}function We(e,t){let n=new Set,r=``;for(let e of t){if(n.has(e)){r=e;break}n.add(e)}throw Error(`[SegmentMatcher.registerTree] Duplicate parameter name '${r}' in route "${e}": a name must be unique within a route — the second position overwrites the first. Rename one.`)}function Ge(e,t){throw Error(`[SegmentMatcher.registerTree] Invalid query-param declaration "${t}" in route "${e}": a query-param name cannot contain '<' or '>'. Rename it.`)}function Ke(e){throw Error(`[SegmentMatcher.registerTree] Double slashes are not allowed in path "${e}": the route would build a URL its own matcher refuses. Remove the empty segment.`)}function qe(e,t){throw Error(`[SegmentMatcher.registerTree] Duplicate route path: routes "${e}" and "${t}" resolve to the same URL — the later would shadow the earlier. Give them distinct paths.`)}function Je(e,t){throw Error(`[SegmentMatcher.registerTree] Index route "${e}" (path "/") under the splat parent "${t}" is unreachable: the wildcard match never reaches the index node. Give the index a distinct path, or make the parent static.`)}function Ye(e,t){return e.paramChild?e.paramChild.name!==t&&Ie(e.paramChild.name,t,`:`):e.paramChild={node:we(),name:t},e.paramChild.node}function Xe(e,t){return e.splatChild?e.splatChild.name!==t&&Ie(e.splatChild.name,t,`*`):e.splatChild={node:we(),name:t},e.splatChild.node}const Ze=Object.create;function Qe(e,t){e.route!==void 0&&e.route!==t&&qe(e.route.name,t.name),e.route=t}function $e(e){for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>=128)return!0;return!1}function et(e,t,n){let r=k(n);if(r===`/`){Qe(e.root,t);return}tt(e,e.root,r,1,t)}function tt(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=at(e,t,s),r=o+1}Qe(t,i)}function nt(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(`*`)&&Je(t.name,n);let a=rt(e,n);a.slashChildRoute=t}function rt(e,t){return it(e,e.root,t)}function it(e,t,n){let r=k(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=at(e,i,s),a=n+1}return i}function at(e,t,n){let r=l(n);if(`error`in r&&Le(),r.kind===`splat`){let e=Xe(t,r.name);return t.hasChildren=!0,e}if(r.kind===`param`){let e=Ye(t,r.name);return t.hasChildren=!0,e}$e(n)&&He(n);let i=e.options.caseSensitive?n:n.toLowerCase();return i in t.staticChildren||(t.staticChildren===Ce&&(t.staticChildren=Ze(null)),t.staticChildren[i]=we(),t.hasChildren=!0),t.staticChildren[i]}const ot=Object.freeze,st=Object.hasOwn;function ct(e){let t=o(e);for(let[n,r]of t.entries())r===``&&n>0&&n<t.length-1&&Ke(e)}function lt(e){for(let t of o(e)){let e=l(t);`error`in e&&Ue(e.error,t)}}function ut(e,t,n,i,a){let o=t.fullName===``;o||i.push(t);let s=t.absolute,c=t.paramMeta===r?t.path:t.paramMeta.pathPattern,l=s&&c.startsWith(`~`)?c.slice(1):c,u=s?l:c;ct(t.path),lt(u);let d=u,f=s?d:Te(n,d),p=o?a:dt(e,t,f,s?``:n,i,a);for(let n of t.children.values())ut(e,n,f,i,p);o||i.pop()}function dt(e,t,n,r,i,a){let o=gt(n,r),s=ot([...i]),c=ft(s),l=k(n),u=_t(e.rootQueryParams,i),{buildStaticParts:d,buildParamSlots:f}=Fe(o?k(r):l,o?i.slice(0,-1):i,e.options.urlParamsEncoding,e.rootUrlParams),p=f.map(e=>e.paramName),m=p.length===0?ke:new Set(p);m.size!==p.length&&We(t.fullName,p),vt(t.fullName,u);let h={name:t.fullName,parent:a,matchSegments:s,meta:c,declaredQueryParams:u,declaredQueryParamsSet:u.length===0?ke: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=ot({segments:h.matchSegments,params:je,search:Me,meta:h.meta})),e.routesByName.set(t.fullName,h),o?mt(e,h,r):ht(e,h,n,l,t),h}function ft(e){let t;for(let n of e)pt(n.paramTypeMap)&&(t??=re(),t[n.fullName]=n.paramTypeMap);return t===void 0?Ne:ot(ae(ee(t)))}function pt(e){for(let t in e)if(st(e,t))return!0;return!1}function mt(e,t,n){nt(e,t,n);let r=k(n),i=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.has(i)&&e.staticCache.set(i,t)}function ht(e,t,n,r,i){if(et(e,t,n),i.paramMeta.urlParams.length===0){let n=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.set(n,t)}}function gt(e,t){return k(e)===k(t)}function _t(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?Oe:n}function vt(e,t){for(let n of t)i.test(n)&&Ge(e,n)}const yt=Symbol.for(`real-router.searchParams.configFault`),bt=Object.hasOwn,xt=Object.keys,St=Object.getOwnPropertyDescriptor;function Ct(e){try{return St(e,yt)?.configurable===!1}catch{return!1}}function wt(e){return typeof e==`string`?e:typeof e==`object`?JSON.stringify(e):String(e)}const Tt=Object.freeze({});function Et(e,t){return e===`strict`?t?`always`:`never`:e}var Dt=class{get options(){return this.#e}#e;#t=we();#n=new Map;#r=new Map;#i={cleanPath:``,normalized:``,queryString:void 0};#a=[];#o=``;#s;#c;constructor(e){let t=e.urlParamsEncoding??`default`,n=typeof t==`string`?t:String(t),r=bt(be,n)?n:`default`;this.#e={caseSensitive:e.caseSensitive??!0,strictTrailingSlash:e.strictTrailingSlash??!1,strictQueryParams:e.strictQueryParams??!1,urlParamsEncoding:r,parseQueryString:e.parseQueryString,buildQueryString:e.buildQueryString},this.#s=this.#e.caseSensitive,this.#c=this.#e.urlParamsEncoding===`none`?null:xe[this.#e.urlParamsEncoding]}registerTree(e){this.#a=e.paramMeta.queryParams,ut({root:this.#t,options:this.#e,routesByName:this.#n,staticCache:this.#r,rootQueryParams:this.#a,rootUrlParams:e.paramMeta.urlParams},e,``,[],null)}match(e){if(!this.#f(e))return;let{cleanPath:t,normalized:n,queryString:r}=this.#i,i=this.#s?n:n.toLowerCase(),a=this.#r.get(i);if(a)return this.#e.strictTrailingSlash&&!this.#g(t,a)?void 0:r===void 0&&a.cachedResult?a.cachedResult:this.#m(a,{},r);let o={},s=this.#_(n,o);if(s&&(!this.#e.strictTrailingSlash||this.#g(t,s))&&this.#b(o))return this.#m(s,o,r)}buildPath(e,t,n,r){let i=this.#n.get(e);if(!i)throw Error(`[SegmentMatcher.buildPath] '${e}' is not defined`);let a=this.#l(i,t),o=this.#u(a,Et(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&&bt(t,a.paramName)?t[a.paramName]:void 0;if(r==null)throw Error(`[SegmentMatcher.buildPath] Missing required param '${a.paramName}'`);if(r===``)throw Error(`[SegmentMatcher.buildPath] Missing required param '${a.paramName}' (empty string)`);let o=a.encoder(wt(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)bt(t,n)&&(v(r,n,t[n]),i=!0);if(n===`loose`)for(let n of xt(t))e.declaredQueryParamsSet.has(n)||e.buildParamNamesSet.has(n)||(v(r,n,t[n]),i=!0);return i?this.#e.buildQueryString(r):``}#f(e){if(e===``&&(e=`/`),e.codePointAt(0)!==47)return!1;let t=this.#p(e);if(t===-2)return!1;t===-3&&(e=this.#o);let n=t>=0?e.slice(0,t):e,r=t>=0?e.slice(t+1):void 0;if(r!==void 0){let e=r.indexOf(`#`);e!==-1&&(r=r.slice(0,e))}let i=k(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=Tt;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(Ct(e))throw e;return}if(this.#e.strictQueryParams){let t=e.declaredQueryParamsSet;for(let e of xt(n))if(!t.has(e))return}return n}#g(e,t){return(e.length>1&&e.endsWith(`/`))===t.hasTrailingSlash}#_(e,t){return e.length===1?this.#t.slashChildRoute??this.#t.route:this.#v(this.#t,e,1,t)}#v(e,t,n,r){let i=e,a=t.length,o=this.#s;for(;n<=a;){let e=t.indexOf(`/`,n),s=e===-1?a:e,c=t.slice(n,s),l=o?c:c.toLowerCase(),u;if(l in i.staticChildren){let e=i.staticChildren[l];if(i.splatChild!==void 0){let a={},o=this.#v(e,t,s+1,a);return o===void 0?this.#y(i.splatChild,t,n,r):(te(r,a),o)}u=e}else if(i.paramChild){let e=i.paramChild;if(i.splatChild!==void 0){let a={[e.name]:c},o=this.#v(e.node,t,s+1,a);return o===void 0?this.#y(i.splatChild,t,n,r):(te(r,a),o)}u=e.node,v(r,e.name,c)}else if(i.splatChild)return this.#y(i.splatChild,t,n,r);else return;i=u,n=s+1}return i.slashChildRoute??i.route}#y(e,t,n,r){let i=e.node;if(!i.hasChildren)return v(r,e.name,t.slice(n)),i.route;let a={},o=this.#v(i,t,n,a);return o?(te(r,a),o):(v(r,e.name,t.slice(n)),i.route)}#b(e){let t=this.#c;if(!t)return!0;for(let n of xt(e)){let r=e[n];if(r.includes(`%`)){if(!De(r))return!1;try{e[n]=t(r)}catch{return!1}}}return!0}};const A=Object.freeze,Ot=Object.freeze(new Map),kt=Object.freeze([]);function At(e){return e.parent?.name?`${e.parent.fullName}.${e.name}`:e.name}function jt(e){let t=new Map;for(let n of e)t.set(n.name,n);return t}function Mt(e,t){let n=[],r=[];for(let i of e){let e=Nt(i,t);n.push(e),e.absolute||r.push(e)}return{childrenMap:jt(n),nonAbsoluteChildren:r}}function Nt(e,t){let n=f(e.path),i=n.urlParams.length===0&&n.queryParams.length===0&&n.pathPattern===e.path?r:n,a=i.paramTypeMap,o={name:e.name,path:e.path,absolute:e.absolute,parent:t,children:void 0,paramMeta:i,nonAbsoluteChildren:void 0,fullName:``,paramTypeMap:a};if(o.fullName=At(o),e.children.length===0)o.children=Ot,o.nonAbsoluteChildren=kt;else{let{childrenMap:t,nonAbsoluteChildren:n}=Mt(e.children,o);o.children=t,o.nonAbsoluteChildren=n,A(o.nonAbsoluteChildren),A(o.children)}return A(a),A(i.urlParams),A(i.queryParams),A(i),A(o),o}function Pt(e){return Nt(e,null)}function Ft(e,t,n){return Pt(me(e,t,n))}function It(e){let t=e.absolute?`~${e.path}`:e.path,n={name:e.name,path:t};return e.children.size>0&&(n.children=Array.from(e.children.values(),It)),n}function Lt(e){return Array.from(e.children.values(),It)}const Rt=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)},zt=(e,t)=>{if(e===void 0)return t.boolean.decodeUndefined();let n=t.boolean.decodeRaw(e);if(n!==null)return n;let r=Rt(e),i=t.number.decode(r);return i===null?t.boolean.decodeValue(r):i},Bt=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,Vt=e=>{try{return encodeURIComponent(e)}catch(t){if(!(t instanceof URIError))throw t;return encodeURIComponent(String(e).replaceAll(Bt,`�`))}},Ht=e=>{let t=typeof e;if(t!==`string`&&t!==`number`&&t!==`boolean`)throw TypeError(`[router] Invalid query value: an array element must be a string, number, or boolean — received ${t}`);return Vt(e)},Ut=(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}=${Ht(e)}`);return a.join(`&`)},Wt={none:{encodeArray:(e,t,n)=>Ut(e,t,``,n)},brackets:{encodeArray:(e,t,n)=>Ut(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}=${Ht(a)}`)}return r.join(`&`)},indexed:!0},comma:{encodeArray:(e,t)=>{let n=[];for(let e of t)e!==null&&n.push(Ht(e));return n.length===0?``:`${e}=${n.join(`,`)}`},decodeValue:e=>e.includes(`,`)?e.split(`,`):null}},Gt={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}},Kt={default:{encode:e=>e},hidden:{encode:()=>``}},qt={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}},Jt=Object.defineProperty,Yt=Object.keys,Xt=Object.hasOwn,Zt=Symbol.for(`real-router.searchParams.configFault`),Qt=(e,t,n)=>{let r=typeof t==`string`?t:String(t);if(!Xt(e,r)){let t=TypeError(`[router.constructor] Invalid "queryParams.${n}": "${r}" — expected ${Yt(e).map(e=>`"${e}"`).join(` | `)}`);throw Jt(t,Zt,{value:!0}),t}return e[r]},$t=(e,t,n,r)=>({boolean:Qt(Gt,t,`booleanFormat`),null:Qt(Kt,n,`nullFormat`),number:Qt(qt,r,`numberFormat`),array:Qt(Wt,e,`arrayFormat`)}),en=Object.freeze({boolean:Gt.auto,null:Kt.default,number:qt.auto,array:Wt.none}),j=Object.freeze({arrayFormat:`none`,booleanFormat:`auto`,nullFormat:`default`,numberFormat:`auto`}),tn=Object.freeze({...j,strategies:en}),nn=e=>{if(!e||e.arrayFormat===void 0&&e.booleanFormat===void 0&&e.nullFormat===void 0&&e.numberFormat===void 0)return tn;let t=e.arrayFormat??j.arrayFormat,n=e.booleanFormat??j.booleanFormat,r=e.nullFormat??j.nullFormat,i=e.numberFormat??j.numberFormat;return{arrayFormat:t,booleanFormat:n,nullFormat:r,numberFormat:i,strategies:$t(t,n,r,i)}},rn=e=>Vt(e),an=(e,t,n)=>{let r=rn(e);switch(typeof t){case`string`:case`number`:return`${r}=${rn(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}=${rn(t)}`;default:return`${r}=${rn(t)}`}},on=Object.hasOwn,sn=Object.keys;function cn(e,t,n){v(e,t,n)}function ln(e,t,n,r){if(!on(e,t)){cn(e,t,r?[n]:n);return}let i=e[t];Array.isArray(i)?i.push(n):cn(e,t,[i,n])}function un(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 dn(e,t,n){let{searchPart:r,nameEnd:i,nameSourceEnd:a,rawValue:o,decodedName:s}=e,c=un(r,i,a);if(c===null)return!1;let l=zt(o,t),u=n.get(s);return u===void 0?n.set(s,[[c,l]]):u.push([c,l]),!0}function fn(e,t,n,r,i,a,o){let s=a!==-1&&a<n?e.slice(a+1,n):void 0,c=s===void 0?n:a,l=c,u=!1;for(let n=t;n<c;n++)if(e.codePointAt(n)===91){l=n,u=!0;break}let d=Rt(e.slice(t,l));if(!(o!==void 0&&u&&dn({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)ln(r,d,zt(t,i),!0);return}}ln(r,d,zt(s,i),u)}}const pn=(e,t)=>{if(e===``||e===`?`)return{};let n={};return mn(e,n,t.strategies),n};function mn(e,t,n){let r=n.array.indexed?new Map:void 0,i=0,a=e.length,o=-2;for(;i<a;){let s=e.indexOf(`&`,i);s===-1&&(s=a),s>i&&(o!==-1&&o<i&&(o=e.indexOf(`=`,i)),fn(e,i,s,t,n,o,r)),i=s+1}if(r!==void 0)for(let[e,n]of r)n.sort((e,t)=>e[0]-t[0]),cn(t,e,n.map(e=>e[1]))}const hn=(e,t)=>{let n=sn(e);if(n.length===0)return``;let r=[];for(let i of n){let n=e[i];if(n===void 0)continue;let a=an(i,n,t);a&&r.push(a)}return r.join(`&`)};function gn(e){let t=e?.queryParams,n=nn(t);return new Dt({...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=>hn(e,n)})}const _n=Object.keys,vn=Object.values,yn=Object.hasOwn,bn=Object.getOwnPropertyDescriptor,xn=Object.getPrototypeOf,Sn=Object,Cn=new Set(vn(S));function wn(e){if(!Cn.has(e))throw TypeError(`[router.addEventListener] Invalid event name: ${String(e)}. Must be one of: ${[...Cn].join(`, `)}`)}function Tn(e){if(typeof e!=`function`)throw TypeError(`[router.addEventListener] callback must be a function, got ${typeof e}`)}function En(e,t){if(typeof e!=`string`||!yn(m,e))throw TypeError(`[router.addInterceptor] Invalid method: ${typeof e==`string`?`"${e}"`:typeof e}. Must be one of: ${_n(m).join(`, `)}`);if(typeof t!=`function`)throw TypeError(`[router.addInterceptor] interceptor must be a function, got ${typeof t}`)}function Dn(e,t){if(typeof e!=`string`)throw TypeError(`[router.${t}] Route name must be a string, got ${typeof e}`)}function On(e){if(!e||typeof e!=`object`)throw TypeError(`dependencies must be a plain object`);let t=xn(e);if(t!==null&&t.constructor!==Sn)throw TypeError(`dependencies must be a plain object`)}function kn(e,t){On(e);let n=e,r=[];for(let e of _n(n)){if(bn(n,e)?.get)throw TypeError(`dependencies cannot contain getters: "${e}"`);let t=n[e];t!==void 0&&r.push([e,t])}for(let[e,n]of r)t(e,n)}function An(e){for(let t of e){let e=t;if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError(`route must be a non-array object`);n(e,`addRoute`);let r=t.children;r&&An(r)}}function jn(e,t){if(t)for(let n of e){t.routes.guardRouteCallbacks(n),t.routes.guardNoAsyncCallbacks(n);let e=n.children;e&&jn(e,t)}}const Mn=new Set([`all`,`warn-error`,`error-only`,`none`]);function Nn(e){return typeof e==`string`&&Mn.has(e)}function Pn(e){return typeof e==`string`?`"${e}"`:typeof e==`object`?JSON.stringify(e):String(e)}function Fn(e){for(let t of _n(e))if(t!==`level`&&t!==`callback`&&t!==`callbackIgnoresLevel`)throw TypeError(`Unknown logger config property: "${t}"`)}function In(e){if(!yn(e,`level`))return;let t=e.level;if(t!==void 0){if(!Nn(t))throw TypeError(`Invalid logger level: ${Pn(t)}. Expected: "all" | "warn-error" | "error-only" | "none"`);return t}}function Ln(e){if(!yn(e,`callbackIgnoresLevel`))return;let t=e.callbackIgnoresLevel;if(t!==void 0){if(typeof t!=`boolean`)throw TypeError(`Logger callbackIgnoresLevel must be a boolean, got ${typeof t}`);return t}}function Rn(e){if(typeof e!=`object`||!e)throw TypeError(`Logger config must be an object`);let t=e;Fn(t);let n={},r=In(t);if(r!==void 0&&(n.level=r),yn(t,`callback`)){let e=t.callback;if(e!==void 0&&typeof e!=`function`)throw TypeError(`Logger callback must be a function, got ${typeof e}`);n.callback=e}let i=Ln(t);return i!==void 0&&(n.callbackIgnoresLevel=i),n}const M=Object.freeze,zn=Object.hasOwn,N=Object.keys,Bn=Object.getPrototypeOf;function P(e,t){if(e===void 0)return t;let n={};for(let t of N(e)){if(t===`__proto__`)continue;let r=e[t];r!==void 0&&v(n,t,r)}if(t!==void 0)for(let e of N(t)){if(e===`__proto__`)continue;let r=t[e];r!==void 0&&v(n,e,r)}return n}const Vn=new Set([`string`,`number`,`boolean`]);function Hn(e){return Vn.has(typeof e)}function F(e,t){if(e===t)return!0;if(Array.isArray(e)){let n=e.length;if(!Array.isArray(t))return n===1&&F(e[0],t);if(n!==t.length)return!1;for(let r=0;r<n;r++)if(!F(e[r],t[r]))return!1;return!0}return Array.isArray(t)?t.length===1&&F(e,t[0]):Hn(e)&&Hn(t)&&String(e)===String(t)}function Un(e,t){let n=N(e),r=N(t);if(n.length!==r.length)return!1;for(let i of n)if(!r.includes(i)||!F(e[i],t[i]))return!1;return!0}function Wn(e,t,n){if(n.length===0)return!0;let r=N(e),i=N(t);for(let a of n)if(!F(r.includes(a)?e[a]:void 0,i.includes(a)?t[a]:void 0))return!1;return!0}function Gn(e){return M(e)}function Kn(e,t,n){return e===void 0?t===void 0||t===n?n:t:P(e,t)}function qn(e,t){return Kn(e,t,C)}function Jn(e,t){let n=Kn(e,t,E);return n===E?n:M(n)}function I(e,t){if(e==null||e===t)return t;let n={};for(let t of N(e)){if(t===`__proto__`)continue;let r=e[t];r!==void 0&&v(n,t,r)}return M(n)}function Yn(e){if(e===y)return y;let t={},n=e;for(let e of N(n))e!==`__proto__`&&e!==`signal`&&v(t,e,n[e]);return M(t)}function L(e,t){if(e===void 0)return e;if(e===null)return t;let n;for(let t of N(e)){if(t===`__proto__`)continue;let r=e[t];r!==void 0&&(n??={},v(n,t,r))}return n??t}function R(e){if(e==null)return e;let t=Bn(e);return t===null||t===Object.prototype?{...e}:e}function Xn(e){return delete e[b],e}function z(e,t){if(typeof t!=`object`||!t)return t;try{let e=Array.isArray(t)?[...t]:{...t};return M(Xn(e))}catch(t){throw TypeError(`[router.constructor] Invalid "${e}": reading it threw.`,{cause:t})}}function B(e){if(!zn(e,`__proto__`))return e;let t={};for(let n of N(e))n!==`__proto__`&&v(t,n,e[n]);return t}const Zn=Object.freeze;function Qn(e={}){let t={...ne,...e};return Zn({maxDependencies:Number(t.maxDependencies),maxPlugins:Number(t.maxPlugins),maxListeners:Number(t.maxListeners),warnListeners:Number(t.warnListeners),maxLifecycleHandlers:Number(t.maxLifecycleHandlers)})}const $n=Object.create;function er(e,t,n){e[t]=n}function tr(e={}){let t=$n(null),n=e,r=t;return kn(n,(e,t)=>{er(r,e,t)}),{dependencies:t,limits:ne}}const nr={defaultRoute:``,defaultParams:{},defaultSearch:{},trailingSlash:`preserve`,caseSensitive:!0,queryParamsMode:`loose`,queryParams:j,urlParamsEncoding:`default`,allowNotFound:!0,rewritePathOnMatch:!0};function rr(e){if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(`[router.constructor] options must be a plain object`)}const ir=Object.freeze;var ar=class{#e;constructor(e={}){this.#e=ir(Xn({...nr,...e}))}static validateOptionsIsObject(e){rr(e)}get(){return this.#e}};function or(e,t){return typeof e==`function`?e(t):e}const sr=Object.keys;function cr(e,t,n,r,i){let a=e.pathNames(t);if(a!==void 0)for(let e of sr(n))!r.includes(e)&&!a.includes(e)&&i(t,e)}function V(e,t,n,r,i){let a=String(t),o=i?.resolveForward===!1?{name:a,params:n,search:r}:e.resolveForward(a,n,r),s=o.name,c=L(o.params,C),l=i?.diagnoseUndeclared===!0?e.reportUndeclaredParamKey:void 0;l&&cr(e,s,c,e.queryNames(s),l);let u=e.defaultParams(s),d=e.defaultSearch(s);if((o.search===void 0||o.search===E)&&u===void 0&&d===void 0)return{name:s,path:c,query:E};let f=e.queryNames(s),p=e.reportDroppedQueryKey,m=Jn(i?.resolveForward===!1?ce(d,c,f):d,L(o.search,E));return{name:s,path:qn(u,c),query:e.admitsUndeclaredQuery()?m:fe(m,f,t=>{p!==void 0&&e.pathNames(s)!==void 0&&p(s,t)})}}function H(e,t){return t.buildPath(e.name,e.path,e.query)}const lr=Object.freeze;function ur(e,t){let n={name:e.name,params:e.path,search:e.query,path:t,context:{},transition:ie};return lr(n.params),n}function dr(e,t){return Gn(ur(e,t))}function fr(e,t){return ur(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(t,n,r,i){let a=this.#t.port(),o=V(a,t,n??C,r,{resolveForward:!1});return e(`makeState`,o.name,o.path,a.queryNames(o.name)),dr(o,i??H(o,a))}areStatesEqual(e,t,n=!0){if(!e||!t)return!!e==!!t;let r=e.name;return r===t.name?n?Wn(e.params,t.params,this.#t.getUrlParams(r)):Un(e.params,t.params)&&Un(e.search,t.search):!1}};const mr=Object.keys,hr={[x.ROUTER_START]:S.ROUTER_START,[x.ROUTER_STOP]:S.ROUTER_STOP,[x.TRANSITION_SUCCESS]:S.TRANSITION_SUCCESS,[x.TRANSITION_START]:S.TRANSITION_START,[x.TRANSITION_LEAVE_APPROVE]:S.TRANSITION_LEAVE_APPROVE,[x.TRANSITION_ERROR]:S.TRANSITION_ERROR,[x.TRANSITION_CANCEL]:S.TRANSITION_CANCEL},gr=mr(hr),_r=`router.usePlugin`;function vr(e){if(!(e&&typeof e==`object`)||Array.isArray(e))throw TypeError(`[router.usePlugin] Plugin factory must return an object, got ${typeof e}`);if(typeof e.then==`function`)throw TypeError(`[router.usePlugin] Async plugin factories are not supported. Factory returned a Promise instead of a plugin object.`)}const yr=Object.freeze;var br=class e{#e=new Set;#t=new Set;#n;static validatePlugin(e){vr(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(_r,`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(_r,`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(_r,`Error during cleanup:`,e)}}};return this.#t.add(i),i}getAll(){return[...this.#e]}has(e){return this.#e.has(e)}disposeAll(){for(let e of this.#t)e();this.#e.clear(),this.#t.clear()}#r(e){let t=new Set;for(let n of e)t.has(n)?this.#n.getValidator()?.plugins.warnBatchDuplicates(e):t.add(n);return t}#i(t){let n=this.#n.compileFactory(t);e.validatePlugin(n),this.#n.getValidator()?.plugins.validatePluginKeys(n),yr(n);let r=[];for(let e of gr)e in n&&(typeof n[e]==`function`?(r.push(this.#n.addEventListener(hr[e],n[e])),e===`onStart`&&this.#n.canNavigate()&&this.#n.getValidator()?.plugins.warnPluginAfterStart(e)):this.#n.getValidator()?.plugins.warnPluginMethodType(e));return()=>{for(let e of r)e();typeof n.teardown==`function`&&n.teardown()}}};const U=Object.create,xr=()=>!0,Sr=()=>!1,Cr=()=>xr,wr=()=>Sr;function Tr(e){return e?Cr:wr}function Er(e,t,n){n===void 0?e.delete(t):e.set(t,n)}var Dr=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=U(null),t=U(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=U(null),t=U(null),n=U(null),r=U(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`?Tr(e):e,r=this.#d.compileFactory(n);if(typeof r!=`function`)throw TypeError(`[router.${t}] Factory must return a function, got ${typeof r}`);return r}#f(e,t,n,r,i,a){let o=this.#g(e),s=e===`activate`?this.#a:this.#i,c=r?o.definition:o.external,l=r?o.external:o.definition;if(c.has(t)||l.has(t))this.#d.getValidator()?.lifecycle.warnOverwrite(t,e,i);else{let t=this.#d.getValidator();if(t){let n=this.getHandlerCount(e);t.lifecycle.validateHandlerLimit(n,i),t.lifecycle.validateCountThresholds(n+1,i)}}let u=typeof n==`boolean`?Tr(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 Er(c,t,d),Er(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 Or=new Set([`name`,`path`,`children`,`canActivate`,`canDeactivate`,`forwardTo`,`encodeParams`,`decodeParams`,`defaultParams`,`defaultSearch`]),W=Object.create,kr=Object.hasOwn,Ar=Object.keys;function jr(){return{decoders:W(null),encoders:W(null),defaultParams:W(null),defaultSearch:W(null),forwardMap:W(null),forwardFnMap:W(null)}}function Mr(e){return Ar(e.forwardMap).length>0||Ar(e.forwardFnMap).length>0}function Nr(e,t){for(let n of Ar(t))Object.assign(e[n],t[n])}function Pr(e,t){for(let n in e)if(kr(t,n)&&!F(e[n],t[n]))return!1;return!0}function Fr(e){return typeof e==`string`?e:`<non-string>`}function Ir(e,t){for(let n in e)if(!F(e[n],t[n]))return!1;return!0}function Lr(e){let t={name:e.name,path:e.path};return e.children&&(t.children=e.children.map(e=>Lr(e))),t}function Rr(e,t,n){if(n.add(t),e.children)for(let r of e.children)Rr(r,`${t}.${r.name}`,n)}function zr(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 Rr(i,a,t),t}if(i.children&&t.startsWith(`${a}.`)){let e=zr(i.children,t,a);if(e)return e}}}function Br(e,t){for(let n of Ar(e))t(n)&&delete e[n]}function Vr(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 Hr(e){let t=[];for(let n of e)for(let e of n.paramMeta.urlParams)t.push(e);return t}function Ur(e,t,n){let r=n.get(t);if(r!==void 0)return r;let i=e.getSegmentsByName(t),a=i?Hr(i):[];return n.set(t,a),a}function Wr(e,t){return Ur(e.matcher,t,e.urlParamsCache)}function Gr(e,t,n,r){let i=r.get(t);if(i!==void 0)return i;let a=e.getDeclaredQueryParams(t),o=[];if(a){let r=Ur(e,t,n);o=a.filter(e=>!r.includes(e))}return r.set(t,o),o}function Kr(e,t){return Gr(e.matcher,t,e.urlParamsCache,e.queryParamsCache)}function qr(e,t,n){let r=new Map,i=new Map;le(t.defaultParams,t=>Gr(e,t,r,i),n)}function Jr(e,t,n=100){let r=String(e),i=new Set,a=[r],o=r;for(;;){let e=t[o];if(!e)break;let r=String(e);if(i.has(r)){let e=a.indexOf(r),t=[...a.slice(e),r];throw Error(`Circular forwardTo: ${t.join(` → `)}`)}if(i.add(o),a.push(r),o=r,a.length>n)throw Error(`forwardTo chain exceeds maximum depth (${n}): ${a.join(` → `)}`)}return o}const Yr=Object.freeze,G=Object.create,Xr=Object.entries,Zr=Object.keys,Qr=Object.defineProperty,$r=Object.fromEntries;function ei(e,t,n){let r=Ft(``,t,e),i=gn(n);return i.registerTree(r),{tree:r,matcher:i}}function ti(e,t=e.definitions){let n=ei(t,e.rootPath,e.matcherOptions);e.tree=n.tree,e.matcher=n.matcher,e.urlParamsCache.clear(),e.queryParamsCache.clear()}function ni(e,t){let n=ei(e.definitions,t,e.matcherOptions);qr(n.matcher,e.config,`setRootPath`),e.rootPath=t,e.tree=n.tree,e.matcher=n.matcher,e.urlParamsCache.clear(),e.queryParamsCache.clear()}function ri(e,t){ti(e,t),K(e,oi(e.config))}function ii(e){ai(e),ti(e,[])}function ai(e){Object.assign(e.config,jr()),K(e,G(null)),e.routeCustomFields=G(null)}function K(e,t){e.resolvedForwardMap=t,e.hasAnyForward=Mr(e.config)}function oi(e){let t=G(null);for(let n of Zr(e.forwardMap))t[n]=Jr(n,e.forwardMap);return t}function si(e,t){if(typeof e!=`function`)return;let n=e.constructor.name===`AsyncFunction`,r=e.toString().includes(`__awaiter`);if(n||r)throw TypeError(`forwardTo callback cannot be async for route "${t}". Async functions break matchPath/buildPath.`)}function ci(e,t,n,r){if(e.canActivate){let n=typeof e.forwardTo==`string`?e.forwardTo:`[dynamic]`;r.warn(`real-router`,`Route "${t}" has both forwardTo and canActivate. canActivate will be ignored because forwardTo creates a redirect (industry standard). Move canActivate to the target route "${n}".`)}if(e.canDeactivate){let n=typeof e.forwardTo==`string`?e.forwardTo:`[dynamic]`;r.warn(`real-router`,`Route "${t}" has both forwardTo and canDeactivate. canDeactivate will be ignored because forwardTo creates a redirect (industry standard). Move canDeactivate to the target route "${n}".`)}si(e.forwardTo,t),typeof e.forwardTo==`string`?n.forwardMap[t]=e.forwardTo:n.forwardFnMap[t]=e.forwardTo}function li(e,t,n,r,i,a,o){let s=$r(Xr(e).filter(([e])=>!Or.has(e)));if(Zr(s).length>0&&(r[t]=Yr(s)),e.canActivate&&i.set(t,e.canActivate),e.canDeactivate&&a.set(t,e.canDeactivate),e.forwardTo&&ci(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]=z(`defaultParams`,e.defaultParams)),e.defaultSearch&&(n.defaultSearch[t]=z(`defaultSearch`,e.defaultSearch))}function ui(e,t,n,r,i,a,o=``){for(let s of e){let e=o?`${o}.${s.name}`:s.name;li(s,e,t,n,r,i,a),s.children&&ui(s.children,t,n,r,i,a,e)}}function di(e){let t=jr();return Nr(t,e),t}function fi(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]:fi(n,t,i)}})}function pi(e){return e.map(e=>{let t={...e};return Array.isArray(t.children)&&(t.children=pi(t.children)),t})}function mi(e,t,n){for(let r of e){let e=t?`${t}.${r.name}`:r.name;n(e),r.children&&mi(r.children,e,n)}}function hi(e,t,n){let r=new Set;mi(e,t,e=>{if(r.has(e))throw Error(`[router.${n}] Duplicate route "${e}" in batch`);r.add(e)})}function gi(e,t){if(Dn(e,t),e.startsWith(`@@`))throw Error(`[router.${t}] Route name "${e}" uses the reserved "@@" prefix. Routes with this prefix are internal and cannot be modified through the public API.`)}function _i(e,t){for(let n of e)gi(n.name,t),n.children&&_i(n.children,t)}function vi(e,t){for(let n of e)h(n.name,t),n.children&&vi(n.children,t)}function yi(e,t){for(let n of e)c(n.name,t),n.children&&yi(n.children,t)}function bi(e,t,n){let r=new Map,i=(e,t)=>{for(let a of e){let e=r.get(t);if(e?.has(a.path))throw Error(`[router.${n}] Path "${a.path}" is already defined`);e?e.add(a.path):r.set(t,new Set([a.path])),a.children&&i(a.children,t?`${t}.${a.name}`:a.name)}};i(e,t)}function xi(e,t,n){if(_i(t,`addRoute`),vi(t,`addRoute`),yi(t,`addRoute`),n!==void 0&&!e.matcher.hasRoute(n))throw Error(`[router.addRoute] Parent route "${n}" does not exist`);mi(t,n??``,t=>{if(e.matcher.hasRoute(t))throw Error(`[router.addRoute] Route "${t}" already exists`)}),hi(t,n??``,`addRoute`),bi(t,n??``,`addRoute`)}function Si({definitions:e,routesForHandlers:t,config:n,routeCustomFields:r,handlerParentName:i,rootPath:a,matcherOptions:o,logger:s}){let c=new Map,l=new Map;ui(t,n,r,c,l,s,i);let u=oi(n),{tree:d,matcher:f}=ei(e,a,o);return{config:n,routeCustomFields:r,pendingCanActivate:c,pendingCanDeactivate:l,tree:d,matcher:f,resolvedForwardMap:u}}function Ci(e,t,n,r){return Si({definitions:fi(e.definitions,t.map(e=>Lr(e)),n===void 0?[]:n.split(`.`)),routesForHandlers:t,config:di(e.config),routeCustomFields:Object.assign(G(null),e.routeCustomFields),handlerParentName:n??``,rootPath:e.rootPath,matcherOptions:e.matcherOptions,logger:r})}function wi(e,t,n,r){return Si({definitions:e.map(e=>Lr(e)),routesForHandlers:e,config:jr(),routeCustomFields:G(null),handlerParentName:``,rootPath:t,matcherOptions:n,logger:r})}function Ti(e,t,n){let r=[];for(let[i,a]of e)r.push([i,a,t(a,n)]);return r}function Ei(e,t){return{activate:Ti(e.pendingCanActivate,t.compileGuard,`canActivate`),deactivate:Ti(e.pendingCanDeactivate,t.compileGuard,`canDeactivate`)}}function Di(e,t,n){let r=e.depsStore,{activate:i,deactivate:a}=n??Ei(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(),K(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 q(e){return e===null?e:e||void 0}function Oi(e,t){return t==null?t:z(e,t)}function ki(e,t,n,r){let{forwardTo:i,defaultParams:o,defaultSearch:s,decodeParams:c,encodeParams:l,canActivate:u,canDeactivate:d}=r,f=q(i),p=Oi(`defaultParams`,q(o)),m=Oi(`defaultSearch`,q(s)),h=q(c),g=q(l),_=q(u),v=q(d);p!=null&&a(`updateRoute`,n,p,Kr(e,n),"this route's `defaultParams`","Move it to `defaultSearch`");let y=f===void 0?void 0:Ai(n,f,e.config),b=ji(e,n,r),x=_==null?void 0:t.compileGuardFactory(_,`canActivate`),S=v==null?void 0:t.compileGuardFactory(v,`canDeactivate`);return t.preflightHandlerLimit(x===void 0?[]:[n],S===void 0?[]:[n],!1),b!==void 0&&(Zr(b).length>0?e.routeCustomFields[n]=Yr(b):delete e.routeCustomFields[n]),y!==void 0&&(e.config.forwardMap=y.forwardMap,e.config.forwardFnMap=y.forwardFnMap,K(e,y.resolved)),Ni(e,n,{defaultParams:p,defaultSearch:m,decodeParams:h,encodeParams:g}),Pi(t,`activate`,n,_,x),Pi(t,`deactivate`,n,v,S),{forwardTo:f,defaultParams:p,defaultSearch:m,decodeParams:h,encodeParams:g}}function Ai(e,t,n){si(t,e);let r=Object.assign(G(null),n.forwardMap),i=Object.assign(G(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:oi({...n,forwardMap:r})}}function ji(e,t,n){let r;for(let i of Zr(n)){if(Or.has(i))continue;let a=n[i];a!==void 0&&(r??={...e.routeCustomFields[t]},a===null?delete r[i]:v(r,i,a))}return r}function Mi(e,t,n){n!==void 0&&(n===null?delete e[t]:e[t]=n)}function Ni(e,t,n){if(Mi(e.config.defaultParams,t,n.defaultParams),Mi(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 Pi(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 Fi(e,t,n){let r=pi(e);_i(r,`addRoute`),vi(r,`constructor`),yi(r,`constructor`),hi(r,``,`addRoute`);let i=wi(r,``,t,n),a={get definitions(){return Lt(a.tree)},config:i.config,tree:i.tree,matcher:i.matcher,urlParamsCache:new Map,queryParamsCache:new Map,resolvedForwardMap:i.resolvedForwardMap,hasAnyForward:Mr(i.config),routeCustomFields:i.routeCustomFields,rootPath:``,matcherOptions:t,depsStore:void 0,lifecycleNamespace:void 0,pendingCanActivate:i.pendingCanActivate,pendingCanDeactivate:i.pendingCanDeactivate};return qr(a.matcher,a.config,`addRoute`),Qr(a,`matcherOptions`,{writable:!1,configurable:!1}),a}const Ii=Object.freeze,Li=Object.keys,Ri=[];Object.freeze(Ri);function zi(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 Bi=new Set([`string`,`number`,`boolean`]);function Vi(e){return Bi.has(typeof e)}function Hi(e,t,n,r){let i=t[e];if(!i||typeof i!=`object`)return!0;for(let e of Li(i)){let t=n.params[e],i=r.params[e];if(Vi(t)&&Vi(i)&&String(t)!==String(i))return!1}return!0}function Ui(e,t,n,r,i,a){for(let o=0;o<a;o++){let a=r[o];if(a!==i[o]||!Hi(a,e,t,n))return o}return a}const Wi=new Map;function J(e){let t=Wi.get(e);if(t)return t;let n=Gi(e);return Ii(n),Wi.set(e,n),n}function Gi(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]:zi(e)}let Ki,qi,Ji=null,Yi,Xi,Zi=null;function Qi(e,t,n){if(!t)return{intersection:``,toActivate:J(e.name),toDeactivate:Ri};let r=n(e.name),i=n(t.name);if(!r&&!i)return{intersection:``,toActivate:J(e.name),toDeactivate:J(t.name)};let a=J(e.name),o=J(t.name),s=Math.min(o.length,a.length),c=Ui(r??i,e,t,a,o,s),l;if(c>=o.length)l=Ri;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 $i(e,t,n){if(Ji!==null&&e===Ki&&t===qi)return Ji;if(Zi!==null&&e===Yi&&t===Xi)return Zi;let r=Qi(e,t,n);return Yi=Ki,Xi=qi,Zi=Ji,Ki=e,qi=t,Ji=r,r}const ea=Object.freeze,Y=Object.hasOwn;function ta(e,t){return{name:t??e.segments.at(-1).fullName,params:e.params,search:e.search,meta:e.meta}}function na(e){return e===`preserve`?void 0:e}var ra=class{#e;#t;#n;get#r(){return this.#e.depsStore}constructor(e,t,n){this.#e=Fi(e,t,n)}static shouldUpdateNode(e,t){return(n,r)=>{if(!(n&&typeof n==`object`&&`name`in n))throw TypeError(`[router.shouldUpdateNode] toState must be valid State object`);if(n.transition?.reload||e===``)return!0;let{intersection:i,toActivate:a,toDeactivate:o}=$i(n,r,t);return e===i||a.includes(e)?!0:o.includes(e)}}setDependencies(e){this.#e.depsStore=e}flushPendingGuards(){let e=this.#r;for(let[t,n]of this.#e.pendingCanActivate)e.addActivateGuard(t,n);this.#e.pendingCanActivate.clear();for(let[t,n]of this.#e.pendingCanDeactivate)e.addDeactivateGuard(t,n);this.#e.pendingCanDeactivate.clear()}setLifecycleNamespace(e){this.#e.lifecycleNamespace=e}setRootPath(e){ni(this.#e,e)}hasRoute(e){return this.#e.matcher.hasRoute(e)}clearRoutes(){ii(this.#e)}buildPath(e,t,n,r){if(e===T.UNKNOWN_ROUTE)return typeof t.path==`string`?t.path:``;let i=this.#e.config.encoders[e];if(typeof i==`function`){let a=i({params:{...t},search:{...n}});return this.#e.matcher.buildPath(e,a.params,a.search,this.#c(r))}return this.#e.matcher.buildPath(e,t,n,this.#c(r))}buildPathFromIntent(e,t,n){return e===T.UNKNOWN_ROUTE?this.#r.port.buildPath(e,L(t,C),n??E):H(V(this.#r.port,e,t,n,{resolveForward:!1}),this.#r.port)}matchPath(t,n){let r=n,i=this.#e.matcher.match(t);if(!i)return;let o=ta(i),{name:s}=o,c=B(o.params),l=B(o.search),u=this.#e.config.decoders[s],d;typeof u==`function`?(d=u({params:c,search:l}),this.#r.getValidator()?.routes.validateStateBuilderArgs(s,d.params,`matchPath`),a(`matchPath`,s,d.params,this.getQueryParams(s),"the `params` returned by this route's `decodeParams`")):d={params:c,search:l};let f=V(this.#r.port,s,d.params,d.search),p=f.name;e(`matchPath`,f.name,f.path,this.getQueryParams(f.name));let m=f.path,h=f.query,g=t;if(r.rewritePathOnMatch){let e=this.#e.config.encoders[p],n=typeof e==`function`?e({params:m,search:h}):{params:m,search:h},i=r.trailingSlash;try{g=this.#e.matcher.buildPath(p,n.params,n.search,{trailingSlash:na(i),queryParamsMode:r.queryParamsMode}),i===`preserve`&&(g=Vr(t,g))}catch{g=t}}return dr(f,g)}forwardState(e,t,n){let r=n??E;if(Y(this.#e.config.forwardFnMap,e)){let n=this.#e.config.forwardFnMap[e],{target:i,chain:a}=this.#l(e,n,t);return this.#s(i,a,t,r)}let i=this.#e.resolvedForwardMap[e]??e;if(i!==e&&Y(this.#e.config.forwardFnMap,i)){let n=this.#e.config.forwardFnMap[i],{target:a,chain:o}=this.#l(i,n,t);return this.#s(a,[...this.#o(e),...o],t,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 ta({segments:n,params:t,search:{},meta:this.#e.matcher.getMetaByName(e)},e)}isActiveRoute(e,t=C,n=E,r=!1,i=!0){if(this.#i(e,t,n,r,i))return!0;if(!this.#e.hasAnyForward)return!1;let a;try{a=typeof e==`string`?e:String(e)}catch{return!1}if(!Y(this.#e.config.forwardMap,a)&&!Y(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 "${Fr(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 Wr(this.#e,e)}getQueryParams(e){return Kr(this.#e,e)}getStore(){return this.#e}getPort(){return this.#r.port}#i(e,t,n,r,i){try{return this.#a(e,t,n,r,i)}catch(t){return this.#r.logger.warn(`router.isActiveRoute`,`Reading the arguments for route "${Fr(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=V(this.#r.port,e,t,n,{resolveForward:!1});if(r||o===e){let e=fr(s,``);return!this.#r.areStatesEqual(e,a,!0)||!Pr(s.path,a.params)?!1:i||Un(e.search,a.search)}return!(!o.startsWith(`${e}.`)||!Pr(s.path,a.params)||!i&&!Ir(s.query,a.search))}#o(e){let t=[],n=e;for(;Y(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=P(this.#e.config.defaultParams[e],i),a=P(this.#e.config.defaultSearch[e],a);return{name:e,params:L(P(i,n),C),search:L(P(a,r),E)}}#c(e){return this.#t?(e!==this.#n&&this.#r.logger.warn(`router.buildPath`,"`options` differs from the cached source reference; router options are immutable per router instance, so the first-cached buildPath options are reused (#957)."),this.#t):(this.#n=e,this.#t=ea({trailingSlash:na(e?.trailingSlash),queryParamsMode:e?.queryParamsMode}),this.#t)}#l(e,t,n){let r=new Set([e]),i=[e],a=t(this.#r.getDependency,n),o=0;if(typeof a!=`string`)throw TypeError(`forwardTo callback must return a string, got ${typeof a}`);for(;o<100;){if(this.#e.matcher.getSegmentsByName(a)===void 0)throw Error(`Route "${a}" does not exist`);if(r.has(a)){let e=[...r,a].join(` → `);throw Error(`Circular forwardTo: ${e}`)}if(r.add(a),Y(this.#e.config.forwardFnMap,a)){let e=this.#e.config.forwardFnMap[a];i.push(a),a=e(this.#r.getDependency,n),o++;continue}let e=this.#e.config.forwardMap[a];if(e!==void 0){i.push(a),a=e,o++;continue}return{target:a,chain:i}}throw Error(`forwardTo exceeds maximum depth of 100`)}};const ia=new O(w.ROUTER_NOT_STARTED),aa=new O(w.ROUTE_NOT_FOUND),oa=new O(w.SAME_STATES),sa=new O(w.ROUTER_NOT_STARTED,{message:`[router] cannot commit before the start navigation does — the boot would overwrite it; defer with queueMicrotask/await, or navigate after start() resolves`});Object.freeze(ia),Object.freeze(aa),Object.freeze(oa),Object.freeze(sa);const ca=Promise.reject(ia),la=Promise.reject(aa),ua=Promise.reject(oa),da=Promise.reject(sa);ca.catch(()=>{}),la.catch(()=>{}),ua.catch(()=>{}),da.catch(()=>{});const fa=new Set([w.SAME_STATES,w.TRANSITION_CANCELLED,w.ROUTER_NOT_STARTED,w.ROUTE_NOT_FOUND,w.CANNOT_ACTIVATE,w.CANNOT_DEACTIVATE,w.ROUTER_ALREADY_STARTED]);function pa(e){return e instanceof O&&fa.has(e.code)}const ma=new Set([ca,la,ua,da]),X=Object.freeze;function ha(e){let{fromState:t,toDeactivate:n,toActivate:r,intersection:i}=e;X(n),X(r);let a={phase:`activating`,reason:`success`,segments:X({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),X(a)}function ga(e,t){let{toState:n,fromState:r,toDeactivate:i,toActivate:a}=t;if(n.name!==T.UNKNOWN_ROUTE&&!e.hasRoute(n.name)){let i=new O(w.ROUTE_NOT_FOUND,{routeName:n.name});throw e.sendTransitionFail(r,i,t),D(i)}let o=t;n.transition=ha(t);let s=X(n),c=e.canCommitTransition(o);if(!c)throw D(new O(w.TRANSITION_CANCELLED));for(let n of i)!a.includes(n)&&t.canDeactivateFunctions.has(n)&&e.clearCanDeactivate(n,c);return e.sendTransitionDone(o),s}const _a=Object.entries;function va(e){return e instanceof O&&e.code===w.TRANSITION_CANCELLED}function ya(e){return va(e)?e:new O(w.TRANSITION_CANCELLED,{reason:e})}function ba(e,t,n,r){let i=t;i.code!==w.TRANSITION_CANCELLED&&i.code!==w.ROUTE_NOT_FOUND&&e.sendTransitionFail(n,i,r)}function xa(e,t,n){if(e instanceof DOMException&&e.name===`AbortError`)throw D(new O(w.TRANSITION_CANCELLED));if(va(e))throw e;Sa(e,t,n)}function Sa(e,t,n){if(e instanceof O){let{code:n,message:r,...i}=e.toJSON(),a=new O(n,{...i,message:r});throw a.setCode(t),a.stack=e.stack??``,D(a)}throw D(new O(t,wa(e,n)))}const Ca=new Set([`code`,`segment`,`path`,`then`]);function wa(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 _a(e))n!==`__proto__`&&!Ca.has(n)&&v(t,n,r);return{...n,...t}}return n}async function Ta(e,t,n){let r;try{r=await e}catch(e){xa(e,t,n);return}if(!r)throw D(new O(t,{segment:n}))}function Ea(e,t,n,r,i,a,o,s,c,l){if(!c())throw D(new O(w.TRANSITION_CANCELLED));if(e===1){let n=l();return n===void 0?void 0:{phase:e,index:t+1,pending:n}}let u=n[t],d=r.get(u);if(!d)return;let f=!1;try{f=d(a,o,s)}catch(e){xa(e,i,u)}if(f instanceof Promise)return{phase:e,index:t+1,pending:f};if(!f)throw D(new O(i,{segment:u}))}function Da(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=e===1,m=e===0;if(!p&&!(m?o:s))return;let h=m?i:a,g=p?1:h.length,_=m?n:r,v=m?w.CANNOT_DEACTIVATE:w.CANNOT_ACTIVATE;for(let n=t;n<g;n++){let t=Ea(e,n,h,_,v,c,l,u,d,f);if(t!==void 0)return t}}function Oa(e,t,n,r,i,a,o,s,c,l,u,d,f){for(let p=d;p<=2;p++){let m=Da(p,p===d?f:0,e,t,n,r,i,a,o,s,c,l,u);if(m!==void 0)return m}}async function ka(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 Ta(f.pending,e?w.CANNOT_DEACTIVATE:w.CANNOT_ACTIVATE,(e?r:i)[f.index-1])}f=Oa(t,n,r,i,a,o,s,c,l,u,d,f.phase,f.index)}}function Aa(e,t,n,r,i,a,o,s,c,l,u){let d=Oa(e,t,n,r,i,a,o,s,c,l,u,0,0);return d===void 0?void 0:ka(d,e,t,n,r,i,a,o,s,c,l,u)}const ja=Object.freeze,Ma=Object.freeze([]),Na=new Map;function Pa(e,t){return t?ja({...e,replace:!0}):e}function Fa(e,t,n,r){return!!e&&!t&&!n&&e.path===r.path}function Ia(e,t){if(e.size===0)return!1;for(let n of t)if(e.has(n))return!0;return!1}function La(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 Ra(e,t){t.externalSignal!==void 0&&t.cancelReason===void 0&&t.hasGuards&&e.bridgeExternalSignal(t)}function za(e,t,n,r,i,a,o,s,c,l){Ka(e,a);let u=e.hasLeaveListeners()||e.hasPreCommitListeners(),d={toState:t,fromState:n,opts:r,suspendable:i!==void 0||u,forceDeactivate:l,toDeactivate:Ma,toActivate:Ma,intersection:``,canDeactivateFunctions:Na,canActivateFunctions:Na,shouldDeactivate:!1,shouldActivate:!1,hasGuards:!1,controller:void 0,cancelReason:void 0,detachExternalBridge:void 0,externalSignal:i,reload:o,replace:s,redirected:c};if(!e.startTransition(d))throw D(new O(w.TRANSITION_CANCELLED));return d}function Ba(e,t){return e.sendLeaveApprove(t),ga(e,t)}function Va(e,t){let[n,r]=e.getLifecycleFunctions(),{toDeactivate:i,toActivate:a,intersection:o}=$i(t.toState,t.fromState,t=>e.getMetaForState(t));t.canDeactivateFunctions=n,t.canActivateFunctions=r,t.toDeactivate=i,t.toActivate=a,t.intersection=o,t.shouldDeactivate=!!t.fromState&&!t.forceDeactivate&&i.length>0,t.shouldActivate=t.toState.name!==T.UNKNOWN_ROUTE&&a.length>0,t.hasGuards=t.shouldDeactivate&&Ia(n,i)||t.shouldActivate&&Ia(r,a)}function Ha(e,t,n){let r,i;try{r=e.getState();let a=n.signal,o=a?.aborted===!0?a:void 0;n=Yn(n);let s=n.reload,c=n.force,l=n.replace,u=n.redirected,d=n.forceDeactivate===!0,f=r?.name===T.UNKNOWN_ROUTE&&!l,p=f||l;if(n=Pa(n,f),Fa(r,s,c,t))return e.emitTransitionError(t,r,oa),ua;let m=za(e,t,r,n,a,o,s,p,u,d);i=m;let h=m.externalSignal;if(h?.aborted===!0&&e.cancelNavigation(h.reason),Va(e,m),Ra(e,m),!m.hasGuards&&!m.suspendable)return Ba(e,m);let{canDeactivateFunctions:g,canActivateFunctions:_,toDeactivate:v,toActivate:y,shouldDeactivate:b,shouldActivate:x,hasGuards:S}=m,ee=t;if(!S){let t=Ga(e,m);if(t!==void 0)return t}if(S){let n=La(m),i=()=>!n.signal.aborted,a=n.signal,o=Aa(g,_,v,y,b,x,t,r,a,i,()=>{if(e.sendLeaveApprove(m),e.hasLeaveListeners())return e.awaitLeaveListeners(ee,r,a)});if(o!==void 0)return Ua(e,o,m,n);if(!i())throw D(new O(w.TRANSITION_CANCELLED))}return ga(e,m)}catch(t){let n=Wa(e,t,{nav:i,fromState:r});return Promise.reject(n)}}async function Ua(e,t,n,r){let i=()=>!r.signal.aborted,a=n.externalSignal,o,s=!1,c,l=new Promise(e=>{if(r.signal.aborted){e();return}o=()=>{e()},r.signal.addEventListener(`abort`,o,{once:!0})});t.catch(()=>{});try{if(a?.aborted)throw D(new O(w.TRANSITION_CANCELLED,{reason:a.reason}));if(await Promise.race([t,l]),!i())throw D(new O(w.TRANSITION_CANCELLED));let r=ga(e,n);return s=!0,r}catch(t){let r=i()?t:ya(t);throw c=r,ba(e,r,n.fromState,n),r}finally{o&&r.signal.removeEventListener(`abort`,o),s||r.abort(c)}}function Wa(e,t,n){let{nav:r}=n;if(r?.controller?.abort(t),r!==void 0){let i=e.isTransitioning()?t:ya(t);return ba(e,i,n.fromState,r),i}return t}function Ga(e,t){let{toState:n,fromState:r}=t;if(e.hasLeaveListeners()&&La(t),e.sendLeaveApprove(t),e.hasLeaveListeners()){let i=La(t),a;try{a=e.awaitLeaveListeners(n,r,i.signal)}catch(e){throw i.abort(e),e}return a===void 0?void 0:Ua(e,a,t,i)}}function Ka(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 D(new O(w.TRANSITION_CANCELLED,{reason:t.reason}))}const qa=Object.freeze,Ja=Object.freeze([T.UNKNOWN_ROUTE]),Ya=Object.freeze({replace:!0});function Xa(e,t,n){Ka(e,void 0);let r=e.getState(),i=r?J(r.name).toReversed():[];qa(i);let a={deactivated:i,activated:Ja,intersection:``};qa(a);let o={phase:`activating`,...r&&{from:r.name},reason:`success`,replace:!0,segments:a};qa(o);let s={name:T.UNKNOWN_ROUTE,params:C,search:E,path:t,transition:o,context:{}};if(qa(s),n&&r!==void 0&&!e.canDeactivateCurrent(i,s,r)){let n=new O(w.CANNOT_DEACTIVATE,{path:t,message:`[router.navigateToNotFound] a canDeactivate guard on "${r.name}" refused to leave for ${t}`});throw e.emitTransitionError(void 0,r,n),D(n)}return e.systemCommit(s,r,Ya)}function Za(e,t){return Xa(e,t,!0)}function Qa(e,t){return Xa(e,t,!1)}var $a=class{#e;#t;#n=0;setDependencies(e){this.#e=e,this.#t=t=>{pa(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 Za(this.#e,e)}revalidateToNotFound(e){return Qa(this.#e,e)}isPreparing(){return this.#n>0}#r(e){return e instanceof Promise&&!ma.has(e)&&e.catch(this.#t),e}#i(e,t,n,r){let i=this.#e;if(!i.canNavigate())return i.isStarting()?da:ca;let a;this.#n++;try{a=i.buildNavigateState(e,t,n)}catch(e){return Promise.reject(e)}finally{this.#n--}return a?Ha(this.#e,a,r):(i.emitTransitionError(void 0,i.getState(),aa),la)}#a(e,t){let n=this.#e;if(!n.canNavigate())return n.isStarting()?da:ca;let r=e.name;if(r!==T.UNKNOWN_ROUTE&&!n.hasRoute(r)){let e=new O(w.ROUTE_NOT_FOUND,{routeName:r});return n.emitTransitionError(void 0,n.getState(),e),Promise.reject(e)}let i=g(e.params,n.getQueryParams(r));if(i!==void 0){let e=new O(w.WRONG_CHANNEL,{routeName:r,message:`[router.navigateToState] ${_(r,i,"`state.params`")}`});return n.emitTransitionError(void 0,n.getState(),e),Promise.reject(e)}let a;try{a=this.#o(e,r)}catch(e){return Promise.reject(e)}return Ha(this.#e,a,t)}#o(e,t){return{name:t,params:I(e.params,C),search:I(e.search,E),path:e.path,context:{...e.context},transition:ie}}#s(e){let t=this.#e;if(!t.getOptions().defaultRoute)return Promise.reject(new O(w.ROUTE_NOT_FOUND,{routeName:`defaultRoute not configured`}));let n,r,i;this.#n++;try{({route:n,params:r,search:i}=t.resolveDefault())}catch(e){return Promise.reject(e)}finally{this.#n--}return n?typeof n==`string`?this.#i(n,r,i,e):Promise.reject(new O(w.ROUTE_NOT_FOUND,{routeName:`defaultRoute did not resolve to a route name`})):Promise.reject(new O(w.ROUTE_NOT_FOUND,{routeName:`defaultRoute resolved to empty`}))}};const eo={},to=Object.freeze({replace:!0});function no(e){return[e,e?.reason].some(e=>e instanceof O&&e.code===w.ROUTE_NOT_FOUND)}var ro=class{#e;setDependencies(e){this.#e=e}async start(e){let t=this.#e;if(t.isIdle())throw D(new O(w.TRANSITION_CANCELLED));let n=t.getOptions();if(typeof e!=`string`)throw TypeError(`[router.start] path must be a string, got ${typeof e}`);let r=t.matchPath(e);if(!r&&!n.allowNotFound){let t=new O(w.ROUTE_NOT_FOUND,{path:e});throw D(t)}if(t.completeStart(),r)try{return await t.navigateToState(r,to)}catch(r){if(!n.allowNotFound||!no(r))throw r;return t.navigateToNotFound(e)}return t.navigateToNotFound(e)}};const io={},ao=Object.create,oo=Object.entries,so=Object.hasOwn,co=Object.values,lo=new WeakMap;function uo(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 fo(e){let t=lo.get(e);if(t!==void 0)return t;let n=e,r=ao(null);for(let[e,t]of oo(n)){let n=ao(null);for(let[r,i]of oo(t))i!==void 0&&(n[r]=uo(e,r,i));r[e]=n}for(let e of co(r))for(let t of co(e))if(t!==void 0&&r[t.target]===void 0)throw Error(`[FSM.constructor] state "${t.target}" is not declared in config.transitions`);return lo.set(e,r),r}var po=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=fo(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(!so(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 Z={IDLE:`IDLE`,STARTING:`STARTING`,READY:`READY`,TRANSITION_STARTED:`TRANSITION_STARTED`,LEAVE_APPROVED:`LEAVE_APPROVED`,DISPOSED:`DISPOSED`},Q={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 mo(){return{inflight:void 0,current:void 0,previous:void 0}}const ho=(e,t)=>t?.nav===void 0||t.nav===e.inflight,go=(e,t)=>t!==void 0&&t===e.inflight&&t.externalSignal?.aborted!==!0,_o=(e,t)=>{e.previous=e.current,e.current=Gn(t)},vo=(e,t)=>{_o(e,t.toState),e.inflight=void 0},yo=(e,t)=>{_o(e,t.toState)},bo=e=>{e.previous=e.current,e.current=void 0},xo=e=>{e.current=void 0,e.previous=void 0,e.inflight=void 0},So=(e,t)=>{e.inflight=t},Co={[Z.IDLE]:{[Q.START]:Z.STARTING,[Q.DISPOSE]:{target:Z.DISPOSED,update:xo}},[Z.STARTING]:{[Q.STARTED]:Z.READY,[Q.FAIL]:Z.IDLE,[Q.STOP]:{target:Z.IDLE,update:bo},[Q.DISPOSE]:{target:Z.DISPOSED,update:xo}},[Z.READY]:{[Q.NAVIGATE]:{target:Z.TRANSITION_STARTED,update:So},[Q.SYSTEM_COMMIT]:{target:Z.READY,update:yo},[Q.STOP]:{target:Z.IDLE,update:bo},[Q.DISPOSE]:{target:Z.DISPOSED,update:xo}},[Z.TRANSITION_STARTED]:{[Q.NAVIGATE]:{target:Z.TRANSITION_STARTED,update:So},[Q.LEAVE_APPROVE]:Z.LEAVE_APPROVED,[Q.CANCEL]:Z.READY,[Q.FAIL]:{target:Z.READY,when:ho},[Q.DISPOSE]:{target:Z.DISPOSED,update:xo}},[Z.LEAVE_APPROVED]:{[Q.NAVIGATE]:{target:Z.TRANSITION_STARTED,update:So},[Q.COMPLETE]:{target:Z.READY,when:go,update:vo},[Q.CANCEL]:Z.READY,[Q.FAIL]:{target:Z.READY,when:ho},[Q.DISPOSE]:{target:Z.DISPOSED,update:xo}},[Z.DISPOSED]:{}};function wo(){return new po({initial:Z.IDLE,context:mo(),transitions:Co})}const To=Object.freeze,Eo=`TREE_CHANGED`;function Do(e){return e instanceof Error?e:Error(String(e))}function Oo(e,t,n){return new Promise((r,i)=>{let a=()=>{let e=n.reason;i(e instanceof O&&e.code===w.TRANSITION_CANCELLED?e:new O(w.TRANSITION_CANCELLED,{reason:e}))};if(n.aborted){a();return}n.addEventListener(`abort`,a,{once:!0}),Promise.allSettled(e).then(e=>{if(n.removeEventListener(`abort`,a),n.aborted)return;if(t!==void 0){i(Do(t));return}let o=e.find(e=>e.status===`rejected`);if(o!==void 0){i(Do(o.reason));return}r()})})}function ko(e,t,n){return e.addEventListener(`abort`,t,{once:!0}),()=>{n(),e.removeEventListener(`abort`,t)}}var Ao=class{#e;#t;#n;#r=[];#i=0;constructor(e){this.#e=e.routerFSM,this.#t=e.emitter,this.#s()}static validateSubscribeListener(e){if(typeof e!=`function`)throw TypeError(`[router.subscribe] Expected a function. For Observable pattern use observable(router) from @real-router/rx`)}static validateSubscribeLeaveListener(e){if(typeof e!=`function`)throw TypeError(`[router.subscribeLeave] Expected a function`)}emitRouterStart(){this.#i++;try{this.#t.emit(S.ROUTER_START)}finally{this.#i--}}emitRouterStop(){this.#t.emit(S.ROUTER_STOP)}emitTransitionStart(e,t,n){this.#i++;try{this.#t.emit(S.TRANSITION_START,e,t)}finally{this.#i--}}emitTransitionSuccess(e,t,n){this.#i++;try{this.#t.emit(S.TRANSITION_SUCCESS,e,t,n)}finally{this.#i--}}emitTransitionError(e,t,n){this.#i++;try{this.#t.emit(S.TRANSITION_ERROR,e,t,n)}finally{this.#i--}}emitTransitionCancel(e,t){this.#i++;try{this.#t.emit(S.TRANSITION_CANCEL,e,t)}finally{this.#i--}}emitTransitionLeaveApprove(e,t){this.#i++;try{this.#t.emit(S.TRANSITION_LEAVE_APPROVE,e,t)}finally{this.#i--}}isProcessing(){return this.#i>0}emitTreeChanged(e){this.#t.emit(Eo,e)}isEmittingTreeChanged(){return this.#t.isDispatching(Eo)}subscribeTreeChanged(e){if(this.isDisposed())throw D(new O(w.ROUTER_DISPOSED));return this.#t.on(Eo,t=>{e(t)})}treeChangedListenerCount(){return this.#t.listenerCount(Eo)}sendStart(){this.#e.send(Q.START)}sendStop(){this.#e.send(Q.STOP)}sendDispose(){this.#e.send(Q.DISPOSE)}sendStarted(){this.#e.send(Q.STARTED)}sendNavigate(e){return this.#e.send(Q.NAVIGATE,e)===Z.TRANSITION_STARTED}canCommitTransition(e){return this.#e.canSend(Q.COMPLETE,e)}sendComplete(e){this.#e.send(Q.COMPLETE,e)}sendLeaveApprove(e){this.#e.send(Q.LEAVE_APPROVE,e)}sendFail(e,t,n){this.#e.send(Q.FAIL,{nav:n,fromState:e,error:t})}sendCancel(e,t){this.#e.send(Q.CANCEL,{fromState:e,reason:t})}systemCommit(e){let{toState:t}=e,n=t.transition,r={name:t.name,params:I(t.params,C),search:I(t.search,E),path:t.path,context:{...t.context},...n!==void 0&&{transition:I(n,C)}};if(!this.#e.canSend(Q.SYSTEM_COMMIT))throw this.#o();return this.#e.send(Q.SYSTEM_COMMIT,{...e,toState:r}),r}canBeginTransition(){return this.#e.canSend(Q.NAVIGATE)}canStart(){return this.#e.canSend(Q.START)}canCancel(){return this.#e.canSend(Q.CANCEL)}isActive(){let e=this.#e.getState();return e!==Z.IDLE&&e!==Z.DISPOSED}isDisposed(){return this.#e.getState()===Z.DISPOSED}isTransitioning(){let e=this.#e.getState();return e===Z.TRANSITION_STARTED||e===Z.LEAVE_APPROVED}isLeaveApproved(){return this.#e.getState()===Z.LEAVE_APPROVED}isReady(){return this.#e.getState()===Z.READY}isStarting(){return this.#e.getState()===Z.STARTING}isIdle(){return this.#e.getState()===Z.IDLE}addEventListener(e,t){return this.#a(e,`addEventListener`),this.#t.on(e,t)}subscribe(e){if(this.isDisposed())throw D(new O(w.ROUTER_DISPOSED));return this.#a(S.TRANSITION_SUCCESS,`subscribe`),this.#t.on(S.TRANSITION_SUCCESS,(t,n)=>e({route:t,previousRoute:n}))}subscribeLeave(e){if(this.isDisposed())throw D(new O(w.ROUTER_DISPOSED));this.#r.push(e);let t=!1;return()=>{if(t)return;t=!0;let n=this.#r.indexOf(e);n!==-1&&this.#r.splice(n,1)}}hasLeaveListeners(){return this.#r.length>0}hasPreCommitListeners(){return this.#t.listenerCount(S.TRANSITION_START)>0||this.#t.listenerCount(S.TRANSITION_LEAVE_APPROVE)>0}awaitLeaveListeners(e,t,n){if(t===void 0)return;let r=To({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 Do(a);return}return Oo(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=ko(t,()=>{this.sendCancelIfPossible(this.#e.getContext().current,t.reason)},()=>{e.detachExternalBridge=void 0})),io}#a(e,t){let n=this.#n?.();n&&n.eventBus.validateCountThresholds(this.#t.listenerCount(e)+1,e,t)}#o(){if(this.isDisposed())return new O(w.ROUTER_DISPOSED);let e;return e=this.isTransitioning()?`[router] cannot commit a state while a transition is in flight — the navigation in progress commits its own`:this.isStarting()?`[router] cannot commit before the start navigation does — the boot would overwrite it; await start() first`:`[router] cannot commit a state before the router has started`,new O(w.ROUTER_NOT_STARTED,{message:e})}#s(){let e=this.#e;e.on(Z.STARTING,Q.STARTED,()=>{this.emitRouterStart()}),e.on(Z.READY,Q.STOP,()=>{this.emitRouterStop()});let t=e=>{let t=e.externalSignal!==void 0&&(this.hasLeaveListeners()||this.hasPreCommitListeners())?this.bridgeExternalSignal(e):io;this.emitTransitionStart(e.toState,e.fromState,t)};e.on(Z.READY,Q.NAVIGATE,t),e.on(Z.TRANSITION_STARTED,Q.NAVIGATE,t),e.on(Z.LEAVE_APPROVED,Q.NAVIGATE,t),e.on(Z.TRANSITION_STARTED,Q.LEAVE_APPROVE,e=>{this.emitTransitionLeaveApprove(e.toState,e.fromState)}),e.on(Z.LEAVE_APPROVED,Q.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 O(w.TRANSITION_CANCELLED);r.cancelReason=i,r.controller?.abort(i),r.detachExternalBridge?.(),this.emitTransitionCancel(r.toState,t)};e.on(Z.TRANSITION_STARTED,Q.CANCEL,n),e.on(Z.LEAVE_APPROVED,Q.CANCEL,n),e.on(Z.READY,Q.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(Z.LEAVE_APPROVED,Q.FAIL,r),e.on(Z.TRANSITION_STARTED,Q.FAIL,r),e.on(Z.STARTING,Q.FAIL,e=>{this.emitTransitionError(void 0,e.fromState,e.error)})}};const jo=new O(w.ROUTER_ALREADY_STARTED);Object.freeze(jo);const Mo={maxListeners:0,warnListeners:0};var No=class{#e=new Map;#t=new Set;#n=null;#r=Mo;#i;#a;constructor(e){e?.limits&&(this.#r=e.limits),this.#i=e?.onListenerError??null,this.#a=e?.onListenerWarn??null}static validateCallback(e,t){if(typeof e!=`function`)throw TypeError(`Expected callback to be a function for event ${t}`)}setLimits(e){this.#r=e}on(e,t){let n=this.#e.get(e),r=n?.size??0;if(n?.has(t))throw Error(`Duplicate listener for "${e}"`);let{maxListeners:i,warnListeners:a}=this.#r;if(i!==0&&r>=i)throw Error(`Listener limit (${i}) reached for "${e}"`);a!==0&&r===a&&this.#a!==null&&(this.#n??=new Set,this.#n.has(e)||(this.#a(e,a),this.#n.add(e)));let o=n;return o===void 0&&(o=new Set,this.#e.set(e,o)),o.add(t),()=>{this.off(e,t)}}off(e,t){let n=this.#e.get(e);n&&(n.delete(t),n.size===0&&(this.#e.delete(e),this.#n?.delete(e)))}emit(e,t,n,r,i){let a=this.#e.get(e);if(!a||a.size===0||this.#t.has(e))return;let o=arguments.length-1;this.#t.add(e);try{if(a.size===1){let[s]=a;this.#o(e,s,o,t,n,r,i)}else{let s=[...a];for(let a of s)this.#o(e,a,o,t,n,r,i)}}finally{this.#t.delete(e)}}clearAll(){this.#e.clear(),this.#n=null}listenerCount(e){return this.#e.get(e)?.size??0}isDispatching(e){return this.#t.has(e)}#o(e,t,n,r,i,a,o){try{let s=this.#s(t,n,r,i,a,o);s!=null&&typeof s.then==`function`&&Promise.resolve(s).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 Po=Object.freeze({log:0,warn:1,error:2}),Fo=Object.freeze({all:0,"warn-error":1,"error-only":2,none:3}),Io=Object.hasOwn;var Lo=class{#e={level:`all`,callbackIgnoresLevel:!1};#t=0;#n=!1;constructor(e){e&&this.configure(e)}configure(e){let t=Rn(e),n=t.level;n!==void 0&&(this.#e.level=n,this.#t=Fo[n]),Io(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=Po[e]<this.#t;i||this.#i(e,t,n,r),this.#a(e,t,n,i,r)}#i(e,t,n,r){if(typeof console<`u`&&typeof console[e]==`function`){let i=t?`[${t}] ${n}`:n;console[e](i,...r)}}#a(e,t,n,r,i){if(!(!this.#e.callback||!this.#e.callbackIgnoresLevel&&r)&&!this.#n){this.#n=!0;try{let r=this.#e.callback(e,t,n,...i);r!=null&&typeof r.then==`function`&&Promise.resolve(r).catch(e=>{this.#o(`[Logger] Error in async callback:`,e)})}catch(e){this.#o(`[Logger] Error in callback:`,e)}finally{this.#n=!1}}}#o(e,t){typeof console<`u`&&typeof console.error==`function`&&console.error(e,t)}};function Ro(e){let t=zo(e),n=Go(e),r=()=>s(e.router).validator;Bo(e),Vo(e,r),Ho(e,t,r),Uo(e,n,r),Wo(e,t,r),Ko(e,n),qo(e),Jo(e,n)}function zo(e){let{router:t,dependenciesStore:n}=e,r=e=>n.dependencies[e];return e=>e(t,r)}function Bo(e){e.dependenciesStore.limits=e.limits,e.eventBus.setLimits({maxListeners:e.limits.maxListeners,warnListeners:e.limits.warnListeners})}function Vo(e,t){e.eventBus.setValidatorAccessor(t)}function Ho(e,t,n){let r={logger:s(e.router).logger,compileFactory:t,getValidator:n};e.routeLifecycle.setDependencies(r)}function Uo(e,t,n){let r={logger:s(e.router).logger,getValidator:n,port:t,addActivateGuard:(t,n,r)=>{e.routeLifecycle.addCanActivate(t,n,!0,r)},addDeactivateGuard:(t,n,r)=>{e.routeLifecycle.addCanDeactivate(t,n,!0,r)},compileGuard:(t,n)=>e.routeLifecycle.compileGuardFactory(t,n),getState:()=>e.state.get(),areStatesEqual:(t,n,r)=>e.state.areStatesEqual(t,n,r),getDependency:t=>e.dependenciesStore.dependencies[t]};e.routes.setDependencies(r),e.routes.setLifecycleNamespace(e.routeLifecycle)}function Wo(e,t,n){let r={logger:s(e.router).logger,addEventListener:(t,n)=>e.eventBus.addEventListener(t,n),canNavigate:()=>e.eventBus.canBeginTransition(),compileFactory:t,getValidator:n};e.plugins.setDependencies(r)}function Go(e){let t=s(e.router),n=e.routes.getStore(),r=(e,n)=>{t.validator?.state.reportUndeclaredParamKey(e,n)},i=(e,n)=>{t.validator?.state.reportDroppedQueryKey(e,n)};return{resolveForward:(e,n,r)=>t.forwardState(e,n,r),defaultParams:e=>n.config.defaultParams[e],defaultSearch:e=>n.config.defaultSearch[e],buildPath:(t,n,r)=>e.routes.buildPath(t,n,r,e.options.get()),queryNames:t=>e.routes.getQueryParams(t),pathNames:t=>e.routes.hasRoute(t)?e.routes.getUrlParams(t):void 0,admitsUndeclaredQuery:()=>e.options.get().queryParamsMode===`loose`,get reportDroppedQueryKey(){return t.validator?i:void 0},get reportUndeclaredParamKey(){return t.validator?r:void 0}}}function Ko(t,n){let r={logger:s(t.router).logger,getOptions:()=>t.options.get(),hasRoute:e=>t.routes.hasRoute(e),getQueryParams:e=>t.routes.getQueryParams(e),getMetaForState:e=>t.routes.getMetaForState(e),getState:()=>t.state.get(),buildNavigateState:(r,i,a)=>{s(t.router).validator?.routes.validateStateBuilderArgs(r,i,`navigate`);let o=V(n,r,i,a,{diagnoseUndeclared:!0});if(t.routes.getMetaForState(o.name)!==void 0)return e(`navigate`,o.name,o.path,n.queryNames(o.name)),fr(o,H(o,n))},resolveDefault:()=>{let e=t.options.get(),n=s(t.router),r=or(e.defaultRoute,e=>t.dependenciesStore.dependencies[e]),i=or(e.defaultParams,e=>t.dependenciesStore.dependencies[e]),a=or(e.defaultSearch,e=>t.dependenciesStore.dependencies[e]);return typeof e.defaultRoute==`function`&&n.validator?.options.validateResolvedDefaultRoute(r,n.routeGetStore()),{route:r,params:i,search:a}},startTransition:e=>t.eventBus.sendNavigate(e),systemCommit:(e,n,r)=>t.eventBus.systemCommit({toState:e,fromState:n,opts:r}),cancelNavigation:e=>{t.eventBus.sendCancelIfPossible(t.state.get(),e)},bridgeExternalSignal:e=>{t.eventBus.bridgeExternalSignal(e)},canCommitTransition:e=>t.eventBus.canCommitTransition(e)?eo:void 0,sendTransitionDone:e=>{t.eventBus.sendComplete(e)},sendTransitionFail:(e,n,r)=>{t.eventBus.sendFail(e,n,r)},emitTransitionError:(e,n,r)=>{t.eventBus.emitTransitionError(e,n,r)},sendLeaveApprove:e=>{t.eventBus.sendLeaveApprove(e)},canNavigate:()=>t.eventBus.canBeginTransition(),isStarting:()=>t.eventBus.isStarting(),getLifecycleFunctions:()=>t.routeLifecycle.getFunctions(),canDeactivateCurrent:(e,n,r)=>t.routeLifecycle.canNavigateTo(e,[],n,r),isTransitioning:()=>t.eventBus.isTransitioning(),clearCanDeactivate:(e,n)=>{t.routeLifecycle.clearCanDeactivate(e,`external`)},hasLeaveListeners:()=>t.eventBus.hasLeaveListeners(),hasPreCommitListeners:()=>t.eventBus.hasPreCommitListeners(),awaitLeaveListeners:(e,n,r)=>t.eventBus.awaitLeaveListeners(e,n,r)};t.navigation.setDependencies(r)}function qo(e){e.lifecycle.setDependencies({getOptions:()=>e.options.get(),navigateToState:(t,n)=>e.navigation.navigateToState(t,n),navigateToNotFound:t=>e.navigation.navigateToNotFound(t),matchPath:t=>e.routes.matchPath(t,e.options.get()),completeStart:()=>{e.eventBus.sendStarted()},isIdle:()=>e.eventBus.isIdle()})}function Jo(e,t){e.state.setDependencies({port:()=>t,getUrlParams:t=>e.routes.getUrlParams(t)})}const Yo=Object.create,Xo=Object.keys,Zo=Object.freeze;var Qo=class e{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;constructor(n=[],r={},i={}){let{logger:o,...s}=r,c=new Lo(o?Rn(o):void 0);this.#f=e=>{pa(e)||c.error(`router.start`,`Unexpected start error`,e)},ar.validateOptionsIsObject(r),On(i),n.length>0&&An(n);let l=rs(s);this.#r=es(s),this.#e=new ar(l),this.#t=Qn(l.limits),this.#n=l.limits==null?void 0:Zo(Xo(l.limits)),this.#i=tr(i),this.#a=new pr,this.#o=new ra(n,cs(this.#e.get()),c),this.#s=new Dr,this.#c=new br,this.#l=new $a,this.#u=new ro;let d=wo();this.#a.setContext(d.getContext());let f=new No({onListenerError:(e,t)=>{c.error(`Router`,`Error in listener for ${e}:`,t)},onListenerWarn:(e,t)=>{c.warn(`router.addEventListener`,`Event "${e}" has ${t} listeners — possible memory leak`)}});this.#d=new Ao({routerFSM:d,emitter:f});let h=new Map,g=e=>{let t=e.params,n=e.search;return{name:e.name,params:t==null?t:B(t),search:n==null?n:B(n)}},_=p(m.forwardState,(e,t,n)=>this.#o.forwardState(e,t,n),h,g,ts),v=((e,t,n)=>{let r=_(e,t,n),i=r.name,o=r.params;a(`forwardState`,i,o,this.#o.getQueryParams(i),()=>i===e?"the `params` bag leaving the forwardState chain":`the \`params\` bag leaving the forwardState chain (forwarded here from "${e}")`);let s=r.search,c=s==null;return{name:i,params:B(o??C),search:c?s:B(s)}}),b=p(m.forwardState,(e,t,n)=>({name:e,params:t,search:n}),h,g,ts);this.#p=(e,t,n)=>{let r=b(e,t,n),i=r.params,a=r.search;return this.#o.buildPathFromIntent(r.name,i??C,a)},t(this,{logger:c,makeState:(e,t,n,r)=>this.#a.makeState(e,t,n,r),getMetaForState:e=>this.#o.getMetaForState(e),getQueryParams:e=>this.#o.getQueryParams(e),forwardState:v,buildStateResolved:(e,t)=>this.#o.buildStateResolved(e,t),port:()=>this.#o.getPort(),matchPath:(e,t)=>this.#o.matchPath(e,t),getOptions:()=>this.#e.get(),getAdoptedOrigins:()=>this.#r,addEventListener:(e,t)=>this.#d.addEventListener(e,t),treeChanged:{emit:e=>{this.#d.emitTreeChanged(e)},subscribe:e=>this.#d.subscribeTreeChanged(e),listenerCount:()=>this.#d.treeChangedListenerCount(),isEmitting:()=>this.#d.isEmittingTreeChanged()},emitTransitionError:e=>{this.#d.emitTransitionError(void 0,this.#a.get(),e)},navigateToNotFound:e=>this.#l.navigateToNotFound(e),revalidateToNotFound:e=>this.#l.revalidateToNotFound(e),start:u(m.start,e=>this.#u.start(e),h),navigateToState:(t,n)=>(this.#g(),e.#m(this.#l.navigateToState(t,n??y))),interceptors:h,setRootPath:e=>{this.#o.setRootPath(e)},getRootPath:()=>this.#o.getStore().rootPath,getTree:()=>this.#o.getStore().tree,isDisposed:()=>this.#d.isDisposed(),validator:null,dependenciesGetStore:()=>this.#i,getCloneState:()=>({options:{...this.#e.get()},dependencies:Xn({...this.#i.dependencies}),pluginFactories:this.#c.getAll(),loggerConfig:c.getConfig(),limits:this.#t,limitKeys:this.#n}),routeGetStore:()=>this.#o.getStore(),getStateName:()=>this.#a.get()?.name,isTransitioning:()=>this.#d.isTransitioning(),systemCommit:(e,t,n)=>this.#d.systemCommit({toState:e,fromState:t,opts:n}),routerExtensions:[],contextClaimRecords:new Map,hydrationState:null}),Ro({router:this,options:this.#e,limits:this.#t,dependenciesStore:this.#i,state:this.#a,routes:this.#o,routeLifecycle:this.#s,plugins:this.#c,navigation:this.#l,lifecycle:this.#u,eventBus:this.#d}),this.isActiveRoute=this.isActiveRoute.bind(this),this.buildPath=this.buildPath.bind(this),this.getState=this.getState.bind(this),this.getPreviousState=this.getPreviousState.bind(this),this.areStatesEqual=this.areStatesEqual.bind(this),this.shouldUpdateNode=this.shouldUpdateNode.bind(this),this.isActive=this.isActive.bind(this),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.dispose=this.dispose.bind(this),this.canNavigateTo=this.canNavigateTo.bind(this),this.usePlugin=this.usePlugin.bind(this),this.navigate=this.navigate.bind(this),this.navigateToDefault=this.navigateToDefault.bind(this),this.navigateToNotFound=this.navigateToNotFound.bind(this),this.subscribe=this.subscribe.bind(this),this.subscribeLeave=this.subscribeLeave.bind(this),this.isLeaveApproved=this.isLeaveApproved.bind(this);try{this.#o.flushPendingGuards()}catch(e){throw this.dispose(),e}}isActiveRoute(e,t,n,r,i){let a=s(this);return a.validator?.routes.validateIsActiveRouteArgs(e,t,r,i),a.validator?.navigation.validateSearch(n,`isActiveRoute`),a.validator?.routes.validateRouteName(e,`isActiveRoute`),e===``?(a.logger.warn(`real-router`,`isActiveRoute("") called with empty string. Root node is not considered a parent of any route.`),!1):this.#o.isActiveRoute(e,t,n,r,i)}buildPath(e,t,n){let r=s(this);r.validator?.routes.validateBuildPathArgs(e),r.validator?.navigation.validateParamsShape(t,`buildPath`),r.validator?.navigation.validateSearch(n,`buildPath`);let i=R(t);return r.validator?.navigation.validateParams(i,`buildPath`),this.#p(e,i??C,n)}getState(){return this.#a.get()}getPreviousState(){return this.#a.getPrevious()}areStatesEqual(e,t,n=!0){return s(this).validator?.state.validateAreStatesEqualArgs(e,t,n),this.#a.areStatesEqual(e,t,n)}shouldUpdateNode(e){return s(this).validator?.routes.validateShouldUpdateNodeArgs(e),ra.shouldUpdateNode(e,e=>this.#o.getMetaForState(e))}isActive(){return this.#d.isActive()}start(e){let t=this.#h(e);return t.catch(this.#f),t}stop(){return this.#d.sendCancelIfPossible(this.#a.get()),!this.#d.isReady()&&!this.#d.isTransitioning()&&!this.#d.isStarting()||this.#d.sendStop(),this}dispose(){if(this.#d.isDisposed())return;this.#d.sendCancelIfPossible(this.#a.get()),(this.#d.isReady()||this.#d.isTransitioning())&&this.#d.sendStop(),this.#d.sendDispose(),this.#d.clearAll(),this.#c.disposeAll();let e=s(this);for(let t of e.routerExtensions)for(let e of t.keys)delete this[e];e.routerExtensions.length=0,e.contextClaimRecords.clear(),e.interceptors.clear(),this.#o.clearRoutes(),this.#s.clearAll(),this.#i.dependencies=Yo(null),this.#v()}canNavigateTo(e,t,n){let r=s(this);r.validator?.routes.validateRouteName(e,`canNavigateTo`),r.validator?.navigation.validateParamsShape(t,`canNavigateTo`),r.validator?.navigation.validateSearch(n,`canNavigateTo`);let i;try{i=R(t)}catch(t){return r.logger.warn(`router.canNavigateTo`,`Reading the params bag for route "${e}" threw; treating the route as unreachable.`,t),!1}if(r.validator?.navigation.validateParams(i,`canNavigateTo`),!this.#o.hasRoute(e)||g(t,this.#o.getQueryParams(e))!==void 0)return!1;let a=this.#o.getPort(),o;try{o=V(a,e,i??C,n)}catch(t){return r.logger.warn(`router.canNavigateTo`,`Resolving route "${e}" threw while answering the predicate; treating the route as unreachable.`,t),!1}let c;try{c=fr(o,H(o,a))}catch{return!1}let l=this.#a.get(),{toDeactivate:u,toActivate:d}=$i(c,l,e=>this.#o.getMetaForState(e));return this.#s.canNavigateTo(u,d,c,l)}usePlugin(...e){if(this.#d.isDisposed())throw D(new O(w.ROUTER_DISPOSED));let t=e.filter(Boolean);if(t.length===0)return()=>{};let n=s(this);n.validator?.plugins.validatePluginLimit(this.#c.count(),this.#t);for(let e of t)n.validator?.plugins.validateNoDuplicatePlugins(e,this.#c.getAll());return this.#c.use(...t)}subscribe(e){return Ao.validateSubscribeListener(e),this.#d.subscribe(e)}subscribeLeave(e){return Ao.validateSubscribeLeaveListener(e),this.#d.subscribeLeave(e)}isLeaveApproved(){return this.#d.isLeaveApproved()}navigate(t,n,r,i){this.#g();let a=s(this),o,c,l,u;typeof t==`object`&&t?(o=t.name,c=t.params,l=t.search,u=n??y):(o=t,c=n,l=r,u=i??y),d(a,`navigate`,o,c),a.validator?.navigation.validateNavigateArgs(o),a.validator?.navigation.validateParamsShape(c,`navigate`),a.validator?.navigation.validateSearch(l,`navigate`),a.validator?.navigation.validateNavigationOptions(u,`navigate`);let f;try{f=R(c)}catch(e){return Promise.reject(e)}return a.validator?.navigation.validateParams(f,`navigate`),e.#m(this.#l.navigate(o,f??C,l,u))}navigateToDefault(t){this.#g();let n=s(this);n.validator?.navigation.validateNavigateToDefaultArgs(t);let r=t??y;return n.validator?.navigation.validateNavigationOptions(r,`navigateToDefault`),e.#m(this.#l.navigateToDefault(r))}navigateToNotFound(e){if(this.#g(),!this.#d.isActive())throw D(new O(w.ROUTER_NOT_STARTED));if(e!==void 0&&typeof e!=`string`)throw TypeError(`[router.navigateToNotFound] path must be a string, got ${typeof e}`);if(e!==void 0)return this.#l.navigateToNotFound(e);let t=this.#a.get();if(t===void 0)throw D(new O(w.ROUTER_NOT_STARTED,{message:`[router.navigateToNotFound] cannot derive the path before the start navigation commits — pass an explicit path`}));return this.#l.navigateToNotFound(t.path)}static#m(e){return e instanceof Promise?e:Promise.resolve(e)}#h(e){if(!this.#d.canStart())return Promise.reject(jo);s(this).validator?.navigation.validateStartArgs(e),this.#d.sendStart();let t;try{let n=s(this).start(e);t=typeof n?.then==`function`?n:Promise.reject(TypeError("[router.start] a `start` interceptor returned without calling next(). Every start interceptor must return `next(path)`."))}catch(e){t=Promise.reject(e)}return t.catch(e=>this.#_(e))}#g(){if(this.#d.isProcessing())throw D(new O(w.REENTRANT_NAVIGATION,{message:`[router] cannot start a navigation from inside a router event listener — the nested navigation would commit a state the outer one overwrites. Defer it: queueMicrotask(() => router.navigate(...)), await the current transition, or use an async listener.`}));if(this.#l.isPreparing())throw D(new O(w.REENTRANT_NAVIGATION,{message:`[router] cannot start a navigation from inside a forwardState interceptor, a route's encodeParams or dynamic forwardTo callback, or a defaultRoute/defaultParams/defaultSearch option callback — they run while a navigation is being prepared, before it is announced. Defer it: queueMicrotask(() => router.navigate(...)).`}))}#_(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 D(new O(w.ROUTER_DISPOSED))}function $o(e){return ns(e)&&!Object.isFrozen(e)&&e!==nr.defaultParams&&e!==nr.defaultSearch}function es(e){let{defaultParams:t,defaultSearch:n}=e;return{...$o(t)&&{defaultParams:new WeakRef(t)},...$o(n)&&{defaultSearch:new WeakRef(n)}}}function ts(e,t,n){return[e,R(t),R(n)]}function ns(e){return typeof e==`object`&&!!e}function rs(e){let t={...e};return e.limits!=null&&(t.limits=z(`limits`,e.limits)),ns(e.defaultParams)&&(t.defaultParams=z(`defaultParams`,e.defaultParams)),ns(e.defaultSearch)&&(t.defaultSearch=z(`defaultSearch`,e.defaultSearch)),t}const is=Object.freeze({});function as(e,t){let n;try{n=t[e]}catch(t){throw TypeError(`[router.constructor] Invalid "queryParams.${e}": reading it threw.`,{cause:t})}if(n!=null){if(typeof n==`string`)return n;try{return String(n)}catch(t){throw TypeError(`[router.constructor] Invalid "queryParams.${e}": its value cannot be converted to a string.`,{cause:t})}}}function os(e){if(e==null)return`default`;try{return String(e)}catch(e){throw TypeError(`[router.constructor] Invalid "urlParamsEncoding": coercing it threw.`,{cause:e})}}function ss(e){if(!e)return is;let t=as(`arrayFormat`,e),n=as(`booleanFormat`,e),r=as(`nullFormat`,e),i=as(`numberFormat`,e);return Zo({...t!==void 0&&{arrayFormat:t},...n!==void 0&&{booleanFormat:n},...r!==void 0&&{nullFormat:r},...i!==void 0&&{numberFormat:i}})}function cs(e){return Zo({strictTrailingSlash:e.trailingSlash===`strict`,caseSensitive:e.caseSensitive,strictQueryParams:e.queryParamsMode===`strict`,urlParamsEncoding:os(e.urlParamsEncoding),queryParams:ss(e.queryParams)})}export{wn as A,zr as C,er as D,V as E,An as F,kn as I,It as L,Tn as M,Dn as N,R as O,jn as P,Lt as R,Br as S,H as T,ii as _,xi as a,qr as b,bi as c,vi as d,Ci as f,Ei as g,ri as h,Di as i,En as j,Xn as k,_i as l,ki as m,$i as n,yi as o,wi as p,K as r,hi as s,Qo as t,gi as u,pi as v,dr as w,Nr as x,Jr as y};
2
+ //# sourceMappingURL=Router-CaR9objU.mjs.map