@real-router/core 0.49.0 → 0.50.1

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/README.md CHANGED
@@ -123,7 +123,7 @@ import {
123
123
  | `getRoutesApi(router)` | Dynamic route CRUD | `add`, `remove`, `update`, `replace`, `has`, `get` |
124
124
  | `getDependenciesApi(router)` | Dependency injection | `get`, `set`, `setAll`, `remove`, `has` |
125
125
  | `getLifecycleApi(router)` | Guard registration | `addActivateGuard`, `addDeactivateGuard`, `remove*` |
126
- | `getPluginApi(router)` | Plugin infrastructure | `makeState`, `matchPath`, `addInterceptor`, `extendRouter`, `getRouteConfig` |
126
+ | `getPluginApi(router)` | Plugin infrastructure | `makeState`, `matchPath`, `addInterceptor`, `extendRouter`, `emitTransitionError`, `getRouteConfig` |
127
127
  | `cloneRouter(router, deps?)` | SSR cloning | Shares route definitions, independent state |
128
128
 
129
129
  ## Utilities
@@ -1 +1 @@
1
- {"version":3,"file":"Router-DrBkBdZ5.d.ts","names":["ConstraintPattern","RegExp","pattern","constraint","ParamMeta","Record","Readonly","ReadonlyMap","urlParams","queryParams","spatParams","paramTypeMap","constraintPatterns","pathPattern","URLParamsEncodingType","MatcherInputNode","name","path","fullName","absolute","children","nonAbsoluteChildren","paramMeta","staticPath","CompiledRoute","ReadonlySet","BuildParamSlot","MatchResult","parent","depth","matchSegments","meta","declaredQueryParams","declaredQueryParamsSet","hasTrailingSlash","hasConstraints","buildStaticParts","buildParamSlots","buildParamNamesSet","cachedResult","forwardTo","defaultParams","paramName","encoder","value","isOptional","BuildPathOptions","queryParamsMode","trailingSlash","SegmentNode","staticChildren","hasChildren","paramChild","node","splatChild","route","slashChildRoute","segments","params","SegmentMatcherOptions","caseSensitive","strictTrailingSlash","strictQueryParams","urlParamsEncoding","parseQueryString","queryString","buildQueryString","ResolvedMatcherOptions","buildParamMeta","validateConstraints","encodeURIComponentExcludingSubDelims","segment","ENCODING_METHODS","param","DECODING_METHODS","encodeParam","encoding","isSpatParam","createSegmentNode","SegmentMatcher","private","options","constructor","registerTree","match","buildPath","getSegmentsByName","getMetaByName","hasRoute","setRootPath","rootPath","ArrayFormat","BooleanFormat","NullFormat","NumberFormat","Options","arrayFormat","booleanFormat","nullFormat","numberFormat","FinalOptions","QueryParamPrimitive","QueryParamValue","SearchParams","Record","OmitResponse","querystring","removedParams","KeepResponse","keptParams","DecodeResult","parse","path","opts","parseInto","queryString","target","build","params","omit","paramsToOmit","keep","paramsToKeep","DEFAULT_QUERY_PARAMS","ParamMeta","SegmentMatcher","URLParamsEncodingType","DEFAULT_QUERY_PARAMS","Options","RouteDefinition","key","name","path","children","RouteTree","ReadonlyMap","Record","Readonly","absolute","paramMeta","parent","nonAbsoluteChildren","fullName","staticPath","paramTypeMap","TreeBuildOptions","skipFreeze","QueryParamsMode","TrailingSlashMode","BasePathOptions","trailingSlashMode","queryParamsMode","queryParams","urlParamsEncoding","BuildOptions","ignoreConstraints","MatchOptions","strictTrailingSlash","strongMatching","ParamSource","ParamTypeMap","RouteTreeStateMeta","MatchResult","P","RouteParams","segments","params","meta","RouteTreeState","createRouteTree","routes","options","getSegmentsByName","tree","routeName","nodeToDefinition","node","routeTreeToDefinitions","QueryParamsConfig","CreateMatcherOptions","caseSensitive","strictQueryParams","Matcher","createMatcher","validateRoute","Set","Map","route","methodName","rootNode","parentName","seenNames","seenPathsByParent"],"sources":["../../../path-matcher/dist/esm/index.d.mts","../../../search-params/dist/esm/index.d.mts","../../../route-tree/dist/esm/index.d.mts","../../src/types.ts","../../src/Router.ts"],"mappings":"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"}
1
+ {"version":3,"file":"Router-DrBkBdZ5.d.ts","names":["ConstraintPattern","RegExp","pattern","constraint","ParamMeta","Record","Readonly","ReadonlyMap","urlParams","queryParams","spatParams","paramTypeMap","constraintPatterns","pathPattern","URLParamsEncodingType","MatcherInputNode","name","path","fullName","absolute","children","nonAbsoluteChildren","paramMeta","staticPath","CompiledRoute","ReadonlySet","BuildParamSlot","MatchResult","parent","depth","matchSegments","meta","declaredQueryParams","declaredQueryParamsSet","hasTrailingSlash","hasConstraints","buildStaticParts","buildParamSlots","buildParamNamesSet","cachedResult","forwardTo","defaultParams","paramName","encoder","value","isOptional","BuildPathOptions","queryParamsMode","trailingSlash","SegmentNode","staticChildren","hasChildren","paramChild","node","splatChild","route","slashChildRoute","segments","params","SegmentMatcherOptions","caseSensitive","strictTrailingSlash","strictQueryParams","urlParamsEncoding","parseQueryString","queryString","buildQueryString","ResolvedMatcherOptions","buildParamMeta","validateConstraints","encodeURIComponentExcludingSubDelims","segment","ENCODING_METHODS","param","DECODING_METHODS","encodeParam","encoding","isSpatParam","createSegmentNode","SegmentMatcher","private","options","constructor","registerTree","match","buildPath","getSegmentsByName","getMetaByName","hasRoute","setRootPath","rootPath","ArrayFormat","BooleanFormat","NullFormat","NumberFormat","Options","arrayFormat","booleanFormat","nullFormat","numberFormat","FinalOptions","QueryParamPrimitive","QueryParamValue","SearchParams","Record","OmitResponse","querystring","removedParams","KeepResponse","keptParams","DecodeResult","parse","path","opts","parseInto","queryString","target","build","params","omit","paramsToOmit","keep","paramsToKeep","DEFAULT_QUERY_PARAMS","ParamMeta","SegmentMatcher","URLParamsEncodingType","DEFAULT_QUERY_PARAMS","Options","RouteDefinition","key","name","path","children","RouteTree","ReadonlyMap","Record","Readonly","absolute","paramMeta","parent","nonAbsoluteChildren","fullName","staticPath","paramTypeMap","TreeBuildOptions","skipFreeze","QueryParamsMode","TrailingSlashMode","BasePathOptions","trailingSlashMode","queryParamsMode","queryParams","urlParamsEncoding","BuildOptions","ignoreConstraints","MatchOptions","strictTrailingSlash","strongMatching","ParamSource","ParamTypeMap","RouteTreeStateMeta","MatchResult","P","RouteParams","segments","params","meta","RouteTreeState","createRouteTree","routes","options","getSegmentsByName","tree","routeName","nodeToDefinition","node","routeTreeToDefinitions","QueryParamsConfig","CreateMatcherOptions","caseSensitive","strictQueryParams","Matcher","createMatcher","validateRoute","Set","Map","route","methodName","rootNode","parentName","seenNames","seenPathsByParent"],"sources":["../../../path-matcher/dist/esm/index.d.mts","../../../search-params/dist/esm/index.d.mts","../../../route-tree/dist/esm/index.d.mts","../../src/types.ts","../../src/Router.ts"],"mappings":"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"}
@@ -2,5 +2,5 @@ const e=require(`./RouterError-BmvAyBlx.js`),t=require(`./internals-na15rxo_.js`
2
2
  // eslint-disable-next-line sonarjs/void-use -- @preserve: limits passed to validator via RouterInternals; void suppresses TS6133 until plugin implements validateCountThresholds
3
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],r=this.#o(t);this.#e.add(t);let i=!1,a=()=>{if(!i){i=!0,this.#e.delete(t),this.#t.delete(a);try{r()}catch(e){n.logger.error(L,`Error during cleanup:`,e)}}};return this.#t.add(a),a}let t=this.#a(e),r=[];try{for(let e of t){let t=this.#o(e);r.push({factory:e,cleanup:t})}}catch(e){for(let{cleanup:e}of r)try{e()}catch(e){n.logger.error(L,`Cleanup error:`,e)}throw e}for(let{factory:e}of r)this.#e.add(e);let i=!1,a=()=>{if(!i){i=!0,this.#t.delete(a);for(let{factory:e}of r)this.#e.delete(e);for(let{cleanup:e}of r)try{e()}catch(e){n.logger.error(L,`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(e){let n=this.#n.compileFactory(e);t.validatePlugin(n),this.#i?.()?.plugins.validatePluginKeys(n),Object.freeze(n);let r=[];for(let e of ot)e in n&&(typeof n[e]==`function`?(r.push(this.#n.addEventListener(at[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 ut=class{#e=new Map;#t=new Map;#n=new Map;#r=new Map;#i=[this.#n,this.#r];#a=new Set;#o=new Set;#s=new Set;#c;#l=e.a;#u=null;setDependencies(e){this.#c=e}setLimits(e){
4
4
  // eslint-disable-next-line sonarjs/void-use -- @preserve: Wave 3 validator reads limits via RouterInternals; void suppresses TS6133 until then
5
- this.#l=e,this.#l}setValidatorGetter(e){this.#u=e}getHandlerCount(e){return e===`activate`?this.#t.size:this.#e.size}addCanActivate(e,t,n=!1){n?this.#o.add(e):this.#o.delete(e);let r=this.#t.has(e);this.#d(`activate`,e,t,this.#t,this.#r,`canActivate`,r)}addCanDeactivate(e,t,n=!1){n?this.#s.add(e):this.#s.delete(e);let r=this.#e.has(e);this.#d(`deactivate`,e,t,this.#e,this.#n,`canDeactivate`,r)}clearCanActivate(e){this.#t.delete(e),this.#r.delete(e),this.#o.delete(e)}clearCanDeactivate(e){this.#e.delete(e),this.#n.delete(e),this.#s.delete(e)}clearAll(){this.#t.clear(),this.#r.clear(),this.#e.clear(),this.#n.clear(),this.#o.clear(),this.#s.clear()}clearDefinitionGuards(){for(let e of this.#o)this.#t.delete(e),this.#r.delete(e);for(let e of this.#s)this.#e.delete(e),this.#n.delete(e);this.#o.clear(),this.#s.clear()}getFactories(){let e={},t={};for(let[t,n]of this.#e)e[t]=n;for(let[e,n]of this.#t)t[e]=n;return[e,t]}getFunctions(){return this.#i}canNavigateTo(e,t,n,r){for(let t of e)if(!this.#f(this.#n,t,n,r,`canNavigateTo`))return!1;for(let e of t)if(!this.#f(this.#r,e,n,r,`canNavigateTo`))return!1;return!0}#d(e,t,n,r,i,a,o){o?this.#u?.()?.lifecycle.warnOverwrite(t,e,a):this.#u?.()?.lifecycle.validateCountThresholds(r.size+1,a);let s=typeof n==`boolean`?lt(n):n;r.set(t,s),this.#a.add(t);try{let e=this.#c.compileFactory(s);if(typeof e!=`function`)throw TypeError(`[router.${a}] Factory must return a function, got ${typeof e}`);i.set(t,e)}catch(e){throw r.delete(t),e}finally{this.#a.delete(t)}}#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.#u?.()?.lifecycle.warnAsyncGuardSync(t,i),!1)}catch{return!1}}};function dt(){return{decoders:Object.create(null),encoders:Object.create(null),defaultParams:Object.create(null),forwardMap:Object.create(null),forwardFnMap:Object.create(null)}}function ft(e,t){for(let n in e)if(e[n]!==t[n])return!1;return!0}function pt(e,t,n){for(let r in e)if(!(r in n)&&e[r]!==t[r])return!1;return!0}function R(e){let t={name:e.name,path:e.path};return e.children&&(t.children=e.children.map(e=>R(e))),t}function mt(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}.`)&&mt(i.children,t,a))return!0}return!1}function ht(e,t){for(let n of Object.keys(e))t(n)&&delete e[n]}function gt(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 _t(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 vt(e,t,n){let r=Je(``,t,e),i=Xe(n);return i.registerTree(r),{tree:r,matcher:i}}function z(e){let t=vt(e.definitions,e.rootPath,e.matcherOptions);e.tree=t.tree,e.matcher=t.matcher}function yt(e){z(e),e.resolvedForwardMap=B(e.config)}function bt(e){xt(e),z(e)}function xt(e){e.definitions.length=0,Object.assign(e.config,dt()),e.resolvedForwardMap=Object.create(null),e.routeCustomFields=Object.create(null)}function B(e){let t=Object.create(null);for(let n of Object.keys(e.forwardMap))t[n]=_t(n,e.forwardMap);return t}function St(e,t,r){if(e.canActivate){let r=typeof e.forwardTo==`string`?e.forwardTo:`[dynamic]`;n.logger.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 "${r}".`)}if(e.canDeactivate){let r=typeof e.forwardTo==`string`?e.forwardTo:`[dynamic]`;n.logger.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 "${r}".`)}if(typeof e.forwardTo==`function`){let n=e.forwardTo.constructor.name===`AsyncFunction`,r=e.forwardTo.toString().includes(`__awaiter`);if(n||r)throw TypeError(`forwardTo callback cannot be async for route "${t}". Async functions break matchPath/buildPath.`)}typeof e.forwardTo==`string`?r.forwardMap[t]=e.forwardTo:r.forwardFnMap[t]=e.forwardTo}function Ct(e,t,n,r,i,a,o){let s=new Set([`name`,`path`,`children`,`canActivate`,`canDeactivate`,`forwardTo`,`encodeParams`,`decodeParams`,`defaultParams`]),c=Object.fromEntries(Object.entries(e).filter(([e])=>!s.has(e)));Object.keys(c).length>0&&(r[t]=c),e.canActivate&&(o?o.addActivateGuard(t,e.canActivate):i.set(t,e.canActivate)),e.canDeactivate&&(o?o.addDeactivateGuard(t,e.canDeactivate):a.set(t,e.canDeactivate)),e.forwardTo&&St(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 V(e,t,n,r,i,a,o=``){for(let s of e){let e=o?`${o}.${s.name}`:s.name;Ct(s,e,t,n,r,i,a),s.children&&V(s.children,t,n,r,i,a,e)}}function wt(e,t){let n=[],r=dt(),i=Object.create(null),a=new Map,o=new Map;for(let t of e)n.push(R(t));let{tree:s,matcher:c}=vt(n,``,t);return V(e,r,i,a,o,void 0,``),{definitions:n,config:r,tree:s,matcher:c,resolvedForwardMap:B(r),routeCustomFields:i,rootPath:``,matcherOptions:t,depsStore:void 0,lifecycleNamespace:void 0,pendingCanActivate:a,pendingCanDeactivate:o,treeOperations:{commitTreeChanges:yt,resetStore:bt,nodeToDefinition:P}}}const H=[];Object.freeze(H);function Tt(e){let t=e.length,n=[];for(let r=t-1;r>=0;r--)n.push(e[r]);return n}function Et(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}function Dt(e){let t=typeof e;return t===`string`||t===`number`||t===`boolean`}function Ot(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(Dt(t)&&Dt(i)&&String(t)!==String(i))return!1}return!0}function kt(e,t,n,r,i,a){for(let o=0;o<a;o++){let a=r[o];if(a!==i[o]||!Ot(a,e,t,n))return o}return a}const At=new Map;function U(e){let t=At.get(e);if(t)return t;let n=jt(e);return Object.freeze(n),At.set(e,n),n}function jt(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]:Et(e)}let W,G,K=null,Mt,Nt,q=null;function Pt(e,t){if(!t)return{intersection:``,toActivate:U(e.name),toDeactivate:H};let n=nt(e),r=nt(t);if(!n&&!r)return{intersection:``,toActivate:U(e.name),toDeactivate:Tt(U(t.name))};let i=U(e.name),a=U(t.name),o=Math.min(a.length,i.length),s=kt(n??r,e,t,i,a,o),c;if(s>=a.length)c=H;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 J(e,t){if(K!==null&&e===W&&t===G)return K;if(q!==null&&e===Mt&&t===Nt)return q;let n=Pt(e,t);return Mt=W,Nt=G,q=K,W=e,G=t,K=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 It(e){return e.at(-1)?.fullName??``}function Lt(e,t){return{name:t??It(e.segments),params:e.params,meta:e.meta}}var Rt=class{#e;#t;get#n(){return this.#e.depsStore}constructor(e=[],t){this.#e=wt(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===``&&!n)return!0;let{intersection:r,toActivate:i,toDeactivate:a}=J(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,z(this.#e)}hasRoute(e){return this.#e.matcher.hasRoute(e)}clearRoutes(){bt(this.#e)}buildPath(t,n,r){if(t===e.l.UNKNOWN_ROUTE)return typeof n?.path==`string`?n.path:``;let i=Object.hasOwn(this.#e.config.defaultParams,t)?{...this.#e.config.defaultParams[t],...n}:n??{},a=typeof this.#e.config.encoders[t]==`function`?this.#e.config.encoders[t]({...i}):i;return this.#e.matcher.buildPath(t,a,this.#i(r))}matchPath(e,t){let n=t,r=this.#e.matcher.match(e);if(!r)return;let{name:i,params:a,meta:o}=Lt(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=gt(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 Lt({segments:n,params:t,meta:this.#e.matcher.getMetaByName(e)},e)}isActiveRoute(t,n={},r=!1,i=!0){let a=this.#n.getState();if(!a)return!1;let o=a.name;if(o!==t&&!o.startsWith(`${t}.`)&&!t.startsWith(`${o}.`))return!1;let s=this.#e.config.defaultParams[t];if(r||o===t){let r={name:t,params:s?{...s,...n}:n,path:``,transition:e.o,context:{}};return this.#n.areStatesEqual(r,a,i)}let c=a.params;return ft(n,c)?!s||pt(s,c,n):!1}getMetaForState(e){return this.#e.matcher.hasRoute(e)?this.#e.matcher.getMetaByName(e):void 0}getUrlParams(e){let t=this.#e.matcher.getSegmentsByName(e);return t?Ft(t):[]}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 detected: ${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 zt=new e.t(e.u.ROUTER_NOT_STARTED),Bt=new e.t(e.u.ROUTE_NOT_FOUND),Vt=new e.t(e.u.SAME_STATES),Ht=Promise.reject(zt),Ut=Promise.reject(Bt),Wt=Promise.reject(Vt);Ht.catch(()=>{}),Ut.catch(()=>{}),Wt.catch(()=>{});function Gt(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.redirected!==void 0&&(a.redirected=t.redirected),Object.freeze(a)}function Kt({signal:e,...t}){return t}function qt(t,n){let{toState:r,fromState:i,opts:a,toDeactivate:o,toActivate:s,intersection:c}=n;if(r.name!==e.l.UNKNOWN_ROUTE&&!t.hasRoute(r.name)){let n=new e.t(e.u.ROUTE_NOT_FOUND,{routeName:r.name});throw t.sendTransitionFail(r,i,n),n}if(i)for(let e of o)!s.includes(e)&&n.canDeactivateFunctions.has(e)&&t.clearCanDeactivate(e);r.transition=Gt(i,a,o,s,c);let l=Object.freeze(r);t.setState(l);let u=a.signal===void 0?a:Kt(a);return t.sendTransitionDone(l,i,u),l}function Jt(t,n,r,i){let a=n;a.code===e.u.TRANSITION_CANCELLED||a.code===e.u.ROUTE_NOT_FOUND||t.sendTransitionFail(r,i,a)}function Y(t,n,r){if(t instanceof DOMException&&t.name===`AbortError`)throw new e.t(e.u.TRANSITION_CANCELLED);Yt(t,n,r)}function Yt(t,n,r){throw t instanceof e.t?(t.setCode(n),t):new e.t(n,Zt(t,r))}const Xt=new Set([`code`,`segment`,`path`,`redirect`]);function Zt(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))Xt.has(n)||(t[n]=r);return{...n,...t}}return n}async function Qt(t,n,r){let i;try{i=await t}catch(e){Y(e,n,r);return}if(!i)throw new e.t(n,{segment:r})}async function $t(t,n,r,i,a,o,s,c,l,u){await Qt(l,r,u);for(let l=c;l<n.length;l++){if(!s())throw new e.t(e.u.TRANSITION_CANCELLED);let c=n[l],u=t.get(c);if(!u)continue;let d=!1;try{d=u(i,a,o)}catch(e){Y(e,r,c)}if(d instanceof Promise){await Qt(d,r,c);continue}if(!d)throw new e.t(r,{segment:c})}}async function en(t,n,r,i,a,o,s,c,l){if(await t,!c())throw new e.t(e.u.TRANSITION_CANCELLED);let u=l();if(u!==void 0&&(await u,!c()))throw new e.t(e.u.TRANSITION_CANCELLED);if(i){let t=X(n,r,e.u.CANNOT_ACTIVATE,a,o,s,c);if(t!==void 0&&await t,!c())throw new e.t(e.u.TRANSITION_CANCELLED)}}function tn(t,n,r,i,a,o,s,c,l,u,d){if(a){let a=X(t,r,e.u.CANNOT_DEACTIVATE,s,c,l,u);if(a!==void 0)return en(a,n,i,o,s,c,l,u,d)}if(!u())throw new e.t(e.u.TRANSITION_CANCELLED);let f=d();if(f!==void 0)return nn(f,o?n:void 0,i,s,c,l,u);if(o)return X(n,i,e.u.CANNOT_ACTIVATE,s,c,l,u)}async function nn(t,n,r,i,a,o,s){if(await t,!s())throw new e.t(e.u.TRANSITION_CANCELLED);if(n!==void 0){let t=X(n,r,e.u.CANNOT_ACTIVATE,i,a,o,s);if(t!==void 0&&await t,!s())throw new e.t(e.u.TRANSITION_CANCELLED)}}function X(t,n,r,i,a,o,s){for(let[c,l]of n.entries()){if(!s())throw new e.t(e.u.TRANSITION_CANCELLED);let u=t.get(l);if(!u)continue;let d=!1;try{d=u(i,a,o)}catch(e){Y(e,r,l)}if(d instanceof Promise)return $t(t,n,r,i,a,o,s,c+1,d,l);if(!d)throw new e.t(r,{segment:l})}}const rn=[e.l.UNKNOWN_ROUTE];Object.freeze(rn);const an={replace:!0};Object.freeze(an);function on(t,n){return n?.name===e.l.UNKNOWN_ROUTE&&!t.replace?{...t,replace:!0}:t}function sn(e,t,n){return!!e&&!t.reload&&!t.force&&e.path===n.path}var cn=class{lastSyncResolved=!1;lastSyncRejected=!1;#e;#t=null;#n=0;setDependencies(e){this.#e=e}navigate(t,n,r){this.lastSyncResolved=!1;let i=this.#e;if(!i.canNavigate())return this.lastSyncRejected=!0,Ht;let a,o,s=!1,c=null;try{if(a=i.buildNavigateState(t,n),!a)return i.emitTransitionError(void 0,i.getState(),Bt),this.lastSyncRejected=!0,Ut;if(o=i.getState(),r=on(r,o),sn(o,r,a))return i.emitTransitionError(a,o,Vt),this.lastSyncRejected=!0,Wt;this.#s(r.signal);let l=++this.#n;if(i.startTransition(a,o),s=!0,this.#n!==l)throw new e.t(e.u.TRANSITION_CANCELLED);let[u,d]=i.getLifecycleFunctions(),f=a.name===e.l.UNKNOWN_ROUTE,p=J(a,o),{toDeactivate:m,toActivate:h,intersection:g}=p,ee=o&&!r.forceDeactivate&&m.length>0,te=!f&&h.length>0,_=u.size>0||d.size>0,v=a;if(!_){let e=this.#a(v,o,l,r,p,u);if(e!==void 0)return e}if(_){c=new AbortController,this.#t=c;let t=()=>this.#n===l&&i.isActive(),n=c.signal,s=tn(u,d,m,h,!!ee,te,a,o,n,t,()=>{if(i.sendLeaveApprove(v,o),i.hasLeaveListeners())return i.awaitLeaveListeners(v,o,n)});if(s!==void 0)return this.#r(s,{toState:a,fromState:o,opts:r,toDeactivate:m,toActivate:h,intersection:g,canDeactivateFunctions:u},c,l);if(!t())throw new e.t(e.u.TRANSITION_CANCELLED);this.#o(c)}return this.lastSyncResolved=!0,Promise.resolve(qt(i,{toState:a,fromState:o,opts:r,toDeactivate:m,toActivate:h,intersection:g,canDeactivateFunctions:u}))}catch(e){return this.#i(e,c,s,a,o),Promise.reject(e)}}navigateToDefault(t){let n=this.#e;if(!n.getOptions().defaultRoute)return Promise.reject(new e.t(e.u.ROUTE_NOT_FOUND,{routeName:`defaultRoute not configured`}));let r,i;try{({route:r,params:i}=n.resolveDefault())}catch(e){return Promise.reject(e)}return r?this.navigate(r,i,t):Promise.reject(new e.t(e.u.ROUTE_NOT_FOUND,{routeName:`defaultRoute resolved to empty`}))}navigateToNotFound(t){this.#s();let n=this.#e.getState(),r=n?U(n.name).toReversed():[];Object.freeze(r);let i={deactivated:r,activated:rn,intersection:``};Object.freeze(i);let a={phase:`activating`,...n&&{from:n.name},reason:`success`,segments:i};Object.freeze(a);let o={name:e.l.UNKNOWN_ROUTE,params:e.s,path:t,transition:a,context:{}};return Object.freeze(o),this.#e.setState(o),this.#e.emitTransitionSuccess(o,n,an),o}abortCurrentNavigation(){this.#t?.abort(new e.t(e.u.TRANSITION_CANCELLED)),this.#t=null}async#r(t,n,r,i){let a=this.#e,o=()=>this.#n===i&&!r.signal.aborted&&a.isActive();try{if(n.opts.signal){if(n.opts.signal.aborted)throw new e.t(e.u.TRANSITION_CANCELLED,{reason:n.opts.signal.reason});n.opts.signal.addEventListener(`abort`,()=>{r.abort(n.opts.signal?.reason)},{once:!0,signal:r.signal})}if(await t,!o())throw new e.t(e.u.TRANSITION_CANCELLED);return qt(a,n)}catch(e){throw Jt(a,e,n.toState,n.fromState),e}finally{this.#o(r)}}#i(e,t,n,r,i){t&&this.#o(t),n&&r&&Jt(this.#e,e,r,i)}#a(t,n,r,i,a,o){let s=this.#e;if(s.sendLeaveApprove(t,n),s.hasLeaveListeners()){let e=new AbortController,c=s.awaitLeaveListeners(t,n,e.signal);if(c!==void 0)return this.#t=e,this.#r(c,{toState:t,fromState:n,opts:i,toDeactivate:a.toDeactivate,toActivate:a.toActivate,intersection:a.intersection,canDeactivateFunctions:o},e,r)}if(this.#n!==r)throw new e.t(e.u.TRANSITION_CANCELLED)}#o(e){e.abort(),this.#t===e&&(this.#t=null)}#s(t){if(this.#e.isTransitioning()&&(n.logger.warn(`router.navigate`,`Concurrent navigation detected on shared router instance. For SSR, use cloneRouter() to create isolated instance per request.`),this.#t?.abort(new e.t(e.u.TRANSITION_CANCELLED)),this.#e.cancelNavigation()),t?.aborted)throw new e.t(e.u.TRANSITION_CANCELLED,{reason:t.reason})}};const ln={replace:!0};Object.freeze(ln);var un=class{#e;setDependencies(e){this.#e=e}async start(t){let n=this.#e,r=n.getOptions(),i=n.matchPath(t);if(!i&&!r.allowNotFound){let r=new e.t(e.u.ROUTE_NOT_FOUND,{path:t});throw n.emitTransitionError(void 0,void 0,r),r}return n.completeStart(),i?n.navigate(i.name,i.params,ln):n.navigateToNotFound(t)}stop(){this.#e.clearState()}};function Z(e){return e instanceof Error?e:Error(String(e))}function dn(e,t){return Promise.allSettled(e).then(e=>{if(t!==void 0)throw Z(t);let n=e.find(e=>e.status===`rejected`);if(n!==void 0)throw Z(n.reason)})}var Q=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(e.d.ROUTER_START)}emitRouterStop(){this.#t.emit(e.d.ROUTER_STOP)}emitTransitionStart(t,n){this.#t.emit(e.d.TRANSITION_START,t,n)}emitTransitionSuccess(t,n,r){this.#t.emit(e.d.TRANSITION_SUCCESS,t,n,r)}emitTransitionError(t,n,r){this.#t.emit(e.d.TRANSITION_ERROR,t,n,r)}emitTransitionCancel(t,n){this.#t.emit(e.d.TRANSITION_CANCEL,t,n)}emitTransitionLeaveApprove(t,n){this.#t.emit(e.d.TRANSITION_LEAVE_APPROVE,t,n)}sendStart(){this.#e.send(c.START)}sendStop(){this.#e.send(c.STOP)}sendDispose(){this.#e.send(c.DISPOSE)}sendStarted(){this.#e.send(c.STARTED)}sendNavigate(e,t){this.#r=e,this.#e.forceState(s.TRANSITION_STARTED),this.emitTransitionStart(e,t)}sendComplete(e,t,n={}){this.#e.forceState(s.READY),this.emitTransitionSuccess(e,t,n),this.#r===e&&(this.#r=void 0)}sendLeaveApprove(e,t){this.#e.forceState(s.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(c.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(c.CANCEL),this.#r===n&&(this.#r=void 0)}canBeginTransition(){return this.#e.canSend(c.NAVIGATE)}canStart(){return this.#e.canSend(c.START)}canCancel(){return this.#e.canSend(c.CANCEL)}isActive(){let e=this.#e.getState();return e!==s.IDLE&&e!==s.DISPOSED}isDisposed(){return this.#e.getState()===s.DISPOSED}isTransitioning(){let e=this.#e.getState();return e===s.TRANSITION_STARTED||e===s.LEAVE_APPROVED}isLeaveApproved(){return this.#e.getState()===s.LEAVE_APPROVED}isReady(){return this.#e.getState()===s.READY}getCurrentToState(){return this.#r}addEventListener(e,t){return this.#t.on(e,t)}subscribe(t){return this.#t.on(e.d.TRANSITION_SUCCESS,(e,n)=>{t({route:e,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={route:t,nextRoute:e,signal:n},i,a;for(let e of this.#n)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 Z(a);return}return dn(i,a)}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(s.STARTING,c.STARTED,()=>{this.emitRouterStart()}),e.on(s.READY,c.STOP,()=>{this.emitRouterStop()});let t=()=>{let e=this.#i;e!==void 0&&this.emitTransitionCancel(e,this.#a)};e.on(s.TRANSITION_STARTED,c.CANCEL,t),e.on(s.LEAVE_APPROVED,c.CANCEL,t),e.on(s.LEAVE_APPROVED,c.FAIL,()=>{this.#s()}),e.on(s.STARTING,c.FAIL,()=>{this.#s()}),e.on(s.READY,c.FAIL,()=>{this.#s()}),e.on(s.TRANSITION_STARTED,c.FAIL,()=>{this.#s()})}};const fn=new e.t(e.u.ROUTER_ALREADY_STARTED),pn=new Set([`all`,`warn-error`,`error-only`]);function mn(e){return typeof e==`string`&&pn.has(e)}function hn(e){return typeof e==`string`?`"${e}"`:typeof e==`object`?JSON.stringify(e):String(e)}function gn(e){if(typeof e!=`object`||!e)throw TypeError(`Logger config must be an object`);let t=e;for(let e of Object.keys(t))if(e!==`level`&&e!==`callback`)throw TypeError(`Unknown logger config property: "${e}"`);if(`level`in t&&t.level!==void 0&&!mn(t.level))throw TypeError(`Invalid logger level: ${hn(t.level)}. Expected: "all" | "warn-error" | "error-only"`);if(`callback`in t&&t.callback!==void 0&&typeof t.callback!=`function`)throw TypeError(`Logger callback must be a function, got ${typeof t.callback}`);return!0}var _n=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 t.r(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,n)=>{let r=t.r(this.router);return r.validator?.routes.validateStateBuilderArgs(e,n,`forwardState`),r.forwardState(e,n)}}),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 t.r(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:(n,r)=>{let i=t.r(this.router);i.validator?.routes.validateStateBuilderArgs(n,r,`navigate`);let a=i.forwardState(n,r),o=a.name,s=e.i(a.params),c=this.routes.getMetaForState(o);if(c===void 0)return;let l=i.buildPath(o,s);return this.state.makeState(o,s,l,c,!0)},resolveDefault:()=>{let e=this.options.get(),n=t.r(this.router),r=F(e.defaultRoute,e=>this.dependenciesStore.dependencies[e]),i=F(e.defaultParams,e=>this.dependenciesStore.dependencies[e]);return typeof e.defaultRoute==`function`&&n.validator?.options.validateResolvedDefaultRoute(r,n.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(),navigate:(e,t,n)=>this.navigation.navigate(e,t,n),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,n)=>t.r(this.router).buildPath(e,n),getUrlParams:e=>this.routes.getUrlParams(e)})}createCompileFactory(){let{router:e,dependenciesStore:t}=this;return n=>n(e,e=>t.dependencies[e])}};function vn(e){e.wireLimits(),e.wireRouteLifecycleDeps(),e.wireRoutesDeps(),e.wirePluginsDeps(),e.wireNavigationDeps(),e.wireLifecycleDeps(),e.wireStateDeps()}const yn=Object.freeze({});var bn=class r{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;constructor(r=[],i={},a={}){i.logger&&gn(i.logger)&&(n.logger.configure(i.logger),delete i.logger),et.validateOptionsIsObject(i),d(a),r.length>0&&f(r),this.#e=new et(i),this.#t=e.n(i.limits),this.#n=p(a),this.#r=new it,this.#i=new Rt(r,xn(this.#e.get())),this.#a=new ut,this.#o=new ct,this.#s=new cn,this.#c=new un,this.#l=new Q({routerFSM:u(),emitter:new o({onListenerError:(e,t)=>{n.logger.error(`Router`,`Error in listener for ${e}:`,t)},onListenerWarn:(e,t)=>{n.logger.warn(`router.addEventListener`,`Event "${e}" has ${t} listeners — possible memory leak`)}})}),vn(new _n({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 s=new Map;t.i(this,{makeState:(e,t,n,r)=>this.#r.makeState(e,t,n,r),forwardState:t.n(`forwardState`,(e,t)=>this.#i.forwardState(e,t),s),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),buildPath:t.n(`buildPath`,(t,n)=>this.#i.buildPath(t,n??e.s,this.#e.get()),s),start:t.t(`start`,e=>this.#c.start(e),s),interceptors:s,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}),getLifecycleFactories:()=>this.#a.getFactories(),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}),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,r,i,a){return t.r(this).validator?.routes.validateIsActiveRouteArgs(e,r,i,a),t.r(this).validator?.routes.validateRouteName(e,`isActiveRoute`),e===``?(n.logger.warn(`real-router`,`isActiveRoute("") called with empty string. Root node is not considered a parent of any route.`),!1):this.#i.isActiveRoute(e,r,i,a)}buildPath(n,r){let i=t.r(this);return i.validator?.routes.validateBuildPathArgs(n),i.validator?.navigation.validateParams(r,`buildPath`),i.buildPath(n,e.i(r))}getState(){return this.#r.get()}getPreviousState(){return this.#r.getPrevious()}areStatesEqual(e,n,r=!0){return t.r(this).validator?.state.validateAreStatesEqualArgs(e,n,r),this.#r.areStatesEqual(e,n,r)}shouldUpdateNode(e){return t.r(this).validator?.routes.validateShouldUpdateNodeArgs(e),Rt.shouldUpdateNode(e)}isActive(){return this.#l.isActive()}start(e){if(!this.#l.canStart())return Promise.reject(fn);t.r(this).validator?.navigation.validateStartArgs(e),this.#l.sendStart();let n=t.r(this).start(e).catch(e=>{throw this.#l.isReady()&&(this.#c.stop(),this.#l.sendStop()),e});return r.#d(n),n}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=t.r(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,n){let r=t.r(this);if(r.validator?.routes.validateRouteName(e,`canNavigateTo`),r.validator?.navigation.validateParams(n,`canNavigateTo`),!this.#i.hasRoute(e))return!1;let{name:i,params:a}=r.forwardState(e,n??{}),o=this.#r.makeState(i,a),s=this.#r.get(),{toDeactivate:c,toActivate:l}=J(o,s);return this.#a.canNavigateTo(c,l,o,s)}usePlugin(...e){let n=e.filter(Boolean);if(n.length===0)return()=>{};let r=t.r(this);r.validator?.plugins.validatePluginLimit(this.#o.count(),this.#t);for(let e of n)r.validator?.plugins.validateNoDuplicatePlugins(e,this.#o.getAll());return this.#o.use(...n)}subscribe(e){return Q.validateSubscribeListener(e),this.#l.subscribe(e)}subscribeLeave(e){return Q.validateSubscribeLeaveListener(e),this.#l.subscribeLeave(e)}isLeaveApproved(){return this.#l.isLeaveApproved()}navigate(n,i,a){let o=t.r(this);o.validator?.navigation.validateNavigateArgs(n),o.validator?.navigation.validateParams(i,`navigate`);let s=a??yn;o.validator?.navigation.validateNavigationOptions(s,`navigate`);let c=this.#s.navigate(n,i??e.s,s);return this.#s.lastSyncResolved?this.#s.lastSyncResolved=!1:this.#s.lastSyncRejected?this.#s.lastSyncRejected=!1:r.#d(c),c}navigateToDefault(e){let n=t.r(this);n.validator?.navigation.validateNavigateToDefaultArgs(e);let i=e??yn;n.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:r.#d(a),a}navigateToNotFound(t){if(!this.#l.isActive())throw new e.t(e.u.ROUTER_NOT_STARTED);if(t!==void 0&&typeof t!=`string`)throw TypeError(`[router.navigateToNotFound] path must be a string, got ${typeof t}`);let n=t??this.#r.get().path;return this.#s.navigateToNotFound(n)}static#u=t=>{t instanceof e.t&&(t.code===e.u.SAME_STATES||t.code===e.u.TRANSITION_CANCELLED||t.code===e.u.ROUTER_NOT_STARTED||t.code===e.u.ROUTE_NOT_FOUND)||n.logger.error(`router.navigate`,`Unexpected navigation error`,t)};static#d(e){e.catch(r.#u)}#f(){this.navigate=$,this.navigateToDefault=$,this.navigateToNotFound=$,this.start=$,this.stop=$,this.usePlugin=$,this.subscribe=$,this.subscribeLeave=$,this.canNavigateTo=$}};function $(){throw new e.t(e.u.ROUTER_DISPOSED)}function xn(e){return{strictTrailingSlash:e.trailingSlash===`strict`,strictQueryParams:e.queryParamsMode===`strict`,urlParamsEncoding:e.urlParamsEncoding,queryParams:e.queryParams}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return _t}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return xt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return ht}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return mt}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return bn}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return f}});
6
- //# sourceMappingURL=Router-CTgPmeWV.js.map
5
+ this.#l=e,this.#l}setValidatorGetter(e){this.#u=e}getHandlerCount(e){return e===`activate`?this.#t.size:this.#e.size}addCanActivate(e,t,n=!1){n?this.#o.add(e):this.#o.delete(e);let r=this.#t.has(e);this.#d(`activate`,e,t,this.#t,this.#r,`canActivate`,r)}addCanDeactivate(e,t,n=!1){n?this.#s.add(e):this.#s.delete(e);let r=this.#e.has(e);this.#d(`deactivate`,e,t,this.#e,this.#n,`canDeactivate`,r)}clearCanActivate(e){this.#t.delete(e),this.#r.delete(e),this.#o.delete(e)}clearCanDeactivate(e){this.#e.delete(e),this.#n.delete(e),this.#s.delete(e)}clearAll(){this.#t.clear(),this.#r.clear(),this.#e.clear(),this.#n.clear(),this.#o.clear(),this.#s.clear()}clearDefinitionGuards(){for(let e of this.#o)this.#t.delete(e),this.#r.delete(e);for(let e of this.#s)this.#e.delete(e),this.#n.delete(e);this.#o.clear(),this.#s.clear()}getFactories(){let e={},t={};for(let[t,n]of this.#e)e[t]=n;for(let[e,n]of this.#t)t[e]=n;return[e,t]}getFunctions(){return this.#i}canNavigateTo(e,t,n,r){for(let t of e)if(!this.#f(this.#n,t,n,r,`canNavigateTo`))return!1;for(let e of t)if(!this.#f(this.#r,e,n,r,`canNavigateTo`))return!1;return!0}#d(e,t,n,r,i,a,o){o?this.#u?.()?.lifecycle.warnOverwrite(t,e,a):this.#u?.()?.lifecycle.validateCountThresholds(r.size+1,a);let s=typeof n==`boolean`?lt(n):n;r.set(t,s),this.#a.add(t);try{let e=this.#c.compileFactory(s);if(typeof e!=`function`)throw TypeError(`[router.${a}] Factory must return a function, got ${typeof e}`);i.set(t,e)}catch(e){throw r.delete(t),e}finally{this.#a.delete(t)}}#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.#u?.()?.lifecycle.warnAsyncGuardSync(t,i),!1)}catch{return!1}}};function dt(){return{decoders:Object.create(null),encoders:Object.create(null),defaultParams:Object.create(null),forwardMap:Object.create(null),forwardFnMap:Object.create(null)}}function ft(e,t){for(let n in e)if(e[n]!==t[n])return!1;return!0}function pt(e,t,n){for(let r in e)if(!(r in n)&&e[r]!==t[r])return!1;return!0}function R(e){let t={name:e.name,path:e.path};return e.children&&(t.children=e.children.map(e=>R(e))),t}function mt(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}.`)&&mt(i.children,t,a))return!0}return!1}function ht(e,t){for(let n of Object.keys(e))t(n)&&delete e[n]}function gt(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 _t(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 vt(e,t,n){let r=Je(``,t,e),i=Xe(n);return i.registerTree(r),{tree:r,matcher:i}}function z(e){let t=vt(e.definitions,e.rootPath,e.matcherOptions);e.tree=t.tree,e.matcher=t.matcher}function yt(e){z(e),e.resolvedForwardMap=B(e.config)}function bt(e){xt(e),z(e)}function xt(e){e.definitions.length=0,Object.assign(e.config,dt()),e.resolvedForwardMap=Object.create(null),e.routeCustomFields=Object.create(null)}function B(e){let t=Object.create(null);for(let n of Object.keys(e.forwardMap))t[n]=_t(n,e.forwardMap);return t}function St(e,t,r){if(e.canActivate){let r=typeof e.forwardTo==`string`?e.forwardTo:`[dynamic]`;n.logger.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 "${r}".`)}if(e.canDeactivate){let r=typeof e.forwardTo==`string`?e.forwardTo:`[dynamic]`;n.logger.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 "${r}".`)}if(typeof e.forwardTo==`function`){let n=e.forwardTo.constructor.name===`AsyncFunction`,r=e.forwardTo.toString().includes(`__awaiter`);if(n||r)throw TypeError(`forwardTo callback cannot be async for route "${t}". Async functions break matchPath/buildPath.`)}typeof e.forwardTo==`string`?r.forwardMap[t]=e.forwardTo:r.forwardFnMap[t]=e.forwardTo}function Ct(e,t,n,r,i,a,o){let s=new Set([`name`,`path`,`children`,`canActivate`,`canDeactivate`,`forwardTo`,`encodeParams`,`decodeParams`,`defaultParams`]),c=Object.fromEntries(Object.entries(e).filter(([e])=>!s.has(e)));Object.keys(c).length>0&&(r[t]=c),e.canActivate&&(o?o.addActivateGuard(t,e.canActivate):i.set(t,e.canActivate)),e.canDeactivate&&(o?o.addDeactivateGuard(t,e.canDeactivate):a.set(t,e.canDeactivate)),e.forwardTo&&St(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 V(e,t,n,r,i,a,o=``){for(let s of e){let e=o?`${o}.${s.name}`:s.name;Ct(s,e,t,n,r,i,a),s.children&&V(s.children,t,n,r,i,a,e)}}function wt(e,t){let n=[],r=dt(),i=Object.create(null),a=new Map,o=new Map;for(let t of e)n.push(R(t));let{tree:s,matcher:c}=vt(n,``,t);return V(e,r,i,a,o,void 0,``),{definitions:n,config:r,tree:s,matcher:c,resolvedForwardMap:B(r),routeCustomFields:i,rootPath:``,matcherOptions:t,depsStore:void 0,lifecycleNamespace:void 0,pendingCanActivate:a,pendingCanDeactivate:o,treeOperations:{commitTreeChanges:yt,resetStore:bt,nodeToDefinition:P}}}const H=[];Object.freeze(H);function Tt(e){let t=e.length,n=[];for(let r=t-1;r>=0;r--)n.push(e[r]);return n}function Et(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}function Dt(e){let t=typeof e;return t===`string`||t===`number`||t===`boolean`}function Ot(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(Dt(t)&&Dt(i)&&String(t)!==String(i))return!1}return!0}function kt(e,t,n,r,i,a){for(let o=0;o<a;o++){let a=r[o];if(a!==i[o]||!Ot(a,e,t,n))return o}return a}const At=new Map;function U(e){let t=At.get(e);if(t)return t;let n=jt(e);return Object.freeze(n),At.set(e,n),n}function jt(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]:Et(e)}let W,G,K=null,Mt,Nt,q=null;function Pt(e,t){if(!t)return{intersection:``,toActivate:U(e.name),toDeactivate:H};let n=nt(e),r=nt(t);if(!n&&!r)return{intersection:``,toActivate:U(e.name),toDeactivate:Tt(U(t.name))};let i=U(e.name),a=U(t.name),o=Math.min(a.length,i.length),s=kt(n??r,e,t,i,a,o),c;if(s>=a.length)c=H;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 J(e,t){if(K!==null&&e===W&&t===G)return K;if(q!==null&&e===Mt&&t===Nt)return q;let n=Pt(e,t);return Mt=W,Nt=G,q=K,W=e,G=t,K=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 It(e){return e.at(-1)?.fullName??``}function Lt(e,t){return{name:t??It(e.segments),params:e.params,meta:e.meta}}var Rt=class{#e;#t;get#n(){return this.#e.depsStore}constructor(e=[],t){this.#e=wt(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}=J(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,z(this.#e)}hasRoute(e){return this.#e.matcher.hasRoute(e)}clearRoutes(){bt(this.#e)}buildPath(t,n,r){if(t===e.l.UNKNOWN_ROUTE)return typeof n?.path==`string`?n.path:``;let i=Object.hasOwn(this.#e.config.defaultParams,t)?{...this.#e.config.defaultParams[t],...n}:n??{},a=typeof this.#e.config.encoders[t]==`function`?this.#e.config.encoders[t]({...i}):i;return this.#e.matcher.buildPath(t,a,this.#i(r))}matchPath(e,t){let n=t,r=this.#e.matcher.match(e);if(!r)return;let{name:i,params:a,meta:o}=Lt(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=gt(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 Lt({segments:n,params:t,meta:this.#e.matcher.getMetaByName(e)},e)}isActiveRoute(t,n={},r=!1,i=!0){let a=this.#n.getState();if(!a)return!1;let o=a.name;if(o!==t&&!o.startsWith(`${t}.`)&&!t.startsWith(`${o}.`))return!1;let s=this.#e.config.defaultParams[t];if(r||o===t){let r={name:t,params:s?{...s,...n}:n,path:``,transition:e.o,context:{}};return this.#n.areStatesEqual(r,a,i)}let c=a.params;return ft(n,c)?!s||pt(s,c,n):!1}getMetaForState(e){return this.#e.matcher.hasRoute(e)?this.#e.matcher.getMetaByName(e):void 0}getUrlParams(e){let t=this.#e.matcher.getSegmentsByName(e);return t?Ft(t):[]}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 detected: ${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 zt=new e.t(e.u.ROUTER_NOT_STARTED),Bt=new e.t(e.u.ROUTE_NOT_FOUND),Vt=new e.t(e.u.SAME_STATES),Ht=Promise.reject(zt),Ut=Promise.reject(Bt),Wt=Promise.reject(Vt);Ht.catch(()=>{}),Ut.catch(()=>{}),Wt.catch(()=>{});function Gt(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.redirected!==void 0&&(a.redirected=t.redirected),Object.freeze(a)}function Kt({signal:e,...t}){return t}function qt(t,n){let{toState:r,fromState:i,opts:a,toDeactivate:o,toActivate:s,intersection:c}=n;if(r.name!==e.l.UNKNOWN_ROUTE&&!t.hasRoute(r.name)){let n=new e.t(e.u.ROUTE_NOT_FOUND,{routeName:r.name});throw t.sendTransitionFail(r,i,n),n}if(i)for(let e of o)!s.includes(e)&&n.canDeactivateFunctions.has(e)&&t.clearCanDeactivate(e);r.transition=Gt(i,a,o,s,c);let l=Object.freeze(r);t.setState(l);let u=a.signal===void 0?a:Kt(a);return t.sendTransitionDone(l,i,u),l}function Jt(t,n,r,i){let a=n;a.code===e.u.TRANSITION_CANCELLED||a.code===e.u.ROUTE_NOT_FOUND||t.sendTransitionFail(r,i,a)}function Y(t,n,r){if(t instanceof DOMException&&t.name===`AbortError`)throw new e.t(e.u.TRANSITION_CANCELLED);Yt(t,n,r)}function Yt(t,n,r){throw t instanceof e.t?(t.setCode(n),t):new e.t(n,Zt(t,r))}const Xt=new Set([`code`,`segment`,`path`,`redirect`]);function Zt(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))Xt.has(n)||(t[n]=r);return{...n,...t}}return n}async function Qt(t,n,r){let i;try{i=await t}catch(e){Y(e,n,r);return}if(!i)throw new e.t(n,{segment:r})}async function $t(t,n,r,i,a,o,s,c,l,u){await Qt(l,r,u);for(let l=c;l<n.length;l++){if(!s())throw new e.t(e.u.TRANSITION_CANCELLED);let c=n[l],u=t.get(c);if(!u)continue;let d=!1;try{d=u(i,a,o)}catch(e){Y(e,r,c)}if(d instanceof Promise){await Qt(d,r,c);continue}if(!d)throw new e.t(r,{segment:c})}}async function en(t,n,r,i,a,o,s,c,l){if(await t,!c())throw new e.t(e.u.TRANSITION_CANCELLED);let u=l();if(u!==void 0&&(await u,!c()))throw new e.t(e.u.TRANSITION_CANCELLED);if(i){let t=X(n,r,e.u.CANNOT_ACTIVATE,a,o,s,c);if(t!==void 0&&await t,!c())throw new e.t(e.u.TRANSITION_CANCELLED)}}function tn(t,n,r,i,a,o,s,c,l,u,d){if(a){let a=X(t,r,e.u.CANNOT_DEACTIVATE,s,c,l,u);if(a!==void 0)return en(a,n,i,o,s,c,l,u,d)}if(!u())throw new e.t(e.u.TRANSITION_CANCELLED);let f=d();if(f!==void 0)return nn(f,o?n:void 0,i,s,c,l,u);if(o)return X(n,i,e.u.CANNOT_ACTIVATE,s,c,l,u)}async function nn(t,n,r,i,a,o,s){if(await t,!s())throw new e.t(e.u.TRANSITION_CANCELLED);if(n!==void 0){let t=X(n,r,e.u.CANNOT_ACTIVATE,i,a,o,s);if(t!==void 0&&await t,!s())throw new e.t(e.u.TRANSITION_CANCELLED)}}function X(t,n,r,i,a,o,s){for(let[c,l]of n.entries()){if(!s())throw new e.t(e.u.TRANSITION_CANCELLED);let u=t.get(l);if(!u)continue;let d=!1;try{d=u(i,a,o)}catch(e){Y(e,r,l)}if(d instanceof Promise)return $t(t,n,r,i,a,o,s,c+1,d,l);if(!d)throw new e.t(r,{segment:l})}}const rn=[e.l.UNKNOWN_ROUTE];Object.freeze(rn);const an={replace:!0};Object.freeze(an);function on(t,n){return n?.name===e.l.UNKNOWN_ROUTE&&!t.replace?{...t,replace:!0}:t}function sn(e,t,n){return!!e&&!t.reload&&!t.force&&e.path===n.path}var cn=class{lastSyncResolved=!1;lastSyncRejected=!1;#e;#t=null;#n=0;setDependencies(e){this.#e=e}navigate(t,n,r){this.lastSyncResolved=!1;let i=this.#e;if(!i.canNavigate())return this.lastSyncRejected=!0,Ht;let a,o,s=!1,c=null;try{if(a=i.buildNavigateState(t,n),!a)return i.emitTransitionError(void 0,i.getState(),Bt),this.lastSyncRejected=!0,Ut;if(o=i.getState(),r=on(r,o),sn(o,r,a))return i.emitTransitionError(a,o,Vt),this.lastSyncRejected=!0,Wt;this.#s(r.signal);let l=++this.#n;if(i.startTransition(a,o),s=!0,this.#n!==l)throw new e.t(e.u.TRANSITION_CANCELLED);let[u,d]=i.getLifecycleFunctions(),f=a.name===e.l.UNKNOWN_ROUTE,p=J(a,o),{toDeactivate:m,toActivate:h,intersection:g}=p,ee=o&&!r.forceDeactivate&&m.length>0,te=!f&&h.length>0,_=u.size>0||d.size>0,v=a;if(!_){let e=this.#a(v,o,l,r,p,u);if(e!==void 0)return e}if(_){c=new AbortController,this.#t=c;let t=()=>this.#n===l&&i.isActive(),n=c.signal,s=tn(u,d,m,h,!!ee,te,a,o,n,t,()=>{if(i.sendLeaveApprove(v,o),i.hasLeaveListeners())return i.awaitLeaveListeners(v,o,n)});if(s!==void 0)return this.#r(s,{toState:a,fromState:o,opts:r,toDeactivate:m,toActivate:h,intersection:g,canDeactivateFunctions:u},c,l);if(!t())throw new e.t(e.u.TRANSITION_CANCELLED);this.#o(c)}return this.lastSyncResolved=!0,Promise.resolve(qt(i,{toState:a,fromState:o,opts:r,toDeactivate:m,toActivate:h,intersection:g,canDeactivateFunctions:u}))}catch(e){return this.#i(e,c,s,a,o),Promise.reject(e)}}navigateToDefault(t){let n=this.#e;if(!n.getOptions().defaultRoute)return Promise.reject(new e.t(e.u.ROUTE_NOT_FOUND,{routeName:`defaultRoute not configured`}));let r,i;try{({route:r,params:i}=n.resolveDefault())}catch(e){return Promise.reject(e)}return r?this.navigate(r,i,t):Promise.reject(new e.t(e.u.ROUTE_NOT_FOUND,{routeName:`defaultRoute resolved to empty`}))}navigateToNotFound(t){this.#s();let n=this.#e.getState(),r=n?U(n.name).toReversed():[];Object.freeze(r);let i={deactivated:r,activated:rn,intersection:``};Object.freeze(i);let a={phase:`activating`,...n&&{from:n.name},reason:`success`,segments:i};Object.freeze(a);let o={name:e.l.UNKNOWN_ROUTE,params:e.s,path:t,transition:a,context:{}};return Object.freeze(o),this.#e.setState(o),this.#e.emitTransitionSuccess(o,n,an),o}abortCurrentNavigation(){this.#t?.abort(new e.t(e.u.TRANSITION_CANCELLED)),this.#t=null}async#r(t,n,r,i){let a=this.#e,o=()=>this.#n===i&&!r.signal.aborted&&a.isActive();try{if(n.opts.signal){if(n.opts.signal.aborted)throw new e.t(e.u.TRANSITION_CANCELLED,{reason:n.opts.signal.reason});n.opts.signal.addEventListener(`abort`,()=>{r.abort(n.opts.signal?.reason)},{once:!0,signal:r.signal})}if(await t,!o())throw new e.t(e.u.TRANSITION_CANCELLED);return qt(a,n)}catch(e){throw Jt(a,e,n.toState,n.fromState),e}finally{this.#o(r)}}#i(e,t,n,r,i){t&&this.#o(t),n&&r&&Jt(this.#e,e,r,i)}#a(t,n,r,i,a,o){let s=this.#e;if(s.sendLeaveApprove(t,n),s.hasLeaveListeners()){let e=new AbortController,c=s.awaitLeaveListeners(t,n,e.signal);if(c!==void 0)return this.#t=e,this.#r(c,{toState:t,fromState:n,opts:i,toDeactivate:a.toDeactivate,toActivate:a.toActivate,intersection:a.intersection,canDeactivateFunctions:o},e,r)}if(this.#n!==r)throw new e.t(e.u.TRANSITION_CANCELLED)}#o(e){e.abort(),this.#t===e&&(this.#t=null)}#s(t){if(this.#e.isTransitioning()&&(n.logger.warn(`router.navigate`,`Concurrent navigation detected on shared router instance. For SSR, use cloneRouter() to create isolated instance per request.`),this.#t?.abort(new e.t(e.u.TRANSITION_CANCELLED)),this.#e.cancelNavigation()),t?.aborted)throw new e.t(e.u.TRANSITION_CANCELLED,{reason:t.reason})}};const ln={replace:!0};Object.freeze(ln);var un=class{#e;setDependencies(e){this.#e=e}async start(t){let n=this.#e,r=n.getOptions(),i=n.matchPath(t);if(!i&&!r.allowNotFound){let r=new e.t(e.u.ROUTE_NOT_FOUND,{path:t});throw n.emitTransitionError(void 0,void 0,r),r}return n.completeStart(),i?n.navigate(i.name,i.params,ln):n.navigateToNotFound(t)}stop(){this.#e.clearState()}};function Z(e){return e instanceof Error?e:Error(String(e))}function dn(e,t){return Promise.allSettled(e).then(e=>{if(t!==void 0)throw Z(t);let n=e.find(e=>e.status===`rejected`);if(n!==void 0)throw Z(n.reason)})}var Q=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(e.d.ROUTER_START)}emitRouterStop(){this.#t.emit(e.d.ROUTER_STOP)}emitTransitionStart(t,n){this.#t.emit(e.d.TRANSITION_START,t,n)}emitTransitionSuccess(t,n,r){this.#t.emit(e.d.TRANSITION_SUCCESS,t,n,r)}emitTransitionError(t,n,r){this.#t.emit(e.d.TRANSITION_ERROR,t,n,r)}emitTransitionCancel(t,n){this.#t.emit(e.d.TRANSITION_CANCEL,t,n)}emitTransitionLeaveApprove(t,n){this.#t.emit(e.d.TRANSITION_LEAVE_APPROVE,t,n)}sendStart(){this.#e.send(c.START)}sendStop(){this.#e.send(c.STOP)}sendDispose(){this.#e.send(c.DISPOSE)}sendStarted(){this.#e.send(c.STARTED)}sendNavigate(e,t){this.#r=e,this.#e.forceState(s.TRANSITION_STARTED),this.emitTransitionStart(e,t)}sendComplete(e,t,n={}){this.#e.forceState(s.READY),this.emitTransitionSuccess(e,t,n),this.#r===e&&(this.#r=void 0)}sendLeaveApprove(e,t){this.#e.forceState(s.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(c.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(c.CANCEL),this.#r===n&&(this.#r=void 0)}canBeginTransition(){return this.#e.canSend(c.NAVIGATE)}canStart(){return this.#e.canSend(c.START)}canCancel(){return this.#e.canSend(c.CANCEL)}isActive(){let e=this.#e.getState();return e!==s.IDLE&&e!==s.DISPOSED}isDisposed(){return this.#e.getState()===s.DISPOSED}isTransitioning(){let e=this.#e.getState();return e===s.TRANSITION_STARTED||e===s.LEAVE_APPROVED}isLeaveApproved(){return this.#e.getState()===s.LEAVE_APPROVED}isReady(){return this.#e.getState()===s.READY}getCurrentToState(){return this.#r}addEventListener(e,t){return this.#t.on(e,t)}subscribe(t){return this.#t.on(e.d.TRANSITION_SUCCESS,(e,n)=>{t({route:e,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={route:t,nextRoute:e,signal:n},i,a;for(let e of this.#n)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 Z(a);return}return dn(i,a)}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(s.STARTING,c.STARTED,()=>{this.emitRouterStart()}),e.on(s.READY,c.STOP,()=>{this.emitRouterStop()});let t=()=>{let e=this.#i;e!==void 0&&this.emitTransitionCancel(e,this.#a)};e.on(s.TRANSITION_STARTED,c.CANCEL,t),e.on(s.LEAVE_APPROVED,c.CANCEL,t),e.on(s.LEAVE_APPROVED,c.FAIL,()=>{this.#s()}),e.on(s.STARTING,c.FAIL,()=>{this.#s()}),e.on(s.READY,c.FAIL,()=>{this.#s()}),e.on(s.TRANSITION_STARTED,c.FAIL,()=>{this.#s()})}};const fn=new e.t(e.u.ROUTER_ALREADY_STARTED),pn=new Set([`all`,`warn-error`,`error-only`]);function mn(e){return typeof e==`string`&&pn.has(e)}function hn(e){return typeof e==`string`?`"${e}"`:typeof e==`object`?JSON.stringify(e):String(e)}function gn(e){if(typeof e!=`object`||!e)throw TypeError(`Logger config must be an object`);let t=e;for(let e of Object.keys(t))if(e!==`level`&&e!==`callback`)throw TypeError(`Unknown logger config property: "${e}"`);if(`level`in t&&t.level!==void 0&&!mn(t.level))throw TypeError(`Invalid logger level: ${hn(t.level)}. Expected: "all" | "warn-error" | "error-only"`);if(`callback`in t&&t.callback!==void 0&&typeof t.callback!=`function`)throw TypeError(`Logger callback must be a function, got ${typeof t.callback}`);return!0}var _n=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 t.r(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,n)=>{let r=t.r(this.router);return r.validator?.routes.validateStateBuilderArgs(e,n,`forwardState`),r.forwardState(e,n)}}),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 t.r(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:(n,r)=>{let i=t.r(this.router);i.validator?.routes.validateStateBuilderArgs(n,r,`navigate`);let a=i.forwardState(n,r),o=a.name,s=e.i(a.params),c=this.routes.getMetaForState(o);if(c===void 0)return;let l=i.buildPath(o,s);return this.state.makeState(o,s,l,c,!0)},resolveDefault:()=>{let e=this.options.get(),n=t.r(this.router),r=F(e.defaultRoute,e=>this.dependenciesStore.dependencies[e]),i=F(e.defaultParams,e=>this.dependenciesStore.dependencies[e]);return typeof e.defaultRoute==`function`&&n.validator?.options.validateResolvedDefaultRoute(r,n.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(),navigate:(e,t,n)=>this.navigation.navigate(e,t,n),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,n)=>t.r(this.router).buildPath(e,n),getUrlParams:e=>this.routes.getUrlParams(e)})}createCompileFactory(){let{router:e,dependenciesStore:t}=this;return n=>n(e,e=>t.dependencies[e])}};function vn(e){e.wireLimits(),e.wireRouteLifecycleDeps(),e.wireRoutesDeps(),e.wirePluginsDeps(),e.wireNavigationDeps(),e.wireLifecycleDeps(),e.wireStateDeps()}const yn=Object.freeze({});var bn=class r{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;constructor(r=[],i={},a={}){i.logger&&gn(i.logger)&&(n.logger.configure(i.logger),delete i.logger),et.validateOptionsIsObject(i),d(a),r.length>0&&f(r),this.#e=new et(i),this.#t=e.n(i.limits),this.#n=p(a),this.#r=new it,this.#i=new Rt(r,xn(this.#e.get())),this.#a=new ut,this.#o=new ct,this.#s=new cn,this.#c=new un,this.#l=new Q({routerFSM:u(),emitter:new o({onListenerError:(e,t)=>{n.logger.error(`Router`,`Error in listener for ${e}:`,t)},onListenerWarn:(e,t)=>{n.logger.warn(`router.addEventListener`,`Event "${e}" has ${t} listeners — possible memory leak`)}})}),vn(new _n({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 s=new Map;t.i(this,{makeState:(e,t,n,r)=>this.#r.makeState(e,t,n,r),forwardState:t.n(`forwardState`,(e,t)=>this.#i.forwardState(e,t),s),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),buildPath:t.n(`buildPath`,(t,n)=>this.#i.buildPath(t,n??e.s,this.#e.get()),s),emitTransitionError:e=>{this.#l.sendFailSafe(void 0,this.#r.get(),e)},start:t.t(`start`,e=>this.#c.start(e),s),interceptors:s,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}),getLifecycleFactories:()=>this.#a.getFactories(),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}),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,r,i,a){return t.r(this).validator?.routes.validateIsActiveRouteArgs(e,r,i,a),t.r(this).validator?.routes.validateRouteName(e,`isActiveRoute`),e===``?(n.logger.warn(`real-router`,`isActiveRoute("") called with empty string. Root node is not considered a parent of any route.`),!1):this.#i.isActiveRoute(e,r,i,a)}buildPath(n,r){let i=t.r(this);return i.validator?.routes.validateBuildPathArgs(n),i.validator?.navigation.validateParams(r,`buildPath`),i.buildPath(n,e.i(r))}getState(){return this.#r.get()}getPreviousState(){return this.#r.getPrevious()}areStatesEqual(e,n,r=!0){return t.r(this).validator?.state.validateAreStatesEqualArgs(e,n,r),this.#r.areStatesEqual(e,n,r)}shouldUpdateNode(e){return t.r(this).validator?.routes.validateShouldUpdateNodeArgs(e),Rt.shouldUpdateNode(e)}isActive(){return this.#l.isActive()}start(e){if(!this.#l.canStart())return Promise.reject(fn);t.r(this).validator?.navigation.validateStartArgs(e),this.#l.sendStart();let n=t.r(this).start(e).catch(e=>{throw this.#l.isReady()&&(this.#c.stop(),this.#l.sendStop()),e});return r.#d(n),n}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=t.r(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,n){let r=t.r(this);if(r.validator?.routes.validateRouteName(e,`canNavigateTo`),r.validator?.navigation.validateParams(n,`canNavigateTo`),!this.#i.hasRoute(e))return!1;let{name:i,params:a}=r.forwardState(e,n??{}),o=this.#r.makeState(i,a),s=this.#r.get(),{toDeactivate:c,toActivate:l}=J(o,s);return this.#a.canNavigateTo(c,l,o,s)}usePlugin(...e){let n=e.filter(Boolean);if(n.length===0)return()=>{};let r=t.r(this);r.validator?.plugins.validatePluginLimit(this.#o.count(),this.#t);for(let e of n)r.validator?.plugins.validateNoDuplicatePlugins(e,this.#o.getAll());return this.#o.use(...n)}subscribe(e){return Q.validateSubscribeListener(e),this.#l.subscribe(e)}subscribeLeave(e){return Q.validateSubscribeLeaveListener(e),this.#l.subscribeLeave(e)}isLeaveApproved(){return this.#l.isLeaveApproved()}navigate(n,i,a){let o=t.r(this);o.validator?.navigation.validateNavigateArgs(n),o.validator?.navigation.validateParams(i,`navigate`);let s=a??yn;o.validator?.navigation.validateNavigationOptions(s,`navigate`);let c=this.#s.navigate(n,i??e.s,s);return this.#s.lastSyncResolved?this.#s.lastSyncResolved=!1:this.#s.lastSyncRejected?this.#s.lastSyncRejected=!1:r.#d(c),c}navigateToDefault(e){let n=t.r(this);n.validator?.navigation.validateNavigateToDefaultArgs(e);let i=e??yn;n.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:r.#d(a),a}navigateToNotFound(t){if(!this.#l.isActive())throw new e.t(e.u.ROUTER_NOT_STARTED);if(t!==void 0&&typeof t!=`string`)throw TypeError(`[router.navigateToNotFound] path must be a string, got ${typeof t}`);let n=t??this.#r.get().path;return this.#s.navigateToNotFound(n)}static#u=t=>{t instanceof e.t&&(t.code===e.u.SAME_STATES||t.code===e.u.TRANSITION_CANCELLED||t.code===e.u.ROUTER_NOT_STARTED||t.code===e.u.ROUTE_NOT_FOUND)||n.logger.error(`router.navigate`,`Unexpected navigation error`,t)};static#d(e){e.catch(r.#u)}#f(){this.navigate=$,this.navigateToDefault=$,this.navigateToNotFound=$,this.start=$,this.stop=$,this.usePlugin=$,this.subscribe=$,this.subscribeLeave=$,this.canNavigateTo=$}};function $(){throw new e.t(e.u.ROUTER_DISPOSED)}function xn(e){return{strictTrailingSlash:e.trailingSlash===`strict`,strictQueryParams:e.queryParamsMode===`strict`,urlParamsEncoding:e.urlParamsEncoding,queryParams:e.queryParams}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return _t}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return xt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return ht}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return mt}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return bn}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return f}});
6
+ //# sourceMappingURL=Router-n8xC-aPB.js.map