@real-router/core 0.77.4 → 0.79.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/README.md +1 -1
- package/dist/cjs/{Router-Bm2qafJA.d.ts → Router-BG5yNYUG.d.ts} +4 -10
- package/dist/cjs/Router-BG5yNYUG.d.ts.map +1 -0
- package/dist/cjs/Router-BRuC-daj.js +2 -0
- package/dist/cjs/Router-BRuC-daj.js.map +1 -0
- package/dist/cjs/RouterValidator-CZ8kPkrI.d.ts +107 -0
- package/dist/cjs/RouterValidator-CZ8kPkrI.d.ts.map +1 -0
- package/dist/cjs/api.d.ts +20 -4
- package/dist/cjs/api.d.ts.map +1 -1
- package/dist/cjs/api.js +1 -1
- package/dist/cjs/api.js.map +1 -1
- package/dist/cjs/buildParamMeta-DniluAIV.js +2 -0
- package/dist/cjs/buildParamMeta-DniluAIV.js.map +1 -0
- package/dist/cjs/cloneRouter-3AOUeQ8M.js +2 -0
- package/dist/cjs/cloneRouter-3AOUeQ8M.js.map +1 -0
- package/dist/cjs/index-CAnGQpnz.d.ts +974 -0
- package/dist/cjs/index-CAnGQpnz.d.ts.map +1 -0
- package/dist/{esm/index-Cwd11Hun.d.mts → cjs/index-DDrryY2U.d.ts} +3 -3
- package/dist/cjs/{index-A1sdfTRT.d.ts.map → index-DDrryY2U.d.ts.map} +1 -1
- package/dist/cjs/index.d.ts +192 -7
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types-DaXCTxi1.d.ts +138 -0
- package/dist/cjs/types-DaXCTxi1.d.ts.map +1 -0
- package/dist/cjs/types.d.ts +2 -0
- package/dist/cjs/types.js +0 -0
- package/dist/cjs/utils.d.ts +1 -1
- package/dist/cjs/utils.js +1 -1
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/validation.d.ts +163 -8
- package/dist/cjs/validation.d.ts.map +1 -1
- package/dist/cjs/validation.js +2 -1
- package/dist/cjs/validation.js.map +1 -0
- package/dist/esm/{Router-Bm2qafJA.d.mts → Router-Cy75qbgU.d.mts} +4 -10
- package/dist/{cjs/Router-Bm2qafJA.d.ts.map → esm/Router-Cy75qbgU.d.mts.map} +1 -1
- package/dist/esm/Router-DikzugaD.mjs +2 -0
- package/dist/esm/Router-DikzugaD.mjs.map +1 -0
- package/dist/esm/RouterValidator-CZ8kPkrI.d.mts +107 -0
- package/dist/esm/RouterValidator-CZ8kPkrI.d.mts.map +1 -0
- package/dist/esm/api.d.mts +20 -4
- package/dist/esm/api.d.mts.map +1 -1
- package/dist/esm/api.mjs +1 -1
- package/dist/esm/api.mjs.map +1 -1
- package/dist/esm/buildParamMeta-bOLhLF9h.mjs +2 -0
- package/dist/esm/buildParamMeta-bOLhLF9h.mjs.map +1 -0
- package/dist/esm/cloneRouter-CAh5vA3l.mjs +2 -0
- package/dist/esm/cloneRouter-CAh5vA3l.mjs.map +1 -0
- package/dist/esm/index-CAnGQpnz.d.mts +974 -0
- package/dist/esm/index-CAnGQpnz.d.mts.map +1 -0
- package/dist/{cjs/index-A1sdfTRT.d.ts → esm/index-DnSU6huX.d.mts} +3 -3
- package/dist/esm/{index-Cwd11Hun.d.mts.map → index-DnSU6huX.d.mts.map} +1 -1
- package/dist/esm/index.d.mts +192 -7
- package/dist/esm/index.d.mts.map +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/types-DaXCTxi1.d.mts +138 -0
- package/dist/esm/types-DaXCTxi1.d.mts.map +1 -0
- package/dist/esm/types.d.mts +2 -0
- package/dist/esm/types.mjs +0 -0
- package/dist/esm/utils.d.mts +1 -1
- package/dist/esm/utils.mjs +1 -1
- package/dist/esm/utils.mjs.map +1 -1
- package/dist/esm/validation.d.mts +162 -9
- package/dist/esm/validation.d.mts.map +1 -1
- package/dist/esm/validation.mjs +2 -1
- package/dist/esm/validation.mjs.map +1 -0
- package/package.json +15 -12
- package/dist/cjs/Router-27ftBmfo.js +0 -2
- package/dist/cjs/Router-27ftBmfo.js.map +0 -1
- package/dist/cjs/RouterError-OKaEXSBZ.d.ts +0 -292
- package/dist/cjs/RouterError-OKaEXSBZ.d.ts.map +0 -1
- package/dist/cjs/cloneRouter-B1tPtpNE.js +0 -2
- package/dist/cjs/cloneRouter-B1tPtpNE.js.map +0 -1
- package/dist/cjs/esm-egdCFOaS.js +0 -2
- package/dist/cjs/esm-egdCFOaS.js.map +0 -1
- package/dist/cjs/index-0GKsQ2r9.d.ts +0 -336
- package/dist/cjs/index-0GKsQ2r9.d.ts.map +0 -1
- package/dist/esm/Router-Bm2qafJA.d.mts.map +0 -1
- package/dist/esm/Router-CTGJBKd7.mjs +0 -2
- package/dist/esm/Router-CTGJBKd7.mjs.map +0 -1
- package/dist/esm/RouterError-OKaEXSBZ.d.mts +0 -292
- package/dist/esm/RouterError-OKaEXSBZ.d.mts.map +0 -1
- package/dist/esm/cloneRouter-C4v9Xl2F.mjs +0 -2
- package/dist/esm/cloneRouter-C4v9Xl2F.mjs.map +0 -1
- package/dist/esm/esm-Cnywzxys.mjs +0 -2
- package/dist/esm/esm-Cnywzxys.mjs.map +0 -1
- package/dist/esm/index-0GKsQ2r9.d.mts +0 -336
- package/dist/esm/index-0GKsQ2r9.d.mts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"esm-Cnywzxys.mjs","names":["#e","#s","#c","#a","#t","#n","#r","#p","#i","#_","#h","#v","#S","#w","#l","#u","#d","#f","#m","#o","#g","#y","#x","#b","#C"],"sources":["../../src/internals.ts","../../../engine/dist/esm/index.mjs"],"sourcesContent":["import type { DependenciesStore } from \"./namespaces\";\nimport type { RoutesStore } from \"./namespaces/RoutesNamespace\";\nimport type { Router as RouterClass } from \"./Router\";\nimport type { EventMethodMap, PluginFactory } from \"./types\";\nimport type { RouterValidator } from \"./types/RouterValidator\";\nimport type { SerializedRouterState } from \"./utils\";\nimport type {\n DefaultDependencies,\n EventName,\n NavigationOptions,\n Options,\n Params,\n Plugin,\n Router as RouterInterface,\n RouteTreeState,\n SimpleState,\n State,\n TreeChangedEvent,\n Unsubscribe,\n} from \"@real-router/types\";\nimport type { RouteTree } from \"engine\";\n\nexport interface RouterInternals<\n D extends DefaultDependencies = DefaultDependencies,\n> {\n readonly makeState: <P extends Params = Params>(\n name: string,\n params?: P,\n path?: string,\n meta?: Record<string, Record<string, \"url\" | \"query\">>,\n ) => State<P>;\n\n readonly forwardState: <P extends Params = Params>(\n routeName: string,\n routeParams: P,\n ) => SimpleState<P>;\n\n readonly buildStateResolved: (\n resolvedName: string,\n resolvedParams: Params,\n ) => RouteTreeState | undefined;\n\n readonly matchPath: <P extends Params = Params>(\n path: string,\n options?: Options,\n ) => State<P> | undefined;\n\n readonly getOptions: () => Options;\n\n readonly addEventListener: <E extends EventName>(\n eventName: E,\n cb: Plugin[EventMethodMap[E]],\n ) => Unsubscribe;\n\n /**\n * Route-tree mutation channel — internal access for the `getRoutesApi`\n * wrapper. A dedicated bridge is required because the public\n * `addEventListener<E extends EventName>` structurally rejects\n * `\"TREE_CHANGED\"` (it is not in the public `EventName` union), is strict on\n * duplicates, and exposes neither `emit` nor `listenerCount`.\n */\n readonly treeChanged: {\n readonly emit: (event: TreeChangedEvent) => void;\n readonly subscribe: (\n handler: (event: TreeChangedEvent) => void,\n ) => Unsubscribe;\n readonly listenerCount: () => number;\n /**\n * True while a `TREE_CHANGED` emit is on the stack — `getRoutesApi` reads it\n * to reject reentrant route-CRUD from a `subscribeChanges` handler (#1032).\n */\n readonly isEmitting: () => boolean;\n };\n\n readonly buildPath: (route: string, params?: Params) => string;\n\n readonly emitTransitionError: (error: Error) => void;\n\n /**\n * Emits `TRANSITION_SUCCESS` directly (no FSM transition) — used by\n * `getRoutesApi().replace()` to notify `router.subscribe` listeners when a\n * structural replace revalidates the active state (#950). Mirrors the success\n * emission `completeTransition` / `navigateToNotFound` perform.\n */\n readonly emitTransitionSuccess: (\n toState: State,\n fromState: State | undefined,\n opts?: NavigationOptions,\n ) => void;\n\n /**\n * Commits the not-found (`UNKNOWN_ROUTE`) state for `path` and emits\n * `TRANSITION_SUCCESS` — the `NavigationNamespace.navigateToNotFound`\n * primitive. `replace()` uses it when a structural replace drops the active\n * route, so subscribers are notified instead of the state silently clearing\n * (#950).\n */\n readonly navigateToNotFound: (path: string) => State;\n\n readonly start: (path: string) => Promise<State>;\n\n /**\n * Plugin-only navigation entry point — delegates to\n * `NavigationNamespace.navigateToState` (`getPluginApi(router).navigateToState`).\n * Hidden from `Router`/`Navigator` to keep the userland surface minimal;\n * see `core-types/src/api.ts` for usage docs.\n */\n readonly navigateToState: (\n state: State,\n options?: NavigationOptions,\n ) => Promise<State>;\n\n /* eslint-disable @typescript-eslint/no-explicit-any -- heterogeneous map: stores different InterceptorFn<M> types under different keys */\n readonly interceptors: Map<\n string,\n ((next: (...args: any[]) => any, ...args: any[]) => any)[]\n >;\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n readonly setRootPath: (rootPath: string) => void;\n readonly getRootPath: () => string;\n\n readonly getTree: () => RouteTree;\n\n readonly isDisposed: () => boolean;\n\n validator: RouterValidator | null;\n\n // Dependencies (issue #172)\n readonly dependenciesGetStore: () => DependenciesStore<D>;\n\n // Clone support (issue #173, consolidated #964). One accessor for the\n // source-side snapshot a clone carries over besides the route store, so a new\n // clone-relevant subsystem is wired in a single place instead of being spread\n // across separate methods.\n readonly getCloneState: () => {\n options: Options;\n dependencies: Record<string, unknown>;\n pluginFactories: PluginFactory<D>[];\n };\n\n // Consolidated route data store (issue #174 Phase 2)\n readonly routeGetStore: () => RoutesStore<D>;\n\n // Cross-namespace state (issue #174)\n readonly getStateName: () => string | undefined;\n readonly isTransitioning: () => boolean;\n readonly clearState: () => void;\n readonly setState: (state: State) => void;\n readonly routerExtensions: { keys: string[] }[];\n readonly contextClaimRecords: Set<string>;\n\n /**\n * One-shot hydration scratchpad populated by `hydrateRouter` immediately\n * before delegating to `router.start(parsed.path)` and cleared in the\n * matching `finally`. SSR loader plugins read this slot directly via\n * `getInternals(router).hydrationState` to short-circuit their own loader\n * call when the server-resolved namespace value is already present in the\n * parsed state (#596). `null` outside of an active `hydrateRouter`\n * invocation.\n */\n hydrationState: SerializedRouterState | null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- existential type: stores RouterInternals for all Dependencies types\nconst internals = new WeakMap<object, RouterInternals<any>>();\n\nexport function getInternals<D extends DefaultDependencies>(\n router: RouterInterface<D>,\n): RouterInternals<D> {\n const ctx = internals.get(router);\n\n if (!ctx) {\n throw new TypeError(\n \"[real-router] Invalid router instance — not found in internals registry\",\n );\n }\n\n return ctx as RouterInternals<D>;\n}\n\nexport function registerInternals<D extends DefaultDependencies>(\n router: RouterClass<D>,\n ctx: RouterInternals<D>,\n): void {\n internals.set(router, ctx);\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-argument -- internal chain execution: type safety enforced at public API boundary (PluginApi.addInterceptor) */\nfunction executeInterceptorChain<T>(\n interceptors: ((next: (...args: any[]) => any, ...args: any[]) => any)[],\n original: (...args: any[]) => T,\n args: any[],\n): T {\n let chain = original as (...args: any[]) => any;\n\n for (const interceptor of interceptors) {\n const prev = chain;\n\n chain = (...chainArgs: any[]) => interceptor(prev, ...chainArgs);\n }\n\n return chain(...args) as T;\n}\n\n/**\n * Variadic interceptor wrapper — wraps a function of any arity, returning the\n * same callable type `T`. Use {@link createBinaryInterceptable} instead when the\n * wrapped method takes exactly two args and the caller needs the precise\n * `(a, b) => r` signature preserved (the variadic form widens args to `any[]`).\n */\nexport function createInterceptable<T extends (...args: any[]) => any>(\n name: string,\n original: T,\n interceptors: Map<\n string,\n ((next: (...args: any[]) => any, ...args: any[]) => any)[]\n >,\n): T {\n return ((...args: any[]) => {\n const chain = interceptors.get(name);\n\n if (!chain || chain.length === 0) {\n return original(...args);\n }\n\n return executeInterceptorChain(chain, original, args);\n }) as T;\n}\n\n/**\n * Two-argument interceptor wrapper — preserves the exact `(a: A, b: B) => R`\n * signature, which the variadic {@link createInterceptable} cannot express\n * (it widens args to `any[]`). Used for the binary interceptable methods\n * `forwardState(routeName, routeParams)` and `buildPath(route, params)`.\n */\nexport function createBinaryInterceptable<A, B, R>(\n name: string,\n original: (a: A, b: B) => R,\n interceptors: Map<\n string,\n ((next: (...args: any[]) => any, ...args: any[]) => any)[]\n >,\n): (a: A, b: B) => R {\n return (arg1: A, arg2: B) => {\n const chain = interceptors.get(name);\n\n if (!chain || chain.length === 0) {\n return original(arg1, arg2);\n }\n\n return executeInterceptorChain(chain, original, [arg1, arg2]);\n };\n}\n/* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-argument */\n","function e(t,n){let r=t.path,i=r.startsWith(`~`),a=i?r.slice(1):r,o={name:t.name,path:a,absolute:i,children:[],parent:n};if(t.children)for(let n of t.children){let t=e(n,o);o.children.push(t)}return o}function t(t,n,r){let i=e({name:t,path:n},null);for(let t of r){let n=e(t,i);i.children.push(n)}return i}const n=`[^>]*`;function r(e){let t=!1;for(let n of e)if(n===`<`)t=!0;else if(n===`>`){if(!t)return!1;t=!1}return!t}const i=/[<>]/u,a=e=>e===58||e===42;function o(e){let t=[],n=0,r=!1;for(let i=0;i<e.length;i+=1){let a=e.charCodeAt(i);a===60?r=!0:a===62?r=!1:a===47&&!r&&(t.push(e.slice(n,i)),n=i+1)}return t.push(e.slice(n)),t}function s(e){let t=e.length;if(t===0)return{kind:`static`,text:``};if(!a(e.charCodeAt(0))){for(let n=0;n<t;n+=1){let r=e.charCodeAt(n);if(r===60)return{error:`constraint-in-static`};if(a(r)&&n+1<t&&e.charCodeAt(n+1)!==60)return{error:`fused-marker`}}return e.charCodeAt(t-1)===63?{error:`name-less`}:{kind:`static`,text:e}}let n=e.charCodeAt(0)===42,r=1;for(;r<t;){let t=e.charCodeAt(r);if(t===60||t===63)break;r+=1}let i=e.slice(1,r);if(i.length===0)return{error:`name-less`};if(a(i.charCodeAt(i.length-1)))return{error:`trailing-marker`};let o,s=!1;if(r<t)if(e.charCodeAt(r)===60){let n=e.indexOf(`>`,r+1);if(n===-1)return{error:`unbalanced-constraint`};if(n===r+1)return{error:`empty-constraint`};o=e.slice(r,n+1);let i=n+1;if(i<t)if(e.charCodeAt(i)===63)s=!0;else return{error:`fused-constraint-suffix`}}else s=!0;return n?s?{error:`optional-splat`}:{kind:`splat`,name:i}:o===void 0?{kind:`param`,name:i,optional:s}:{kind:`param`,name:i,constraint:o,optional:s}}function c(e){for(let t of o(e)){let e=s(t);if(`error`in e)return e.error}}function l(e){let t=o(e);for(let e=2;e<t.length;e+=1)if(t[e].startsWith(`*`)&&u(t[e-1])&&u(t[e-2]))return!0;return!1}function u(e){return e.startsWith(`:`)&&e.endsWith(`?`)}function d(e){return`(${e.slice(1,-1)})`}function f(e,t){try{return RegExp(`^${d(e)}$`)}catch{throw Error(`[buildParamMeta] Invalid constraint '${e}' on parameter '${t}': the body between '<' and '>' must be a valid regular expression (e.g. '<[0-9]+>', '<[a-z]+>').`)}}const p=new RegExp(String.raw`([:*]${`[^/?<]+`}(?:<${n}>)?)\\?(?=[/?]|$)`,`g`),m=RegExp(`<${n}>`,`g`),h=/\\?(.+)$/;function g(e){return e.replaceAll(m,e=>`<${`x`.repeat(e.length-2)}>`).replaceAll(p,`$1\\0`)}const _=Object.freeze([]),v=Object.freeze({}),ee=new Map,y=Object.freeze({urlParams:_,queryParams:_,spatParams:_,paramTypeMap:v,constraintPatterns:ee,pathPattern:``});function te(e,t,n,r,i){for(let a of o(e)){if(a.length===0)continue;let e=s(a);`error`in e||e.kind===`static`||(t.push(e.name),r[e.name]=`url`,e.kind===`splat`?n.push(e.name):e.constraint!==void 0&&i.set(e.name,{pattern:f(e.constraint,e.name),constraint:e.constraint}))}}function b(e){let t=[],n=[],r=[],i={},a=new Map,o=h.exec(g(e));if(o!==null){let t=e.slice(o.index+1).split(`&`);for(let e of t){let t=e.trim();t.length>0&&(n.push(t),i[t]=`query`)}e=e.slice(0,o.index)}return te(e,t,r,i,a),ne(t,n,r,i,a,e)}function ne(e,t,n,r,i,a){return{urlParams:e.length===0?_:e,queryParams:t.length===0?_:t,spatParams:n.length===0?_:n,paramTypeMap:e.length===0&&t.length===0?v:r,constraintPatterns:i.size===0?ee:i,pathPattern:a}}const re=/[^\\w!$'()*+,.:;|~-]/gu,ie=/[^\\w!$'()*+,.:;|~-]/u,ae=/[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?<![\\uD800-\\uDBFF])[\\uDC00-\\uDFFF]/g,x=e=>t=>{try{return e(t)}catch{return e(t.replaceAll(ae,`�`))}},oe=x(e=>e.replaceAll(re,e=>encodeURIComponent(e))),se={default:e=>ie.test(e)?oe(e):e,uri:x(encodeURI),uriComponent:x(encodeURIComponent),none:e=>e},ce={default:decodeURIComponent,uri:decodeURI,uriComponent:decodeURIComponent,none:e=>e},le=(e,t)=>{let n=se[t],r=String(e).split(`/`),i=n(r[0]);for(let e=1;e<r.length;e++)i+=`/`+n(r[e]);return i},S=Object.freeze(Object.create(null));function C(){return{staticChildren:S,hasChildren:!1,paramChild:void 0,splatChild:void 0,route:void 0,routeIsStrong:!1,slashChildRoute:void 0}}function w(e){return e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e}function ue(e,t){return e===``?t:t===``?e:e+t}function T(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function de(e){let t=0;for(;t<e.length;)if(e.codePointAt(t)===37){if(t+2>=e.length)return!1;let n=e.codePointAt(t+1)??0,r=e.codePointAt(t+2)??0;if(!T(n)||!T(r))return!1;t+=3}else t++;return!0}const fe=Object.freeze([]),E=Object.freeze(new Set),pe=Object.freeze(new Map),me=Object.freeze([]),he=Object.freeze({}),ge=Object.freeze({}),_e=RegExp(`<${n}>`,`g`);function ve(e,t,n){let r=t.has(e.name);return{paramName:e.name,isOptional:e.kind===`param`?e.optional:!1,encoder:r?e=>le(e,n):se[n]}}function ye(e,t,n){let r=new Set,i=new Set;for(let e of t){for(let t of e.paramMeta.urlParams)r.add(t);for(let t of e.paramMeta.spatParams)i.add(t)}if(r.size===0)return{buildStaticParts:[e],buildParamSlots:me};let a=[],c=[],l=``,u=o(e);for(let[e,t]of u.entries()){e>0&&(l+=`/`);let r=s(t);if(`error`in r||r.kind===`static`){l+=t;continue}a.push(l),l=``,c.push(ve(r,i,n))}return a.push(l),{buildStaticParts:a,buildParamSlots:c}}function D(e,t,n){throw Error(`[SegmentMatcher.registerTree] Parameter name conflict at the same path position: '${n}${e}' and '${n}${t}'. A parametric URL segment binds to a single name across every route that shares that position — the value cannot be captured under two names. Rename one so both routes agree (e.g. use '${n}${e}' in both).`)}function O(){throw Error(`[SegmentMatcher.registerTree] Empty parameter name: a parameter marker (':' or '*') or an optional '?' must be followed by a name (e.g. ':id', '*rest', ':id?'). A name-less marker or modifier would capture under an empty key at match but emit a literal at build — the two disagree, so it is rejected.`)}function be(e){throw Error(`[SegmentMatcher.registerTree] Fused parameter marker in segment \"${e}\": a ':'/'*' marker must begin a segment (e.g. 'a/:b', not 'a:b'). build extracts it as a param while the trie treats the segment as a literal — the two disagree.`)}function xe(e){throw Error(`[SegmentMatcher.registerTree] Trailing parameter marker in segment \"${e}\": a param name cannot end in a bare ':' or '*' (e.g. ':y*' — the name is 'y' plus a stray marker). build/meta would capture the marker into the name while the gate rejects it as name-less — the two disagree, so it is rejected.`)}function Se(e){throw Error(`[SegmentMatcher.registerTree] Two optional params directly before a splat in \"${e}\": a single trie slot carries only one optional→splat fork, so the outer optional would overwrite the inner and the omit-outer/take-inner form would silently reshape into the splat. Split into separate routes, or drop the '?' on one.`)}function Ce(e){throw Error(`[SegmentMatcher.registerTree] Non-ASCII static segment \"${e}\": match rejects non-ASCII input and compares static keys raw, so this route would never match. Percent-encode it (e.g. \"/caf%C3%A9\") or use a param.`)}function we(e){throw Error(`[SegmentMatcher.registerTree] Optional splat \"${e}\" is not supported: a splat cannot be optional — build emits multi-segment URLs the matcher rejects. Use a required splat \"*name\".`)}function Te(e){throw Error(`[SegmentMatcher.registerTree] Optional param \":${e}?\" before a splat must be constrained: an unconstrained optional before a splat is ambiguous (every multi-segment value has two readings). Add a constraint, e.g. \":${e}<[a-z]+>?\", or model it as two routes.`)}function Ee(e){throw Error(`[SegmentMatcher.registerTree] Unbalanced constraint delimiter ('<' or '>') in path \"${e}\": every '<' must be closed by a '>'. A stray delimiter desyncs match vs build (buildPath would emit a URL match rejects).`)}function De(e){throw Error(`[SegmentMatcher.registerTree] Empty constraint '<>' in path \"${e}\": a constraint body must be non-empty (e.g. '<[0-9]+>'). An empty '<>' compiles to a never-matching pattern.`)}function Oe(e){throw Error(`[SegmentMatcher.registerTree] Text fused to a constraint '>' in path \"${e}\": a '<...>' constraint must end its segment or be followed by '/' or an optional '?' — use \"/:id<...>/rest\", not \"/:id<...>rest\".`)}function ke(e){throw Error(`[SegmentMatcher.registerTree] Constraint '<...>' in a static segment in path \"${e}\": a '<...>' constraint must follow a parameter marker (':' or '*') — a static segment carrying '<...>' is silently stripped. Attach it to a param (e.g. \"/:id<...>\") or drop it.`)}function Ae(e,t,n){switch(e){case`name-less`:return O();case`trailing-marker`:return xe(t);case`fused-marker`:return be(t);case`optional-splat`:return we(t);case`empty-constraint`:return De(n);case`fused-constraint-suffix`:return Oe(n);case`constraint-in-static`:return ke(n);case`unbalanced-constraint`:return Ee(n)}}function je(e,t){let n=new Set,r=``;for(let e of t){if(n.has(e)){r=e;break}n.add(e)}throw Error(`[SegmentMatcher.registerTree] Duplicate parameter name ':${r}' in route \"${e}\": a param name must be unique within a route — two positions cannot both bind ':${r}' (the second silently overwrites the first). Rename one.`)}function Me(e,t){throw Error(`[SegmentMatcher.registerTree] Invalid query-param declaration \"${t}\" in route \"${e}\": a query-param name cannot contain '<' or '>'. This is a reverse-order modifier typo that leaked a constraint into the query — put the optional '?' AFTER the constraint (':id<...>?', not ':id?<...>'). It would never round-trip.`)}function Ne(e,t){throw Error(`[SegmentMatcher.registerTree] Name collision in route \"${e}\": \"${t}\" is declared as BOTH a path param (':${t}') and a query param ('?${t}'). buildPath would emit its value twice (once in the path, once in the query). Rename one.`)}function Pe(e,t){throw Error(`[SegmentMatcher.registerTree] Duplicate route path: routes \"${e}\" and \"${t}\" resolve to the same URL. The later registration would silently shadow the earlier (its deep link would resolve to the other route). Give them distinct paths.`)}function Fe(e,t){throw Error(`[SegmentMatcher.registerTree] Index route \"${e}\" (path \"/\") under the dynamic parent \"${t}\" is not supported: the index cannot reliably replace the parent on every form of its path — under an optional param it binds only the present form, under a splat it is unreachable. Give the index a distinct path, or make the parent static.`)}function k(e){let t=s(e);return(`error`in t||t.kind===`static`)&&O(),t.name}function A(e,t,n){return e.paramChild?e.paramChild.name!==t&&!n.has(e)&&D(e.paramChild.name,t,`:`):(e.paramChild={node:C(),name:t,fork:void 0},n.add(e)),e.paramChild.node}function Ie(e,t,n,r,i,a){let o=t.constraintPatterns.get(n)?.pattern;if(e.paramChild&&e.splatChild){o===void 0&&Te(n),e.paramChild.fork={constraint:o};return}let s=i+1;if(s<=a){let t=r.indexOf(`/`,s),n=r.slice(s,t===-1?a:t);e.paramChild&&n.startsWith(`:`)&&!n.endsWith(`?`)&&(e.paramChild.fork={skipName:k(n)})}}function Le(e,t,n){if(!t.hasConstraints||!n.startsWith(`:`)||e.paramChild===void 0)return;let r=t.constraintPatterns.get(k(n))?.pattern;if(r===void 0)return;let i=e.paramChild;i.fork?.constraint===void 0?i.fork={...i.fork,constraint:r}:i.fork.constraint.source!==r.source&&(i.fork={...i.fork,constraint:RegExp(`(?:${i.fork.constraint.source})|(?:${r.source})`,i.fork.constraint.flags)})}function Re(e,t,n){return e.splatChild?e.splatChild.name!==t&&!n.has(e)&&D(e.splatChild.name,t,`*`):(e.splatChild={node:C(),name:t},n.add(e)),e.splatChild.node}function j(e,t){e.route!==void 0&&e.route!==t&&e.routeIsStrong===!0&&Pe(e.route.name,t.name),e.route=t,e.routeIsStrong=!0}function ze(e){for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>=128)return!0;return!1}function Be(e,t,n){let r=w(n);if(r===`/`){j(e.root,t);return}let i=new Set,a=new Map;M(e,e.root,r,1,t,i,a)}function M(e,t,n,r,i,a,o){let s=o.get(t);if(s===void 0)s=new Set,o.set(t,s);else if(s.has(r))return;s.add(r);let c=n.length;for(;r<=c;){let s=n.indexOf(`/`,r),l=s===-1?c:s,u=n.slice(r,l);if(u.endsWith(`?`)){let r=k(u);M(e,A(t,r,a),n,l+1,i,a,o),l>=c?t.route??=i:M(e,t,n,l+1,i,a,o),Ie(t,i,r,n,l,c);return}let d=t;t=N(e,t,u,a),Le(d,i,u),r=l+1}j(t,i)}function Ve(e,t,n){let r=n.slice(n.lastIndexOf(`/`)+1),i=n.split(`/`).some(e=>e.startsWith(`:`)&&e.endsWith(`?`)),a=r.startsWith(`*`);(i||a)&&Fe(t.name,n);let o=He(e,n);o.slashChildRoute=t}function He(e,t){return Ue(e,e.root,t)}function Ue(e,t,n){let r=w(n);if(r===`/`||r===``)return t;let i=t,a=1,o=r.length,s=new Set;for(;a<=o;){let t=r.indexOf(`/`,a),n=t===-1?o:t;if(n<=a)break;let c=r.slice(a,n);i=N(e,i,c,s),a=n+1}return i}function N(e,t,n,r){if(n.startsWith(`*`)){let e=Re(t,k(n),r);return t.hasChildren=!0,e}if(n.startsWith(`:`)){let e=A(t,k(n),r);return t.hasChildren=!0,e}ze(n)&&Ce(n);let i=e.options.caseSensitive?n:n.toLowerCase();return i in t.staticChildren||(t.staticChildren===S&&(t.staticChildren=Object.create(null)),t.staticChildren[i]=C(),t.hasChildren=!0),t.staticChildren[i]}function P(e,t,n,i,a){let c=t.fullName===``;c||i.push(t);let u=t.absolute,d=t.paramMeta===y?t.path:t.paramMeta.pathPattern,f=u&&d.startsWith(`~`)?d.slice(1):d,p=u?f:d;r(p)||Ee(p);for(let e of o(p)){let t=s(e);`error`in t&&Ae(t.error,e,p)}let m=p.replaceAll(_e,``);l(p)&&Se(p);let h=u?m:ue(n,m),g=c?a:We(e,t,h,u?``:n,i,a);for(let n of t.children.values())P(e,n,h,i,g);c||i.pop()}function We(e,t,n,r,i,a){let o=Ye(n,r),s=Object.freeze([...i]),c=Ge(s),l=w(n),u=Xe(e.rootQueryParams,i),d=Ze(i),{buildStaticParts:f,buildParamSlots:p}=ye(o?w(r):l,o?i.slice(0,-1):i,e.options.urlParamsEncoding),m=p.map(e=>e.paramName),h=m.length===0?E:new Set(m);h.size!==m.length&&je(t.fullName,m),Qe(t.fullName,u,h);let g={name:t.fullName,parent:a,matchSegments:s,meta:c,declaredQueryParams:u,declaredQueryParamsSet:u.length===0?E:new Set(u),hasTrailingSlash:n.length>1&&n.endsWith(`/`),constraintPatterns:d,hasConstraints:d.size>0,buildStaticParts:f,buildParamSlots:p,buildParamNamesSet:h,cachedResult:void 0};return t.paramMeta.urlParams.length===0&&(g.cachedResult=Object.freeze({segments:g.matchSegments,params:he,meta:g.meta})),e.routesByName.set(t.fullName,g),o?qe(e,g,r):Je(e,g,n,l,t),g}function Ge(e){let t;for(let n of e)Ke(n.paramTypeMap)&&(t??={},t[n.fullName]=n.paramTypeMap);return t===void 0?ge:Object.freeze(t)}function Ke(e){for(let t in e)if(Object.hasOwn(e,t))return!0;return!1}function qe(e,t,n){Ve(e,t,n);let r=w(n),i=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.has(i)&&e.staticCache.set(i,t)}function Je(e,t,n,r,i){if(Be(e,t,n),i.paramMeta.urlParams.length===0){let n=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.set(n,t)}}function Ye(e,t){return w(e)===w(t)}function Xe(e,t){let n=[];e.length>0&&n.push(...e);for(let e of t)e.paramMeta.queryParams.length>0&&n.push(...e.paramMeta.queryParams);return n.length===0?fe:n}function Ze(e){let t=new Map;for(let n of e)for(let[e,r]of n.paramMeta.constraintPatterns)t.set(e,r);return t.size===0?pe:t}function Qe(e,t,n){for(let r of t)i.test(r)&&Me(e,r),n.has(r)&&Ne(e,r)}function $e(e){return typeof e==`string`?e:typeof e==`object`?JSON.stringify(e):String(e)}function F(e,t,n){t===`__proto__`?Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}var et=class{get options(){return this.#e}#e;#t=C();#n=new Map;#r=new Map;#i={cleanPath:``,normalized:``,queryString:void 0};#a=[];#o=``;#s;#c;constructor(e){this.#e={caseSensitive:e.caseSensitive??!0,strictTrailingSlash:e.strictTrailingSlash??!1,strictQueryParams:e.strictQueryParams??!1,urlParamsEncoding:e.urlParamsEncoding??`default`,parseQueryString:e.parseQueryString,buildQueryString:e.buildQueryString},this.#s=this.#e.caseSensitive,this.#c=this.#e.urlParamsEncoding===`none`?null:ce[this.#e.urlParamsEncoding]}registerTree(e){this.#a=e.paramMeta.queryParams,P({root:this.#t,options:this.#e,routesByName:this.#n,staticCache:this.#r,rootQueryParams:this.#a},e,``,[],null)}match(e){if(!this.#p(e))return;let{cleanPath:t,normalized:n,queryString:r}=this.#i,i=this.#s?n:n.toLowerCase(),a=this.#r.get(i);if(a)return this.#e.strictTrailingSlash&&!this.#_(t,a)?void 0:r===void 0&&a.cachedResult?a.cachedResult:this.#h(a,{},r);let o={},s=this.#v(n,o);if(s&&!(this.#e.strictTrailingSlash&&!this.#_(t,s))&&this.#S(o)&&!(s.hasConstraints&&!this.#w(o,s)))return this.#h(s,o,r)}buildPath(e,t,n){let r=this.#n.get(e);if(!r)throw Error(`[SegmentMatcher.buildPath] '${e}' is not defined`);r.hasConstraints&&t&&this.#l(r,e,t);let i=this.#u(r,t),a=this.#d(i,n?.trailingSlash),o=this.#f(r,t,n?.queryParamsMode);return a+(o?`?${o}`:``)}getSegmentsByName(e){return this.#n.get(e)?.matchSegments}getMetaByName(e){return this.#n.get(e)?.meta}hasRoute(e){return this.#n.has(e)}#l(e,t,n){for(let[r,i]of e.constraintPatterns){let e=n[r];if(e!=null){let n=typeof e==`object`?JSON.stringify(e):String(e);if(!i.pattern.test(n))throw Error(`[SegmentMatcher.buildPath] '${t}' — param '${r}' value '${n}' does not match constraint '${i.constraint}'`)}}}#u(e,t){let n=e.buildStaticParts,r=e.buildParamSlots;if(r.length===0)return n[0];let i=n[0];for(let[e,a]of r.entries()){let r=t?.[a.paramName];if(r==null){if(!a.isOptional)throw Error(`[SegmentMatcher.buildPath] Missing required param '${a.paramName}'`);i.length>1?i=i.slice(0,-1):n[e+1].startsWith(`/`)&&(i=``),i+=n[e+1];continue}if(r===``&&!a.isOptional)throw Error(`[SegmentMatcher.buildPath] Missing required param '${a.paramName}' (empty string)`);let o=a.encoder($e(r));i+=o+n[e+1]}return i}#d(e,t){return t===`always`&&!e.endsWith(`/`)?`${e}/`:t===`never`&&e!==`/`&&e.endsWith(`/`)?e.slice(0,-1):e}#f(e,t,n){if(!t||e.declaredQueryParams.length===0&&n!==`loose`)return``;let r={},i=!1;for(let n of e.declaredQueryParams)n in t&&(r[n]=t[n],i=!0);if(n===`loose`)for(let n in t)Object.hasOwn(t,n)&&!e.declaredQueryParamsSet.has(n)&&!e.buildParamNamesSet.has(n)&&(r[n]=t[n],i=!0);return i?this.#e.buildQueryString(r):``}#p(e){if(e===``&&(e=`/`),e.codePointAt(0)!==47)return!1;let t=this.#m(e);if(t===-2)return!1;t===-3&&(e=this.#o);let n=t>=0?e.slice(0,t):e,r=t>=0?e.slice(t+1):void 0;if(r!==void 0){let e=r.indexOf(`#`);e!==-1&&(r=r.slice(0,e))}let i=w(n);return this.#i.cleanPath=n,this.#i.normalized=i,this.#i.queryString=r,!0}#m(e){let t=!1;for(let n=0;n<e.length;n++){let r=e.codePointAt(n);if(r===35)return this.#o=e.slice(0,n),-3;if(r===63)return n;if(r>=128)return-2;if(r===47){if(t)return-2;t=!0}else t=!1}return-1}#h(e,t,n){if(!(n!==void 0&&!this.#g(e,t,n)))return{segments:e.matchSegments,params:t,meta:e.meta}}#g(e,t,n){let r;try{r=this.#e.parseQueryString(n)}catch{return!1}if(this.#e.strictQueryParams){let n=e.declaredQueryParamsSet;for(let e in r){if(!n.has(e))return!1;F(t,e,r[e])}}else for(let e in r)F(t,e,r[e]);return!0}#_(e,t){return(e.length>1&&e.endsWith(`/`))===t.hasTrailingSlash}#v(e,t){return e.length===1?this.#t.slashChildRoute??this.#t.route:this.#y(this.#t,e,1,t)}#y(e,t,n,r){let i=e,a=t.length,o=this.#s;for(;n<=a;){let e=t.indexOf(`/`,n),s=e===-1?a:e,c=t.slice(n,s),l=o?c:c.toLowerCase(),u;if(l in i.staticChildren)u=i.staticChildren[l];else if(i.paramChild){let e=i.paramChild,o=e.fork;if(i.splatChild!==void 0){if(o?.constraint!==void 0&&!this.#x(o.constraint,c))return this.#b(i.splatChild,t,n,r);let l={[o?.skipName!==void 0&&s>=a?o.skipName:e.name]:c},u=this.#y(e.node,t,s+1,l);return u!==void 0&&(!u.hasConstraints||this.#C(u,l))?(Object.assign(r,l),u):this.#b(i.splatChild,t,n,r)}u=e.node,o?.skipName!==void 0&&s>=a?r[o.skipName]=c:r[e.name]=c}else if(i.splatChild)return this.#b(i.splatChild,t,n,r);else return;i=u,n=s+1}return i.slashChildRoute??i.route}#b(e,t,n,r){let i=e.node;if(!i.hasChildren)return r[e.name]=t.slice(n),i.route;let a={},o=this.#y(i,t,n,a);return o&&(!o.hasConstraints||this.#C(o,a))?(Object.assign(r,a),o):(r[e.name]=t.slice(n),i.route)}#x(e,t){try{return e.test(this.#c?this.#c(t):t)}catch{return!1}}#S(e){let t=this.#c;if(!t)return!0;for(let n in e){let r=e[n];if(r.includes(`%`)){if(!de(r))return!1;try{e[n]=t(r)}catch{return!1}}}return!0}#C(e,t){let n=this.#c;for(let[r,i]of e.constraintPatterns){if(!Object.hasOwn(t,r))continue;let e=t[r];if(n&&e.includes(`%`))try{e=n(e)}catch{return!1}if(!i.pattern.test(e))return!1}return!0}#w(e,t){for(let[n,r]of t.constraintPatterns)if(Object.hasOwn(e,n)&&!r.pattern.test(e[n]))return!1;return!0}};const tt=Object.freeze(new Map),nt=Object.freeze([]);function rt(e){return e.parent?.name?`${e.parent.fullName}.${e.name}`:e.name}function it(e){let t=new Map;for(let n of e)t.set(n.name,n);return t}function at(e,t){let n=[],r=[];for(let i of e){let e=I(i,t);n.push(e),e.absolute||r.push(e)}return{childrenMap:it(n),nonAbsoluteChildren:r}}function I(e,t){let n=b(e.path),r=n.urlParams.length===0&&n.queryParams.length===0&&n.spatParams.length===0&&n.constraintPatterns.size===0&&n.pathPattern===e.path?y:n,i=r.paramTypeMap,a={name:e.name,path:e.path,absolute:e.absolute,parent:t,children:void 0,paramMeta:r,nonAbsoluteChildren:void 0,fullName:``,paramTypeMap:i};if(a.fullName=rt(a),e.children.length===0)a.children=tt,a.nonAbsoluteChildren=nt;else{let{childrenMap:t,nonAbsoluteChildren:n}=at(e.children,a);a.children=t,a.nonAbsoluteChildren=n,Object.freeze(a.nonAbsoluteChildren),Object.freeze(a.children)}return Object.freeze(i),Object.freeze(r.urlParams),Object.freeze(r.queryParams),Object.freeze(r.spatParams),Object.freeze(r),Object.freeze(a),a}function ot(e){return I(e,null)}function st(e,n,r){return ot(t(e,n,r))}function ct(e,t){let n=[],r=t.includes(`.`)?t.split(`.`):[t];e.path!==``&&n.push(e);let i=e;for(let e of r){let t=i.children.get(e);if(!t)return null;n.push(t),i=t}return n}function L(e){let t=e.absolute?`~${e.path}`:e.path,n={name:e.name,path:t};return e.children.size>0&&(n.children=Array.from(e.children.values(),L)),n}function lt(e){return Array.from(e.children.values(),L)}const R=e=>{let t=e.indexOf(`%`),n=e.indexOf(`+`);if(t===-1&&n===-1)return e;let r=n===-1?e:e.replaceAll(`+`,` `);return t===-1?r:decodeURIComponent(r)},z=(e,t)=>{if(e===void 0)return t.boolean.decodeUndefined();let n=t.boolean.decodeRaw(e);if(n!==null)return n;let r=R(e),i=t.number.decode(r);return i===null?t.boolean.decodeValue(r):i},ut=/[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?<![\\uD800-\\uDBFF])[\\uDC00-\\uDFFF]/g,B=e=>{try{return encodeURIComponent(e)}catch(t){if(!(t instanceof URIError))throw t;return encodeURIComponent(String(e).replaceAll(ut,`�`))}},V=e=>{let t=typeof e;if(t!==`string`&&t!==`number`&&t!==`boolean`)throw TypeError(`[search-params] Array element must be a string, number, or boolean — received ${t}`);return B(e)},H=(e,t,n,r)=>{let i=`${e}${n}`,a=[];for(let e of t)if(e===null){let e=r.encode(i);e&&a.push(e)}else a.push(`${i}=${V(e)}`);return a.join(`&`)},U={none:{encodeArray:(e,t,n)=>H(e,t,``,n)},brackets:{encodeArray:(e,t,n)=>H(e,t,`[]`,n)},index:{encodeArray:(e,t,n)=>{let r=[];for(let[i,a]of t.entries()){let t=`${e}[${i}]`;if(a===null){let e=n.encode(t);e&&r.push(e)}else r.push(`${t}=${V(a)}`)}return r.join(`&`)},indexed:!0},comma:{encodeArray:(e,t)=>{let n=[];for(let e of t)e!==null&&n.push(V(e));return n.length===0?``:`${e}=${n.join(`,`)}`},decodeValue:e=>e.includes(`,`)?e.split(`,`):null}},W={none:{encode:(e,t)=>`${e}=${t}`,decodeUndefined:()=>null,decodeRaw:()=>null,decodeValue:e=>e},auto:{encode:(e,t)=>`${e}=${t}`,decodeUndefined:()=>null,decodeRaw:e=>e===`true`?!0:e===`false`?!1:null,decodeValue:e=>e},\"empty-true\":{encode:(e,t)=>t?e:`${e}=false`,decodeUndefined:()=>!0,decodeRaw:e=>e===`true`?!0:e===`false`?!1:null,decodeValue:e=>e}},G={default:{encode:e=>e},hidden:{encode:()=>``}},K={auto:{decode:e=>{let t=e.length;if(t===0)return null;let n=+(e.codePointAt(0)===45);if(n===t||t-n>1&&e.codePointAt(n)===48&&e.codePointAt(n+1)!==46)return null;let r=!1;for(let i=n;i<t;i++){let a=e.codePointAt(i);if(!(a!==void 0&&a>=48&&a<=57)){if(a===46&&!r&&i!==n&&i!==t-1){r=!0;continue}return null}}let i=Number(e);return Object.is(i,-0)||!Number.isSafeInteger(i)&&!r?null:i}},none:{decode:()=>null}},q=(e,t,n,r)=>{if(e===void 0)throw TypeError(`[search-params] Unknown ${t} \"${n}\" — expected ${r}`);return e},dt=(e,t,n,r)=>({boolean:q(W[t],`booleanFormat`,t,`\"none\" | \"auto\" | \"empty-true\"`),null:q(G[n],`nullFormat`,n,`\"default\" | \"hidden\"`),number:q(K[r],`numberFormat`,r,`\"none\" | \"auto\"`),array:q(U[e],`arrayFormat`,e,`\"none\" | \"brackets\" | \"index\" | \"comma\"`)}),ft={boolean:W.auto,null:G.default,number:K.auto,array:U.none},J={arrayFormat:`none`,booleanFormat:`auto`,nullFormat:`default`,numberFormat:`auto`},pt={...J,strategies:ft},Y=e=>{if(!e||e.arrayFormat===void 0&&e.booleanFormat===void 0&&e.nullFormat===void 0&&e.numberFormat===void 0)return pt;let t=e.arrayFormat??J.arrayFormat,n=e.booleanFormat??J.booleanFormat,r=e.nullFormat??J.nullFormat,i=e.numberFormat??J.numberFormat;return{arrayFormat:t,booleanFormat:n,nullFormat:r,numberFormat:i,strategies:dt(t,n,r,i)}},X=e=>B(e),mt=(e,t,n)=>{let r=X(e);switch(typeof t){case`string`:case`number`:return`${r}=${X(t)}`;case`boolean`:return n.strategies.boolean.encode(r,t);case`object`:return t===null?n.strategies.null.encode(r):Array.isArray(t)?n.strategies.array.encodeArray(r,t,n.strategies.null):`${r}=${X(t)}`;default:return`${r}=${X(t)}`}};function Z(e,t,n){t===`__proto__`?Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}function ht(e,t,n,r){if(!Object.hasOwn(e,t)){Z(e,t,r?[n]:n);return}let i=e[t];Array.isArray(i)?i.push(n):Z(e,t,[i,n])}function gt(e,t,n,r,i){return z(r?e.slice(t+1,n):void 0,i)}function _t(e,t,n){let r=t+1,i=0,a=!1;for(;r<n;){let t=e.codePointAt(r);if(t===93)return a?i:null;if(t!==void 0&&t>=48&&t<=57){i=i*10+(t-48),a=!0,r++;continue}return null}return null}function vt(e,t,n){let{searchPart:r,nameEnd:i,nameSourceEnd:a,eqPos:o,end:s,hasValue:c,decodedName:l}=e,u=_t(r,i,a);if(u===null)return!1;let d=gt(r,o,s,c,t),f=n.get(l);return f===void 0?n.set(l,[[u,d]]):f.push([u,d]),!0}function yt(e,t,n,r,i,a,o){let s=a!==-1&&a<n,c=s?a:n,l=c,u=!1;for(let n=t;n<c;n++)if(e.codePointAt(n)===91){l=n,u=!0;break}let d=R(e.slice(t,l));if(!(o!==void 0&&u&&vt({searchPart:e,nameEnd:l,nameSourceEnd:c,eqPos:a,end:n,hasValue:s,decodedName:d},i,o))){if(!u&&s&&i.array.decodeValue){let t=e.slice(a+1,n),o=i.array.decodeValue(t);if(o){for(let e of o)ht(r,d,z(e,i),!0);return}}ht(r,d,gt(e,a,n,s,i),u)}}const bt=(e,t)=>{if(e===``||e===`?`)return{};let n={};return xt(e,n,Y(t).strategies),n};function xt(e,t,n){let r=n.array.indexed?new Map:void 0,i=0,a=e.length,o=-2;for(;i<a;){let s=e.indexOf(`&`,i);s===-1&&(s=a),s>i&&(o!==-1&&o<i&&(o=e.indexOf(`=`,i)),yt(e,i,s,t,n,o,r)),i=s+1}if(r!==void 0)for(let[e,n]of r)n.sort((e,t)=>e[0]-t[0]),Z(t,e,n.map(e=>e[1]))}const St=(e,t)=>{let n=Object.keys(e);if(n.length===0)return``;let r=Y(t),i=[];for(let t of n){let n=e[t];if(n===void 0)continue;let a=mt(t,n,r);a&&i.push(a)}return i.join(`&`)};function Ct(e){let t=e?.queryParams;return new et({...e?.caseSensitive!==void 0&&{caseSensitive:e.caseSensitive},...e?.strictTrailingSlash!==void 0&&{strictTrailingSlash:e.strictTrailingSlash},...e?.strictQueryParams!==void 0&&{strictQueryParams:e.strictQueryParams},...e?.urlParamsEncoding!==void 0&&{urlParamsEncoding:e.urlParamsEncoding},parseQueryString:e=>bt(e,t),buildQueryString:e=>St(e,t)})}function Q(e,t){return TypeError(`[router.${e}] ${t}`)}function wt(e,t,n){if(!r(e))throw Q(n,`Invalid path for route \"${t}\": unbalanced constraint delimiter ('<' or '>') in \"${e}\"`);if(e.includes(`<>`))throw Q(n,`Invalid path for route \"${t}\": empty constraint '<>' in \"${e}\" (a constraint body must be non-empty, e.g. '<[0-9]+>')`)}function Tt(e,t,n,r){let i=new Set;for(let a of e){if(i.has(a))throw Q(n,`Invalid path for route \"${t}\": duplicate parameter name ':${a}' in \"${r}\" (a param name must be unique within a route — the second binding would overwrite the first)`);i.add(a)}}function Et(e,t,n,r,a){let o=new Set(e);for(let e of t){if(i.test(e))throw Q(r,`Invalid path for route \"${n}\": invalid query-param name \"${e}\" in \"${a}\" (a query-param name cannot contain '<' or '>' — a reverse-order modifier typo that leaked a constraint into the query; put the optional '?' after the constraint, ':id<...>?')`);if(o.has(e))throw Q(r,`Invalid path for route \"${n}\": \"${e}\" is declared as both a path param and a query param in \"${a}\" — buildPath would emit its value twice (rename one)`)}}function Dt(e){let t=!0,n=!1,r=!1;for(let i of e){if(r){r=i!==`>`;continue}if(i===`<`){r=!0;continue}if(i===`/`){t=!0;continue}if(t&&=(n=i===`:`||i===`*`,!1),!n&&i.codePointAt(0)>=128)return!0}return!1}function Ot(e){for(let t=1;t<e.length;t++)if(e[t]===`?`&&e[t-1]!==`>`&&e[t+1]===`/`&&e[t+2]===`*`)return!0;return!1}function kt(e,t,n,r){if(l(e))throw Q(r,`Invalid path for route \"${t}\": two optional params directly before a splat are not supported in \"${n}\" — a single trie slot carries one optional→splat fork, so the omit-outer/take-inner form would silently reshape into the splat. Split into two routes, or drop the '?' on one`);if(Ot(e))throw Q(r,`Invalid path for route \"${t}\": an unconstrained optional param before a splat is not supported in \"${n}\" — it is ambiguous (every multi-segment value has two readings). Add a constraint (e.g. ':lang<[a-z]+>?') or model it as two routes`)}function At(e,t,n){switch(e){case`name-less`:case`trailing-marker`:return`Invalid path for route \"${t}\": parameter marker (':' or '*') without a name in \"${n}\"`;case`fused-marker`:return`Invalid path for route \"${t}\": parameter marker (':' or '*') must begin a segment, but \"${n}\" fuses one to a static prefix (use a boundary marker like \"/a/:b\")`;case`fused-constraint-suffix`:return`Invalid path for route \"${t}\": text fused to a constraint '>' in \"${n}\" (a '<...>' must end its segment or be followed by '/' or an optional '?' — use \"/:id<...>/rest\", not \"/:id<...>rest\")`;case`constraint-in-static`:return`Invalid path for route \"${t}\": constraint '<...>' in a static segment in \"${n}\" (a '<...>' must follow a parameter marker ':' or '*' — attach it to a param like \"/:id<...>\", or drop it)`;case`optional-splat`:return`Invalid path for route \"${t}\": optional splat ('*name?') is not supported in \"${n}\" — a splat cannot be optional (use a required splat '*name')`;case`unbalanced-constraint`:case`empty-constraint`:return`Invalid path for route \"${t}\": invalid constraint in \"${n}\"`}}function jt(e,t,n){try{return b(e)}catch(r){throw Q(n,`Invalid path for route \"${t}\": ${(r instanceof Error?r.message:String(r)).replace(/^\\[buildParamMeta] /,``)} (in \"${e}\")`)}}function Mt(e,t,n,r){if(typeof e!=`string`){let t;throw t=e===null?`null`:Array.isArray(e)?`array`:typeof e,Q(n,`Route path must be a string, got ${t}`)}if(e===``)return;if(/\\s/.test(e))throw Q(n,`Invalid path for route \"${t}\": whitespace not allowed in \"${e}\"`);if(!/^([/?~]|[^/]+$)/.test(e))throw Q(n,`Route \"${t}\" has invalid path format: \"${e}\". Path should start with '/', '~', '?' or be a relative segment.`);if(e.includes(`//`))throw Q(n,`Invalid path for route \"${t}\": double slashes not allowed in \"${e}\"`);wt(e,t,n);let{pathPattern:i,urlParams:a,queryParams:o}=jt(e,t,n);Tt(a,t,n,e),Et(a,o,t,n,e);let s=c(i);if(s!==void 0)throw Q(n,At(s,t,e));if(kt(i,t,e,n),Dt(i))throw Q(n,`Invalid path for route \"${t}\": non-ASCII static segment in \"${e}\" — match compares static segments raw and rejects non-ASCII input, so this route would never match. Percent-encode it (e.g. '/caf%C3%A9') or use a param`);let l=r&&r.paramMeta.urlParams.length>0;if(e.startsWith(`~`)&&l)throw Q(n,`Absolute path \"${e}\" cannot be used under parent route with URL parameters`)}const Nt=/^[A-Z_a-z][\\w-]*$/,Pt=/\\S/,Ft=1e4;function $(e){if(e===null)return`null`;if(typeof e==`object`){try{let t=e.constructor;if(typeof t==`function`&&t.name!==`Object`)return t.name||`object`}catch{}return`object`}return typeof e}function It(e){for(let t of Object.keys(e)){let n=Object.getOwnPropertyDescriptor(e,t);if(n&&(n.get||n.set))return!0}return!1}function Lt(e,t){if(!e||typeof e!=`object`)throw TypeError(`[router.${t}] Route must be an object, got ${$(e)}`);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`[router.${t}] Route must be a plain object, got ${$(e)}`);if(It(e))throw TypeError(`[router.${t}] Route must not have getters or setters`)}function Rt(e,t){if(e.encodeParams!==void 0&&typeof e.encodeParams!=`function`)throw TypeError(`[router.${t}] Route \"${String(e.name)}\" encodeParams must be a function`)}function zt(e,t){if(e.decodeParams!==void 0&&typeof e.decodeParams!=`function`)throw TypeError(`[router.${t}] Route \"${String(e.name)}\" decodeParams must be a function`)}function Bt(e,t){if(typeof e.name!=`string`)throw TypeError(`[router.${t}] Route name must be a string, got ${$(e.name)}`);let n=e.name;if(n===``)throw TypeError(`[router.${t}] Route name cannot be empty`);if(!Pt.test(n))throw TypeError(`[router.${t}] Route name cannot contain only whitespace`);if(n.length>Ft)throw TypeError(`[router.${t}] Route name exceeds maximum length of ${Ft} characters`);if(!n.startsWith(`@@`)){if(n.includes(`.`))throw TypeError(`[router.${t}] Route name \"${n}\" cannot contain dots. Use children array or { parent } option in addRoute() instead.`);if(!Nt.test(n))throw TypeError(`[router.${t}] Invalid route name \"${n}\". Name must start with a letter or underscore, followed by letters, numbers, underscores, or hyphens.`)}}function Vt(e,t){if(!t.includes(`.`))return e.children.get(t);let n=e;for(let e of t.split(`.`))if(n=n.children.get(e),!n)return;return n}function Ht(e,t,n){if(Vt(e,t))throw Error(`[router.${n}] Route \"${t}\" already exists`)}function Ut(e,t,n){if(e.has(t))throw Error(`[router.${n}] Duplicate route \"${t}\" in batch`);e.add(t)}function Wt(e,t,n,r){let i=t===``?e:Vt(e,t);if(i){for(let e of i.children.values())if(e.path===n)throw Error(`[router.${r}] Path \"${n}\" is already defined`)}}function Gt(e,t,n,r){let i=e.get(t);if(i?.has(n))throw Error(`[router.${r}] Path \"${n}\" is already defined`);i?i.add(n):e.set(t,new Set([n]))}function Kt(e,t,n,r=``,i,a){Lt(e,t);let o=e;Bt(o,t),Mt(o.path,o.name,t,n),Rt(o,t),zt(o,t);let s=o.name,c=r?`${r}.${s}`:s;n&&c&&Ht(n,c,t),i&&Ut(i,c,t);let l=o.path,u=r;if(n&&Wt(n,u,l,t),a&&Gt(a,u,l,t),o.children!==void 0){if(!Array.isArray(o.children))throw TypeError(`[router.${t}] Route \"${s}\" children must be an array, got ${$(o.children)}`);for(let e of o.children)Kt(e,t,n,c,i,a)}}export{J as DEFAULT_QUERY_PARAMS,Ct as createMatcher,st as createRouteTree,ct as getSegmentsByName,L as nodeToDefinition,lt as routeTreeToDefinitions,Kt as validateRoute};\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|
|
@@ -1,336 +0,0 @@
|
|
|
1
|
-
//#region ../engine/dist/esm/index.d.mts
|
|
2
|
-
//#region src/search-params/types.d.ts
|
|
3
|
-
/**
|
|
4
|
-
* Search Params Type Definitions.
|
|
5
|
-
*
|
|
6
|
-
* Consolidated interfaces and type aliases for the search-params module.
|
|
7
|
-
*
|
|
8
|
-
* @module search-params/types
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Array parameter encoding format.
|
|
12
|
-
*
|
|
13
|
-
* @remarks
|
|
14
|
-
* - `none` - repeated keys: `a=1&a=2`
|
|
15
|
-
* - `brackets` - bracket notation: `a[]=1&a[]=2`
|
|
16
|
-
* - `index` - indexed notation: `a[0]=1&a[1]=2`
|
|
17
|
-
* - `comma` - comma-separated: `a=1,2`
|
|
18
|
-
*/
|
|
19
|
-
type ArrayFormat = "none" | "brackets" | "index" | "comma";
|
|
20
|
-
/**
|
|
21
|
-
* Boolean parameter encoding format.
|
|
22
|
-
*
|
|
23
|
-
* @remarks
|
|
24
|
-
* - `none` - no special handling
|
|
25
|
-
* - `auto` - auto-detect "true"/"false" strings as boolean values
|
|
26
|
-
* - `empty-true` - true values have no value: `?flag` instead of `?flag=true`
|
|
27
|
-
*
|
|
28
|
-
* @remarks
|
|
29
|
-
* Under `empty-true` the bare-key wire form (`?flag`) is reserved for `true`, so
|
|
30
|
-
* a `null` value with `nullFormat: "default"` (which also encodes to a bare key)
|
|
31
|
-
* is **not representable**: it round-trips back as `true`, not `null`. Both null
|
|
32
|
-
* and true collapse to the same token and only `true` decodes back. Pair
|
|
33
|
-
* `empty-true` with `nullFormat: "hidden"`, or avoid null query values.
|
|
34
|
-
*/
|
|
35
|
-
type BooleanFormat = "none" | "auto" | "empty-true";
|
|
36
|
-
/**
|
|
37
|
-
* Null parameter encoding format.
|
|
38
|
-
*
|
|
39
|
-
* @remarks
|
|
40
|
-
* - `default` - key only: `?key` (collides with `booleanFormat: "empty-true"`,
|
|
41
|
-
* which reserves the bare-key form for `true` — null then decodes as `true`)
|
|
42
|
-
* - `hidden` - omit from query string
|
|
43
|
-
*/
|
|
44
|
-
type NullFormat = "default" | "hidden";
|
|
45
|
-
/**
|
|
46
|
-
* Number parameter encoding format.
|
|
47
|
-
*
|
|
48
|
-
* @remarks
|
|
49
|
-
* - `none` - no special handling
|
|
50
|
-
* - `auto` - decode canonical decimal numbers (`/^-?(0|[1-9]\d*)(\.\d+)?$/`) to
|
|
51
|
-
* `Number()`. Recognizes negatives so the parsed type matches what
|
|
52
|
-
* `build`/`navigate` produce; rejects leading zeros (`"007"`), exponent
|
|
53
|
-
* notation, unsafe integers, and negative zero (`"-0"` — the grammar matches
|
|
54
|
-
* it, but an `Object.is` guard rejects it since `build(-0)` emits `"0"`, #898)
|
|
55
|
-
* — those keep their exact text as strings.
|
|
56
|
-
*/
|
|
57
|
-
type NumberFormat = "none" | "auto";
|
|
58
|
-
/**
|
|
59
|
-
* Options for search-params parsing and building.
|
|
60
|
-
*/
|
|
61
|
-
interface Options {
|
|
62
|
-
/** Array parameter encoding format. @default "none" */
|
|
63
|
-
arrayFormat?: ArrayFormat;
|
|
64
|
-
/** Boolean parameter encoding format. @default "auto" */
|
|
65
|
-
booleanFormat?: BooleanFormat;
|
|
66
|
-
/** Null parameter encoding format. @default "default" */
|
|
67
|
-
nullFormat?: NullFormat;
|
|
68
|
-
/** Number parameter encoding format. @default "auto" */
|
|
69
|
-
numberFormat?: NumberFormat;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Internal options with all required fields.
|
|
73
|
-
*/
|
|
74
|
-
//#endregion
|
|
75
|
-
//#region src/path-matcher/types.d.ts
|
|
76
|
-
/**
|
|
77
|
-
* Path Matcher Type Definitions.
|
|
78
|
-
*
|
|
79
|
-
* Core types for path matching and parameter extraction.
|
|
80
|
-
*
|
|
81
|
-
* @module path-matcher/types
|
|
82
|
-
*/
|
|
83
|
-
/**
|
|
84
|
-
* Constraint pattern for a URL parameter.
|
|
85
|
-
*/
|
|
86
|
-
interface ConstraintPattern {
|
|
87
|
-
/**
|
|
88
|
-
* Compiled RegExp for validating the parameter value.
|
|
89
|
-
*
|
|
90
|
-
* @example /^(\d+)$/ for constraint "<\\d+>"
|
|
91
|
-
*/
|
|
92
|
-
readonly pattern: RegExp;
|
|
93
|
-
/**
|
|
94
|
-
* Raw constraint string from the route pattern.
|
|
95
|
-
*
|
|
96
|
-
* @example "<\\d+>"
|
|
97
|
-
*/
|
|
98
|
-
readonly constraint: string;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Parameter metadata extracted from a route path pattern.
|
|
102
|
-
*/
|
|
103
|
-
interface ParamMeta {
|
|
104
|
-
/**
|
|
105
|
-
* URL parameter names extracted from the path pattern.
|
|
106
|
-
*
|
|
107
|
-
* @example [":id", ":postId"] from "/users/:id/posts/:postId"
|
|
108
|
-
*/
|
|
109
|
-
readonly urlParams: readonly string[];
|
|
110
|
-
/**
|
|
111
|
-
* Query parameter names extracted from the path pattern.
|
|
112
|
-
*
|
|
113
|
-
* @example ["q", "page"] from "/search?q&page"
|
|
114
|
-
*/
|
|
115
|
-
readonly queryParams: readonly string[];
|
|
116
|
-
/**
|
|
117
|
-
* Splat parameter names extracted from the path pattern.
|
|
118
|
-
*
|
|
119
|
-
* @example ["path"] from "/files/*path"
|
|
120
|
-
*/
|
|
121
|
-
readonly spatParams: readonly string[];
|
|
122
|
-
/**
|
|
123
|
-
* Map of parameter names to their type (url or query).
|
|
124
|
-
*
|
|
125
|
-
* @example { id: "url", q: "query" }
|
|
126
|
-
*/
|
|
127
|
-
readonly paramTypeMap: Readonly<Record<string, "url" | "query">>;
|
|
128
|
-
/**
|
|
129
|
-
* Map of parameter names to their constraint patterns.
|
|
130
|
-
*
|
|
131
|
-
* Only includes parameters with explicit constraints (e.g., `:id<\\d+>`).
|
|
132
|
-
* Parameters without constraints are not included in this map.
|
|
133
|
-
*
|
|
134
|
-
* @example
|
|
135
|
-
* ```typescript
|
|
136
|
-
* buildParamMeta("/users/:id<\\d+>").constraintPatterns.get("id")
|
|
137
|
-
* // → { pattern: /^(\d+)$/, constraint: "<\\d+>" }
|
|
138
|
-
*
|
|
139
|
-
* buildParamMeta("/users/:id").constraintPatterns.size
|
|
140
|
-
* // → 0 (no constraints)
|
|
141
|
-
* ```
|
|
142
|
-
*/
|
|
143
|
-
readonly constraintPatterns: ReadonlyMap<string, ConstraintPattern>;
|
|
144
|
-
/**
|
|
145
|
-
* Path pattern without query string, pre-computed for buildPath.
|
|
146
|
-
*
|
|
147
|
-
* @example "/users/:id" from "/users/:id?q&page"
|
|
148
|
-
*/
|
|
149
|
-
readonly pathPattern: string;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* URL parameter encoding strategies.
|
|
153
|
-
*
|
|
154
|
-
* - `default` - encodeURIComponent preserving sub-delimiters (+, :, ', !, ,, ;, *)
|
|
155
|
-
* - `uri` - encodeURI/decodeURI
|
|
156
|
-
* - `uriComponent` - encodeURIComponent/decodeURIComponent
|
|
157
|
-
* - `none` - no encoding/decoding
|
|
158
|
-
*/
|
|
159
|
-
type URLParamsEncodingType = "default" | "uri" | "uriComponent" | "none";
|
|
160
|
-
interface MatcherInputNode {
|
|
161
|
-
readonly name: string;
|
|
162
|
-
readonly path: string;
|
|
163
|
-
readonly fullName: string;
|
|
164
|
-
readonly absolute: boolean;
|
|
165
|
-
readonly children: ReadonlyMap<string, MatcherInputNode>;
|
|
166
|
-
readonly nonAbsoluteChildren: readonly MatcherInputNode[];
|
|
167
|
-
readonly paramMeta: ParamMeta;
|
|
168
|
-
readonly paramTypeMap: Readonly<Record<string, "url" | "query">>;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Per-call options for buildPath.
|
|
172
|
-
*/
|
|
173
|
-
interface BuildPathOptions {
|
|
174
|
-
readonly queryParamsMode?: "default" | "strict" | "loose" | undefined;
|
|
175
|
-
readonly trailingSlash?: "default" | "always" | "never" | undefined;
|
|
176
|
-
}
|
|
177
|
-
interface MatchResult$1 {
|
|
178
|
-
readonly segments: readonly MatcherInputNode[];
|
|
179
|
-
readonly params: Readonly<Record<string, unknown>>;
|
|
180
|
-
readonly meta: Readonly<Record<string, Record<string, "url" | "query">>>;
|
|
181
|
-
}
|
|
182
|
-
interface SegmentMatcherOptions {
|
|
183
|
-
caseSensitive?: boolean;
|
|
184
|
-
strictTrailingSlash?: boolean;
|
|
185
|
-
strictQueryParams?: boolean;
|
|
186
|
-
urlParamsEncoding?: URLParamsEncodingType;
|
|
187
|
-
parseQueryString: (queryString: string) => Record<string, unknown>;
|
|
188
|
-
buildQueryString: (params: Record<string, unknown>) => string;
|
|
189
|
-
}
|
|
190
|
-
interface ResolvedMatcherOptions {
|
|
191
|
-
readonly caseSensitive: boolean;
|
|
192
|
-
readonly strictTrailingSlash: boolean;
|
|
193
|
-
readonly strictQueryParams: boolean;
|
|
194
|
-
readonly urlParamsEncoding: URLParamsEncodingType;
|
|
195
|
-
readonly parseQueryString: (queryString: string) => Record<string, unknown>;
|
|
196
|
-
readonly buildQueryString: (params: Record<string, unknown>) => string;
|
|
197
|
-
} //#endregion
|
|
198
|
-
//#region src/path-matcher/SegmentMatcher.d.ts
|
|
199
|
-
declare class SegmentMatcher {
|
|
200
|
-
#private;
|
|
201
|
-
get options(): ResolvedMatcherOptions;
|
|
202
|
-
constructor(options: SegmentMatcherOptions);
|
|
203
|
-
registerTree(node: MatcherInputNode): void;
|
|
204
|
-
match(path: string): MatchResult$1 | undefined;
|
|
205
|
-
buildPath(name: string, params?: Record<string, unknown>, options?: BuildPathOptions): string;
|
|
206
|
-
getSegmentsByName(name: string): readonly MatcherInputNode[] | undefined;
|
|
207
|
-
getMetaByName(name: string): Readonly<Record<string, Record<string, "url" | "query">>> | undefined;
|
|
208
|
-
hasRoute(name: string): boolean;
|
|
209
|
-
} //#endregion
|
|
210
|
-
//#region src/builder/types.d.ts
|
|
211
|
-
/**
|
|
212
|
-
* Definition of a route for configuration.
|
|
213
|
-
*/
|
|
214
|
-
interface RouteDefinition {
|
|
215
|
-
[key: string]: unknown;
|
|
216
|
-
name: string;
|
|
217
|
-
path: string;
|
|
218
|
-
children?: RouteDefinition[] | undefined;
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Immutable route tree node.
|
|
222
|
-
*
|
|
223
|
-
* This is the core data structure of the new route-tree architecture.
|
|
224
|
-
* It contains only data (no methods) and is created by the builder.
|
|
225
|
-
*
|
|
226
|
-
* All caches are pre-computed at build time:
|
|
227
|
-
* - nonAbsoluteChildren: filtered children without absolute paths
|
|
228
|
-
* - fullName: pre-computed "users.profile" instead of runtime join
|
|
229
|
-
*/
|
|
230
|
-
interface RouteTree {
|
|
231
|
-
/** Route segment name (e.g., "users" in "users.profile") */
|
|
232
|
-
readonly name: string;
|
|
233
|
-
/** Route path pattern (e.g., "/users/:id") */
|
|
234
|
-
readonly path: string;
|
|
235
|
-
/** Whether this route uses absolute path matching (path starts with "~") */
|
|
236
|
-
readonly absolute: boolean;
|
|
237
|
-
/** Child route nodes (Map for O(1) lookup by name) */
|
|
238
|
-
readonly children: ReadonlyMap<string, RouteTree>;
|
|
239
|
-
/** Parameter metadata extracted from path pattern (replaces parser dependency) */
|
|
240
|
-
readonly paramMeta: ParamMeta;
|
|
241
|
-
/** Parent node (null for root) */
|
|
242
|
-
readonly parent: RouteTree | null;
|
|
243
|
-
/** Children without absolute paths (for regular matching) */
|
|
244
|
-
readonly nonAbsoluteChildren: readonly RouteTree[];
|
|
245
|
-
/** Pre-computed full name (e.g., "users.profile") */
|
|
246
|
-
readonly fullName: string;
|
|
247
|
-
/**
|
|
248
|
-
* Pre-computed parameter type map for this segment.
|
|
249
|
-
* Cached to avoid recomputing on every navigation.
|
|
250
|
-
* Maps param name → "url" | "query".
|
|
251
|
-
*/
|
|
252
|
-
readonly paramTypeMap: Readonly<Record<string, "url" | "query">>;
|
|
253
|
-
} //#endregion
|
|
254
|
-
//#region src/operations/types.d.ts
|
|
255
|
-
/**
|
|
256
|
-
* Indicates the source of a parameter (URL path or query string).
|
|
257
|
-
*/
|
|
258
|
-
//#endregion
|
|
259
|
-
//#region src/createMatcher.d.ts
|
|
260
|
-
/**
|
|
261
|
-
* Query string formatting options.
|
|
262
|
-
*
|
|
263
|
-
* Controls how arrays, booleans, nulls, and numbers are serialized in query strings.
|
|
264
|
-
*/
|
|
265
|
-
type QueryParamsConfig = Readonly<Options>;
|
|
266
|
-
/**
|
|
267
|
-
* Options for creating a path matcher.
|
|
268
|
-
*/
|
|
269
|
-
interface CreateMatcherOptions {
|
|
270
|
-
readonly caseSensitive?: boolean;
|
|
271
|
-
readonly strictTrailingSlash?: boolean;
|
|
272
|
-
readonly strictQueryParams?: boolean;
|
|
273
|
-
readonly urlParamsEncoding?: "default" | "uri" | "uriComponent" | "none";
|
|
274
|
-
readonly queryParams?: QueryParamsConfig;
|
|
275
|
-
}
|
|
276
|
-
/**
|
|
277
|
-
* Path matcher instance type.
|
|
278
|
-
*
|
|
279
|
-
* Opaque type — consumers use methods (match, buildPath, hasRoute, etc.)
|
|
280
|
-
* without knowing the underlying SegmentMatcher implementation.
|
|
281
|
-
*/
|
|
282
|
-
type Matcher = SegmentMatcher;
|
|
283
|
-
/**
|
|
284
|
-
* Creates a path matcher with search-params DI baked in.
|
|
285
|
-
*
|
|
286
|
-
* @param options - Matcher configuration
|
|
287
|
-
* @returns Configured matcher instance
|
|
288
|
-
*
|
|
289
|
-
* @example
|
|
290
|
-
* ```typescript
|
|
291
|
-
* const matcher = createMatcher({
|
|
292
|
-
* strictTrailingSlash: true,
|
|
293
|
-
* queryParams: { booleanFormat: "auto" },
|
|
294
|
-
* });
|
|
295
|
-
* matcher.registerTree(tree);
|
|
296
|
-
* const result = matcher.match("/users/123");
|
|
297
|
-
* ```
|
|
298
|
-
*/
|
|
299
|
-
//#endregion
|
|
300
|
-
//#region src/validation/route-batch.d.ts
|
|
301
|
-
/**
|
|
302
|
-
* Validates route structure for add operations.
|
|
303
|
-
*
|
|
304
|
-
* Performs comprehensive validation including:
|
|
305
|
-
* - Type check (must be object)
|
|
306
|
-
* - Name validation
|
|
307
|
-
* - Path validation
|
|
308
|
-
* - Duplicate name detection (in tree and batch)
|
|
309
|
-
* - Duplicate path detection (in tree and batch)
|
|
310
|
-
* - Recursive children validation
|
|
311
|
-
*
|
|
312
|
-
* @param route - Route to validate
|
|
313
|
-
* @param methodName - Calling method for error context
|
|
314
|
-
* @param rootNode - Optional root node for duplicate checking
|
|
315
|
-
* @param parentName - Parent route name for building full path (used in recursion)
|
|
316
|
-
* @param seenNames - Set of names already seen in this batch
|
|
317
|
-
* @param seenPathsByParent - Map of paths by parent for path duplicate detection
|
|
318
|
-
* @throws {TypeError} If route structure is invalid
|
|
319
|
-
* @throws {Error} If route already exists (duplicate)
|
|
320
|
-
* @throws {Error} If path already defined (duplicate)
|
|
321
|
-
*
|
|
322
|
-
* @example
|
|
323
|
-
* ```typescript
|
|
324
|
-
* const seenNames = new Set<string>();
|
|
325
|
-
* const seenPaths = new Map<string, Set<string>>();
|
|
326
|
-
*
|
|
327
|
-
* // Validate routes before adding
|
|
328
|
-
* for (const route of routes) {
|
|
329
|
-
* validateRoute(route, "add", rootNode, "", seenNames, seenPaths);
|
|
330
|
-
* }
|
|
331
|
-
* ```
|
|
332
|
-
*/
|
|
333
|
-
declare function validateRoute(route: unknown, methodName: string, rootNode?: RouteTree, parentName?: string, seenNames?: Set<string>, seenPathsByParent?: Map<string, Set<string>>): asserts route is RouteDefinition; //#endregion
|
|
334
|
-
//#endregion
|
|
335
|
-
export { validateRoute as a, RouteTree as i, Matcher as n, RouteDefinition as r, CreateMatcherOptions as t };
|
|
336
|
-
//# sourceMappingURL=index-0GKsQ2r9.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-0GKsQ2r9.d.mts","names":["arrayFormat","ArrayFormat","booleanFormat","BooleanFormat","nullFormat","NullFormat","numberFormat","NumberFormat","FinalOptions","pattern","RegExp","constraint","urlParams","queryParams","spatParams","paramTypeMap","Readonly","Record","constraintPatterns","ReadonlyMap","ConstraintPattern","pathPattern","name","path","fullName","absolute","children","MatcherInputNode","nonAbsoluteChildren","paramMeta","ParamMeta","queryParamsMode","trailingSlash","segments","params","meta","caseSensitive","strictTrailingSlash","strictQueryParams","urlParamsEncoding","URLParamsEncodingType","parseQueryString","queryString","buildQueryString","private","options","ResolvedMatcherOptions","constructor","SegmentMatcherOptions","registerTree","node","match","MatchResult$1","buildPath","BuildPathOptions","getSegmentsByName","getMetaByName","hasRoute","key","RouteDefinition","RouteTree","parent","ParamSource","ParamTypeMap","P","RouteParams","RouteTreeStateMeta","routes","tree","routeName","Options","QueryParamsConfig","SegmentMatcher","CreateMatcherOptions","Matcher","route","methodName","rootNode","parentName","Set","seenNames","Map","seenPathsByParent"],"sources":["../../../engine/dist/esm/index.d.mts"],"mappings":";;;;;;AAiBgB;AAAA;;;;AAgBE;AAAA;;;;AASH;AAAA;KAzBV,WAAA;;;AAsCY;AAAA;;;;;;;;;;;;KAtBZ,aAAA;;;;;;AAkCwB;AAgBmB;;KAzC3C,UAAA;;;;;;AAkEgB;AAAA;;;;;;KArDhB,YAAA;;;;UAIK,OAAA;EAwECc;EAtETd,WAAAA,GAAc,WAAA;EA4ESgB;EA1EvBd,aAAAA,GAAgB,aAAA;EA0FPgB;EAxFTd,UAAAA,GAAa,UAAA;EAwFoCgB;EAtFjDd,YAAAA,GAAe,YAAA;AAAA;AA4FK;AAAA;;AAAA;AAAA;;;;;;;;;;;UA/DZ,iBAAA;EAkFCS;;;;AAA6B;EAA7BA,SA5EAN,OAAAA,EAAS,MAAM;EAiFA;;;AAEF;AAAA;EAFE,SA3EfE,UAAAA;AAAAA;;;;UAKD,SAAA;EA6EgB;;;;;EAAA,SAvEfC,SAAAA;EAsEAsB;;;;;EAAAA,SAhEArB,WAAAA;EAiE8BI;;AAAM;AAAA;;EAANA,SA3D9BH,UAAAA;EAiEW;;;;;EAAA,SA3DXC,YAAAA,EAAc,QAAA,CAAS,MAAA;EAyDhCsB;;;;;;;;;;;AAIkD;AAAA;;;EAJlDA,SAzCSnB,kBAAAA,EAAoB,WAAA,SAAoB,iBAAA;EAoDG;;;;;EAAA,SA9C3CG,WAAAA;AAAAA;;;;;;;;;KAUN,qBAAA;AAAA,UACK,gBAAA;EAAA,SACCC,IAAAA;EAAAA,SACAC,IAAAA;EAAAA,SACAC,QAAAA;EAAAA,SACAC,QAAAA;EAAAA,SACAC,QAAAA,EAAU,WAAA,SAAoB,gBAAA;EAAA,SAC9BE,mBAAAA,WAA8B,gBAAA;EAAA,SAC9BC,SAAAA,EAAW,SAAA;EAAA,SACXd,YAAAA,EAAc,QAAA,CAAS,MAAA;AAAA;;;;UAKxB,gBAAA;EAAA,SACCgB,eAAAA;EAAAA,SACAC,aAAa;AAAA;AAAA,UAEd,aAAA;EAAA,SACCC,QAAAA,WAAmB,gBAAA;EAAA,SACnBC,MAAAA,EAAQ,QAAA,CAAS,MAAA;EAAA,SACjBC,IAAAA,EAAM,QAAA,CAAS,MAAA,SAAe,MAAA;AAAA;AAAA,UAE/B,qBAAA;EACRC,aAAAA;EACAC,mBAAAA;EACAC,iBAAAA;EACAC,iBAAAA,GAAoB,qBAAA;EACpBE,gBAAAA,GAAmBC,WAAAA,aAAwB,MAAA;EAC3CC,gBAAAA,GAAmBT,MAAAA,EAAQ,MAAA;AAAA;AAAA,UAEnB,sBAAA;EAAA,SACCE,aAAAA;EAAAA,SACAC,mBAAAA;EAAAA,SACAC,iBAAAA;EAAAA,SACAC,iBAAAA,EAAmB,qBAAA;EAAA,SACnBE,gBAAAA,GAAmBC,WAAAA,aAAwB,MAAA;EAAA,SAC3CC,gBAAAA,GAAmBT,MAAAA,EAAQ,MAAA;AAAA;AAAA;AAAA,cAIxB,cAAA;EAAA,CACXU,OAAAA;EAAAA,IACGC,OAAAA,IAAW,sBAAA;EACfE,WAAAA,CAAYF,OAAAA,EAAS,qBAAA;EACrBI,YAAAA,CAAaC,IAAAA,EAAM,gBAAA;EACnBC,KAAAA,CAAM5B,IAAAA,WAAe,aAAA;EACrB8B,SAAAA,CAAU/B,IAAAA,UAAcY,MAAAA,GAAS,MAAA,mBAAyBW,OAAAA,GAAU,gBAAA;EACpEU,iBAAAA,CAAkBjC,IAAAA,oBAAwB,gBAAA;EAC1CkC,aAAAA,CAAclC,IAAAA,WAAe,QAAA,CAAS,MAAA,SAAe,MAAA;EACrDmC,QAAAA,CAASnC,IAAAA;AAAAA;AAAAA;;;;UAOD,eAAA;EAAA,CACPoC,GAAAA;EACDpC,IAAAA;EACAC,IAAAA;EACAG,QAAAA,GAAW,eAAe;AAAA;;;;;;;;;;;UAYlB,SAAA;EAQWP;EAAAA,SANVG,IAAAA;EAQAO;EAAAA,SANAN,IAAAA;EAQAsC;EAAAA,SANApC,QAAAA;EAQAG;EAAAA,SANAF,QAAAA,EAAU,WAAA,SAAoB,SAAA;EAQ9BF;EAAAA,SANAK,SAAAA,EAAW,SAAA;EAYGb;EAAAA,SAVd6C,MAAAA,EAAQ,SAAA;EAUqB;EAAA,SAR7BjC,mBAAAA,WAA8B,SAAA;EA8HgC;EAAA,SA5H9DJ,QAAAA;;;AAoI8B;AAAA;;WA9H9BT,YAAAA,EAAc,QAAA,CAAS,MAAA;AAAA;AAAA;;;;;;;;;;;KA8H7B,iBAAA,GAAoB,QAAQ,CAAC,OAAA;;;;UAIxB,oBAAA;EAAA,SACCqB,aAAAA;EAAAA,SACAC,mBAAAA;EAAAA,SACAC,iBAAAA;EAAAA,SACAC,iBAAAA;EAAAA,SACA1B,WAAAA,GAAc,iBAAiB;AAAA;;;;;;;KAQrC,OAAA,GAAU,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoDZ,aAAA,CAAc8D,KAAAA,WAAgBC,UAAAA,UAAoBC,QAAAA,GAAW,SAAA,EAAWC,UAAAA,WAAqBE,SAAAA,GAAY,GAAA,UAAaE,iBAAAA,GAAoB,GAAA,SAAY,GAAA,oBAAuBP,KAAAA,IAAS,eAAA"}
|