@real-router/core 0.74.4 → 0.74.6
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-8HpJ4G7u.js +2 -0
- package/dist/cjs/Router-8HpJ4G7u.js.map +1 -0
- package/dist/cjs/api.js +1 -1
- package/dist/cjs/{cloneRouter-DwmxMRUb.js → cloneRouter-B2T6Rdyz.js} +2 -2
- package/dist/cjs/{cloneRouter-DwmxMRUb.js.map → cloneRouter-B2T6Rdyz.js.map} +1 -1
- package/dist/cjs/esm-BEsl32ya.js +2 -0
- package/dist/cjs/esm-BEsl32ya.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/utils.js +1 -1
- package/dist/cjs/validation.js +1 -1
- package/dist/esm/Router-EYmAJsXk.mjs +2 -0
- package/dist/esm/Router-EYmAJsXk.mjs.map +1 -0
- package/dist/esm/api.mjs +1 -1
- package/dist/esm/{cloneRouter-DQUuMMcm.mjs → cloneRouter-M_dwhLD_.mjs} +2 -2
- package/dist/esm/{cloneRouter-DQUuMMcm.mjs.map → cloneRouter-M_dwhLD_.mjs.map} +1 -1
- package/dist/esm/esm-C2tc0t6J.mjs +2 -0
- package/dist/esm/esm-C2tc0t6J.mjs.map +1 -0
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/utils.mjs +1 -1
- package/dist/esm/validation.mjs +1 -1
- package/package.json +1 -1
- package/dist/cjs/Router-0DdZvYky.js +0 -2
- package/dist/cjs/Router-0DdZvYky.js.map +0 -1
- package/dist/cjs/esm-C7hGyncU.js +0 -2
- package/dist/cjs/esm-C7hGyncU.js.map +0 -1
- package/dist/esm/Router-DQaAlkH_.mjs +0 -2
- package/dist/esm/Router-DQaAlkH_.mjs.map +0 -1
- package/dist/esm/esm-Cp_gASSZ.mjs +0 -2
- package/dist/esm/esm-Cp_gASSZ.mjs.map +0 -1
package/dist/cjs/esm-C7hGyncU.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=new WeakMap;function t(t){let n=e.get(t);if(!n)throw TypeError(`[real-router] Invalid router instance — not found in internals registry`);return n}function n(t,n){e.set(t,n)}function r(e,t,n){let r=t;for(let t of e){let e=r;r=(...n)=>t(e,...n)}return r(...n)}function i(e,t,n){return((...i)=>{let a=n.get(e);return!a||a.length===0?t(...i):r(a,t,i)})}function a(e,t,n){return(i,a)=>{let o=n.get(e);return!o||o.length===0?t(i,a):r(o,t,[i,a])}}const o=`[^>]*`;function s(e){let t=!1;for(let n of e)if(n===`<`)t=!0;else if(n===`>`){if(!t)return!1;t=!1}return!t}const c=/[<>]/u,l=e=>e===58||e===42;function u(e){let t=[],n=0,r=!1;for(let i=0;i<e.length;i+=1){let a=e.charCodeAt(i);a===60?r=!0:a===62?r=!1:a===47&&!r&&(t.push(e.slice(n,i)),n=i+1)}return t.push(e.slice(n)),t}function d(e){let t=e.length;if(t===0)return{kind:`static`,text:``};if(!l(e.charCodeAt(0))){for(let n=0;n<t;n+=1){let r=e.charCodeAt(n);if(r===60)return{error:`constraint-in-static`};if(l(r)&&n+1<t){let t=e.charCodeAt(n+1);if(t!==60&&t!==63)return{error:`fused-marker`}}}return e.charCodeAt(t-1)===63?{error:`name-less`}:{kind:`static`,text:e}}let n=e.charCodeAt(0)===42,r=1;for(;r<t;){let t=e.charCodeAt(r);if(t===60||t===63)break;r+=1}let i=e.slice(1,r);if(i.length===0)return{error:`name-less`};if(l(i.charCodeAt(i.length-1)))return{error:`trailing-marker`};let a,o=!1;if(r<t)if(e.charCodeAt(r)===60){let n=e.indexOf(`>`,r+1);if(n===-1)return{error:`unbalanced-constraint`};if(n===r+1)return{error:`empty-constraint`};a=e.slice(r,n+1);let i=n+1;if(i<t)if(e.charCodeAt(i)===63)o=!0;else return{error:`fused-constraint-suffix`}}else o=!0;return n?o?{error:`optional-splat`}:{kind:`splat`,name:i}:a===void 0?{kind:`param`,name:i,optional:o}:{kind:`param`,name:i,constraint:a,optional:o}}function f(e){for(let t of u(e)){let e=d(t);if(`error`in e)return e.error}}function p(e){let t=u(e);for(let e=2;e<t.length;e+=1)if(t[e].startsWith(`*`)&&m(t[e-1])&&m(t[e-2]))return!0;return!1}function m(e){return e.startsWith(`:`)&&e.endsWith(`?`)}function h(e){return`(${e.replaceAll(/(^<|>$)/g,``)})`}function g(e,t){try{return RegExp(`^${h(e)}$`)}catch{throw Error(`[buildParamMeta] Invalid constraint '${e}' on parameter '${t}': the body between '<' and '>' must be a valid regular expression (e.g. '<[0-9]+>', '<[a-z]+>').`)}}const ee=new RegExp(String.raw`([:*]${`[^/?<]+`}(?:<${o}>)?)\?(?=[/?]|$)`,`g`),te=RegExp(`<${o}>`,`g`),ne=/\?(.+)$/;function re(e){return e.replaceAll(te,e=>`<${`x`.repeat(e.length-2)}>`).replaceAll(ee,`$1\0`)}const _=Object.freeze([]),ie=Object.freeze({}),ae=new Map;function oe(e,t,n,r,i){for(let a of u(e)){if(a.length===0)continue;let e=d(a);`error`in e||e.kind===`static`||(t.push(e.name),r[e.name]=`url`,e.kind===`splat`?n.push(e.name):e.constraint!==void 0&&i.set(e.name,{pattern:g(e.constraint,e.name),constraint:e.constraint}))}}function v(e){let t=[],n=[],r=[],i={},a=new Map,o=ne.exec(re(e));if(o!==null){let t=e.slice(o.index+1).split(`&`);for(let e of t){let t=e.trim();t.length>0&&(n.push(t),i[t]=`query`)}e=e.slice(0,o.index)}return oe(e,t,r,i,a),se(t,n,r,i,a,e)}function se(e,t,n,r,i,a){return{urlParams:e.length===0?_:e,queryParams:t.length===0?_:t,spatParams:n.length===0?_:n,paramTypeMap:e.length===0&&t.length===0?ie:r,constraintPatterns:i.size===0?ae:i,pathPattern:a}}const ce=/[^\w!$'()*+,.:;|~-]/gu,le=/[^\w!$'()*+,.:;|~-]/u,ue=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,y=e=>t=>{try{return e(t)}catch{return e(t.replaceAll(ue,`�`))}},de=y(e=>e.replaceAll(ce,e=>encodeURIComponent(e))),fe={default:e=>le.test(e)?de(e):e,uri:y(encodeURI),uriComponent:y(encodeURIComponent),none:e=>e},pe={default:decodeURIComponent,uri:decodeURI,uriComponent:decodeURIComponent,none:e=>e},me=(e,t,n)=>{let r=fe[t],i=String(e);if(!n)return r(i);let a=i.split(`/`),o=r(a[0]);for(let e=1;e<a.length;e++)o+=`/`+r(a[e]);return o},b=Object.freeze(Object.create(null));function x(){return{staticChildren:b,hasChildren:!1,paramChild:void 0,splatChild:void 0,route:void 0,routeIsStrong:!1,slashChildRoute:void 0}}function S(e){return e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e}function he(e,t){return e===``?t:t===``?e:e+t}function C(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function ge(e){let t=0;for(;t<e.length;)if(e.codePointAt(t)===37){if(t+2>=e.length)return!1;let n=e.codePointAt(t+1)??0,r=e.codePointAt(t+2)??0;if(!C(n)||!C(r))return!1;t+=3}else t++;return!0}const _e=Object.freeze([]),ve=Object.freeze(new Set),ye=Object.freeze(new Map),be=Object.freeze([]),xe=Object.freeze({}),Se=RegExp(`<${o}>`,`g`);function Ce(e,t,n){let r=t.has(e.name);return{paramName:e.name,isOptional:e.kind===`param`?e.optional:!1,encoder:r?e=>me(e,n,!0):fe[n]}}function we(e,t,n){let r=new Set,i=new Set;for(let e of t){for(let t of e.paramMeta.urlParams)r.add(t);for(let t of e.paramMeta.spatParams)i.add(t)}if(r.size===0)return{buildStaticParts:[e],buildParamSlots:be};let a=[],o=[],s=``,c=u(e);for(let[e,t]of c.entries()){e>0&&(s+=`/`);let r=d(t);if(`error`in r||r.kind===`static`){s+=t;continue}a.push(s),s=``,o.push(Ce(r,i,n))}return a.push(s),{buildStaticParts:a,buildParamSlots:o}}function w(e,t,n){throw Error(`[SegmentMatcher.registerTree] Parameter name conflict at the same path position: '${n}${e}' and '${n}${t}'. A parametric URL segment binds to a single name across every route that shares that position — the value cannot be captured under two names. Rename one so both routes agree (e.g. use '${n}${e}' in both).`)}function T(){throw Error(`[SegmentMatcher.registerTree] Empty parameter name: a parameter marker (':' or '*') or an optional '?' must be followed by a name (e.g. ':id', '*rest', ':id?'). A name-less marker or modifier would capture under an empty key at match but emit a literal at build — the two disagree, so it is rejected.`)}function Te(e){throw Error(`[SegmentMatcher.registerTree] Fused parameter marker in segment "${e}": a ':'/'*' marker must begin a segment (e.g. 'a/:b', not 'a:b'). build extracts it as a param while the trie treats the segment as a literal — the two disagree.`)}function Ee(e){throw Error(`[SegmentMatcher.registerTree] Trailing parameter marker in segment "${e}": a param name cannot end in a bare ':' or '*' (e.g. ':y*' — the name is 'y' plus a stray marker). build/meta would capture the marker into the name while the gate rejects it as name-less — the two disagree, so it is rejected.`)}function De(e){throw Error(`[SegmentMatcher.registerTree] Two optional params directly before a splat in "${e}": a single trie slot carries only one optional→splat fork, so the outer optional would overwrite the inner and the omit-outer/take-inner form would silently reshape into the splat. Split into separate routes, or drop the '?' on one.`)}function Oe(e){throw Error(`[SegmentMatcher.registerTree] Non-ASCII static segment "${e}": match rejects non-ASCII input and compares static keys raw, so this route would never match. Percent-encode it (e.g. "/caf%C3%A9") or use a param.`)}function ke(e){throw Error(`[SegmentMatcher.registerTree] Optional splat "${e}" is not supported: a splat cannot be optional — build emits multi-segment URLs the matcher rejects. Use a required splat "*name".`)}function Ae(e){throw Error(`[SegmentMatcher.registerTree] Optional param ":${e}?" before a splat must be constrained: an unconstrained optional before a splat is ambiguous (every multi-segment value has two readings). Add a constraint, e.g. ":${e}<[a-z]+>?", or model it as two routes.`)}function E(e){throw Error(`[SegmentMatcher.registerTree] Unbalanced constraint delimiter ('<' or '>') in path "${e}": every '<' must be closed by a '>'. A stray delimiter desyncs match vs build (buildPath would emit a URL match rejects).`)}function je(e){throw Error(`[SegmentMatcher.registerTree] Empty constraint '<>' in path "${e}": a constraint body must be non-empty (e.g. '<[0-9]+>'). An empty '<>' compiles to a never-matching pattern.`)}function Me(e){throw Error(`[SegmentMatcher.registerTree] Text fused to a constraint '>' in path "${e}": a '<...>' constraint must end its segment or be followed by '/' or an optional '?' — use "/:id<...>/rest", not "/:id<...>rest".`)}function Ne(e){throw Error(`[SegmentMatcher.registerTree] Constraint '<...>' in a static segment in path "${e}": a '<...>' constraint must follow a parameter marker (':' or '*') — a static segment carrying '<...>' is silently stripped. Attach it to a param (e.g. "/:id<...>") or drop it.`)}function Pe(e,t,n){switch(e){case`name-less`:return T();case`trailing-marker`:return Ee(t);case`fused-marker`:return Te(t);case`optional-splat`:return ke(t);case`empty-constraint`:return je(n);case`fused-constraint-suffix`:return Me(n);case`constraint-in-static`:return Ne(n);case`unbalanced-constraint`:return E(n)}}function Fe(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 param name must be unique within a route — two positions cannot both bind ':${r}' (the second silently overwrites the first). Rename one.`)}function Ie(e,t){throw Error(`[SegmentMatcher.registerTree] Invalid query-param declaration "${t}" in route "${e}": a query-param name cannot contain '<' or '>'. This is a reverse-order modifier typo that leaked a constraint into the query — put the optional '?' AFTER the constraint (':id<...>?', not ':id?<...>'). It would never round-trip.`)}function Le(e,t){throw Error(`[SegmentMatcher.registerTree] Name collision in route "${e}": "${t}" is declared as BOTH a path param (':${t}') and a query param ('?${t}'). buildPath would emit its value twice (once in the path, once in the query). Rename one.`)}function Re(e,t){throw Error(`[SegmentMatcher.registerTree] Duplicate route path: routes "${e}" and "${t}" resolve to the same URL. The later registration would silently shadow the earlier (its deep link would resolve to the other route). Give them distinct paths.`)}function ze(e,t){throw Error(`[SegmentMatcher.registerTree] Index route "${e}" (path "/") under the dynamic parent "${t}" is not supported: the index cannot reliably replace the parent on every form of its path — under an optional param it binds only the present form, under a splat it is unreachable. Give the index a distinct path, or make the parent static.`)}function D(e){let t=d(e);return(`error`in t||t.kind===`static`)&&T(),t.name}function O(e,t,n){return e.paramChild?e.paramChild.name!==t&&!n.has(e)&&w(e.paramChild.name,t,`:`):(e.paramChild={node:x(),name:t,fork:void 0},n.add(e)),e.paramChild.node}function Be(e,t,n,r,i,a){let o=t.constraintPatterns.get(n)?.pattern;if(e.paramChild&&e.splatChild){o===void 0&&Ae(n),e.paramChild.fork={constraint:o};return}let s=i+1;if(s<=a){let t=r.indexOf(`/`,s),n=r.slice(s,t===-1?a:t);e.paramChild&&n.startsWith(`:`)&&!n.endsWith(`?`)&&(e.paramChild.fork={skipName:D(n)})}}function Ve(e,t,n){if(!t.hasConstraints||!n.startsWith(`:`)||e.paramChild===void 0)return;let r=t.constraintPatterns.get(D(n))?.pattern;if(r===void 0)return;let i=e.paramChild;i.fork?.constraint===void 0?i.fork={...i.fork,constraint:r}:i.fork.constraint.source!==r.source&&(i.fork={...i.fork,constraint:RegExp(`(?:${i.fork.constraint.source})|(?:${r.source})`,i.fork.constraint.flags)})}function He(e,t,n){return e.splatChild?e.splatChild.name!==t&&!n.has(e)&&w(e.splatChild.name,t,`*`):(e.splatChild={node:x(),name:t},n.add(e)),e.splatChild.node}function k(e,t){e.route!==void 0&&e.route!==t&&e.routeIsStrong===!0&&Re(e.route.name,t.name),e.route=t,e.routeIsStrong=!0}function Ue(e){for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>=128)return!0;return!1}function We(e,t,n){let r=S(n);if(r===`/`){k(e.root,t);return}let i=new Set,a=new Map;A(e,e.root,r,1,t,i,a)}function A(e,t,n,r,i,a,o){let s=o.get(t);if(s===void 0)s=new Set,o.set(t,s);else if(s.has(r))return;s.add(r);let c=n.length;for(;r<=c;){let s=n.indexOf(`/`,r),l=s===-1?c:s,u=n.slice(r,l);if(u.endsWith(`?`)){let r=D(u);A(e,O(t,r,a),n,l+1,i,a,o),l>=c?t.route??=i:A(e,t,n,l+1,i,a,o),Be(t,i,r,n,l,c);return}let d=t;t=Je(e,t,u,a),Ve(d,i,u),r=l+1}k(t,i)}function Ge(e,t,n){let r=n.slice(n.lastIndexOf(`/`)+1),i=n.split(`/`).some(e=>e.startsWith(`:`)&&e.endsWith(`?`)),a=r.startsWith(`*`);(i||a)&&ze(t.name,n);let o=Ke(e,n);o.slashChildRoute=t}function Ke(e,t){return qe(e,e.root,t)}function qe(e,t,n){let r=S(n);if(r===`/`||r===``)return t;let i=t,a=1,o=r.length,s=new Set;for(;a<=o;){let t=r.indexOf(`/`,a),n=t===-1?o:t;if(n<=a)break;let c=r.slice(a,n);i=Je(e,i,c,s),a=n+1}return i}function Je(e,t,n,r){if(n.startsWith(`*`)){let e=He(t,D(n),r);return t.hasChildren=!0,e}if(n.startsWith(`:`)){let e=O(t,D(n),r);return t.hasChildren=!0,e}Ue(n)&&Oe(n);let i=e.options.caseSensitive?n:n.toLowerCase();return i in t.staticChildren||(t.staticChildren===b&&(t.staticChildren=Object.create(null)),t.staticChildren[i]=x(),t.hasChildren=!0),t.staticChildren[i]}function j(e,t,n,r,i){let a=t.fullName===``;a||r.push(t);let o=t.absolute,c=t.paramMeta.pathPattern,l=o&&c.startsWith(`~`)?c.slice(1):c,f=o?l:c;s(f)||E(f);for(let e of u(f)){let t=d(e);`error`in t&&Pe(t.error,e,f)}let m=f.replaceAll(Se,``);p(f)&&De(f);let h=o?m:he(n,m),g=a?i:Ye(e,t,h,o?``:n,r,i);for(let n of t.children.values())j(e,n,h,r,g);a||r.pop()}function Ye(e,t,n,r,i,a){let o=$e(n,r),s=Object.freeze([...i]),c=Xe(s),l=S(n),u=et(e.rootQueryParams,i),d=tt(i),{buildStaticParts:f,buildParamSlots:p}=we(o?S(r):l,o?i.slice(0,-1):i,e.options.urlParamsEncoding),m=p.map(e=>e.paramName),h=m.length===0?ve:new Set(m);h.size!==m.length&&Fe(t.fullName,m),nt(t.fullName,u,h);let g={name:t.fullName,parent:a,matchSegments:s,meta:c,declaredQueryParams:u,declaredQueryParamsSet:u.length===0?ve:new Set(u),hasTrailingSlash:n.length>1&&n.endsWith(`/`),constraintPatterns:d,hasConstraints:d.size>0,buildStaticParts:f,buildParamSlots:p,buildParamNamesSet:h,cachedResult:void 0};return t.paramMeta.urlParams.length===0&&(g.cachedResult=Object.freeze({segments:g.matchSegments,params:xe,meta:g.meta})),e.routesByName.set(t.fullName,g),o?Ze(e,g,r):Qe(e,g,n,l,t),g}function Xe(e){let t={};for(let n of e)t[n.fullName]=n.paramTypeMap;return Object.freeze(t)}function Ze(e,t,n){Ge(e,t,n);let r=S(n),i=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.has(i)&&e.staticCache.set(i,t)}function Qe(e,t,n,r,i){if(We(e,t,n),i.paramMeta.urlParams.length===0){let n=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.set(n,t)}}function $e(e,t){return S(e)===S(t)}function et(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?_e:n}function tt(e){let t=new Map;for(let n of e)for(let[e,r]of n.paramMeta.constraintPatterns)t.set(e,r);return t.size===0?ye:t}function nt(e,t,n){for(let r of t)c.test(r)&&Ie(e,r),n.has(r)&&Le(e,r)}function rt(e){return typeof e==`string`?e:typeof e==`object`?JSON.stringify(e):String(e)}function M(e,t,n){t===`__proto__`?Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}var it=class{get options(){return this.#e}#e;#t=x();#n=new Map;#r=new Map;#i={cleanPath:``,normalized:``,queryString:void 0};#a=[];#o=``;#s;#c;constructor(e){this.#e={caseSensitive:e.caseSensitive??!0,strictTrailingSlash:e.strictTrailingSlash??!1,strictQueryParams:e.strictQueryParams??!1,urlParamsEncoding:e.urlParamsEncoding??`default`,parseQueryString:e.parseQueryString,buildQueryString:e.buildQueryString},this.#s=this.#e.caseSensitive,this.#c=this.#e.urlParamsEncoding===`none`?null:pe[this.#e.urlParamsEncoding]}registerTree(e){this.#a=e.paramMeta.queryParams,j({root:this.#t,options:this.#e,routesByName:this.#n,staticCache:this.#r,rootQueryParams:this.#a},e,``,[],null)}match(e){if(!this.#p(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.#_(t,a)?void 0:r===void 0&&a.cachedResult?a.cachedResult:this.#h(a,{},r);let o={},s=this.#v(n,o);if(s&&!(this.#e.strictTrailingSlash&&!this.#_(t,s))&&this.#S(o)&&!(s.hasConstraints&&!this.#w(o,s)))return this.#h(s,o,r)}buildPath(e,t,n){let r=this.#n.get(e);if(!r)throw Error(`[SegmentMatcher.buildPath] '${e}' is not defined`);r.hasConstraints&&t&&this.#l(r,e,t);let i=this.#u(r,t),a=this.#d(i,n?.trailingSlash),o=this.#f(r,t,n?.queryParamsMode);return a+(o?`?${o}`:``)}getSegmentsByName(e){return this.#n.get(e)?.matchSegments}getMetaByName(e){return this.#n.get(e)?.meta}hasRoute(e){return this.#n.has(e)}#l(e,t,n){for(let[r,i]of e.constraintPatterns){let e=n[r];if(e!=null){let n=typeof e==`object`?JSON.stringify(e):String(e);if(!i.pattern.test(n))throw Error(`[SegmentMatcher.buildPath] '${t}' — param '${r}' value '${n}' does not match constraint '${i.constraint}'`)}}}#u(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?.[a.paramName];if(r==null){if(!a.isOptional)throw Error(`[SegmentMatcher.buildPath] Missing required param '${a.paramName}'`);i.length>1?i=i.slice(0,-1):n[e+1].startsWith(`/`)&&(i=``),i+=n[e+1];continue}if(r===``&&!a.isOptional)throw Error(`[SegmentMatcher.buildPath] Missing required param '${a.paramName}' (empty string)`);let o=a.encoder(rt(r));i+=o+n[e+1]}return i}#d(e,t){return t===`always`&&!e.endsWith(`/`)?`${e}/`:t===`never`&&e!==`/`&&e.endsWith(`/`)?e.slice(0,-1):e}#f(e,t,n){if(!t||e.declaredQueryParams.length===0&&n!==`loose`)return``;let r={},i=!1;for(let n of e.declaredQueryParams)n in t&&(r[n]=t[n],i=!0);if(n===`loose`)for(let n in t)Object.hasOwn(t,n)&&!e.declaredQueryParamsSet.has(n)&&!e.buildParamNamesSet.has(n)&&(r[n]=t[n],i=!0);return i?this.#e.buildQueryString(r):``}#p(e){if(e===``&&(e=`/`),e.codePointAt(0)!==47)return!1;let t=this.#m(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=S(n);return this.#i.cleanPath=n,this.#i.normalized=i,this.#i.queryString=r,!0}#m(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}#h(e,t,n){if(!(n!==void 0&&!this.#g(e,t,n)))return{segments:e.matchSegments,params:t,meta:e.meta}}#g(e,t,n){let r;try{r=this.#e.parseQueryString(n)}catch{return!1}if(this.#e.strictQueryParams){let n=e.declaredQueryParamsSet;for(let e in r){if(!n.has(e))return!1;M(t,e,r[e])}}else for(let e in r)M(t,e,r[e]);return!0}#_(e,t){return(e.length>1&&e.endsWith(`/`))===t.hasTrailingSlash}#v(e,t){return e.length===1?this.#t.slashChildRoute??this.#t.route:this.#y(this.#t,e,1,t)}#y(e,t,n,r){let i=e,a=t.length,o=this.#s;for(;n<=a;){let e=t.indexOf(`/`,n),s=e===-1?a:e,c=t.slice(n,s),l=o?c:c.toLowerCase(),u;if(l in i.staticChildren)u=i.staticChildren[l];else if(i.paramChild){let e=i.paramChild,o=e.fork;if(i.splatChild!==void 0){if(o?.constraint!==void 0&&!this.#x(o.constraint,c))return this.#b(i.splatChild,t,n,r);let l={[o?.skipName!==void 0&&s>=a?o.skipName:e.name]:c},u=this.#y(e.node,t,s+1,l);return u!==void 0&&(!u.hasConstraints||this.#C(u,l))?(Object.assign(r,l),u):this.#b(i.splatChild,t,n,r)}u=e.node,o?.skipName!==void 0&&s>=a?r[o.skipName]=c:r[e.name]=c}else if(i.splatChild)return this.#b(i.splatChild,t,n,r);else return;i=u,n=s+1}return i.slashChildRoute??i.route}#b(e,t,n,r){let i=e.node;if(!i.hasChildren)return r[e.name]=t.slice(n),i.route;let a={},o=this.#y(i,t,n,a);return o&&(!o.hasConstraints||this.#C(o,a))?(Object.assign(r,a),o):(r[e.name]=t.slice(n),i.route)}#x(e,t){try{return e.test(this.#c?this.#c(t):t)}catch{return!1}}#S(e){let t=this.#c;if(!t)return!0;for(let n in e){let r=e[n];if(r.includes(`%`)){if(!ge(r))return!1;try{e[n]=t(r)}catch{return!1}}}return!0}#C(e,t){let n=this.#c;for(let[r,i]of e.constraintPatterns){if(!Object.hasOwn(t,r))continue;let e=t[r];if(n&&e.includes(`%`))try{e=n(e)}catch{return!1}if(!i.pattern.test(e))return!1}return!0}#w(e,t){for(let[n,r]of t.constraintPatterns)if(Object.hasOwn(e,n)&&!r.pattern.test(e[n]))return!1;return!0}};const N=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)},P=(e,t)=>{if(e===void 0)return t.boolean.decodeUndefined();let n=t.boolean.decodeRaw(e);if(n!==null)return n;let r=N(e),i=t.number.decode(r);return i===null?t.boolean.decodeValue(r):i},at=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,F=e=>{try{return encodeURIComponent(e)}catch(t){if(!(t instanceof URIError))throw t;return encodeURIComponent(String(e).replaceAll(at,`�`))}},I=e=>{let t=typeof e;if(t!==`string`&&t!==`number`&&t!==`boolean`)throw TypeError(`[search-params] Array element must be a string, number, or boolean — received ${t}`);return F(e)},L=(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}=${I(e)}`);return a.join(`&`)},R={none:{encodeArray:(e,t,n)=>L(e,t,``,n)},brackets:{encodeArray:(e,t,n)=>L(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}=${I(a)}`)}return r.join(`&`)},indexed:!0},comma:{encodeArray:(e,t)=>{let n=[];for(let e of t)e!==null&&n.push(I(e));return n.length===0?``:`${e}=${n.join(`,`)}`},decodeValue:e=>e.includes(`,`)?e.split(`,`):null}},z={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`?!0:e===`false`?!1:null,decodeValue:e=>e},"empty-true":{encode:(e,t)=>t?e:`${e}=false`,decodeUndefined:()=>!0,decodeRaw:e=>e===`true`?!0:e===`false`?!1:null,decodeValue:e=>e}},B={default:{encode:e=>e},hidden:{encode:()=>``}},V={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 Object.is(i,-0)||!Number.isSafeInteger(i)&&!r?null:i}},none:{decode:()=>null}},H=(e,t,n,r)=>{if(e===void 0)throw TypeError(`[search-params] Unknown ${t} "${n}" — expected ${r}`);return e},ot=(e,t,n,r)=>({boolean:H(z[t],`booleanFormat`,t,`"none" | "auto" | "empty-true"`),null:H(B[n],`nullFormat`,n,`"default" | "hidden"`),number:H(V[r],`numberFormat`,r,`"none" | "auto"`),array:H(R[e],`arrayFormat`,e,`"none" | "brackets" | "index" | "comma"`)}),st={boolean:z.auto,null:B.default,number:V.auto,array:R.none},U={arrayFormat:`none`,booleanFormat:`auto`,nullFormat:`default`,numberFormat:`auto`},ct={...U,strategies:st},W=e=>{if(!e||e.arrayFormat===void 0&&e.booleanFormat===void 0&&e.nullFormat===void 0&&e.numberFormat===void 0)return ct;let t=e.arrayFormat??U.arrayFormat,n=e.booleanFormat??U.booleanFormat,r=e.nullFormat??U.nullFormat,i=e.numberFormat??U.numberFormat;return{arrayFormat:t,booleanFormat:n,nullFormat:r,numberFormat:i,strategies:ot(t,n,r,i)}},G=e=>F(e),lt=(e,t,n)=>{let r=G(e);switch(typeof t){case`string`:case`number`:return`${r}=${G(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}=${G(t)}`;default:return`${r}=${G(t)}`}};function K(e,t,n){t===`__proto__`?Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}function q(e,t,n,r){if(!Object.hasOwn(e,t)){K(e,t,r?[n]:n);return}let i=e[t];Array.isArray(i)?i.push(n):K(e,t,[i,n])}function J(e,t,n,r,i){return P(r?e.slice(t+1,n):void 0,i)}function ut(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 dt(e,t,n){let{searchPart:r,nameEnd:i,nameSourceEnd:a,eqPos:o,end:s,hasValue:c,decodedName:l}=e,u=ut(r,i,a);if(u===null)return!1;let d=J(r,o,s,c,t),f=n.get(l);return f===void 0?n.set(l,[[u,d]]):f.push([u,d]),!0}function ft(e,t,n,r,i,a,o){let s=a!==-1&&a<n,c=s?a:n,l=c,u=!1;for(let n=t;n<c;n++)if(e.codePointAt(n)===91){l=n,u=!0;break}let d=N(e.slice(t,l));if(!(o!==void 0&&u&&dt({searchPart:e,nameEnd:l,nameSourceEnd:c,eqPos:a,end:n,hasValue:s,decodedName:d},i,o))){if(!u&&s&&i.array.decodeValue){let t=e.slice(a+1,n),o=i.array.decodeValue(t);if(o){for(let e of o)q(r,d,P(e,i),!0);return}}q(r,d,J(e,a,n,s,i),u)}}const pt=(e,t)=>{if(e===``||e===`?`)return{};let n={};return mt(e,n,W(t).strategies),n};function mt(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)),ft(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]),K(t,e,n.map(e=>e[1]))}const ht=(e,t)=>{let n=Object.keys(e);if(n.length===0)return``;let r=W(t),i=[];for(let t of n){let n=e[t];if(n===void 0)continue;let a=lt(t,n,r);a&&i.push(a)}return i.join(`&`)};function Y(e,t){let n=e.path,r=n.startsWith(`~`),i=r?n.slice(1):n,a={name:e.name,path:i,absolute:r,children:[],parent:t};if(e.children)for(let t of e.children){let e=Y(t,a);a.children.push(e)}return a}function gt(e,t,n){let r=Y({name:e,path:t},null);for(let e of n){let t=Y(e,r);r.children.push(t)}return r}const _t=Object.freeze(new Map),vt=Object.freeze([]);function yt(e){return e.parent?.name?`${e.parent.fullName}.${e.name}`:e.name}function bt(e){let t=new Map;for(let n of e)t.set(n.name,n);return t}function xt(e,t){let n=[],r=[];for(let i of e){let e=X(i,t);n.push(e),e.absolute||r.push(e)}return{childrenMap:bt(n),nonAbsoluteChildren:r}}function X(e,t){let n=v(e.path),r=n.paramTypeMap,i={name:e.name,path:e.path,absolute:e.absolute,parent:t,children:void 0,paramMeta:n,nonAbsoluteChildren:void 0,fullName:``,paramTypeMap:r};if(i.fullName=yt(i),e.children.length===0)i.children=_t,i.nonAbsoluteChildren=vt;else{let{childrenMap:t,nonAbsoluteChildren:n}=xt(e.children,i);i.children=t,i.nonAbsoluteChildren=n,Object.freeze(i.nonAbsoluteChildren),Object.freeze(i.children)}return Object.freeze(r),Object.freeze(n.urlParams),Object.freeze(n.queryParams),Object.freeze(n.spatParams),Object.freeze(n),Object.freeze(i),i}function St(e){return X(e,null)}function Ct(e,t,n){return St(gt(e,t,n))}function Z(e){let t=e.absolute?`~${e.path}`:e.path,n={name:e.name,path:t};return e.children.size>0&&(n.children=Array.from(e.children.values(),Z)),n}function wt(e){return Array.from(e.children.values(),Z)}function Tt(e){let t=e?.queryParams;return new it({...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=>pt(e,t),buildQueryString:e=>ht(e,t)})}function Q(e,t){return TypeError(`[router.${e}] ${t}`)}function Et(e,t,n){if(!s(e))throw Q(n,`Invalid path for route "${t}": unbalanced constraint delimiter ('<' or '>') in "${e}"`);if(e.includes(`<>`))throw Q(n,`Invalid path for route "${t}": empty constraint '<>' in "${e}" (a constraint body must be non-empty, e.g. '<[0-9]+>')`)}function Dt(e,t,n,r){let i=new Set;for(let a of e){if(i.has(a))throw Q(n,`Invalid path for route "${t}": duplicate parameter name ':${a}' in "${r}" (a param name must be unique within a route — the second binding would overwrite the first)`);i.add(a)}}function Ot(e,t,n,r,i){let a=new Set(e);for(let e of t){if(c.test(e))throw Q(r,`Invalid path for route "${n}": invalid query-param name "${e}" in "${i}" (a query-param name cannot contain '<' or '>' — a reverse-order modifier typo that leaked a constraint into the query; put the optional '?' after the constraint, ':id<...>?')`);if(a.has(e))throw Q(r,`Invalid path for route "${n}": "${e}" is declared as both a path param and a query param in "${i}" — buildPath would emit its value twice (rename one)`)}}function kt(e){let t=!0,n=!1,r=!1;for(let i of e){if(r){r=i!==`>`;continue}if(i===`<`){r=!0;continue}if(i===`/`){t=!0;continue}if(t&&=(n=i===`:`||i===`*`,!1),!n&&i.codePointAt(0)>=128)return!0}return!1}function At(e){for(let t=1;t<e.length;t++)if(e[t]===`?`&&e[t-1]!==`>`&&e[t+1]===`/`&&e[t+2]===`*`)return!0;return!1}function jt(e,t,n,r){if(p(e))throw Q(r,`Invalid path for route "${t}": two optional params directly before a splat are not supported in "${n}" — a single trie slot carries one optional→splat fork, so the omit-outer/take-inner form would silently reshape into the splat. Split into two routes, or drop the '?' on one`);if(At(e))throw Q(r,`Invalid path for route "${t}": an unconstrained optional param before a splat is not supported in "${n}" — it is ambiguous (every multi-segment value has two readings). Add a constraint (e.g. ':lang<[a-z]+>?') or model it as two routes`)}function Mt(e,t,n){switch(e){case`name-less`:case`trailing-marker`:return`Invalid path for route "${t}": parameter marker (':' or '*') without a name in "${n}"`;case`fused-marker`:return`Invalid path for route "${t}": parameter marker (':' or '*') must begin a segment, but "${n}" fuses one to a static prefix (use a boundary marker like "/a/:b")`;case`fused-constraint-suffix`:return`Invalid path for route "${t}": text fused to a constraint '>' in "${n}" (a '<...>' must end its segment or be followed by '/' or an optional '?' — use "/:id<...>/rest", not "/:id<...>rest")`;case`constraint-in-static`:return`Invalid path for route "${t}": constraint '<...>' in a static segment in "${n}" (a '<...>' must follow a parameter marker ':' or '*' — attach it to a param like "/:id<...>", or drop it)`;case`optional-splat`:return`Invalid path for route "${t}": optional splat ('*name?') is not supported in "${n}" — a splat cannot be optional (use a required splat '*name')`;case`unbalanced-constraint`:case`empty-constraint`:return`Invalid path for route "${t}": invalid constraint in "${n}"`}}function Nt(e,t,n){try{return v(e)}catch(r){throw Q(n,`Invalid path for route "${t}": ${(r instanceof Error?r.message:String(r)).replace(/^\[buildParamMeta] /,``)} (in "${e}")`)}}function Pt(e,t,n,r){if(typeof e!=`string`){let t;throw t=e===null?`null`:Array.isArray(e)?`array`:typeof e,Q(n,`Route path must be a string, got ${t}`)}if(e===``)return;if(/\s/.test(e))throw Q(n,`Invalid path for route "${t}": whitespace not allowed in "${e}"`);if(!/^([/?~]|[^/]+$)/.test(e))throw Q(n,`Route "${t}" has invalid path format: "${e}". Path should start with '/', '~', '?' or be a relative segment.`);if(e.includes(`//`))throw Q(n,`Invalid path for route "${t}": double slashes not allowed in "${e}"`);Et(e,t,n);let{pathPattern:i,urlParams:a,queryParams:o}=Nt(e,t,n);Dt(a,t,n,e),Ot(a,o,t,n,e);let s=f(i);if(s!==void 0)throw Q(n,Mt(s,t,e));if(jt(i,t,e,n),kt(i))throw Q(n,`Invalid path for route "${t}": non-ASCII static segment in "${e}" — match compares static segments raw and rejects non-ASCII input, so this route would never match. Percent-encode it (e.g. '/caf%C3%A9') or use a param`);let c=r&&r.paramMeta.urlParams.length>0;if(e.startsWith(`~`)&&c)throw Q(n,`Absolute path "${e}" cannot be used under parent route with URL parameters`)}const Ft=/^[A-Z_a-z][\w-]*$/,It=/\S/,Lt=1e4;function $(e){if(e===null)return`null`;if(typeof e==`object`){try{let t=e.constructor;if(typeof t==`function`&&t.name!==`Object`)return t.name||`object`}catch{}return`object`}return typeof e}function Rt(e){for(let t of Object.keys(e)){let n=Object.getOwnPropertyDescriptor(e,t);if(n&&(n.get||n.set))return!0}return!1}function zt(e,t){if(!e||typeof e!=`object`)throw TypeError(`[router.${t}] Route must be an object, got ${$(e)}`);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`[router.${t}] Route must be a plain object, got ${$(e)}`);if(Rt(e))throw TypeError(`[router.${t}] Route must not have getters or setters`)}function Bt(e,t){if(e.encodeParams!==void 0&&typeof e.encodeParams!=`function`)throw TypeError(`[router.${t}] Route "${String(e.name)}" encodeParams must be a function`)}function Vt(e,t){if(e.decodeParams!==void 0&&typeof e.decodeParams!=`function`)throw TypeError(`[router.${t}] Route "${String(e.name)}" decodeParams must be a function`)}function Ht(e,t){if(typeof e.name!=`string`)throw TypeError(`[router.${t}] Route name must be a string, got ${$(e.name)}`);let n=e.name;if(n===``)throw TypeError(`[router.${t}] Route name cannot be empty`);if(!It.test(n))throw TypeError(`[router.${t}] Route name cannot contain only whitespace`);if(n.length>Lt)throw TypeError(`[router.${t}] Route name exceeds maximum length of ${Lt} characters`);if(!n.startsWith(`@@`)){if(n.includes(`.`))throw TypeError(`[router.${t}] Route name "${n}" cannot contain dots. Use children array or { parent } option in addRoute() instead.`);if(!Ft.test(n))throw TypeError(`[router.${t}] Invalid route name "${n}". Name must start with a letter or underscore, followed by letters, numbers, underscores, or hyphens.`)}}function Ut(e,t){if(!t.includes(`.`))return e.children.get(t);let n=e;for(let e of t.split(`.`))if(n=n.children.get(e),!n)return;return n}function Wt(e,t,n){if(Ut(e,t))throw Error(`[router.${n}] Route "${t}" already exists`)}function Gt(e,t,n){if(e.has(t))throw Error(`[router.${n}] Duplicate route "${t}" in batch`);e.add(t)}function Kt(e,t,n,r){let i=t===``?e:Ut(e,t);if(i){for(let e of i.children.values())if(e.path===n)throw Error(`[router.${r}] Path "${n}" is already defined`)}}function qt(e,t,n,r){let i=e.get(t);if(i?.has(n))throw Error(`[router.${r}] Path "${n}" is already defined`);i?i.add(n):e.set(t,new Set([n]))}function Jt(e,t,n,r=``,i,a){zt(e,t);let o=e;Ht(o,t),Pt(o.path,o.name,t,n),Bt(o,t),Vt(o,t);let s=o.name,c=r?`${r}.${s}`:s;n&&c&&Wt(n,c,t),i&&Gt(i,c,t);let l=o.path,u=r;if(n&&Kt(n,u,l,t),a&&qt(a,u,l,t),o.children!==void 0){if(!Array.isArray(o.children))throw TypeError(`[router.${t}] Route "${s}" children must be an array, got ${$(o.children)}`);for(let e of o.children)Jt(e,t,n,c,i,a)}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return wt}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Ct}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Jt}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Tt}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return n}});
|
|
2
|
-
//# sourceMappingURL=esm-C7hGyncU.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"esm-C7hGyncU.js","names":["e","t","n","r","i","a","o","s","c","l","u","d","f","p","m","h","g","_","v","y","b","x","S","C","w","T","E","D","O","k","A","j","M","N","P","F","I","L","R","z","B","V","H","U","W","G","K","q","#e","#s","#c","#a","#t","#n","#r","#p","#i","#_","#h","#v","#S","#w","#l","#u","#d","#f","#m","#o","#g","#y","#x","#b","#C","l","u","d","f","p","m","h","g","_","v","b","x","S","C","w","T","D","E","O","n","t","c","s","a","e","i","r"],"sources":["../../src/internals.ts","../../../path-matcher/dist/esm/index.mjs","../../../search-params/dist/esm/index.mjs","../../../route-tree/dist/esm/index.mjs"],"sourcesContent":["import type { DependenciesStore } from \"./namespaces\";\nimport type { RoutesStore } from \"./namespaces/RoutesNamespace\";\nimport type { Router as RouterClass } from \"./Router\";\nimport type { EventMethodMap, PluginFactory } from \"./types\";\nimport type { RouterValidator } from \"./types/RouterValidator\";\nimport type { SerializedRouterState } from \"./utils\";\nimport type {\n DefaultDependencies,\n EventName,\n NavigationOptions,\n Options,\n Params,\n Plugin,\n Router as RouterInterface,\n RouteTreeState,\n SimpleState,\n State,\n TreeChangedEvent,\n Unsubscribe,\n} from \"@real-router/types\";\nimport type { RouteTree } from \"route-tree\";\n\nexport interface RouterInternals<\n D extends DefaultDependencies = DefaultDependencies,\n> {\n readonly makeState: <P extends Params = Params>(\n name: string,\n params?: P,\n path?: string,\n meta?: Record<string, Record<string, \"url\" | \"query\">>,\n ) => State<P>;\n\n readonly forwardState: <P extends Params = Params>(\n routeName: string,\n routeParams: P,\n ) => SimpleState<P>;\n\n readonly buildStateResolved: (\n resolvedName: string,\n resolvedParams: Params,\n ) => RouteTreeState | undefined;\n\n readonly matchPath: <P extends Params = Params>(\n path: string,\n options?: Options,\n ) => State<P> | undefined;\n\n readonly getOptions: () => Options;\n\n readonly addEventListener: <E extends EventName>(\n eventName: E,\n cb: Plugin[EventMethodMap[E]],\n ) => Unsubscribe;\n\n /**\n * Route-tree mutation channel — internal access for the `getRoutesApi`\n * wrapper. A dedicated bridge is required because the public\n * `addEventListener<E extends EventName>` structurally rejects\n * `\"TREE_CHANGED\"` (it is not in the public `EventName` union), is strict on\n * duplicates, and exposes neither `emit` nor `listenerCount`.\n */\n readonly treeChanged: {\n readonly emit: (event: TreeChangedEvent) => void;\n readonly subscribe: (\n handler: (event: TreeChangedEvent) => void,\n ) => Unsubscribe;\n readonly listenerCount: () => number;\n /**\n * True while a `TREE_CHANGED` emit is on the stack — `getRoutesApi` reads it\n * to reject reentrant route-CRUD from a `subscribeChanges` handler (#1032).\n */\n readonly isEmitting: () => boolean;\n };\n\n readonly buildPath: (route: string, params?: Params) => string;\n\n readonly emitTransitionError: (error: Error) => void;\n\n /**\n * Emits `TRANSITION_SUCCESS` directly (no FSM transition) — used by\n * `getRoutesApi().replace()` to notify `router.subscribe` listeners when a\n * structural replace revalidates the active state (#950). Mirrors the success\n * emission `completeTransition` / `navigateToNotFound` perform.\n */\n readonly emitTransitionSuccess: (\n toState: State,\n fromState: State | undefined,\n opts?: NavigationOptions,\n ) => void;\n\n /**\n * Commits the not-found (`UNKNOWN_ROUTE`) state for `path` and emits\n * `TRANSITION_SUCCESS` — the `NavigationNamespace.navigateToNotFound`\n * primitive. `replace()` uses it when a structural replace drops the active\n * route, so subscribers are notified instead of the state silently clearing\n * (#950).\n */\n readonly navigateToNotFound: (path: string) => State;\n\n readonly start: (path: string) => Promise<State>;\n\n /**\n * Plugin-only navigation entry point — delegates to\n * `NavigationNamespace.navigateToState` (`getPluginApi(router).navigateToState`).\n * Hidden from `Router`/`Navigator` to keep the userland surface minimal;\n * see `core-types/src/api.ts` for usage docs.\n */\n readonly navigateToState: (\n state: State,\n options?: NavigationOptions,\n ) => Promise<State>;\n\n /* eslint-disable @typescript-eslint/no-explicit-any -- heterogeneous map: stores different InterceptorFn<M> types under different keys */\n readonly interceptors: Map<\n string,\n ((next: (...args: any[]) => any, ...args: any[]) => any)[]\n >;\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n readonly setRootPath: (rootPath: string) => void;\n readonly getRootPath: () => string;\n\n readonly getTree: () => RouteTree;\n\n readonly isDisposed: () => boolean;\n\n validator: RouterValidator | null;\n\n // Dependencies (issue #172)\n readonly dependenciesGetStore: () => DependenciesStore<D>;\n\n // Clone support (issue #173, consolidated #964). One accessor for the\n // source-side snapshot a clone carries over besides the route store, so a new\n // clone-relevant subsystem is wired in a single place instead of being spread\n // across separate methods.\n readonly getCloneState: () => {\n options: Options;\n dependencies: Record<string, unknown>;\n pluginFactories: PluginFactory<D>[];\n };\n\n // Consolidated route data store (issue #174 Phase 2)\n readonly routeGetStore: () => RoutesStore<D>;\n\n // Cross-namespace state (issue #174)\n readonly getStateName: () => string | undefined;\n readonly isTransitioning: () => boolean;\n readonly clearState: () => void;\n readonly setState: (state: State) => void;\n readonly routerExtensions: { keys: string[] }[];\n readonly contextClaimRecords: Set<string>;\n\n /**\n * One-shot hydration scratchpad populated by `hydrateRouter` immediately\n * before delegating to `router.start(parsed.path)` and cleared in the\n * matching `finally`. SSR loader plugins read this slot directly via\n * `getInternals(router).hydrationState` to short-circuit their own loader\n * call when the server-resolved namespace value is already present in the\n * parsed state (#596). `null` outside of an active `hydrateRouter`\n * invocation.\n */\n hydrationState: SerializedRouterState | null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- existential type: stores RouterInternals for all Dependencies types\nconst internals = new WeakMap<object, RouterInternals<any>>();\n\nexport function getInternals<D extends DefaultDependencies>(\n router: RouterInterface<D>,\n): RouterInternals<D> {\n const ctx = internals.get(router);\n\n if (!ctx) {\n throw new TypeError(\n \"[real-router] Invalid router instance — not found in internals registry\",\n );\n }\n\n return ctx as RouterInternals<D>;\n}\n\nexport function registerInternals<D extends DefaultDependencies>(\n router: RouterClass<D>,\n ctx: RouterInternals<D>,\n): void {\n internals.set(router, ctx);\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-argument -- internal chain execution: type safety enforced at public API boundary (PluginApi.addInterceptor) */\nfunction executeInterceptorChain<T>(\n interceptors: ((next: (...args: any[]) => any, ...args: any[]) => any)[],\n original: (...args: any[]) => T,\n args: any[],\n): T {\n let chain = original as (...args: any[]) => any;\n\n for (const interceptor of interceptors) {\n const prev = chain;\n\n chain = (...chainArgs: any[]) => interceptor(prev, ...chainArgs);\n }\n\n return chain(...args) as T;\n}\n\n/**\n * Variadic interceptor wrapper — wraps a function of any arity, returning the\n * same callable type `T`. Use {@link createBinaryInterceptable} instead when the\n * wrapped method takes exactly two args and the caller needs the precise\n * `(a, b) => r` signature preserved (the variadic form widens args to `any[]`).\n */\nexport function createInterceptable<T extends (...args: any[]) => any>(\n name: string,\n original: T,\n interceptors: Map<\n string,\n ((next: (...args: any[]) => any, ...args: any[]) => any)[]\n >,\n): T {\n return ((...args: any[]) => {\n const chain = interceptors.get(name);\n\n if (!chain || chain.length === 0) {\n return original(...args);\n }\n\n return executeInterceptorChain(chain, original, args);\n }) as T;\n}\n\n/**\n * Two-argument interceptor wrapper — preserves the exact `(a: A, b: B) => R`\n * signature, which the variadic {@link createInterceptable} cannot express\n * (it widens args to `any[]`). Used for the binary interceptable methods\n * `forwardState(routeName, routeParams)` and `buildPath(route, params)`.\n */\nexport function createBinaryInterceptable<A, B, R>(\n name: string,\n original: (a: A, b: B) => R,\n interceptors: Map<\n string,\n ((next: (...args: any[]) => any, ...args: any[]) => any)[]\n >,\n): (a: A, b: B) => R {\n return (arg1: A, arg2: B) => {\n const chain = interceptors.get(name);\n\n if (!chain || chain.length === 0) {\n return original(arg1, arg2);\n }\n\n return executeInterceptorChain(chain, original, [arg1, arg2]);\n };\n}\n/* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-argument */\n","const e=`[^>]*`;function t(e){let t=!1;for(let n of e)if(n===`<`)t=!0;else if(n===`>`){if(!t)return!1;t=!1}return!t}const n=/[<>]/u,r=e=>e===58||e===42;function i(e){let t=[],n=0,r=!1;for(let i=0;i<e.length;i+=1){let a=e.charCodeAt(i);a===60?r=!0:a===62?r=!1:a===47&&!r&&(t.push(e.slice(n,i)),n=i+1)}return t.push(e.slice(n)),t}function a(e){let t=e.length;if(t===0)return{kind:`static`,text:``};if(!r(e.charCodeAt(0))){for(let n=0;n<t;n+=1){let i=e.charCodeAt(n);if(i===60)return{error:`constraint-in-static`};if(r(i)&&n+1<t){let t=e.charCodeAt(n+1);if(t!==60&&t!==63)return{error:`fused-marker`}}}return e.charCodeAt(t-1)===63?{error:`name-less`}:{kind:`static`,text:e}}let n=e.charCodeAt(0)===42,i=1;for(;i<t;){let t=e.charCodeAt(i);if(t===60||t===63)break;i+=1}let a=e.slice(1,i);if(a.length===0)return{error:`name-less`};if(r(a.charCodeAt(a.length-1)))return{error:`trailing-marker`};let o,s=!1;if(i<t)if(e.charCodeAt(i)===60){let n=e.indexOf(`>`,i+1);if(n===-1)return{error:`unbalanced-constraint`};if(n===i+1)return{error:`empty-constraint`};o=e.slice(i,n+1);let r=n+1;if(r<t)if(e.charCodeAt(r)===63)s=!0;else return{error:`fused-constraint-suffix`}}else s=!0;return n?s?{error:`optional-splat`}:{kind:`splat`,name:a}:o===void 0?{kind:`param`,name:a,optional:s}:{kind:`param`,name:a,constraint:o,optional:s}}function o(e){for(let t of i(e)){let e=a(t);if(`error`in e)return e.error}}function s(e){let t=i(e);for(let e=2;e<t.length;e+=1)if(t[e].startsWith(`*`)&&c(t[e-1])&&c(t[e-2]))return!0;return!1}function c(e){return e.startsWith(`:`)&&e.endsWith(`?`)}function l(e){return`(${e.replaceAll(/(^<|>$)/g,``)})`}function u(e,t){try{return RegExp(`^${l(e)}$`)}catch{throw Error(`[buildParamMeta] Invalid constraint '${e}' on parameter '${t}': the body between '<' and '>' must be a valid regular expression (e.g. '<[0-9]+>', '<[a-z]+>').`)}}const d=`[^/?<]+`,f=new RegExp(String.raw`([:*]${d}(?:<${e}>)?)\\?(?=[/?]|$)`,`g`),p=RegExp(`<${e}>`,`g`),m=/\\?(.+)$/;function h(e){return e.replaceAll(p,e=>`<${`x`.repeat(e.length-2)}>`).replaceAll(f,`$1\\0`)}const g=Object.freeze([]),ee=Object.freeze({}),_=new Map;function te(e,t,n,r,o){for(let s of i(e)){if(s.length===0)continue;let e=a(s);`error`in e||e.kind===`static`||(t.push(e.name),r[e.name]=`url`,e.kind===`splat`?n.push(e.name):e.constraint!==void 0&&o.set(e.name,{pattern:u(e.constraint,e.name),constraint:e.constraint}))}}function ne(e){let t=[],n=[],r=[],i={},a=new Map,o=m.exec(h(e));if(o!==null){let t=e.slice(o.index+1).split(`&`);for(let e of t){let t=e.trim();t.length>0&&(n.push(t),i[t]=`query`)}e=e.slice(0,o.index)}return te(e,t,r,i,a),re(t,n,r,i,a,e)}function re(e,t,n,r,i,a){return{urlParams:e.length===0?g:e,queryParams:t.length===0?g:t,spatParams:n.length===0?g:n,paramTypeMap:e.length===0&&t.length===0?ee:r,constraintPatterns:i.size===0?_:i,pathPattern:a}}const ie=/[^\\w!$'()*+,.:;|~-]/gu,ae=/[^\\w!$'()*+,.:;|~-]/u,oe=/[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?<![\\uD800-\\uDBFF])[\\uDC00-\\uDFFF]/g,v=e=>t=>{try{return e(t)}catch{return e(t.replaceAll(oe,`�`))}},y=v(e=>e.replaceAll(ie,e=>encodeURIComponent(e))),b={default:e=>ae.test(e)?y(e):e,uri:v(encodeURI),uriComponent:v(encodeURIComponent),none:e=>e},x={default:decodeURIComponent,uri:decodeURI,uriComponent:decodeURIComponent,none:e=>e},S=(e,t,n)=>{let r=b[t],i=String(e);if(!n)return r(i);let a=i.split(`/`),o=r(a[0]);for(let e=1;e<a.length;e++)o+=`/`+r(a[e]);return o},C=Object.freeze(Object.create(null));function w(){return{staticChildren:C,hasChildren:!1,paramChild:void 0,splatChild:void 0,route:void 0,routeIsStrong:!1,slashChildRoute:void 0}}function T(e){return e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e}function se(e,t){return e===``?t:t===``?e:e+t}function E(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function ce(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(!E(n)||!E(r))return!1;t+=3}else t++;return!0}const D=Object.freeze([]),O=Object.freeze(new Set),k=Object.freeze(new Map),A=Object.freeze([]),j=Object.freeze({}),M=RegExp(`<${e}>`,`g`);function N(e,t,n){let r=t.has(e.name);return{paramName:e.name,isOptional:e.kind===`param`?e.optional:!1,encoder:r?e=>S(e,n,!0):b[n]}}function P(e,t,n){let r=new Set,o=new Set;for(let e of t){for(let t of e.paramMeta.urlParams)r.add(t);for(let t of e.paramMeta.spatParams)o.add(t)}if(r.size===0)return{buildStaticParts:[e],buildParamSlots:A};let s=[],c=[],l=``,u=i(e);for(let[e,t]of u.entries()){e>0&&(l+=`/`);let r=a(t);if(`error`in r||r.kind===`static`){l+=t;continue}s.push(l),l=``,c.push(N(r,o,n))}return s.push(l),{buildStaticParts:s,buildParamSlots:c}}function F(e,t,n){throw Error(`[SegmentMatcher.registerTree] Parameter name conflict at the same path position: '${n}${e}' and '${n}${t}'. A parametric URL segment binds to a single name across every route that shares that position — the value cannot be captured under two names. Rename one so both routes agree (e.g. use '${n}${e}' in both).`)}function I(){throw Error(`[SegmentMatcher.registerTree] Empty parameter name: a parameter marker (':' or '*') or an optional '?' must be followed by a name (e.g. ':id', '*rest', ':id?'). A name-less marker or modifier would capture under an empty key at match but emit a literal at build — the two disagree, so it is rejected.`)}function L(e){throw Error(`[SegmentMatcher.registerTree] Fused parameter marker in segment \"${e}\": a ':'/'*' marker must begin a segment (e.g. 'a/:b', not 'a:b'). build extracts it as a param while the trie treats the segment as a literal — the two disagree.`)}function R(e){throw Error(`[SegmentMatcher.registerTree] Trailing parameter marker in segment \"${e}\": a param name cannot end in a bare ':' or '*' (e.g. ':y*' — the name is 'y' plus a stray marker). build/meta would capture the marker into the name while the gate rejects it as name-less — the two disagree, so it is rejected.`)}function z(e){throw Error(`[SegmentMatcher.registerTree] Two optional params directly before a splat in \"${e}\": a single trie slot carries only one optional→splat fork, so the outer optional would overwrite the inner and the omit-outer/take-inner form would silently reshape into the splat. Split into separate routes, or drop the '?' on one.`)}function B(e){throw Error(`[SegmentMatcher.registerTree] Non-ASCII static segment \"${e}\": match rejects non-ASCII input and compares static keys raw, so this route would never match. Percent-encode it (e.g. \"/caf%C3%A9\") or use a param.`)}function V(e){throw Error(`[SegmentMatcher.registerTree] Optional splat \"${e}\" is not supported: a splat cannot be optional — build emits multi-segment URLs the matcher rejects. Use a required splat \"*name\".`)}function H(e){throw Error(`[SegmentMatcher.registerTree] Optional param \":${e}?\" before a splat must be constrained: an unconstrained optional before a splat is ambiguous (every multi-segment value has two readings). Add a constraint, e.g. \":${e}<[a-z]+>?\", or model it as two routes.`)}function U(e){throw Error(`[SegmentMatcher.registerTree] Unbalanced constraint delimiter ('<' or '>') in path \"${e}\": every '<' must be closed by a '>'. A stray delimiter desyncs match vs build (buildPath would emit a URL match rejects).`)}function W(e){throw Error(`[SegmentMatcher.registerTree] Empty constraint '<>' in path \"${e}\": a constraint body must be non-empty (e.g. '<[0-9]+>'). An empty '<>' compiles to a never-matching pattern.`)}function G(e){throw Error(`[SegmentMatcher.registerTree] Text fused to a constraint '>' in path \"${e}\": a '<...>' constraint must end its segment or be followed by '/' or an optional '?' — use \"/:id<...>/rest\", not \"/:id<...>rest\".`)}function le(e){throw Error(`[SegmentMatcher.registerTree] Constraint '<...>' in a static segment in path \"${e}\": a '<...>' constraint must follow a parameter marker (':' or '*') — a static segment carrying '<...>' is silently stripped. Attach it to a param (e.g. \"/:id<...>\") or drop it.`)}function ue(e,t,n){switch(e){case`name-less`:return I();case`trailing-marker`:return R(t);case`fused-marker`:return L(t);case`optional-splat`:return V(t);case`empty-constraint`:return W(n);case`fused-constraint-suffix`:return G(n);case`constraint-in-static`:return le(n);case`unbalanced-constraint`:return U(n)}}function de(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 param name must be unique within a route — two positions cannot both bind ':${r}' (the second silently overwrites the first). Rename one.`)}function fe(e,t){throw Error(`[SegmentMatcher.registerTree] Invalid query-param declaration \"${t}\" in route \"${e}\": a query-param name cannot contain '<' or '>'. This is a reverse-order modifier typo that leaked a constraint into the query — put the optional '?' AFTER the constraint (':id<...>?', not ':id?<...>'). It would never round-trip.`)}function pe(e,t){throw Error(`[SegmentMatcher.registerTree] Name collision in route \"${e}\": \"${t}\" is declared as BOTH a path param (':${t}') and a query param ('?${t}'). buildPath would emit its value twice (once in the path, once in the query). Rename one.`)}function me(e,t){throw Error(`[SegmentMatcher.registerTree] Duplicate route path: routes \"${e}\" and \"${t}\" resolve to the same URL. The later registration would silently shadow the earlier (its deep link would resolve to the other route). Give them distinct paths.`)}function he(e,t){throw Error(`[SegmentMatcher.registerTree] Index route \"${e}\" (path \"/\") under the dynamic parent \"${t}\" is not supported: the index cannot reliably replace the parent on every form of its path — under an optional param it binds only the present form, under a splat it is unreachable. Give the index a distinct path, or make the parent static.`)}function K(e){let t=a(e);return(`error`in t||t.kind===`static`)&&I(),t.name}function q(e,t,n){return e.paramChild?e.paramChild.name!==t&&!n.has(e)&&F(e.paramChild.name,t,`:`):(e.paramChild={node:w(),name:t,fork:void 0},n.add(e)),e.paramChild.node}function ge(e,t,n,r,i,a){let o=t.constraintPatterns.get(n)?.pattern;if(e.paramChild&&e.splatChild){o===void 0&&H(n),e.paramChild.fork={constraint:o};return}let s=i+1;if(s<=a){let t=r.indexOf(`/`,s),n=r.slice(s,t===-1?a:t);e.paramChild&&n.startsWith(`:`)&&!n.endsWith(`?`)&&(e.paramChild.fork={skipName:K(n)})}}function _e(e,t,n){if(!t.hasConstraints||!n.startsWith(`:`)||e.paramChild===void 0)return;let r=t.constraintPatterns.get(K(n))?.pattern;if(r===void 0)return;let i=e.paramChild;i.fork?.constraint===void 0?i.fork={...i.fork,constraint:r}:i.fork.constraint.source!==r.source&&(i.fork={...i.fork,constraint:RegExp(`(?:${i.fork.constraint.source})|(?:${r.source})`,i.fork.constraint.flags)})}function ve(e,t,n){return e.splatChild?e.splatChild.name!==t&&!n.has(e)&&F(e.splatChild.name,t,`*`):(e.splatChild={node:w(),name:t},n.add(e)),e.splatChild.node}function J(e,t){e.route!==void 0&&e.route!==t&&e.routeIsStrong===!0&&me(e.route.name,t.name),e.route=t,e.routeIsStrong=!0}function ye(e){for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>=128)return!0;return!1}function be(e,t,n){let r=T(n);if(r===`/`){J(e.root,t);return}let i=new Set,a=new Map;Y(e,e.root,r,1,t,i,a)}function Y(e,t,n,r,i,a,o){let s=o.get(t);if(s===void 0)s=new Set,o.set(t,s);else if(s.has(r))return;s.add(r);let c=n.length;for(;r<=c;){let s=n.indexOf(`/`,r),l=s===-1?c:s,u=n.slice(r,l);if(u.endsWith(`?`)){let r=K(u);Y(e,q(t,r,a),n,l+1,i,a,o),l>=c?t.route??=i:Y(e,t,n,l+1,i,a,o),ge(t,i,r,n,l,c);return}let d=t;t=X(e,t,u,a),_e(d,i,u),r=l+1}J(t,i)}function xe(e,t,n){let r=n.slice(n.lastIndexOf(`/`)+1),i=n.split(`/`).some(e=>e.startsWith(`:`)&&e.endsWith(`?`)),a=r.startsWith(`*`);(i||a)&&he(t.name,n);let o=Se(e,n);o.slashChildRoute=t}function Se(e,t){return Ce(e,e.root,t)}function Ce(e,t,n){let r=T(n);if(r===`/`||r===``)return t;let i=t,a=1,o=r.length,s=new Set;for(;a<=o;){let t=r.indexOf(`/`,a),n=t===-1?o:t;if(n<=a)break;let c=r.slice(a,n);i=X(e,i,c,s),a=n+1}return i}function X(e,t,n,r){if(n.startsWith(`*`)){let e=ve(t,K(n),r);return t.hasChildren=!0,e}if(n.startsWith(`:`)){let e=q(t,K(n),r);return t.hasChildren=!0,e}ye(n)&&B(n);let i=e.options.caseSensitive?n:n.toLowerCase();return i in t.staticChildren||(t.staticChildren===C&&(t.staticChildren=Object.create(null)),t.staticChildren[i]=w(),t.hasChildren=!0),t.staticChildren[i]}function Z(e,n,r,o,c){let l=n.fullName===``;l||o.push(n);let u=n.absolute,d=n.paramMeta.pathPattern,f=u&&d.startsWith(`~`)?d.slice(1):d,p=u?f:d;t(p)||U(p);for(let e of i(p)){let t=a(e);`error`in t&&ue(t.error,e,p)}let m=p.replaceAll(M,``);s(p)&&z(p);let h=u?m:se(r,m),g=l?c:we(e,n,h,u?``:r,o,c);for(let t of n.children.values())Z(e,t,h,o,g);l||o.pop()}function we(e,t,n,r,i,a){let o=Oe(n,r),s=Object.freeze([...i]),c=Te(s),l=T(n),u=ke(e.rootQueryParams,i),d=Ae(i),{buildStaticParts:f,buildParamSlots:p}=P(o?T(r):l,o?i.slice(0,-1):i,e.options.urlParamsEncoding),m=p.map(e=>e.paramName),h=m.length===0?O:new Set(m);h.size!==m.length&&de(t.fullName,m),Q(t.fullName,u,h);let g={name:t.fullName,parent:a,matchSegments:s,meta:c,declaredQueryParams:u,declaredQueryParamsSet:u.length===0?O:new Set(u),hasTrailingSlash:n.length>1&&n.endsWith(`/`),constraintPatterns:d,hasConstraints:d.size>0,buildStaticParts:f,buildParamSlots:p,buildParamNamesSet:h,cachedResult:void 0};return t.paramMeta.urlParams.length===0&&(g.cachedResult=Object.freeze({segments:g.matchSegments,params:j,meta:g.meta})),e.routesByName.set(t.fullName,g),o?Ee(e,g,r):De(e,g,n,l,t),g}function Te(e){let t={};for(let n of e)t[n.fullName]=n.paramTypeMap;return Object.freeze(t)}function Ee(e,t,n){xe(e,t,n);let r=T(n),i=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.has(i)&&e.staticCache.set(i,t)}function De(e,t,n,r,i){if(be(e,t,n),i.paramMeta.urlParams.length===0){let n=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.set(n,t)}}function Oe(e,t){return T(e)===T(t)}function ke(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?D:n}function Ae(e){let t=new Map;for(let n of e)for(let[e,r]of n.paramMeta.constraintPatterns)t.set(e,r);return t.size===0?k:t}function Q(e,t,r){for(let i of t)n.test(i)&&fe(e,i),r.has(i)&&pe(e,i)}function je(e){return typeof e==`string`?e:typeof e==`object`?JSON.stringify(e):String(e)}function $(e,t,n){t===`__proto__`?Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}var Me=class{get options(){return this.#e}#e;#t=w();#n=new Map;#r=new Map;#i={cleanPath:``,normalized:``,queryString:void 0};#a=[];#o=``;#s;#c;constructor(e){this.#e={caseSensitive:e.caseSensitive??!0,strictTrailingSlash:e.strictTrailingSlash??!1,strictQueryParams:e.strictQueryParams??!1,urlParamsEncoding:e.urlParamsEncoding??`default`,parseQueryString:e.parseQueryString,buildQueryString:e.buildQueryString},this.#s=this.#e.caseSensitive,this.#c=this.#e.urlParamsEncoding===`none`?null:x[this.#e.urlParamsEncoding]}registerTree(e){this.#a=e.paramMeta.queryParams,Z({root:this.#t,options:this.#e,routesByName:this.#n,staticCache:this.#r,rootQueryParams:this.#a},e,``,[],null)}match(e){if(!this.#p(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.#_(t,a)?void 0:r===void 0&&a.cachedResult?a.cachedResult:this.#h(a,{},r);let o={},s=this.#v(n,o);if(s&&!(this.#e.strictTrailingSlash&&!this.#_(t,s))&&this.#S(o)&&!(s.hasConstraints&&!this.#w(o,s)))return this.#h(s,o,r)}buildPath(e,t,n){let r=this.#n.get(e);if(!r)throw Error(`[SegmentMatcher.buildPath] '${e}' is not defined`);r.hasConstraints&&t&&this.#l(r,e,t);let i=this.#u(r,t),a=this.#d(i,n?.trailingSlash),o=this.#f(r,t,n?.queryParamsMode);return a+(o?`?${o}`:``)}getSegmentsByName(e){return this.#n.get(e)?.matchSegments}getMetaByName(e){return this.#n.get(e)?.meta}hasRoute(e){return this.#n.has(e)}#l(e,t,n){for(let[r,i]of e.constraintPatterns){let e=n[r];if(e!=null){let n=typeof e==`object`?JSON.stringify(e):String(e);if(!i.pattern.test(n))throw Error(`[SegmentMatcher.buildPath] '${t}' — param '${r}' value '${n}' does not match constraint '${i.constraint}'`)}}}#u(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?.[a.paramName];if(r==null){if(!a.isOptional)throw Error(`[SegmentMatcher.buildPath] Missing required param '${a.paramName}'`);i.length>1?i=i.slice(0,-1):n[e+1].startsWith(`/`)&&(i=``),i+=n[e+1];continue}if(r===``&&!a.isOptional)throw Error(`[SegmentMatcher.buildPath] Missing required param '${a.paramName}' (empty string)`);let o=a.encoder(je(r));i+=o+n[e+1]}return i}#d(e,t){return t===`always`&&!e.endsWith(`/`)?`${e}/`:t===`never`&&e!==`/`&&e.endsWith(`/`)?e.slice(0,-1):e}#f(e,t,n){if(!t||e.declaredQueryParams.length===0&&n!==`loose`)return``;let r={},i=!1;for(let n of e.declaredQueryParams)n in t&&(r[n]=t[n],i=!0);if(n===`loose`)for(let n in t)Object.hasOwn(t,n)&&!e.declaredQueryParamsSet.has(n)&&!e.buildParamNamesSet.has(n)&&(r[n]=t[n],i=!0);return i?this.#e.buildQueryString(r):``}#p(e){if(e===``&&(e=`/`),e.codePointAt(0)!==47)return!1;let t=this.#m(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=T(n);return this.#i.cleanPath=n,this.#i.normalized=i,this.#i.queryString=r,!0}#m(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}#h(e,t,n){if(!(n!==void 0&&!this.#g(e,t,n)))return{segments:e.matchSegments,params:t,meta:e.meta}}#g(e,t,n){let r;try{r=this.#e.parseQueryString(n)}catch{return!1}if(this.#e.strictQueryParams){let n=e.declaredQueryParamsSet;for(let e in r){if(!n.has(e))return!1;$(t,e,r[e])}}else for(let e in r)$(t,e,r[e]);return!0}#_(e,t){return(e.length>1&&e.endsWith(`/`))===t.hasTrailingSlash}#v(e,t){return e.length===1?this.#t.slashChildRoute??this.#t.route:this.#y(this.#t,e,1,t)}#y(e,t,n,r){let i=e,a=t.length,o=this.#s;for(;n<=a;){let e=t.indexOf(`/`,n),s=e===-1?a:e,c=t.slice(n,s),l=o?c:c.toLowerCase(),u;if(l in i.staticChildren)u=i.staticChildren[l];else if(i.paramChild){let e=i.paramChild,o=e.fork;if(i.splatChild!==void 0){if(o?.constraint!==void 0&&!this.#x(o.constraint,c))return this.#b(i.splatChild,t,n,r);let l={[o?.skipName!==void 0&&s>=a?o.skipName:e.name]:c},u=this.#y(e.node,t,s+1,l);return u!==void 0&&(!u.hasConstraints||this.#C(u,l))?(Object.assign(r,l),u):this.#b(i.splatChild,t,n,r)}u=e.node,o?.skipName!==void 0&&s>=a?r[o.skipName]=c:r[e.name]=c}else if(i.splatChild)return this.#b(i.splatChild,t,n,r);else return;i=u,n=s+1}return i.slashChildRoute??i.route}#b(e,t,n,r){let i=e.node;if(!i.hasChildren)return r[e.name]=t.slice(n),i.route;let a={},o=this.#y(i,t,n,a);return o&&(!o.hasConstraints||this.#C(o,a))?(Object.assign(r,a),o):(r[e.name]=t.slice(n),i.route)}#x(e,t){try{return e.test(this.#c?this.#c(t):t)}catch{return!1}}#S(e){let t=this.#c;if(!t)return!0;for(let n in e){let r=e[n];if(r.includes(`%`)){if(!ce(r))return!1;try{e[n]=t(r)}catch{return!1}}}return!0}#C(e,t){let n=this.#c;for(let[r,i]of e.constraintPatterns){if(!Object.hasOwn(t,r))continue;let e=t[r];if(n&&e.includes(`%`))try{e=n(e)}catch{return!1}if(!i.pattern.test(e))return!1}return!0}#w(e,t){for(let[n,r]of t.constraintPatterns)if(Object.hasOwn(e,n)&&!r.pattern.test(e[n]))return!1;return!0}};export{e as CONSTRAINT_BODY_PATTERN,n as INVALID_QUERY_NAME_RGX,d as PARAM_NAME_PATTERN,Me as SegmentMatcher,ne as buildParamMeta,o as findSegmentGrammarError,s as hasMultipleOptionalsBeforeSplat,t as isConstraintBalanced};\n//# sourceMappingURL=index.mjs.map","const e=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)},t=(t,n)=>{if(t===void 0)return n.boolean.decodeUndefined();let r=n.boolean.decodeRaw(t);if(r!==null)return r;let i=e(t),a=n.number.decode(i);return a===null?n.boolean.decodeValue(i):a},n=e=>{let t=e.indexOf(`?`);return t===-1?e:e.slice(t+1)},r=/[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?<![\\uD800-\\uDBFF])[\\uDC00-\\uDFFF]/g,i=e=>{try{return encodeURIComponent(e)}catch(t){if(!(t instanceof URIError))throw t;return encodeURIComponent(String(e).replaceAll(r,`�`))}},a=e=>{let t=typeof e;if(t!==`string`&&t!==`number`&&t!==`boolean`)throw TypeError(`[search-params] Array element must be a string, number, or boolean — received ${t}`);return i(e)},o=(e,t,n,r)=>{let i=`${e}${n}`,o=[];for(let e of t)if(e===null){let e=r.encode(i);e&&o.push(e)}else o.push(`${i}=${a(e)}`);return o.join(`&`)},s={none:{encodeArray:(e,t,n)=>o(e,t,``,n)},brackets:{encodeArray:(e,t,n)=>o(e,t,`[]`,n)},index:{encodeArray:(e,t,n)=>{let r=[];for(let[i,o]of t.entries()){let t=`${e}[${i}]`;if(o===null){let e=n.encode(t);e&&r.push(e)}else r.push(`${t}=${a(o)}`)}return r.join(`&`)},indexed:!0},comma:{encodeArray:(e,t)=>{let n=[];for(let e of t)e!==null&&n.push(a(e));return n.length===0?``:`${e}=${n.join(`,`)}`},decodeValue:e=>e.includes(`,`)?e.split(`,`):null}},c={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`?!0:e===`false`?!1:null,decodeValue:e=>e},\"empty-true\":{encode:(e,t)=>t?e:`${e}=false`,decodeUndefined:()=>!0,decodeRaw:e=>e===`true`?!0:e===`false`?!1:null,decodeValue:e=>e}},l={default:{encode:e=>e},hidden:{encode:()=>``}},u={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 Object.is(i,-0)||!Number.isSafeInteger(i)&&!r?null:i}},none:{decode:()=>null}},d=(e,t,n,r)=>{if(e===void 0)throw TypeError(`[search-params] Unknown ${t} \"${n}\" — expected ${r}`);return e},f=(e,t,n,r)=>({boolean:d(c[t],`booleanFormat`,t,`\"none\" | \"auto\" | \"empty-true\"`),null:d(l[n],`nullFormat`,n,`\"default\" | \"hidden\"`),number:d(u[r],`numberFormat`,r,`\"none\" | \"auto\"`),array:d(s[e],`arrayFormat`,e,`\"none\" | \"brackets\" | \"index\" | \"comma\"`)}),p={boolean:c.auto,null:l.default,number:u.auto,array:s.none},m={arrayFormat:`none`,booleanFormat:`auto`,nullFormat:`default`,numberFormat:`auto`},h={...m,strategies:p},g=e=>{if(!e||e.arrayFormat===void 0&&e.booleanFormat===void 0&&e.nullFormat===void 0&&e.numberFormat===void 0)return h;let t=e.arrayFormat??m.arrayFormat,n=e.booleanFormat??m.booleanFormat,r=e.nullFormat??m.nullFormat,i=e.numberFormat??m.numberFormat;return{arrayFormat:t,booleanFormat:n,nullFormat:r,numberFormat:i,strategies:f(t,n,r,i)}},_=e=>i(e),v=(e,t,n)=>{let r=_(e);switch(typeof t){case`string`:case`number`:return`${r}=${_(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}=${_(t)}`;default:return`${r}=${_(t)}`}};function y(e,t,n){t===`__proto__`?Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}function b(e,t,n,r){if(!Object.hasOwn(e,t)){y(e,t,r?[n]:n);return}let i=e[t];Array.isArray(i)?i.push(n):y(e,t,[i,n])}function x(e,n,r,i,a){return t(i?e.slice(n+1,r):void 0,a)}function S(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 C(e,t,n){let{searchPart:r,nameEnd:i,nameSourceEnd:a,eqPos:o,end:s,hasValue:c,decodedName:l}=e,u=S(r,i,a);if(u===null)return!1;let d=x(r,o,s,c,t),f=n.get(l);return f===void 0?n.set(l,[[u,d]]):f.push([u,d]),!0}function w(n,r,i,a,o,s,c){let l=s!==-1&&s<i,u=l?s:i,d=u,f=!1;for(let e=r;e<u;e++)if(n.codePointAt(e)===91){d=e,f=!0;break}let p=e(n.slice(r,d));if(!(c!==void 0&&f&&C({searchPart:n,nameEnd:d,nameSourceEnd:u,eqPos:s,end:i,hasValue:l,decodedName:p},o,c))){if(!f&&l&&o.array.decodeValue){let e=n.slice(s+1,i),r=o.array.decodeValue(e);if(r){for(let e of r)b(a,p,t(e,o),!0);return}}b(a,p,x(n,s,i,l,o),f)}}const T=(e,t)=>{if(e===``||e===`?`)return{};let n={};return D(e,n,g(t).strategies),n},E=(e,t)=>T(n(e),t);function D(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)),w(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]),y(t,e,n.map(e=>e[1]))}const O=(e,t)=>{let n=Object.keys(e);if(n.length===0)return``;let r=g(t),i=[];for(let t of n){let n=e[t];if(n===void 0)continue;let a=v(t,n,r);a&&i.push(a)}return i.join(`&`)};export{m as DEFAULT_QUERY_PARAMS,O as build,E as parse,T as parseQuery};\n//# sourceMappingURL=index.mjs.map","import{INVALID_QUERY_NAME_RGX as e,SegmentMatcher as t,buildParamMeta as n,findSegmentGrammarError as r,hasMultipleOptionalsBeforeSplat as i,isConstraintBalanced as a}from\"path-matcher\";import{DEFAULT_QUERY_PARAMS as o,build as s,parseQuery as c}from\"search-params\";function l(e,t){let n=e.path,r=n.startsWith(`~`),i=r?n.slice(1):n,a={name:e.name,path:i,absolute:r,children:[],parent:t};if(e.children)for(let t of e.children){let e=l(t,a);a.children.push(e)}return a}function u(e,t,n){let r=l({name:e,path:t},null);for(let e of n){let t=l(e,r);r.children.push(t)}return r}const d=Object.freeze(new Map),f=Object.freeze([]);function p(e){return e.parent?.name?`${e.parent.fullName}.${e.name}`:e.name}function m(e){let t=new Map;for(let n of e)t.set(n.name,n);return t}function h(e,t){let n=[],r=[];for(let i of e){let e=g(i,t);n.push(e),e.absolute||r.push(e)}return{childrenMap:m(n),nonAbsoluteChildren:r}}function g(e,t){let r=n(e.path),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=p(a),e.children.length===0)a.children=d,a.nonAbsoluteChildren=f;else{let{childrenMap:t,nonAbsoluteChildren:n}=h(e.children,a);a.children=t,a.nonAbsoluteChildren=n,Object.freeze(a.nonAbsoluteChildren),Object.freeze(a.children)}return Object.freeze(i),Object.freeze(r.urlParams),Object.freeze(r.queryParams),Object.freeze(r.spatParams),Object.freeze(r),Object.freeze(a),a}function _(e){return g(e,null)}function v(e,t,n){return _(u(e,t,n))}function y(e,t){let n=[],r=t.includes(`.`)?t.split(`.`):[t];e.path!==``&&n.push(e);let i=e;for(let e of r){let t=i.children.get(e);if(!t)return null;n.push(t),i=t}return n}function b(e){let t=e.absolute?`~${e.path}`:e.path,n={name:e.name,path:t};return e.children.size>0&&(n.children=Array.from(e.children.values(),b)),n}function x(e){return Array.from(e.children.values(),b)}function S(e){let n=e?.queryParams;return new t({...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=>c(e,n),buildQueryString:e=>s(e,n)})}function C(e,t){return TypeError(`[router.${e}] ${t}`)}function w(e,t,n){if(!a(e))throw C(n,`Invalid path for route \"${t}\": unbalanced constraint delimiter ('<' or '>') in \"${e}\"`);if(e.includes(`<>`))throw C(n,`Invalid path for route \"${t}\": empty constraint '<>' in \"${e}\" (a constraint body must be non-empty, e.g. '<[0-9]+>')`)}function T(e,t,n,r){let i=new Set;for(let a of e){if(i.has(a))throw C(n,`Invalid path for route \"${t}\": duplicate parameter name ':${a}' in \"${r}\" (a param name must be unique within a route — the second binding would overwrite the first)`);i.add(a)}}function E(t,n,r,i,a){let o=new Set(t);for(let t of n){if(e.test(t))throw C(i,`Invalid path for route \"${r}\": invalid query-param name \"${t}\" in \"${a}\" (a query-param name cannot contain '<' or '>' — a reverse-order modifier typo that leaked a constraint into the query; put the optional '?' after the constraint, ':id<...>?')`);if(o.has(t))throw C(i,`Invalid path for route \"${r}\": \"${t}\" is declared as both a path param and a query param in \"${a}\" — buildPath would emit its value twice (rename one)`)}}function D(e){let t=!0,n=!1,r=!1;for(let i of e){if(r){r=i!==`>`;continue}if(i===`<`){r=!0;continue}if(i===`/`){t=!0;continue}if(t&&=(n=i===`:`||i===`*`,!1),!n&&i.codePointAt(0)>=128)return!0}return!1}function O(e){for(let t=1;t<e.length;t++)if(e[t]===`?`&&e[t-1]!==`>`&&e[t+1]===`/`&&e[t+2]===`*`)return!0;return!1}function k(e,t,n,r){if(i(e))throw C(r,`Invalid path for route \"${t}\": two optional params directly before a splat are not supported in \"${n}\" — a single trie slot carries one optional→splat fork, so the omit-outer/take-inner form would silently reshape into the splat. Split into two routes, or drop the '?' on one`);if(O(e))throw C(r,`Invalid path for route \"${t}\": an unconstrained optional param before a splat is not supported in \"${n}\" — it is ambiguous (every multi-segment value has two readings). Add a constraint (e.g. ':lang<[a-z]+>?') or model it as two routes`)}function A(e,t,n){switch(e){case`name-less`:case`trailing-marker`:return`Invalid path for route \"${t}\": parameter marker (':' or '*') without a name in \"${n}\"`;case`fused-marker`:return`Invalid path for route \"${t}\": parameter marker (':' or '*') must begin a segment, but \"${n}\" fuses one to a static prefix (use a boundary marker like \"/a/:b\")`;case`fused-constraint-suffix`:return`Invalid path for route \"${t}\": text fused to a constraint '>' in \"${n}\" (a '<...>' must end its segment or be followed by '/' or an optional '?' — use \"/:id<...>/rest\", not \"/:id<...>rest\")`;case`constraint-in-static`:return`Invalid path for route \"${t}\": constraint '<...>' in a static segment in \"${n}\" (a '<...>' must follow a parameter marker ':' or '*' — attach it to a param like \"/:id<...>\", or drop it)`;case`optional-splat`:return`Invalid path for route \"${t}\": optional splat ('*name?') is not supported in \"${n}\" — a splat cannot be optional (use a required splat '*name')`;case`unbalanced-constraint`:case`empty-constraint`:return`Invalid path for route \"${t}\": invalid constraint in \"${n}\"`}}function j(e,t,r){try{return n(e)}catch(n){throw C(r,`Invalid path for route \"${t}\": ${(n instanceof Error?n.message:String(n)).replace(/^\\[buildParamMeta] /,``)} (in \"${e}\")`)}}function M(e,t,n,i){if(typeof e!=`string`){let t;throw t=e===null?`null`:Array.isArray(e)?`array`:typeof e,C(n,`Route path must be a string, got ${t}`)}if(e===``)return;if(/\\s/.test(e))throw C(n,`Invalid path for route \"${t}\": whitespace not allowed in \"${e}\"`);if(!/^([/?~]|[^/]+$)/.test(e))throw C(n,`Route \"${t}\" has invalid path format: \"${e}\". Path should start with '/', '~', '?' or be a relative segment.`);if(e.includes(`//`))throw C(n,`Invalid path for route \"${t}\": double slashes not allowed in \"${e}\"`);w(e,t,n);let{pathPattern:a,urlParams:o,queryParams:s}=j(e,t,n);T(o,t,n,e),E(o,s,t,n,e);let c=r(a);if(c!==void 0)throw C(n,A(c,t,e));if(k(a,t,e,n),D(a))throw C(n,`Invalid path for route \"${t}\": non-ASCII static segment in \"${e}\" — match compares static segments raw and rejects non-ASCII input, so this route would never match. Percent-encode it (e.g. '/caf%C3%A9') or use a param`);let l=i&&i.paramMeta.urlParams.length>0;if(e.startsWith(`~`)&&l)throw C(n,`Absolute path \"${e}\" cannot be used under parent route with URL parameters`)}const N=/^[A-Z_a-z][\\w-]*$/,P=/\\S/,F=1e4;function I(e){if(e===null)return`null`;if(typeof e==`object`){try{let t=e.constructor;if(typeof t==`function`&&t.name!==`Object`)return t.name||`object`}catch{}return`object`}return typeof e}function L(e){for(let t of Object.keys(e)){let n=Object.getOwnPropertyDescriptor(e,t);if(n&&(n.get||n.set))return!0}return!1}function R(e,t){if(!e||typeof e!=`object`)throw TypeError(`[router.${t}] Route must be an object, got ${I(e)}`);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`[router.${t}] Route must be a plain object, got ${I(e)}`);if(L(e))throw TypeError(`[router.${t}] Route must not have getters or setters`)}function z(e,t){if(e.encodeParams!==void 0&&typeof e.encodeParams!=`function`)throw TypeError(`[router.${t}] Route \"${String(e.name)}\" encodeParams must be a function`)}function B(e,t){if(e.decodeParams!==void 0&&typeof e.decodeParams!=`function`)throw TypeError(`[router.${t}] Route \"${String(e.name)}\" decodeParams must be a function`)}function V(e,t){if(typeof e.name!=`string`)throw TypeError(`[router.${t}] Route name must be a string, got ${I(e.name)}`);let n=e.name;if(n===``)throw TypeError(`[router.${t}] Route name cannot be empty`);if(!P.test(n))throw TypeError(`[router.${t}] Route name cannot contain only whitespace`);if(n.length>F)throw TypeError(`[router.${t}] Route name exceeds maximum length of ${F} characters`);if(!n.startsWith(`@@`)){if(n.includes(`.`))throw TypeError(`[router.${t}] Route name \"${n}\" cannot contain dots. Use children array or { parent } option in addRoute() instead.`);if(!N.test(n))throw TypeError(`[router.${t}] Invalid route name \"${n}\". Name must start with a letter or underscore, followed by letters, numbers, underscores, or hyphens.`)}}function H(e,t){if(!t.includes(`.`))return e.children.get(t);let n=e;for(let e of t.split(`.`))if(n=n.children.get(e),!n)return;return n}function U(e,t,n){if(H(e,t))throw Error(`[router.${n}] Route \"${t}\" already exists`)}function W(e,t,n){if(e.has(t))throw Error(`[router.${n}] Duplicate route \"${t}\" in batch`);e.add(t)}function G(e,t,n,r){let i=t===``?e:H(e,t);if(i){for(let e of i.children.values())if(e.path===n)throw Error(`[router.${r}] Path \"${n}\" is already defined`)}}function K(e,t,n,r){let i=e.get(t);if(i?.has(n))throw Error(`[router.${r}] Path \"${n}\" is already defined`);i?i.add(n):e.set(t,new Set([n]))}function q(e,t,n,r=``,i,a){R(e,t);let o=e;V(o,t),M(o.path,o.name,t,n),z(o,t),B(o,t);let s=o.name,c=r?`${r}.${s}`:s;n&&c&&U(n,c,t),i&&W(i,c,t);let l=o.path,u=r;if(n&&G(n,u,l,t),a&&K(a,u,l,t),o.children!==void 0){if(!Array.isArray(o.children))throw TypeError(`[router.${t}] Route \"${s}\" children must be an array, got ${I(o.children)}`);for(let e of o.children)q(e,t,n,c,i,a)}}export{o as DEFAULT_QUERY_PARAMS,S as createMatcher,v as createRouteTree,y as getSegmentsByName,b as nodeToDefinition,x as routeTreeToDefinitions,q as validateRoute};\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{c as e,i as t,l as n,o as r,s as i,t as a,u as o}from"./esm-Cp_gASSZ.mjs";import{logger as s}from"@real-router/logger";import{FSM as c}from"@real-router/fsm";const l={maxListeners:0,warnListeners:0};var u=class{#e=new Map;#t=new Set;#n=null;#r=l;#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.#s(e);if(n.has(t))throw Error(`Duplicate listener for "${e}"`);let{maxListeners:r,warnListeners:i}=this.#r;if(r!==0&&n.size>=r)throw Error(`Listener limit (${r}) reached for "${e}"`);return i!==0&&n.size===i&&this.#a!==null&&(this.#n??=new Set,this.#n.has(e)||(this.#n.add(e),this.#a(e,i))),n.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;try{this.#o(s,o,t,n,r,i)}catch(t){this.#i?.(e,t)}}else{let s=[...a];for(let a of s)try{this.#o(a,o,t,n,r,i)}catch(t){this.#i?.(e,t)}}}finally{this.#t.delete(e)}}clearAll(){this.#e.clear(),this.#t.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){switch(t){case 0:e();break;case 1:e(n);break;case 2:e(n,r);break;case 3:e(n,r,i);break;default:e(n,r,i,a)}}#s(e){let t=this.#e.get(e);if(t)return t;let n=new Set;return this.#e.set(e,n),n}};const d=Object.freeze({ROUTER_NOT_STARTED:`NOT_STARTED`,NO_START_PATH_OR_STATE:`NO_START_PATH_OR_STATE`,ROUTER_ALREADY_STARTED:`ALREADY_STARTED`,ROUTE_NOT_FOUND:`ROUTE_NOT_FOUND`,SAME_STATES:`SAME_STATES`,CANNOT_DEACTIVATE:`CANNOT_DEACTIVATE`,CANNOT_ACTIVATE:`CANNOT_ACTIVATE`,TRANSITION_ERR:`TRANSITION_ERR`,TRANSITION_CANCELLED:`CANCELLED`,ROUTER_DISPOSED:`DISPOSED`,PLUGIN_CONFLICT:`PLUGIN_CONFLICT`,CONTEXT_NAMESPACE_ALREADY_CLAIMED:`CONTEXT_NAMESPACE_ALREADY_CLAIMED`,REENTRANT_NAVIGATION:`REENTRANT_NAVIGATION`,REENTRANT_TREE_MUTATION:`REENTRANT_TREE_MUTATION`}),f=`@@router/UNKNOWN_ROUTE`,p={UNKNOWN_ROUTE:f},m={ROUTER_START:`onStart`,ROUTER_STOP:`onStop`,TRANSITION_START:`onTransitionStart`,TRANSITION_LEAVE_APPROVE:`onTransitionLeaveApprove`,TRANSITION_CANCEL:`onTransitionCancel`,TRANSITION_SUCCESS:`onTransitionSuccess`,TRANSITION_ERROR:`onTransitionError`},h={ROUTER_START:`$start`,ROUTER_STOP:`$stop`,TRANSITION_START:`$$start`,TRANSITION_LEAVE_APPROVE:`$$leaveApprove`,TRANSITION_CANCEL:`$$cancel`,TRANSITION_SUCCESS:`$$success`,TRANSITION_ERROR:`$$error`},g={maxDependencies:100,maxPlugins:50,maxListeners:1e4,warnListeners:1e3,maxLifecycleHandlers:200},_=Object.freeze({}),ee=Object.freeze({deactivated:Object.freeze([]),activated:Object.freeze([]),intersection:``}),v=Object.freeze({phase:`activating`,reason:`success`,segments:ee}),y={IDLE:`IDLE`,STARTING:`STARTING`,READY:`READY`,TRANSITION_STARTED:`TRANSITION_STARTED`,LEAVE_APPROVED:`LEAVE_APPROVED`,DISPOSED:`DISPOSED`},b={START:`START`,STARTED:`STARTED`,NAVIGATE:`NAVIGATE`,LEAVE_APPROVE:`LEAVE_APPROVE`,COMPLETE:`COMPLETE`,FAIL:`FAIL`,CANCEL:`CANCEL`,STOP:`STOP`,DISPOSE:`DISPOSE`},te={initial:y.IDLE,context:null,transitions:{[y.IDLE]:{[b.START]:y.STARTING,[b.DISPOSE]:y.DISPOSED},[y.STARTING]:{[b.STARTED]:y.READY,[b.FAIL]:y.IDLE,[b.STOP]:y.IDLE,[b.DISPOSE]:y.DISPOSED},[y.READY]:{[b.NAVIGATE]:y.TRANSITION_STARTED,[b.FAIL]:y.READY,[b.STOP]:y.IDLE,[b.DISPOSE]:y.DISPOSED},[y.TRANSITION_STARTED]:{[b.NAVIGATE]:y.TRANSITION_STARTED,[b.LEAVE_APPROVE]:y.LEAVE_APPROVED,[b.CANCEL]:y.READY,[b.FAIL]:y.READY,[b.DISPOSE]:y.DISPOSED},[y.LEAVE_APPROVED]:{[b.NAVIGATE]:y.TRANSITION_STARTED,[b.COMPLETE]:y.READY,[b.CANCEL]:y.READY,[b.FAIL]:y.READY,[b.DISPOSE]:y.DISPOSED},[y.DISPOSED]:{}}};function ne(){return new c(te)}function re(e){if(!e||typeof e!=`object`||e.constructor!==Object)throw TypeError(`dependencies must be a plain object`);for(let t in e)if(Object.getOwnPropertyDescriptor(e,t)?.get)throw TypeError(`dependencies cannot contain getters: "${t}"`)}function x(e,t){for(let n of e){let e=n;if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError(`route must be a non-array object`);t?.routes.guardRouteCallbacks(n),t?.routes.guardNoAsyncCallbacks(n);let r=n.children;r&&x(r,t)}}function ie(e){return Object.freeze(e)}function ae(e={}){return{...g,...e}}function S(e){if(e===void 0)return e;let t;for(let n in e){if(!Object.hasOwn(e,n))continue;let r=e[n];r!==void 0&&(t??={},t[n]=r)}return t??_}function oe(e={}){let t=Object.create(null);for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return{dependencies:t,limits:g}}const se={defaultRoute:``,defaultParams:{},trailingSlash:`preserve`,caseSensitive:!0,queryParamsMode:`loose`,queryParams:r,urlParamsEncoding:`default`,allowNotFound:!0,rewritePathOnMatch:!0};function ce(e){Object.freeze(e);for(let t of Object.values(e))t&&typeof t==`object`&&t.constructor===Object&&ce(t);return e}function le(e,t){return typeof e==`function`?e(t):e}function ue(e){if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(`[router.constructor] options must be a plain object`)}var de=class{#e;constructor(e={}){this.#e=ce({...se,...e})}static validateOptionsIsObject(e){ue(e)}get(){return this.#e}};function C(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!C(e[n],t[n]))return!1;return!0}return!1}const fe=new WeakMap;function w(e){return fe.get(e)}function pe(e,t){fe.set(e,t)}var me=class{#e=void 0;#t=void 0;#n;get(){return this.#e}set(e){this.#t=this.#e,this.#e=e?ie(e):void 0}getPrevious(){return this.#t}reset(){this.#e=void 0,this.#t=void 0}setDependencies(e){this.#n=e}makeState(e,t,n,r,i){let a=this.#n.getDefaultParams(),o=Object.hasOwn(a,e),s;s=o?Object.freeze({...a[e],...t}):!t||t===_?_:Object.freeze({...t});let c={name:e,params:s,path:n??this.#n.buildPath(e,t),context:{},...!i&&{transition:v}};return r&&pe(c,r),i?c:ie(c)}areStatesEqual(e,t,n=!0){if(!e||!t)return!!e==!!t;if(e.name!==t.name)return!1;if(n){let n=this.#n.getUrlParams(e.name);for(let r of n)if(!C(e.params[r],t.params[r]))return!1;return!0}let r=Object.keys(e.params),i=Object.keys(t.params);if(r.length!==i.length)return!1;for(let n of r)if(!(n in t.params)||!C(e.params[n],t.params[n]))return!1;return!0}};const he={[m.ROUTER_START]:h.ROUTER_START,[m.ROUTER_STOP]:h.ROUTER_STOP,[m.TRANSITION_SUCCESS]:h.TRANSITION_SUCCESS,[m.TRANSITION_START]:h.TRANSITION_START,[m.TRANSITION_LEAVE_APPROVE]:h.TRANSITION_LEAVE_APPROVE,[m.TRANSITION_ERROR]:h.TRANSITION_ERROR,[m.TRANSITION_CANCEL]:h.TRANSITION_CANCEL},ge=Object.keys(he),T=`router.usePlugin`;function _e(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.`)}var ve=class e{#e=new Set;#t=new Set;#n;static validatePlugin(e){_e(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){s.error(T,`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){s.error(T,`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){s.error(T,`Error during cleanup:`,e)}}};return this.#t.add(i),i}getAll(){return[...this.#e]}has(e){return this.#e.has(e)}disposeAll(){for(let e of this.#t)e();this.#e.clear(),this.#t.clear()}#r(e){let t=new Set;for(let n of e)t.has(n)?this.#n.getValidator()?.plugins.warnBatchDuplicates(e):t.add(n);return t}#i(t){let n=this.#n.compileFactory(t);e.validatePlugin(n),this.#n.getValidator()?.plugins.validatePluginKeys(n),Object.freeze(n);let r=[];for(let e of ge)e in n&&(typeof n[e]==`function`?(r.push(this.#n.addEventListener(he[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 ye=()=>!0,be=()=>!1,xe=()=>ye,Se=()=>be;function Ce(e){return e?xe:Se}var we=class{#e=new Map;#t=new Map;#n=new Map;#r=new Map;#i=new Map;#a=new Map;#o=[this.#i,this.#a];#s;setDependencies(e){this.#s=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.#s.getValidator();if(!r)return;let i=(e,t,i)=>{let{definition:a,external:o}=this.#d(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=!1,r){this.#c(`activate`,e,t,n,`canActivate`,r)}addCanDeactivate(e,t,n=!1,r){this.#c(`deactivate`,e,t,n,`canDeactivate`,r)}clearCanActivate(e,t){this.#l(`activate`,e,t)}clearCanDeactivate(e,t){this.#l(`deactivate`,e,t)}clearAll(){this.#e.clear(),this.#t.clear(),this.#n.clear(),this.#r.clear(),this.#a.clear(),this.#i.clear()}clearDefinitionGuards(){for(let e of this.#e.keys())this.#t.has(e)?this.#u(`activate`,e):this.#a.delete(e);for(let e of this.#n.keys())this.#r.has(e)?this.#u(`deactivate`,e):this.#i.delete(e);this.#e.clear(),this.#n.clear()}getFactories(){let e={},t={};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={},t={},n={},r={};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.#o}canNavigateTo(e,t,n,r){for(let t of e)if(!this.#f(this.#i,t,n,r,`canNavigateTo`))return!1;for(let e of t)if(!this.#f(this.#a,e,n,r,`canNavigateTo`))return!1;return!0}compileGuardFactory(e,t){let n=typeof e==`boolean`?Ce(e):e,r=this.#s.compileFactory(n);if(typeof r!=`function`)throw TypeError(`[router.${t}] Factory must return a function, got ${typeof r}`);return r}#c(e,t,n,r,i,a){let o=this.#d(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.#s.getValidator()?.lifecycle.warnOverwrite(t,e,i);else{let t=this.#s.getValidator();if(t){let n=this.getHandlerCount(e);t.lifecycle.validateHandlerLimit(n,i),t.lifecycle.validateCountThresholds(n+1,i)}}let u=typeof n==`boolean`?Ce(n):n,d=c.get(t);c.set(t,u);let f=r&&l.has(t);try{let e=a??this.compileGuardFactory(u,i);f||s.set(t,e)}catch(n){throw d===void 0?c.delete(t):c.set(t,d),this.#u(e,t),n}}#l(e,t,n){let{definition:r,external:i}=this.#d(e),a=n===`external`?!1:r.delete(t),o=n===`definition`?!1:i.delete(t);(a||o)&&this.#u(e,t)}#u(e,t){let n=this.#d(e),r=e===`activate`?this.#a:this.#i,i=n.external.get(t)??n.definition.get(t);if(!i){r.delete(t);return}try{let e=this.#s.compileFactory(i);if(typeof e!=`function`){r.delete(t);return}r.set(t,e)}catch{r.delete(t)}}#d(e){return e===`activate`?{definition:this.#e,external:this.#t}:{definition:this.#n,external:this.#r}}#f(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.#s.getValidator()?.lifecycle.warnAsyncGuardSync(t,i),!1)}catch(e){return s.warn(`router.${i}`,`Guard for "${t}" threw — treated as navigation-blocking (returned false)`,e),!1}}};const Te=new Set([`name`,`path`,`children`,`canActivate`,`canDeactivate`,`forwardTo`,`encodeParams`,`decodeParams`,`defaultParams`]);function E(){return{decoders:Object.create(null),encoders:Object.create(null),defaultParams:Object.create(null),forwardMap:Object.create(null),forwardFnMap:Object.create(null)}}function Ee(e,t){for(let n of Object.keys(t))Object.assign(e[n],t[n])}function De(e,t){for(let n in e)if(e[n]!==t[n])return!1;return!0}function Oe(e,t,n){for(let r in e)if(!(r in n)&&e[r]!==t[r])return!1;return!0}function ke(e,t){if(!t||!Ae(e,t))return e;let n={};for(let r in e)t[r]!==`query`&&(n[r]=e[r]);return n}function Ae(e,t){for(let n in e)if(t[n]===`query`)return!0;return!1}function D(e){let t={name:e.name,path:e.path};return e.children&&(t.children=e.children.map(e=>D(e))),t}function je(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)return e.splice(r,1),!0;if(i.children&&t.startsWith(`${a}.`)&&je(i.children,t,a))return!0}return!1}function Me(e,t){for(let n of Object.keys(e))t(n)&&delete e[n]}function Ne(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 Pe(e,t,n=100){let r=new Set,i=[e],a=e;for(;t[a];){let e=t[a];if(r.has(e)){let t=i.indexOf(e),n=[...i.slice(t),e];throw Error(`Circular forwardTo: ${n.join(` → `)}`)}if(r.add(a),i.push(e),a=e,i.length>n)throw Error(`forwardTo chain exceeds maximum depth (${n}): ${i.join(` → `)}`)}return a}function Fe(e,n,r){let i=t(``,n,e),o=a(r);return o.registerTree(i),{tree:i,matcher:o}}function O(e){let t=Fe(e.definitions,e.rootPath,e.matcherOptions);e.tree=t.tree,e.matcher=t.matcher,e.urlParamsCache.clear()}function Ie(e){O(e),e.resolvedForwardMap=k(e.config)}function Le(e){Re(e),O(e)}function Re(e){e.definitions.length=0,Object.assign(e.config,E()),e.resolvedForwardMap=Object.create(null),e.routeCustomFields=Object.create(null)}function k(e){let t=Object.create(null);for(let n of Object.keys(e.forwardMap))t[n]=Pe(n,e.forwardMap);return t}function ze(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 Be(e,t,n){if(e.canActivate){let n=typeof e.forwardTo==`string`?e.forwardTo:`[dynamic]`;s.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]`;s.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}".`)}ze(e.forwardTo,t),typeof e.forwardTo==`string`?n.forwardMap[t]=e.forwardTo:n.forwardFnMap[t]=e.forwardTo}function Ve(e,t,n,r,i,a){let o=Object.fromEntries(Object.entries(e).filter(([e])=>!Te.has(e)));Object.keys(o).length>0&&(r[t]=o),e.canActivate&&i.set(t,e.canActivate),e.canDeactivate&&a.set(t,e.canDeactivate),e.forwardTo&&Be(e,t,n),e.decodeParams&&(n.decoders[t]=t=>e.decodeParams?.(t)??t),e.encodeParams&&(n.encoders[t]=t=>e.encodeParams?.(t)??t),e.defaultParams&&(n.defaultParams[t]=e.defaultParams)}function He(e,t,n,r,i,a=``){for(let o of e){let e=a?`${a}.${o.name}`:o.name;Ve(o,e,t,n,r,i),o.children&&He(o.children,t,n,r,i,e)}}function Ue(e){let t=E();return Ee(t,e),t}function We(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]:We(n,t,i)}})}function A(e,t,n){for(let r of e){let e=t?`${t}.${r.name}`:r.name;n(e),r.children&&A(r.children,e,n)}}function j(e,t,n){let r=new Set;A(e,t,e=>{if(r.has(e))throw Error(`[router.${n}] Duplicate route "${e}" in batch`);r.add(e)})}function Ge(e,t){if(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 M(e,t){for(let n of e)Ge(n.name,t),n.children&&M(n.children,t)}function N(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 Ke(e,t,n){if(M(t,`addRoute`),n!==void 0&&!e.matcher.hasRoute(n))throw Error(`[router.addRoute] Parent route "${n}" does not exist`);A(t,n??``,t=>{if(e.matcher.hasRoute(t))throw Error(`[router.addRoute] Route "${t}" already exists`)}),j(t,n??``,`addRoute`),N(t,n??``,`addRoute`)}function P(e,t,n,r,i,a,o){let s=new Map,c=new Map;He(t,n,r,s,c,i);let l=k(n),{tree:u,matcher:d}=Fe(e,a,o);return{definitions:e,config:n,routeCustomFields:r,pendingCanActivate:s,pendingCanDeactivate:c,tree:u,matcher:d,resolvedForwardMap:l}}function qe(e,t,n){return P(We(e.definitions,t.map(e=>D(e)),n===void 0?[]:n.split(`.`)),t,Ue(e.config),Object.assign(Object.create(null),e.routeCustomFields),n??``,e.rootPath,e.matcherOptions)}function F(e,t,n){return P(e.map(e=>D(e)),e,E(),Object.create(null),``,t,n)}function I(e,t,n){let r=[];for(let[i,a]of e)r.push([i,a,t(a,n)]);return r}function Je(e,t){return{activate:I(e.pendingCanActivate,t.compileGuard,`canActivate`),deactivate:I(e.pendingCanDeactivate,t.compileGuard,`canDeactivate`)}}function Ye(e,t,n){let r=e.depsStore,{activate:i,deactivate:a}=n??Je(t,r);e.definitions.length=0;for(let n of t.definitions)e.definitions.push(n);Object.assign(e.config,t.config),e.routeCustomFields=t.routeCustomFields,e.tree=t.tree,e.matcher=t.matcher,e.urlParamsCache.clear(),e.resolvedForwardMap=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 Xe(e,t,n,r){let{forwardTo:i,defaultParams:a,decodeParams:o,encodeParams:s,canActivate:c,canDeactivate:l}=r,u=i===void 0?void 0:Ze(n,i,e.config),d=Qe(e,n,r),f=c==null?void 0:t.compileGuardFactory(c,`canActivate`),p=l==null?void 0:t.compileGuardFactory(l,`canDeactivate`);return t.preflightHandlerLimit(f===void 0?[]:[n],p===void 0?[]:[n],!1),d!==void 0&&(Object.keys(d).length>0?e.routeCustomFields[n]=d:delete e.routeCustomFields[n]),u!==void 0&&(e.config.forwardMap=u.forwardMap,e.config.forwardFnMap=u.forwardFnMap,e.resolvedForwardMap=u.resolved),$e(e,n,{defaultParams:a,decodeParams:o,encodeParams:s}),et(t,`activate`,n,c,f),et(t,`deactivate`,n,l,p),{forwardTo:i,defaultParams:a,decodeParams:o,encodeParams:s}}function Ze(e,t,n){ze(t,e);let r=Object.assign(Object.create(null),n.forwardMap),i=Object.assign(Object.create(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:k({...n,forwardMap:r})}}function Qe(e,t,n){let r;for(let i of Object.keys(n)){if(Te.has(i))continue;let a=n[i];a!==void 0&&(r??={...e.routeCustomFields[t]},a===null?delete r[i]:r[i]=a)}return r}function $e(e,t,n){if(n.defaultParams!==void 0&&(n.defaultParams===null?delete e.config.defaultParams[t]:e.config.defaultParams[t]=n.defaultParams),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 et(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 tt(e,t){M(e,`addRoute`),j(e,``,`addRoute`);let n=F(e,``,t);return{definitions:n.definitions,config:n.config,tree:n.tree,matcher:n.matcher,urlParamsCache:new Map,resolvedForwardMap:n.resolvedForwardMap,routeCustomFields:n.routeCustomFields,rootPath:``,matcherOptions:t,depsStore:void 0,lifecycleNamespace:void 0,pendingCanActivate:n.pendingCanActivate,pendingCanDeactivate:n.pendingCanDeactivate}}const L=[];Object.freeze(L);function nt(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 rt=new Set([`string`,`number`,`boolean`]);function it(e){return rt.has(typeof e)}function at(e,t,n,r){let i=t[e];if(!i||typeof i!=`object`)return!0;for(let e of Object.keys(i)){let t=n.params[e],i=r.params[e];if(it(t)&&it(i)&&String(t)!==String(i))return!1}return!0}function ot(e,t,n,r,i,a){for(let o=0;o<a;o++){let a=r[o];if(a!==i[o]||!at(a,e,t,n))return o}return a}const st=new Map;function R(e){let t=st.get(e);if(t)return t;let n=ct(e);return Object.freeze(n),st.set(e,n),n}function ct(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]:nt(e)}let z,B,V=null,lt,ut,H=null;function dt(e,t){if(!t)return{intersection:``,toActivate:R(e.name),toDeactivate:L};let n=w(e),r=w(t);if(!n&&!r)return{intersection:``,toActivate:R(e.name),toDeactivate:R(t.name)};let i=R(e.name),a=R(t.name),o=Math.min(a.length,i.length),s=ot(n??r,e,t,i,a,o),c;if(s>=a.length)c=L;else if(s===0&&a.length===1)c=a;else{c=[];for(let e=a.length-1;e>=s;e--)c.push(a[e])}let l=s===0?i:i.slice(s);return{intersection:s>0?a[s-1]:``,toDeactivate:c,toActivate:l}}function U(e,t){if(V!==null&&e===z&&t===B)return V;if(H!==null&&e===lt&&t===ut)return H;let n=dt(e,t);return lt=z,ut=B,H=V,z=e,B=t,V=n,n}function ft(e){let t=[];for(let n of e)for(let e of n.paramMeta.urlParams)t.push(e);return t}function pt(e,t){return{name:t??e.segments.at(-1).fullName,params:e.params,meta:e.meta}}var mt=class{#e;#t;#n;get#r(){return this.#e.depsStore}constructor(e=[],t){this.#e=tt(e,t)}static shouldUpdateNode(e){return(t,n)=>{if(!(t&&typeof t==`object`&&`name`in t))throw TypeError(`[router.shouldUpdateNode] toState must be valid State object`);if(t.transition.reload||e===``)return!0;let{intersection:r,toActivate:i,toDeactivate:a}=U(t,n);return e===r||i.includes(e)?!0:a.includes(e)}}setDependencies(e){this.#e.depsStore=e}flushPendingGuards(){let e=this.#r;for(let[t,n]of this.#e.pendingCanActivate)e.addActivateGuard(t,n);this.#e.pendingCanActivate.clear();for(let[t,n]of this.#e.pendingCanDeactivate)e.addDeactivateGuard(t,n);this.#e.pendingCanDeactivate.clear()}setLifecycleNamespace(e){this.#e.lifecycleNamespace=e}setRootPath(e){this.#e.rootPath=e,O(this.#e)}hasRoute(e){return this.#e.matcher.hasRoute(e)}clearRoutes(){Le(this.#e)}buildPath(e,t,n){if(e===p.UNKNOWN_ROUTE)return typeof t?.path==`string`?t.path:``;let r=Object.hasOwn(this.#e.config.defaultParams,e)?{...this.#e.config.defaultParams[e],...t}:t??{},i=typeof this.#e.config.encoders[e]==`function`?this.#e.config.encoders[e]({...r}):r;return this.#e.matcher.buildPath(e,i,this.#a(n))}matchPath(e,t){let n=t,r=this.#e.matcher.match(e);if(!r)return;let{name:i,params:a,meta:o}=pt(r),s=typeof this.#e.config.decoders[i]==`function`?this.#e.config.decoders[i](a):a,{name:c,params:l}=this.#r.forwardState(i,s),u=e;if(n.rewritePathOnMatch){let t=typeof this.#e.config.encoders[c]==`function`?this.#e.config.encoders[c]({...l}):l,r=n.trailingSlash;try{u=this.#e.matcher.buildPath(c,t,{trailingSlash:r===`never`||r===`always`?r:void 0,queryParamsMode:n.queryParamsMode}),r===`preserve`&&(u=Ne(e,u))}catch{u=e}}return this.#r.makeState(c,l,u,o)}forwardState(e,t){if(Object.hasOwn(this.#e.config.forwardFnMap,e)){let n=this.#i(e,t),r=this.#e.config.forwardFnMap[e],i=this.#o(e,r,t);return{name:i,params:this.#i(i,n)}}let n=this.#e.resolvedForwardMap[e]??e;if(n!==e&&Object.hasOwn(this.#e.config.forwardFnMap,n)){let r=this.#i(e,t),i=this.#e.config.forwardFnMap[n],a=this.#o(n,i,t);return{name:a,params:this.#i(a,r)}}if(n!==e){let r=this.#i(e,t);return{name:n,params:this.#i(n,r)}}return{name:e,params:this.#i(e,t)}}buildStateResolved(e,t){let n=this.#e.matcher.getSegmentsByName(e);if(n)return pt({segments:n,params:t,meta:this.#e.matcher.getMetaByName(e)},e)}isActiveRoute(e,t={},n=!1,r=!0){let i=this.#r.getState();if(!i)return!1;let a=i.name;if(a!==e&&!a.startsWith(`${e}.`)&&!e.startsWith(`${a}.`))return!1;let o=this.#e.config.defaultParams[e];if(n||a===e){let n={name:e,params:o?{...o,...t}:t,path:``,transition:v,context:{}};return this.#r.areStatesEqual(n,i,r)}if(!a.startsWith(`${e}.`))return!1;let s=i.params;return De(t,s)?o?Oe(r?ke(o,this.#e.matcher.getMetaByName(e)?.[e]):o,s,t):!0:!1}getMetaForState(e){return this.#e.matcher.hasRoute(e)?this.#e.matcher.getMetaByName(e):void 0}getUrlParams(e){let t=this.#e.urlParamsCache.get(e);if(t!==void 0)return t;let n=this.#e.matcher.getSegmentsByName(e),r=n?ft(n):[];return this.#e.urlParamsCache.set(e,r),r}getStore(){return this.#e}#i(e,t){return Object.hasOwn(this.#e.config.defaultParams,e)?{...this.#e.config.defaultParams[e],...t}:t}#a(e){if(this.#t)return e!==this.#n&&s.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;let t=e?.trailingSlash;return this.#t=Object.freeze({trailingSlash:t===`never`||t===`always`?t:void 0,queryParamsMode:e?.queryParamsMode}),this.#t}#o(e,t,n){let r=new Set([e]),i=t(this.#r.getDependency,n),a=0;if(typeof i!=`string`)throw TypeError(`forwardTo callback must return a string, got ${typeof i}`);for(;a<100;){if(this.#e.matcher.getSegmentsByName(i)===void 0)throw Error(`Route "${i}" does not exist`);if(r.has(i)){let e=[...r,i].join(` → `);throw Error(`Circular forwardTo: ${e}`)}if(r.add(i),Object.hasOwn(this.#e.config.forwardFnMap,i)){let e=this.#e.config.forwardFnMap[i];i=e(this.#r.getDependency,n),a++;continue}let e=this.#e.config.forwardMap[i];if(e!==void 0){i=e,a++;continue}return i}throw Error(`forwardTo exceeds maximum depth of 100`)}};const ht=new Set(Object.values(d)),gt=new Set([`code`,`segment`,`path`]),_t=new Set([`setCode`,`setErrorInstance`,`setAdditionalFields`,`hasField`,`getField`,`toJSON`]);var W=class extends Error{segment;path;code;constructor(e,{message:t,segment:n,path:r,...i}={}){super(t??e),this.name=`RouterError`,this.code=e,this.segment=n,this.path=r;for(let[e,t]of Object.entries(i)){if(gt.has(e))throw TypeError(`[RouterError] Cannot set reserved property "${e}"`);_t.has(e)||(this[e]=t)}}setCode(e){this.code=e,ht.has(this.message)&&(this.message=e)}setErrorInstance(e){if(!e)throw TypeError(`[RouterError.setErrorInstance] err parameter is required and must be an Error instance`);this.message=e.message,this.cause=e.cause,this.stack=e.stack??``}setAdditionalFields(e){for(let[t,n]of Object.entries(e)){if(gt.has(t))throw TypeError(`[RouterError.setAdditionalFields] Cannot set reserved property "${t}"`);_t.has(t)||(this[t]=n)}}hasField(e){return e in this}getField(e){return this[e]}toJSON(){let e={code:this.code,message:this.message};this.segment!==void 0&&(e.segment=this.segment),this.path!==void 0&&(e.path=this.path);let t=new Set([`code`,`message`,`segment`,`path`,`stack`,`name`]);for(let n in this)Object.hasOwn(this,n)&&!t.has(n)&&(e[n]=this[n]);return e}};const vt=new W(d.ROUTER_NOT_STARTED),yt=new W(d.ROUTE_NOT_FOUND),bt=new W(d.SAME_STATES),G=Promise.reject(vt),xt=Promise.reject(yt),St=Promise.reject(bt);G.catch(()=>{}),xt.catch(()=>{}),St.catch(()=>{});function Ct(e,t,n,r,i){Object.freeze(n),Object.freeze(r);let a={phase:`activating`,reason:`success`,segments:Object.freeze({deactivated:n,activated:r,intersection:i})};return e?.name!==void 0&&(a.from=e.name),t.reload!==void 0&&(a.reload=t.reload),t.replace!==void 0&&(a.replace=t.replace),t.redirected!==void 0&&(a.redirected=t.redirected),Object.freeze(a)}function wt({signal:e,...t}){return t}function Tt(e,t){let{toState:n,fromState:r,opts:i,toDeactivate:a,toActivate:o,intersection:s}=t;if(n.name!==p.UNKNOWN_ROUTE&&!e.hasRoute(n.name)){let t=new W(d.ROUTE_NOT_FOUND,{routeName:n.name});throw e.sendTransitionFail(n,r,t),t}if(r)for(let n of a)!o.includes(n)&&t.canDeactivateFunctions.has(n)&&e.clearCanDeactivate(n);n.transition=Ct(r,i,a,o,s);let c=Object.freeze(n);e.setState(c);let l=i.signal===void 0?i:wt(i);return e.sendTransitionDone(c,r,l),c}function Et(e,t,n,r){let i=t;i.code===d.TRANSITION_CANCELLED||i.code===d.ROUTE_NOT_FOUND||e.sendTransitionFail(n,r,i)}function K(e,t,n){if(e instanceof DOMException&&e.name===`AbortError`)throw new W(d.TRANSITION_CANCELLED);if(e instanceof W&&e.code===d.TRANSITION_CANCELLED)throw e;Dt(e,t,n)}function Dt(e,t,n){throw e instanceof W?(e.setCode(t),e):new W(t,kt(e,n))}const Ot=new Set([`code`,`segment`,`path`,`then`]);function kt(e,t){let n={segment:t};if(e instanceof Error)return{...n,message:e.message,stack:e.stack,...`cause`in e&&e.cause!==void 0&&{cause:e.cause}};if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))Ot.has(n)||(t[n]=r);return{...n,...t}}return n}async function q(e,t,n){let r;try{r=await e}catch(e){K(e,t,n);return}if(!r)throw new W(t,{segment:n})}async function At(e,t,n,r,i,a,o,s,c,l){await q(c,n,l);for(let c=s;c<t.length;c++){if(!o())throw new W(d.TRANSITION_CANCELLED);let s=t[c],l=e.get(s);if(!l)continue;let u=!1;try{u=l(r,i,a)}catch(e){K(e,n,s)}if(u instanceof Promise){await q(u,n,s);continue}if(!u)throw new W(n,{segment:s})}}async function jt(e,t,n,r,i,a,o,s,c){if(await e,!s())throw new W(d.TRANSITION_CANCELLED);let l=c();if(l!==void 0&&(await l,!s()))throw new W(d.TRANSITION_CANCELLED);if(r){let e=J(t,n,d.CANNOT_ACTIVATE,i,a,o,s);if(e!==void 0&&await e,!s())throw new W(d.TRANSITION_CANCELLED)}}function Mt(e,t,n,r,i,a,o,s,c,l,u){if(i){let i=J(e,n,d.CANNOT_DEACTIVATE,o,s,c,l);if(i!==void 0)return jt(i,t,r,a,o,s,c,l,u)}if(!l())throw new W(d.TRANSITION_CANCELLED);let f=u();if(f!==void 0)return Nt(f,a?t:void 0,r,o,s,c,l);if(a)return J(t,r,d.CANNOT_ACTIVATE,o,s,c,l)}async function Nt(e,t,n,r,i,a,o){if(await e,!o())throw new W(d.TRANSITION_CANCELLED);if(t!==void 0){let e=J(t,n,d.CANNOT_ACTIVATE,r,i,a,o);if(e!==void 0&&await e,!o())throw new W(d.TRANSITION_CANCELLED)}}function J(e,t,n,r,i,a,o){for(let[s,c]of t.entries()){if(!o())throw new W(d.TRANSITION_CANCELLED);let l=e.get(c);if(!l)continue;let u=!1;try{u=l(r,i,a)}catch(e){K(e,n,c)}if(u instanceof Promise)return At(e,t,n,r,i,a,o,s+1,u,c);if(!u)throw new W(n,{segment:c})}}const Pt=Object.freeze([p.UNKNOWN_ROUTE]),Ft=Object.freeze({replace:!0});function It(e,t){return t?.name===p.UNKNOWN_ROUTE&&!e.replace?{...e,replace:!0}:e}function Lt(e,t,n){return!!e&&!t.reload&&!t.force&&e.path===n.path}var Rt=class{lastSyncResolved=!1;lastSyncRejected=!1;#e;#t=null;#n=0;setDependencies(e){this.#e=e}navigate(e,t,n){this.lastSyncResolved=!1;let r=this.#e;if(!r.canNavigate())return this.lastSyncRejected=!0,G;let i;try{i=r.buildNavigateState(e,t)}catch(e){return Promise.reject(e)}return i?this.#r(i,n):(r.emitTransitionError(void 0,r.getState(),yt),this.lastSyncRejected=!0,xt)}navigateToState(e,t){this.lastSyncResolved=!1;let n=this.#e;if(!n.canNavigate())return this.lastSyncRejected=!0,G;if(e.name!==p.UNKNOWN_ROUTE&&!n.hasRoute(e.name)){let t=new W(d.ROUTE_NOT_FOUND,{routeName:e.name});return n.emitTransitionError(void 0,n.getState(),t),Promise.reject(t)}let r={name:e.name,params:e.params,path:e.path,context:{...e.context}},i=w(e);return i!==void 0&&pe(r,i),this.#r(r,t)}navigateToDefault(e){this.lastSyncResolved=!1;let t=this.#e;if(!t.getOptions().defaultRoute)return Promise.reject(new W(d.ROUTE_NOT_FOUND,{routeName:`defaultRoute not configured`}));let n,r;try{({route:n,params:r}=t.resolveDefault())}catch(e){return Promise.reject(e)}return n?this.navigate(n,r,e):Promise.reject(new W(d.ROUTE_NOT_FOUND,{routeName:`defaultRoute resolved to empty`}))}navigateToNotFound(e){if(!this.#e.isActive())throw new W(d.ROUTER_DISPOSED);this.#c();let t=this.#e.getState(),n=t?R(t.name).toReversed():[];Object.freeze(n);let r={deactivated:n,activated:Pt,intersection:``};Object.freeze(r);let i={phase:`activating`,...t&&{from:t.name},reason:`success`,replace:!0,segments:r};Object.freeze(i);let a={name:p.UNKNOWN_ROUTE,params:_,path:e,transition:i,context:{}};return Object.freeze(a),this.#e.setState(a),this.#e.emitTransitionSuccess(a,t,Ft),a}abortCurrentController(e){this.#t?.abort(e??new W(d.TRANSITION_CANCELLED)),this.#t=null}#r(e,t){let n=this.#e,r,i=!1,a=null;try{if(r=n.getState(),t=It(t,r),Lt(r,t,e))return n.emitTransitionError(e,r,bt),this.lastSyncRejected=!0,St;this.#c(t.signal);let o=++this.#n,s=t.signal!==void 0||n.hasLeaveListeners()||n.hasPreCommitListeners();n.startTransition(e,r),i=!0;let[c,l]=n.getLifecycleFunctions(),u=e.name===p.UNKNOWN_ROUTE,f=U(e,r),{toDeactivate:m,toActivate:h,intersection:g}=f,_=r&&!t.forceDeactivate&&m.length>0,ee=!u&&h.length>0,v=c.size>0||l.size>0,y=e;if(!v){let e=this.#o(y,r,o,t,f,c);if(e!==void 0)return e}if(v){a=new AbortController,this.#t=a;let i=()=>this.#n===o&&n.isActive(),s=a.signal,u=Mt(c,l,m,h,!!_,ee,e,r,s,i,()=>{if(n.sendLeaveApprove(y,r),n.hasLeaveListeners())return n.awaitLeaveListeners(y,r,s)});if(u!==void 0)return this.#i(u,{toState:e,fromState:r,opts:t,toDeactivate:m,toActivate:h,intersection:g,canDeactivateFunctions:c},a,o);if(!i())throw new W(d.TRANSITION_CANCELLED);this.#s(a,!1)}if(s&&(!n.isActive()||t.signal?.aborted===!0))throw new W(d.TRANSITION_CANCELLED);let b=Tt(n,{toState:e,fromState:r,opts:t,toDeactivate:m,toActivate:h,intersection:g,canDeactivateFunctions:c});return this.lastSyncResolved=!0,Promise.resolve(b)}catch(t){return this.#a(t,a,i,e,r),Promise.reject(t)}}async#i(e,t,n,r){let i=this.#e,a=()=>this.#n===r&&!n.signal.aborted&&i.isActive(),o=t.opts.signal,s,c,l=!1,u,f=new Promise(e=>{if(n.signal.aborted){e();return}c=()=>{e()},n.signal.addEventListener(`abort`,c,{once:!0})});e.catch(()=>{});try{if(o){if(o.aborted)throw new W(d.TRANSITION_CANCELLED,{reason:o.reason});s=()=>{i.cancelNavigation(o.reason)},o.addEventListener(`abort`,s,{once:!0})}if(await Promise.race([e,f]),!a())throw new W(d.TRANSITION_CANCELLED);let n=Tt(i,t);return l=!0,n}catch(e){throw u=e,Et(i,e,t.toState,t.fromState),e}finally{s&&o?.removeEventListener(`abort`,s),c&&n.signal.removeEventListener(`abort`,c),this.#s(n,!l,u)}}#a(e,t,n,r,i){t&&this.#s(t,!0,e),n&&r&&Et(this.#e,e,r,i)}#o(e,t,n,r,i,a){let o=this.#e;if(o.sendLeaveApprove(e,t),o.hasLeaveListeners()){let s=new AbortController;this.#t=s;let c;try{c=o.awaitLeaveListeners(e,t,s.signal)}catch(e){throw this.#s(s,!0,e),e}if(c!==void 0)return this.#i(c,{toState:e,fromState:t,opts:r,toDeactivate:i.toDeactivate,toActivate:i.toActivate,intersection:i.intersection,canDeactivateFunctions:a},s,n);this.#s(s,!1);return}}#s(e,t,n){t&&e.abort(n),this.#t===e&&(this.#t=null)}#c(e){if(this.#e.isTransitioning()&&(s.warn(`router.navigate`,`Concurrent navigation detected on shared router instance. For SSR, use cloneRouter() to create isolated instance per request.`),this.#e.cancelNavigation()),e?.aborted)throw new W(d.TRANSITION_CANCELLED,{reason:e.reason})}};const zt=Object.freeze({replace:!0});var Bt=class{#e;setDependencies(e){this.#e=e}async start(e){let t=this.#e;if(t.isIdle())throw new W(d.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 n=new W(d.ROUTE_NOT_FOUND,{path:e});throw t.emitTransitionError(void 0,void 0,n),n}return t.completeStart(),r?t.navigateToState(r,zt):t.navigateToNotFound(e)}stop(){this.#e.clearState()}};const Y=`TREE_CHANGED`;function X(e){return e instanceof Error?e:Error(String(e))}function Vt(e,t,n){return new Promise((r,i)=>{let a=()=>{let e=n.reason;i(e instanceof W&&e.code===d.TRANSITION_CANCELLED?e:new W(d.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(X(t));return}let o=e.find(e=>e.status===`rejected`);if(o!==void 0){i(X(o.reason));return}r()})})}var Z=class{#e;#t;#n;#r;#i=[];#a=0;#o;#s;#c;#l;#u;constructor(e){this.#e=e.routerFSM,this.#t=e.emitter,this.#n=e.onListenerError,this.#r=e.abortController,this.#o=void 0,this.#f()}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.#t.emit(h.ROUTER_START)}emitRouterStop(){this.#t.emit(h.ROUTER_STOP)}emitTransitionStart(e,t){this.#a++;try{this.#t.emit(h.TRANSITION_START,e,t)}finally{this.#a--}}emitTransitionSuccess(e,t,n){this.#a++;try{this.#t.emit(h.TRANSITION_SUCCESS,e,t,n)}finally{this.#a--}}emitTransitionError(e,t,n){this.#a++;try{this.#t.emit(h.TRANSITION_ERROR,e,t,n)}finally{this.#a--}}emitTransitionCancel(e,t){this.#a++;try{this.#t.emit(h.TRANSITION_CANCEL,e,t)}finally{this.#a--}}emitTransitionLeaveApprove(e,t){this.#a++;try{this.#t.emit(h.TRANSITION_LEAVE_APPROVE,e,t)}finally{this.#a--}}isProcessing(){return this.#a>0}emitTreeChanged(e){this.#t.emit(Y,e)}isEmittingTreeChanged(){return this.#t.isDispatching(Y)}subscribeTreeChanged(e){if(this.isDisposed())throw new W(d.ROUTER_DISPOSED);return this.#t.on(Y,t=>{e(t)})}treeChangedListenerCount(){return this.#t.listenerCount(Y)}sendStart(){this.#e.send(b.START)}sendStop(){this.#e.send(b.STOP)}sendDispose(){this.#e.send(b.DISPOSE)}sendStarted(){this.#e.send(b.STARTED)}sendNavigate(e,t){this.#o=e,this.#e.send(b.NAVIGATE,{toState:e,fromState:t})}sendComplete(e,t,n={}){this.#e.send(b.COMPLETE,{toState:e,fromState:t,opts:n}),this.#o=void 0}sendLeaveApprove(e,t){this.#e.send(b.LEAVE_APPROVE,{toState:e,fromState:t})}sendFail(e,t,n){this.#s=e,this.#c=t,this.#l=n,this.#e.send(b.FAIL),this.#o=void 0}sendFailSafe(e,t,n){this.isReady()?this.sendFail(e,t,n):this.emitTransitionError(e,t,n)}sendCancel(e,t,n){this.#s=e,this.#c=t,this.#u=n,this.#e.send(b.CANCEL),this.#o=void 0}canBeginTransition(){return this.#e.canSend(b.NAVIGATE)}canStart(){return this.#e.canSend(b.START)}canCancel(){return this.#e.canSend(b.CANCEL)}isActive(){let e=this.#e.getState();return e!==y.IDLE&&e!==y.DISPOSED}isDisposed(){return this.#e.getState()===y.DISPOSED}isTransitioning(){let e=this.#e.getState();return e===y.TRANSITION_STARTED||e===y.LEAVE_APPROVED}isLeaveApproved(){return this.#e.getState()===y.LEAVE_APPROVED}isReady(){return this.#e.getState()===y.READY}isStarting(){return this.#e.getState()===y.STARTING}isIdle(){return this.#e.getState()===y.IDLE}addEventListener(e,t){return this.#t.on(e,t)}subscribe(e){if(this.isDisposed())throw new W(d.ROUTER_DISPOSED);return this.#t.on(h.TRANSITION_SUCCESS,(t,n)=>{let r=e({route:t,previousRoute:n});r!=null&&typeof r.then==`function`&&Promise.resolve(r).catch(e=>{this.#n(h.TRANSITION_SUCCESS,e)})})}subscribeLeave(e){if(this.isDisposed())throw new W(d.ROUTER_DISPOSED);this.#i.push(e);let t=!1;return()=>{if(t)return;t=!0;let n=this.#i.indexOf(e);n!==-1&&this.#i.splice(n,1)}}hasLeaveListeners(){return this.#i.length>0}hasPreCommitListeners(){return this.#t.listenerCount(h.TRANSITION_START)>0||this.#t.listenerCount(h.TRANSITION_LEAVE_APPROVE)>0}awaitLeaveListeners(e,t,n){if(t===void 0)return;let r=Object.freeze({route:t,nextRoute:e,signal:n}),i,a,o=[...this.#i];this.#a++;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.#a--}if(i===void 0){if(a!==void 0)throw X(a);return}return Vt(i,a,n)}clearAll(){this.#t.clearAll(),this.#i.length=0}setLimits(e){this.#t.setLimits(e)}sendCancelIfPossible(e,t){let n=this.#o;!this.canCancel()||n===void 0||this.sendCancel(n,e,t)}#d(){this.emitTransitionError(this.#s,this.#c,this.#l),this.#s=void 0,this.#c=void 0,this.#l=void 0}#f(){let e=this.#e;e.on(y.STARTING,b.STARTED,()=>{this.emitRouterStart()}),e.on(y.READY,b.STOP,()=>{this.emitRouterStop()});let t=e=>{this.emitTransitionStart(e.toState,e.fromState)};e.on(y.READY,b.NAVIGATE,t),e.on(y.TRANSITION_STARTED,b.NAVIGATE,t),e.on(y.LEAVE_APPROVED,b.NAVIGATE,t),e.on(y.TRANSITION_STARTED,b.LEAVE_APPROVE,e=>{this.emitTransitionLeaveApprove(e.toState,e.fromState)}),e.on(y.LEAVE_APPROVED,b.COMPLETE,e=>{this.emitTransitionSuccess(e.toState,e.fromState,e.opts)});let n=()=>{let e=this.#s,t=this.#u;this.#u=void 0,this.#r(t),e!==void 0&&this.emitTransitionCancel(e,this.#c)};e.on(y.TRANSITION_STARTED,b.CANCEL,n),e.on(y.LEAVE_APPROVED,b.CANCEL,n),e.on(y.LEAVE_APPROVED,b.FAIL,()=>{this.#d()}),e.on(y.STARTING,b.FAIL,()=>{this.#d()}),e.on(y.READY,b.FAIL,()=>{this.#d()}),e.on(y.TRANSITION_STARTED,b.FAIL,()=>{this.#d()})}};const Ht=new W(d.ROUTER_ALREADY_STARTED),Ut=new Set([`all`,`warn-error`,`error-only`,`none`]);function Wt(e){return typeof e==`string`&&Ut.has(e)}function Gt(e){return typeof e==`string`?`"${e}"`:typeof e==`object`?JSON.stringify(e):String(e)}function Kt(e){if(typeof e!=`object`)throw TypeError(`Logger config must be an object`);let t=e;for(let e of Object.keys(t))if(e!==`level`&&e!==`callback`&&e!==`callbackIgnoresLevel`)throw TypeError(`Unknown logger config property: "${e}"`);if(`level`in t&&t.level!==void 0&&!Wt(t.level))throw TypeError(`Invalid logger level: ${Gt(t.level)}. Expected: "all" | "warn-error" | "error-only" | "none"`);if(`callback`in t&&t.callback!==void 0&&typeof t.callback!=`function`)throw TypeError(`Logger callback must be a function, got ${typeof t.callback}`);if(`callbackIgnoresLevel`in t&&t.callbackIgnoresLevel!==void 0&&typeof t.callbackIgnoresLevel!=`boolean`)throw TypeError(`Logger callbackIgnoresLevel must be a boolean, got ${typeof t.callbackIgnoresLevel}`)}function qt(e){let t=Jt(e),r=()=>n(e.router).validator;Yt(e),Xt(e,t,r),Zt(e),Qt(e,t,r),$t(e),en(e),tn(e)}function Jt(e){let{router:t,dependenciesStore:n}=e,r=e=>n.dependencies[e];return e=>e(t,r)}function Yt(e){e.dependenciesStore.limits=e.limits,e.eventBus.setLimits({maxListeners:e.limits.maxListeners,warnListeners:e.limits.warnListeners})}function Xt(e,t,n){let r={compileFactory:t,getValidator:n};e.routeLifecycle.setDependencies(r)}function Zt(e){e.routes.setDependencies({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),makeState:(t,n,r,i)=>e.state.makeState(t,n,r,i),getState:()=>e.state.get(),areStatesEqual:(t,n,r)=>e.state.areStatesEqual(t,n,r),getDependency:t=>e.dependenciesStore.dependencies[t],forwardState:(t,r)=>{let i=n(e.router);return i.validator?.routes.validateStateBuilderArgs(t,r,`forwardState`),i.forwardState(t,r)}}),e.routes.setLifecycleNamespace(e.routeLifecycle)}function Qt(e,t,n){let r={addEventListener:(t,n)=>e.eventBus.addEventListener(t,n),canNavigate:()=>e.eventBus.canBeginTransition(),compileFactory:t,getValidator:n};e.plugins.setDependencies(r)}function $t(e){e.navigation.setDependencies({getOptions:()=>e.options.get(),hasRoute:t=>e.routes.hasRoute(t),getState:()=>e.state.get(),setState:t=>{e.state.set(t)},buildNavigateState:(t,r)=>{let i=n(e.router);i.validator?.routes.validateStateBuilderArgs(t,r,`navigate`);let a=i.forwardState(t,r),o=a.name,s=S(a.params),c=e.routes.getMetaForState(o);if(c===void 0)return;let l=i.buildPath(o,s);return e.state.makeState(o,s,l,c,!0)},resolveDefault:()=>{let t=e.options.get(),r=n(e.router),i=le(t.defaultRoute,t=>e.dependenciesStore.dependencies[t]),a=le(t.defaultParams,t=>e.dependenciesStore.dependencies[t]);return typeof t.defaultRoute==`function`&&r.validator?.options.validateResolvedDefaultRoute(i,r.routeGetStore()),{route:i,params:a}},startTransition:(t,n)=>{e.eventBus.sendNavigate(t,n)},cancelNavigation:t=>{e.eventBus.sendCancelIfPossible(e.state.get(),t)},sendTransitionDone:(t,n,r)=>{e.eventBus.sendComplete(t,n,r)},sendTransitionFail:(t,n,r)=>{e.eventBus.sendFail(t,n,r)},emitTransitionError:(t,n,r)=>{e.eventBus.sendFailSafe(t,n,r)},emitTransitionSuccess:(t,n,r)=>{e.eventBus.emitTransitionSuccess(t,n,r)},sendLeaveApprove:(t,n)=>{e.eventBus.sendLeaveApprove(t,n)},canNavigate:()=>e.eventBus.canBeginTransition(),getLifecycleFunctions:()=>e.routeLifecycle.getFunctions(),isActive:()=>e.router.isActive(),isTransitioning:()=>e.eventBus.isTransitioning(),clearCanDeactivate:t=>{e.routeLifecycle.clearCanDeactivate(t,`external`)},hasLeaveListeners:()=>e.eventBus.hasLeaveListeners(),hasPreCommitListeners:()=>e.eventBus.hasPreCommitListeners(),awaitLeaveListeners:(t,n,r)=>e.eventBus.awaitLeaveListeners(t,n,r)})}function en(e){e.lifecycle.setDependencies({getOptions:()=>e.options.get(),navigateToState:(t,n)=>e.navigation.navigateToState(t,n),navigateToNotFound:t=>e.navigation.navigateToNotFound(t),clearState:()=>{e.state.set(void 0)},matchPath:t=>e.routes.matchPath(t,e.options.get()),completeStart:()=>{e.eventBus.sendStarted()},isIdle:()=>e.eventBus.isIdle(),emitTransitionError:(t,n,r)=>{e.eventBus.sendFail(t,n,r)}})}function tn(e){e.state.setDependencies({getDefaultParams:()=>e.routes.getStore().config.defaultParams,buildPath:(t,r)=>n(e.router).buildPath(t,r),getUrlParams:t=>e.routes.getUrlParams(t)})}const Q=Object.freeze({}),nn=new Set([d.SAME_STATES,d.TRANSITION_CANCELLED,d.ROUTER_NOT_STARTED,d.ROUTE_NOT_FOUND,d.CANNOT_ACTIVATE,d.CANNOT_DEACTIVATE]);function rn(e,t){s.error(`Router`,`Error in listener for ${e}:`,t)}var an=class t{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;constructor(n=[],r={},a={}){let{logger:c,...l}=r;c&&(Kt(c),s.configure(c)),de.validateOptionsIsObject(r),re(a),n.length>0&&x(n),this.#e=new de(l),this.#t=ae(l.limits),this.#n=oe(a),this.#r=new me,this.#i=new mt(n,on(this.#e.get())),this.#a=new we,this.#o=new ve,this.#s=new Rt,this.#c=new Bt;let d=ne(),f=new u({onListenerError:rn,onListenerWarn:(e,t)=>{s.warn(`router.addEventListener`,`Event "${e}" has ${t} listeners — possible memory leak`)}});this.#l=new Z({routerFSM:d,emitter:f,onListenerError:rn,abortController:e=>{this.#s.abortCurrentController(e)}});let p=new Map;o(this,{makeState:(e,t,n,r)=>this.#r.makeState(e,t,n,r),forwardState:i(`forwardState`,(e,t)=>this.#i.forwardState(e,t),p),buildStateResolved:(e,t)=>this.#i.buildStateResolved(e,t),matchPath:(e,t)=>this.#i.matchPath(e,t),getOptions:()=>this.#e.get(),addEventListener:(e,t)=>this.#l.addEventListener(e,t),treeChanged:{emit:e=>{this.#l.emitTreeChanged(e)},subscribe:e=>this.#l.subscribeTreeChanged(e),listenerCount:()=>this.#l.treeChangedListenerCount(),isEmitting:()=>this.#l.isEmittingTreeChanged()},buildPath:i(`buildPath`,(e,t)=>this.#i.buildPath(e,t??_,this.#e.get()),p),emitTransitionError:e=>{this.#l.sendFailSafe(void 0,this.#r.get(),e)},emitTransitionSuccess:(e,t,n)=>{this.#l.emitTransitionSuccess(e,t,n)},navigateToNotFound:e=>this.#s.navigateToNotFound(e),start:e(`start`,e=>this.#c.start(e),p),navigateToState:(e,n)=>{this.#m();let r=this.#s.navigateToState(e,n??Q);return this.#s.lastSyncResolved?this.#s.lastSyncResolved=!1:this.#s.lastSyncRejected?this.#s.lastSyncRejected=!1:t.#p(r),r},interceptors:p,setRootPath:e=>{this.#i.setRootPath(e)},getRootPath:()=>this.#i.getStore().rootPath,getTree:()=>this.#i.getStore().tree,isDisposed:()=>this.#l.isDisposed(),validator:null,dependenciesGetStore:()=>this.#n,getCloneState:()=>({options:{...this.#e.get()},dependencies:{...this.#n.dependencies},pluginFactories:this.#o.getAll()}),routeGetStore:()=>this.#i.getStore(),getStateName:()=>this.#r.get()?.name,isTransitioning:()=>this.#l.isTransitioning(),clearState:()=>{this.#r.set(void 0)},setState:e=>{this.#r.set(e)},routerExtensions:[],contextClaimRecords:new Set,hydrationState:null}),qt({router:this,options:this.#e,limits:this.#t,dependenciesStore:this.#n,state:this.#r,routes:this.#i,routeLifecycle:this.#a,plugins:this.#o,navigation:this.#s,lifecycle:this.#c,eventBus:this.#l}),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.#i.flushPendingGuards()}catch(e){throw this.dispose(),e}}isActiveRoute(e,t,r,i){return n(this).validator?.routes.validateIsActiveRouteArgs(e,t,r,i),n(this).validator?.routes.validateRouteName(e,`isActiveRoute`),e===``?(s.warn(`real-router`,`isActiveRoute("") called with empty string. Root node is not considered a parent of any route.`),!1):this.#i.isActiveRoute(e,t,r,i)}buildPath(e,t){let r=n(this);return r.validator?.routes.validateBuildPathArgs(e),r.validator?.navigation.validateParams(t,`buildPath`),r.buildPath(e,S(t))}getState(){return this.#r.get()}getPreviousState(){return this.#r.getPrevious()}areStatesEqual(e,t,r=!0){return n(this).validator?.state.validateAreStatesEqualArgs(e,t,r),this.#r.areStatesEqual(e,t,r)}shouldUpdateNode(e){return n(this).validator?.routes.validateShouldUpdateNodeArgs(e),mt.shouldUpdateNode(e)}isActive(){return this.#l.isActive()}start(e){if(!this.#l.canStart())return Promise.reject(Ht);n(this).validator?.navigation.validateStartArgs(e),this.#l.sendStart();let r;try{r=n(this).start(e)}catch(e){r=Promise.reject(e)}let i=r.catch(e=>this.#h(e));return t.#p(i,t.#f),i}stop(){return this.#l.sendCancelIfPossible(this.#r.get()),!this.#l.isReady()&&!this.#l.isTransitioning()&&!this.#l.isStarting()?this:(this.#c.stop(),this.#l.sendStop(),this)}dispose(){if(this.#l.isDisposed())return;this.#l.sendCancelIfPossible(this.#r.get()),(this.#l.isReady()||this.#l.isTransitioning())&&(this.#c.stop(),this.#l.sendStop()),this.#l.sendDispose(),this.#l.clearAll(),this.#o.disposeAll();let e=n(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.#i.clearRoutes(),this.#a.clearAll(),this.#r.reset(),this.#n.dependencies=Object.create(null),this.#g()}canNavigateTo(e,t){let r=n(this);if(r.validator?.routes.validateRouteName(e,`canNavigateTo`),r.validator?.navigation.validateParams(t,`canNavigateTo`),!this.#i.hasRoute(e))return!1;let{name:i,params:a}=r.forwardState(e,t??{}),o;try{let e=S(a),t=this.#i.getMetaForState(i),n=r.buildPath(i,e);o=this.#r.makeState(i,e,n,t,!0)}catch{return!1}let s=this.#r.get(),{toDeactivate:c,toActivate:l}=U(o,s);return this.#a.canNavigateTo(c,l,o,s)}usePlugin(...e){if(this.#l.isDisposed())throw new W(d.ROUTER_DISPOSED);let t=e.filter(Boolean);if(t.length===0)return()=>{};let r=n(this);r.validator?.plugins.validatePluginLimit(this.#o.count(),this.#t);for(let e of t)r.validator?.plugins.validateNoDuplicatePlugins(e,this.#o.getAll());return this.#o.use(...t)}subscribe(e){return Z.validateSubscribeListener(e),this.#l.subscribe(e)}subscribeLeave(e){return Z.validateSubscribeLeaveListener(e),this.#l.subscribeLeave(e)}isLeaveApproved(){return this.#l.isLeaveApproved()}navigate(e,r,i){this.#m();let a=n(this);a.validator?.navigation.validateNavigateArgs(e),a.validator?.navigation.validateParams(r,`navigate`);let o=i??Q;a.validator?.navigation.validateNavigationOptions(o,`navigate`);let s=this.#s.navigate(e,r??_,o);return this.#s.lastSyncResolved?this.#s.lastSyncResolved=!1:this.#s.lastSyncRejected?this.#s.lastSyncRejected=!1:t.#p(s),s}navigateToDefault(e){this.#m();let r=n(this);r.validator?.navigation.validateNavigateToDefaultArgs(e);let i=e??Q;r.validator?.navigation.validateNavigationOptions(i,`navigateToDefault`);let a=this.#s.navigateToDefault(i);return this.#s.lastSyncResolved?this.#s.lastSyncResolved=!1:this.#s.lastSyncRejected?this.#s.lastSyncRejected=!1:t.#p(a),a}navigateToNotFound(e){if(this.#m(),!this.#l.isActive())throw new W(d.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.#s.navigateToNotFound(e);let t=this.#r.get();if(t===void 0)throw new W(d.ROUTER_NOT_STARTED,{message:`[router.navigateToNotFound] cannot derive the path before the start navigation commits — pass an explicit path`});return this.#s.navigateToNotFound(t.path)}static#u(e){return e instanceof W&&nn.has(e.code)}static#d=e=>{t.#u(e)||s.error(`router.navigate`,`Unexpected navigation error`,e)};static#f=e=>{t.#u(e)||s.error(`router.start`,`Unexpected start error`,e)};static#p(e,n=t.#d){e.catch(n)}#m(){if(this.#l.isProcessing())throw new W(d.REENTRANT_NAVIGATION)}#h(e){throw this.#l.isReady()&&this.#r.get()===void 0?(this.#c.stop(),this.#l.sendStop()):this.#l.isStarting()&&this.#l.sendFail(void 0,void 0,e),e}#g(){this.navigate=$,this.navigateToDefault=$,this.navigateToNotFound=$,this.start=$,this.stop=$,this.usePlugin=$,this.subscribe=$,this.subscribeLeave=$,this.canNavigateTo=$}};function $(){throw new W(d.ROUTER_DISPOSED)}function on(e){return{strictTrailingSlash:e.trailingSlash===`strict`,caseSensitive:e.caseSensitive,strictQueryParams:e.queryParamsMode===`strict`,urlParamsEncoding:e.urlParamsEncoding,queryParams:e.queryParams}}export{d as C,p as S,Ee as _,Ke as a,x as b,M as c,F as d,Xe as f,Pe as g,Le as h,Ye as i,Ge as l,Je as m,W as n,j as o,Ie as p,U as r,N as s,an as t,qe as u,Me as v,h as w,f as x,je as y};
|
|
2
|
-
//# sourceMappingURL=Router-DQaAlkH_.mjs.map
|