@real-router/core 0.82.3 → 0.83.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{f as e,u as t}from"./buildParamMeta-D8td47fL.mjs";import{C as n,E as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,h as f,i as p,k as m,l as h,m as g,n as _,o as v,p as y,r as b,s as x,t as S,u as C,v as w,w as T,x as E,y as D}from"./Router-buJrTU63.mjs";function O(e){if(e())throw new _(m.ROUTER_DISPOSED)}function k(e){if(e())throw new _(m.REENTRANT_TREE_MUTATION)}const A=new WeakMap;function j(r){let a=A.get(r);if(a)return a;let o=t(r),s={makeState:(t,n,r,i)=>(e(o,`makeState`,t,n),o.validator?.state.validateMakeStateArgs(t,n,i),o.makeState(t,n,r,i)),forwardState:(e,t,n)=>(o.validator?.routes.validateStateBuilderArgs(e,t,`forwardState`),o.forwardState(e,t,n)),matchPath:e=>(o.validator?.routes.validateMatchPathArgs(e),o.matchPath(e,o.getOptions())),navigateToState:(e,t)=>(O(o.isDisposed),o.validator?.navigation.validateNavigateToStateArgs(e),t!==void 0&&o.validator?.navigation.validateNavigationOptions(t,`navigateToState`),o.navigateToState(e,t)),setRootPath:e=>{O(o.isDisposed),o.validator?.routes.validateSetRootPathArgs(e),o.setRootPath(e)},getRootPath:o.getRootPath,addEventListener:(e,t)=>(O(o.isDisposed),o.validator?.eventBus.validateListenerArgs(e,t),o.addEventListener(e,t)),buildNavigationState:(t,r={},a={})=>{e(o,`buildNavigationState`,t,r),o.validator?.routes.validateStateBuilderArgs(t,r,`buildNavigationState`);let s=n(o.port(),t,r,a,{diagnoseUndeclared:!0});if(o.buildStateResolved(s.name,s.path))return E(s,{path:i(s,o.port())})},getOptions:o.getOptions,getTree:o.getTree,addInterceptor:(e,t)=>{O(o.isDisposed),o.validator?.plugins.validateAddInterceptorArgs(e,t);let n=o.interceptors.get(e);n||(n=[],o.interceptors.set(e,n)),n.push(t);let r=!1;return()=>{r||(r=!0,n.splice(n.indexOf(t),1))}},getRouteConfig:e=>{let t=o.routeGetStore();if(t.matcher.hasRoute(e))return t.routeCustomFields[e]},extendRouter:e=>{O(o.isDisposed);let t=Object.keys(e);for(let e of t)if(e in r)throw new _(m.PLUGIN_CONFLICT,{message:`Cannot extend router: property "${e}" already exists`});for(let n of t)r[n]=e[n];let n={keys:t};o.routerExtensions.push(n);let i=!1;return()=>{if(i)return;i=!0;for(let e of n.keys)delete r[e];let e=o.routerExtensions.indexOf(n);e!==-1&&o.routerExtensions.splice(e,1)}},emitTransitionError:e=>{O(o.isDisposed),o.emitTransitionError(e)},claimContextNamespace:e=>{if(O(o.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(o.contextClaimRecords.has(e))throw new _(m.CONTEXT_NAMESPACE_ALREADY_CLAIMED,{message:`Cannot claim context namespace: "${e}" is already claimed by another plugin`});return o.contextClaimRecords.add(e),{write(t,n){e===`__proto__`?Object.defineProperty(t.context,e,{value:n,writable:!0,enumerable:!0,configurable:!0}):t.context[e]=n},release(){o.contextClaimRecords.delete(e)}}}};return A.set(r,s),s}function M(e,t,n,r){if(t){let n=t===e,i=t.startsWith(`${e}.`);if(n||i){let i=n?``:` (current: "${t}")`;return r.warn(`router.removeRoute`,`Cannot remove route "${e}" — it is currently active${i}. Navigate away first.`),!1}}return n&&r.warn(`router.removeRoute`,`Route "${e}" removed while navigation is in progress. This may cause unexpected behavior.`),!0}function N(e,t){return e?(t.error(`router.clearRoutes`,`Cannot clear routes while navigation is in progress. Wait for navigation to complete.`),!1):!0}const P=Object.freeze({replace:!0,revalidate:!0});function F(e,t,n,r){let i=t=>t===e||t.startsWith(`${e}.`);D(t.decoders,i),D(t.encoders,i),D(t.defaultParams,i),D(t.defaultSearch,i),D(t.forwardMap,i),D(t.forwardFnMap,i),D(n,i),D(t.forwardMap,e=>i(t.forwardMap[e]));let[a,o]=r.getFactories();for(let e of Object.keys(o))i(e)&&r.clearCanActivate(e,`both`);for(let e of Object.keys(a))i(e)&&r.clearCanDeactivate(e,`both`)}function I(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 L(e,t,n,r){let i={name:e.name,path:e.path};return I(i,t,n,r),e.children&&(i.children=e.children.map(e=>L(e,`${t}.${e.name}`,n,r))),i}function R(e,t,n,r){let i={name:e,path:t};return I(i,e,n,r),Object.freeze(i)}function z(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,R(a,s.path,e.config,r)),s.children&&i(s.children,a)}};return i(e.definitions,``),n}function B(e,t){let n=`${t}.`,r=z(e,e=>e===t||e.startsWith(n));return Object.freeze([...r.values()])}function V(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(R(e,o.path,n.config,r)),o.children&&a(o.children,e)}};return a(e,t??``),Object.freeze(i)}function H(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:Object.freeze(n),added:Object.freeze(r)}}function U(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),Object.freeze(t)}function W(e,t,n,r){s(e,t,n);let i=C(e,t,n,r);o(i.matcher,i.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(i.pendingCanActivate.keys(),i.pendingCanDeactivate.keys(),!1),p(e,i)}function G(e,t,n){e.setState(t),e.emitTransitionSuccess(t,n,P)}function K(e,t,n,r,i){l(t,`addRoute`),v(t,``,`addRoute`),x(t,``,`addRoute`);let a=u(t,e.rootPath,e.matcherOptions,n.logger);o(a.matcher,a.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(a.pendingCanActivate.keys(),a.pendingCanDeactivate.keys(),!0);let s=g(a,e.depsStore);if(e.lifecycleNamespace.clearDefinitionGuards(),p(e,a,s),i?.(),r!==void 0){let t=n.matchPath(r.path,n.getOptions());if(t)if(t.name===r.name)G(n,{...t,context:r.context,transition:r.transition},r);else{let{toDeactivate:i,toActivate:a}=b(t,r,n.getMetaForState);e.lifecycleNamespace.canNavigateTo(i,a,t,r)?G(n,{...t,transition:r.transition},r):n.navigateToNotFound(r.path)}else n.navigateToNotFound(r.path)}}function q(e,t){let n=e.definitions;return c(n,t)?(F(t,e.config,e.routeCustomFields,e.lifecycleNamespace),y(e,n),!0):!1}function J(e,t){let n=e.matcher.getSegmentsByName(t);if(!n)return;let r=T(n.at(-1)),i=e.lifecycleNamespace.getFactories();return L(r,t,e.config,i)}const Y=new WeakMap;function X(e){let n=Y.get(e);if(n)return n;let i=t(e),a=i.routeGetStore(),o=e=>{i.treeChanged.emit(e)},s={add:(e,t)=>{O(i.isDisposed),k(i.treeChanged.isEmitting);let n=Array.isArray(e)?e:[e],s=t?.parent;if(r(n,i.validator),s!==void 0&&i.validator?.routes.validateParentOption(s,a.tree),i.validator?.routes.throwIfInternalRouteInArray(n,`addRoute`),i.validator?.routes.validateAddRouteArgs(n),i.validator?.routes.validateRoutes(n,a,s),W(a,n,s,i.logger),i.treeChanged.listenerCount()>0){let e=V(n,s,a);o(s===void 0?{op:`add`,added:e}:{op:`add`,added:e,parent:s})}},remove:e=>{if(O(i.isDisposed),k(i.treeChanged.isEmitting),i.validator?.routes.validateRemoveRouteArgs(e),i.validator?.routes.throwIfInternalRoute(e,`removeRoute`),h(e,`removeRoute`),!M(e,i.getStateName(),i.isTransitioning(),i.logger))return;let t=i.treeChanged.listenerCount()>0?B(a,e):void 0;if(!q(a,e)){i.logger.warn(`router.removeRoute`,`Route "${e}" not found. No changes made.`);return}t!==void 0&&o({op:`remove`,name:e,removedSubtree:t})},update:(e,t)=>{if(O(i.isDisposed),k(i.treeChanged.isEmitting),i.validator?.routes.validateUpdateRouteBasicArgs(e,t),i.validator?.routes.throwIfInternalRoute(e,`updateRoute`),h(e,`updateRoute`),i.validator?.routes.validateUpdateRoutePropertyTypes(e,t),i.isTransitioning()&&i.logger.error(`router.updateRoute`,`Updating route "${e}" while navigation is in progress. This may cause unexpected behavior.`),i.validator?.routes.validateUpdateRoute(e,t,a),!a.matcher.hasRoute(e))return;let n=a.lifecycleNamespace,r=d(a,n,e,t);if(i.treeChanged.listenerCount()>0){let t=U(r);Object.keys(t).length>0&&o({op:`update`,name:e,patch:t})}},clear:()=>{if(O(i.isDisposed),k(i.treeChanged.isEmitting),!N(i.isTransitioning(),i.logger))return;let e=i.treeChanged.listenerCount()>0?Object.freeze([...z(a,()=>!0).values()]):void 0;f(a),a.lifecycleNamespace.clearAll(),i.clearState(),e!==void 0&&o({op:`clear`,removed:e})},has:e=>(i.validator?.routes.validateRouteName(e,`hasRoute`),a.matcher.hasRoute(e)),get:e=>(i.validator?.routes.validateRouteName(e,`getRoute`),J(a,e)),replace:t=>{O(i.isDisposed),k(i.treeChanged.isEmitting);let n=Array.isArray(t)?t:[t];if(!N(i.isTransitioning(),i.logger))return;r(n,i.validator),i.validator?.routes.throwIfInternalRouteInArray(n,`replaceRoutes`),i.validator?.routes.validateAddRouteArgs(n),i.validator?.routes.validateRoutes(n,a);let s=e.getState(),c=i.treeChanged.listenerCount()>0?z(a,()=>!0):void 0;K(a,n,i,s,c===void 0?void 0:()=>{let e=z(a,()=>!0),{removed:t,added:n}=H(c,e);o({op:`replace`,removed:t,added:n})})},subscribeChanges:e=>i.treeChanged.subscribe(e)};return Y.set(e,s),s}function Z(e,t,n,r){if(n!==void 0){if(!Object.hasOwn(e.dependencies,t))r?.dependencies.validateDependencyCount(e,`setDependency`);else{let i=e.dependencies[t];i!==n&&!(Number.isNaN(i)&&Number.isNaN(n))&&r?.dependencies.warnOverwrite(t,`setDependency`)}e.dependencies[t]=n}}function Q(e,t,n){let r=[];for(let i in t)t[i]!==void 0&&(Object.hasOwn(e.dependencies,i)?r.push(i):n?.dependencies.validateDependencyCount(e,`setDependencies`),e.dependencies[i]=t[i]);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:()=>({...n.dependenciesGetStore().dependencies}),set:(e,t)=>{O(n.isDisposed),n.validator?.dependencies.validateSetDependencyArgs(e,t,`setDependency`),Z(n.dependenciesGetStore(),e,t,n.validator)},setAll:e=>{O(n.isDisposed);let t=n.dependenciesGetStore();n.validator?.dependencies.validateDependenciesObject(e,`setDependencies`),Q(t,e,n.validator)},remove:e=>{O(n.isDisposed),n.validator?.dependencies.validateDependencyName(e,`removeDependency`);let t=n.dependenciesGetStore();Object.hasOwn(t.dependencies,e)||n.validator?.dependencies.warnRemoveNonExistent(e),delete t.dependencies[e]},reset:()=>{O(n.isDisposed);let e=n.dependenciesGetStore();e.dependencies=Object.create(null)},has:e=>(n.validator?.dependencies.validateDependencyName(e,`hasDependency`),Object.hasOwn(n.dependenciesGetStore().dependencies,e))}}function $(e){let n=t(e),r=n.routeGetStore().lifecycleNamespace;return{addActivateGuard(e,t){O(n.isDisposed),n.validator?.routes.validateRouteName(e,`addActivateGuard`),n.validator?.lifecycle.validateHandler(t,`addActivateGuard`),r.addCanActivate(e,t)},addDeactivateGuard(e,t){O(n.isDisposed),n.validator?.routes.validateRouteName(e,`addDeactivateGuard`),n.validator?.lifecycle.validateHandler(t,`addDeactivateGuard`),r.addCanDeactivate(e,t)},removeActivateGuard(e){O(n.isDisposed),n.validator?.routes.validateRouteName(e,`removeActivateGuard`),r.clearCanActivate(e,`external`)},removeDeactivateGuard(e){O(n.isDisposed),n.validator?.routes.validateRouteName(e,`removeDeactivateGuard`),r.clearCanDeactivate(e,`external`)}}}function te(e,n,r){let i=t(e);if(i.isDisposed())throw new _(m.ROUTER_DISPOSED);i.validator?.dependencies.validateCloneArgs(n);let o=i.routeGetStore(),s=a(o.tree),c=o.config,l=o.resolvedForwardMap,u=o.routeCustomFields,{options:d,dependencies:f,pluginFactories:p,loggerConfig:h}=i.getCloneState(),{definition:g,external:v}=o.lifecycleNamespace.getFactoriesByOrigin(),y={...f,...n},b=r?.logger?{...h,...r.logger}:h,x=new S(s,{...d,logger:b},y),C=t(x),T=C.routeGetStore(),E=T.lifecycleNamespace;w(T.config,c),Object.assign(T.resolvedForwardMap,l),Object.assign(T.routeCustomFields,u),o.rootPath!==``&&C.setRootPath(o.rootPath);let[D,O]=g,[k,A]=v;for(let[e,t]of Object.entries(D))E.addCanDeactivate(e,t,!0);for(let[e,t]of Object.entries(O))E.addCanActivate(e,t,!0);let j=$(x);for(let[e,t]of Object.entries(k))j.addDeactivateGuard(e,t);for(let[e,t]of Object.entries(A))j.addActivateGuard(e,t);let M=new Set(C.getCloneState().pluginFactories),N=p.filter(e=>!M.has(e));return N.length>0&&x.usePlugin(...N),x}export{te as cloneRouter,ee as getDependenciesApi,$ as getLifecycleApi,j as getPluginApi,X as getRoutesApi};
1
+ import{f as e,u as t}from"./buildParamMeta-D8td47fL.mjs";import{C as n,E as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,h as f,i as p,k as m,l as h,m as g,n as _,o as v,p as y,r as b,s as x,t as S,u as C,v as w,w as T,x as E,y as D}from"./Router-CgPnuV2v.mjs";function O(e){if(e())throw new _(m.ROUTER_DISPOSED)}function k(e){if(e())throw new _(m.REENTRANT_TREE_MUTATION)}const A=new WeakMap;function j(r){let a=A.get(r);if(a)return a;let o=t(r),s={makeState:(t,n,r,i)=>(e(o,`makeState`,t,n),o.validator?.state.validateMakeStateArgs(t,n,i),o.makeState(t,n,r,i)),forwardState:(e,t,n)=>(o.validator?.routes.validateStateBuilderArgs(e,t,`forwardState`),o.forwardState(e,t,n)),matchPath:e=>(o.validator?.routes.validateMatchPathArgs(e),o.matchPath(e,o.getOptions())),navigateToState:(e,t)=>(O(o.isDisposed),o.validator?.navigation.validateNavigateToStateArgs(e),t!==void 0&&o.validator?.navigation.validateNavigationOptions(t,`navigateToState`),o.navigateToState(e,t)),setRootPath:e=>{O(o.isDisposed),o.validator?.routes.validateSetRootPathArgs(e),o.setRootPath(e)},getRootPath:o.getRootPath,addEventListener:(e,t)=>(O(o.isDisposed),o.validator?.eventBus.validateListenerArgs(e,t),o.addEventListener(e,t)),buildNavigationState:(t,r={},a={})=>{e(o,`buildNavigationState`,t,r),o.validator?.routes.validateStateBuilderArgs(t,r,`buildNavigationState`);let s=n(o.port(),t,r,a,{diagnoseUndeclared:!0});if(o.buildStateResolved(s.name,s.path))return E(s,{path:i(s,o.port())})},getOptions:o.getOptions,getTree:o.getTree,addInterceptor:(e,t)=>{O(o.isDisposed),o.validator?.plugins.validateAddInterceptorArgs(e,t);let n=o.interceptors.get(e);n||(n=[],o.interceptors.set(e,n)),n.push(t);let r=!1;return()=>{r||(r=!0,n.splice(n.indexOf(t),1))}},getRouteConfig:e=>{let t=o.routeGetStore();if(t.matcher.hasRoute(e))return t.routeCustomFields[e]},extendRouter:e=>{O(o.isDisposed);let t=Object.keys(e);for(let e of t)if(e in r)throw new _(m.PLUGIN_CONFLICT,{message:`Cannot extend router: property "${e}" already exists`});for(let n of t)r[n]=e[n];let n={keys:t};o.routerExtensions.push(n);let i=!1;return()=>{if(i)return;i=!0;for(let e of n.keys)delete r[e];let e=o.routerExtensions.indexOf(n);e!==-1&&o.routerExtensions.splice(e,1)}},emitTransitionError:e=>{O(o.isDisposed),o.emitTransitionError(e)},claimContextNamespace:e=>{if(O(o.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(o.contextClaimRecords.has(e))throw new _(m.CONTEXT_NAMESPACE_ALREADY_CLAIMED,{message:`Cannot claim context namespace: "${e}" is already claimed by another plugin`});return o.contextClaimRecords.add(e),{write(t,n){e===`__proto__`?Object.defineProperty(t.context,e,{value:n,writable:!0,enumerable:!0,configurable:!0}):t.context[e]=n},release(){o.contextClaimRecords.delete(e)}}}};return A.set(r,s),s}function M(e,t,n,r){if(t){let n=t===e,i=t.startsWith(`${e}.`);if(n||i){let i=n?``:` (current: "${t}")`;return r.warn(`router.removeRoute`,`Cannot remove route "${e}" — it is currently active${i}. Navigate away first.`),!1}}return n&&r.warn(`router.removeRoute`,`Route "${e}" removed while navigation is in progress. This may cause unexpected behavior.`),!0}function N(e,t){return e?(t.error(`router.clearRoutes`,`Cannot clear routes while navigation is in progress. Wait for navigation to complete.`),!1):!0}const P=Object.freeze({replace:!0,revalidate:!0});function F(e,t,n,r){let i=t=>t===e||t.startsWith(`${e}.`);D(t.decoders,i),D(t.encoders,i),D(t.defaultParams,i),D(t.defaultSearch,i),D(t.forwardMap,i),D(t.forwardFnMap,i),D(n,i),D(t.forwardMap,e=>i(t.forwardMap[e]));let[a,o]=r.getFactories();for(let e of Object.keys(o))i(e)&&r.clearCanActivate(e,`both`);for(let e of Object.keys(a))i(e)&&r.clearCanDeactivate(e,`both`)}function I(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 L(e,t,n,r){let i={name:e.name,path:e.path};return I(i,t,n,r),e.children&&(i.children=e.children.map(e=>L(e,`${t}.${e.name}`,n,r))),i}function R(e,t,n,r){let i={name:e,path:t};return I(i,e,n,r),Object.freeze(i)}function z(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,R(a,s.path,e.config,r)),s.children&&i(s.children,a)}};return i(e.definitions,``),n}function B(e,t){let n=`${t}.`,r=z(e,e=>e===t||e.startsWith(n));return Object.freeze([...r.values()])}function V(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(R(e,o.path,n.config,r)),o.children&&a(o.children,e)}};return a(e,t??``),Object.freeze(i)}function H(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:Object.freeze(n),added:Object.freeze(r)}}function U(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),Object.freeze(t)}function W(e,t,n,r){s(e,t,n);let i=C(e,t,n,r);o(i.matcher,i.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(i.pendingCanActivate.keys(),i.pendingCanDeactivate.keys(),!1),p(e,i)}function G(e,t,n){e.setState(t),e.emitTransitionSuccess(t,n,P)}function K(e,t,n,r,i){l(t,`addRoute`),v(t,``,`addRoute`),x(t,``,`addRoute`);let a=u(t,e.rootPath,e.matcherOptions,n.logger);o(a.matcher,a.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(a.pendingCanActivate.keys(),a.pendingCanDeactivate.keys(),!0);let s=g(a,e.depsStore);if(e.lifecycleNamespace.clearDefinitionGuards(),p(e,a,s),i?.(),r!==void 0){let t=n.matchPath(r.path,n.getOptions());if(t)if(t.name===r.name)G(n,{...t,context:r.context,transition:r.transition},r);else{let{toDeactivate:i,toActivate:a}=b(t,r,n.getMetaForState);e.lifecycleNamespace.canNavigateTo(i,a,t,r)?G(n,{...t,transition:r.transition},r):n.navigateToNotFound(r.path)}else n.navigateToNotFound(r.path)}}function q(e,t){let n=e.definitions;return c(n,t)?(F(t,e.config,e.routeCustomFields,e.lifecycleNamespace),y(e,n),!0):!1}function J(e,t){let n=e.matcher.getSegmentsByName(t);if(!n)return;let r=T(n.at(-1)),i=e.lifecycleNamespace.getFactories();return L(r,t,e.config,i)}const Y=new WeakMap;function X(e){let n=Y.get(e);if(n)return n;let i=t(e),a=i.routeGetStore(),o=e=>{i.treeChanged.emit(e)},s={add:(e,t)=>{O(i.isDisposed),k(i.treeChanged.isEmitting);let n=Array.isArray(e)?e:[e],s=t?.parent;if(r(n,i.validator),s!==void 0&&i.validator?.routes.validateParentOption(s,a.tree),i.validator?.routes.throwIfInternalRouteInArray(n,`addRoute`),i.validator?.routes.validateAddRouteArgs(n),i.validator?.routes.validateRoutes(n,a,s),W(a,n,s,i.logger),i.treeChanged.listenerCount()>0){let e=V(n,s,a);o(s===void 0?{op:`add`,added:e}:{op:`add`,added:e,parent:s})}},remove:e=>{if(O(i.isDisposed),k(i.treeChanged.isEmitting),i.validator?.routes.validateRemoveRouteArgs(e),i.validator?.routes.throwIfInternalRoute(e,`removeRoute`),h(e,`removeRoute`),!M(e,i.getStateName(),i.isTransitioning(),i.logger))return;let t=i.treeChanged.listenerCount()>0?B(a,e):void 0;if(!q(a,e)){i.logger.warn(`router.removeRoute`,`Route "${e}" not found. No changes made.`);return}t!==void 0&&o({op:`remove`,name:e,removedSubtree:t})},update:(e,t)=>{if(O(i.isDisposed),k(i.treeChanged.isEmitting),i.validator?.routes.validateUpdateRouteBasicArgs(e,t),i.validator?.routes.throwIfInternalRoute(e,`updateRoute`),h(e,`updateRoute`),i.validator?.routes.validateUpdateRoutePropertyTypes(e,t),i.isTransitioning()&&i.logger.error(`router.updateRoute`,`Updating route "${e}" while navigation is in progress. This may cause unexpected behavior.`),i.validator?.routes.validateUpdateRoute(e,t,a),!a.matcher.hasRoute(e))return;let n=a.lifecycleNamespace,r=d(a,n,e,t);if(i.treeChanged.listenerCount()>0){let t=U(r);Object.keys(t).length>0&&o({op:`update`,name:e,patch:t})}},clear:()=>{if(O(i.isDisposed),k(i.treeChanged.isEmitting),!N(i.isTransitioning(),i.logger))return;let e=i.treeChanged.listenerCount()>0?Object.freeze([...z(a,()=>!0).values()]):void 0;f(a),a.lifecycleNamespace.clearAll(),i.clearState(),e!==void 0&&o({op:`clear`,removed:e})},has:e=>(i.validator?.routes.validateRouteName(e,`hasRoute`),a.matcher.hasRoute(e)),get:e=>(i.validator?.routes.validateRouteName(e,`getRoute`),J(a,e)),replace:t=>{O(i.isDisposed),k(i.treeChanged.isEmitting);let n=Array.isArray(t)?t:[t];if(!N(i.isTransitioning(),i.logger))return;r(n,i.validator),i.validator?.routes.throwIfInternalRouteInArray(n,`replaceRoutes`),i.validator?.routes.validateAddRouteArgs(n),i.validator?.routes.validateRoutes(n,a);let s=e.getState(),c=i.treeChanged.listenerCount()>0?z(a,()=>!0):void 0;K(a,n,i,s,c===void 0?void 0:()=>{let e=z(a,()=>!0),{removed:t,added:n}=H(c,e);o({op:`replace`,removed:t,added:n})})},subscribeChanges:e=>i.treeChanged.subscribe(e)};return Y.set(e,s),s}function Z(e,t,n,r){if(n!==void 0){if(!Object.hasOwn(e.dependencies,t))r?.dependencies.validateDependencyCount(e,`setDependency`);else{let i=e.dependencies[t];i!==n&&!(Number.isNaN(i)&&Number.isNaN(n))&&r?.dependencies.warnOverwrite(t,`setDependency`)}e.dependencies[t]=n}}function Q(e,t,n){let r=[];for(let i in t)t[i]!==void 0&&(Object.hasOwn(e.dependencies,i)?r.push(i):n?.dependencies.validateDependencyCount(e,`setDependencies`),e.dependencies[i]=t[i]);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:()=>({...n.dependenciesGetStore().dependencies}),set:(e,t)=>{O(n.isDisposed),n.validator?.dependencies.validateSetDependencyArgs(e,t,`setDependency`),Z(n.dependenciesGetStore(),e,t,n.validator)},setAll:e=>{O(n.isDisposed);let t=n.dependenciesGetStore();n.validator?.dependencies.validateDependenciesObject(e,`setDependencies`),Q(t,e,n.validator)},remove:e=>{O(n.isDisposed),n.validator?.dependencies.validateDependencyName(e,`removeDependency`);let t=n.dependenciesGetStore();Object.hasOwn(t.dependencies,e)||n.validator?.dependencies.warnRemoveNonExistent(e),delete t.dependencies[e]},reset:()=>{O(n.isDisposed);let e=n.dependenciesGetStore();e.dependencies=Object.create(null)},has:e=>(n.validator?.dependencies.validateDependencyName(e,`hasDependency`),Object.hasOwn(n.dependenciesGetStore().dependencies,e))}}function $(e){let n=t(e),r=n.routeGetStore().lifecycleNamespace;return{addActivateGuard(e,t){O(n.isDisposed),n.validator?.routes.validateRouteName(e,`addActivateGuard`),n.validator?.lifecycle.validateHandler(t,`addActivateGuard`),r.addCanActivate(e,t)},addDeactivateGuard(e,t){O(n.isDisposed),n.validator?.routes.validateRouteName(e,`addDeactivateGuard`),n.validator?.lifecycle.validateHandler(t,`addDeactivateGuard`),r.addCanDeactivate(e,t)},removeActivateGuard(e){O(n.isDisposed),n.validator?.routes.validateRouteName(e,`removeActivateGuard`),r.clearCanActivate(e,`external`)},removeDeactivateGuard(e){O(n.isDisposed),n.validator?.routes.validateRouteName(e,`removeDeactivateGuard`),r.clearCanDeactivate(e,`external`)}}}function te(e,n,r){let i=t(e);if(i.isDisposed())throw new _(m.ROUTER_DISPOSED);i.validator?.dependencies.validateCloneArgs(n);let o=i.routeGetStore(),s=a(o.tree),c=o.config,l=o.resolvedForwardMap,u=o.routeCustomFields,{options:d,dependencies:f,pluginFactories:p,loggerConfig:h}=i.getCloneState(),{definition:g,external:v}=o.lifecycleNamespace.getFactoriesByOrigin(),y={...f,...n},b=r?.logger?{...h,...r.logger}:h,x=new S(s,{...d,logger:b},y),C=t(x),T=C.routeGetStore(),E=T.lifecycleNamespace;w(T.config,c),Object.assign(T.resolvedForwardMap,l),Object.assign(T.routeCustomFields,u),o.rootPath!==``&&C.setRootPath(o.rootPath);let[D,O]=g,[k,A]=v;for(let[e,t]of Object.entries(D))E.addCanDeactivate(e,t,!0);for(let[e,t]of Object.entries(O))E.addCanActivate(e,t,!0);let j=$(x);for(let[e,t]of Object.entries(k))j.addDeactivateGuard(e,t);for(let[e,t]of Object.entries(A))j.addActivateGuard(e,t);let M=new Set(C.getCloneState().pluginFactories),N=p.filter(e=>!M.has(e));return N.length>0&&x.usePlugin(...N),x}export{te as cloneRouter,ee as getDependenciesApi,$ as getLifecycleApi,j as getPluginApi,X as getRoutesApi};
2
2
  //# sourceMappingURL=api.mjs.map
@@ -1,2 +1,2 @@
1
- import{A as e,D as t,O as n,g as r,k as i,n as a,t as o}from"./Router-buJrTU63.mjs";const s=(e=[],t={},n={})=>new o(e,t,n),c=new WeakMap,l=e=>{let t=c.get(e);return t||(t=Object.freeze({navigate:e.navigate,getState:e.getState,isActiveRoute:e.isActiveRoute,canNavigateTo:e.canNavigateTo,subscribe:e.subscribe,subscribeLeave:e.subscribeLeave,isLeaveApproved:e.isLeaveApproved}),c.set(e,t)),t};export{o as Router,a as RouterError,t as UNKNOWN_ROUTE,n as constants,s as createRouter,i as errorCodes,e as events,l as getNavigator,r as resolveForwardChain};
1
+ import{A as e,D as t,O as n,g as r,k as i,n as a,t as o}from"./Router-CgPnuV2v.mjs";const s=(e=[],t={},n={})=>new o(e,t,n),c=new WeakMap,l=e=>{let t=c.get(e);return t||(t=Object.freeze({navigate:e.navigate,getState:e.getState,isActiveRoute:e.isActiveRoute,canNavigateTo:e.canNavigateTo,subscribe:e.subscribe,subscribeLeave:e.subscribeLeave,isLeaveApproved:e.isLeaveApproved}),c.set(e,t)),t};export{o as Router,a as RouterError,t as UNKNOWN_ROUTE,n as constants,s as createRouter,i as errorCodes,e as events,l as getNavigator,r as resolveForwardChain};
2
2
  //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@real-router/core",
3
- "version": "0.82.3",
3
+ "version": "0.83.0",
4
4
  "type": "commonjs",
5
5
  "description": "A simple, powerful, view-agnostic, modular and extensible router",
6
6
  "main": "./dist/cjs/index.js",