@real-router/core 0.121.1 → 0.122.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"Router.d.mts","names":[],"sources":["../../src/Router.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;cA+Fa,OACX,qBAAqB,sBAAsB,gCAChC,SAAgB;;GAC1B;;;;;;EA8CC,YAAA,SAAQ,MAAM,iBACd,UAAS,QAAQ,QAAQ,gBACzB,eAAc;EAmhBhB,cACE,cACA,SAAS,QACT,SAAS,cACT,0BACA;EAwCF,UAAU,eAAe,SAAS,QAAQ,SAAS;EA8BnD,SAAS,UAAU,SAAS,WAAW,MAAM;EAI7C,oBAAoB;EAIpB,eACE,QAAQ,mBACR,QAAQ,mBACR;EAWF,iBACE,oBACE,SAAS,OAAO,YAAY;EAYhC;;;;;;;;;;;;;;EAiBA,MAAM,oBAAoB,QAAQ;EAQlC;EAyBA;EAoDA,cAAc,cAAc,SAAS,QAAQ,SAAS;EAmItD,aACK,UAAU,cAAc,8CAC1B;EAyCH,UAAU,UAAU,cAAc;EAMlC,eAAe,UAAU,UAAU;EAMnC;EAQA,SACE,QAAQ,kBACR,UAAU,oBACT,QAAQ;EACX,SACE,mBACA,cAAc,QACd,cAAc,cACd,UAAU,oBACT,QAAQ;EAsDX,kBAAkB,UAAU,oBAAoB,QAAQ;EAiBxD,mBAAmB,gBAAgB"}
1
+ {"version":3,"file":"Router.d.mts","names":[],"sources":["../../src/Router.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;cA+Fa,OACX,qBAAqB,sBAAsB,gCAChC,SAAgB;;GAC1B;;;;;;EA8CC,YAAA,SAAQ,MAAM,iBACd,UAAS,QAAQ,QAAQ,gBACzB,eAAc;EAqhBhB,cACE,cACA,SAAS,QACT,SAAS,cACT,0BACA;EAwCF,UAAU,eAAe,SAAS,QAAQ,SAAS;EA8BnD,SAAS,UAAU,SAAS,WAAW,MAAM;EAI7C,oBAAoB;EAIpB,eACE,QAAQ,mBACR,QAAQ,mBACR;EAWF,iBACE,oBACE,SAAS,OAAO,YAAY;EAYhC;;;;;;;;;;;;;;EAiBA,MAAM,oBAAoB,QAAQ;EAQlC;EAyBA;EAoDA,cAAc,cAAc,SAAS,QAAQ,SAAS;EAmItD,aACK,UAAU,cAAc,8CAC1B;EAyCH,UAAU,UAAU,cAAc;EAMlC,eAAe,UAAU,UAAU;EAMnC;EAQA,SACE,QAAQ,kBACR,UAAU,oBACT,QAAQ;EACX,SACE,mBACA,cAAc,QACd,cAAc,cACd,UAAU,oBACT,QAAQ;EAsDX,kBAAkB,UAAU,oBAAoB,QAAQ;EAiBxD,mBAAmB,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"getRoutesApi.d.mts","names":[],"sources":["../../../src/api/getRoutesApi.ts"],"mappings":";;;iBA26BgB,aACd,qBAAqB,sBAAsB,qBAC3C,QAAQ,OAAO,gBAAgB,UAAU"}
1
+ {"version":3,"file":"getRoutesApi.d.mts","names":[],"sources":["../../../src/api/getRoutesApi.ts"],"mappings":";;;iBA85BgB,aACd,qBAAqB,sBAAsB,qBAC3C,QAAQ,OAAO,gBAAgB,UAAU"}
package/dist/esm/api.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{_ as e,h as t,y as n}from"./route-name-GJnRPvBX.mjs";import{a as r,m as i}from"./ingest-XMtKw1RB.mjs";import{A as a,C as o,D as s,E as c,M as l,N as u,O as d,S as f,T as p,_ as m,a as h,b as g,c as _,d as v,f as y,g as b,h as x,i as S,j as C,k as w,l as T,m as E,n as D,o as O,p as k,r as ee,s as A,t as te,u as j,v as M,w as N,x as ne}from"./Router-CwtXjQfK.mjs";import{n as P,t as F}from"./RouterError-iSQqAez7.mjs";function I(e){if(e())throw P(new F(i.ROUTER_DISPOSED))}function L(e){if(e())throw P(new F(i.REENTRANT_TREE_MUTATION,{message:`[router] cannot mutate the route tree from inside a subscribeChanges handler — the mutation would run while a TREE_CHANGED emit is on the stack and the tree must stay atomic. Defer it: queueMicrotask(() => routes.add(...)) or await.`}))}function re(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 ie(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 R(e){let t=e.indexOf(`?`);return t===-1?e:e.slice(0,t)}function ae(e,t,n,r){return n&&R(e)!==R(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 z(e,t){return e?(t.error(`router.clearRoutes`,`Cannot clear routes while navigation is in progress. Wait for navigation to complete.`),!1):!0}const oe=Object.freeze,se=Object.keys,B=new WeakMap;function ce(o){let s=B.get(o);if(s)return s;let l=t(o),u={makeState:(t,n,r,i)=>(e(l,`makeState`,t,n),l.validator?.state.validateMakeStateArgs(t,n,i),l.validator?.navigation.validateSearch(r,`makeState`),l.makeState(t,n,r,i)),forwardState:(e,t,n)=>(l.validator?.routes.validateStateBuilderArgs(e,t,`forwardState`),l.validator?.navigation.validateSearch(n,`forwardState`),l.forwardState(e,t,n)),matchPath:e=>(l.validator?.routes.validateMatchPathArgs(e),l.matchPath(e,l.getOptions())),navigateToState:(e,t)=>(I(l.isDisposed),l.validator?.navigation.validateNavigateToStateArgs(e),t!==void 0&&l.validator?.navigation.validateNavigationOptions(t,`navigateToState`),l.navigateToState(e,t)),setRootPath:e=>(I(l.isDisposed),L(l.treeChanged.isEmitting),l.validator?.routes.validateSetRootPathArgs(e),ae(l.getRootPath(),e,l.isTransitioning(),l.logger)?(l.setRootPath(e),!0):!1),getRootPath:l.getRootPath,addEventListener:(e,t)=>(I(l.isDisposed),a(e),l.validator?.eventBus.validateListenerArgs(e,t),l.addEventListener(e,t)),buildNavigationState:(t,r={},i={})=>{e(l,`buildNavigationState`,t,r),l.validator?.navigation.validateSearch(i,`buildNavigationState`),l.validator?.routes.validateStateBuilderArgs(t,r,`buildNavigationState`);let a=c(l.port(),t,r,i,{diagnoseUndeclared:!0});if(l.buildStateResolved(a.name,a.path))return n(`buildNavigationState`,a.name,a.path,l.port().queryNames(a.name)),N(a,p(a,l.port()))},getOptions:l.getOptions,getTree:l.getTree,addInterceptor:(e,t)=>{I(l.isDisposed),l.validator?.plugins.validateAddInterceptorArgs(e,t);let n=l.interceptors.get(e);n||(n=[],l.interceptors.set(e,n)),n.push(t);let r=!1;return()=>{r||(r=!0,n.splice(n.indexOf(t),1))}},getRouteConfig:e=>{let t=l.routeGetStore();if(t.matcher.hasRoute(e))return t.routeCustomFields[e]},extendRouter:e=>{I(l.isDisposed);let t=se(e);for(let e of t)if(e in o)throw P(new F(i.PLUGIN_CONFLICT,{message:`Cannot extend router: property "${e}" already exists`}));for(let n of t)o[n]=e[n];let n={keys:t};l.routerExtensions.push(n);let r=!1;return()=>{if(r)return;r=!0;for(let e of n.keys)delete o[e];let e=l.routerExtensions.indexOf(n);e!==-1&&l.routerExtensions.splice(e,1)}},emitTransitionError:e=>{I(l.isDisposed),l.emitTransitionError(e)},claimContextNamespace:e=>{if(I(l.isDisposed),typeof e!=`string`||e===``)throw TypeError(`[claimContextNamespace] namespace must be a non-empty string, got ${typeof e==`string`?`an empty string`:typeof e}`);if(l.contextClaimRecords.has(e))throw P(new F(i.CONTEXT_NAMESPACE_ALREADY_CLAIMED,{message:`Cannot claim context namespace: "${e}" is already claimed by another plugin`}));let t={write(n,i){l.contextClaimRecords.get(e)===t&&r(n.context,e,i)},release(){l.contextClaimRecords.get(e)===t&&l.contextClaimRecords.delete(e)}};return l.contextClaimRecords.set(e,t),t}},d=oe(u);return B.set(o,d),d}const V=Object.freeze,H=Object.keys,le=Object.freeze({replace:!0,revalidate:!0}),ue=Object.freeze([]);function de(e,t,n,r){let i=t=>e.has(t);f(t.decoders,i),f(t.encoders,i),f(t.defaultParams,i),f(t.defaultSearch,i),f(t.forwardMap,i),f(t.forwardFnMap,i),f(n,i),f(t.forwardMap,e=>i(t.forwardMap[e]));let[a,o]=r.getFactories();for(let e of H(o))i(e)&&r.clearCanActivate(e,`both`);for(let e of H(a))i(e)&&r.clearCanDeactivate(e,`both`)}function U(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(e,t,n,r){let i={name:e.name,path:e.path};return U(i,t,n,r),e.children&&(i.children=e.children.map(e=>W(e,`${t}.${e.name}`,n,r))),i}function G(e,t,n,r){let i={name:e,path:t};return U(i,e,n,r),V(i)}function K(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,G(a,s.path,e.config,r)),s.children&&i(s.children,a)}};return i(e.definitions,``),n}function fe(e,t){let n=K(e,e=>t.has(e));return V([...n.values()])}function pe(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(G(e,o.path,n.config,r)),o.children&&a(o.children,e)}};return a(e,t??``),V(i)}function me(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 he(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 ge(e,t,n,r){let i=M(t);h(e,i,n);let a=y(e,i,n,r);return g(a.matcher,a.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(a.pendingCanActivate.keys(),a.pendingCanDeactivate.keys(),!1),S(e,a),i}function q(e,t){return e.matcher.match(t)?.segments.at(-1)?.fullName}function J(e,t,n,r,i){if(q(e,r.path)!==i){t.revalidateToNotFound(r.path);return}t.systemCommit(n,r,le)}function _e(e,t,n,r,i){let a=M(t);T(a,`addRoute`),v(a,`addRoute`),O(a,`addRoute`),A(a,``,`addRoute`),_(a,``,`addRoute`);let o=k(a,e.rootPath,e.matcherOptions,n.logger);g(o.matcher,o.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(o.pendingCanActivate.keys(),o.pendingCanDeactivate.keys(),!0);let s=b(o,e.depsStore);if(e.lifecycleNamespace.clearDefinitionGuards(),S(e,o,s),i?.(),r!==void 0){let t=q(e,r.path),i=n.matchPath(r.path,n.getOptions());if(i)if(i.name===r.name)J(e,n,{...i,context:r.context,transition:r.transition},r,t);else{let{toActivate:a}=D(i,r,n.getMetaForState);e.lifecycleNamespace.canNavigateTo([],a,i,r)?J(e,n,{...i,transition:r.transition},r,t):n.revalidateToNotFound(r.path)}else n.revalidateToNotFound(r.path)}}function ve(e,t,n){let r=e.definitions,i=o(r,t);if(i===void 0)return;let a=n?fe(e,i):ue;return de(i,e.config,e.routeCustomFields,e.lifecycleNamespace),x(e,r),a}function ye(e,t){let n=e.matcher.getSegmentsByName(t);if(!n)return;let r=s(n.at(-1)),i=e.lifecycleNamespace.getFactories();return W(r,t,e.config,i)}const Y=new WeakMap;function be(e){let n=Y.get(e);if(n)return n;let r=t(e),a=r.routeGetStore(),o=e=>{r.treeChanged.emit(e)},s=V({add:(e,t)=>{I(r.isDisposed),L(r.treeChanged.isEmitting);let n=Array.isArray(e)?e:[e],i=t?.parent;l(n,r.validator),i!==void 0&&r.validator?.routes.validateParentOption(i,a.tree),r.validator?.routes.throwIfInternalRouteInArray(n,`addRoute`),r.validator?.routes.validateAddRouteArgs(n),r.validator?.routes.validateRoutes(n,a,i);let s=ge(a,n,i,r.logger);if(r.treeChanged.listenerCount()>0){let e=pe(s,i,a);o(i===void 0?{op:`add`,added:e}:{op:`add`,added:e,parent:i})}},remove:e=>{if(I(r.isDisposed),L(r.treeChanged.isEmitting),r.validator?.routes.validateRemoveRouteArgs(e),r.validator?.routes.throwIfInternalRoute(e,`removeRoute`),j(e,`removeRoute`),!re(e,r.getStateName(),r.logger))return;let t=r.treeChanged.listenerCount()>0,n=ve(a,e,t);if(n===void 0){r.logger.warn(`router.removeRoute`,`Route "${e}" not found. No changes made.`);return}r.isTransitioning()&&ie(e,r.logger),t&&o({op:`remove`,name:e,removedSubtree:n})},update:(e,t)=>{if(I(r.isDisposed),L(r.treeChanged.isEmitting),r.validator?.routes.validateUpdateRouteBasicArgs(e,t),r.validator?.routes.throwIfInternalRoute(e,`updateRoute`),j(e,`updateRoute`),r.validator?.routes.validateUpdateRoutePropertyTypes(e,t),r.validator?.routes.validateUpdateRoute(e,t,a),!a.matcher.hasRoute(e))return;r.isTransitioning()&&r.logger.error(`router.updateRoute`,`Updating route "${e}" while navigation is in progress. This may cause unexpected behavior.`);let n=a.lifecycleNamespace,i=E(a,n,e,t);if(r.treeChanged.listenerCount()>0){let t=he(i);H(t).length>0&&o({op:`update`,name:e,patch:t})}},clear:()=>{if(I(r.isDisposed),L(r.treeChanged.isEmitting),r.getStateName()!==void 0)throw P(new F(i.ROUTER_NOT_STOPPED,{message:`[router.clear] Cannot clear routes while a state is committed. Use replace(routes) to swap the tree on a running router, or stop() first.`}));if(!z(r.isTransitioning(),r.logger))return;let e=r.treeChanged.listenerCount()>0?V([...K(a,()=>!0).values()]):void 0;m(a),a.lifecycleNamespace.clearAll(),e!==void 0&&o({op:`clear`,removed:e})},has:e=>(r.validator?.routes.validateRouteName(e,`hasRoute`),a.matcher.hasRoute(e)),get:e=>(r.validator?.routes.validateRouteName(e,`getRoute`),ye(a,e)),replace:t=>{I(r.isDisposed),L(r.treeChanged.isEmitting);let n=Array.isArray(t)?t:[t];if(!z(r.isTransitioning(),r.logger))return;l(n,r.validator),r.validator?.routes.throwIfInternalRouteInArray(n,`replaceRoutes`),r.validator?.routes.validateAddRouteArgs(n),r.validator?.routes.validateRoutes(n,a);let i=e.getState(),s=r.treeChanged.listenerCount()>0?K(a,()=>!0):void 0;_e(a,n,r,i,s===void 0?void 0:()=>{let e=K(a,()=>!0),{removed:t,added:n}=me(s,e);o({op:`replace`,removed:t,added:n})})},subscribeChanges:e=>r.treeChanged.subscribe(e)});return Y.set(e,s),s}const xe=Object.create,X=Object.hasOwn,Z=e=>typeof e==`symbol`?e:String(e);function Se(e,t,n,r){if(n===void 0)return;let i=e.dependencies,a=Z(t);if(!X(i,a))r?.dependencies.validateDependencyCount(e,`setDependency`);else{let e=i[a];e!==n&&!(Number.isNaN(e)&&Number.isNaN(n))&&r?.dependencies.warnOverwrite(String(a),`setDependency`)}i[a]=n}function Ce(e,t,n){let r=[],i=e.dependencies;u(t,(t,a)=>{X(i,t)?r.push(t):n?.dependencies.validateDependencyCount(e,`setDependencies`),i[t]=a}),r.length>0&&n?.dependencies.warnBatchOverwrite(r,`setDependencies`)}function we(e){let n=t(e);return{get:e=>{n.validator?.dependencies.validateDependencyName(e,`getDependency`);let t=n.dependenciesGetStore(),r=t.dependencies[e];return n.validator?.dependencies.validateDependencyExists(e,t),r},getAll:()=>{let e=n.dependenciesGetStore().dependencies;return w({...e})},set:(e,t)=>{I(n.isDisposed),n.validator?.dependencies.validateSetDependencyArgs(e,t,`setDependency`),Se(n.dependenciesGetStore(),e,t,n.validator),I(n.isDisposed)},setAll:e=>{I(n.isDisposed);let t=n.dependenciesGetStore();n.validator?.dependencies.validateDependenciesObject(e,`setDependencies`),Ce(t,e,n.validator),I(n.isDisposed)},remove:e=>{I(n.isDisposed),n.validator?.dependencies.validateDependencyName(e,`removeDependency`);let t=n.dependenciesGetStore(),r=Z(e);X(t.dependencies,r)||n.validator?.dependencies.warnRemoveNonExistent(String(r)),delete t.dependencies[r]},reset:()=>{I(n.isDisposed);let e=n.dependenciesGetStore();e.dependencies=xe(null)},has:e=>(n.validator?.dependencies.validateDependencyName(e,`hasDependency`),X(n.dependenciesGetStore().dependencies,e))}}function Q(e){let n=t(e),r=n.routeGetStore().lifecycleNamespace;return{addActivateGuard(e,t){I(n.isDisposed),C(e,`addActivateGuard`),n.validator?.routes.validateRouteName(e,`addActivateGuard`),n.validator?.lifecycle.validateHandler(t,`addActivateGuard`),r.addCanActivate(e,t,!1)},addDeactivateGuard(e,t){I(n.isDisposed),C(e,`addDeactivateGuard`),n.validator?.routes.validateRouteName(e,`addDeactivateGuard`),n.validator?.lifecycle.validateHandler(t,`addDeactivateGuard`),r.addCanDeactivate(e,t,!1)},removeActivateGuard(e){I(n.isDisposed),C(e,`removeActivateGuard`),n.validator?.routes.validateRouteName(e,`removeActivateGuard`),r.clearCanActivate(e,`external`)},removeDeactivateGuard(e){I(n.isDisposed),C(e,`removeDeactivateGuard`),n.validator?.routes.validateRouteName(e,`removeDeactivateGuard`),r.clearCanDeactivate(e,`external`)}}}const $=Object.entries,Te=Object.hasOwn;function Ee(e,n,a){let o=t(e);if(o.isDisposed())throw P(new F(i.ROUTER_DISPOSED));o.validator?.dependencies.validateCloneArgs(n);let s=o.routeGetStore(),c=d(s.tree),l=s.config,f=s.resolvedForwardMap,p=s.routeCustomFields,{options:m,dependencies:h,pluginFactories:g,loggerConfig:_,limits:v,limitKeys:y}=o.getCloneState(),{definition:b,external:x}=s.lifecycleNamespace.getFactoriesByOrigin(),S={...h};n!==void 0&&u(n,(e,t)=>{r(S,e,t)});let C=a?.logger?{..._,...a.logger}:_,w=new te(c,{...m,logger:C,...y!==void 0&&{limits:Object.fromEntries(y.filter(e=>Te(v,e)).map(e=>[e,v[e]]))},...s.matcherOptions?.urlParamsEncoding!==void 0&&{urlParamsEncoding:s.matcherOptions.urlParamsEncoding}},S),T=t(w),E=T.routeGetStore(),D=E.lifecycleNamespace;ne(E.config,l),ee(E,Object.assign(E.resolvedForwardMap,f)),Object.assign(E.routeCustomFields,p),s.rootPath!==``&&T.setRootPath(s.rootPath);let[O,k]=b,[A,j]=x;for(let[e,t]of $(O))D.addCanDeactivate(e,t,!0);for(let[e,t]of $(k))D.addCanActivate(e,t,!0);let M=Q(w);for(let[e,t]of $(A))M.addDeactivateGuard(e,t);for(let[e,t]of $(j))M.addActivateGuard(e,t);let N=new Set(T.getCloneState().pluginFactories),I=g.filter(e=>!N.has(e));return I.length>0&&w.usePlugin(...I),w}export{Ee as cloneRouter,we as getDependenciesApi,Q as getLifecycleApi,ce as getPluginApi,be as getRoutesApi};
1
+ import{a as e,g as t,r as n}from"./internals-DzUTHYrc.mjs";import{a as r,m as i}from"./ingest-XMtKw1RB.mjs";import{A as a,C as o,D as s,E as c,M as l,N as u,O as d,P as ee,S as f,T as p,_ as m,a as h,b as g,c as _,d as v,f as y,g as b,h as x,i as S,j as C,k as w,l as T,m as E,n as D,o as O,p as k,r as te,s as A,t as ne,u as j,v as M,w as N,x as re}from"./Router-D_1pEUTI.mjs";import{n as P,t as F}from"./RouterError-iSQqAez7.mjs";function I(e){if(e())throw P(new F(i.ROUTER_DISPOSED))}function L(e){if(e())throw P(new F(i.REENTRANT_TREE_MUTATION,{message:`[router] cannot mutate the route tree from inside a subscribeChanges handler — the mutation would run while a TREE_CHANGED emit is on the stack and the tree must stay atomic. Defer it: queueMicrotask(() => routes.add(...)) or await.`}))}function ie(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 ae(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 R(e){let t=e.indexOf(`?`);return t===-1?e:e.slice(0,t)}function oe(e,t,n,r){return n&&R(e)!==R(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 z(e,t){return e?(t.error(`router.clearRoutes`,`Cannot clear routes while navigation is in progress. Wait for navigation to complete.`),!1):!0}const se=Object.freeze,ce=Object.keys,B=new WeakMap;function le(a){let o=B.get(a);if(o)return o;let s=n(a),l={makeState:(t,n,r,i)=>(e(s,`makeState`,t,n),s.validator?.state.validateMakeStateArgs(t,n,i),s.validator?.navigation.validateSearch(r,`makeState`),s.makeState(t,n,r,i)),forwardState:(e,t,n)=>(s.validator?.routes.validateStateBuilderArgs(e,t,`forwardState`),s.validator?.navigation.validateSearch(n,`forwardState`),s.forwardState(e,t,n)),matchPath:e=>(s.validator?.routes.validateMatchPathArgs(e),s.matchPath(e,s.getOptions())),navigateToState:(e,t)=>(I(s.isDisposed),s.validator?.navigation.validateNavigateToStateArgs(e),t!==void 0&&s.validator?.navigation.validateNavigationOptions(t,`navigateToState`),s.navigateToState(e,t)),setRootPath:e=>(I(s.isDisposed),L(s.treeChanged.isEmitting),s.validator?.routes.validateSetRootPathArgs(e),oe(s.getRootPath(),e,s.isTransitioning(),s.logger)?(s.setRootPath(e),!0):!1),getRootPath:s.getRootPath,addEventListener:(e,t)=>(I(s.isDisposed),d(e),s.validator?.eventBus.validateListenerArgs(e,t),s.addEventListener(e,t)),buildNavigationState:(n,r={},i={})=>{e(s,`buildNavigationState`,n,r),s.validator?.navigation.validateSearch(i,`buildNavigationState`),s.validator?.routes.validateStateBuilderArgs(n,r,`buildNavigationState`);let a=c(s.port(),n,r,i,{diagnoseUndeclared:!0});if(s.buildStateResolved(a.name,a.path))return t(`buildNavigationState`,a.name,a.path,s.port().queryNames(a.name)),N(a,p(a,s.port()))},getOptions:s.getOptions,getTree:s.getTree,addInterceptor:(e,t)=>{I(s.isDisposed),s.validator?.plugins.validateAddInterceptorArgs(e,t);let n=s.interceptors.get(e);n||(n=[],s.interceptors.set(e,n)),n.push(t);let r=!1;return()=>{r||(r=!0,n.splice(n.indexOf(t),1))}},getRouteConfig:e=>{let t=s.routeGetStore();if(t.matcher.hasRoute(e))return t.routeCustomFields[e]},extendRouter:e=>{I(s.isDisposed);let t=ce(e);for(let e of t)if(e in a)throw P(new F(i.PLUGIN_CONFLICT,{message:`Cannot extend router: property "${e}" already exists`}));let n=t.map(t=>e[t]),r={keys:t};for(let[e,r]of t.entries())a[r]=n[e];s.routerExtensions.push(r);let o=!1;return()=>{if(o)return;o=!0;for(let e of r.keys)delete a[e];let e=s.routerExtensions.indexOf(r);e!==-1&&s.routerExtensions.splice(e,1)}},emitTransitionError:e=>{I(s.isDisposed),s.emitTransitionError(e)},claimContextNamespace:e=>{if(I(s.isDisposed),typeof e!=`string`||e===``)throw TypeError(`[claimContextNamespace] namespace must be a non-empty string, got ${typeof e==`string`?`an empty string`:typeof e}`);if(s.contextClaimRecords.has(e))throw P(new F(i.CONTEXT_NAMESPACE_ALREADY_CLAIMED,{message:`Cannot claim context namespace: "${e}" is already claimed by another plugin`}));let t={write(n,i){s.contextClaimRecords.get(e)===t&&r(n.context,e,i)},release(){s.contextClaimRecords.get(e)===t&&s.contextClaimRecords.delete(e)}};return s.contextClaimRecords.set(e,t),t}},u=se(l);return B.set(a,u),u}const V=Object.freeze,H=Object.keys,ue=Object.freeze({replace:!0,revalidate:!0}),de=Object.freeze([]);function fe(e,t,n,r){let i=t=>e.has(t);f(t.decoders,i),f(t.encoders,i),f(t.defaultParams,i),f(t.defaultSearch,i),f(t.forwardMap,i),f(t.forwardFnMap,i),f(n,i),f(t.forwardMap,e=>i(t.forwardMap[e]));let[a,o]=r.getFactories();for(let e of H(o))i(e)&&r.clearCanActivate(e,`both`);for(let e of H(a))i(e)&&r.clearCanDeactivate(e,`both`)}function U(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(e,t,n,r){let i={name:e.name,path:e.path};return U(i,t,n,r),e.children&&(i.children=e.children.map(e=>W(e,`${t}.${e.name}`,n,r))),i}function G(e,t,n,r){let i={name:e,path:t};return U(i,e,n,r),V(i)}function K(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,G(a,s.path,e.config,r)),s.children&&i(s.children,a)}};return i(e.definitions,``),n}function pe(e,t){let n=K(e,e=>t.has(e));return V([...n.values()])}function me(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(G(e,o.path,n.config,r)),o.children&&a(o.children,e)}};return a(e,t??``),V(i)}function he(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 ge(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 _e(e,t,n,r){h(e,t,n);let i=y(e,t,n,r);g(i.matcher,i.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(i.pendingCanActivate.keys(),i.pendingCanDeactivate.keys(),!1),S(e,i)}function q(e,t){return e.matcher.match(t)?.segments.at(-1)?.fullName}function J(e,t,n,r,i){if(q(e,r.path)!==i){t.revalidateToNotFound(r.path);return}t.systemCommit(n,r,ue)}function ve(e,t,n,r,i){T(t,`addRoute`),v(t,`addRoute`),O(t,`addRoute`),A(t,``,`addRoute`),_(t,``,`addRoute`);let a=k(t,e.rootPath,e.matcherOptions,n.logger);g(a.matcher,a.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(a.pendingCanActivate.keys(),a.pendingCanDeactivate.keys(),!0);let o=b(a,e.depsStore);if(e.lifecycleNamespace.clearDefinitionGuards(),S(e,a,o),i?.(),r!==void 0){let t=q(e,r.path),i=n.matchPath(r.path,n.getOptions());if(i)if(i.name===r.name)J(e,n,{...i,context:r.context,transition:r.transition},r,t);else{let{toActivate:a}=D(i,r,n.getMetaForState);e.lifecycleNamespace.canNavigateTo([],a,i,r)?J(e,n,{...i,transition:r.transition},r,t):n.revalidateToNotFound(r.path)}else n.revalidateToNotFound(r.path)}}function ye(e,t,n){let r=e.definitions,i=o(r,t);if(i===void 0)return;let a=n?pe(e,i):de;return fe(i,e.config,e.routeCustomFields,e.lifecycleNamespace),x(e,r),a}function be(e,t){let n=e.matcher.getSegmentsByName(t);if(!n)return;let r=u(n.at(-1)),i=e.lifecycleNamespace.getFactories();return W(r,t,e.config,i)}const Y=new WeakMap;function xe(e){let t=Y.get(e);if(t)return t;let r=n(e),o=r.routeGetStore(),s=e=>{r.treeChanged.emit(e)},c=V({add:(e,t)=>{I(r.isDisposed),L(r.treeChanged.isEmitting);let n=Array.isArray(e)?e:[e],i=t?.parent;C(n);let c=M(n);if(a(c,r.validator),i!==void 0&&r.validator?.routes.validateParentOption(i,o.tree),r.validator?.routes.throwIfInternalRouteInArray(c,`addRoute`),r.validator?.routes.validateAddRouteArgs(c),r.validator?.routes.validateRoutes(c,o,i),_e(o,c,i,r.logger),r.treeChanged.listenerCount()>0){let e=me(c,i,o);s(i===void 0?{op:`add`,added:e}:{op:`add`,added:e,parent:i})}},remove:e=>{if(I(r.isDisposed),L(r.treeChanged.isEmitting),r.validator?.routes.validateRemoveRouteArgs(e),r.validator?.routes.throwIfInternalRoute(e,`removeRoute`),j(e,`removeRoute`),!ie(e,r.getStateName(),r.logger))return;let t=r.treeChanged.listenerCount()>0,n=ye(o,e,t);if(n===void 0){r.logger.warn(`router.removeRoute`,`Route "${e}" not found. No changes made.`);return}r.isTransitioning()&&ae(e,r.logger),t&&s({op:`remove`,name:e,removedSubtree:n})},update:(e,t)=>{if(I(r.isDisposed),L(r.treeChanged.isEmitting),r.validator?.routes.validateUpdateRouteBasicArgs(e,t),r.validator?.routes.throwIfInternalRoute(e,`updateRoute`),j(e,`updateRoute`),r.validator?.routes.validateUpdateRoutePropertyTypes(e,t),r.validator?.routes.validateUpdateRoute(e,t,o),!o.matcher.hasRoute(e))return;r.isTransitioning()&&r.logger.error(`router.updateRoute`,`Updating route "${e}" while navigation is in progress. This may cause unexpected behavior.`);let n=o.lifecycleNamespace,i=E(o,n,e,t);if(r.treeChanged.listenerCount()>0){let t=ge(i);H(t).length>0&&s({op:`update`,name:e,patch:t})}},clear:()=>{if(I(r.isDisposed),L(r.treeChanged.isEmitting),r.getStateName()!==void 0)throw P(new F(i.ROUTER_NOT_STOPPED,{message:`[router.clear] Cannot clear routes while a state is committed. Use replace(routes) to swap the tree on a running router, or stop() first.`}));if(!z(r.isTransitioning(),r.logger))return;let e=r.treeChanged.listenerCount()>0?V([...K(o,()=>!0).values()]):void 0;m(o),o.lifecycleNamespace.clearAll(),e!==void 0&&s({op:`clear`,removed:e})},has:e=>(r.validator?.routes.validateRouteName(e,`hasRoute`),o.matcher.hasRoute(e)),get:e=>(r.validator?.routes.validateRouteName(e,`getRoute`),be(o,e)),replace:t=>{I(r.isDisposed),L(r.treeChanged.isEmitting);let n=Array.isArray(t)?t:[t];if(!z(r.isTransitioning(),r.logger))return;C(n);let i=M(n);a(i,r.validator),r.validator?.routes.throwIfInternalRouteInArray(i,`replaceRoutes`),r.validator?.routes.validateAddRouteArgs(i),r.validator?.routes.validateRoutes(i,o);let c=e.getState(),l=r.treeChanged.listenerCount()>0?K(o,()=>!0):void 0;ve(o,i,r,c,l===void 0?void 0:()=>{let e=K(o,()=>!0),{removed:t,added:n}=he(l,e);s({op:`replace`,removed:t,added:n})})},subscribeChanges:e=>r.treeChanged.subscribe(e)});return Y.set(e,c),c}const Se=Object.create,X=Object.hasOwn,Z=e=>typeof e==`symbol`?e:String(e);function Ce(e,t,n,r){if(n===void 0)return;let i=e.dependencies,a=Z(t);if(!X(i,a))r?.dependencies.validateDependencyCount(e,`setDependency`);else{let e=i[a];e!==n&&!(Number.isNaN(e)&&Number.isNaN(n))&&r?.dependencies.warnOverwrite(String(a),`setDependency`)}i[a]=n}function we(e,t,n){let r=[],i=e.dependencies;l(t,(t,a)=>{X(i,t)?r.push(t):n?.dependencies.validateDependencyCount(e,`setDependencies`),i[t]=a}),r.length>0&&n?.dependencies.warnBatchOverwrite(r,`setDependencies`)}function Te(e){let t=n(e);return{get:e=>{t.validator?.dependencies.validateDependencyName(e,`getDependency`);let n=t.dependenciesGetStore(),r=n.dependencies[e];return t.validator?.dependencies.validateDependencyExists(e,n),r},getAll:()=>{let e=t.dependenciesGetStore().dependencies;return s({...e})},set:(e,n)=>{I(t.isDisposed),t.validator?.dependencies.validateSetDependencyArgs(e,n,`setDependency`),Ce(t.dependenciesGetStore(),e,n,t.validator),I(t.isDisposed)},setAll:e=>{I(t.isDisposed);let n=t.dependenciesGetStore();t.validator?.dependencies.validateDependenciesObject(e,`setDependencies`),we(n,e,t.validator),I(t.isDisposed)},remove:e=>{I(t.isDisposed),t.validator?.dependencies.validateDependencyName(e,`removeDependency`);let n=t.dependenciesGetStore(),r=Z(e);X(n.dependencies,r)||t.validator?.dependencies.warnRemoveNonExistent(String(r)),delete n.dependencies[r]},reset:()=>{I(t.isDisposed);let e=t.dependenciesGetStore();e.dependencies=Se(null)},has:e=>(t.validator?.dependencies.validateDependencyName(e,`hasDependency`),X(t.dependenciesGetStore().dependencies,e))}}function Q(e){let t=n(e),r=t.routeGetStore().lifecycleNamespace;return{addActivateGuard(e,n){I(t.isDisposed),w(e,`addActivateGuard`),t.validator?.routes.validateRouteName(e,`addActivateGuard`),t.validator?.lifecycle.validateHandler(n,`addActivateGuard`),r.addCanActivate(e,n,!1)},addDeactivateGuard(e,n){I(t.isDisposed),w(e,`addDeactivateGuard`),t.validator?.routes.validateRouteName(e,`addDeactivateGuard`),t.validator?.lifecycle.validateHandler(n,`addDeactivateGuard`),r.addCanDeactivate(e,n,!1)},removeActivateGuard(e){I(t.isDisposed),w(e,`removeActivateGuard`),t.validator?.routes.validateRouteName(e,`removeActivateGuard`),r.clearCanActivate(e,`external`)},removeDeactivateGuard(e){I(t.isDisposed),w(e,`removeDeactivateGuard`),t.validator?.routes.validateRouteName(e,`removeDeactivateGuard`),r.clearCanDeactivate(e,`external`)}}}const $=Object.entries,Ee=Object.hasOwn;function De(e,t,a){let o=n(e);if(o.isDisposed())throw P(new F(i.ROUTER_DISPOSED));o.validator?.dependencies.validateCloneArgs(t);let s=o.routeGetStore(),c=ee(s.tree),u=s.config,d=s.resolvedForwardMap,f=s.routeCustomFields,{options:p,dependencies:m,pluginFactories:h,loggerConfig:g,limits:_,limitKeys:v}=o.getCloneState(),{definition:y,external:b}=s.lifecycleNamespace.getFactoriesByOrigin(),x={...m};t!==void 0&&l(t,(e,t)=>{r(x,e,t)});let S=a?.logger?{...g,...a.logger}:g,C=new ne(c,{...p,logger:S,...v!==void 0&&{limits:Object.fromEntries(v.filter(e=>Ee(_,e)).map(e=>[e,_[e]]))},...s.matcherOptions?.urlParamsEncoding!==void 0&&{urlParamsEncoding:s.matcherOptions.urlParamsEncoding}},x),w=n(C),T=w.routeGetStore(),E=T.lifecycleNamespace;re(T.config,u),te(T,Object.assign(T.resolvedForwardMap,d)),Object.assign(T.routeCustomFields,f),s.rootPath!==``&&w.setRootPath(s.rootPath);let[D,O]=y,[k,A]=b;for(let[e,t]of $(D))E.addCanDeactivate(e,t,!0);for(let[e,t]of $(O))E.addCanActivate(e,t,!0);let j=Q(C);for(let[e,t]of $(k))j.addDeactivateGuard(e,t);for(let[e,t]of $(A))j.addActivateGuard(e,t);let M=new Set(w.getCloneState().pluginFactories),N=h.filter(e=>!M.has(e));return N.length>0&&C.usePlugin(...N),C}export{De as cloneRouter,Te as getDependenciesApi,Q as getLifecycleApi,le as getPluginApi,xe as getRoutesApi};
2
2
  //# sourceMappingURL=api.mjs.map