@real-router/core 0.131.0 → 0.132.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/api.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{_ as e,i as t,o as n}from"./internals-CcqRqpm9.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,F as l,M as u,N as d,O as f,P as p,S as m,T as h,_ as ee,a as g,b as te,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 ne,s as A,t as re,u as j,w as M,x as N,y as P}from"./Router-6i5tIy-l.mjs";import{l as ie,n as F,r as I,t as L}from"./RouterError-4CmDe8Nu.mjs";function R(e){if(e())throw F(new L(i.ROUTER_DISPOSED))}function z(e,t){if(e())throw F(new L(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.`}));if(t())throw F(new L(i.REENTRANT_TREE_MUTATION,{message:`[router] 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 ae(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 oe(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 B(e){let t=e.indexOf(`?`);return t===-1?e:e.slice(0,t)}function se(e,t,n,r){return n&&B(e)!==B(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 V(e,t){return!e||(t.error(`router.clearRoutes`,`Cannot clear routes while navigation is in progress. Wait for navigation to complete.`),!1)}const ce=Object.freeze,le=Object.keys,H=new WeakMap;function ue(a){let c=H.get(a);if(c)return c;let l=t(a),u={makeState:(e,t,r,i)=>{n(l,`makeState`,e,t);let a=I(t);return l.validator?.state.validateMakeStateArgs(e,a,i),l.validator?.navigation.validateSearch(r,`makeState`),l.makeState(e,a,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)=>(R(l.isDisposed),l.validator?.navigation.validateNavigateToStateArgs(e),t!==void 0&&l.validator?.navigation.validateNavigationOptions(t,`navigateToState`),l.navigateToState(e,t)),setRootPath:e=>(R(l.isDisposed),z(l.treeChanged.isEmitting,()=>l.routeGetStore().revalidating),l.validator?.routes.validateSetRootPathArgs(e),se(l.getRootPath(),e,l.isTransitioning(),l.logger)?(l.setRootPath(e),!0):!1),getRootPath:l.getRootPath,addEventListener:(e,t)=>(R(l.isDisposed),s(e),w(t),l.validator?.eventBus.validateListenerArgs(e,t),l.addEventListener(e,t)),buildNavigationState:(t,r={},i={})=>{n(l,`buildNavigationState`,t,r);let a=I(r);l.validator?.navigation.validateSearch(i,`buildNavigationState`),l.validator?.routes.validateStateBuilderArgs(t,a,`buildNavigationState`);let s=h(l.port(),t,a,i,{diagnoseUndeclared:!0});if(l.buildStateResolved(s.name,s.path))return e(`buildNavigationState`,s.name,s.path,l.port().queryNames(s.name)),o(s,M(s,l.port()))},getOptions:l.getOptions,getTree:l.getTree,addInterceptor:(e,t)=>{R(l.isDisposed),f(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=>{R(l.isDisposed);let t=le(e);for(let e of t)if(e in a)throw F(new L(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];l.routerExtensions.push(r);let o=!1;return()=>{if(o)return;o=!0;for(let e of r.keys)delete a[e];let e=l.routerExtensions.indexOf(r);e!==-1&&l.routerExtensions.splice(e,1)}},emitTransitionError:e=>{R(l.isDisposed),l.emitTransitionError(e)},claimContextNamespace:e=>{if(R(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 F(new L(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=ce(u);return H.set(a,d),d}const U=Object.freeze,W=Object.keys,de=Object.freeze({replace:!0,revalidate:!0}),fe=Object.freeze([]);function pe(e,t,n,r){let i=t=>e.has(t);N(t.decoders,i),N(t.encoders,i),N(t.defaultParams,i),N(t.defaultSearch,i),N(t.forwardMap,i),N(t.forwardFnMap,i),N(n,i),N(t.forwardMap,e=>i(t.forwardMap[e]));let[a,o]=r.getFactories();for(let e of W(o))i(e)&&r.clearCanActivate(e,`both`);for(let e of W(a))i(e)&&r.clearCanDeactivate(e,`both`)}function G(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 K(e,t,n,i){let a={name:e.name,path:e.path};return G(a,t,n,i),e.children&&r(a,`children`,e.children.map(e=>K(e,`${t}.${e.name}`,n,i))),a}function q(e,t,n,r){let i={name:e,path:t};return G(i,e,n,r),U(i)}function J(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,q(a,s.path,e.config,r)),s.children&&i(s.children,a)}};return i(e.definitions,``),n}function me(e,t){let n=J(e,e=>t.has(e));return U([...n.values()])}function he(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(q(e,o.path,n.config,r)),o.children&&a(o.children,e)}};return a(e,t??``),U(i)}function ge(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:U(n),added:U(r)}}function _e(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),U(t)}function ve(e,t,n,r){g(e,t,n);let i=y(e,t,n,r);P(i.matcher,i.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(i.pendingCanActivate.keys(),i.pendingCanDeactivate.keys(),!1),S(e,i)}function Y(e,t,n){e.systemCommit(t,n,de)}function ye(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);P(a.matcher,a.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(a.pendingCanActivate.keys(),a.pendingCanDeactivate.keys(),!0);let o=b(a,e.depsStore);e.lifecycleNamespace.clearDefinitionGuards(),S(e,a,o),e.revalidating=!0;try{if(i?.(),r!==void 0){let t=n.matchPath(r.path,n.getOptions());if(t){if(t.name===r.name)Y(n,{...t,context:r.context,transition:r.transition},r);else{let{toDeactivate:i,toActivate:a,intersection:o}=D(t,r,n.getMetaForState);if(e.lifecycleNamespace.canNavigateTo([],a,t,r)){let e={phase:`activating`,from:r.name,reason:`success`,replace:!0,segments:{deactivated:i,activated:a,intersection:o}};Y(n,{...t,transition:e},r)}else n.revalidateToNotFound(r.path)}}else n.revalidateToNotFound(r.path)}}finally{e.revalidating=!1}}function be(e,t,n){let r=e.definitions,i=m(r,t);if(i===void 0)return;let a=n?me(e,i):fe;return pe(i,e.config,e.routeCustomFields,e.lifecycleNamespace),x(e,r),a}function xe(e,t){let n=e.matcher.getSegmentsByName(t);if(!n)return;let r=n.at(-1),i=p(r),a=e.lifecycleNamespace.getFactories();return K(i,t,e.config,a)}const X=new WeakMap;function Se(e){let n=X.get(e);if(n)return n;let r=t(e),a=r.routeGetStore(),o=e=>{r.treeChanged.emit(e)},s=U({add:(e,t)=>{R(r.isDisposed),z(r.treeChanged.isEmitting,()=>a.revalidating);let n=Array.isArray(e)?e:[e],i=t?.parent,s=u(n);if(C(s,r.validator),i!==void 0&&r.validator?.routes.validateParentOption(i,a.tree),r.validator?.routes.throwIfInternalRouteInArray(s,`addRoute`),r.validator?.routes.validateAddRouteArgs(s),r.validator?.routes.validateRoutes(s,a,i),ve(a,s,i,r.logger),r.treeChanged.listenerCount()>0){let e=he(s,i,a);o(i===void 0?{op:`add`,added:e}:{op:`add`,added:e,parent:i})}},remove:e=>{if(R(r.isDisposed),z(r.treeChanged.isEmitting,()=>a.revalidating),r.validator?.routes.validateRemoveRouteArgs(e),r.validator?.routes.throwIfInternalRoute(e,`removeRoute`),j(e,`removeRoute`),!ae(e,r.getStateName(),r.logger))return;let t=r.treeChanged.listenerCount()>0,n=be(a,e,t);if(n===void 0){r.logger.warn(`router.removeRoute`,`Route "${e}" not found. No changes made.`);return}r.isTransitioning()&&oe(e,r.logger),t&&o({op:`remove`,name:e,removedSubtree:n})},update:(e,t)=>{if(R(r.isDisposed),z(r.treeChanged.isEmitting,()=>a.revalidating),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=_e(i);W(t).length>0&&o({op:`update`,name:e,patch:t})}},clear:()=>{if(R(r.isDisposed),z(r.treeChanged.isEmitting,()=>a.revalidating),r.getStateName()!==void 0)throw F(new L(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(!V(r.isTransitioning(),r.logger))return;let e=r.treeChanged.listenerCount()>0?U([...J(a,()=>!0).values()]):void 0;ee(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`),xe(a,e)),replace:t=>{R(r.isDisposed),z(r.treeChanged.isEmitting,()=>a.revalidating);let n=Array.isArray(t)?t:[t];if(!V(r.isTransitioning(),r.logger))return;let i=u(n);C(i,r.validator),r.validator?.routes.throwIfInternalRouteInArray(i,`replaceRoutes`),r.validator?.routes.validateAddRouteArgs(i),r.validator?.routes.validateRoutes(i,a);let s=e.getState(),c=r.treeChanged.listenerCount()>0?J(a,()=>!0):void 0;ye(a,i,r,s,c===void 0?void 0:()=>{let e=J(a,()=>!0),{removed:t,added:n}=ge(c,e);o({op:`replace`,removed:t,added:n})})},subscribeChanges:e=>r.treeChanged.subscribe(e)});return X.set(e,s),s}const Ce=Object.create,Z=Object.hasOwn,Q=e=>typeof e==`symbol`?e:String(e);function we(e,t,n,r){if(n===void 0)return;let i=e.dependencies,a=Q(t);if(!Z(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 Te(e,t,n){let r=[],i=e.dependencies;d(t,(t,a)=>{Z(i,t)?r.push(t):n?.dependencies.validateDependencyCount(e,`setDependencies`),c(i,t,a)}),r.length>0&&n?.dependencies.warnBatchOverwrite(r,`setDependencies`)}function Ee(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 ie({...e})},set:(e,t)=>{R(n.isDisposed),n.validator?.dependencies.validateSetDependencyArgs(e,t,`setDependency`),we(n.dependenciesGetStore(),e,t,n.validator),R(n.isDisposed)},setAll:e=>{R(n.isDisposed);let t=n.dependenciesGetStore();n.validator?.dependencies.validateDependenciesObject(e,`setDependencies`),Te(t,e,n.validator),R(n.isDisposed)},remove:e=>{R(n.isDisposed),n.validator?.dependencies.validateDependencyName(e,`removeDependency`);let t=n.dependenciesGetStore(),r=Q(e);Z(t.dependencies,r)||n.validator?.dependencies.warnRemoveNonExistent(String(r)),delete t.dependencies[r]},reset:()=>{R(n.isDisposed);let e=n.dependenciesGetStore();e.dependencies=Ce(null)},has:e=>(n.validator?.dependencies.validateDependencyName(e,`hasDependency`),Z(n.dependenciesGetStore().dependencies,e))}}function De(e){let n=t(e),r=n.routeGetStore().lifecycleNamespace;return{addActivateGuard(e,t){R(n.isDisposed),a(e,`addActivateGuard`),n.validator?.routes.validateRouteName(e,`addActivateGuard`),n.validator?.lifecycle.validateHandler(t,`addActivateGuard`),r.addCanActivate(e,t,!1)},addDeactivateGuard(e,t){R(n.isDisposed),a(e,`addDeactivateGuard`),n.validator?.routes.validateRouteName(e,`addDeactivateGuard`),n.validator?.lifecycle.validateHandler(t,`addDeactivateGuard`),r.addCanDeactivate(e,t,!1)},removeActivateGuard(e){R(n.isDisposed),a(e,`removeActivateGuard`),n.validator?.routes.validateRouteName(e,`removeActivateGuard`),r.clearCanActivate(e,`external`)},removeDeactivateGuard(e){R(n.isDisposed),a(e,`removeDeactivateGuard`),n.validator?.routes.validateRouteName(e,`removeDeactivateGuard`),r.clearCanDeactivate(e,`external`)}}}const $=Object.entries,Oe=Object.hasOwn;function ke(e,n,a){let o=t(e);if(o.isDisposed())throw F(new L(i.ROUTER_DISPOSED));o.validator?.dependencies.validateCloneArgs(n);let s=o.routeGetStore(),c=l(s.tree),u=s.config,f=s.resolvedForwardMap,p=s.routeCustomFields,{options:m,dependencies:h,pluginFactories:ee,loggerConfig:g,limits:_,limitKeys:v}=o.getCloneState(),{definition:y,external:b}=s.lifecycleNamespace.getFactoriesByOrigin(),x={...h};n!==void 0&&d(n,(e,t)=>{r(x,e,t)});let S=a?.logger,C=S?{...g,...S}:g,w=new re(c,{...m,...s.matcherOptions?.queryParams!==void 0&&{queryParams:s.matcherOptions.queryParams},logger:C,...v!==void 0&&{limits:Object.fromEntries(v.filter(e=>Oe(_,e)).map(e=>[e,_[e]]))},...s.matcherOptions?.urlParamsEncoding!==void 0&&{urlParamsEncoding:s.matcherOptions.urlParamsEncoding}},x),T=t(w),E=T.routeGetStore(),D=E.lifecycleNamespace;te(E.config,u),ne(E,Object.assign(E.resolvedForwardMap,f)),Object.assign(E.routeCustomFields,p),s.rootPath!==``&&T.setRootPath(s.rootPath);let[O,k]=y,[A,j]=b;for(let[e,t]of $(O))D.addCanDeactivate(e,t,!0);for(let[e,t]of $(k))D.addCanActivate(e,t,!0);let M=De(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),P=ee.filter(e=>!N.has(e));return P.length>0&&w.usePlugin(...P),w}export{ke as cloneRouter,Ee as getDependenciesApi,De as getLifecycleApi,ue as getPluginApi,Se as getRoutesApi};
1
+ import{_ as e,i as t,o as n}from"./internals-CcqRqpm9.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,F as l,M as u,N as d,O as f,P as p,S as m,T as h,_ as ee,a as g,b as te,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 ne,s as A,t as re,u as j,w as M,x as N,y as P}from"./Router-XS6ZEO6L.mjs";import{l as ie,n as F,r as I,t as L}from"./RouterError-4CmDe8Nu.mjs";function R(e){if(e())throw F(new L(i.ROUTER_DISPOSED))}function z(e,t){if(e())throw F(new L(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.`}));if(t())throw F(new L(i.REENTRANT_TREE_MUTATION,{message:`[router] 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 ae(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 oe(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 B(e){let t=e.indexOf(`?`);return t===-1?e:e.slice(0,t)}function se(e,t,n,r){return n&&B(e)!==B(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 V(e,t){return!e||(t.error(`router.clearRoutes`,`Cannot clear routes while navigation is in progress. Wait for navigation to complete.`),!1)}const ce=Object.freeze,le=Object.keys,H=new WeakMap;function ue(a){let c=H.get(a);if(c)return c;let l=t(a),u={makeState:(e,t,r,i)=>{n(l,`makeState`,e,t);let a=I(t);return l.validator?.state.validateMakeStateArgs(e,a,i),l.validator?.navigation.validateSearch(r,`makeState`),l.makeState(e,a,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)=>(R(l.isDisposed),l.validator?.navigation.validateNavigateToStateArgs(e),t!==void 0&&l.validator?.navigation.validateNavigationOptions(t,`navigateToState`),l.navigateToState(e,t)),setRootPath:e=>(R(l.isDisposed),z(l.treeChanged.isEmitting,()=>l.routeGetStore().revalidating),l.validator?.routes.validateSetRootPathArgs(e),se(l.getRootPath(),e,l.isTransitioning(),l.logger)?(l.setRootPath(e),!0):!1),getRootPath:l.getRootPath,addEventListener:(e,t)=>(R(l.isDisposed),s(e),w(t),l.validator?.eventBus.validateListenerArgs(e,t),l.addEventListener(e,t)),buildNavigationState:(t,r={},i={})=>{n(l,`buildNavigationState`,t,r);let a=I(r);l.validator?.navigation.validateSearch(i,`buildNavigationState`),l.validator?.routes.validateStateBuilderArgs(t,a,`buildNavigationState`);let s=h(l.port(),t,a,i,{diagnoseUndeclared:!0});if(l.buildStateResolved(s.name,s.path))return e(`buildNavigationState`,s.name,s.path,l.port().queryNames(s.name)),o(s,M(s,l.port()))},getOptions:l.getOptions,getTree:l.getTree,addInterceptor:(e,t)=>{R(l.isDisposed),f(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=>{R(l.isDisposed);let t=le(e);for(let e of t)if(e in a)throw F(new L(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];l.routerExtensions.push(r);let o=!1;return()=>{if(o)return;o=!0;for(let e of r.keys)delete a[e];let e=l.routerExtensions.indexOf(r);e!==-1&&l.routerExtensions.splice(e,1)}},emitTransitionError:e=>{R(l.isDisposed),l.emitTransitionError(e)},claimContextNamespace:e=>{if(R(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 F(new L(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=ce(u);return H.set(a,d),d}const U=Object.freeze,W=Object.keys,de=Object.freeze({replace:!0,revalidate:!0}),fe=Object.freeze([]);function pe(e,t,n,r){let i=t=>e.has(t);N(t.decoders,i),N(t.encoders,i),N(t.defaultParams,i),N(t.defaultSearch,i),N(t.forwardMap,i),N(t.forwardFnMap,i),N(n,i),N(t.forwardMap,e=>i(t.forwardMap[e]));let[a,o]=r.getFactories();for(let e of W(o))i(e)&&r.clearCanActivate(e,`both`);for(let e of W(a))i(e)&&r.clearCanDeactivate(e,`both`)}function G(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 K(e,t,n,i){let a={name:e.name,path:e.path};return G(a,t,n,i),e.children&&r(a,`children`,e.children.map(e=>K(e,`${t}.${e.name}`,n,i))),a}function q(e,t,n,r){let i={name:e,path:t};return G(i,e,n,r),U(i)}function J(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,q(a,s.path,e.config,r)),s.children&&i(s.children,a)}};return i(e.definitions,``),n}function me(e,t){let n=J(e,e=>t.has(e));return U([...n.values()])}function he(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(q(e,o.path,n.config,r)),o.children&&a(o.children,e)}};return a(e,t??``),U(i)}function ge(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:U(n),added:U(r)}}function _e(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),U(t)}function ve(e,t,n,r){g(e,t,n);let i=y(e,t,n,r);P(i.matcher,i.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(i.pendingCanActivate.keys(),i.pendingCanDeactivate.keys(),!1),S(e,i)}function Y(e,t,n){e.systemCommit(t,n,de)}function ye(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);P(a.matcher,a.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(a.pendingCanActivate.keys(),a.pendingCanDeactivate.keys(),!0);let o=b(a,e.depsStore);e.lifecycleNamespace.clearDefinitionGuards(),S(e,a,o),e.revalidating=!0;try{if(i?.(),r!==void 0){let t=n.matchPath(r.path,n.getOptions());if(t){if(t.name===r.name)Y(n,{...t,context:r.context,transition:r.transition},r);else{let{toDeactivate:i,toActivate:a,intersection:o}=D(t,r,n.getMetaForState);if(e.lifecycleNamespace.canNavigateTo([],a,t,r)){let e={phase:`activating`,from:r.name,reason:`success`,replace:!0,segments:{deactivated:i,activated:a,intersection:o}};Y(n,{...t,transition:e},r)}else n.revalidateToNotFound(r.path)}}else n.revalidateToNotFound(r.path)}}finally{e.revalidating=!1}}function be(e,t,n){let r=e.definitions,i=m(r,t);if(i===void 0)return;let a=n?me(e,i):fe;return pe(i,e.config,e.routeCustomFields,e.lifecycleNamespace),x(e,r),a}function xe(e,t){let n=e.matcher.getSegmentsByName(t);if(!n)return;let r=n.at(-1),i=p(r),a=e.lifecycleNamespace.getFactories();return K(i,t,e.config,a)}const X=new WeakMap;function Se(e){let n=X.get(e);if(n)return n;let r=t(e),a=r.routeGetStore(),o=e=>{r.treeChanged.emit(e)},s=U({add:(e,t)=>{R(r.isDisposed),z(r.treeChanged.isEmitting,()=>a.revalidating);let n=Array.isArray(e)?e:[e],i=t?.parent,s=u(n);if(C(s,r.validator),i!==void 0&&r.validator?.routes.validateParentOption(i,a.tree),r.validator?.routes.throwIfInternalRouteInArray(s,`addRoute`),r.validator?.routes.validateAddRouteArgs(s),r.validator?.routes.validateRoutes(s,a,i),ve(a,s,i,r.logger),r.treeChanged.listenerCount()>0){let e=he(s,i,a);o(i===void 0?{op:`add`,added:e}:{op:`add`,added:e,parent:i})}},remove:e=>{if(R(r.isDisposed),z(r.treeChanged.isEmitting,()=>a.revalidating),r.validator?.routes.validateRemoveRouteArgs(e),r.validator?.routes.throwIfInternalRoute(e,`removeRoute`),j(e,`removeRoute`),!ae(e,r.getStateName(),r.logger))return;let t=r.treeChanged.listenerCount()>0,n=be(a,e,t);if(n===void 0){r.logger.warn(`router.removeRoute`,`Route "${e}" not found. No changes made.`);return}r.isTransitioning()&&oe(e,r.logger),t&&o({op:`remove`,name:e,removedSubtree:n})},update:(e,t)=>{if(R(r.isDisposed),z(r.treeChanged.isEmitting,()=>a.revalidating),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=_e(i);W(t).length>0&&o({op:`update`,name:e,patch:t})}},clear:()=>{if(R(r.isDisposed),z(r.treeChanged.isEmitting,()=>a.revalidating),r.getStateName()!==void 0)throw F(new L(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(!V(r.isTransitioning(),r.logger))return;let e=r.treeChanged.listenerCount()>0?U([...J(a,()=>!0).values()]):void 0;ee(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`),xe(a,e)),replace:t=>{R(r.isDisposed),z(r.treeChanged.isEmitting,()=>a.revalidating);let n=Array.isArray(t)?t:[t];if(!V(r.isTransitioning(),r.logger))return;let i=u(n);C(i,r.validator),r.validator?.routes.throwIfInternalRouteInArray(i,`replaceRoutes`),r.validator?.routes.validateAddRouteArgs(i),r.validator?.routes.validateRoutes(i,a);let s=e.getState(),c=r.treeChanged.listenerCount()>0?J(a,()=>!0):void 0;ye(a,i,r,s,c===void 0?void 0:()=>{let e=J(a,()=>!0),{removed:t,added:n}=ge(c,e);o({op:`replace`,removed:t,added:n})})},subscribeChanges:e=>r.treeChanged.subscribe(e)});return X.set(e,s),s}const Ce=Object.create,Z=Object.hasOwn,Q=e=>typeof e==`symbol`?e:String(e);function we(e,t,n,r){if(n===void 0)return;let i=e.dependencies,a=Q(t);if(!Z(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 Te(e,t,n){let r=[],i=e.dependencies;d(t,(t,a)=>{Z(i,t)?r.push(t):n?.dependencies.validateDependencyCount(e,`setDependencies`),c(i,t,a)}),r.length>0&&n?.dependencies.warnBatchOverwrite(r,`setDependencies`)}function Ee(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 ie({...e})},set:(e,t)=>{R(n.isDisposed),n.validator?.dependencies.validateSetDependencyArgs(e,t,`setDependency`),we(n.dependenciesGetStore(),e,t,n.validator),R(n.isDisposed)},setAll:e=>{R(n.isDisposed);let t=n.dependenciesGetStore();n.validator?.dependencies.validateDependenciesObject(e,`setDependencies`),Te(t,e,n.validator),R(n.isDisposed)},remove:e=>{R(n.isDisposed),n.validator?.dependencies.validateDependencyName(e,`removeDependency`);let t=n.dependenciesGetStore(),r=Q(e);Z(t.dependencies,r)||n.validator?.dependencies.warnRemoveNonExistent(String(r)),delete t.dependencies[r]},reset:()=>{R(n.isDisposed);let e=n.dependenciesGetStore();e.dependencies=Ce(null)},has:e=>(n.validator?.dependencies.validateDependencyName(e,`hasDependency`),Z(n.dependenciesGetStore().dependencies,e))}}function De(e){let n=t(e),r=n.routeGetStore().lifecycleNamespace;return{addActivateGuard(e,t){R(n.isDisposed),a(e,`addActivateGuard`),n.validator?.routes.validateRouteName(e,`addActivateGuard`),n.validator?.lifecycle.validateHandler(t,`addActivateGuard`),r.addCanActivate(e,t,!1)},addDeactivateGuard(e,t){R(n.isDisposed),a(e,`addDeactivateGuard`),n.validator?.routes.validateRouteName(e,`addDeactivateGuard`),n.validator?.lifecycle.validateHandler(t,`addDeactivateGuard`),r.addCanDeactivate(e,t,!1)},removeActivateGuard(e){R(n.isDisposed),a(e,`removeActivateGuard`),n.validator?.routes.validateRouteName(e,`removeActivateGuard`),r.clearCanActivate(e,`external`)},removeDeactivateGuard(e){R(n.isDisposed),a(e,`removeDeactivateGuard`),n.validator?.routes.validateRouteName(e,`removeDeactivateGuard`),r.clearCanDeactivate(e,`external`)}}}const $=Object.entries,Oe=Object.hasOwn;function ke(e,n,a){let o=t(e);if(o.isDisposed())throw F(new L(i.ROUTER_DISPOSED));o.validator?.dependencies.validateCloneArgs(n);let s=o.routeGetStore(),c=l(s.tree),u=s.config,f=s.resolvedForwardMap,p=s.routeCustomFields,{options:m,dependencies:h,pluginFactories:ee,loggerConfig:g,limits:_,limitKeys:v}=o.getCloneState(),{definition:y,external:b}=s.lifecycleNamespace.getFactoriesByOrigin(),x={...h};n!==void 0&&d(n,(e,t)=>{r(x,e,t)});let S=a?.logger,C=S?{...g,...S}:g,w=new re(c,{...m,...s.matcherOptions?.queryParams!==void 0&&{queryParams:s.matcherOptions.queryParams},logger:C,...v!==void 0&&{limits:Object.fromEntries(v.filter(e=>Oe(_,e)).map(e=>[e,_[e]]))},...s.matcherOptions?.urlParamsEncoding!==void 0&&{urlParamsEncoding:s.matcherOptions.urlParamsEncoding}},x),T=t(w),E=T.routeGetStore(),D=E.lifecycleNamespace;te(E.config,u),ne(E,Object.assign(E.resolvedForwardMap,f)),Object.assign(E.routeCustomFields,p),s.rootPath!==``&&T.setRootPath(s.rootPath);let[O,k]=y,[A,j]=b;for(let[e,t]of $(O))D.addCanDeactivate(e,t,!0);for(let[e,t]of $(k))D.addCanActivate(e,t,!0);let M=De(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),P=ee.filter(e=>!N.has(e));return P.length>0&&w.usePlugin(...P),w}export{ke as cloneRouter,Ee as getDependenciesApi,De as getLifecycleApi,ue as getPluginApi,Se as getRoutesApi};
2
2
  //# sourceMappingURL=api.mjs.map
