@real-router/core 0.93.2 → 0.94.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/cjs/Router-B4zW6o4B.js +2 -0
- package/dist/cjs/Router-B4zW6o4B.js.map +1 -0
- package/dist/cjs/Router.d.ts.map +1 -1
- package/dist/cjs/api/getRoutesApi.d.ts.map +1 -1
- package/dist/cjs/api.js +1 -1
- package/dist/cjs/api.js.map +1 -1
- package/dist/cjs/buildParamMeta-0m11OIJS.js.map +1 -1
- package/dist/cjs/constants.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/internals.d.ts +1 -1
- package/dist/cjs/internals.d.ts.map +1 -1
- package/dist/cjs/types/api.d.ts +9 -0
- package/dist/cjs/types/api.d.ts.map +1 -1
- package/dist/esm/Router-D4YBU3i-.mjs +2 -0
- package/dist/esm/Router-D4YBU3i-.mjs.map +1 -0
- package/dist/esm/Router.d.mts.map +1 -1
- package/dist/esm/api/getRoutesApi.d.mts.map +1 -1
- package/dist/esm/api.mjs +1 -1
- package/dist/esm/api.mjs.map +1 -1
- package/dist/esm/buildParamMeta-D8td47fL.mjs.map +1 -1
- package/dist/esm/constants.d.mts.map +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/internals.d.mts +1 -1
- package/dist/esm/internals.d.mts.map +1 -1
- package/dist/esm/types/api.d.mts +9 -0
- package/dist/esm/types/api.d.mts.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/Router-BWn5CEWM.js +0 -2
- package/dist/cjs/Router-BWn5CEWM.js.map +0 -1
- package/dist/esm/Router-CbLXqy8q.mjs +0 -2
- package/dist/esm/Router-CbLXqy8q.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.d.mts","names":[],"sources":["../../src/Router.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;cAoFa,OACX,qBAAqB,sBAAsB,gCAChC,SAAgB;;GAC1B;;;;;;EA4CC,YAAA,SAAQ,MAAM,iBACd,UAAS,QAAQ,QAAQ,gBACzB,eAAc;
|
|
1
|
+
{"version":3,"file":"Router.d.mts","names":[],"sources":["../../src/Router.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;cAoFa,OACX,qBAAqB,sBAAsB,gCAChC,SAAgB;;GAC1B;;;;;;EA4CC,YAAA,SAAQ,MAAM,iBACd,UAAS,QAAQ,QAAQ,gBACzB,eAAc;EAyXhB,cACE,cACA,SAAS,QACT,SAAS,cACT,0BACA;EAmCF,UAAU,eAAe,SAAS,QAAQ,SAAS;EAgBnD,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;EAuItD,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;EAqDX,kBAAkB,UAAU,oBAAoB,QAAQ;EAiBxD,mBAAmB,gBAAgB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRoutesApi.d.mts","names":[],"sources":["../../../src/api/getRoutesApi.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"getRoutesApi.d.mts","names":[],"sources":["../../../src/api/getRoutesApi.ts"],"mappings":";;;iBAk4BgB,aACd,qBAAqB,sBAAsB,qBAC3C,QAAQ,OAAO,gBAAgB,UAAU"}
|
package/dist/esm/api.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{f as e,u as t}from"./buildParamMeta-D8td47fL.mjs";import{A as n,C as r,D as i,E as a,S as o,T as s,a as c,b as l,c as u,d,f,g as p,h as m,i as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,t as C,u as w,v as T,w as E,x as D,y as ee}from"./Router-CbLXqy8q.mjs";function O(e){if(e())throw new v(n.ROUTER_DISPOSED)}function k(e){if(e())throw new v(n.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 A(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 j(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 M(e){let t=e.indexOf(`?`);return t===-1?e:e.slice(0,t)}function te(e,t,n,r){return n&&M(e)!==M(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 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=new WeakMap;function F(i){let a=P.get(i);if(a)return a;let s=t(i),c={makeState:(t,n,r,i)=>(e(s,`makeState`,t,n),s.validator?.state.validateMakeStateArgs(t,n,i),s.makeState(t,n,r,i)),forwardState:(e,t,n)=>(s.validator?.routes.validateStateBuilderArgs(e,t,`forwardState`),s.forwardState(e,t,n)),matchPath:e=>(s.validator?.routes.validateMatchPathArgs(e),s.matchPath(e,s.getOptions())),navigateToState:(e,t)=>(O(s.isDisposed),s.validator?.navigation.validateNavigateToStateArgs(e),t!==void 0&&s.validator?.navigation.validateNavigationOptions(t,`navigateToState`),s.navigateToState(e,t)),setRootPath:e=>(O(s.isDisposed),k(s.treeChanged.isEmitting),s.validator?.routes.validateSetRootPathArgs(e),te(s.getRootPath(),e,s.isTransitioning(),s.logger)?(s.setRootPath(e),!0):!1),getRootPath:s.getRootPath,addEventListener:(e,t)=>(O(s.isDisposed),s.validator?.eventBus.validateListenerArgs(e,t),s.addEventListener(e,t)),buildNavigationState:(t,n={},i={})=>{e(s,`buildNavigationState`,t,n),s.validator?.routes.validateStateBuilderArgs(t,n,`buildNavigationState`);let a=E(s.port(),t,n,i,{diagnoseUndeclared:!0});if(s.buildStateResolved(a.name,a.path))return o(a,{path:r(a,s.port())})},getOptions:s.getOptions,getTree:s.getTree,addInterceptor:(e,t)=>{O(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=>{O(s.isDisposed);let t=Object.keys(e);for(let e of t)if(e in i)throw new v(n.PLUGIN_CONFLICT,{message:`Cannot extend router: property "${e}" already exists`});for(let n of t)i[n]=e[n];let r={keys:t};s.routerExtensions.push(r);let a=!1;return()=>{if(a)return;a=!0;for(let e of r.keys)delete i[e];let e=s.routerExtensions.indexOf(r);e!==-1&&s.routerExtensions.splice(e,1)}},emitTransitionError:e=>{O(s.isDisposed),s.emitTransitionError(e)},claimContextNamespace:e=>{if(O(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 new v(n.CONTEXT_NAMESPACE_ALREADY_CLAIMED,{message:`Cannot claim context namespace: "${e}" is already claimed by another plugin`});return s.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(){s.contextClaimRecords.delete(e)}}}};return P.set(i,c),c}const I=Object.freeze({replace:!0,revalidate:!0}),L=Object.freeze([]);function R(e,t,n,r){let i=t=>e.has(t);l(t.decoders,i),l(t.encoders,i),l(t.defaultParams,i),l(t.defaultSearch,i),l(t.forwardMap,i),l(t.forwardFnMap,i),l(n,i),l(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 z(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 B(e,t,n,r){let i={name:e.name,path:e.path};return z(i,t,n,r),e.children&&(i.children=e.children.map(e=>B(e,`${t}.${e.name}`,n,r))),i}function V(e,t,n,r){let i={name:e,path:t};return z(i,e,n,r),Object.freeze(i)}function H(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,V(a,s.path,e.config,r)),s.children&&i(s.children,a)}};return i(e.definitions,``),n}function U(e,t){let n=H(e,e=>t.has(e));return Object.freeze([...n.values()])}function W(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(V(e,o.path,n.config,r)),o.children&&a(o.children,e)}};return a(e,t??``),Object.freeze(i)}function G(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 K(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 q(e,t,n,r){c(e,t,n);let i=d(e,t,n,r);T(i.matcher,i.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(i.pendingCanActivate.keys(),i.pendingCanDeactivate.keys(),!1),h(e,i)}function J(e,t){return e.matcher.match(t)?.segments.at(-1)?.fullName}function Y(e,t,n,r,i){if(J(e,r.path)!==i){t.navigateToNotFound(r.path,{skipDeactivation:!0});return}t.systemCommit(n,r,I)}function X(e,t,n,r,i){g(t,`addRoute`),y(t,`addRoute`),S(t,``,`addRoute`),u(t,``,`addRoute`);let a=f(t,e.rootPath,e.matcherOptions,n.logger);T(a.matcher,a.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(a.pendingCanActivate.keys(),a.pendingCanDeactivate.keys(),!0);let o=m(a,e.depsStore);if(e.lifecycleNamespace.clearDefinitionGuards(),h(e,a,o),i?.(),r!==void 0){let t=J(e,r.path),i=n.matchPath(r.path,n.getOptions());if(i)if(i.name===r.name)Y(e,n,{...i,context:r.context,transition:r.transition},r,t);else{let{toActivate:a}=x(i,r,n.getMetaForState);e.lifecycleNamespace.canNavigateTo([],a,i,r)?Y(e,n,{...i,transition:r.transition},r,t):n.navigateToNotFound(r.path,{skipDeactivation:!0})}else n.navigateToNotFound(r.path,{skipDeactivation:!0})}}function Z(e,t,n){let r=e.definitions,i=D(r,t);if(i===void 0)return;let a=n?U(e,i):L;return R(i,e.config,e.routeCustomFields,e.lifecycleNamespace),_(e,r),a}function ne(e,t){let n=e.matcher.getSegmentsByName(t);if(!n)return;let r=s(n.at(-1)),i=e.lifecycleNamespace.getFactories();return B(r,t,e.config,i)}const Q=new WeakMap;function re(e){let r=Q.get(e);if(r)return r;let a=t(e),o=a.routeGetStore(),s=e=>{a.treeChanged.emit(e)},c={add:(e,t)=>{O(a.isDisposed),k(a.treeChanged.isEmitting);let n=Array.isArray(e)?e:[e],r=t?.parent;if(i(n,a.validator),r!==void 0&&a.validator?.routes.validateParentOption(r,o.tree),a.validator?.routes.throwIfInternalRouteInArray(n,`addRoute`),a.validator?.routes.validateAddRouteArgs(n),a.validator?.routes.validateRoutes(n,o,r),q(o,n,r,a.logger),a.treeChanged.listenerCount()>0){let e=W(n,r,o);s(r===void 0?{op:`add`,added:e}:{op:`add`,added:e,parent:r})}},remove:e=>{if(O(a.isDisposed),k(a.treeChanged.isEmitting),a.validator?.routes.validateRemoveRouteArgs(e),a.validator?.routes.throwIfInternalRoute(e,`removeRoute`),w(e,`removeRoute`),!A(e,a.getStateName(),a.logger))return;let t=a.treeChanged.listenerCount()>0,n=Z(o,e,t);if(n===void 0){a.logger.warn(`router.removeRoute`,`Route "${e}" not found. No changes made.`);return}a.isTransitioning()&&j(e,a.logger),t&&s({op:`remove`,name:e,removedSubtree:n})},update:(e,t)=>{if(O(a.isDisposed),k(a.treeChanged.isEmitting),a.validator?.routes.validateUpdateRouteBasicArgs(e,t),a.validator?.routes.throwIfInternalRoute(e,`updateRoute`),w(e,`updateRoute`),a.validator?.routes.validateUpdateRoutePropertyTypes(e,t),a.validator?.routes.validateUpdateRoute(e,t,o),!o.matcher.hasRoute(e))return;a.isTransitioning()&&a.logger.error(`router.updateRoute`,`Updating route "${e}" while navigation is in progress. This may cause unexpected behavior.`);let n=o.lifecycleNamespace,r=b(o,n,e,t);if(a.treeChanged.listenerCount()>0){let t=K(r);Object.keys(t).length>0&&s({op:`update`,name:e,patch:t})}},clear:()=>{if(O(a.isDisposed),k(a.treeChanged.isEmitting),a.getStateName()!==void 0)throw new v(n.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(!N(a.isTransitioning(),a.logger))return;let e=a.treeChanged.listenerCount()>0?Object.freeze([...H(o,()=>!0).values()]):void 0;p(o),o.lifecycleNamespace.clearAll(),e!==void 0&&s({op:`clear`,removed:e})},has:e=>(a.validator?.routes.validateRouteName(e,`hasRoute`),o.matcher.hasRoute(e)),get:e=>(a.validator?.routes.validateRouteName(e,`getRoute`),ne(o,e)),replace:t=>{O(a.isDisposed),k(a.treeChanged.isEmitting);let n=Array.isArray(t)?t:[t];if(!N(a.isTransitioning(),a.logger))return;i(n,a.validator),a.validator?.routes.throwIfInternalRouteInArray(n,`replaceRoutes`),a.validator?.routes.validateAddRouteArgs(n),a.validator?.routes.validateRoutes(n,o);let r=e.getState(),c=a.treeChanged.listenerCount()>0?H(o,()=>!0):void 0;X(o,n,a,r,c===void 0?void 0:()=>{let e=H(o,()=>!0),{removed:t,added:n}=G(c,e);s({op:`replace`,removed:t,added:n})})},subscribeChanges:e=>a.treeChanged.subscribe(e)};return Q.set(e,c),c}function ie(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 ae(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 oe(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`),ie(n.dependenciesGetStore(),e,t,n.validator)},setAll:e=>{O(n.isDisposed);let t=n.dependenciesGetStore();n.validator?.dependencies.validateDependenciesObject(e,`setDependencies`),ae(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 se(e,r,i){let o=t(e);if(o.isDisposed())throw new v(n.ROUTER_DISPOSED);o.validator?.dependencies.validateCloneArgs(r);let s=o.routeGetStore(),c=a(s.tree),l=s.config,u=s.resolvedForwardMap,d=s.routeCustomFields,{options:f,dependencies:p,pluginFactories:m,loggerConfig:h}=o.getCloneState(),{definition:g,external:_}=s.lifecycleNamespace.getFactoriesByOrigin(),y={...p,...r},b=i?.logger?{...h,...i.logger}:h,x=new C(c,{...f,logger:b},y),S=t(x),w=S.routeGetStore(),T=w.lifecycleNamespace;ee(w.config,l),Object.assign(w.resolvedForwardMap,u),Object.assign(w.routeCustomFields,d),s.rootPath!==``&&S.setRootPath(s.rootPath);let[E,D]=g,[O,k]=_;for(let[e,t]of Object.entries(E))T.addCanDeactivate(e,t,!0);for(let[e,t]of Object.entries(D))T.addCanActivate(e,t,!0);let A=$(x);for(let[e,t]of Object.entries(O))A.addDeactivateGuard(e,t);for(let[e,t]of Object.entries(k))A.addActivateGuard(e,t);let j=new Set(S.getCloneState().pluginFactories),M=m.filter(e=>!j.has(e));return M.length>0&&x.usePlugin(...M),x}export{se as cloneRouter,oe as getDependenciesApi,$ as getLifecycleApi,F as getPluginApi,re as getRoutesApi};
|
|
1
|
+
import{f as e,u as t}from"./buildParamMeta-D8td47fL.mjs";import{A as n,C as r,D as i,E as a,S as o,T as s,a as c,b as l,c as u,d,f,g as p,h as m,i as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,t as C,u as w,v as T,w as E,x as D,y as ee}from"./Router-D4YBU3i-.mjs";function O(e){if(e())throw new v(n.ROUTER_DISPOSED)}function k(e){if(e())throw new v(n.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 A(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 j(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 M(e){let t=e.indexOf(`?`);return t===-1?e:e.slice(0,t)}function te(e,t,n,r){return n&&M(e)!==M(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 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=new WeakMap;function F(i){let a=P.get(i);if(a)return a;let s=t(i),c={makeState:(t,n,r,i)=>(e(s,`makeState`,t,n),s.validator?.state.validateMakeStateArgs(t,n,i),s.makeState(t,n,r,i)),forwardState:(e,t,n)=>(s.validator?.routes.validateStateBuilderArgs(e,t,`forwardState`),s.forwardState(e,t,n)),matchPath:e=>(s.validator?.routes.validateMatchPathArgs(e),s.matchPath(e,s.getOptions())),navigateToState:(e,t)=>(O(s.isDisposed),s.validator?.navigation.validateNavigateToStateArgs(e),t!==void 0&&s.validator?.navigation.validateNavigationOptions(t,`navigateToState`),s.navigateToState(e,t)),setRootPath:e=>(O(s.isDisposed),k(s.treeChanged.isEmitting),s.validator?.routes.validateSetRootPathArgs(e),te(s.getRootPath(),e,s.isTransitioning(),s.logger)?(s.setRootPath(e),!0):!1),getRootPath:s.getRootPath,addEventListener:(e,t)=>(O(s.isDisposed),s.validator?.eventBus.validateListenerArgs(e,t),s.addEventListener(e,t)),buildNavigationState:(t,n={},i={})=>{e(s,`buildNavigationState`,t,n),s.validator?.routes.validateStateBuilderArgs(t,n,`buildNavigationState`);let a=E(s.port(),t,n,i,{diagnoseUndeclared:!0});if(s.buildStateResolved(a.name,a.path))return o(a,{path:r(a,s.port())})},getOptions:s.getOptions,getTree:s.getTree,addInterceptor:(e,t)=>{O(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=>{O(s.isDisposed);let t=Object.keys(e);for(let e of t)if(e in i)throw new v(n.PLUGIN_CONFLICT,{message:`Cannot extend router: property "${e}" already exists`});for(let n of t)i[n]=e[n];let r={keys:t};s.routerExtensions.push(r);let a=!1;return()=>{if(a)return;a=!0;for(let e of r.keys)delete i[e];let e=s.routerExtensions.indexOf(r);e!==-1&&s.routerExtensions.splice(e,1)}},emitTransitionError:e=>{O(s.isDisposed),s.emitTransitionError(e)},claimContextNamespace:e=>{if(O(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 new v(n.CONTEXT_NAMESPACE_ALREADY_CLAIMED,{message:`Cannot claim context namespace: "${e}" is already claimed by another plugin`});return s.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(){s.contextClaimRecords.delete(e)}}}};return P.set(i,c),c}const I=Object.freeze({replace:!0,revalidate:!0}),L=Object.freeze([]);function R(e,t,n,r){let i=t=>e.has(t);l(t.decoders,i),l(t.encoders,i),l(t.defaultParams,i),l(t.defaultSearch,i),l(t.forwardMap,i),l(t.forwardFnMap,i),l(n,i),l(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 z(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 B(e,t,n,r){let i={name:e.name,path:e.path};return z(i,t,n,r),e.children&&(i.children=e.children.map(e=>B(e,`${t}.${e.name}`,n,r))),i}function V(e,t,n,r){let i={name:e,path:t};return z(i,e,n,r),Object.freeze(i)}function H(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,V(a,s.path,e.config,r)),s.children&&i(s.children,a)}};return i(e.definitions,``),n}function U(e,t){let n=H(e,e=>t.has(e));return Object.freeze([...n.values()])}function W(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(V(e,o.path,n.config,r)),o.children&&a(o.children,e)}};return a(e,t??``),Object.freeze(i)}function G(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 K(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 q(e,t,n,r){c(e,t,n);let i=d(e,t,n,r);T(i.matcher,i.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(i.pendingCanActivate.keys(),i.pendingCanDeactivate.keys(),!1),h(e,i)}function J(e,t){return e.matcher.match(t)?.segments.at(-1)?.fullName}function Y(e,t,n,r,i){if(J(e,r.path)!==i){t.navigateToNotFound(r.path,{skipDeactivation:!0});return}t.systemCommit(n,r,I)}function X(e,t,n,r,i){g(t,`addRoute`),y(t,`addRoute`),S(t,``,`addRoute`),u(t,``,`addRoute`);let a=f(t,e.rootPath,e.matcherOptions,n.logger);T(a.matcher,a.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(a.pendingCanActivate.keys(),a.pendingCanDeactivate.keys(),!0);let o=m(a,e.depsStore);if(e.lifecycleNamespace.clearDefinitionGuards(),h(e,a,o),i?.(),r!==void 0){let t=J(e,r.path),i=n.matchPath(r.path,n.getOptions());if(i)if(i.name===r.name)Y(e,n,{...i,context:r.context,transition:r.transition},r,t);else{let{toActivate:a}=x(i,r,n.getMetaForState);e.lifecycleNamespace.canNavigateTo([],a,i,r)?Y(e,n,{...i,transition:r.transition},r,t):n.navigateToNotFound(r.path,{skipDeactivation:!0})}else n.navigateToNotFound(r.path,{skipDeactivation:!0})}}function Z(e,t,n){let r=e.definitions,i=D(r,t);if(i===void 0)return;let a=n?U(e,i):L;return R(i,e.config,e.routeCustomFields,e.lifecycleNamespace),_(e,r),a}function ne(e,t){let n=e.matcher.getSegmentsByName(t);if(!n)return;let r=s(n.at(-1)),i=e.lifecycleNamespace.getFactories();return B(r,t,e.config,i)}const Q=new WeakMap;function re(e){let r=Q.get(e);if(r)return r;let a=t(e),o=a.routeGetStore(),s=e=>{a.treeChanged.emit(e)},c={add:(e,t)=>{O(a.isDisposed),k(a.treeChanged.isEmitting);let n=Array.isArray(e)?e:[e],r=t?.parent;if(i(n,a.validator),r!==void 0&&a.validator?.routes.validateParentOption(r,o.tree),a.validator?.routes.throwIfInternalRouteInArray(n,`addRoute`),a.validator?.routes.validateAddRouteArgs(n),a.validator?.routes.validateRoutes(n,o,r),q(o,n,r,a.logger),a.treeChanged.listenerCount()>0){let e=W(n,r,o);s(r===void 0?{op:`add`,added:e}:{op:`add`,added:e,parent:r})}},remove:e=>{if(O(a.isDisposed),k(a.treeChanged.isEmitting),a.validator?.routes.validateRemoveRouteArgs(e),a.validator?.routes.throwIfInternalRoute(e,`removeRoute`),w(e,`removeRoute`),!A(e,a.getStateName(),a.logger))return;let t=a.treeChanged.listenerCount()>0,n=Z(o,e,t);if(n===void 0){a.logger.warn(`router.removeRoute`,`Route "${e}" not found. No changes made.`);return}a.isTransitioning()&&j(e,a.logger),t&&s({op:`remove`,name:e,removedSubtree:n})},update:(e,t)=>{if(O(a.isDisposed),k(a.treeChanged.isEmitting),a.validator?.routes.validateUpdateRouteBasicArgs(e,t),a.validator?.routes.throwIfInternalRoute(e,`updateRoute`),w(e,`updateRoute`),a.validator?.routes.validateUpdateRoutePropertyTypes(e,t),a.validator?.routes.validateUpdateRoute(e,t,o),!o.matcher.hasRoute(e))return;a.isTransitioning()&&a.logger.error(`router.updateRoute`,`Updating route "${e}" while navigation is in progress. This may cause unexpected behavior.`);let n=o.lifecycleNamespace,r=b(o,n,e,t);if(a.treeChanged.listenerCount()>0){let t=K(r);Object.keys(t).length>0&&s({op:`update`,name:e,patch:t})}},clear:()=>{if(O(a.isDisposed),k(a.treeChanged.isEmitting),a.getStateName()!==void 0)throw new v(n.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(!N(a.isTransitioning(),a.logger))return;let e=a.treeChanged.listenerCount()>0?Object.freeze([...H(o,()=>!0).values()]):void 0;p(o),o.lifecycleNamespace.clearAll(),e!==void 0&&s({op:`clear`,removed:e})},has:e=>(a.validator?.routes.validateRouteName(e,`hasRoute`),o.matcher.hasRoute(e)),get:e=>(a.validator?.routes.validateRouteName(e,`getRoute`),ne(o,e)),replace:t=>{O(a.isDisposed),k(a.treeChanged.isEmitting);let n=Array.isArray(t)?t:[t];if(!N(a.isTransitioning(),a.logger))return;i(n,a.validator),a.validator?.routes.throwIfInternalRouteInArray(n,`replaceRoutes`),a.validator?.routes.validateAddRouteArgs(n),a.validator?.routes.validateRoutes(n,o);let r=e.getState(),c=a.treeChanged.listenerCount()>0?H(o,()=>!0):void 0;X(o,n,a,r,c===void 0?void 0:()=>{let e=H(o,()=>!0),{removed:t,added:n}=G(c,e);s({op:`replace`,removed:t,added:n})})},subscribeChanges:e=>a.treeChanged.subscribe(e)};return Q.set(e,c),c}function ie(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 ae(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 oe(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`),ie(n.dependenciesGetStore(),e,t,n.validator)},setAll:e=>{O(n.isDisposed);let t=n.dependenciesGetStore();n.validator?.dependencies.validateDependenciesObject(e,`setDependencies`),ae(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 se(e,r,i){let o=t(e);if(o.isDisposed())throw new v(n.ROUTER_DISPOSED);o.validator?.dependencies.validateCloneArgs(r);let s=o.routeGetStore(),c=a(s.tree),l=s.config,u=s.resolvedForwardMap,d=s.routeCustomFields,{options:f,dependencies:p,pluginFactories:m,loggerConfig:h}=o.getCloneState(),{definition:g,external:_}=s.lifecycleNamespace.getFactoriesByOrigin(),y={...p,...r},b=i?.logger?{...h,...i.logger}:h,x=new C(c,{...f,logger:b},y),S=t(x),w=S.routeGetStore(),T=w.lifecycleNamespace;ee(w.config,l),Object.assign(w.resolvedForwardMap,u),Object.assign(w.routeCustomFields,d),s.rootPath!==``&&S.setRootPath(s.rootPath);let[E,D]=g,[O,k]=_;for(let[e,t]of Object.entries(E))T.addCanDeactivate(e,t,!0);for(let[e,t]of Object.entries(D))T.addCanActivate(e,t,!0);let A=$(x);for(let[e,t]of Object.entries(O))A.addDeactivateGuard(e,t);for(let[e,t]of Object.entries(k))A.addActivateGuard(e,t);let j=new Set(S.getCloneState().pluginFactories),M=m.filter(e=>!j.has(e));return M.length>0&&x.usePlugin(...M),x}export{se as cloneRouter,oe as getDependenciesApi,$ as getLifecycleApi,F as getPluginApi,re as getRoutesApi};
|
|
2
2
|
//# sourceMappingURL=api.mjs.map
|