@real-router/core 0.156.0 → 0.158.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.
Files changed (59) hide show
  1. package/README.md +9 -4
  2. package/dist/cjs/Router-CjpauUGY.js +2 -0
  3. package/dist/cjs/Router-CjpauUGY.js.map +1 -0
  4. package/dist/cjs/api.js +1 -1
  5. package/dist/cjs/api.js.map +1 -1
  6. package/dist/cjs/helpers-iJq-DSS7.js +2 -0
  7. package/dist/cjs/helpers-iJq-DSS7.js.map +1 -0
  8. package/dist/cjs/helpers.d.ts +29 -0
  9. package/dist/cjs/helpers.d.ts.map +1 -1
  10. package/dist/cjs/index.js +1 -1
  11. package/dist/cjs/index.js.map +1 -1
  12. package/dist/cjs/internals-CGNdQfzl.js +2 -0
  13. package/dist/cjs/internals-CGNdQfzl.js.map +1 -0
  14. package/dist/cjs/pipeline/port.d.ts +17 -3
  15. package/dist/cjs/pipeline/port.d.ts.map +1 -1
  16. package/dist/cjs/types/RouterValidator.d.ts +18 -12
  17. package/dist/cjs/types/RouterValidator.d.ts.map +1 -1
  18. package/dist/cjs/types/router.d.ts +8 -0
  19. package/dist/cjs/types/router.d.ts.map +1 -1
  20. package/dist/cjs/utils.js +1 -1
  21. package/dist/cjs/validation.d.ts +2 -1
  22. package/dist/cjs/validation.js +1 -1
  23. package/dist/esm/Router-Dt2la4K2.mjs +2 -0
  24. package/dist/esm/Router-Dt2la4K2.mjs.map +1 -0
  25. package/dist/esm/api.mjs +1 -1
  26. package/dist/esm/api.mjs.map +1 -1
  27. package/dist/esm/helpers-D5eyVTyF.mjs +2 -0
  28. package/dist/esm/helpers-D5eyVTyF.mjs.map +1 -0
  29. package/dist/esm/helpers.d.mts +29 -0
  30. package/dist/esm/helpers.d.mts.map +1 -1
  31. package/dist/esm/index.mjs +1 -1
  32. package/dist/esm/index.mjs.map +1 -1
  33. package/dist/esm/internals-CLQmmAMr.mjs +2 -0
  34. package/dist/esm/{internals-D-5hS0qt.mjs.map → internals-CLQmmAMr.mjs.map} +1 -1
  35. package/dist/esm/pipeline/port.d.mts +17 -3
  36. package/dist/esm/pipeline/port.d.mts.map +1 -1
  37. package/dist/esm/types/RouterValidator.d.mts +18 -12
  38. package/dist/esm/types/RouterValidator.d.mts.map +1 -1
  39. package/dist/esm/types/router.d.mts +8 -0
  40. package/dist/esm/types/router.d.mts.map +1 -1
  41. package/dist/esm/utils.mjs +1 -1
  42. package/dist/esm/validation.d.mts +2 -1
  43. package/dist/esm/validation.mjs +1 -1
  44. package/package.json +1 -1
  45. package/dist/cjs/Router-TI0TlO7k.js +0 -2
  46. package/dist/cjs/Router-TI0TlO7k.js.map +0 -1
  47. package/dist/cjs/RouterError-aGkUvcJJ.js +0 -2
  48. package/dist/cjs/RouterError-aGkUvcJJ.js.map +0 -1
  49. package/dist/cjs/helpers-DdpDlqWS.js +0 -2
  50. package/dist/cjs/helpers-DdpDlqWS.js.map +0 -1
  51. package/dist/cjs/internals-BZATS0c4.js +0 -2
  52. package/dist/cjs/internals-BZATS0c4.js.map +0 -1
  53. package/dist/esm/Router-BmEfUCfN.mjs +0 -2
  54. package/dist/esm/Router-BmEfUCfN.mjs.map +0 -1
  55. package/dist/esm/RouterError-DyPeuufj.mjs +0 -2
  56. package/dist/esm/RouterError-DyPeuufj.mjs.map +0 -1
  57. package/dist/esm/helpers-BXXeSrT8.mjs +0 -2
  58. package/dist/esm/helpers-BXXeSrT8.mjs.map +0 -1
  59. package/dist/esm/internals-D-5hS0qt.mjs +0 -2