@@ -0,0 +1,27 @@
1
+ import { Params } from "../types/base.mjs";
2
+ //#region src/channels/guard.d.ts
3
+ /**
4
+ * THE predicate of the always-on channel guard: the first key the caller put in
5
+ * the PATH bag while the route declares it as a QUERY param, or `undefined`
6
+ * when the bag is channel-correct.
7
+ *
8
+ * A DETECTOR, not a normaliser — the key is never moved. There is no stage ②
9
+ * and no `separateChannels`: channel-correctness is the producer's contract,
10
+ * not a repair the pipeline performs behind everyone's back.
11
+ *
12
+ * Scans `queryNames` (a route's declared query names — small, cached) rather
13
+ * than the bag, so there is no `Object.keys` allocation, and short-circuits on
14
+ * a route with no query declarations, which is the common case.
15
+ *
16
+ * `undefined` is absence on both sides (#1550 / #1551), so an
17
+ * `undefined`-valued key is NOT a mis-channel: it is the documented removal
18
+ * marker `persistent-params` relies on, and it never reaches a built state
19
+ * anyway. A name that also occupies a path slot (`/items/:id?id`) is absent
20
+ * from `queryNames` by construction (#843 / #1549 carve-out), so the collision
21
+ * form is legitimately path-owned and passes.
22
+ *
23
+ * @internal
24
+ */
25
+ export declare function findMisChanneledKey(params: Params | undefined, queryNames: readonly string[]): string | undefined;
26
+ //#endregion
27
+ //# sourceMappingURL=guard.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard.d.mts","names":[],"sources":["../../../src/channels/guard.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;wBAuCgB,oBACd,QAAQ,oBACR"}
@@ -1,2 +1,2 @@
1
- import{d as e,h as t,m as n,p as r}from"./ingest-XMtKw1RB.mjs";import{t as i,v as a}from"./Router-6i5tIy-l.mjs";import{t as o}from"./RouterError-4CmDe8Nu.mjs";const s=(e=[],t={},n={})=>new i(e,t,n),c=Object.freeze,l=new WeakMap,u=e=>{let t=l.get(e);return t||(t=c({navigate:e.navigate,getState:e.getState,isActiveRoute:e.isActiveRoute,canNavigateTo:e.canNavigateTo,subscribe:e.subscribe,subscribeLeave:e.subscribeLeave,isLeaveApproved:e.isLeaveApproved}),l.set(e,t)),t};export{i as Router,o as RouterError,e as UNKNOWN_ROUTE,r as constants,s as createRouter,n as errorCodes,t as events,u as getNavigator,a as resolveForwardChain};
1
+ import{d as e,h as t,m as n,p as r}from"./ingest-XMtKw1RB.mjs";import{t as i,v as a}from"./Router-XS6ZEO6L.mjs";import{t as o}from"./RouterError-4CmDe8Nu.mjs";const s=(e=[],t={},n={})=>new i(e,t,n),c=Object.freeze,l=new WeakMap,u=e=>{let t=l.get(e);return t||(t=c({navigate:e.navigate,getState:e.getState,isActiveRoute:e.isActiveRoute,canNavigateTo:e.canNavigateTo,subscribe:e.subscribe,subscribeLeave:e.subscribeLeave,isLeaveApproved:e.isLeaveApproved}),l.set(e,t)),t};export{i as Router,o as RouterError,e as UNKNOWN_ROUTE,r as constants,s as createRouter,n as errorCodes,t as events,u as getNavigator,a as resolveForwardChain};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -13,7 +13,7 @@ export interface RouterValidator {
13
13
  * Route validation methods
14
14
  */
15
15
  routes: {
16
- validateBuildPathArgs: (route: unknown) => void;
16
+ validateBuildPathArgs: (route: unknown, params: unknown) => void;
17
17
  validateMatchPathArgs: (path: unknown) => void;
18
18
  validateIsActiveRouteArgs: (name: unknown, params: unknown, strict: unknown, ignoreQP: unknown) => void;
19
19
  validateShouldUpdateNodeArgs: (name: unknown) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"RouterValidator.d.mts","names":[],"sources":["../../../src/types/RouterValidator.ts"],"mappings":";;;;;;;;;;iBAUiB;;;;EAIf;IACE,wBAAwB;IACxB,wBAAwB;IACxB,4BACE,eACA,iBACA,iBACA;IAEF,+BAA+B;IAC/B,2BACE,eACA,iBACA;IAEF,uBAAuB;IACvB,iBACE,mBACA,eACA;IAEF,0BAA0B;IAC1B,+BAA+B,eAAe;IAC9C,mCAAmC,cAAc;IACjD,sBACE,cACA,kBACA;IAEF,uBAAuB,iBAAiB;IACxC,oBAAoB,eAAe;IACnC,uBAAuB,eAAe;IACtC,8BAA8B,mBAAmB;IACjD,0BAA0B;IAC1B,sBAAsB;IACtB,wBAAwB;;;;;EAM1B;IACE,kBAAkB,kBAAkB;IACpC,+BAA+B,oBAAoB;;;;;EAMrD;IACE,yBAAyB,eAAe;IACxC,4BACE,eACA,gBACA;IAEF,6BAA6B,eAAe;IAC5C,2BAA2B,cAAc;IACzC,0BAA0B,gBAAgB;IAC1C,oBAAoB;IACpB,gBAAgB,cAAc;IAC9B,qBAAqB,gBAAgB;IACrC,wBAAwB;;;;;EAM1B;IACE,sBAAsB,eAAe;IACrC,6BACE,kBACA;IAEF,qBAAqB;IACrB,0BAA0B;IAC1B,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;;;;;EAMzB;IACE,kBAAkB,kBAAkB;IACpC,uBAAuB,eAAe;IACtC,0BAA0B,eAAe;IACzC,gBAAgB,cAAc,cAAc;IAC5C,qBAAqB,cAAc;;;;;EAMrC;IACE,uBAAuB;IACvB,gCAAgC;IAChC,8BAA8B;IAC9B,4BAA4B,kBAAkB;IAC9C,iBAAiB,iBAAiB;;;;;;;;IAQlC,sBAAsB,iBAAiB;;;;;;;;IAQvC,iBAAiB,iBAAiB;IAClC,oBAAoB;;;;;EAMtB;IACE,wBACE,eACA,iBACA;IAEF,6BACE,aACA,aACA;;;;;;;;;;;;IAaF,wBAAwB,mBAAmB;;IAG3C,2BAA2B,mBAAmB;;;;;EAMhD;IACE,uBAAuB,eAAe;IACtC,0BACE,eACA,mBACA"}
1
+ {"version":3,"file":"RouterValidator.d.mts","names":[],"sources":["../../../src/types/RouterValidator.ts"],"mappings":";;;;;;;;;;iBAUiB;;;;EAIf;IACE,wBAAwB,gBAAgB;IACxC,wBAAwB;IACxB,4BACE,eACA,iBACA,iBACA;IAEF,+BAA+B;IAC/B,2BACE,eACA,iBACA;IAEF,uBAAuB;IACvB,iBACE,mBACA,eACA;IAEF,0BAA0B;IAC1B,+BAA+B,eAAe;IAC9C,mCAAmC,cAAc;IACjD,sBACE,cACA,kBACA;IAEF,uBAAuB,iBAAiB;IACxC,oBAAoB,eAAe;IACnC,uBAAuB,eAAe;IACtC,8BAA8B,mBAAmB;IACjD,0BAA0B;IAC1B,sBAAsB;IACtB,wBAAwB;;;;;EAM1B;IACE,kBAAkB,kBAAkB;IACpC,+BAA+B,oBAAoB;;;;;EAMrD;IACE,yBAAyB,eAAe;IACxC,4BACE,eACA,gBACA;IAEF,6BAA6B,eAAe;IAC5C,2BAA2B,cAAc;IACzC,0BAA0B,gBAAgB;IAC1C,oBAAoB;IACpB,gBAAgB,cAAc;IAC9B,qBAAqB,gBAAgB;IACrC,wBAAwB;;;;;EAM1B;IACE,sBAAsB,eAAe;IACrC,6BACE,kBACA;IAEF,qBAAqB;IACrB,0BAA0B;IAC1B,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;;;;;EAMzB;IACE,kBAAkB,kBAAkB;IACpC,uBAAuB,eAAe;IACtC,0BAA0B,eAAe;IACzC,gBAAgB,cAAc,cAAc;IAC5C,qBAAqB,cAAc;;;;;EAMrC;IACE,uBAAuB;IACvB,gCAAgC;IAChC,8BAA8B;IAC9B,4BAA4B,kBAAkB;IAC9C,iBAAiB,iBAAiB;;;;;;;;IAQlC,sBAAsB,iBAAiB;;;;;;;;IAQvC,iBAAiB,iBAAiB;IAClC,oBAAoB;;;;;EAMtB;IACE,wBACE,eACA,iBACA;IAEF,6BACE,aACA,aACA;;;;;;;;;;;;IAaF,wBAAwB,mBAAmB;;IAG3C,2BAA2B,mBAAmB;;;;;EAMhD;IACE,uBAAuB,eAAe;IACtC,0BACE,eACA,mBACA"}
@@ -3,4 +3,5 @@ import { Matcher } from "./engine/createMatcher.mjs";
3
3
  import { validateRoute } from "./engine/validation/route-batch.mjs";
4
4
  import { RouterValidator } from "./types/RouterValidator.mjs";
5
5
  import { RouterInternals, getInternals } from "./internals.mjs";
6
- export { type Matcher, type RouteTree, type RouterInternals, type RouterValidator, getInternals, validateRoute };
6
+ import { findMisChanneledKey } from "./channels/guard.mjs";
7
+ export { type Matcher, type RouteTree, type RouterInternals, type RouterValidator, findMisChanneledKey, getInternals, validateRoute };
@@ -1 +1 @@
1
- import{i as e,s as t}from"./internals-CcqRqpm9.mjs";export{e as getInternals,t as validateRoute};
1
+ import{i as e,s as t,v as n}from"./internals-CcqRqpm9.mjs";export{n as findMisChanneledKey,e as getInternals,t as validateRoute};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@real-router/core",
3
- "version": "0.131.0",
3
+ "version": "0.132.0",
4
4
  "type": "commonjs",
5
5
  "description": "A simple, powerful, view-agnostic, modular and extensible router",
6
6
  "main": "./dist/cjs/index.js",