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