package/dist/cjs/api.js CHANGED
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./RouterError-aGkUvcJJ.js"),t=require("./internals-BZATS0c4.js"),n=require("./Router-TI0TlO7k.js"),r=require("./helpers-DdpDlqWS.js"),i=e.i(`router`);function a(t,n){if(t())throw i.code(e.b.REENTRANT_TREE_MUTATION)`cannot mutate the route tree from inside a subscribeChanges handler — the mutation would run while a TREE_CHANGED emit is on the stack and the tree must stay atomic. Defer it: queueMicrotask(() => routes.add(...)) or await.`;if(n())throw i.code(e.b.REENTRANT_TREE_MUTATION)`cannot mutate the route tree from inside replace()'s revalidation — the tree would move under a state that has not been revalidated yet. Defer it: queueMicrotask(() => routes.replace(...)) or await.`}function o(e,t,n){if(t){let r=t===e;if(r||t.startsWith(`${e}.`)){let i=r?``:` (current: "${t}")`;return n.warn(`router.removeRoute`,`Cannot remove route "${e}" — it is currently active${i}. Navigate away first.`),!1}}return!0}function s(e,t){t.warn(`router.removeRoute`,`Route "${e}" removed while navigation is in progress. Removing a route the router is navigating to (or an ancestor of it) fails that navigation with "ROUTE_NOT_FOUND" — the rejected navigate() promise and onTransitionError carry the same code, and onTransitionCancel never fires. The committed state is not affected either way.`)}function c(e){let t=e.indexOf(`?`);return t===-1?e:e.slice(0,t)}function l(e,t,n,r){return n&&c(e)!==c(t)?(r.error(`router.setRootPath`,"Cannot change the root PATH while navigation is in progress — it moves every route's path, including the one being navigated to. Wait for navigation to complete. (Changing only the `?`-declared query names is allowed here: it moves no paths.)"),!1):!0}const u=e.i(`router`,`claimContextNamespace`),d=e.i(`router`,`extendRouter`),f=Object.freeze,p=Object.keys,m=new WeakMap;function h(i){let o=m.get(i);if(o)return o;let s=t.o(i),c={makeState:(e,t,n,r)=>s.makeState(e,t,n,r),forwardState:(e,n,r)=>(t.c(s.checks,t.n[`forwardState:entry`],e,n,r),s.forwardState(e,n,r)),matchPath:e=>s.matchPath(e,s.getOptions()),navigateToState:(e,t)=>s.navigateToState(e,t),setRootPath:e=>{if(t.l(s.isDisposed),a(s.treeChanged.isEmitting,()=>s.routeGetStore().revalidating),!l(s.getRootPath(),e,s.isTransitioning(),s.logger))return!1;let n=s.getRootPath();return s.setRootPath(e),n!==e&&s.treeChanged.emit({op:`rootPath`,previous:n,next:e}),!0},getRootPath:s.getRootPath,addEventListener:(e,t)=>s.addEventListener(e,t),buildNavigationState:(e,i={},a={})=>{t.u(s,`buildNavigationState`,e,i);let o=r.t(i);t.c(s.checks,t.n[`buildNavigationState:state`],e,o,a);let c=n.E(s.port(),e,o,a,{diagnoseUndeclared:!0});if(s.buildStateResolved(c.name,c.path))return t.S(`buildNavigationState`,c.name,c.path,s.port().queryNames(c.name)),n.w(c,n.T(c,s.port()))},buildPathResolved:(e,t,n)=>s.buildPathResolved(e,t,n),getAdoptedOrigins:s.getAdoptedOrigins,logger:f({log:(e,t,...n)=>{s.logger.log(e,t,...n)},warn:(e,t,...n)=>{s.logger.warn(e,t,...n)},error:(e,t,...n)=>{s.logger.error(e,t,...n)}}),getDeclaredQueryNames:e=>s.getDeclaredQueryNames(e),getUrlParams:e=>n.C(s.routeGetStore(),e),getForwardMap:()=>{let t=e.s();return e.o(t,s.routeGetStore().config.forwardMap),f(t)},getResolvedLimits:()=>s.dependenciesGetStore().limits,getDependencyKeys:()=>f(p(s.dependenciesGetStore().dependencies)),getExternalGuardNames:()=>{let[e,t]=s.routeGetStore().lifecycleNamespace.getFactoriesByOrigin().external;return f([...new Set([...p(e),...p(t)])])},getOptions:s.getOptions,getTree:s.getTree,addInterceptor:(e,r)=>{t.l(s.isDisposed),n.P(e,r);let i=s.interceptors.get(e);i||(i=[],s.interceptors.set(e,i)),i.push(r);let a=!1;return()=>{a||(a=!0,i.splice(i.indexOf(r),1))}},subscribeDiagnostic:s.subscribeDiagnostic,addCheck:(e,r)=>{t.l(s.isDisposed),n.j(e,r);let i=s.checks.get(e);i||(i=[],s.checks.set(e,i)),i.push(r);let a=!1;return()=>{a||(a=!0,i.splice(i.indexOf(r),1))}},getRouteConfig:e=>{let t=s.routeGetStore();if(t.matcher.hasRoute(e))return t.routeCustomFields[e]},extendRouter:r=>{t.l(s.isDisposed),n.M(r);let a=p(r);for(let t of a)if(t in i)throw d.code(e.b.PLUGIN_CONFLICT)`Cannot extend router: property "${t}" already exists`;let o=a.map(e=>r[e]),c={keys:a};for(let[e,t]of a.entries())i[t]=o[e];s.routerExtensions.push(c);let l=!1;return()=>{if(l)return;l=!0;for(let e of c.keys)delete i[e];let e=s.routerExtensions.indexOf(c);e!==-1&&s.routerExtensions.splice(e,1)}},emitTransitionError:e=>{t.l(s.isDisposed),s.emitTransitionError(e)},claimContextNamespace:n=>{if(t.l(s.isDisposed),typeof n!=`string`||n===``)throw u.type`namespace must be a non-empty string, got ${typeof n==`string`?`an empty string`:typeof n}`;if(s.contextClaimRecords.has(n))throw u.code(e.b.CONTEXT_NAMESPACE_ALREADY_CLAIMED)`Cannot claim context namespace: "${n}" is already claimed by another plugin`;let r={write(t,i){s.contextClaimRecords.get(n)===r&&e.l(t.context,n,i)},release(){s.contextClaimRecords.get(n)===r&&s.contextClaimRecords.delete(n)}};return s.contextClaimRecords.set(n,r),r}},h=f(c);return m.set(i,h),h}const g=e.i(`router`,`clear`),_=Object.freeze,v=Object.keys,y=Object.freeze({replace:!0,revalidate:!0}),b=Object.freeze([]);function x(e,t,r,i){let a=t=>e.has(t);n.x(t.decoders,a),n.x(t.encoders,a),n.x(t.defaultParams,a),n.x(t.defaultSearch,a),n.x(t.forwardMap,a),n.x(t.forwardFnMap,a),n.x(r,a),n.x(t.forwardMap,e=>a(t.forwardMap[e]));let[o,s]=i.getFactories();for(let e of v(s))a(e)&&i.clearCanActivate(e,`both`);for(let e of v(o))a(e)&&i.clearCanDeactivate(e,`both`)}function S(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 C(t,n,r,i){let a={name:t.name,path:t.path};return S(a,n,r,i),t.children&&e.l(a,`children`,t.children.map(e=>C(e,`${n}.${e.name}`,r,i))),a}function w(e,t,n,r){let i={name:e,path:t};return S(i,e,n,r),_(i)}function T(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,w(a,s.path,e.config,r)),s.children&&i(s.children,a)}};return i(e.definitions,``),n}function E(e,t){let n=T(e,e=>t.has(e));return _([...n.values()])}function D(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(w(e,o.path,n.config,r)),o.children&&a(o.children,e)}};return a(e,t??``),_(i)}function O(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:_(n),added:_(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),_(t)}function A(e,t,r,i){n.a(e,t,r);let a=n.f(e,t,r,i);n.y(a.matcher,a.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(a.pendingCanActivate.keys(),a.pendingCanDeactivate.keys(),!1),n.i(e,a)}function j(e,t,n){e.systemCommit(t,n,y)}function M(e,t,r,i,a){n.l(t,`addRoute`),n.d(t,`addRoute`),n.o(t,`addRoute`),n.s(t,``,`addRoute`),n.c(t,``,`addRoute`);let o=n.p(t,e.rootPath,e.matcherOptions,r.logger);n.y(o.matcher,o.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(o.pendingCanActivate.keys(),o.pendingCanDeactivate.keys(),!0);let s=n.g(o,e.depsStore);e.lifecycleNamespace.clearDefinitionGuards(),n.i(e,o,s),e.revalidating=!0;let c=i();try{if(a?.(),c!==void 0){let t=r.matchPath(c.path,r.getOptions());if(t){if(t.name===c.name)j(r,{...t,context:c.context,transition:c.transition},c);else{let{toDeactivate:i,toActivate:a,intersection:o}=n.n(t,c,r.getMetaForState);if(e.lifecycleNamespace.canNavigateTo([],a,t,c,`replace`)){let e={phase:`activating`,from:c.name,reason:`success`,replace:!0,segments:{deactivated:i,activated:a,intersection:o}};j(r,{...t,transition:e},c)}else r.revalidateToNotFound(c.path)}}else r.revalidateToNotFound(c.path)}}finally{e.revalidating=!1}}function N(e,t,r){let i=e.definitions,a=n.S(i,t);if(a===void 0)return;let o=r?E(e,a):b;return x(a,e.config,e.routeCustomFields,e.lifecycleNamespace),n.h(e,i),o}function P(e,t){let r=e.matcher.getSegmentsByName(t);if(!r)return;let i=r.at(-1),a=n.z(i),o=e.lifecycleNamespace.getFactories();return C(a,t,e.config,o)}const F=new WeakMap;function I(r){let i=F.get(r);if(i)return i;let c=t.o(r),l=c.routeGetStore(),u=e=>{c.treeChanged.emit(e)},d=_({add:(e,r)=>{t.l(c.isDisposed),a(c.treeChanged.isEmitting,()=>l.revalidating);let i=Array.isArray(e)?e:[e],o=r?.parent,s=n.L(i);if(t.c(c.checks,t.n[`addRoute:batch`],s,o),A(l,s,o,c.logger),c.treeChanged.listenerCount()>0){let e=D(s,o,l);u(o===void 0?{op:`add`,added:e}:{op:`add`,added:e,parent:o})}},remove:e=>{if(t.l(c.isDisposed),a(c.treeChanged.isEmitting,()=>l.revalidating),t.c(c.checks,t.n[`removeRoute:entry`],e),n.u(e,`removeRoute`),!o(e,c.getStateName(),c.logger))return;let r=c.treeChanged.listenerCount()>0,i=N(l,e,r);i===void 0?c.logger.warn(`router.removeRoute`,`Route "${e}" not found. No changes made.`):(c.isTransitioning()&&s(e,c.logger),r&&u({op:`remove`,name:e,removedSubtree:i}))},update:(e,r)=>{if(t.l(c.isDisposed),a(c.treeChanged.isEmitting,()=>l.revalidating),t.c(c.checks,t.n[`updateRoute:entry`],e,r),n.u(e,`updateRoute`),!l.matcher.hasRoute(e))return;c.isTransitioning()&&c.logger.error(`router.updateRoute`,`Updating route "${e}" while navigation is in progress. This may cause unexpected behavior.`);let i=l.lifecycleNamespace,o=n.m(l,i,e,r);if(c.treeChanged.listenerCount()>0){let t=k(o);v(t).length>0&&u({op:`update`,name:e,patch:t})}},clear:()=>{if(t.l(c.isDisposed),a(c.treeChanged.isEmitting,()=>l.revalidating),c.getStateName()!==void 0)throw g.code(e.b.ROUTER_NOT_STOPPED)`Cannot clear routes while a state is committed. Use replace(routes) to swap the tree on a running router, or stop() first.`;if(c.isTransitioning()){c.logger.error(`router.clear`,`Cannot clear routes while navigation is in progress. Wait for navigation to complete.`);return}let r=c.treeChanged.listenerCount()>0?_([...T(l,()=>!0).values()]):void 0;n._(l),l.lifecycleNamespace.clearAll(),r!==void 0&&u({op:`clear`,removed:r})},has:e=>(t.c(c.checks,t.n[`hasRoute:entry`],e),l.matcher.hasRoute(e)),get:e=>(t.c(c.checks,t.n[`getRoute:entry`],e),P(l,e)),replace:e=>{t.l(c.isDisposed),a(c.treeChanged.isEmitting,()=>l.revalidating);let i=Array.isArray(e)?e:[e];if(c.isTransitioning()){c.logger.error(`router.replace`,`Cannot replace routes while navigation is in progress. Wait for navigation to complete.`);return}let o=n.L(i);t.c(c.checks,t.n[`replaceRoutes:batch`],o);let s=c.treeChanged.listenerCount()>0?T(l,()=>!0):void 0;M(l,o,c,()=>r.getState(),s===void 0?void 0:()=>{let e=T(l,()=>!0),{removed:t,added:n}=O(s,e);u({op:`replace`,removed:t,added:n})})},subscribeChanges:e=>(n.I(e),c.treeChanged.subscribe(e))});return F.set(r,d),d}const L=Object.hasOwn,R=Object.keys,z=e=>typeof e==`symbol`?e:String(e),B=[];function V(e,t,n,r){if(n===void 0)return;let i=e.dependencies,a=z(t),o=r?R(i):B;if(o.includes(a)){let e=i[a];e!==n&&!(Number.isNaN(e)&&Number.isNaN(n))&&r?.dependencies.warnOverwrite(String(a),`setDependency`)}else r?.dependencies.validateDependencyCount(o.length,e.limits.maxDependencies,`setDependency`);i[a]=n}function H(e,t,r){let i=[],a=e.dependencies,o=new Set(r?R(a):B);n.R(t,(t,s)=>{o.has(t)?i.push(t):(r?.dependencies.validateDependencyCount(o.size,e.limits.maxDependencies,`setDependencies`),o.add(t)),n.A(a,t,s)}),i.length>0&&r?.dependencies.warnBatchOverwrite(i,`setDependencies`)}function U(e){let r=t.o(e);return{get:e=>{r.validator?.dependencies.validateDependencyName(e,`getDependency`);let t=r.dependenciesGetStore(),i=n.O(t,e);return r.validator?.dependencies.validateDependencyExists(e,i),i},getAll:()=>n.k(r.dependenciesGetStore()),set:(e,n)=>{t.l(r.isDisposed),r.validator?.dependencies.validateSetDependencyArgs(e,n,`setDependency`),V(r.dependenciesGetStore(),e,n,r.validator),t.l(r.isDisposed)},setAll:e=>{t.l(r.isDisposed);let n=r.dependenciesGetStore();r.validator?.dependencies.validateDependenciesObject(e,`setDependencies`),H(n,e,r.validator),t.l(r.isDisposed)},remove:e=>{t.l(r.isDisposed),r.validator?.dependencies.validateDependencyName(e,`removeDependency`);let n=r.dependenciesGetStore(),i=z(e);L(n.dependencies,i)||r.validator?.dependencies.warnRemoveNonExistent(String(i)),delete n.dependencies[i]},reset:()=>{t.l(r.isDisposed),n.D(r.dependenciesGetStore())},has:e=>(r.validator?.dependencies.validateDependencyName(e,`hasDependency`),L(r.dependenciesGetStore().dependencies,e))}}function W(e){let r=t.o(e),i=r.routeGetStore().lifecycleNamespace;return{addActivateGuard(e,a){t.l(r.isDisposed),n.F(e,`addActivateGuard`),n.N(e,`addActivateGuard`),t.c(r.checks,t.n[`addActivateGuard:entry`],e,a),i.addCanActivate(e,a,!1)},addDeactivateGuard(e,a){t.l(r.isDisposed),n.F(e,`addDeactivateGuard`),n.N(e,`addDeactivateGuard`),t.c(r.checks,t.n[`addDeactivateGuard:entry`],e,a),i.addCanDeactivate(e,a,!1)},removeActivateGuard(e){t.l(r.isDisposed),n.F(e,`removeActivateGuard`),t.c(r.checks,t.n[`removeActivateGuard:entry`],e),i.clearCanActivate(e,`external`)},removeDeactivateGuard(e){t.l(r.isDisposed),n.F(e,`removeDeactivateGuard`),t.c(r.checks,t.n[`removeDeactivateGuard:entry`],e),i.clearCanDeactivate(e,`external`)}}}const G=Object.entries,K=Object.hasOwn,q=e.i(`cloneRouter`);function J(r,i,a){let o=t.o(r);if(o.isDisposed())throw q.code(e.b.ROUTER_DISPOSED)`cannot clone a disposed router — dispose() is terminal`;o.validator?.dependencies.validateCloneArgs(i);let s=o.routeGetStore(),c=n.B(s.tree),l=s.config,u=s.resolvedForwardMap,d=s.routeCustomFields,{options:f,dependencies:p,pluginFactories:m,loggerConfig:h,limits:g,limitKeys:_}=o.getCloneState(),{definition:v,external:y}=s.lifecycleNamespace.getFactoriesByOrigin(),b={...p};i!==void 0&&n.R(i,(t,n)=>{e.l(b,t,n)});let x=a?.logger,S=x?{...h,...x}:h,C=new n.t(c,{...f,...s.matcherOptions?.queryParams!==void 0&&{queryParams:s.matcherOptions.queryParams},logger:S,..._!==void 0&&{limits:Object.fromEntries(_.filter(e=>K(g,e)).map(e=>[e,g[e]]))},...s.matcherOptions?.urlParamsEncoding!==void 0&&{urlParamsEncoding:s.matcherOptions.urlParamsEncoding}},b),w=t.o(C),T=w.routeGetStore(),E=T.lifecycleNamespace;n.b(T.config,l),n.r(T,Object.assign(T.resolvedForwardMap,u)),Object.assign(T.routeCustomFields,d),s.rootPath!==``&&w.setRootPath(s.rootPath);let[D,O]=v,[k,A]=y;for(let[e,t]of G(D))E.addCanDeactivate(e,t,!0);for(let[e,t]of G(O))E.addCanActivate(e,t,!0);let j=W(C);for(let[e,t]of G(k))j.addDeactivateGuard(e,t);for(let[e,t]of G(A))j.addActivateGuard(e,t);let M=new Set(w.getCloneState().pluginFactories),N=m.filter(e=>!M.has(e));return N.length>0&&C.usePlugin(...N),C}exports.cloneRouter=J,exports.getDependenciesApi=U,exports.getLifecycleApi=W,exports.getPluginApi=h,exports.getRoutesApi=I;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./helpers-iJq-DSS7.js"),t=require("./internals-CGNdQfzl.js"),n=require("./Router-CjpauUGY.js"),r=e.C(`router`);function i(t,n){if(t())throw r.code(e.z.REENTRANT_TREE_MUTATION)`cannot mutate the route tree from inside a subscribeChanges handler — the mutation would run while a TREE_CHANGED emit is on the stack and the tree must stay atomic. Defer it: queueMicrotask(() => routes.add(...)) or await.`;if(n())throw r.code(e.z.REENTRANT_TREE_MUTATION)`cannot mutate the route tree from inside replace()'s revalidation — the tree would move under a state that has not been revalidated yet. Defer it: queueMicrotask(() => routes.replace(...)) or await.`}function 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 o(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 with "ROUTE_NOT_FOUND" — the rejected navigate() promise and onTransitionError carry the same code, and onTransitionCancel never fires. The committed state is not affected either way.`)}function s(e){let t=e.indexOf(`?`);return t===-1?e:e.slice(0,t)}function c(e,t,n,r){return n&&s(e)!==s(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}const l=e.C(`router`,`claimContextNamespace`),u=e.C(`router`,`extendRouter`),d=Object.freeze,f=Object.keys,p=new WeakMap;function m(r){let a=p.get(r);if(a)return a;let o=t.o(r),s={makeState:(e,t,n,r)=>o.makeState(e,t,n,r),forwardState:(e,n,r)=>(t.c(o.checks,t.n[`forwardState:entry`],e,n,r),o.forwardState(e,n,r)),matchPath:e=>o.matchPath(e,o.getOptions()),navigateToState:(e,t)=>o.navigateToState(e,t),setRootPath:e=>{if(t.l(o.isDisposed),i(o.treeChanged.isEmitting,()=>o.routeGetStore().revalidating),!c(o.getRootPath(),e,o.isTransitioning(),o.logger))return!1;let n=o.getRootPath();return o.setRootPath(e),n!==e&&o.treeChanged.emit({op:`rootPath`,previous:n,next:e}),!0},getRootPath:o.getRootPath,addEventListener:(e,t)=>o.addEventListener(e,t),buildNavigationState:(r,i={},a={})=>{t.u(o,`buildNavigationState`,r,i);let s=e.t(i);t.c(o.checks,t.n[`buildNavigationState:state`],r,s,a);let c=n.E(o.port(),r,s,a,{diagnoseUndeclared:!0});if(!o.buildStateResolved(c.name,c.path))return;t.S(`buildNavigationState`,c.name,c.path,o.port().queryNames(c.name));let l=n.w(c,n.T(c,o.port()));return o.port().reportCodecRoundTrip?.(l),l},buildPathResolved:(e,t,n)=>o.buildPathResolved(e,t,n),getAdoptedOrigins:o.getAdoptedOrigins,logger:d({log:(e,t,...n)=>{o.logger.log(e,t,...n)},warn:(e,t,...n)=>{o.logger.warn(e,t,...n)},error:(e,t,...n)=>{o.logger.error(e,t,...n)}}),getDeclaredQueryNames:e=>o.getDeclaredQueryNames(e),getUrlParams:e=>n.C(o.routeGetStore(),e),getForwardMap:()=>{let t=e.E();return e.T(t,o.routeGetStore().config.forwardMap),d(t)},getResolvedLimits:()=>o.dependenciesGetStore().limits,getDependencyKeys:()=>d(f(o.dependenciesGetStore().dependencies)),getExternalGuardNames:()=>{let[e,t]=o.routeGetStore().lifecycleNamespace.getFactoriesByOrigin().external;return d([...new Set([...f(e),...f(t)])])},getOptions:o.getOptions,getTree:o.getTree,addInterceptor:(e,r)=>{t.l(o.isDisposed),n.P(e,r);let i=o.interceptors.get(e);i||(i=[],o.interceptors.set(e,i)),i.push(r);let a=!1;return()=>{a||(a=!0,i.splice(i.indexOf(r),1))}},subscribeDiagnostic:o.subscribeDiagnostic,addCheck:(e,r)=>{t.l(o.isDisposed),n.j(e,r);let i=o.checks.get(e);i||(i=[],o.checks.set(e,i)),i.push(r);let a=!1;return()=>{a||(a=!0,i.splice(i.indexOf(r),1))}},getRouteConfig:e=>{let t=o.routeGetStore();if(t.matcher.hasRoute(e))return t.routeCustomFields[e]},extendRouter:i=>{t.l(o.isDisposed),n.M(i);let a=f(i);for(let t of a)if(t in r)throw u.code(e.z.PLUGIN_CONFLICT)`Cannot extend router: property "${t}" already exists`;let s=a.map(e=>i[e]),c={keys:a};for(let[e,t]of a.entries())r[t]=s[e];o.routerExtensions.push(c);let l=!1;return()=>{if(l)return;l=!0;for(let e of c.keys)delete r[e];let e=o.routerExtensions.indexOf(c);e!==-1&&o.routerExtensions.splice(e,1)}},emitTransitionError:e=>{t.l(o.isDisposed),o.emitTransitionError(e)},claimContextNamespace:n=>{if(t.l(o.isDisposed),typeof n!=`string`||n===``)throw l.type`namespace must be a non-empty string, got ${typeof n==`string`?`an empty string`:typeof n}`;if(o.contextClaimRecords.has(n))throw l.code(e.z.CONTEXT_NAMESPACE_ALREADY_CLAIMED)`Cannot claim context namespace: "${n}" is already claimed by another plugin`;let r={write(t,i){o.contextClaimRecords.get(n)===r&&e.O(t.context,n,i)},release(){o.contextClaimRecords.get(n)===r&&o.contextClaimRecords.delete(n)}};return o.contextClaimRecords.set(n,r),r}},m=d(s);return p.set(r,m),m}const h=e.C(`router`,`clear`),g=Object.freeze,_=Object.keys,v=Object.freeze({replace:!0,revalidate:!0}),y=Object.freeze([]);function b(e,t,r,i){let a=t=>e.has(t);n.x(t.decoders,a),n.x(t.encoders,a),n.x(t.defaultParams,a),n.x(t.defaultSearch,a),n.x(t.forwardMap,a),n.x(t.forwardFnMap,a),n.x(r,a),n.x(t.forwardMap,e=>a(t.forwardMap[e]));let[o,s]=i.getFactories();for(let e of _(s))a(e)&&i.clearCanActivate(e,`both`);for(let e of _(o))a(e)&&i.clearCanDeactivate(e,`both`)}function x(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 S(t,n,r,i){let a={name:t.name,path:t.path};return x(a,n,r,i),t.children&&e.O(a,`children`,t.children.map(e=>S(e,`${n}.${e.name}`,r,i))),a}function C(e,t,n,r){let i={name:e,path:t};return x(i,e,n,r),g(i)}function w(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,C(a,s.path,e.config,r)),s.children&&i(s.children,a)}};return i(e.definitions,``),n}function T(e,t){let n=w(e,e=>t.has(e));return g([...n.values()])}function E(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(C(e,o.path,n.config,r)),o.children&&a(o.children,e)}};return a(e,t??``),g(i)}function D(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:g(n),added:g(r)}}function O(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),g(t)}function k(e,t,r,i){n.a(e,t,r);let a=n.f(e,t,r,i);n.y(a.matcher,a.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(a.pendingCanActivate.keys(),a.pendingCanDeactivate.keys(),!1),n.i(e,a)}function A(e,t,n){e.systemCommit(t,n,v)}function j(e,t,r,i,a){n.l(t,`addRoute`),n.d(t,`addRoute`),n.o(t,`addRoute`),n.s(t,``,`addRoute`),n.c(t,``,`addRoute`);let o=n.p(t,e.rootPath,e.matcherOptions,r.logger);n.y(o.matcher,o.config,`addRoute`),e.lifecycleNamespace.preflightHandlerLimit(o.pendingCanActivate.keys(),o.pendingCanDeactivate.keys(),!0);let s=n.g(o,e.depsStore);e.lifecycleNamespace.clearDefinitionGuards(),n.i(e,o,s),e.revalidating=!0;let c=i();try{if(a?.(),c!==void 0){let t=r.matchPath(c.path,r.getOptions());if(t){if(t.name===c.name)A(r,{...t,context:c.context,transition:c.transition},c);else{let{toDeactivate:i,toActivate:a,intersection:o}=n.n(t,c,r.getMetaForState);if(e.lifecycleNamespace.canNavigateTo([],a,t,c,`replace`)){let e={phase:`activating`,from:c.name,reason:`success`,replace:!0,segments:{deactivated:i,activated:a,intersection:o}};A(r,{...t,transition:e},c)}else r.revalidateToNotFound(c.path)}}else r.revalidateToNotFound(c.path)}}finally{e.revalidating=!1}}function M(e,t,r){let i=e.definitions,a=n.S(i,t);if(a===void 0)return;let o=r?T(e,a):y;return b(a,e.config,e.routeCustomFields,e.lifecycleNamespace),n.h(e,i),o}function N(e,t){let r=e.matcher.getSegmentsByName(t);if(!r)return;let i=r.at(-1),a=n.z(i),o=e.lifecycleNamespace.getFactories();return S(a,t,e.config,o)}const P=new WeakMap;function F(r){let s=P.get(r);if(s)return s;let c=t.o(r),l=c.routeGetStore(),u=e=>{c.treeChanged.emit(e)},d=g({add:(e,r)=>{t.l(c.isDisposed),i(c.treeChanged.isEmitting,()=>l.revalidating);let a=Array.isArray(e)?e:[e],o=r?.parent,s=n.L(a);if(t.c(c.checks,t.n[`addRoute:batch`],s,o),k(l,s,o,c.logger),c.treeChanged.listenerCount()>0){let e=E(s,o,l);u(o===void 0?{op:`add`,added:e}:{op:`add`,added:e,parent:o})}},remove:e=>{if(t.l(c.isDisposed),i(c.treeChanged.isEmitting,()=>l.revalidating),t.c(c.checks,t.n[`removeRoute:entry`],e),n.u(e,`removeRoute`),!a(e,c.getStateName(),c.logger))return;let r=c.treeChanged.listenerCount()>0,s=M(l,e,r);s===void 0?c.logger.warn(`router.removeRoute`,`Route "${e}" not found. No changes made.`):(c.isTransitioning()&&o(e,c.logger),r&&u({op:`remove`,name:e,removedSubtree:s}))},update:(e,r)=>{if(t.l(c.isDisposed),i(c.treeChanged.isEmitting,()=>l.revalidating),t.c(c.checks,t.n[`updateRoute:entry`],e,r),n.u(e,`updateRoute`),!l.matcher.hasRoute(e))return;c.isTransitioning()&&c.logger.error(`router.updateRoute`,`Updating route "${e}" while navigation is in progress. This may cause unexpected behavior.`);let a=l.lifecycleNamespace,o=n.m(l,a,e,r);if(c.treeChanged.listenerCount()>0){let t=O(o);_(t).length>0&&u({op:`update`,name:e,patch:t})}},clear:()=>{if(t.l(c.isDisposed),i(c.treeChanged.isEmitting,()=>l.revalidating),c.getStateName()!==void 0)throw h.code(e.z.ROUTER_NOT_STOPPED)`Cannot clear routes while a state is committed. Use replace(routes) to swap the tree on a running router, or stop() first.`;if(c.isTransitioning()){c.logger.error(`router.clear`,`Cannot clear routes while navigation is in progress. Wait for navigation to complete.`);return}let r=c.treeChanged.listenerCount()>0?g([...w(l,()=>!0).values()]):void 0;n._(l),l.lifecycleNamespace.clearAll(),r!==void 0&&u({op:`clear`,removed:r})},has:e=>(t.c(c.checks,t.n[`hasRoute:entry`],e),l.matcher.hasRoute(e)),get:e=>(t.c(c.checks,t.n[`getRoute:entry`],e),N(l,e)),replace:e=>{t.l(c.isDisposed),i(c.treeChanged.isEmitting,()=>l.revalidating);let a=Array.isArray(e)?e:[e];if(c.isTransitioning()){c.logger.error(`router.replace`,`Cannot replace routes while navigation is in progress. Wait for navigation to complete.`);return}let o=n.L(a);t.c(c.checks,t.n[`replaceRoutes:batch`],o);let s=c.treeChanged.listenerCount()>0?w(l,()=>!0):void 0;j(l,o,c,()=>r.getState(),s===void 0?void 0:()=>{let e=w(l,()=>!0),{removed:t,added:n}=D(s,e);u({op:`replace`,removed:t,added:n})})},subscribeChanges:e=>(n.I(e),c.treeChanged.subscribe(e))});return P.set(r,d),d}const I=Object.hasOwn,L=Object.keys,R=e=>typeof e==`symbol`?e:String(e),z=[];function B(e,t,n,r){if(n===void 0)return;let i=e.dependencies,a=R(t),o=r?L(i):z;if(o.includes(a)){let e=i[a];e!==n&&!(Number.isNaN(e)&&Number.isNaN(n))&&r?.dependencies.warnOverwrite(String(a),`setDependency`)}else r?.dependencies.validateDependencyCount(o.length,e.limits.maxDependencies,`setDependency`);i[a]=n}function V(e,t,r){let i=[],a=e.dependencies,o=new Set(r?L(a):z);n.R(t,(t,s)=>{o.has(t)?i.push(t):(r?.dependencies.validateDependencyCount(o.size,e.limits.maxDependencies,`setDependencies`),o.add(t)),n.A(a,t,s)}),i.length>0&&r?.dependencies.warnBatchOverwrite(i,`setDependencies`)}function H(e){let r=t.o(e);return{get:e=>{r.validator?.dependencies.validateDependencyName(e,`getDependency`);let t=r.dependenciesGetStore(),i=n.O(t,e);return r.validator?.dependencies.validateDependencyExists(e,i),i},getAll:()=>n.k(r.dependenciesGetStore()),set:(e,n)=>{t.l(r.isDisposed),r.validator?.dependencies.validateSetDependencyArgs(e,n,`setDependency`),B(r.dependenciesGetStore(),e,n,r.validator),t.l(r.isDisposed)},setAll:e=>{t.l(r.isDisposed);let n=r.dependenciesGetStore();r.validator?.dependencies.validateDependenciesObject(e,`setDependencies`),V(n,e,r.validator),t.l(r.isDisposed)},remove:e=>{t.l(r.isDisposed),r.validator?.dependencies.validateDependencyName(e,`removeDependency`);let n=r.dependenciesGetStore(),i=R(e);I(n.dependencies,i)||r.validator?.dependencies.warnRemoveNonExistent(String(i)),delete n.dependencies[i]},reset:()=>{t.l(r.isDisposed),n.D(r.dependenciesGetStore())},has:e=>(r.validator?.dependencies.validateDependencyName(e,`hasDependency`),I(r.dependenciesGetStore().dependencies,e))}}function U(e){let r=t.o(e),i=r.routeGetStore().lifecycleNamespace;return{addActivateGuard(e,a){t.l(r.isDisposed),n.F(e,`addActivateGuard`),n.N(e,`addActivateGuard`),t.c(r.checks,t.n[`addActivateGuard:entry`],e,a),i.addCanActivate(e,a,!1)},addDeactivateGuard(e,a){t.l(r.isDisposed),n.F(e,`addDeactivateGuard`),n.N(e,`addDeactivateGuard`),t.c(r.checks,t.n[`addDeactivateGuard:entry`],e,a),i.addCanDeactivate(e,a,!1)},removeActivateGuard(e){t.l(r.isDisposed),n.F(e,`removeActivateGuard`),t.c(r.checks,t.n[`removeActivateGuard:entry`],e),i.clearCanActivate(e,`external`)},removeDeactivateGuard(e){t.l(r.isDisposed),n.F(e,`removeDeactivateGuard`),t.c(r.checks,t.n[`removeDeactivateGuard:entry`],e),i.clearCanDeactivate(e,`external`)}}}const W=Object.entries,G=Object.hasOwn,K=e.C(`cloneRouter`);function q(r,i,a){let o=t.o(r);if(o.isDisposed())throw K.code(e.z.ROUTER_DISPOSED)`cannot clone a disposed router — dispose() is terminal`;o.validator?.dependencies.validateCloneArgs(i);let s=o.routeGetStore(),c=n.B(s.tree),l=s.config,u=s.resolvedForwardMap,d=s.routeCustomFields,{options:f,dependencies:p,pluginFactories:m,loggerConfig:h,limits:g,limitKeys:_}=o.getCloneState(),{definition:v,external:y}=s.lifecycleNamespace.getFactoriesByOrigin(),b={...p};i!==void 0&&n.R(i,(t,n)=>{e.O(b,t,n)});let x=a?.logger,S=x?{...h,...x}:h,C=new n.t(c,{...f,...s.matcherOptions?.queryParams!==void 0&&{queryParams:s.matcherOptions.queryParams},logger:S,..._!==void 0&&{limits:Object.fromEntries(_.filter(e=>G(g,e)).map(e=>[e,g[e]]))},...s.matcherOptions?.urlParamsEncoding!==void 0&&{urlParamsEncoding:s.matcherOptions.urlParamsEncoding}},b),w=t.o(C),T=w.routeGetStore(),E=T.lifecycleNamespace;n.b(T.config,l),n.r(T,Object.assign(T.resolvedForwardMap,u)),Object.assign(T.routeCustomFields,d),s.rootPath!==``&&w.setRootPath(s.rootPath);let[D,O]=v,[k,A]=y;for(let[e,t]of W(D))E.addCanDeactivate(e,t,!0);for(let[e,t]of W(O))E.addCanActivate(e,t,!0);let j=U(C);for(let[e,t]of W(k))j.addDeactivateGuard(e,t);for(let[e,t]of W(A))j.addActivateGuard(e,t);let M=new Set(w.getCloneState().pluginFactories),N=m.filter(e=>!M.has(e));return N.length>0&&C.usePlugin(...N),C}exports.cloneRouter=q,exports.getDependenciesApi=H,exports.getLifecycleApi=U,exports.getPluginApi=m,exports.getRoutesApi=F;
2
2
  //# sourceMappingURL=api.js.map