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