@real-router/core 0.60.2 → 0.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Router-Bm2qafJA.d.ts.map +1 -1
- package/dist/cjs/Router-DJWYy9KF.js +6 -0
- package/dist/cjs/Router-DJWYy9KF.js.map +1 -0
- package/dist/cjs/api.d.ts.map +1 -1
- package/dist/cjs/api.js +1 -1
- package/dist/cjs/api.js.map +1 -1
- package/dist/cjs/{cloneRouter-DbJJxv9B.js → cloneRouter-DVrUXIu5.js} +2 -2
- package/dist/cjs/cloneRouter-DVrUXIu5.js.map +1 -0
- package/dist/cjs/{index-nL3iDYlj.d.ts → index-CphG-ueA.d.ts} +3 -14
- package/dist/cjs/index-CphG-ueA.d.ts.map +1 -0
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/internals-DJjgSePy.js.map +1 -1
- package/dist/cjs/utils.js +1 -1
- package/dist/cjs/validation.d.ts +7 -25
- package/dist/cjs/validation.d.ts.map +1 -1
- package/dist/esm/Router-33sWB6J3.mjs +6 -0
- package/dist/esm/Router-33sWB6J3.mjs.map +1 -0
- package/dist/esm/Router-Bm2qafJA.d.mts.map +1 -1
- package/dist/esm/api.d.mts.map +1 -1
- package/dist/esm/api.mjs +1 -1
- package/dist/esm/api.mjs.map +1 -1
- package/dist/esm/{cloneRouter-CVmRROlE.mjs → cloneRouter-CYlB8SeO.mjs} +2 -2
- package/dist/esm/cloneRouter-CYlB8SeO.mjs.map +1 -0
- package/dist/esm/{index-nL3iDYlj.d.mts → index-CphG-ueA.d.mts} +3 -14
- package/dist/esm/index-CphG-ueA.d.mts.map +1 -0
- package/dist/esm/index.d.mts +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/internals-C8mRvTxc.mjs.map +1 -1
- package/dist/esm/utils.mjs +1 -1
- package/dist/esm/validation.d.mts +7 -25
- package/dist/esm/validation.d.mts.map +1 -1
- package/package.json +5 -4
- package/dist/cjs/Router-Cq7MfQ6_.js +0 -6
- package/dist/cjs/Router-Cq7MfQ6_.js.map +0 -1
- package/dist/cjs/cloneRouter-DbJJxv9B.js.map +0 -1
- package/dist/cjs/index-nL3iDYlj.d.ts.map +0 -1
- package/dist/esm/Router-DeZezyPw.mjs +0 -6
- package/dist/esm/Router-DeZezyPw.mjs.map +0 -1
- package/dist/esm/cloneRouter-CVmRROlE.mjs.map +0 -1
- package/dist/esm/index-nL3iDYlj.d.mts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","names":[],"sources":["../../src/namespaces/DependenciesNamespace/dependenciesStore.ts","../../src/namespaces/RouteLifecycleNamespace/types.ts","../../src/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.ts","../../src/namespaces/RoutesNamespace/types.ts","../../src/namespaces/RoutesNamespace/routesStore.ts","../../src/internals.ts"],"mappings":";;;;;;UAKiB,iBAAA,sBACM,mBAAA,GAAsB,mBAAA;EAE3C,YAAA,EAAc,OAAA,CAAQ,YAAA;EACtB,MAAA,EAAQ,MAAA;AAAA;;;UCJO,0BAAA,sBACM,mBAAA,GAAsB,mBAAA;EAE3C,cAAA,GAAiB,OAAA,EAAS,cAAA,CAAe,YAAA,MAAkB,OAAA;AAAA;;;;;;;ADH7D
|
|
1
|
+
{"version":3,"file":"validation.d.ts","names":[],"sources":["../../src/namespaces/DependenciesNamespace/dependenciesStore.ts","../../src/namespaces/RouteLifecycleNamespace/types.ts","../../src/namespaces/RouteLifecycleNamespace/RouteLifecycleNamespace.ts","../../src/namespaces/RoutesNamespace/types.ts","../../src/namespaces/RoutesNamespace/routesStore.ts","../../src/internals.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{i as e,n as t,r as n,t as r}from"./internals-C8mRvTxc.mjs";import{logger as i}from"@real-router/logger";import{FSM as a}from"@real-router/fsm";const o={maxListeners:0,warnListeners:0,maxEventDepth:0};var s=class extends Error{constructor(e){super(e),this.name=`RecursionDepthError`}},c=class{#e=new Map;#t=null;#n=null;#r=o;#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.#u(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)return;let o=arguments.length-1;if(this.#r.maxEventDepth===0){this.#o(a,e,o,t,n,r,i);return}this.#l(a,e,o,t,n,r,i)}clearAll(){this.#e.clear(),this.#t=null,this.#n=null}listenerCount(e){return this.#e.get(e)?.size??0}#o(e,t,n,r,i,a,o){if(e.size===1){let[s]=e;try{this.#s(s,n,r,i,a,o)}catch(e){this.#c(t,e)}return}let s=[...e];for(let e of s)try{this.#s(e,n,r,i,a,o)}catch(e){this.#c(t,e)}}#s(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)}}#c(e,t){if(t instanceof s)throw t;this.#i?.(e,t)}#l(e,t,n,r,i,a,o){this.#t??=new Map;let c=this.#t,l=c.get(t)??0;if(l>=this.#r.maxEventDepth)throw new s(`Maximum recursion depth (${this.#r.maxEventDepth}) exceeded for event: ${t}`);try{if(c.set(t,l+1),e.size===1){let[s]=e;try{this.#s(s,n,r,i,a,o)}catch(e){this.#c(t,e)}}else{let s=[...e];for(let e of s)try{this.#s(e,n,r,i,a,o)}catch(e){this.#c(t,e)}}}finally{let e=c.get(t)-1;e===0?c.delete(t):c.set(t,e)}}#u(e){let t=this.#e.get(e);if(t)return t;let n=new Set;return this.#e.set(e,n),n}};const l=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`}),u=`@@router/UNKNOWN_ROUTE`,d={UNKNOWN_ROUTE:u},f={ROUTER_START:`onStart`,ROUTER_STOP:`onStop`,TRANSITION_START:`onTransitionStart`,TRANSITION_LEAVE_APPROVE:`onTransitionLeaveApprove`,TRANSITION_CANCEL:`onTransitionCancel`,TRANSITION_SUCCESS:`onTransitionSuccess`,TRANSITION_ERROR:`onTransitionError`},p={ROUTER_START:`$start`,ROUTER_STOP:`$stop`,TRANSITION_START:`$$start`,TRANSITION_LEAVE_APPROVE:`$$leaveApprove`,TRANSITION_CANCEL:`$$cancel`,TRANSITION_SUCCESS:`$$success`,TRANSITION_ERROR:`$$error`},m={maxDependencies:100,maxPlugins:50,maxListeners:1e4,warnListeners:1e3,maxEventDepth:5,maxLifecycleHandlers:200},h=Object.freeze({}),ee=Object.freeze({deactivated:Object.freeze([]),activated:Object.freeze([]),intersection:``}),g=Object.freeze({phase:`activating`,reason:`success`,segments:ee}),_={IDLE:`IDLE`,STARTING:`STARTING`,READY:`READY`,TRANSITION_STARTED:`TRANSITION_STARTED`,LEAVE_APPROVED:`LEAVE_APPROVED`,DISPOSED:`DISPOSED`},v={START:`START`,STARTED:`STARTED`,NAVIGATE:`NAVIGATE`,LEAVE_APPROVE:`LEAVE_APPROVE`,COMPLETE:`COMPLETE`,FAIL:`FAIL`,CANCEL:`CANCEL`,STOP:`STOP`,DISPOSE:`DISPOSE`},te={initial:_.IDLE,context:null,transitions:{[_.IDLE]:{[v.START]:_.STARTING,[v.DISPOSE]:_.DISPOSED},[_.STARTING]:{[v.STARTED]:_.READY,[v.FAIL]:_.IDLE,[v.DISPOSE]:_.DISPOSED},[_.READY]:{[v.NAVIGATE]:_.TRANSITION_STARTED,[v.FAIL]:_.READY,[v.STOP]:_.IDLE,[v.DISPOSE]:_.DISPOSED},[_.TRANSITION_STARTED]:{[v.NAVIGATE]:_.TRANSITION_STARTED,[v.LEAVE_APPROVE]:_.LEAVE_APPROVED,[v.CANCEL]:_.READY,[v.FAIL]:_.READY,[v.DISPOSE]:_.DISPOSED},[_.LEAVE_APPROVED]:{[v.NAVIGATE]:_.TRANSITION_STARTED,[v.COMPLETE]:_.READY,[v.CANCEL]:_.READY,[v.FAIL]:_.READY,[v.DISPOSE]:_.DISPOSED},[_.DISPOSED]:{}}};function ne(){return new a(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 y(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&&y(r,t)}}function ie(e){return Object.freeze(e)}function ae(e={}){return{...m,...e}}function oe(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[n]=r)}return t}function se(e={}){let t=Object.create(null);for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return{dependencies:t,limits:m}}function ce(e){return`(${e.replaceAll(/(^<|>$)/g,``)})`}const b=`[^/?<]+`,le=new RegExp(String.raw`([:*])(${b})(<[^>]+>)?(\?)?`,`g`),ue=new RegExp(String.raw`([:*]${b}(?:<[^>]+>)?)\?(?=[/?]|$)`,`g`),de=/<[^>]*>/g,fe=/\?(.+)$/;function pe(e){return e.replaceAll(de,e=>`<${`x`.repeat(e.length-2)}>`).replaceAll(ue,`$1\0`)}function me(e){let t=[],n=[],r=[],i={},a=new Map,o=fe.exec(pe(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)}let s;for(;(s=le.exec(e))!==null;){let e=s[1],n=s[2],o=s[3];if(e===`*`)r.push(n),t.push(n),i[n]=`url`;else if(t.push(n),i[n]=`url`,o){let e=`^${ce(o)}$`;a.set(n,{pattern:new RegExp(e),constraint:o})}}return{urlParams:t,queryParams:n,spatParams:r,paramTypeMap:i,constraintPatterns:a,pathPattern:e}}const he=/[^\w!$'()*+,.:;|~-]/gu,ge=/[^\w!$'()*+,.:;|~-]/u,_e={default:e=>ge.test(e)?e.replaceAll(he,e=>encodeURIComponent(e)):e,uri:encodeURI,uriComponent:encodeURIComponent,none:e=>e},ve={default:decodeURIComponent,uri:decodeURI,uriComponent:decodeURIComponent,none:e=>e},ye=(e,t,n)=>{let r=_e[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};function x(){return{staticChildren:Object.create(null),hasChildren:!1,paramChild:void 0,splatChild:void 0,route:void 0,slashChildRoute:void 0}}function S(e){return e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e}function be(e,t){return e===``?t:t===``?e:e+t}function xe(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Se(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(!xe(n)||!xe(r))return!1;t+=3}else t++;return!0}const Ce=/<[^>]*>/g;function we(e,t,n,r,i){let a=t.fullName===``;a||r.push(t);let o=t.absolute,s=t.paramMeta.pathPattern,c=o&&s.startsWith(`~`)?s.slice(1):s,l=(o?c:s).replaceAll(Ce,``),u=o?l:be(n,l),d=a?i:Te(e,t,u,o?``:n,r,i);for(let n of t.children.values())we(e,n,u,r,d);a||r.pop()}function Te(e,t,n,r,i,a){let o=ke(n,r),s=Object.freeze([...i]),c=Ee(s),l=S(n),u=Ve(e.rootQueryParams,i),d=He(i),{buildStaticParts:f,buildParamSlots:p}=Be(o?S(r):l,o?i.slice(0,-1):i,e.options.urlParamsEncoding),m={name:t.fullName,parent:a,depth:i.length-1,matchSegments:s,meta:c,declaredQueryParams:u,declaredQueryParamsSet:new Set(u),hasTrailingSlash:n.length>1&&n.endsWith(`/`),constraintPatterns:d,hasConstraints:d.size>0,buildStaticParts:f,buildParamSlots:p,buildParamNamesSet:new Set(p.map(e=>e.paramName))};return t.paramMeta.urlParams.length===0&&(m.cachedResult=Object.freeze({segments:m.matchSegments,params:Object.freeze({}),meta:m.meta})),e.routesByName.set(t.fullName,m),e.segmentsByName.set(t.fullName,s),e.metaByName.set(t.fullName,c),o?De(e,m,r):Oe(e,m,n,l,t),m}function Ee(e){let t={};for(let n of e)t[n.fullName]=n.paramTypeMap;return Object.freeze(t)}function De(e,t,n){Ie(e,t,n);let r=S(n),i=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.has(i)&&e.staticCache.set(i,t)}function Oe(e,t,n,r,i){if(Fe(e,t,n),i.paramMeta.urlParams.length===0){let n=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.set(n,t)}}function ke(e,t){return S(e)===S(t)}function Ae(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 je(e){throw Error(`[SegmentMatcher.registerTree] Empty parameter name: a bare '${e}' marker must be followed by a name (e.g. '${e}id'). A name-less marker would capture under an empty key at match but emit a literal '${e}' at build — the two disagree, so it is rejected.`)}const Me=RegExp(`^[:*](${b})`);function C(e){let t=Me.exec(e)?.[1]??``;return t===``&&je(`:`),t}function Ne(e,t,n){return e.paramChild?e.paramChild.name!==t&&!n.has(e)&&Ae(e.paramChild.name,t,`:`):(e.paramChild={node:x(),name:t},n.add(e)),e.paramChild.node}function Pe(e,t,n){return e.splatChild?e.splatChild.name!==t&&!n.has(e)&&Ae(e.splatChild.name,t,`*`):(e.splatChild={node:x(),name:t},n.add(e)),e.splatChild.node}function Fe(e,t,n){let r=S(n);if(r===`/`){e.root.route=t;return}let i=new Set,a=new Map;w(e,e.root,r,1,t,i,a)}function w(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=C(u);w(e,Ne(t,r,a),n,l+1,i,a,o),l>=c?t.route??=i:w(e,t,n,l+1,i,a,o);return}t=ze(e,t,u,a),r=l+1}t.route=i}function Ie(e,t,n){let r=Le(e,n);r.slashChildRoute=t}function Le(e,t){return Re(e,e.root,t)}function Re(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=ze(e,i,c,s),a=n+1}return i}function ze(e,t,n,r){if(n.startsWith(`*`)){let e=n.slice(1);e===``&&je(`*`);let i=Pe(t,e,r);return t.hasChildren=!0,i}if(n.startsWith(`:`)){let e=Ne(t,C(n),r);return t.hasChildren=!0,e}let i=e.options.caseSensitive?n:n.toLowerCase();return i in t.staticChildren||(t.staticChildren[i]=x(),t.hasChildren=!0),t.staticChildren[i]}function Be(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:[]};let a=[],o=[],s=new RegExp(String.raw`[:*](${b})(?:<[^>]*>)?(\?)?`,`gu`),c=0,l;for(;(l=s.exec(e))!==null;){let t=l[1],r=l[2]===`?`;a.push(e.slice(c,l.index));let s=i.has(t)?e=>ye(e,n,!0):_e[n];o.push({paramName:t,isOptional:r,encoder:s}),c=l.index+l[0].length}return a.push(e.slice(c)),{buildStaticParts:a,buildParamSlots:o}}function Ve(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}function He(e){let t=new Map;for(let n of e)for(let[e,r]of n.paramMeta.constraintPatterns)t.set(e,r);return t}function Ue(e){return typeof e==`string`?e:typeof e==`object`?JSON.stringify(e):String(e)}var We=class{get options(){return this.#e}#e;#t=x();#n=new Map;#r=new Map;#i=new Map;#a=new Map;#o={cleanPath:``,normalized:``,queryString:void 0};#s=[];#c=``;#l;#u;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.#l=this.#e.caseSensitive,this.#u=this.#e.urlParamsEncoding===`none`?null:ve[this.#e.urlParamsEncoding]}registerTree(e){this.#s=e.paramMeta.queryParams,we({root:this.#t,options:this.#e,routesByName:this.#n,segmentsByName:this.#r,metaByName:this.#i,staticCache:this.#a,rootQueryParams:this.#s},e,``,[],null)}match(e){if(!this.#h(e))return;let{cleanPath:t,normalized:n,queryString:r}=this.#o,i=this.#l?n:n.toLowerCase(),a=this.#a.get(i);if(a)return this.#e.strictTrailingSlash&&!this.#y(t,a)?void 0:r===void 0&&a.cachedResult?a.cachedResult:this.#_(a,{},r);let o={},s=this.#b(n,o);if(s&&!(this.#e.strictTrailingSlash&&!this.#y(t,s))&&this.#C(o)&&!(s.hasConstraints&&!this.#w(o,s)))return this.#_(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.#d(r,e,t);let i=this.#f(r,t),a=this.#p(i,n?.trailingSlash),o=this.#m(r,t,n?.queryParamsMode);return a+(o?`?${o}`:``)}getSegmentsByName(e){return this.#r.get(e)}getMetaByName(e){return this.#i.get(e)}hasRoute(e){return this.#n.has(e)}#d(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}'`)}}}#f(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.endsWith(`/`)&&(i=i.slice(0,-1)),i+=n[e+1];continue}if(r===``&&!a.isOptional)throw Error(`[SegmentMatcher.buildPath] Missing required param '${a.paramName}' (empty string)`);let o=a.encoder(Ue(r));i+=o+n[e+1]}return i}#p(e,t){return t===`always`&&!e.endsWith(`/`)?`${e}/`:t===`never`&&e!==`/`&&e.endsWith(`/`)?e.slice(0,-1):e}#m(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):``}#h(e){if(e===``&&(e=`/`),e.codePointAt(0)!==47)return!1;let t=this.#g(e);if(t===-2)return!1;t===-3&&(e=this.#c);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.#o.cleanPath=n,this.#o.normalized=i,this.#o.queryString=r,!0}#g(e){let t=!1;for(let n=0;n<e.length;n++){let r=e.codePointAt(n);if(r===35)return this.#c=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}#_(e,t,n){if(!(n!==void 0&&!this.#v(e,t,n)))return{segments:e.matchSegments,params:t,meta:e.meta}}#v(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}#y(e,t){return(e.length>1&&e.endsWith(`/`))===t.hasTrailingSlash}#b(e,t){return e.length===1?this.#t.slashChildRoute??this.#t.route:this.#x(this.#t,e,1,t)}#x(e,t,n,r){let i=e,a=t.length,o=this.#l;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)u=i.paramChild.node,r[i.paramChild.name]=c;else if(i.splatChild)return this.#S(i.splatChild,t,n,r);else return;i=u,n=s+1}return i.slashChildRoute??i.route}#S(e,t,n,r){let i=e.node;if(!i.hasChildren)return r[e.name]=t.slice(n),i.route;let a={},o=this.#x(i,t,n,a);return o?(Object.assign(r,a),o):(r[e.name]=t.slice(n),i.route)}#C(e){let t=this.#u;if(!t)return!0;for(let n in e){let r=e[n];if(r.includes(`%`)){if(!Se(r))return!1;try{e[n]=t(r)}catch{return!1}}}return!0}#w(e,t){for(let[n,r]of t.constraintPatterns)if(!r.pattern.test(e[n]))return!1;return!0}};const Ge=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)},Ke=(e,t)=>{if(e===void 0)return t.boolean.decodeUndefined();let n=t.boolean.decodeRaw(e);if(n!==null)return n;let r=Ge(e),i=t.number.decode(r);return i===null?t.boolean.decodeValue(r):i},T=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===`object`&&e===null?`null`:t}`);return encodeURIComponent(e)},qe=(e,t,n)=>{if(t.length===0)return``;let r=`${e}${n}`,i=`${r}=${T(t[0])}`;for(let e=1;e<t.length;e++)i+=`&${r}=${T(t[e])}`;return i},Je={none:{encodeArray:(e,t)=>qe(e,t,``)},brackets:{encodeArray:(e,t)=>qe(e,t,`[]`)},index:{encodeArray:(e,t)=>{if(t.length===0)return``;let n=`${e}[0]=${T(t[0])}`;for(let r=1;r<t.length;r++)n+=`&${e}[${r}]=${T(t[r])}`;return n},indexed:!0},comma:{encodeArray:(e,t)=>{if(t.length===0)return``;let n=`${e}=${T(t[0])}`;for(let e=1;e<t.length;e++)n+=`,${T(t[e])}`;return n},decodeValue:e=>e.includes(`,`)?e.split(`,`):null}},Ye={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}},Xe={default:{encode:e=>e},hidden:{encode:()=>``}},Ze={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}},Qe=(e,t,n,r)=>({boolean:Ye[t],null:Xe[n],number:Ze[r],array:Je[e]}),$e={boolean:Ye.auto,null:Xe.default,number:Ze.auto,array:Je.none},E={arrayFormat:`none`,booleanFormat:`auto`,nullFormat:`default`,numberFormat:`auto`},et={...E,strategies:$e},tt=e=>{if(!e||e.arrayFormat===void 0&&e.booleanFormat===void 0&&e.nullFormat===void 0&&e.numberFormat===void 0)return et;let t=e.arrayFormat??E.arrayFormat,n=e.booleanFormat??E.booleanFormat,r=e.nullFormat??E.nullFormat,i=e.numberFormat??E.numberFormat;return{arrayFormat:t,booleanFormat:n,nullFormat:r,numberFormat:i,strategies:Qe(t,n,r,i)}},D=e=>encodeURIComponent(e),nt=(e,t,n)=>{let r=D(e);switch(typeof t){case`string`:case`number`:return`${r}=${D(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):`${r}=${D(t)}`;default:return`${r}=${D(t)}`}},rt=e=>{let t=e.indexOf(`?`);return t===-1?e:e.slice(t+1)};function O(e,t,n){t===`__proto__`?Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}function it(e,t,n,r){if(!Object.hasOwn(e,t)){O(e,t,r?[n]:n);return}let i=e[t];Array.isArray(i)?i.push(n):O(e,t,[i,n])}function at(e,t,n,r,i){return Ke(r?e.slice(t+1,n):void 0,i)}function ot(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 st(e,t,n){let{searchPart:r,nameEnd:i,nameSourceEnd:a,eqPos:o,end:s,hasValue:c,decodedName:l}=e,u=ot(r,i,a);if(u===null)return!1;let d=at(r,o,s,c,t),f=n.get(l);return f===void 0?n.set(l,[[u,d]]):f.push([u,d]),!0}function ct(e,t,n,r,i,a){let o=e.indexOf(`=`,t),s=o!==-1&&o<n,c=s?o:n,l=c,u=!1;for(let n=t;n<c;n++)if(e.codePointAt(n)===91){l=n,u=!0;break}let d=Ge(e.slice(t,l));if(!(a!==void 0&&u&&st({searchPart:e,nameEnd:l,nameSourceEnd:c,eqPos:o,end:n,hasValue:s,decodedName:d},i,a))){if(!u&&s&&i.array.decodeValue){let t=e.slice(o+1,n),a=i.array.decodeValue(t);if(a){for(let e of a)it(r,d,Ke(e,i),!0);return}}it(r,d,at(e,o,n,s,i),u)}}const lt=(e,t)=>{let n=rt(e);if(n===``||n===`?`)return{};let r={};return ut(n,r,tt(t).strategies),r};function ut(e,t,n){let r=n.array.indexed?new Map:void 0,i=0,a=e.length;for(;i<a;){let o=e.indexOf(`&`,i);o===-1&&(o=a),ct(e,i,o,t,n,r),i=o+1}if(r!==void 0)for(let[e,n]of r)n.sort((e,t)=>e[0]-t[0]),O(t,e,n.map(e=>e[1]))}const dt=(e,t)=>{let n=Object.keys(e);if(n.length===0)return``;let r=tt(t),i=[];for(let t of n){let n=e[t];if(n===void 0)continue;let a=nt(t,n,r);a&&i.push(a)}return i.join(`&`)};function k(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,nonAbsoluteChildren:[],fullName:``};if(e.children)for(let t of e.children){let e=k(t,a);a.children.push(e)}return a}function ft(e,t,n){let r=k({name:e,path:t},null);for(let e of n){let t=k(e,r);r.children.push(t)}return r}const pt=Object.freeze(new Map),mt=Object.freeze([]);function ht(e){return e.parent?.name?`${e.parent.fullName}.${e.name}`:e.name}function gt(e){let t=new Map;for(let n of e)t.set(n.name,n);return t}function _t(e,t,n){let r=[],i=[];for(let a of e){let e=vt(a,t,n);r.push(e),e.absolute||i.push(e)}return{childrenMap:gt(r),nonAbsoluteChildren:i}}function vt(e,t,n){let r=me(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=ht(a),e.children.length===0)a.children=pt,a.nonAbsoluteChildren=mt;else{let{childrenMap:t,nonAbsoluteChildren:r}=_t(e.children,a,n);a.children=t,a.nonAbsoluteChildren=r}return n&&(e.children.length>0&&(Object.freeze(a.nonAbsoluteChildren),Object.freeze(a.children)),Object.freeze(i),Object.freeze(r.urlParams),Object.freeze(r.queryParams),Object.freeze(r.spatParams),Object.freeze(r),Object.freeze(a)),a}function yt(e,t=!0){return vt(e,null,t)}function bt(e,t){let n=[],r={add(e){return n.push(e),r},addMany(e){return n.push(...e),r},build(r){return yt(ft(e,t,n),!r?.skipFreeze)}};return r}function xt(e,t,n,r){return bt(e,t).addMany(n).build(r)}function A(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(),A)),n}function St(e){return Array.from(e.children.values(),A)}function Ct(e){let t=e?.queryParams;return new We({...e?.caseSensitive===void 0?void 0:{caseSensitive:e.caseSensitive},...e?.strictTrailingSlash===void 0?void 0:{strictTrailingSlash:e.strictTrailingSlash},...e?.strictQueryParams===void 0?void 0:{strictQueryParams:e.strictQueryParams},...e?.urlParamsEncoding===void 0?void 0:{urlParamsEncoding:e.urlParamsEncoding},parseQueryString:e=>lt(e,t),buildQueryString:e=>dt(e,t)})}RegExp(`[:*](?!${b})`);const wt={defaultRoute:``,defaultParams:{},trailingSlash:`preserve`,queryParamsMode:`loose`,queryParams:E,urlParamsEncoding:`default`,allowNotFound:!0,rewritePathOnMatch:!0};function Tt(e){Object.freeze(e);for(let t of Object.values(e))t&&typeof t==`object`&&t.constructor===Object&&Tt(t);return e}function Et(e,t){return typeof e==`function`?e(t):e}function Dt(e){if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(`[router.constructor] options must be a plain object`)}var Ot=class{#e;constructor(e={}){this.#e=Tt({...wt,...e})}static validateOptionsIsObject(e){Dt(e)}get(){return this.#e}};function j(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(!j(e[n],t[n]))return!1;return!0}return!1}const kt=new WeakMap;function At(e){return kt.get(e)}function jt(e,t){kt.set(e,t)}var Mt=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===h?h:Object.freeze({...t});let c={name:e,params:s,path:n??this.#n.buildPath(e,t),context:{},...!i&&{transition:g}};return r&&jt(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(!j(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)||!j(e.params[n],t.params[n]))return!1;return!0}};const Nt={[f.ROUTER_START]:p.ROUTER_START,[f.ROUTER_STOP]:p.ROUTER_STOP,[f.TRANSITION_SUCCESS]:p.TRANSITION_SUCCESS,[f.TRANSITION_START]:p.TRANSITION_START,[f.TRANSITION_LEAVE_APPROVE]:p.TRANSITION_LEAVE_APPROVE,[f.TRANSITION_ERROR]:p.TRANSITION_ERROR,[f.TRANSITION_CANCEL]:p.TRANSITION_CANCEL},Pt=Object.keys(Nt),M=`router.usePlugin`;function Ft(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 It=class e{#e=new Set;#t=new Set;#n;#r=m;#i=null;static validatePlugin(e){Ft(e)}setDependencies(e){this.#n=e}setLimits(e){
|
|
2
|
+
// eslint-disable-next-line sonarjs/void-use -- @preserve: limits passed to validator via RouterInternals; void suppresses TS6133 until plugin implements validateCountThresholds
|
|
3
|
+
this.#r=e,this.#r}setValidatorGetter(e){this.#i=e}count(){return this.#e.size}use(...e){if(this.#i?.()?.plugins.validateCountThresholds(this.#e.size+e.length),e.length===1){let t=e[0],n=this.#o(t);this.#e.add(t);let r=!1,a=()=>{if(!r){r=!0,this.#e.delete(t),this.#t.delete(a);try{n()}catch(e){i.error(M,`Error during cleanup:`,e)}}};return this.#t.add(a),a}let t=this.#a(e),n=[];try{for(let e of t){let t=this.#o(e);n.push({factory:e,cleanup:t})}}catch(e){for(let{cleanup:e}of n)try{e()}catch(e){i.error(M,`Cleanup error:`,e)}throw e}for(let{factory:e}of n)this.#e.add(e);let r=!1,a=()=>{if(!r){r=!0,this.#t.delete(a);for(let{factory:e}of n)this.#e.delete(e);for(let{cleanup:e}of n)try{e()}catch(e){i.error(M,`Error during cleanup:`,e)}}};return this.#t.add(a),a}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()}#a(e){let t=new Set;for(let n of e)t.has(n)?this.#i?.()?.plugins.warnBatchDuplicates(e):t.add(n);return t}#o(t){let n=this.#n.compileFactory(t);e.validatePlugin(n),this.#i?.()?.plugins.validatePluginKeys(n),Object.freeze(n);let r=[];for(let e of Pt)e in n&&(typeof n[e]==`function`?(r.push(this.#n.addEventListener(Nt[e],n[e])),e===`onStart`&&this.#n.canNavigate()&&this.#i?.()?.plugins.warnPluginAfterStart(e)):this.#i?.()?.plugins.warnPluginMethodType(e));return()=>{for(let e of r)e();typeof n.teardown==`function`&&n.teardown()}}};function Lt(e){let t=()=>e;return()=>t}var Rt=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;#c=m;#l=null;setDependencies(e){this.#s=e}setLimits(e){
|
|
4
|
+
// eslint-disable-next-line sonarjs/void-use -- @preserve: Wave 3 validator reads limits via RouterInternals; void suppresses TS6133 until then
|
|
5
|
+
this.#c=e,this.#c}setValidatorGetter(e){this.#l=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}addCanActivate(e,t,n=!1){this.#u(`activate`,e,t,n,`canActivate`)}addCanDeactivate(e,t,n=!1){this.#u(`deactivate`,e,t,n,`canDeactivate`)}clearCanActivate(e){let t=this.#e.delete(e),n=this.#t.delete(e);(t||n)&&this.#d(`activate`,e)}clearCanDeactivate(e){let t=this.#n.delete(e),n=this.#r.delete(e);(t||n)&&this.#d(`deactivate`,e)}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.#a.delete(e);for(let e of this.#n.keys())this.#r.has(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.#p(this.#i,t,n,r,`canNavigateTo`))return!1;for(let e of t)if(!this.#p(this.#a,e,n,r,`canNavigateTo`))return!1;return!0}#u(e,t,n,r,i){let a=this.#f(e),o=e===`activate`?this.#a:this.#i,s=r?a.definition:a.external,c=r?a.external:a.definition;s.has(t)||c.has(t)?this.#l?.()?.lifecycle.warnOverwrite(t,e,i):this.#l?.()?.lifecycle.validateCountThresholds(this.getHandlerCount(e)+1,i);let l=typeof n==`boolean`?Lt(n):n;s.set(t,l);try{let e=this.#s.compileFactory(l);if(typeof e!=`function`)throw TypeError(`[router.${i}] Factory must return a function, got ${typeof e}`);o.set(t,e)}catch(n){throw s.delete(t),c.has(t)?this.#d(e,t):o.delete(t),n}}#d(e,t){let n=this.#f(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)}}#f(e){return e===`activate`?{definition:this.#e,external:this.#t}:{definition:this.#n,external:this.#r}}#p(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.#l?.()?.lifecycle.warnAsyncGuardSync(t,i),!1)}catch{return!1}}};const zt=new Set([`name`,`path`,`children`,`canActivate`,`canDeactivate`,`forwardTo`,`encodeParams`,`decodeParams`,`defaultParams`]);function N(){return{decoders:Object.create(null),encoders:Object.create(null),defaultParams:Object.create(null),forwardMap:Object.create(null),forwardFnMap:Object.create(null)}}function Bt(e,t){for(let n in e)if(e[n]!==t[n])return!1;return!0}function Vt(e,t,n){for(let r in e)if(!(r in n)&&e[r]!==t[r])return!1;return!0}function Ht(e,t){if(!t||!Ut(e,t))return e;let n={};for(let r in e)t[r]!==`query`&&(n[r]=e[r]);return n}function Ut(e,t){for(let n in e)if(t[n]===`query`)return!0;return!1}function P(e){let t={name:e.name,path:e.path};return e.children&&(t.children=e.children.map(e=>P(e))),t}function Wt(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}.`)&&Wt(i.children,t,a))return!0}return!1}function Gt(e,t){for(let n of Object.keys(e))t(n)&&delete e[n]}function Kt(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 qt(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 Jt(e,t,n){let r=xt(``,t,e),i=Ct(n);return i.registerTree(r),{tree:r,matcher:i}}function F(e){let t=Jt(e.definitions,e.rootPath,e.matcherOptions);e.tree=t.tree,e.matcher=t.matcher,e.urlParamsCache.clear()}function Yt(e){F(e),e.resolvedForwardMap=I(e.config)}function Xt(e){Zt(e),F(e)}function Zt(e){e.definitions.length=0,Object.assign(e.config,N()),e.resolvedForwardMap=Object.create(null),e.routeCustomFields=Object.create(null)}function I(e){let t=Object.create(null);for(let n of Object.keys(e.forwardMap))t[n]=qt(n,e.forwardMap);return t}function Qt(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 $t(e,t,n){if(e.canActivate){let n=typeof e.forwardTo==`string`?e.forwardTo:`[dynamic]`;i.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]`;i.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}".`)}Qt(e.forwardTo,t),typeof e.forwardTo==`string`?n.forwardMap[t]=e.forwardTo:n.forwardFnMap[t]=e.forwardTo}function en(e,t,n,r,i,a){let o=Object.fromEntries(Object.entries(e).filter(([e])=>!zt.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&&$t(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 tn(e,t,n,r,i,a=``){for(let o of e){let e=a?`${a}.${o.name}`:o.name;en(o,e,t,n,r,i),o.children&&tn(o.children,t,n,r,i,e)}}function nn(e){let t=N();return Object.assign(t.decoders,e.decoders),Object.assign(t.encoders,e.encoders),Object.assign(t.defaultParams,e.defaultParams),Object.assign(t.forwardMap,e.forwardMap),Object.assign(t.forwardFnMap,e.forwardFnMap),t}function rn(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]:rn(n,t,i)}})}function an(e,t,n){for(let r of e){let e=t?`${t}.${r.name}`:r.name;n(e),r.children&&an(r.children,e,n)}}function on(e,t,n){if(n!==void 0&&!e.matcher.hasRoute(n))throw Error(`[router.addRoute] Parent route "${n}" does not exist`);an(t,n??``,t=>{if(e.matcher.hasRoute(t))throw Error(`[router.addRoute] Route "${t}" already exists`)})}function sn(e,t,n,r,i,a,o){let s=new Map,c=new Map;tn(t,n,r,s,c,i);let l=I(n),{tree:u,matcher:d}=Jt(e,a,o);return{definitions:e,config:n,routeCustomFields:r,pendingCanActivate:s,pendingCanDeactivate:c,tree:u,matcher:d,resolvedForwardMap:l}}function cn(e,t,n){return sn(rn(e.definitions,t.map(e=>P(e)),n===void 0?[]:n.split(`.`)),t,nn(e.config),Object.assign(Object.create(null),e.routeCustomFields),n??``,e.rootPath,e.matcherOptions)}function ln(e,t,n){return sn(e.map(e=>P(e)),e,N(),Object.create(null),``,t,n)}function un(e,t){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;let n=e.depsStore;for(let[e,r]of t.pendingCanActivate)n.addActivateGuard(e,r);for(let[e,r]of t.pendingCanDeactivate)n.addDeactivateGuard(e,r)}function dn(e,t){let n=ln(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 fn(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 pn=new Set([`string`,`number`,`boolean`]);function mn(e){return pn.has(typeof e)}function hn(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(mn(t)&&mn(i)&&String(t)!==String(i))return!1}return!0}function gn(e,t,n,r,i,a){for(let o=0;o<a;o++){let a=r[o];if(a!==i[o]||!hn(a,e,t,n))return o}return a}const _n=new Map;function R(e){let t=_n.get(e);if(t)return t;let n=vn(e);return Object.freeze(n),_n.set(e,n),n}function vn(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]:fn(e)}let z,B,V=null,yn,bn,H=null;function xn(e,t){if(!t)return{intersection:``,toActivate:R(e.name),toDeactivate:L};let n=At(e),r=At(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=gn(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===yn&&t===bn)return H;let n=xn(e,t);return yn=z,bn=B,H=V,z=e,B=t,V=n,n}function Sn(e){let t=[];for(let n of e)for(let e of n.paramMeta.urlParams)t.push(e);return t}function Cn(e,t){return{name:t??e.segments.at(-1).fullName,params:e.params,meta:e.meta}}var wn=class{#e;#t;get#n(){return this.#e.depsStore}constructor(e=[],t){this.#e=dn(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;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,F(this.#e)}hasRoute(e){return this.#e.matcher.hasRoute(e)}clearRoutes(){Xt(this.#e)}buildPath(e,t,n){if(e===d.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.#i(n))}matchPath(e,t){let n=t,r=this.#e.matcher.match(e);if(!r)return;let{name:i,params:a,meta:o}=Cn(r),s=typeof this.#e.config.decoders[i]==`function`?this.#e.config.decoders[i](a):a,{name:c,params:l}=this.#n.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;u=this.#e.matcher.buildPath(c,t,{trailingSlash:r===`never`||r===`always`?r:void 0,queryParamsMode:n.queryParamsMode}),r===`preserve`&&(u=Kt(e,u))}return this.#n.makeState(c,l,u,o)}forwardState(e,t){if(Object.hasOwn(this.#e.config.forwardFnMap,e)){let n=this.#r(e,t),r=this.#e.config.forwardFnMap[e],i=this.#a(e,r,t);return{name:i,params:this.#r(i,n)}}let n=this.#e.resolvedForwardMap[e]??e;if(n!==e&&Object.hasOwn(this.#e.config.forwardFnMap,n)){let r=this.#r(e,t),i=this.#e.config.forwardFnMap[n],a=this.#a(n,i,t);return{name:a,params:this.#r(a,r)}}if(n!==e){let r=this.#r(e,t);return{name:n,params:this.#r(n,r)}}return{name:e,params:this.#r(e,t)}}buildStateResolved(e,t){let n=this.#e.matcher.getSegmentsByName(e);if(n)return Cn({segments:n,params:t,meta:this.#e.matcher.getMetaByName(e)},e)}isActiveRoute(e,t={},n=!1,r=!0){let i=this.#n.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:g,context:{}};return this.#n.areStatesEqual(n,i,r)}if(!a.startsWith(`${e}.`))return!1;let s=i.params;return Bt(t,s)?o?Vt(r?Ht(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?Sn(n):[];return this.#e.urlParamsCache.set(e,r),r}getStore(){return this.#e}#r(e,t){return Object.hasOwn(this.#e.config.defaultParams,e)?{...this.#e.config.defaultParams[e],...t}:t}#i(e){if(this.#t)return this.#t;let t=e?.trailingSlash;return this.#t=Object.freeze({trailingSlash:t===`never`||t===`always`?t:void 0,queryParamsMode:e?.queryParamsMode}),this.#t}#a(e,t,n){let r=new Set([e]),i=t(this.#n.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.#n.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 Tn=new Set(Object.values(l)),En=new Set([`code`,`segment`,`path`]),Dn=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(En.has(e))throw TypeError(`[RouterError] Cannot set reserved property "${e}"`);Dn.has(e)||(this[e]=t)}}setCode(e){this.code=e,Tn.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(En.has(t))throw TypeError(`[RouterError.setAdditionalFields] Cannot set reserved property "${t}"`);Dn.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 On=new W(l.ROUTER_NOT_STARTED),kn=new W(l.ROUTE_NOT_FOUND),An=new W(l.SAME_STATES),G=Promise.reject(On),jn=Promise.reject(kn),Mn=Promise.reject(An);G.catch(()=>{}),jn.catch(()=>{}),Mn.catch(()=>{});function Nn(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 Pn({signal:e,...t}){return t}function Fn(e,t){let{toState:n,fromState:r,opts:i,toDeactivate:a,toActivate:o,intersection:s}=t;if(n.name!==d.UNKNOWN_ROUTE&&!e.hasRoute(n.name)){let t=new W(l.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=Nn(r,i,a,o,s);let c=Object.freeze(n);e.setState(c);let u=i.signal===void 0?i:Pn(i);return e.sendTransitionDone(c,r,u),c}function In(e,t,n,r){let i=t;i.code===l.TRANSITION_CANCELLED||i.code===l.ROUTE_NOT_FOUND||e.sendTransitionFail(n,r,i)}function K(e,t,n){if(e instanceof DOMException&&e.name===`AbortError`)throw new W(l.TRANSITION_CANCELLED);Ln(e,t,n)}function Ln(e,t,n){throw e instanceof W?(e.setCode(t),e):new W(t,zn(e,n))}const Rn=new Set([`code`,`segment`,`path`]);function zn(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))Rn.has(n)||(t[n]=r);return{...n,...t}}return n}async function Bn(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 Vn(e,t,n,r,i,a,o,s,c,u){await Bn(c,n,u);for(let c=s;c<t.length;c++){if(!o())throw new W(l.TRANSITION_CANCELLED);let s=t[c],u=e.get(s);if(!u)continue;let d=!1;try{d=u(r,i,a)}catch(e){K(e,n,s)}if(d instanceof Promise){await Bn(d,n,s);continue}if(!d)throw new W(n,{segment:s})}}async function Hn(e,t,n,r,i,a,o,s,c){if(await e,!s())throw new W(l.TRANSITION_CANCELLED);let u=c();if(u!==void 0&&(await u,!s()))throw new W(l.TRANSITION_CANCELLED);if(r){let e=q(t,n,l.CANNOT_ACTIVATE,i,a,o,s);if(e!==void 0&&await e,!s())throw new W(l.TRANSITION_CANCELLED)}}function Un(e,t,n,r,i,a,o,s,c,u,d){if(i){let i=q(e,n,l.CANNOT_DEACTIVATE,o,s,c,u);if(i!==void 0)return Hn(i,t,r,a,o,s,c,u,d)}if(!u())throw new W(l.TRANSITION_CANCELLED);let f=d();if(f!==void 0)return Wn(f,a?t:void 0,r,o,s,c,u);if(a)return q(t,r,l.CANNOT_ACTIVATE,o,s,c,u)}async function Wn(e,t,n,r,i,a,o){if(await e,!o())throw new W(l.TRANSITION_CANCELLED);if(t!==void 0){let e=q(t,n,l.CANNOT_ACTIVATE,r,i,a,o);if(e!==void 0&&await e,!o())throw new W(l.TRANSITION_CANCELLED)}}function q(e,t,n,r,i,a,o){for(let[s,c]of t.entries()){if(!o())throw new W(l.TRANSITION_CANCELLED);let u=e.get(c);if(!u)continue;let d=!1;try{d=u(r,i,a)}catch(e){K(e,n,c)}if(d instanceof Promise)return Vn(e,t,n,r,i,a,o,s+1,d,c);if(!d)throw new W(n,{segment:c})}}const Gn=[d.UNKNOWN_ROUTE];Object.freeze(Gn);const J={replace:!0};Object.freeze(J);function Kn(e,t){return t?.name===d.UNKNOWN_ROUTE&&!e.replace?{...e,replace:!0}:e}function qn(e,t,n){return!!e&&!t.reload&&!t.force&&e.path===n.path}var Jn=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(),kn),this.lastSyncRejected=!0,jn)}navigateToState(e,t){this.lastSyncResolved=!1;let n=this.#e;if(!n.canNavigate())return this.lastSyncRejected=!0,G;if(e.name!==d.UNKNOWN_ROUTE&&!n.hasRoute(e.name)){let t=new W(l.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}};return this.#r(r,t)}navigateToDefault(e){this.lastSyncResolved=!1;let t=this.#e;if(!t.getOptions().defaultRoute)return Promise.reject(new W(l.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(l.ROUTE_NOT_FOUND,{routeName:`defaultRoute resolved to empty`}))}navigateToNotFound(e){this.#c();let t=this.#e.getState(),n=t?R(t.name).toReversed():[];Object.freeze(n);let r={deactivated:n,activated:Gn,intersection:``};Object.freeze(r);let i={phase:`activating`,...t&&{from:t.name},reason:`success`,replace:!0,segments:r};Object.freeze(i);let a={name:d.UNKNOWN_ROUTE,params:h,path:e,transition:i,context:{}};return Object.freeze(a),this.#e.setState(a),this.#e.emitTransitionSuccess(a,t,J),a}abortCurrentNavigation(){this.#t?.abort(new W(l.TRANSITION_CANCELLED)),this.#t=null}#r(e,t){let n=this.#e,r,i=!1,a=null;try{if(r=n.getState(),t=Kn(t,r),qn(r,t,e))return n.emitTransitionError(e,r,An),this.lastSyncRejected=!0,Mn;this.#c(t.signal);let o=++this.#n;if(n.startTransition(e,r),i=!0,this.#n!==o)throw new W(l.TRANSITION_CANCELLED);let[s,c]=n.getLifecycleFunctions(),u=e.name===d.UNKNOWN_ROUTE,f=U(e,r),{toDeactivate:p,toActivate:m,intersection:h}=f,ee=r&&!t.forceDeactivate&&p.length>0,g=!u&&m.length>0,_=s.size>0||c.size>0,v=e;if(!_){let e=this.#o(v,r,o,t,f,s);if(e!==void 0)return e}if(_){a=new AbortController,this.#t=a;let i=()=>this.#n===o&&n.isActive(),u=a.signal,d=Un(s,c,p,m,!!ee,g,e,r,u,i,()=>{if(n.sendLeaveApprove(v,r),n.hasLeaveListeners())return n.awaitLeaveListeners(v,r,u)});if(d!==void 0)return this.#i(d,{toState:e,fromState:r,opts:t,toDeactivate:p,toActivate:m,intersection:h,canDeactivateFunctions:s},a,o);if(!i())throw new W(l.TRANSITION_CANCELLED);this.#s(a,!1)}return this.lastSyncResolved=!0,Promise.resolve(Fn(n,{toState:e,fromState:r,opts:t,toDeactivate:p,toActivate:m,intersection:h,canDeactivateFunctions:s}))}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=!1;try{if(o){if(o.aborted)throw new W(l.TRANSITION_CANCELLED,{reason:o.reason});s=()=>{n.abort(o.reason)},o.addEventListener(`abort`,s,{once:!0})}if(await e,!a())throw new W(l.TRANSITION_CANCELLED);let r=Fn(i,t);return c=!0,r}catch(e){throw In(i,e,t.toState,t.fromState),e}finally{s&&o?.removeEventListener(`abort`,s),this.#s(n,!c)}}#a(e,t,n,r,i){t&&this.#s(t,!0),n&&r&&In(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}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);let u=this.#n!==n;if(this.#s(s,u),u)throw new W(l.TRANSITION_CANCELLED);return}if(this.#n!==n)throw new W(l.TRANSITION_CANCELLED)}#s(e,t){t&&e.abort(),this.#t===e&&(this.#t=null)}#c(e){if(this.#e.isTransitioning()&&(i.warn(`router.navigate`,`Concurrent navigation detected on shared router instance. For SSR, use cloneRouter() to create isolated instance per request.`),this.#t?.abort(new W(l.TRANSITION_CANCELLED)),this.#e.cancelNavigation()),e?.aborted)throw new W(l.TRANSITION_CANCELLED,{reason:e.reason})}};const Yn={replace:!0};Object.freeze(Yn);var Xn=class{#e;setDependencies(e){this.#e=e}async start(e){let t=this.#e,n=t.getOptions(),r=t.matchPath(e);if(!r&&!n.allowNotFound){let n=new W(l.ROUTE_NOT_FOUND,{path:e});throw t.emitTransitionError(void 0,void 0,n),n}return t.completeStart(),r?t.navigateToState(r,Yn):t.navigateToNotFound(e)}stop(){this.#e.clearState()}};const Y=`TREE_CHANGED`;function X(e){return e instanceof Error?e:Error(String(e))}function Zn(e,t,n){return new Promise((r,i)=>{let a=()=>{i(X(n.reason))};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;#o;constructor(e){this.#e=e.routerFSM,this.#t=e.emitter,this.#r=void 0,this.#c()}static validateSubscribeListener(e){if(typeof e!=`function`)throw TypeError(`[router.subscribe] Expected a function. For Observable pattern use @real-router/rx package`)}static validateSubscribeLeaveListener(e){if(typeof e!=`function`)throw TypeError(`[router.subscribeLeave] Expected a function`)}emitRouterStart(){this.#t.emit(p.ROUTER_START)}emitRouterStop(){this.#t.emit(p.ROUTER_STOP)}emitTransitionStart(e,t){this.#t.emit(p.TRANSITION_START,e,t)}emitTransitionSuccess(e,t,n){this.#t.emit(p.TRANSITION_SUCCESS,e,t,n)}emitTransitionError(e,t,n){this.#t.emit(p.TRANSITION_ERROR,e,t,n)}emitTransitionCancel(e,t){this.#t.emit(p.TRANSITION_CANCEL,e,t)}emitTransitionLeaveApprove(e,t){this.#t.emit(p.TRANSITION_LEAVE_APPROVE,e,t)}emitTreeChanged(e){this.#t.emit(Y,e)}subscribeTreeChanged(e){return this.#t.on(Y,t=>{e(t)})}treeChangedListenerCount(){return this.#t.listenerCount(Y)}sendStart(){this.#e.send(v.START)}sendStop(){this.#e.send(v.STOP)}sendDispose(){this.#e.send(v.DISPOSE)}sendStarted(){this.#e.send(v.STARTED)}sendNavigate(e,t){this.#r=e,this.#e.forceState(_.TRANSITION_STARTED),this.emitTransitionStart(e,t)}sendComplete(e,t,n={}){this.#e.forceState(_.READY),this.emitTransitionSuccess(e,t,n),this.#r===e&&(this.#r=void 0)}sendLeaveApprove(e,t){this.#e.forceState(_.LEAVE_APPROVED),this.emitTransitionLeaveApprove(e,t)}sendFail(e,t,n){let r=this.#r;this.#i=e,this.#a=t,this.#o=n,this.#e.send(v.FAIL),this.#r===r&&(this.#r=void 0)}sendFailSafe(e,t,n){this.isReady()?this.sendFail(e,t,n):this.emitTransitionError(e,t,n)}sendCancel(e,t){let n=this.#r;this.#i=e,this.#a=t,this.#e.send(v.CANCEL),this.#r===n&&(this.#r=void 0)}canBeginTransition(){return this.#e.canSend(v.NAVIGATE)}canStart(){return this.#e.canSend(v.START)}canCancel(){return this.#e.canSend(v.CANCEL)}isActive(){let e=this.#e.getState();return e!==_.IDLE&&e!==_.DISPOSED}isDisposed(){return this.#e.getState()===_.DISPOSED}isTransitioning(){let e=this.#e.getState();return e===_.TRANSITION_STARTED||e===_.LEAVE_APPROVED}isLeaveApproved(){return this.#e.getState()===_.LEAVE_APPROVED}isReady(){return this.#e.getState()===_.READY}isStarting(){return this.#e.getState()===_.STARTING}getCurrentToState(){return this.#r}addEventListener(e,t){return this.#t.on(e,t)}subscribe(e){return this.#t.on(p.TRANSITION_SUCCESS,(t,n)=>{e({route:t,previousRoute:n})})}subscribeLeave(e){return this.#n.push(e),()=>{let t=this.#n.indexOf(e);t!==-1&&this.#n.splice(t,1)}}hasLeaveListeners(){return this.#n.length>0}awaitLeaveListeners(e,t,n){if(t===void 0)return;let r=Object.freeze({route:t,nextRoute:e,signal:n}),i,a,o=[...this.#n];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)}if(i===void 0){if(a!==void 0)throw X(a);return}return Zn(i,a,n)}clearAll(){this.#t.clearAll(),this.#n.length=0}setLimits(e){this.#t.setLimits(e)}sendCancelIfPossible(e){let t=this.#r;!this.canCancel()||t===void 0||this.sendCancel(t,e)}#s(){this.emitTransitionError(this.#i,this.#a,this.#o)}#c(){let e=this.#e;e.on(_.STARTING,v.STARTED,()=>{this.emitRouterStart()}),e.on(_.READY,v.STOP,()=>{this.emitRouterStop()});let t=()=>{let e=this.#i;e!==void 0&&this.emitTransitionCancel(e,this.#a)};e.on(_.TRANSITION_STARTED,v.CANCEL,t),e.on(_.LEAVE_APPROVED,v.CANCEL,t),e.on(_.LEAVE_APPROVED,v.FAIL,()=>{this.#s()}),e.on(_.STARTING,v.FAIL,()=>{this.#s()}),e.on(_.READY,v.FAIL,()=>{this.#s()}),e.on(_.TRANSITION_STARTED,v.FAIL,()=>{this.#s()})}};const Qn=new W(l.ROUTER_ALREADY_STARTED),$n=new Set([`all`,`warn-error`,`error-only`,`none`]);function er(e){return typeof e==`string`&&$n.has(e)}function tr(e){return typeof e==`string`?`"${e}"`:typeof e==`object`?JSON.stringify(e):String(e)}function nr(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&&!er(t.level))throw TypeError(`Invalid logger level: ${tr(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}`)}var rr=class{router;options;limits;dependenciesStore;state;routes;routeLifecycle;plugins;navigation;lifecycle;eventBus;constructor(e){this.router=e.router,this.options=e.options,this.limits=e.limits,this.dependenciesStore=e.dependenciesStore,this.state=e.state,this.routes=e.routes,this.routeLifecycle=e.routeLifecycle,this.plugins=e.plugins,this.navigation=e.navigation,this.lifecycle=e.lifecycle,this.eventBus=e.eventBus}wireLimits(){this.dependenciesStore.limits=this.limits,this.plugins.setLimits(this.limits),this.eventBus.setLimits({maxListeners:this.limits.maxListeners,warnListeners:this.limits.warnListeners,maxEventDepth:this.limits.maxEventDepth}),this.routeLifecycle.setLimits(this.limits)}wireRouteLifecycleDeps(){let e={compileFactory:this.createCompileFactory()};this.routeLifecycle.setDependencies(e),this.routeLifecycle.setValidatorGetter(()=>{try{return n(this.router).validator}catch{return null}})}wireRoutesDeps(){this.routes.setDependencies({addActivateGuard:(e,t)=>{this.routeLifecycle.addCanActivate(e,t,!0)},addDeactivateGuard:(e,t)=>{this.routeLifecycle.addCanDeactivate(e,t,!0)},makeState:(e,t,n,r)=>this.state.makeState(e,t,n,r),getState:()=>this.state.get(),areStatesEqual:(e,t,n)=>this.state.areStatesEqual(e,t,n),getDependency:e=>this.dependenciesStore.dependencies[e],forwardState:(e,t)=>{let r=n(this.router);return r.validator?.routes.validateStateBuilderArgs(e,t,`forwardState`),r.forwardState(e,t)}}),this.routes.setLifecycleNamespace(this.routeLifecycle)}wirePluginsDeps(){let e={addEventListener:(e,t)=>this.eventBus.addEventListener(e,t),canNavigate:()=>this.eventBus.canBeginTransition(),compileFactory:this.createCompileFactory()};this.plugins.setDependencies(e),this.plugins.setValidatorGetter(()=>{try{return n(this.router).validator}catch{return null}})}wireNavigationDeps(){this.navigation.setDependencies({getOptions:()=>this.options.get(),hasRoute:e=>this.routes.hasRoute(e),getState:()=>this.state.get(),setState:e=>{this.state.set(e)},buildNavigateState:(e,t)=>{let r=n(this.router);r.validator?.routes.validateStateBuilderArgs(e,t,`navigate`);let i=r.forwardState(e,t),a=i.name,o=oe(i.params),s=this.routes.getMetaForState(a);if(s===void 0)return;let c=r.buildPath(a,o);return this.state.makeState(a,o,c,s,!0)},resolveDefault:()=>{let e=this.options.get(),t=n(this.router),r=Et(e.defaultRoute,e=>this.dependenciesStore.dependencies[e]),i=Et(e.defaultParams,e=>this.dependenciesStore.dependencies[e]);return typeof e.defaultRoute==`function`&&t.validator?.options.validateResolvedDefaultRoute(r,t.routeGetStore()),{route:r,params:i}},startTransition:(e,t)=>{this.eventBus.sendNavigate(e,t)},cancelNavigation:()=>{let e=this.eventBus.getCurrentToState();e!==void 0&&this.eventBus.sendCancel(e,this.state.get())},sendTransitionDone:(e,t,n)=>{this.eventBus.sendComplete(e,t,n)},sendTransitionFail:(e,t,n)=>{this.eventBus.sendFail(e,t,n)},emitTransitionError:(e,t,n)=>{this.eventBus.sendFailSafe(e,t,n)},emitTransitionSuccess:(e,t,n)=>{this.eventBus.emitTransitionSuccess(e,t,n)},sendLeaveApprove:(e,t)=>{this.eventBus.sendLeaveApprove(e,t)},canNavigate:()=>this.eventBus.canBeginTransition(),getLifecycleFunctions:()=>this.routeLifecycle.getFunctions(),isActive:()=>this.router.isActive(),isTransitioning:()=>this.eventBus.isTransitioning(),clearCanDeactivate:e=>{this.routeLifecycle.clearCanDeactivate(e)},hasLeaveListeners:()=>this.eventBus.hasLeaveListeners(),awaitLeaveListeners:(e,t,n)=>this.eventBus.awaitLeaveListeners(e,t,n)})}wireLifecycleDeps(){this.lifecycle.setDependencies({getOptions:()=>this.options.get(),navigateToState:(e,t)=>this.navigation.navigateToState(e,t),navigateToNotFound:e=>this.navigation.navigateToNotFound(e),clearState:()=>{this.state.set(void 0)},matchPath:e=>this.routes.matchPath(e,this.options.get()),completeStart:()=>{this.eventBus.sendStarted()},emitTransitionError:(e,t,n)=>{this.eventBus.sendFail(e,t,n)}})}wireStateDeps(){this.state.setDependencies({getDefaultParams:()=>this.routes.getStore().config.defaultParams,buildPath:(e,t)=>n(this.router).buildPath(e,t),getUrlParams:e=>this.routes.getUrlParams(e)})}createCompileFactory(){let{router:e,dependenciesStore:t}=this;return n=>n(e,e=>t.dependencies[e])}};function ir(e){e.wireLimits(),e.wireRouteLifecycleDeps(),e.wireRoutesDeps(),e.wirePluginsDeps(),e.wireNavigationDeps(),e.wireLifecycleDeps(),e.wireStateDeps()}const Q=Object.freeze({}),ar=new Set([l.SAME_STATES,l.TRANSITION_CANCELLED,l.ROUTER_NOT_STARTED,l.ROUTE_NOT_FOUND,l.CANNOT_ACTIVATE,l.CANNOT_DEACTIVATE]);var or=class a{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;constructor(n=[],o={},s={}){let{logger:l,...u}=o;l&&(nr(l),i.configure(l)),Ot.validateOptionsIsObject(o),re(s),n.length>0&&y(n),this.#e=new Ot(u),this.#t=ae(u.limits),this.#n=se(s),this.#r=new Mt,this.#i=new wn(n,sr(this.#e.get())),this.#a=new Rt,this.#o=new It,this.#s=new Jn,this.#c=new Xn;let d=ne(),f=new c({onListenerError:(e,t)=>{i.error(`Router`,`Error in listener for ${e}:`,t)},onListenerWarn:(e,t)=>{i.warn(`router.addEventListener`,`Event "${e}" has ${t} listeners — possible memory leak`)}});this.#l=new Z({routerFSM:d,emitter:f}),ir(new rr({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}));let p=new Map;e(this,{makeState:(e,t,n,r)=>this.#r.makeState(e,t,n,r),forwardState:r(`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()},buildPath:r(`buildPath`,(e,t)=>this.#i.buildPath(e,t??h,this.#e.get()),p),emitTransitionError:e=>{this.#l.sendFailSafe(void 0,this.#r.get(),e)},start:t(`start`,e=>this.#c.start(e),p),navigateToState:(e,t)=>{let n=this.#s.navigateToState(e,t??Q);return this.#s.lastSyncResolved?this.#s.lastSyncResolved=!1:this.#s.lastSyncRejected?this.#s.lastSyncRejected=!1:a.#d(n),n},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,cloneOptions:()=>({...this.#e.get()}),cloneDependencies:()=>({...this.#n.dependencies}),getPluginFactories:()=>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}),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)}isActiveRoute(e,t,r,a){return n(this).validator?.routes.validateIsActiveRouteArgs(e,t,r,a),n(this).validator?.routes.validateRouteName(e,`isActiveRoute`),e===``?(i.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,a)}buildPath(e,t){let r=n(this);return r.validator?.routes.validateBuildPathArgs(e),r.validator?.navigation.validateParams(t,`buildPath`),r.buildPath(e,oe(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),wn.shouldUpdateNode(e)}isActive(){return this.#l.isActive()}start(e){if(!this.#l.canStart())return Promise.reject(Qn);n(this).validator?.navigation.validateStartArgs(e),this.#l.sendStart();let t;try{t=n(this).start(e)}catch(e){t=Promise.reject(e)}let r=t.catch(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});return a.#d(r),r}stop(){return this.#s.abortCurrentNavigation(),this.#l.sendCancelIfPossible(this.#r.get()),!this.#l.isReady()&&!this.#l.isTransitioning()?this:(this.#c.stop(),this.#l.sendStop(),this)}dispose(){if(this.#l.isDisposed())return;this.#s.abortCurrentNavigation(),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(),this.#i.clearRoutes(),this.#a.clearAll(),this.#r.reset(),this.#n.dependencies=Object.create(null),this.#f()}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{o=this.#r.makeState(i,a)}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){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,t,r){let i=n(this);i.validator?.navigation.validateNavigateArgs(e),i.validator?.navigation.validateParams(t,`navigate`);let o=r??Q;i.validator?.navigation.validateNavigationOptions(o,`navigate`);let s=this.#s.navigate(e,t??h,o);return this.#s.lastSyncResolved?this.#s.lastSyncResolved=!1:this.#s.lastSyncRejected?this.#s.lastSyncRejected=!1:a.#d(s),s}navigateToDefault(e){let t=n(this);t.validator?.navigation.validateNavigateToDefaultArgs(e);let r=e??Q;t.validator?.navigation.validateNavigationOptions(r,`navigateToDefault`);let i=this.#s.navigateToDefault(r);return this.#s.lastSyncResolved?this.#s.lastSyncResolved=!1:this.#s.lastSyncRejected?this.#s.lastSyncRejected=!1:a.#d(i),i}navigateToNotFound(e){if(!this.#l.isActive())throw new W(l.ROUTER_NOT_STARTED);if(e!==void 0&&typeof e!=`string`)throw TypeError(`[router.navigateToNotFound] path must be a string, got ${typeof e}`);let t=e??this.#r.get().path;return this.#s.navigateToNotFound(t)}static#u=e=>{e instanceof W&&ar.has(e.code)||i.error(`router.navigate`,`Unexpected navigation error`,e)};static#d(e){e.catch(a.#u)}#f(){this.navigate=$,this.navigateToDefault=$,this.navigateToNotFound=$,this.start=$,this.stop=$,this.usePlugin=$,this.subscribe=$,this.subscribeLeave=$,this.canNavigateTo=$}};function $(){throw new W(l.ROUTER_DISPOSED)}function sr(e){return{strictTrailingSlash:e.trailingSlash===`strict`,strictQueryParams:e.queryParamsMode===`strict`,urlParamsEncoding:e.urlParamsEncoding,queryParams:e.queryParams}}export{u as _,cn as a,p as b,I as c,Gt as d,Wt as f,y as g,St as h,on as i,Xt as l,A as m,W as n,ln as o,zt as p,un as r,Yt as s,or as t,qt as u,d as v,s as x,l as y};
|
|
6
|
+
//# sourceMappingURL=Router-33sWB6J3.mjs.map
|