@real-router/core 0.141.1 → 0.143.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Router-C1ns3T3P.js +2 -0
- package/dist/cjs/Router-C1ns3T3P.js.map +1 -0
- package/dist/cjs/Router.d.ts.map +1 -1
- package/dist/cjs/api/getPluginApi.d.ts.map +1 -1
- package/dist/cjs/api.js +1 -1
- package/dist/cjs/api.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/{internals-BzfR3muF.js → internals-DMcP9rpu.js} +2 -2
- package/dist/cjs/{internals-BzfR3muF.js.map → internals-DMcP9rpu.js.map} +1 -1
- package/dist/cjs/internals.d.ts +9 -0
- package/dist/cjs/internals.d.ts.map +1 -1
- package/dist/cjs/types/RouterValidator.d.ts +0 -2
- package/dist/cjs/types/RouterValidator.d.ts.map +1 -1
- package/dist/cjs/types/api.d.ts +98 -0
- package/dist/cjs/types/api.d.ts.map +1 -1
- package/dist/cjs/types.d.ts +2 -2
- package/dist/cjs/validation.js +1 -1
- package/dist/esm/Router-BjMGX1yj.mjs +2 -0
- package/dist/esm/Router-BjMGX1yj.mjs.map +1 -0
- package/dist/esm/Router.d.mts.map +1 -1
- package/dist/esm/api/getPluginApi.d.mts.map +1 -1
- package/dist/esm/api.mjs +1 -1
- package/dist/esm/api.mjs.map +1 -1
- package/dist/esm/index.d.mts +2 -2
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/{internals-BhF2H7KO.mjs → internals-C7KuNPHL.mjs} +2 -2
- package/dist/esm/{internals-BhF2H7KO.mjs.map → internals-C7KuNPHL.mjs.map} +1 -1
- package/dist/esm/internals.d.mts +9 -0
- package/dist/esm/internals.d.mts.map +1 -1
- package/dist/esm/types/RouterValidator.d.mts +0 -2
- package/dist/esm/types/RouterValidator.d.mts.map +1 -1
- package/dist/esm/types/api.d.mts +98 -0
- package/dist/esm/types/api.d.mts.map +1 -1
- package/dist/esm/types.d.mts +2 -2
- package/dist/esm/validation.mjs +1 -1
- package/package.json +1 -1
- package/dist/cjs/Router-CVjeBVB7.js +0 -2
- package/dist/cjs/Router-CVjeBVB7.js.map +0 -1
- package/dist/esm/Router-BHSMDROP.mjs +0 -2
- package/dist/esm/Router-BHSMDROP.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internals.d.mts","names":[],"sources":["../../src/internals.ts"],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"internals.d.mts","names":[],"sources":["../../src/internals.ts"],"mappings":";;;;;;;;;;;;;;iBAoCiB,gBACf,UAAU,sBAAsB;WAEvB,YACP,UAAU,SAAS,QACnB,UAAU,eAAe,cAEzB,cACA,SAAS,GACT,SAAS,GACT,kBACG,MAAM,GAAG;;;;;;;WAQL,kBACP,iBACG,eAAe;;;;;;WAOX,wBAAwB;WAExB,eACP,UAAU,SAAS,QACnB,UAAU,eAAe,cAEzB,mBACA,aAAa,GACb,cAAc,MACX,YAAY,GAAG;WAEX,qBACP,sBACA,gBAAgB,WACb;;;;;;;;;;;;;;;;;WAkBI,oBACP,sBACA,iBAAiB,QACjB,iBAAiB;WAGV,YAAY,UAAU,SAAS,QACtC,cACA,UAAU,eACP,MAAM;WAEF,kBAAkB,QAAQ;;;;;;;;;;;;;WAc1B,yBAAyB;WAEzB,mBAAmB,UAAU,WACpC,WAAW,GACX,IAAI,OAAO,eAAe,QACvB;;;;;;;;WASI;aACE,OAAO,OAAO;aACd,YACP,UAAU,OAAO,8BACd;aACI;;;;;aAKA;;;;;;;;;WAUF,YAAY;WAEZ,sBAAsB,OAAO;;;;;;;;WAS7B,qBAAqB,iBAAiB;;;;;;WAOtC,uBAAuB,iBAAiB;WAExC,QAAQ,iBAAiB,QAAQ;;;;;;;WAQjC,kBACP,OAAO,OACP,UAAU,sBACP,QAAQ;WAGJ,cAAc,cAEnB,UAAU,wBAAwB;;;;;;;;;WAa7B,QAAQ,iBAAiB;WAGzB,cAAc;WACd;WAEA,eAAe;WAEf;EAET,WAAW;WAaF,QAAQ;WAGR,4BAA4B,kBAAkB;WAM9C;IACP,SAAS,QAAQ;IACjB,cAAc;IACd,iBAAiB,cAAc;IAK/B,cAAc;IAMd,QAAQ;IAoBR;;WAIO,qBAAqB,YAAY;WAGjC;WACA;;;;;;;;;;;;;;;;;WAiBA,eACP,SAAS,OACT,WAAW,mBACX,MAAM,sBACH;WACI;IAAoB;;WACpB,qBAAqB,YAAY;;wBAkD5B,aAAa,UAAU,qBACrC,QAAQ,OAAgB,KACvB,gBAAgB"}
|
|
@@ -109,11 +109,9 @@ export interface RouterValidator {
|
|
|
109
109
|
* Navigation validation methods
|
|
110
110
|
*/
|
|
111
111
|
navigation: {
|
|
112
|
-
validateNavigateArgs: (name: unknown) => void;
|
|
113
112
|
validateNavigateToDefaultArgs: (options: unknown) => void;
|
|
114
113
|
validateNavigateToStateArgs: (state: unknown) => void;
|
|
115
114
|
validateNavigationOptions: (options: unknown, caller: string) => void;
|
|
116
|
-
validateParams: (params: unknown, methodName: string) => void;
|
|
117
115
|
/**
|
|
118
116
|
* The path bag's SHAPE, on the object the caller still owns (#2134).
|
|
119
117
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouterValidator.d.mts","names":[],"sources":["../../../src/types/RouterValidator.ts"],"mappings":";;;;;;;;;;;;;iBAaiB;;;;EAIf;IACE,wBAAwB,gBAAgB;IACxC,wBAAwB;IACxB,4BACE,eACA,iBACA,iBACA;IAEF,+BAA+B;IAC/B,2BACE,eACA,iBACA;IAEF,uBAAuB;;;;;;;IAOvB,iBAAiB,mBAAmB;IACpC,0BAA0B;IAC1B,+BAA+B,eAAe;IAC9C,mCAAmC,cAAc;;IAEjD,sBAAsB,cAAc;;;;;;IAMpC,uBAAuB;IACvB,oBAAoB,eAAe;IACnC,uBAAuB,eAAe;IACtC,8BAA8B,mBAAmB;IACjD,0BAA0B;IAC1B,sBAAsB;IACtB,wBAAwB;;;;;EAM1B;IACE,kBAAkB,kBAAkB;;IAEpC,+BAA+B;;;;;EAMjC;IACE,yBAAyB,eAAe;IACxC,4BACE,eACA,gBACA;IAEF,6BAA6B,eAAe;;;;;;IAM5C,2BAA2B,cAAc;;;;;;;;;;IAUzC,0BACE,sBACA,yBACA;IAEF,oBAAoB;IACpB,gBAAgB,cAAc;IAC9B,qBAAqB,gBAAgB;IACrC,wBAAwB;;;;;EAM1B;IACE,sBAAsB,eAAe;IACrC,6BACE,kBACA;IAEF,qBAAqB;IACrB,0BAA0B;IAC1B,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;;;;;EAMzB;IACE,kBAAkB,kBAAkB;IACpC,uBAAuB,eAAe;IACtC,0BAA0B,eAAe;IACzC,gBAAgB,cAAc,cAAc;IAC5C,qBAAqB,cAAc;;;;;EAMrC;IACE,
|
|
1
|
+
{"version":3,"file":"RouterValidator.d.mts","names":[],"sources":["../../../src/types/RouterValidator.ts"],"mappings":";;;;;;;;;;;;;iBAaiB;;;;EAIf;IACE,wBAAwB,gBAAgB;IACxC,wBAAwB;IACxB,4BACE,eACA,iBACA,iBACA;IAEF,+BAA+B;IAC/B,2BACE,eACA,iBACA;IAEF,uBAAuB;;;;;;;IAOvB,iBAAiB,mBAAmB;IACpC,0BAA0B;IAC1B,+BAA+B,eAAe;IAC9C,mCAAmC,cAAc;;IAEjD,sBAAsB,cAAc;;;;;;IAMpC,uBAAuB;IACvB,oBAAoB,eAAe;IACnC,uBAAuB,eAAe;IACtC,8BAA8B,mBAAmB;IACjD,0BAA0B;IAC1B,sBAAsB;IACtB,wBAAwB;;;;;EAM1B;IACE,kBAAkB,kBAAkB;;IAEpC,+BAA+B;;;;;EAMjC;IACE,yBAAyB,eAAe;IACxC,4BACE,eACA,gBACA;IAEF,6BAA6B,eAAe;;;;;;IAM5C,2BAA2B,cAAc;;;;;;;;;;IAUzC,0BACE,sBACA,yBACA;IAEF,oBAAoB;IACpB,gBAAgB,cAAc;IAC9B,qBAAqB,gBAAgB;IACrC,wBAAwB;;;;;EAM1B;IACE,sBAAsB,eAAe;IACrC,6BACE,kBACA;IAEF,qBAAqB;IACrB,0BAA0B;IAC1B,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;;;;;EAMzB;IACE,kBAAkB,kBAAkB;IACpC,uBAAuB,eAAe;IACtC,0BAA0B,eAAe;IACzC,gBAAgB,cAAc,cAAc;IAC5C,qBAAqB,cAAc;;;;;EAMrC;IACE,gCAAgC;IAChC,8BAA8B;IAC9B,4BAA4B,kBAAkB;;;;;;;;IAQ9C,sBAAsB,iBAAiB;;;;;;;;IAQvC,iBAAiB,iBAAiB;IAClC,oBAAoB;;;;;EAMtB;IACE,wBACE,eACA,iBACA;IAEF,6BACE,aACA,aACA;;;;;;;;;;;;IAaF,wBAAwB,mBAAmB;;IAG3C,2BAA2B,mBAAmB;;;;;EAMhD;IACE,uBAAuB,eAAe;IACtC,0BACE,eACA,mBACA"}
|
package/dist/esm/types/api.d.mts
CHANGED
|
@@ -26,6 +26,91 @@ export interface InterceptableMethodMap {
|
|
|
26
26
|
start: (path?: string) => Promise<State>;
|
|
27
27
|
forwardState: (routeName: string, routeParams: Params, routeSearch?: SearchParams) => SimpleState;
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Every position at which core asks whether anyone OBJECTS, and the values it
|
|
31
|
+
* hands the question (#2388).
|
|
32
|
+
*
|
|
33
|
+
* ⚑ **A position is not a seam, and the difference is the right it hands out.**
|
|
34
|
+
* An interceptor receives `next` and may call it with other arguments, or not at
|
|
35
|
+
* all — it REPLACES behaviour. A check receives values and may only throw: it
|
|
36
|
+
* cannot alter what core does next, only stop it. Measured across the six
|
|
37
|
+
* shipped `addInterceptor` sites outside core, not one of them refuses, and not
|
|
38
|
+
* one of the validator's refusals replaces; the two rights are disjoint in
|
|
39
|
+
* practice, so they are disjoint in the API.
|
|
40
|
+
*
|
|
41
|
+
* ⚑ **What refuses a position: a consultation standing at it.** A name lands
|
|
42
|
+
* here when shipped code asks the question there, never because a door looks
|
|
43
|
+
* like it might want one — an eligible-looking position with no consultation is
|
|
44
|
+
* how a vocabulary grows by default rather than by decision (core/CLAUDE.md
|
|
45
|
+
* › _Before adding an aggregating entity_). A refusal has been recorded:
|
|
46
|
+
* `buildPath`'s ENTRY is eligible and absent, because the consultation standing
|
|
47
|
+
* there mixes a refusal with a diagnostic and a diagnostic is not this
|
|
48
|
+
* channel's to carry.
|
|
49
|
+
*
|
|
50
|
+
* ⚠ The map's VALUE is the argument tuple, so a check registered at a position
|
|
51
|
+
* is typed by what that position judges rather than by the door's signature.
|
|
52
|
+
*/
|
|
53
|
+
export interface CheckPositionMap {
|
|
54
|
+
/**
|
|
55
|
+
* The bag core adopted from the caller's, and prints the path from (#2134).
|
|
56
|
+
*
|
|
57
|
+
* ⚑ The case an interceptor cannot express: at the call boundary this object
|
|
58
|
+
* does not exist yet, so a seam could only judge the caller's bag — and a key
|
|
59
|
+
* that answers differently per read is admitted on the one that SHIPS.
|
|
60
|
+
*
|
|
61
|
+
* ⚠ `undefined` when the caller passed no bag: `adoptChannel` is identity on
|
|
62
|
+
* the type, so "no params" survives the copy rather than becoming an empty
|
|
63
|
+
* object. A check here judges absence as well as content.
|
|
64
|
+
*/
|
|
65
|
+
"buildPath:params": [ownParams: Params | undefined];
|
|
66
|
+
/**
|
|
67
|
+
* The same judgement for the printer a caller reaches having ALREADY resolved
|
|
68
|
+
* the forward chain (`PluginApi.buildPathResolved`).
|
|
69
|
+
*
|
|
70
|
+
* ⚠ A separate position rather than a shared one, because the value a check
|
|
71
|
+
* refuses names its own door in the message. The two printers are reached
|
|
72
|
+
* independently — the href door runs the chain itself and comes here — so a
|
|
73
|
+
* refusal naming the wrong one sends the reader to a call that did not happen.
|
|
74
|
+
*/
|
|
75
|
+
"buildPathResolved:params": [ownParams: Params | undefined];
|
|
76
|
+
/**
|
|
77
|
+
* `canNavigateTo`'s arguments, as the caller spelled them.
|
|
78
|
+
*
|
|
79
|
+
* ⚠ This door is documented TOTAL in bare core (INVARIANTS `canNavigateTo`
|
|
80
|
+
* #5), and a check here can throw. That divergence is the analyser's to own,
|
|
81
|
+
* not this position's: it is the same shape the door already had when the
|
|
82
|
+
* validator answered here, and `predicate-totality-2245.test.ts` pins both
|
|
83
|
+
* arms.
|
|
84
|
+
*/
|
|
85
|
+
"canNavigateTo:entry": [name: string, params: Params | undefined, search: SearchParams | undefined];
|
|
86
|
+
/** The copy the predicate answers about, for the reason above `buildPath:params`. */
|
|
87
|
+
"canNavigateTo:params": [ownParams: Params | undefined];
|
|
88
|
+
/**
|
|
89
|
+
* `navigate`'s arguments AFTER the two call shapes are unpacked, so a check
|
|
90
|
+
* sees one spelling whether the caller passed a name or a target object.
|
|
91
|
+
*
|
|
92
|
+
* ⚠ `options` is never absent here: core substitutes its own `EMPTY_OPTS`
|
|
93
|
+
* singleton when the caller passes none, so a check judges that object rather
|
|
94
|
+
* than `undefined`.
|
|
95
|
+
*/
|
|
96
|
+
"navigate:entry": [routeName: string, routeParams: Params | undefined, search: SearchParams | undefined, options: NavigationOptions];
|
|
97
|
+
/**
|
|
98
|
+
* The copy the whole navigation runs on (#2134).
|
|
99
|
+
*
|
|
100
|
+
* ⚠ Reached only when `adoptChannel` did not throw — a caller's accessor that
|
|
101
|
+
* throws becomes a REJECTION one line above, because everything this door
|
|
102
|
+
* answers with is a promise.
|
|
103
|
+
*/
|
|
104
|
+
"navigate:params": [ownParams: Params | undefined];
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* A check: it may THROW, and its return value is ignored by construction.
|
|
108
|
+
*
|
|
109
|
+
* ⚠ `void` rather than `boolean` is deliberate — a boolean would make silence
|
|
110
|
+
* ambiguous (did it pass, or did the check forget to return?) and would tempt a
|
|
111
|
+
* caller to treat the channel as a predicate. Refusal has exactly one spelling.
|
|
112
|
+
*/
|
|
113
|
+
export type CheckFn<P extends keyof CheckPositionMap> = (...args: CheckPositionMap[P]) => void;
|
|
29
114
|
/**
|
|
30
115
|
* Type-safe interceptor callback.
|
|
31
116
|
* Receives `next` (the next function in the chain) followed by the method's original parameters.
|
|
@@ -241,6 +326,19 @@ export interface PluginApi {
|
|
|
241
326
|
getOptions: () => AnyOptions;
|
|
242
327
|
getTree: () => unknown;
|
|
243
328
|
addInterceptor: <M extends keyof InterceptableMethodMap>(method: M, fn: InterceptorFn<M>) => Unsubscribe;
|
|
329
|
+
/**
|
|
330
|
+
* Registers a REFUSAL at a named position (#2388).
|
|
331
|
+
*
|
|
332
|
+
* The check runs where core chose, receives what that position judges, and may
|
|
333
|
+
* throw. It cannot replace an argument, skip the call, or change an answer —
|
|
334
|
+
* for those there is {@link addInterceptor}, and the two seams it carries are
|
|
335
|
+
* the ones with shipped consumers that genuinely replace.
|
|
336
|
+
*
|
|
337
|
+
* ⚠ Checks at one position run in registration order, and the FIRST throw
|
|
338
|
+
* wins: core does not collect refusals, because the caller gets one error and
|
|
339
|
+
* a second check's opinion about a value already refused is not actionable.
|
|
340
|
+
*/
|
|
341
|
+
addCheck: <P extends keyof CheckPositionMap>(position: P, check: CheckFn<P>) => Unsubscribe;
|
|
244
342
|
extendRouter: (extensions: Record<string, unknown>) => Unsubscribe;
|
|
245
343
|
/**
|
|
246
344
|
* Emits a `$$error` event without going through the navigation pipeline.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.mts","names":[],"sources":["../../../src/types/api.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;iBA8CiB;EACf,QAAQ,kBAAkB,QAAQ;EAClC,eACE,mBACA,aAAa,QACb,cAAc,iBACX
|
|
1
|
+
{"version":3,"file":"api.d.mts","names":[],"sources":["../../../src/types/api.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;iBA8CiB;EACf,QAAQ,kBAAkB,QAAQ;EAClC,eACE,mBACA,aAAa,QACb,cAAc,iBACX;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2BU;;;;;;;;;;;;EAYf,qBAAqB,WAAW;;;;;;;;;;EAWhC,6BAA6B,WAAW;;;;;;;;;;EAWxC,wBACE,cACA,QAAQ,oBACR,QAAQ;;EAIV,yBAAyB,WAAW;;;;;;;;;EAUpC,mBACE,mBACA,aAAa,oBACb,QAAQ,0BACR,SAAS;;;;;;;;EAUX,oBAAoB,WAAW;;;;;;;;;YAUrB,QAAQ,gBAAgB,wBAC/B,MAAM,iBAAiB;;;;;YAOhB,cAAc,gBAAgB,2BACxC,MAAM,uBAAuB,OAC1B,MAAM,WAAW,uBAAuB,QACxC,WAAW,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwCtB,sBAAsB;EACrC,QAAQ,OAAO,OAAO,OAAO;EAC7B;;;;;;iBAOe;EACf,YAAY,UAAU,SAAS,QAAQ,UAAU,eAAe,cAC9D,cACA,SAAS,GACT,SAAS,GACT,kBACG,MAAM,GAAG;EAEd,eACE,UAAU,SAAS,QACnB,UAAU,eAAe,cAEzB,mBACA,aAAa,GACb,cAAc,MACX,YAAY,GAAG;EAEpB,YAAY,UAAU,SAAS,QAAQ,iBAAiB,MAAM;;;;;;;;;;;EAY9D,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCzB,kBACE,OAAO,OACP,UAAU,sBACP,QAAQ;;;;;;;EAQb,cAAc;EACd;;;;;;;;;EAUA,QAAQ;;;;;;;;;;;;;;;;EAiBR,wBAAwB;;;;;;;;;;;;;;;EAgBxB,eAAe;;;;;;;;;;;;;;EAef,qBAAqB,SAAS;;;;;;EAO9B,yBAAyB,SAAS;;;;;;;;EASlC;;;;;;;;EASA;EAEA,mBAAmB,UAAU,WAC3B,WAAW,GACX,IAAI,OAAO,eAAe,QACvB;;;;;;;;;;;;EAaL,uBACE,cACA,SAAS,QACT,SAAS,iBACN;;;;;;;;;;;;;;;;EAiBL,oBACE,cACA,SAAS,QACT,SAAS;EAGX,kBAAkB;EAElB;EAEA,iBAAiB,gBAAgB,wBAC/B,QAAQ,GACR,IAAI,cAAc,OACf;;;;;;;;;;;;;EAcL,WAAW,gBAAgB,kBACzB,UAAU,GACV,OAAO,QAAQ,OACZ;EAEL,eAAe,YAAY,4BAA4B;;;;;;;;;;;;;;;EAgBvD,sBAAsB,OAAO;EAE7B;KAEG,gBAAgB,uBACf,WAAW,IACV,sBAAsB,aAAa;KACrC,oBAAoB;;;;;;;;;;;;;;;;;;;EAoBvB,iBAAiB,iBAAiB;;;;;iBAMnB,UACf,qBAAqB,sBAAsB;EAE3C,MACE,QAAQ,MAAM,kBAAkB,MAAM,eACtC;IAAY;;EAGd,SAAS;;;;;;;;;;;EAYT,SAAS,cAAc,SAAS,kBAAkB;EAElD;EAEA,UAAU,QAAQ,MAAM,kBAAkB,MAAM;EAEhD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BN,MAAM,iBAAiB,MAAM;;;;;;;;;;;;;EAc7B,mBACE,UAAU,OAAO,iBAAiB,2BAC/B;;;;;iBAMU,gBACf,qBAAqB,sBAAsB;EAE3C,MAAM,gBAAgB,cAAc,KAAK,MAAM,aAAa;EAC5D,cAAc,QAAQ;EACtB,MAAM,gBAAgB,uBACpB,MAAM,GACN,OAAO,aAAa;EAEtB,SAAS,MAAM;EACf,SAAS,YAAY;EACrB;EACA,MAAM,YAAY;;;;;iBAMH,aACf,qBAAqB,sBAAsB;EAE3C,mBACE,cACA,oBAAoB,eAAe;EAErC,qBACE,cACA,sBAAsB,eAAe;EAEvC,sBAAsB;EACtB,wBAAwB"}
|
package/dist/esm/types.d.mts
CHANGED
|
@@ -4,7 +4,7 @@ import { LimitsConfig } from "./types/limits.mjs";
|
|
|
4
4
|
import { AdoptedOrigins, AnyOptions, DefaultDependencies, DefaultParamsCallback, DefaultRouteCallback, DefaultSearchCallback, ForwardToCallback, GuardFn, GuardFnFactory, LeaveFn, LeaveState, Listener, LogCallback, LogLevel, LogLevelConfig, LoggerConfig, Navigator, Options, Plugin, PluginFactory, ReadonlyRoute, Route, RouteConfigUpdate, Router, RouterLogger, SubscribeFn, SubscribeState, Subscription } from "./types/router.mjs";
|
|
5
5
|
import { ErrorCodeKeys, ErrorCodeToValueMap, ErrorCodeValues, EventMethodMap, EventName, EventToNameMap, EventToPluginMap, EventsKeys, PluginMethod } from "./types/constants.mjs";
|
|
6
6
|
import { TreeChangedAdd, TreeChangedClear, TreeChangedEvent, TreeChangedRemove, TreeChangedReplace, TreeChangedUpdate, TreeStructuralPatch } from "./types/tree-changed.mjs";
|
|
7
|
-
import { ContextNamespaceClaim, DependenciesApi, InterceptableMethodMap, InterceptorFn, LifecycleApi, PluginApi, RoutesApi } from "./types/api.mjs";
|
|
7
|
+
import { CheckFn, CheckPositionMap, ContextNamespaceClaim, DependenciesApi, InterceptableMethodMap, InterceptorFn, LifecycleApi, PluginApi, RoutesApi } from "./types/api.mjs";
|
|
8
8
|
//#region src/types/index.d.ts
|
|
9
9
|
/**
|
|
10
10
|
* Empty interface extended by plugins via module augmentation to declare
|
|
@@ -241,5 +241,5 @@ export interface NavigationOptions {
|
|
|
241
241
|
signal?: AbortSignal | undefined;
|
|
242
242
|
}
|
|
243
243
|
//#endregion
|
|
244
|
-
export type { AdoptedOrigins, AnyOptions, ContextNamespaceClaim, DefaultDependencies, DefaultParamsCallback, DefaultRouteCallback, DefaultSearchCallback, DependenciesApi, ErrorCodeKeys, ErrorCodeToValueMap, ErrorCodeValues, EventMethodMap, EventName, EventToNameMap, EventToPluginMap, EventsKeys, ForwardToCallback, GuardFn, GuardFnFactory, InterceptableMethodMap, InterceptorFn, LeaveFn, LeaveState, LifecycleApi, LimitsConfig, Listener, LogCallback, LogLevel, LogLevelConfig, LoggerConfig, NavigationTarget, Navigator, Options, Params, ParamsSearch, Plugin, PluginApi, PluginFactory, PluginMethod, QueryParamsMode, QueryParamsOptions, ReadonlyRoute, Route, RouteConfigUpdate, RouteParams, RouteTreeState, Router, RouterError, RouterLogger, RoutesApi, SearchParamPrimitive, SearchParamValue, SearchParams, SerializedRouterState, SimpleState, State, SubscribeFn, SubscribeState, Subscription, TransitionMeta, TransitionPhase, TransitionReason, TreeChangedAdd, TreeChangedClear, TreeChangedEvent, TreeChangedRemove, TreeChangedReplace, TreeChangedUpdate, TreeStructuralPatch, Unsubscribe };
|
|
244
|
+
export type { AdoptedOrigins, AnyOptions, CheckFn, CheckPositionMap, ContextNamespaceClaim, DefaultDependencies, DefaultParamsCallback, DefaultRouteCallback, DefaultSearchCallback, DependenciesApi, ErrorCodeKeys, ErrorCodeToValueMap, ErrorCodeValues, EventMethodMap, EventName, EventToNameMap, EventToPluginMap, EventsKeys, ForwardToCallback, GuardFn, GuardFnFactory, InterceptableMethodMap, InterceptorFn, LeaveFn, LeaveState, LifecycleApi, LimitsConfig, Listener, LogCallback, LogLevel, LogLevelConfig, LoggerConfig, NavigationTarget, Navigator, Options, Params, ParamsSearch, Plugin, PluginApi, PluginFactory, PluginMethod, QueryParamsMode, QueryParamsOptions, ReadonlyRoute, Route, RouteConfigUpdate, RouteParams, RouteTreeState, Router, RouterError, RouterLogger, RoutesApi, SearchParamPrimitive, SearchParamValue, SearchParams, SerializedRouterState, SimpleState, State, SubscribeFn, SubscribeState, Subscription, TransitionMeta, TransitionPhase, TransitionReason, TreeChangedAdd, TreeChangedClear, TreeChangedEvent, TreeChangedRemove, TreeChangedReplace, TreeChangedUpdate, TreeStructuralPatch, Unsubscribe };
|
|
245
245
|
//# sourceMappingURL=types.d.mts.map
|
package/dist/esm/validation.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e,u as t,x as n}from"./internals-C7KuNPHL.mjs";export{n as findMisChanneledKey,e as getInternals,t as validateRoute};
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("./internals-BzfR3muF.js"),t=require("./RouterError-C-p1yaby.js"),n=require("./helpers-RzUXJQAh.js"),r=Object.entries,i=Object.hasOwn;function a(e,n,a){if(e===void 0||a.length===0)return e;let o,s=!1;for(let[c,l]of r(e)){if(i(n,c)&&n[c]!==void 0&&a.includes(c)){s=!0;continue}o??={},t.s(o,c,l)}return o===void 0?s?void 0:e:o}function o(t,n,i){for(let[a,o]of r(t))e._(i,a,o,n(a),"this route's `defaultParams`","Move it to `defaultSearch`")}const s=Object.entries,c=Object.freeze;function l(e,n,r){let i,a=!1;for(let[o,c]of s(e))n.includes(o)?(i??={},t.s(i,o,c)):(a=!0,r?.(o));return a?c(i??t.f):e}function u(e,t){let n=e.path,r=n.startsWith(`~`),i=r?n.slice(1):n,a=i!==``&&!i.startsWith(`/`)&&!i.startsWith(`?`)?`/${i}`:i,o={name:e.name,path:a,absolute:r,children:[],parent:t};if(e.children)for(let t of e.children){let e=u(t,o);o.children.push(e)}return o}function d(e,t,n){let r=u({name:e,path:t},null);for(let e of n){let t=u(e,r);r.children.push(t)}return r}const f=/[^\w!$'()*+,.:;|~-]/gu,p=/[^\w!$'()*+,.:;|~-]/u,m=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,h=e=>t=>{try{return e(t)}catch{return e(t.replaceAll(m,`�`))}},g=h(e=>e.replaceAll(f,e=>encodeURIComponent(e))),_={default:e=>p.test(e)?g(e):e,uri:h(encodeURI),uriComponent:h(encodeURIComponent),none:e=>e},v={default:decodeURIComponent,uri:decodeURI,uriComponent:decodeURIComponent,none:e=>e},y=(e,t)=>{let n=_[t],r=String(e).split(`/`),i=n(r[0]);for(let e=1;e<r.length;e++)i+=`/`+n(r[e]);return i},b=Object.freeze(Object.create(null));function x(){return{staticChildren:b,hasChildren:!1,paramChild:void 0,splatChild:void 0,route:void 0,slashChildRoute:void 0}}function S(e){return e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e}function ee(e,t){return e===``?t:t===``?e:e.endsWith(`/`)&&t.startsWith(`/`)?e+t.slice(1):e+t}function C(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function te(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(!C(n)||!C(r))return!1;t+=3}else t++;return!0}const ne=Object.freeze([]),re=Object.freeze(new Set),ie=Object.freeze([]),ae=Object.freeze({}),oe=Object.freeze({}),se=Object.freeze({});function ce(e,t){let n=e.kind===`splat`;return{paramName:e.name,encoder:n?e=>y(e,t):_[t]}}function le(t,n,r,i){let a=new Set(i);for(let e of n)for(let t of e.paramMeta.urlParams)a.add(t);if(a.size===0)return{buildStaticParts:[t],buildParamSlots:ie};let o=[],s=[],c=``,l=e.g(t),u=l.length-1;for(let[t,n]of l.entries()){let i=e.h(n);if(`error`in i||i.kind!==`splat`||t===u){if(t>0&&(c+=`/`),`error`in i||i.kind===`static`){c+=n;continue}o.push(c),c=``,s.push(ce(i,r))}}return o.push(c),{buildStaticParts:o,buildParamSlots:s}}function ue(e,t,n){throw Error(`[router] Parameter name conflict at the same path position: '${n}${e}' and '${n}${t}'. One position binds one name across every route that shares it. Rename one — e.g. use '${n}${e}' in both.`)}function de(){throw Error(`[router] Empty parameter name: a ':'/'*' marker must be followed by a name (e.g. ':id', '*rest'), and a segment cannot end in a bare '?'.`)}function fe(e){throw Error(`[router] Fused parameter marker in segment "${e}": a ':'/'*' marker must begin a segment — write 'a/:b', not 'a:b'.`)}function pe(e){throw Error(`[router] Trailing parameter marker in segment "${e}": a param name cannot end in a bare ':' or '*'. Drop the stray marker.`)}function me(e){throw Error(`[router] Optional params are not supported: "${e}" — declare two sibling routes instead, one with the segment and one without.`)}function he(e){throw Error(`[router] Regex constraints are not supported: '<' and '>' are reserved in path segments ("${e}"). Match it as a plain string and validate the value in a canActivate guard.`)}function ge(e){throw Error(`[router] Non-ASCII static segment "${e}": match compares static keys raw and rejects non-ASCII input, so this route can never match. Percent-encode it (e.g. "/caf%C3%A9") or use a param.`)}function _e(e,t){switch(e){case`name-less`:return de();case`trailing-marker`:return pe(t);case`fused-marker`:return fe(t);case`optional-removed`:return me(t);case`constraint-removed`:return he(t)}}function ve(e,t){let n=new Set,r=``;for(let e of t){if(n.has(e)){r=e;break}n.add(e)}throw Error(`[router] Duplicate parameter name '${r}' in route "${e}": a name must be unique within a route — the second position overwrites the first. Rename one.`)}function ye(e,t){throw Error(`[router] Invalid query-param declaration "${t}" in route "${e}": a query-param name cannot contain '<' or '>'. Rename it.`)}function be(e){throw Error(`[router] Double slashes are not allowed in path "${e}": the route would build a URL its own matcher refuses. Remove the empty segment.`)}function xe(e,t){throw Error(`[router] Duplicate route path: routes "${e}" and "${t}" resolve to the same URL — the later would shadow the earlier. Give them distinct paths.`)}function Se(e,t){throw Error(`[router] Index route "${e}" (path "/") under the splat parent "${t}" is unreachable: the wildcard match never reaches the index node. Give the index a distinct path, or make the parent static.`)}function Ce(e,t){return e.paramChild?e.paramChild.name!==t&&ue(e.paramChild.name,t,`:`):e.paramChild={node:x(),name:t},e.paramChild.node}function we(e,t){return e.splatChild?e.splatChild.name!==t&&ue(e.splatChild.name,t,`*`):e.splatChild={node:x(),name:t},e.splatChild.node}const Te=Object.create;function Ee(e,t){e.route!==void 0&&e.route!==t&&xe(e.route.name,t.name),e.route=t}function De(e){for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>=128)return!0;return!1}function Oe(e,t,n){let r=S(n);if(r===`/`){Ee(e.root,t);return}ke(e,e.root,r,1,t)}function ke(e,t,n,r,i){let a=n.length;for(;r<=a;){let i=n.indexOf(`/`,r),o=i===-1?a:i,s=n.slice(r,o);t=Ne(e,t,s),r=o+1}Ee(t,i)}function Ae(e,t,n){let r=n.length;for(;r>1&&n.codePointAt(r-1)===47;)--r;let i=n.slice(0,r);i.slice(i.lastIndexOf(`/`)+1).startsWith(`*`)&&Se(t.name,n);let a=je(e,n);a.slashChildRoute=t}function je(e,t){return Me(e,e.root,t)}function Me(e,t,n){let r=S(n);if(r===`/`||r===``)return t;let i=t,a=1,o=r.length;for(;a<=o;){let t=r.indexOf(`/`,a),n=t===-1?o:t;if(n<=a)break;let s=r.slice(a,n);i=Ne(e,i,s),a=n+1}return i}function Ne(t,n,r){let i=e.h(r);if(`error`in i&&de(),i.kind===`splat`){let e=we(n,i.name);return n.hasChildren=!0,e}if(i.kind===`param`){let e=Ce(n,i.name);return n.hasChildren=!0,e}De(r)&&ge(r);let a=t.options.caseSensitive?r:r.toLowerCase();return a in n.staticChildren||(n.staticChildren===b&&(n.staticChildren=Te(null)),n.staticChildren[a]=x(),n.hasChildren=!0),n.staticChildren[a]}const w=Object.freeze,Pe=Object.hasOwn;function Fe(t){let n=e.g(t);for(let[e,r]of n.entries())r===``&&e>0&&e<n.length-1&&be(t)}function Ie(t){for(let n of e.g(t)){let t=e.h(n);`error`in t&&_e(t.error,n)}}function Le(t,n,r,i,a){let o=n.fullName===``;o||i.push(n);let s=n.absolute,c=n.paramMeta===e.f?n.path:n.paramMeta.pathPattern,l=s&&c.startsWith(`~`)?c.slice(1):c,u=s?l:c;Fe(n.path),Ie(u);let d=u,f=s?d:ee(r,d),p=o?a:Re(t,n,f,s?``:r,i,a);for(let e of n.children.values())Le(t,e,f,i,p);o||i.pop()}function Re(e,t,n,r,i,a){let o=Ue(n,r),s=w([...i]),c=ze(s),l=S(n),u=w(We(e.rootQueryParams,i)),{buildStaticParts:d,buildParamSlots:f}=le(o?S(r):l,o?i.slice(0,-1):i,e.options.urlParamsEncoding,e.rootUrlParams),p=f.map(e=>e.paramName),m=p.length===0?re:new Set(p);m.size!==p.length&&ve(t.fullName,p),Ge(t.fullName,u);let h={name:t.fullName,parent:a,matchSegments:s,meta:c,declaredQueryParams:u,declaredQueryParamsSet:u.length===0?re:new Set(u),hasTrailingSlash:n.length>1&&n.endsWith(`/`),buildStaticParts:d,buildParamSlots:f,buildParamNamesSet:m,cachedResult:void 0};return t.paramMeta.urlParams.length===0&&(h.cachedResult=w({segments:h.matchSegments,params:ae,search:oe,meta:h.meta})),e.routesByName.set(t.fullName,h),o?Ve(e,h,r):He(e,h,n,l,t),h}function ze(e){let n;for(let r of e)Be(r.paramTypeMap)&&(n??=t.a(),n[r.fullName]=r.paramTypeMap);return n===void 0?se:w(t.r(t.o(n)))}function Be(e){for(let t in e)if(Pe(e,t))return!0;return!1}function Ve(e,t,n){Ae(e,t,n);let r=S(n),i=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.has(i)&&e.staticCache.set(i,t)}function He(e,t,n,r,i){if(Oe(e,t,n),i.paramMeta.urlParams.length===0){let n=e.options.caseSensitive?r:r.toLowerCase();e.staticCache.set(n,t)}}function Ue(e,t){return S(e)===S(t)}function We(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?ne:n}function Ge(t,n){for(let r of n)e.p.test(r)&&ye(t,r)}const Ke=Symbol.for(`real-router.searchParams.configFault`),qe=Object.hasOwn,Je=Object.keys,Ye=Object.getOwnPropertyDescriptor;function Xe(e){try{return Ye(e,Ke)?.configurable===!1}catch{return!1}}function Ze(e){return typeof e==`string`?e:typeof e==`object`?JSON.stringify(e):String(e)}const Qe=Object.freeze({});function $e(e,t){return e===`strict`?t?`always`:`never`:e}var et=class{get options(){return this.#e}#e;#t=x();#n=new Map;#r=new Map;#i={cleanPath:``,normalized:``,queryString:void 0};#a=[];#o=``;#s;#c;constructor(e){let t=e.urlParamsEncoding??`default`,n=typeof t==`string`?t:String(t),r=qe(_,n)?n:`default`;this.#e={caseSensitive:e.caseSensitive??!0,strictTrailingSlash:e.strictTrailingSlash??!1,strictQueryParams:e.strictQueryParams??!1,urlParamsEncoding:r,parseQueryString:e.parseQueryString,buildQueryString:e.buildQueryString},this.#s=this.#e.caseSensitive,this.#c=this.#e.urlParamsEncoding===`none`?null:v[this.#e.urlParamsEncoding]}registerTree(e){this.#a=e.paramMeta.queryParams,Le({root:this.#t,options:this.#e,routesByName:this.#n,staticCache:this.#r,rootQueryParams:this.#a,rootUrlParams:e.paramMeta.urlParams},e,``,[],null)}match(e){if(!this.#f(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.#g(t,a)?void 0:r===void 0&&a.cachedResult?a.cachedResult:this.#m(a,{},r);let o={},s=this.#_(n,o);if(s&&(!this.#e.strictTrailingSlash||this.#g(t,s))&&this.#b(o))return this.#m(s,o,r)}buildPath(e,t,n,r){let i=this.#n.get(e);if(!i)throw Error(`[router.buildPath] '${e}' is not defined`);let a=this.#l(i,t),o=this.#u(a,$e(r?.trailingSlash,i.hasTrailingSlash)),s=this.#d(i,n??t,r?.queryParamsMode);return o+(s?`?${s}`:``)}getSegmentsByName(e){return this.#n.get(e)?.matchSegments}getMetaByName(e){return this.#n.get(e)?.meta}getDeclaredQueryParams(e){return this.#n.get(e)?.declaredQueryParams}hasRoute(e){return this.#n.has(e)}#l(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!=null&&qe(t,a.paramName)?t[a.paramName]:void 0;if(r==null)throw Error(`[router.buildPath] Missing required param '${a.paramName}'`);if(r===``)throw Error(`[router.buildPath] Missing required param '${a.paramName}' (empty string)`);let o=a.encoder(Ze(r));i+=o+n[e+1]}return i}#u(e,t){return t===`always`&&!e.endsWith(`/`)?`${e}/`:t===`never`&&e!==`/`&&e.endsWith(`/`)?e.slice(0,-1):e}#d(e,n,r){if(!n||e.declaredQueryParams.length===0&&r!==`loose`)return``;let i={},a=!1;for(let r of e.declaredQueryParams)qe(n,r)&&(t.s(i,r,n[r]),a=!0);if(r===`loose`)for(let r of Je(n))e.declaredQueryParamsSet.has(r)||e.buildParamNamesSet.has(r)||(t.s(i,r,n[r]),a=!0);return a?this.#e.buildQueryString(i):``}#f(e){if(e===``&&(e=`/`),e.codePointAt(0)!==47)return!1;let t=this.#p(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=S(n);return this.#i.cleanPath=n,this.#i.normalized=i,this.#i.queryString=r,!0}#p(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}#m(e,t,n){let r=Qe;if(n!==void 0){let t=this.#h(e,n);if(t===void 0)return;r=t}return{segments:e.matchSegments,params:t,search:r,meta:e.meta}}#h(e,t){let n;try{n=this.#e.parseQueryString(t)}catch(e){if(Xe(e))throw e;return}if(this.#e.strictQueryParams){let t=e.declaredQueryParamsSet;for(let e of Je(n))if(!t.has(e))return}return n}#g(e,t){return(e.length>1&&e.endsWith(`/`))===t.hasTrailingSlash}#_(e,t){return e.length===1?this.#t.slashChildRoute??this.#t.route:this.#v(this.#t,e,1,t)}#v(e,n,r,i){let a=e,o=n.length,s=this.#s;for(;r<=o;){let e=n.indexOf(`/`,r),c=e===-1?o:e,l=n.slice(r,c),u=s?l:l.toLowerCase(),d;if(u in a.staticChildren){let e=a.staticChildren[u];if(a.splatChild!==void 0){let o={},s=this.#v(e,n,c+1,o);return s===void 0?this.#y(a.splatChild,n,r,i):(t.i(i,o),s)}d=e}else if(a.paramChild){let e=a.paramChild;if(a.splatChild!==void 0){let o={[e.name]:l},s=this.#v(e.node,n,c+1,o);return s===void 0?this.#y(a.splatChild,n,r,i):(t.i(i,o),s)}d=e.node,t.s(i,e.name,l)}else if(a.splatChild)return this.#y(a.splatChild,n,r,i);else return;a=d,r=c+1}return a.slashChildRoute??a.route}#y(e,n,r,i){let a=e.node;if(!a.hasChildren)return t.s(i,e.name,n.slice(r)),a.route;let o={},s=this.#v(a,n,r,o);return s?(t.i(i,o),s):(t.s(i,e.name,n.slice(r)),a.route)}#b(e){let t=this.#c;if(!t)return!0;for(let n of Je(e)){let r=e[n];if(r.includes(`%`)){if(!te(r))return!1;try{e[n]=t(r)}catch{return!1}}}return!0}};const T=Object.freeze,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=ot(i,t);n.push(e),e.absolute||r.push(e)}return{childrenMap:it(n),nonAbsoluteChildren:r}}function ot(t,n){let r=e.m(t.path),i=r.urlParams.length===0&&r.queryParams.length===0&&r.pathPattern===t.path?e.f:r,a=i.paramTypeMap,o={name:t.name,path:t.path,absolute:t.absolute,parent:n,children:void 0,paramMeta:i,nonAbsoluteChildren:void 0,fullName:``,paramTypeMap:a};if(o.fullName=rt(o),t.children.length===0)o.children=tt,o.nonAbsoluteChildren=nt;else{let{childrenMap:e,nonAbsoluteChildren:n}=at(t.children,o);o.children=e,o.nonAbsoluteChildren=n,T(o.nonAbsoluteChildren),T(o.children)}return T(a),T(i.urlParams),T(i.queryParams),T(i),T(o),o}function st(e){return ot(e,null)}function ct(e,t,n){return st(d(e,t,n))}function lt(e){let n=e.absolute?`~${e.path}`:e.path,r={name:e.name,path:n};return e.children.size>0&&t.s(r,`children`,Array.from(e.children.values(),lt)),r}function ut(e){return Array.from(e.children.values(),lt)}const dt=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)},ft=(e,t)=>{if(e===void 0)return t.boolean.decodeUndefined();let n=t.boolean.decodeRaw(e);if(n!==null)return n;let r=dt(e),i=t.number.decode(r);return i===null?t.boolean.decodeValue(r):i},pt=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,mt=e=>{try{return encodeURIComponent(e)}catch(t){if(!(t instanceof URIError))throw t;return encodeURIComponent(String(e).replaceAll(pt,`�`))}},ht=e=>{let t=typeof e;if(t!==`string`&&t!==`number`&&t!==`boolean`)throw TypeError(`[router] Invalid query value: an array element must be a string, number, or boolean — received ${t}`);return mt(e)},gt=(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}=${ht(e)}`);return a.join(`&`)},_t={none:{encodeArray:(e,t,n)=>gt(e,t,``,n)},brackets:{encodeArray:(e,t,n)=>gt(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}=${ht(a)}`)}return r.join(`&`)},indexed:!0},comma:{encodeArray:(e,t)=>{let n=[];for(let e of t)e!==null&&n.push(ht(e));return n.length===0?``:`${e}=${n.join(`,`)}`},decodeValue:e=>e.includes(`,`)?e.split(`,`):null}},vt={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`||e!==`false`&&null,decodeValue:e=>e},"empty-true":{encode:(e,t)=>t?e:`${e}=false`,decodeUndefined:()=>!0,decodeRaw:e=>e===`true`||e!==`false`&&null,decodeValue:e=>e}},yt={default:{encode:e=>e},hidden:{encode:()=>``}},bt={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 String(i)!==e||!Number.isSafeInteger(i)&&!r?null:i}},none:{decode:()=>null}},xt=Object.defineProperty,St=Object.keys,Ct=Object.hasOwn,wt=Symbol.for(`real-router.searchParams.configFault`),E=(e,t,n)=>{let r=typeof t==`string`?t:String(t);if(!Ct(e,r)){let t=TypeError(`[router.constructor] Invalid "queryParams.${n}": "${r}" — expected ${St(e).map(e=>`"${e}"`).join(` | `)}`);throw xt(t,wt,{value:!0}),t}return e[r]},Tt=(e,t,n,r)=>({boolean:E(vt,t,`booleanFormat`),null:E(yt,n,`nullFormat`),number:E(bt,r,`numberFormat`),array:E(_t,e,`arrayFormat`)}),Et=Object.freeze({boolean:vt.auto,null:yt.default,number:bt.auto,array:_t.none}),D=Object.freeze({arrayFormat:`none`,booleanFormat:`auto`,nullFormat:`default`,numberFormat:`auto`}),Dt=Object.freeze({...D,strategies:Et}),Ot=e=>{if(!e||e.arrayFormat===void 0&&e.booleanFormat===void 0&&e.nullFormat===void 0&&e.numberFormat===void 0)return Dt;let t=e.arrayFormat??D.arrayFormat,n=e.booleanFormat??D.booleanFormat,r=e.nullFormat??D.nullFormat,i=e.numberFormat??D.numberFormat;return{arrayFormat:t,booleanFormat:n,nullFormat:r,numberFormat:i,strategies:Tt(t,n,r,i)}},O=e=>mt(e),kt=(e,t,n)=>{let r=O(e);switch(typeof t){case`string`:case`number`:return`${r}=${O(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}=${O(t)}`;default:return`${r}=${O(t)}`}},At=Object.hasOwn,jt=Object.keys;function Mt(e,n,r){t.s(e,n,r)}function Nt(e,t,n,r){if(!At(e,t)){Mt(e,t,r?[n]:n);return}let i=e[t];Array.isArray(i)?i.push(n):Mt(e,t,[i,n])}function Pt(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 Ft(e,t,n){let{searchPart:r,nameEnd:i,nameSourceEnd:a,rawValue:o,decodedName:s}=e,c=Pt(r,i,a);if(c===null)return!1;let l=ft(o,t),u=n.get(s);return u===void 0?n.set(s,[[c,l]]):u.push([c,l]),!0}function It(e,t,n,r,i,a,o){let s=a!==-1&&a<n?e.slice(a+1,n):void 0,c=s===void 0?n:a,l=c,u=!1;for(let n=t;n<c;n++)if(e.codePointAt(n)===91){l=n,u=!0;break}let d=dt(e.slice(t,l));if(!(o!==void 0&&u&&Ft({searchPart:e,nameEnd:l,nameSourceEnd:c,rawValue:s,decodedName:d},i,o))){if(!u&&s!==void 0&&i.array.decodeValue){let e=i.array.decodeValue(s);if(e){for(let t of e)Nt(r,d,ft(t,i),!0);return}}Nt(r,d,ft(s,i),u)}}const Lt=(e,t)=>{if(e===``||e===`?`)return{};let n={};return Rt(e,n,t.strategies),n};function Rt(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)),It(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]),Mt(t,e,n.map(e=>e[1]))}const zt=(e,t)=>{let n=jt(e);if(n.length===0)return``;let r=[];for(let i of n){let n=e[i];if(n===void 0)continue;let a=kt(i,n,t);a&&r.push(a)}return r.join(`&`)};function Bt(e){let t=e?.queryParams,n=Ot(t);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=>Lt(e,n),buildQueryString:e=>zt(e,n)})}const Vt=Object.keys,Ht=Object.values,Ut=Object.hasOwn,Wt=Object.getOwnPropertyDescriptor,Gt=Object.getPrototypeOf,Kt=Object,qt=new Set(Ht(t._));function Jt(e){if(!qt.has(e))throw TypeError(`[router.addEventListener] Invalid event name: ${String(e)}. Must be one of: ${[...qt].join(`, `)}`)}function Yt(e){if(typeof e!=`function`)throw TypeError(`[router.addEventListener] callback must be a function, got ${typeof e}`)}function Xt(e){if(typeof e!=`function`)throw TypeError(`[router.subscribeChanges] Expected a function`)}function Zt(t,n){if(typeof t!=`string`||!Ut(e.t,t))throw TypeError(`[router.addInterceptor] Invalid method: ${typeof t==`string`?`"${t}"`:typeof t}. Must be one of: ${Vt(e.t).join(`, `)}`);if(typeof n!=`function`)throw TypeError(`[router.addInterceptor] interceptor must be a function, got ${typeof n}`)}function Qt(e,t){if(typeof e!=`string`)throw TypeError(`[router.${t}] Route name must be a string, got ${typeof e}`)}function $t(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=Gt(e);return t===null||t.constructor===Kt}function en(e){if(!$t(e))throw TypeError(`dependencies must be a plain object`)}function tn(e){return e===null?`null`:typeof e==`object`?`a non-plain object`:typeof e}function nn(e){if(!$t(e))throw TypeError(`[router.extendRouter] extensions must be a plain object, got ${tn(e)}`)}function rn(e,t){en(e);let n=e,r=[];for(let e of Vt(n)){if(Wt(n,e)?.get)throw TypeError(`dependencies cannot contain getters: "${e}"`);let t=n[e];t!==void 0&&r.push([e,t])}for(let[e,n]of r)t(e,n)}function an(n){let r=[];for(let i of n){let n=i;if(typeof n!=`object`||!n||Array.isArray(n))throw TypeError(`route must be a non-array object`);e.l(n,`addRoute`);let a={...n},o=a.children;o&&t.s(a,`children`,an(o)),r.push(a)}return r}function on(e,t){if(t)for(let n of e){t.routes.guardRouteCallbacks(n),t.routes.guardNoAsyncCallbacks(n);let e=n.children;e&&on(e,t)}}const sn=new Set([`all`,`warn-error`,`error-only`,`none`]);function cn(e){return typeof e==`string`&&sn.has(e)}function ln(e){return typeof e==`string`?`"${e}"`:typeof e==`object`?JSON.stringify(e):String(e)}function un(e){for(let t of Vt(e))if(t!==`level`&&t!==`callback`&&t!==`callbackIgnoresLevel`)throw TypeError(`Unknown logger config property: "${t}"`)}function dn(e){if(!Ut(e,`level`))return;let t=e.level;if(t!==void 0){if(!cn(t))throw TypeError(`Invalid logger level: ${ln(t)}. Expected: "all" | "warn-error" | "error-only" | "none"`);return t}}function fn(e){if(!Ut(e,`callbackIgnoresLevel`))return;let t=e.callbackIgnoresLevel;if(t!==void 0){if(typeof t!=`boolean`)throw TypeError(`Logger callbackIgnoresLevel must be a boolean, got ${typeof t}`);return t}}function pn(e){if(typeof e!=`object`||!e)throw TypeError(`Logger config must be an object`);let n=e;un(n);let r=t.a(),i=dn(n);if(i!==void 0&&(r.level=i),Ut(n,`callback`)){let e=n.callback;if(e!==void 0&&typeof e!=`function`)throw TypeError(`Logger callback must be a function, got ${typeof e}`);r.callback=e}let a=fn(n);return a!==void 0&&(r.callbackIgnoresLevel=a),r}const mn=Object.create;function hn(e,t,n){e[t]=n}function gn(e,t){return e.dependencies[t]}function _n(e){e.dependencies=mn(null)}function vn(e){return n.s({...e.dependencies})}function yn(e,t){let n=mn(null),r=e,i=n;return rn(r,(e,t)=>{hn(i,e,t)}),{dependencies:n,limits:t}}const k={defaultRoute:``,defaultParams:{},defaultSearch:{},trailingSlash:`preserve`,caseSensitive:!0,queryParamsMode:`loose`,queryParams:D,urlParamsEncoding:`default`,allowNotFound:!0,rewritePathOnMatch:!0},bn=[`strict`,`never`,`always`,`preserve`],xn=[`default`,`strict`,`loose`];function Sn(e){return e!==void 0&&bn.includes(e)?e:k.trailingSlash}function Cn(e){return e!==void 0&&xn.includes(e)?e:k.queryParamsMode}function wn(e){if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(`[router.constructor] options must be a plain object`)}const Tn=Object.freeze;var En=class{#e;constructor(e={}){this.#e=Tn(n.s({...k,...e}))}static validateOptionsIsObject(e){wn(e)}get(){return this.#e}};function Dn(e,t){return typeof e==`function`?e(t):e}const On=Object.keys;function kn(e,t,n,r,i){let a=e.pathNames(t);if(a!==void 0)for(let e of On(n))!r.includes(e)&&!a.includes(e)&&i(t,e)}function A(e,r,i,o,s){let c=String(r),u=s?.resolveForward===!1?{name:c,params:i,search:o}:e.resolveForward(c,i,o),d=u.name,f=n.f(u.params,t.d),p=s?.diagnoseUndeclared===!0?e.reportUndeclaredParamKey:void 0;p&&kn(e,d,f,e.queryNames(d),p);let m=e.defaultParams(d),h=e.defaultSearch(d);if((u.search===void 0||u.search===t.f)&&m===void 0&&h===void 0)return{name:d,path:f,query:t.f};let g=e.queryNames(d),_=e.reportDroppedQueryKey,v=s?.resolveForward===!1?a(h,f,g):h,y=n.f(u.search,t.f),b=n.d(v,y);return{name:d,path:n.u(m,f),query:e.admitsUndeclaredQuery()?b:l(b,e.printedQueryNames(d),t=>{_!==void 0&&e.pathNames(d)!==void 0&&_(d,t)})}}function j(e,t){return t.buildPath(e.name,e.path,e.query)}const An=Object.freeze;function jn(e,n){let r={name:e.name,params:e.path,search:e.query,path:n,context:{},transition:t.l};return An(r.params),r}function M(e,t){return n.c(jn(e,t))}function Mn(e,t){return jn(e,t)}var Nn=class{#e;#t;get(){return this.#e.current}getPrevious(){return this.#e.previous}setContext(e){this.#e=e}setDependencies(e){this.#t=e}makeState(n,r,i,a){let o=this.#t.port(),s=A(o,n,r??t.d,i,{resolveForward:!1});return e.v(`makeState`,s.name,s.path,o.queryNames(s.name)),M(s,a??j(s,o))}areStatesEqual(e,t,r=!0){if(!e||!t)return!!e==!!t;let i=e.name;return i===t.name?r?n.g(e.params,t.params,this.#t.getUrlParams(i)):n.h(e.params,t.params)&&n.h(e.search,t.search):!1}};const Pn=Object.keys,Fn={[t.v.ROUTER_START]:t._.ROUTER_START,[t.v.ROUTER_STOP]:t._.ROUTER_STOP,[t.v.TRANSITION_SUCCESS]:t._.TRANSITION_SUCCESS,[t.v.TRANSITION_START]:t._.TRANSITION_START,[t.v.TRANSITION_LEAVE_APPROVE]:t._.TRANSITION_LEAVE_APPROVE,[t.v.TRANSITION_ERROR]:t._.TRANSITION_ERROR,[t.v.TRANSITION_CANCEL]:t._.TRANSITION_CANCEL},In=Pn(Fn),Ln=`router.usePlugin`;function Rn(e){if(!(e&&typeof e==`object`)||Array.isArray(e))throw TypeError(`[router.usePlugin] Plugin factory must return an object, got ${typeof e}`);if(typeof e.then==`function`)throw TypeError(`[router.usePlugin] Async plugin factories are not supported. Factory returned a Promise instead of a plugin object.`)}const zn=Object.freeze;var Bn=class e{#e=new Set;#t=new Set;#n;static validatePlugin(e){Rn(e)}setDependencies(e){this.#n=e}count(){return this.#e.size}use(...e){if(this.#n.getValidator()?.plugins.validateCountThresholds(this.#e.size+e.length),e.length===1){let t=e[0],n=this.#i(t);this.#e.add(t);let r=!1,i=()=>{if(!r){r=!0,this.#e.delete(t),this.#t.delete(i);try{n()}catch(e){this.#n.logger.error(Ln,`Error during cleanup:`,e)}}};return this.#t.add(i),i}let t=this.#r(e),n=[];try{for(let e of t){let t=this.#i(e);n.push({factory:e,cleanup:t})}}catch(e){for(let{cleanup:e}of n)try{e()}catch(e){this.#n.logger.error(Ln,`Cleanup error:`,e)}throw e}for(let{factory:e}of n)this.#e.add(e);let r=!1,i=()=>{if(!r){r=!0,this.#t.delete(i);for(let{factory:e}of n)this.#e.delete(e);for(let{cleanup:e}of n)try{e()}catch(e){this.#n.logger.error(Ln,`Error during cleanup:`,e)}}};return this.#t.add(i),i}getAll(){return[...this.#e]}disposeAll(){for(let e of this.#t)e();this.#e.clear(),this.#t.clear()}#r(e){let t=new Set;for(let n of e)t.has(n)?this.#n.getValidator()?.plugins.warnBatchDuplicates(e):t.add(n);return t}#i(t){let n=this.#n.compileFactory(t);e.validatePlugin(n),this.#n.getValidator()?.plugins.validatePluginKeys(n),zn(n);let r=[];for(let e of In)e in n&&(typeof n[e]==`function`?(r.push(this.#n.addEventListener(Fn[e],n[e])),e===`onStart`&&this.#n.canNavigate()&&this.#n.getValidator()?.plugins.warnPluginAfterStart(e)):this.#n.getValidator()?.plugins.warnPluginMethodType(e));return()=>{for(let e of r)e();typeof n.teardown==`function`&&n.teardown()}}};const N=Object.create,Vn=()=>!0,Hn=()=>!1,Un=()=>Vn,Wn=()=>Hn;function Gn(e){return e?Un:Wn}function Kn(e,t,n){n===void 0?e.delete(t):e.set(t,n)}var qn=class{#e=new Map;#t=new Map;#n=new Map;#r=new Map;#i=new Map;#a=new Map;#o=new Map;#s=new Map;#c=new Map;#l=new Map;#u=[this.#i,this.#a];#d;setDependencies(e){this.#d=e}getHandlerCount(e){let t=e===`activate`?this.#e:this.#n,n=e===`activate`?this.#t:this.#r;if(t.size===0)return n.size;if(n.size===0)return t.size;let r=new Set(t.keys());for(let e of n.keys())r.add(e);return r.size}preflightHandlerLimit(e,t,n){let r=this.#d.getValidator();if(!r)return;let i=(e,t,i)=>{let{definition:a,external:o}=this.#g(e),s=0;for(let e of t)(n?o.has(e):a.has(e)||o.has(e))||s++;if(s===0)return;let c=n?o.size:this.getHandlerCount(e);r.lifecycle.validateHandlerLimit(c+s-1,i)};i(`activate`,e,`canActivate`),i(`deactivate`,t,`canDeactivate`)}addCanActivate(e,t,n,r){this.#f(`activate`,e,t,n,`canActivate`,r)}addCanDeactivate(e,t,n,r){this.#f(`deactivate`,e,t,n,`canDeactivate`,r)}clearCanActivate(e,t){this.#p(`activate`,e,t)}clearCanDeactivate(e,t){this.#p(`deactivate`,e,t)}clearAll(){this.#e.clear(),this.#t.clear(),this.#n.clear(),this.#r.clear(),this.#a.clear(),this.#i.clear(),this.#o.clear(),this.#s.clear(),this.#c.clear(),this.#l.clear()}clearDefinitionGuards(){for(let e of this.#e.keys())this.#c.delete(e),this.#t.has(e)?this.#m(`activate`,e):this.#a.delete(e);for(let e of this.#n.keys())this.#o.delete(e),this.#r.has(e)?this.#m(`deactivate`,e):this.#i.delete(e);this.#e.clear(),this.#n.clear()}getFactories(){let e=N(null),t=N(null);for(let[t,n]of this.#n)e[t]=n;for(let[t,n]of this.#r)e[t]=n;for(let[e,n]of this.#e)t[e]=n;for(let[e,n]of this.#t)t[e]=n;return[e,t]}getFactoriesByOrigin(){let e=N(null),t=N(null),n=N(null),r=N(null);for(let[t,n]of this.#n)e[t]=n;for(let[e,n]of this.#e)t[e]=n;for(let[e,t]of this.#r)n[e]=t;for(let[e,t]of this.#t)r[e]=t;return{definition:[e,t],external:[n,r]}}getFunctions(){return this.#u}canNavigateTo(e,t,n,r){for(let t of e)if(!this.#_(this.#i,t,n,r,`canNavigateTo`))return!1;for(let e of t)if(!this.#_(this.#a,e,n,r,`canNavigateTo`))return!1;return!0}compileGuardFactory(e,t){let n=typeof e==`boolean`?Gn(e):e,r=this.#d.compileFactory(n);if(typeof r!=`function`)throw TypeError(`[router.${t}] Factory must return a function, got ${typeof r}`);return r}#f(e,t,n,r,i,a){let o=this.#g(e),s=e===`activate`?this.#a:this.#i,c=r?o.definition:o.external,l=r?o.external:o.definition;if(c.has(t)||l.has(t))this.#d.getValidator()?.lifecycle.warnOverwrite(t,e,i);else{let t=this.#d.getValidator();if(t){let n=this.getHandlerCount(e);t.lifecycle.validateHandlerLimit(n,i),t.lifecycle.validateCountThresholds(n+1,i)}}let u=typeof n==`boolean`?Gn(n):n,d=c.get(t),f=this.#h(e),p=r?f.definition:f.external,m=p.get(t);c.set(t,u);let h=r&&l.has(t);try{let e=a??this.compileGuardFactory(u,i);p.set(t,e),h||s.set(t,e)}catch(n){throw Kn(c,t,d),Kn(p,t,m),this.#m(e,t),n}}#p(e,t,n){let{definition:r,external:i}=this.#g(e),a=this.#h(e),o=n!==`external`&&r.delete(t),s=n!==`definition`&&i.delete(t);o&&a.definition.delete(t),s&&a.external.delete(t),(o||s)&&this.#m(e,t)}#m(e,t){let n=this.#h(e),r=e===`activate`?this.#a:this.#i,i=n.external.get(t)??n.definition.get(t);if(!i){r.delete(t);return}r.set(t,i)}#h(e){return e===`activate`?{definition:this.#c,external:this.#l}:{definition:this.#o,external:this.#s}}#g(e){return e===`activate`?{definition:this.#e,external:this.#t}:{definition:this.#n,external:this.#r}}#_(e,t,n,r,i){let a=e.get(t);if(!a)return!0;try{let e=a(n,r);return typeof e==`boolean`?e:(this.#d.getValidator()?.lifecycle.warnAsyncGuardSync(t,i),!1)}catch(e){return this.#d.logger.warn(`router.${i}`,`Guard for "${t}" threw — treated as navigation-blocking (returned false)`,e),!1}}};const Jn=new Set([`name`,`path`,`children`,`canActivate`,`canDeactivate`,`forwardTo`,`encodeParams`,`decodeParams`,`defaultParams`,`defaultSearch`]),P=Object.freeze,F=Object.create,Yn=Object.hasOwn,I=Object.keys;function Xn(){return{decoders:F(null),encoders:F(null),defaultParams:F(null),defaultSearch:F(null),forwardMap:F(null),forwardFnMap:F(null)}}function Zn(e){return I(e.forwardMap).length>0||I(e.forwardFnMap).length>0}function Qn(e,t){for(let n of I(t))Object.assign(e[n],t[n])}function $n(e,t){for(let r in e)if(Yn(t,r)&&!n.a(e[r],t[r]))return!1;return!0}function er(e){return typeof e==`string`?e:`<non-string>`}function tr(e,t){for(let r in e)if(!n.a(e[r],t[r]))return!1;return!0}function nr(e){let n={name:e.name,path:e.path};return e.children&&t.s(n,`children`,e.children.map(e=>nr(e))),n}function rr(e,t,n){if(n.add(t),e.children)for(let r of e.children)rr(r,`${t}.${r.name}`,n)}function ir(e,t,n=``){for(let r=0;r<e.length;r++){let i=e[r],a=n?`${n}.${i.name}`:i.name;if(a===t){e.splice(r,1);let t=new Set;return rr(i,a,t),t}if(i.children&&t.startsWith(`${a}.`)){let e=ir(i.children,t,a);if(e)return e}}}function ar(e,t){for(let n of I(e))t(n)&&delete e[n]}function or(e,t){let n=t.search(/[?#]/),r=n===-1?t:t.slice(0,n);if(r===`/`||r.endsWith(`/`))return t;let i=e.search(/[?#]/),a=i===-1?e:e.slice(0,i);return a.length>1&&a.endsWith(`/`)?`${r}/${n===-1?``:t.slice(n)}`:t}function sr(e){let t=[];for(let n of e)for(let e of n.paramMeta.urlParams)t.push(e);return t}const cr=P([]);function lr(e,t,n){let r=n.get(t);if(r!==void 0)return r;let i=e.getSegmentsByName(t);if(!i)return cr;let a=P(sr(i));return n.set(t,a),a}function ur(e,t){return lr(e.matcher,t,e.urlParamsCache)}const dr=P([]);function fr(e,t,n,r){let i=r.get(t);if(i!==void 0)return i;let a=e.getDeclaredQueryParams(t);if(!a)return dr;let o=lr(e,t,n),s=P(a.filter(e=>!o.includes(e)));return r.set(t,s),s}function pr(e,t){return e.getDeclaredQueryParams(t)??dr}function mr(e,t){return fr(e.matcher,t,e.urlParamsCache,e.queryParamsCache)}function hr(e,t,n){let r=new Map,i=new Map;o(t.defaultParams,t=>fr(e,t,r,i),n)}function gr(e,t,n=100){let r=String(e),i=new Set,a=[r],o=r;for(;;){let e=t[o];if(!e)break;let r=String(e);if(i.has(r)){let e=a.indexOf(r),t=[...a.slice(e),r];throw Error(`Circular forwardTo: ${t.join(` → `)}`)}if(i.add(o),a.push(r),o=r,a.length>n)throw Error(`forwardTo chain exceeds maximum depth (${n}): ${a.join(` → `)}`)}return o}const _r=Object.freeze,L=Object.create,vr=Object.entries,R=Object.keys,yr=Object.defineProperty,br=Object.fromEntries;function xr(e,t,n){let r=ct(``,t,e),i=Bt(n);return i.registerTree(r),{tree:r,matcher:i}}function Sr(e,t=e.definitions){let n=xr(t,e.rootPath,e.matcherOptions);e.tree=n.tree,e.matcher=n.matcher,e.urlParamsCache.clear(),e.queryParamsCache.clear()}function Cr(e,t){let n=xr(e.definitions,t,e.matcherOptions);hr(n.matcher,e.config,`setRootPath`),e.rootPath=t,e.tree=n.tree,e.matcher=n.matcher,e.urlParamsCache.clear(),e.queryParamsCache.clear()}function wr(e,t){Sr(e,t),z(e,Dr(e.config))}function Tr(e){Er(e),Sr(e,[])}function Er(e){Object.assign(e.config,Xn()),z(e,L(null)),e.routeCustomFields=L(null)}function z(e,t){e.resolvedForwardMap=t,e.hasAnyForward=Zn(e.config)}function Dr(e){let t=L(null);for(let n of R(e.forwardMap))t[n]=gr(n,e.forwardMap);return t}function Or(e,t){if(typeof e!=`function`){if(typeof e!=`string`&&e!==null)throw TypeError(`forwardTo must be a string or function for route "${t}", got ${typeof e}`);return}let n=e.constructor.name===`AsyncFunction`,r=e.toString().includes(`__awaiter`);if(n||r)throw TypeError(`forwardTo callback cannot be async for route "${t}". Async functions break matchPath/buildPath.`)}function kr(e,t,n,r){if(Or(e.forwardTo,t),e.canActivate){let n=typeof e.forwardTo==`string`?e.forwardTo:`[dynamic]`;r.warn(`real-router`,`Route "${t}" has both forwardTo and canActivate. canActivate will be ignored because forwardTo creates a redirect (industry standard). Move canActivate to the target route "${n}".`)}if(e.canDeactivate){let n=typeof e.forwardTo==`string`?e.forwardTo:`[dynamic]`;r.warn(`real-router`,`Route "${t}" has both forwardTo and canDeactivate. canDeactivate will be ignored because forwardTo creates a redirect (industry standard). Move canDeactivate to the target route "${n}".`)}typeof e.forwardTo==`string`?n.forwardMap[t]=e.forwardTo:n.forwardFnMap[t]=e.forwardTo}function Ar(e,t,r,i,a,o,s){let c=br(vr(e).filter(([e])=>!Jn.has(e)));if(R(c).length>0&&(i[t]=_r(c)),e.canActivate&&a.set(t,e.canActivate),e.canDeactivate&&o.set(t,e.canDeactivate),e.forwardTo&&kr(e,t,r,s),e.decodeParams){let n=e.decodeParams;r.decoders[t]=e=>n(e)??e}if(e.encodeParams){let n=e.encodeParams;r.encoders[t]=e=>n(e)??e}e.defaultParams&&(r.defaultParams[t]=n.o(`defaultParams`,e.defaultParams)),e.defaultSearch&&(r.defaultSearch[t]=n.o(`defaultSearch`,e.defaultSearch))}function jr(e,t,n,r,i,a,o=``){for(let s of e){let e=o?`${o}.${s.name}`:s.name;Ar(s,e,t,n,r,i,a),s.children&&jr(s.children,t,n,r,i,a,e)}}function Mr(e){let t=Xn();return Qn(t,e),t}function Nr(e,t,n){if(n.length===0)return[...e,...t];let[r,...i]=n;return e.map(e=>{if(e.name!==r)return e;let n=e.children??[];return{...e,children:i.length===0?[...n,...t]:Nr(n,t,i)}})}function Pr(e,t,n){for(let r of e){let e=t?`${t}.${r.name}`:r.name;n(e),r.children&&Pr(r.children,e,n)}}function Fr(e,t,n){let r=new Set;Pr(e,t,e=>{if(r.has(e))throw Error(`[router.${n}] Duplicate route "${e}" in batch`);r.add(e)})}function Ir(e,t){if(Qt(e,t),e.startsWith(`@@`))throw Error(`[router.${t}] Route name "${e}" uses the reserved "@@" prefix. Routes with this prefix are internal and cannot be modified through the public API.`)}function B(e,t){for(let n of e)Ir(n.name,t),n.children&&B(n.children,t)}function V(t,n){for(let r of t)e.d(r.name,n),r.children&&V(r.children,n)}function H(t,n){for(let r of t)e.u(r.name,n),r.children&&H(r.children,n)}function Lr(e,t,n){let r=new Map,i=(e,t)=>{for(let a of e){let e=r.get(t);if(e?.has(a.path))throw Error(`[router.${n}] Path "${a.path}" is already defined`);e?e.add(a.path):r.set(t,new Set([a.path])),a.children&&i(a.children,t?`${t}.${a.name}`:a.name)}};i(e,t)}function Rr(e,t,n){if(B(t,`addRoute`),V(t,`addRoute`),H(t,`addRoute`),n!==void 0&&!e.matcher.hasRoute(n))throw Error(`[router.addRoute] Parent route "${n}" does not exist`);Pr(t,n??``,t=>{if(e.matcher.hasRoute(t))throw Error(`[router.addRoute] Route "${t}" already exists`)}),Fr(t,n??``,`addRoute`),Lr(t,n??``,`addRoute`)}function zr({definitions:e,routesForHandlers:t,config:n,routeCustomFields:r,handlerParentName:i,rootPath:a,matcherOptions:o,logger:s}){let c=new Map,l=new Map;jr(t,n,r,c,l,s,i);let u=Dr(n),{tree:d,matcher:f}=xr(e,a,o);return{config:n,routeCustomFields:r,pendingCanActivate:c,pendingCanDeactivate:l,tree:d,matcher:f,resolvedForwardMap:u}}function Br(e,t,n,r){return zr({definitions:Nr(e.definitions,t.map(e=>nr(e)),n===void 0?[]:n.split(`.`)),routesForHandlers:t,config:Mr(e.config),routeCustomFields:Object.assign(L(null),e.routeCustomFields),handlerParentName:n??``,rootPath:e.rootPath,matcherOptions:e.matcherOptions,logger:r})}function Vr(e,t,n,r){return zr({definitions:e.map(e=>nr(e)),routesForHandlers:e,config:Xn(),routeCustomFields:L(null),handlerParentName:``,rootPath:t,matcherOptions:n,logger:r})}function Hr(e,t,n){let r=[];for(let[i,a]of e)r.push([i,a,t(a,n)]);return r}function Ur(e,t){return{activate:Hr(e.pendingCanActivate,t.compileGuard,`canActivate`),deactivate:Hr(e.pendingCanDeactivate,t.compileGuard,`canDeactivate`)}}function Wr(e,t,n){let r=e.depsStore,{activate:i,deactivate:a}=n??Ur(t,r);Object.assign(e.config,t.config),e.routeCustomFields=t.routeCustomFields,e.tree=t.tree,e.matcher=t.matcher,e.urlParamsCache.clear(),e.queryParamsCache.clear(),z(e,t.resolvedForwardMap);for(let[e,t,n]of i)r.addActivateGuard(e,t,n);for(let[e,t,n]of a)r.addDeactivateGuard(e,t,n)}function U(e){return e===null?e:e||void 0}function Gr(e,t){return t==null?t:n.o(e,t)}function Kr(t,n,r,i){let{forwardTo:a,defaultParams:o,defaultSearch:s,decodeParams:c,encodeParams:l,canActivate:u,canDeactivate:d}=i,f=U(a),p=Gr(`defaultParams`,U(o)),m=Gr(`defaultSearch`,U(s)),h=U(c),g=U(l),_=U(u),v=U(d);p!=null&&e._(`updateRoute`,r,p,mr(t,r),"this route's `defaultParams`","Move it to `defaultSearch`");let y=f===void 0?void 0:qr(r,f,t.config),b=Jr(t,r,i),x=_==null?void 0:n.compileGuardFactory(_,`canActivate`),S=v==null?void 0:n.compileGuardFactory(v,`canDeactivate`);return n.preflightHandlerLimit(x===void 0?[]:[r],S===void 0?[]:[r],!1),b!==void 0&&(R(b).length>0?t.routeCustomFields[r]=_r(b):delete t.routeCustomFields[r]),y!==void 0&&(t.config.forwardMap=y.forwardMap,t.config.forwardFnMap=y.forwardFnMap,z(t,y.resolved)),Xr(t,r,{defaultParams:p,defaultSearch:m,decodeParams:h,encodeParams:g}),Zr(n,`activate`,r,_,x),Zr(n,`deactivate`,r,v,S),{forwardTo:f,defaultParams:p,defaultSearch:m,decodeParams:h,encodeParams:g}}function qr(e,t,n){Or(t,e);let r=Object.assign(L(null),n.forwardMap),i=Object.assign(L(null),n.forwardFnMap);return t===null?(delete r[e],delete i[e]):typeof t==`string`?(delete i[e],r[e]=t):(delete r[e],i[e]=t),{forwardMap:r,forwardFnMap:i,resolved:Dr({...n,forwardMap:r})}}function Jr(e,n,r){let i;for(let a of R(r)){if(Jn.has(a))continue;let o=r[a];o!==void 0&&(i??={...e.routeCustomFields[n]},o===null?delete i[a]:t.s(i,a,o))}return i}function Yr(e,t,n){n!==void 0&&(n===null?delete e[t]:e[t]=n)}function Xr(e,t,n){if(Yr(e.config.defaultParams,t,n.defaultParams),Yr(e.config.defaultSearch,t,n.defaultSearch),n.decodeParams!==void 0){if(n.decodeParams===null)delete e.config.decoders[t];else{let r=n.decodeParams;e.config.decoders[t]=e=>r(e)??e}}if(n.encodeParams!==void 0){if(n.encodeParams===null)delete e.config.encoders[t];else{let r=n.encodeParams;e.config.encoders[t]=e=>r(e)??e}}}function Zr(e,t,n,r,i){r!==void 0&&(t===`activate`?r===null?e.clearCanActivate(n,`definition`):e.addCanActivate(n,r,!0,i):r===null?e.clearCanDeactivate(n,`definition`):e.addCanDeactivate(n,r,!0,i))}function Qr(e,t,n){let r=e;B(r,`addRoute`),V(r,`constructor`),H(r,`constructor`),Fr(r,``,`addRoute`);let i=Vr(r,``,t,n),a={get definitions(){return ut(a.tree)},config:i.config,tree:i.tree,matcher:i.matcher,urlParamsCache:new Map,queryParamsCache:new Map,resolvedForwardMap:i.resolvedForwardMap,hasAnyForward:Zn(i.config),routeCustomFields:i.routeCustomFields,rootPath:``,matcherOptions:t,depsStore:void 0,lifecycleNamespace:void 0,revalidating:!1,pendingCanActivate:i.pendingCanActivate,pendingCanDeactivate:i.pendingCanDeactivate};return hr(a.matcher,a.config,`addRoute`),yr(a,`matcherOptions`,{writable:!1,configurable:!1}),a}const $r=Object.freeze,ei=Object.keys,ti=[];Object.freeze(ti);function ni(e){let t=e.split(`.`),n=t.length,r=[t[0]],i=t[0].length;for(let a=1;a<n-1;a++)i+=1+t[a].length,r.push(e.slice(0,i));return r.push(e),r}const ri=new Set([`string`,`number`,`boolean`]);function ii(e){return ri.has(typeof e)}function ai(e,t,n,r){let i=t[e];if(!i||typeof i!=`object`)return!0;for(let e of ei(i)){let t=n.params[e],i=r.params[e];if(ii(t)&&ii(i)&&String(t)!==String(i))return!1}return!0}function oi(e,t,n,r,i,a){for(let o=0;o<a;o++){let a=r[o];if(a!==i[o]||!ai(a,e,t,n))return o}return a}const si=new Map;function W(e){let t=si.get(e);if(t)return t;let n=ci(e);return $r(n),si.set(e,n),n}function ci(e){if(!e)return[``];let t=e.indexOf(`.`);if(t===-1)return[e];let n=e.indexOf(`.`,t+1);if(n===-1)return[e.slice(0,t),e];let r=e.indexOf(`.`,n+1);return r===-1?[e.slice(0,t),e.slice(0,n),e]:e.indexOf(`.`,r+1)===-1?[e.slice(0,t),e.slice(0,n),e.slice(0,r),e]:ni(e)}let li,ui,G=null,di,fi,pi=null;function mi(e,t,n){if(!t)return{intersection:``,toActivate:W(e.name),toDeactivate:ti};let r=n(e.name),i=n(t.name);if(!r&&!i)return{intersection:``,toActivate:W(e.name),toDeactivate:W(t.name)};let a=W(e.name),o=W(t.name),s=Math.min(o.length,a.length),c=oi(r??i,e,t,a,o,s),l;if(c>=o.length)l=ti;else if(c===0&&o.length===1)l=o;else{l=[];for(let e=o.length-1;e>=c;e--)l.push(o[e])}let u=c===0?a:a.slice(c);return{intersection:c>0?o[c-1]:``,toDeactivate:l,toActivate:u}}function K(e,t,n){if(G!==null&&e===li&&t===ui)return G;if(pi!==null&&e===di&&t===fi)return pi;let r=mi(e,t,n);return di=li,fi=ui,pi=G,li=e,ui=t,G=r,r}const hi=Object.freeze,q=Object.hasOwn;function gi(e,t){return{name:t??e.segments.at(-1).fullName,params:e.params,search:e.search,meta:e.meta}}function _i(e){let t=Sn(e);return t===`preserve`?void 0:t}var vi=class{#e;#t;#n;get#r(){return this.#e.depsStore}constructor(e,t,n){this.#e=Qr(e,t,n)}static shouldUpdateNode(e,t){return(n,r)=>{if(!(n&&typeof n==`object`&&`name`in n))throw TypeError(`[router.shouldUpdateNode] toState must be valid State object`);if(n.transition?.reload||e===``)return!0;let{intersection:i,toActivate:a,toDeactivate:o}=K(n,r,t);return e===i||a.includes(e)?!0:o.includes(e)}}isRevalidating(){return this.#e.revalidating}setDependencies(e){this.#e.depsStore=e}flushPendingGuards(){let e=this.#r;for(let[t,n]of this.#e.pendingCanActivate)e.addActivateGuard(t,n);this.#e.pendingCanActivate.clear();for(let[t,n]of this.#e.pendingCanDeactivate)e.addDeactivateGuard(t,n);this.#e.pendingCanDeactivate.clear()}setLifecycleNamespace(e){this.#e.lifecycleNamespace=e}setRootPath(e){Cr(this.#e,e)}hasRoute(e){return this.#e.matcher.hasRoute(e)}clearRoutes(){Tr(this.#e)}buildPath(e,n,r,i){if(e===t.h.UNKNOWN_ROUTE)return typeof n.path==`string`?n.path:``;let a=this.#e.config.encoders[e];if(typeof a==`function`){let t=a({params:{...n},search:{...r}});return this.#e.matcher.buildPath(e,t.params,t.search,this.#c(i))}return this.#e.matcher.buildPath(e,n,r,this.#c(i))}buildPathFromIntent(e,r,i){return e===t.h.UNKNOWN_ROUTE?this.#r.port.buildPath(e,n.f(r,t.d),i??t.f):j(A(this.#r.port,e,r,i,{resolveForward:!1}),this.#r.port)}matchPath(t,r){let i=r,a=this.#e.matcher.match(t);if(!a)return;let o=gi(a),{name:s}=o,c=n._(o.params),l=n._(o.search),u=this.#e.config.decoders[s],d;if(typeof u==`function`){d=u({params:c,search:l});let t=d.params;d={params:t,search:d.search},this.#r.getValidator()?.routes.validateStateBuilderArgs(s,t,`matchPath`),e._(`matchPath`,s,t,this.getQueryParams(s),"the `params` returned by this route's `decodeParams`")}else d={params:c,search:l};let f=A(this.#r.port,s,d.params,d.search),p=f.name;e.v(`matchPath`,f.name,f.path,this.getQueryParams(f.name));let m=f.path,h=f.query,g=t;if(i.rewritePathOnMatch){let e=this.#e.config.encoders[p],n=typeof e==`function`?e({params:m,search:h}):{params:m,search:h},r=i.trailingSlash;try{g=this.#e.matcher.buildPath(p,n.params,n.search,{trailingSlash:_i(r),queryParamsMode:Cn(i.queryParamsMode)}),Sn(r)===`preserve`&&(g=or(t,g))}catch{g=t}}return M(f,g)}forwardState(e,n,r){let i=r??t.f;if(q(this.#e.config.forwardFnMap,e)){let t=this.#e.config.forwardFnMap[e],{target:r,chain:a,params:o}=this.#l(e,t,n);return this.#s(r,a,o,i)}let a=this.#e.resolvedForwardMap[e]??e;if(a!==e&&q(this.#e.config.forwardFnMap,a)){let t=this.#e.config.forwardFnMap[a],{target:r,chain:o,params:s}=this.#l(a,t,n);return this.#s(r,[...this.#o(e),...o],s,i)}return a===e?{name:e,params:n,search:i}:this.#s(a,this.#o(e),n,i)}buildStateResolved(e,t){let n=this.#e.matcher.getSegmentsByName(e);if(n)return gi({segments:n,params:t,search:{},meta:this.#e.matcher.getMetaByName(e)},e)}isActiveRoute(e,n=t.d,r=t.f,i=!1,a=!0){if(this.#i(e,n,r,i,a))return!0;if(!this.#e.hasAnyForward)return!1;let o;try{o=typeof e==`string`?e:String(e)}catch{return!1}if(!q(this.#e.config.forwardMap,o)&&!q(this.#e.config.forwardFnMap,o))return!1;let s;try{s=this.forwardState(e,n,r)}catch(t){return this.#r.logger.warn(`router.isActiveRoute`,`Dynamic forwardTo of route "${er(e)}" threw while resolving the active-link destination; treating the link as inactive.`,t),!1}return this.#i(s.name,s.params,s.search,i,a)}getMetaForState(e){return this.#e.matcher.hasRoute(e)?this.#e.matcher.getMetaByName(e):void 0}getUrlParams(e){return ur(this.#e,e)}getQueryParams(e){return mr(this.#e,e)}getPrintedQueryParams(e){return pr(this.#e.matcher,e)}getStore(){return this.#e}getPort(){return this.#r.port}#i(e,t,n,r,i){try{return this.#a(e,t,n,r,i)}catch(t){return this.#r.logger.warn(`router.isActiveRoute`,`Reading the arguments for route "${er(e)}" threw while resolving the active-link state; treating the link as inactive.`,t),!1}}#a(e,t,r,i,a){let o=this.#r.getState();if(!o)return!1;let s=o.name;if(s!==e&&!s.startsWith(`${e}.`)&&!e.startsWith(`${s}.`))return!1;let c=A(this.#r.port,e,t,r,{resolveForward:!1});if(i||s===e){let e=Mn(c,``);return!this.#r.areStatesEqual(e,o,!0)||!$n(c.path,o.params)?!1:a||n.h(e.search,o.search)}return!(!s.startsWith(`${e}.`)||!$n(c.path,o.params)||!a&&!tr(c.query,o.search))}#o(e){let t=[],n=e;for(;q(this.#e.config.forwardMap,n);)t.push(n),n=this.#e.config.forwardMap[n];return t}#s(e,r,i,a){let o,s;for(let e of r)o=n.l(this.#e.config.defaultParams[e],o),s=n.l(this.#e.config.defaultSearch[e],s);return{name:e,params:n.f(n.l(o,i),t.d),search:n.f(n.l(s,a),t.f)}}#c(e){return this.#t?(e!==this.#n&&this.#r.logger.warn(`router.buildPath`,"`options` differs from the cached source reference; router options are immutable per router instance, so the first-cached buildPath options are reused (#957)."),this.#t):(this.#n=e,this.#t=hi({trailingSlash:_i(e?.trailingSlash),queryParamsMode:Cn(e?.queryParamsMode)}),this.#t)}#l(e,t,r){let i=n.t(r),a=new Set([e]),o=[e],s=t(this.#r.getDependency,i),c=0;if(typeof s!=`string`)throw TypeError(`forwardTo callback must return a string, got ${typeof s}`);for(;c<100;){if(this.#e.matcher.getSegmentsByName(s)===void 0)throw Error(`Route "${s}" does not exist`);if(a.has(s)){let e=[...a,s].join(` → `);throw Error(`Circular forwardTo: ${e}`)}if(a.add(s),q(this.#e.config.forwardFnMap,s)){let e=this.#e.config.forwardFnMap[s];o.push(s),s=e(this.#r.getDependency,i),c++;continue}let e=this.#e.config.forwardMap[s];if(e!==void 0){o.push(s),s=e,c++;continue}return{target:s,chain:o,params:i}}throw Error(`forwardTo exceeds maximum depth of 100`)}};const yi=new t.t(t.g.ROUTER_NOT_STARTED),bi=new t.t(t.g.SAME_STATES),xi=new t.t(t.g.ROUTER_NOT_STARTED,{message:`[router] cannot commit before the start navigation does — the boot would overwrite it; defer with queueMicrotask/await, or navigate after start() resolves`});Object.freeze(yi),Object.freeze(bi),Object.freeze(xi);const Si=Promise.reject(yi),Ci=Promise.reject(bi),wi=Promise.reject(xi);Si.catch(()=>{}),Ci.catch(()=>{}),wi.catch(()=>{});const Ti=new Set([t.g.SAME_STATES,t.g.TRANSITION_CANCELLED,t.g.ROUTER_NOT_STARTED,t.g.ROUTE_NOT_FOUND,t.g.CANNOT_ACTIVATE,t.g.CANNOT_DEACTIVATE,t.g.ROUTER_ALREADY_STARTED]);function Ei(e){return e instanceof t.t&&Ti.has(e.code)}const Di=new Set([Si,Ci,wi]),J=Object.freeze;function Oi(e){let{fromState:t,toDeactivate:n,toActivate:r,intersection:i}=e;J(n),J(r);let a={phase:`activating`,reason:`success`,segments:J({deactivated:n,activated:r,intersection:i})};return t?.name!==void 0&&(a.from=t.name),e.reload!==void 0&&(a.reload=e.reload),e.replace!==void 0&&(a.replace=e.replace),e.redirected!==void 0&&(a.redirected=e.redirected),J(a)}function ki(e,n){let{toState:r,fromState:i,toDeactivate:a,toActivate:o}=n;if(r.name!==t.h.UNKNOWN_ROUTE&&!e.hasRoute(r.name)){let a=new t.t(t.g.ROUTE_NOT_FOUND,{routeName:r.name});throw e.sendTransitionFail(i,a,n),t.n(a)}let s=n,c={...r,transition:Oi(n)},l=J(c);n.toState=l;let u=e.canCommitTransition(s);if(!u)throw t.n(new t.t(t.g.TRANSITION_CANCELLED));for(let t of a)!o.includes(t)&&n.canDeactivateFunctions.has(t)&&e.clearCanDeactivate(t,u);return e.sendTransitionDone(s),l}const Ai=Object.entries;function ji(e){return e instanceof t.t&&e.code===t.g.TRANSITION_CANCELLED}function Mi(e){return ji(e)?e:new t.t(t.g.TRANSITION_CANCELLED,{reason:e})}function Ni(e,n,r,i){let a=n;a.code!==t.g.TRANSITION_CANCELLED&&a.code!==t.g.ROUTE_NOT_FOUND&&e.sendTransitionFail(r,a,i)}function Pi(e,n,r){if(e instanceof DOMException&&e.name===`AbortError`)throw t.n(new t.t(t.g.TRANSITION_CANCELLED));if(ji(e))throw e;Fi(e,n,r)}function Fi(e,n,r){if(e instanceof t.t){let{code:r,message:i,...a}=e.toJSON(),o=new t.t(r,{...a,message:i});throw o.setCode(n),o.stack=e.stack??``,t.n(o)}throw t.n(new t.t(n,Li(e,r)))}const Ii=new Set([`code`,`segment`,`path`,`then`]);function Li(e,n){let r={segment:n};if(e instanceof Error){let t=e.message,n=e.stack,i=`cause`in e?e.cause:void 0;return{...r,message:t,stack:n,...i!==void 0&&{cause:i}}}if(e&&typeof e==`object`){let n={};for(let[r,i]of Ai(e))r!==`__proto__`&&!Ii.has(r)&&t.s(n,r,i);return{...r,...n}}return r}async function Ri(e,n,r){let i;try{i=await e}catch(e){Pi(e,n,r);return}if(!i)throw t.n(new t.t(n,{segment:r}))}function zi(e,n,r,i,a,o,s,c,l,u){if(!l())throw t.n(new t.t(t.g.TRANSITION_CANCELLED));if(e===1){let t=u();return t===void 0?void 0:{phase:e,index:n+1,pending:t}}let d=r[n],f=i.get(d);if(!f)return;let p=!1;try{p=f(o,s,c)}catch(e){Pi(e,a,d)}let m;try{m=p.then}catch(e){Pi(e,a,d)}if(typeof m==`function`){let t=p;return{phase:e,index:n+1,pending:new Promise((e,n)=>{Reflect.apply(m,t,[e,n])})}}if(!p)throw t.n(new t.t(a,{segment:d}))}function Bi(e,n,r,i,a,o,s,c,l,u,d,f,p){let m=e===1,h=e===0;if(!m&&!(h?s:c))return;let g=h?a:o,_=m?1:g.length,v=h?r:i,y=h?t.g.CANNOT_DEACTIVATE:t.g.CANNOT_ACTIVATE;for(let t=n;t<_;t++){let n=zi(e,t,g,v,y,l,u,d,f,p);if(n!==void 0)return n}}function Vi(e,t,n,r,i,a,o,s,c,l,u,d,f){for(let p=d;p<=2;p++){let m=Bi(p,p===d?f:0,e,t,n,r,i,a,o,s,c,l,u);if(m!==void 0)return m}}async function Hi(e,n,r,i,a,o,s,c,l,u,d,f){let p=e;for(;p!==void 0;){if(p.phase===1)await p.pending;else{let e=p.phase===0;await Ri(p.pending,e?t.g.CANNOT_DEACTIVATE:t.g.CANNOT_ACTIVATE,(e?i:a)[p.index-1])}p=Vi(n,r,i,a,o,s,c,l,u,d,f,p.phase,p.index)}}function Ui(e,t,n,r,i,a,o,s,c,l,u){let d=Vi(e,t,n,r,i,a,o,s,c,l,u,0,0);return d===void 0?void 0:Hi(d,e,t,n,r,i,a,o,s,c,l,u)}const Wi=Object.freeze,Gi=Object.freeze([]),Ki=new Map;function qi(e,t){return t?Wi({...e,replace:!0}):e}function Ji(e,t,n,r){return!!e&&!t&&!n&&e.path===r.path}function Yi(e,t){if(e.size===0)return!1;for(let n of t)if(e.has(n))return!0;return!1}function Xi(e){let t=e.controller;if(t!==void 0)return t;let n=new AbortController;return e.cancelReason!==void 0&&n.abort(e.cancelReason),e.controller=n,n}function Zi(e,t){t.externalSignal!==void 0&&t.cancelReason===void 0&&t.hasGuards&&e.bridgeExternalSignal(t)}function Qi(e,n,r,i,a,o,s,c,l,u){aa(e,o);let d=e.hasLeaveListeners()||e.hasPreCommitListeners(),f={toState:n,fromState:r,opts:i,suspendable:a!==void 0||d,forceDeactivate:u,toDeactivate:Gi,toActivate:Gi,intersection:``,canDeactivateFunctions:Ki,canActivateFunctions:Ki,shouldDeactivate:!1,shouldActivate:!1,hasGuards:!1,controller:void 0,cancelReason:void 0,detachExternalBridge:void 0,externalSignal:a,reload:s,replace:c,redirected:l};if(!e.startTransition(f))throw t.n(new t.t(t.g.TRANSITION_CANCELLED));return f}function $i(e,t){return e.sendLeaveApprove(t),ki(e,t)}function ea(e,n){let[r,i]=e.getLifecycleFunctions(),{toDeactivate:a,toActivate:o,intersection:s}=K(n.toState,n.fromState,t=>e.getMetaForState(t));n.canDeactivateFunctions=r,n.canActivateFunctions=i,n.toDeactivate=a,n.toActivate=o,n.intersection=s,n.shouldDeactivate=!!n.fromState&&!n.forceDeactivate&&a.length>0,n.shouldActivate=n.toState.name!==t.h.UNKNOWN_ROUTE&&o.length>0,n.hasGuards=n.shouldDeactivate&&Yi(r,a)||n.shouldActivate&&Yi(i,o)}function ta(e,r,i){let a,o;try{a=e.getState();let s=n.m(i),c=s?.aborted===!0?s:void 0;i=n.i(i);let l=n.p(i,`reload`),u=n.p(i,`force`),d=n.p(i,`replace`),f=n.p(i,`redirected`),p=n.p(i,`forceDeactivate`)===!0,m=a?.name===t.h.UNKNOWN_ROUTE&&!d,h=m||d;if(i=qi(i,m),Ji(a,l,u,r))return e.emitTransitionError(r,a,bi),Ci;let g=Qi(e,r,a,i,s,c,l,h,f,p);o=g;let _=g.externalSignal;if(_?.aborted===!0&&e.cancelNavigation(_.reason),ea(e,g),Zi(e,g),!g.hasGuards&&!g.suspendable)return $i(e,g);let{canDeactivateFunctions:v,canActivateFunctions:y,toDeactivate:b,toActivate:x,shouldDeactivate:S,shouldActivate:ee,hasGuards:C}=g,te=r;if(!C){let t=ia(e,g);if(t!==void 0)return t}if(C){let n=Xi(g),i=()=>!n.signal.aborted,o=n.signal,s=Ui(v,y,b,x,S,ee,r,a,o,i,()=>{if(e.sendLeaveApprove(g),e.hasLeaveListeners())return e.awaitLeaveListeners(te,a,o)});if(s!==void 0)return na(e,s,g,n);if(!i())throw t.n(new t.t(t.g.TRANSITION_CANCELLED))}return ki(e,g)}catch(t){let n=ra(e,t,{nav:o,fromState:a});return Promise.reject(n)}}async function na(e,n,r,i){let a=()=>!i.signal.aborted,o=r.externalSignal,s,c=!1,l,u=new Promise(e=>{if(i.signal.aborted){e();return}s=()=>{e()},i.signal.addEventListener(`abort`,s,{once:!0})});n.catch(()=>{});try{if(o?.aborted)throw t.n(new t.t(t.g.TRANSITION_CANCELLED,{reason:o.reason}));if(await Promise.race([n,u]),!a())throw t.n(new t.t(t.g.TRANSITION_CANCELLED));let i=ki(e,r);return c=!0,i}catch(t){let n=a()?t:Mi(t);throw l=n,Ni(e,n,r.fromState,r),n}finally{s&&i.signal.removeEventListener(`abort`,s),c||i.abort(l)}}function ra(e,t,n){let{nav:r}=n;if(r?.controller?.abort(t),r!==void 0){let i=e.isTransitioning()?t:Mi(t);return Ni(e,i,n.fromState,r),i}return t}function ia(e,t){let{toState:n,fromState:r}=t;if(e.hasLeaveListeners()&&Xi(t),e.sendLeaveApprove(t),e.hasLeaveListeners()){let i=Xi(t),a;try{a=e.awaitLeaveListeners(n,r,i.signal)}catch(e){throw i.abort(e),e}return a===void 0?void 0:na(e,a,t,i)}}function aa(e,n){if(e.isTransitioning()&&(e.logger.warn(`router.navigate`,`Concurrent navigation detected on shared router instance. For SSR, use cloneRouter() to create isolated instance per request.`),e.cancelNavigation()),n!==void 0)throw t.n(new t.t(t.g.TRANSITION_CANCELLED,{reason:n.reason}))}const oa=Object.freeze,sa=Object.freeze([t.h.UNKNOWN_ROUTE]),ca=Object.freeze({replace:!0});function la(e,n,r){aa(e,void 0);let i=e.getState(),a=i?W(i.name).toReversed():[];oa(a);let o={deactivated:a,activated:sa,intersection:``};oa(o);let s={phase:`activating`,...i&&{from:i.name},reason:`success`,replace:!0,segments:o};oa(s);let c={name:t.h.UNKNOWN_ROUTE,params:t.d,search:t.f,path:n,transition:s,context:{}};if(oa(c),r&&i!==void 0&&!e.canDeactivateCurrent(a,c,i)){let r=new t.t(t.g.CANNOT_DEACTIVATE,{path:n,message:`[router.navigateToNotFound] a canDeactivate guard on "${i.name}" refused to leave for ${n}`});throw e.emitTransitionError(void 0,i,r),t.n(r)}return e.systemCommit(c,i,ca)}function ua(e,t){return la(e,t,!0)}function da(e,t){return la(e,t,!1)}var fa=class{#e;#t;#n=0;setDependencies(e){this.#e=e,this.#t=t=>{Ei(t)||e.logger.error(`router.navigate`,`Unexpected navigation error`,t)}}navigate(e,t,n,r){return this.#r(this.#i(e,t,n,r))}navigateToState(e,t){return this.#r(this.#a(e,t))}navigateToDefault(e){return this.#r(this.#s(e))}navigateToNotFound(e){return ua(this.#e,e)}revalidateToNotFound(e){return da(this.#e,e)}isPreparing(){return this.#n>0}#r(e){return e instanceof Promise&&!Di.has(e)&&e.catch(this.#t),e}#i(e,n,r,i){let a=this.#e;if(!a.canNavigate())return a.isStarting()?wi:Si;let o;this.#n++;try{o=a.buildNavigateState(e,n,r)}catch(e){return Promise.reject(e)}finally{this.#n--}if(!o){let n=t.n(new t.t(t.g.ROUTE_NOT_FOUND,{routeName:e}));return a.emitTransitionError(void 0,a.getState(),n),Promise.reject(n)}return ta(this.#e,o,i)}#a(n,r){let i=this.#e;if(!i.canNavigate())return i.isStarting()?wi:Si;let a=n.name;if(a!==t.h.UNKNOWN_ROUTE&&!i.hasRoute(a)){let e=t.n(new t.t(t.g.ROUTE_NOT_FOUND,{routeName:a}));return i.emitTransitionError(void 0,i.getState(),e),Promise.reject(e)}let o=e.y(n.params,i.getQueryParams(a));if(o!==void 0){let n=t.n(new t.t(t.g.WRONG_CHANNEL,{routeName:a,message:`[router.navigateToState] ${e.b(a,o,"`state.params`")}`}));return i.emitTransitionError(void 0,i.getState(),n),Promise.reject(n)}let s;try{s=this.#o(n,a)}catch(e){return Promise.reject(e)}return ta(this.#e,s,r)}#o(e,r){let i={name:r,params:n.n(e.params,t.d),search:n.n(e.search,t.f),path:e.path,context:{...e.context},transition:t.l};return n.c(i)}#s(e){let n=this.#e;if(!n.getOptions().defaultRoute)return Promise.reject(t.n(new t.t(t.g.ROUTE_NOT_FOUND,{message:`[router.navigateToDefault] no defaultRoute is configured — pass one to createRouter, or navigate to a route by name`})));let r,i,a;this.#n++;try{({route:r,params:i,search:a}=n.resolveDefault())}catch(e){return Promise.reject(e)}finally{this.#n--}return r?typeof r==`string`?this.#i(r,i,a,e):Promise.reject(t.n(new t.t(t.g.ROUTE_NOT_FOUND,{message:`[router.navigateToDefault] defaultRoute resolved to ${typeof r}, which cannot name a route`}))):Promise.reject(t.n(new t.t(t.g.ROUTE_NOT_FOUND,{message:`[router.navigateToDefault] defaultRoute resolved to an empty name`})))}};const pa={},ma=Object.freeze({replace:!0});function ha(e){return[e,e?.reason].some(e=>e instanceof t.t&&e.code===t.g.ROUTE_NOT_FOUND)}var ga=class{#e;setDependencies(e){this.#e=e}async start(e){let n=this.#e;if(n.isIdle())throw t.n(new t.t(t.g.TRANSITION_CANCELLED));let r=n.getOptions();if(typeof e!=`string`)throw TypeError(`[router.start] path must be a string, got ${typeof e}`);let i=n.getRootPath(),a=n.matchPath(e);if(!a&&!r.allowNotFound){let n=new t.t(t.g.ROUTE_NOT_FOUND,{path:e});throw t.n(n)}if(n.completeStart(),a!==void 0&&n.getRootPath()!==i&&(a=n.matchPath(e),!a&&!r.allowNotFound))throw t.n(new t.t(t.g.ROUTE_NOT_FOUND,{path:e}));if(a)try{return await n.navigateToState(a,ma)}catch(t){if(!r.allowNotFound||!ha(t))throw t;return n.navigateToNotFound(e)}return n.navigateToNotFound(e)}};const _a={},va=Object.create,ya=Object.entries,ba=Object.hasOwn,xa=Object.values,Sa=new WeakMap;function Ca(e,t,n){if(typeof n==`string`)return{target:n,when:void 0,update:void 0};let r=n.when,i=n.update;if(r!==void 0&&typeof r!=`function`)throw Error(`[FSM.constructor] transitions["${e}"]["${t}"].when is not a function`);if(i!==void 0&&typeof i!=`function`)throw Error(`[FSM.constructor] transitions["${e}"]["${t}"].update is not a function`);return{target:n.target,when:r,update:i}}function wa(e){let t=Sa.get(e);if(t!==void 0)return t;let n=e,r=va(null);for(let[e,t]of ya(n)){let n=va(null);for(let[r,i]of ya(t))i!==void 0&&(n[r]=Ca(e,r,i));r[e]=n}for(let e of xa(r))for(let t of xa(e))if(t!==void 0&&r[t.target]===void 0)throw Error(`[FSM.constructor] state "${t.target}" is not declared in config.transitions`);return Sa.set(e,r),r}var Ta=class{#e;#t;#n=0;#r=null;#i;#a;#o=[];constructor(e){let t=e.initial;if(this.#e=t,this.#i=e.context,this.#a=wa(e.transitions),this.#a[t]===void 0)throw Error(`[FSM.constructor] state "${t}" is not declared in config.transitions`);this.#t=this.#a[t]}send(e,t){let n=this.#t[e];if(n===void 0)return this.#e;let r=t,i=n.when;if(i!==void 0&&!i(this.#i,r))return this.#e;let a=n.target,o=n.update,s=this.#e;if(this.#e=a,this.#t=this.#a[a],o?.(this.#i,r),this.#r!==null){let t=this.#r.get(s)?.get(e);t!==void 0&&t(r)}if(this.#n>0){let t={from:s,to:a,event:e,payload:r};for(let e of this.#o)e!==null&&e(t)}return this.#e}canSend(e,t){let n=this.#t[e];return n===void 0?!1:n.when===void 0||n.when(this.#i,t)}getState(){return this.#e}getContext(){return this.#i}on(e,t,n){let r=this.#a[e];if(r===void 0)throw Error(`[FSM.on] state "${e}" is not declared in config.transitions`);if(!ba(r,t))throw Error(`[FSM.on] event "${t}" has no edge from state "${e}"`);this.#r??=new Map;let i=this.#r.get(e);i||(i=new Map,this.#r.set(e,i));let a=n;return i.set(t,a),()=>{let n=this.#r?.get(e);n?.get(t)===a&&n.delete(t)}}onTransition(e){let t=this.#o.indexOf(null),n;t===-1?(n=this.#o.length,this.#o.push(e)):(this.#o[t]=e,n=t),this.#n++;let r=!0;return()=>{r&&(r=!1,this.#o[n]=null,this.#n--)}}};const Y={IDLE:`IDLE`,STARTING:`STARTING`,READY:`READY`,TRANSITION_STARTED:`TRANSITION_STARTED`,LEAVE_APPROVED:`LEAVE_APPROVED`,DISPOSED:`DISPOSED`},X={START:`START`,STARTED:`STARTED`,NAVIGATE:`NAVIGATE`,LEAVE_APPROVE:`LEAVE_APPROVE`,COMPLETE:`COMPLETE`,FAIL:`FAIL`,CANCEL:`CANCEL`,STOP:`STOP`,DISPOSE:`DISPOSE`,SYSTEM_COMMIT:`SYSTEM_COMMIT`};function Ea(){return{inflight:void 0,current:void 0,previous:void 0}}const Da=(e,t)=>t?.nav===void 0||t.nav===e.inflight,Oa=(e,t)=>t!==void 0&&t===e.inflight&&t.externalSignal?.aborted!==!0,ka=(e,t)=>{e.previous=e.current,e.current=n.c(t)},Aa=(e,t)=>{ka(e,t.toState),e.inflight=void 0},ja=(e,t)=>{ka(e,t.toState)},Ma=e=>{e.previous=e.current,e.current=void 0},Z=e=>{e.current=void 0,e.previous=void 0,e.inflight=void 0},Na=(e,t)=>{e.inflight=t},Pa={[Y.IDLE]:{[X.START]:Y.STARTING,[X.DISPOSE]:{target:Y.DISPOSED,update:Z}},[Y.STARTING]:{[X.STARTED]:Y.READY,[X.FAIL]:Y.IDLE,[X.STOP]:{target:Y.IDLE,update:Ma},[X.DISPOSE]:{target:Y.DISPOSED,update:Z}},[Y.READY]:{[X.NAVIGATE]:{target:Y.TRANSITION_STARTED,update:Na},[X.SYSTEM_COMMIT]:{target:Y.READY,update:ja},[X.STOP]:{target:Y.IDLE,update:Ma},[X.DISPOSE]:{target:Y.DISPOSED,update:Z}},[Y.TRANSITION_STARTED]:{[X.NAVIGATE]:{target:Y.TRANSITION_STARTED,update:Na},[X.LEAVE_APPROVE]:Y.LEAVE_APPROVED,[X.CANCEL]:Y.READY,[X.FAIL]:{target:Y.READY,when:Da},[X.DISPOSE]:{target:Y.DISPOSED,update:Z}},[Y.LEAVE_APPROVED]:{[X.NAVIGATE]:{target:Y.TRANSITION_STARTED,update:Na},[X.COMPLETE]:{target:Y.READY,when:Oa,update:Aa},[X.CANCEL]:Y.READY,[X.FAIL]:{target:Y.READY,when:Da},[X.DISPOSE]:{target:Y.DISPOSED,update:Z}},[Y.DISPOSED]:{}};function Fa(){return new Ta({initial:Y.IDLE,context:Ea(),transitions:Pa})}const Ia=Object.freeze,Q=`TREE_CHANGED`;function La(e){return e instanceof Error?e:Error(String(e))}function Ra(e,n,r){return new Promise((i,a)=>{let o=()=>{let e=r.reason;a(e instanceof t.t&&e.code===t.g.TRANSITION_CANCELLED?e:new t.t(t.g.TRANSITION_CANCELLED,{reason:e}))};if(r.aborted){o();return}r.addEventListener(`abort`,o,{once:!0}),Promise.allSettled(e).then(e=>{if(r.removeEventListener(`abort`,o),r.aborted)return;if(n!==void 0){a(La(n));return}let t=e.find(e=>e.status===`rejected`);if(t!==void 0){a(La(t.reason));return}i()})})}function za(e,t,n){return e.addEventListener(`abort`,t,{once:!0}),()=>{n(),e.removeEventListener(`abort`,t)}}var Ba=class{#e;#t;#n;#r=[];#i=0;constructor(e){this.#e=e.routerFSM,this.#t=e.emitter,this.#s()}static validateSubscribeListener(e){if(typeof e!=`function`)throw TypeError(`[router.subscribe] Expected a function. For Observable pattern use observable(router) from @real-router/rx`)}static validateSubscribeLeaveListener(e){if(typeof e!=`function`)throw TypeError(`[router.subscribeLeave] Expected a function`)}emitRouterStart(){this.#i++;try{this.#t.emit(t._.ROUTER_START)}finally{this.#i--}}emitRouterStop(){this.#t.emit(t._.ROUTER_STOP)}emitTransitionStart(e,n,r){this.#i++;try{this.#t.emit(t._.TRANSITION_START,e,n)}finally{this.#i--}}emitTransitionSuccess(e,n,r){this.#i++;try{this.#t.emit(t._.TRANSITION_SUCCESS,e,n,r)}finally{this.#i--}}emitTransitionError(e,n,r){this.#i++;try{this.#t.emit(t._.TRANSITION_ERROR,e,n,r)}finally{this.#i--}}emitTransitionCancel(e,n){this.#i++;try{this.#t.emit(t._.TRANSITION_CANCEL,e,n)}finally{this.#i--}}emitTransitionLeaveApprove(e,n){this.#i++;try{this.#t.emit(t._.TRANSITION_LEAVE_APPROVE,e,n)}finally{this.#i--}}isProcessing(){return this.#i>0}emitTreeChanged(e){this.#t.emit(Q,e)}isEmittingTreeChanged(){return this.#t.isDispatching(Q)}subscribeTreeChanged(e){if(this.isDisposed())throw t.n(new t.t(t.g.ROUTER_DISPOSED));return this.#t.on(Q,t=>{e(t)})}treeChangedListenerCount(){return this.#t.listenerCount(Q)}sendStart(){this.#e.send(X.START)}sendStop(){this.#e.send(X.STOP)}sendDispose(){this.#e.send(X.DISPOSE)}sendStarted(){this.#e.send(X.STARTED)}sendNavigate(e){return this.#e.send(X.NAVIGATE,e)===Y.TRANSITION_STARTED}canCommitTransition(e){return this.#e.canSend(X.COMPLETE,e)}sendComplete(e){this.#e.send(X.COMPLETE,e)}sendLeaveApprove(e){this.#e.send(X.LEAVE_APPROVE,e)}sendFail(e,t,n){this.#e.send(X.FAIL,{nav:n,fromState:e,error:t})}sendCancel(e,t){this.#e.send(X.CANCEL,{fromState:e,reason:t})}systemCommit(e){let{toState:r}=e,i=r.transition,a={name:r.name,params:n.n(r.params,t.d),search:n.n(r.search,t.f),path:r.path,context:{...r.context},...i!=null&&{transition:n.r(i)}};if(!this.#e.canSend(X.SYSTEM_COMMIT))throw this.#o();return this.#e.send(X.SYSTEM_COMMIT,{...e,toState:a}),a}canBeginTransition(){return this.#e.canSend(X.NAVIGATE)}canStart(){return this.#e.canSend(X.START)}canCancel(){return this.#e.canSend(X.CANCEL)}isActive(){let e=this.#e.getState();return e!==Y.IDLE&&e!==Y.DISPOSED}isDisposed(){return this.#e.getState()===Y.DISPOSED}isTransitioning(){let e=this.#e.getState();return e===Y.TRANSITION_STARTED||e===Y.LEAVE_APPROVED}isLeaveApproved(){return this.#e.getState()===Y.LEAVE_APPROVED}isReady(){return this.#e.getState()===Y.READY}isStarting(){return this.#e.getState()===Y.STARTING}isIdle(){return this.#e.getState()===Y.IDLE}addEventListener(e,t){return this.#a(e,`addEventListener`),this.#t.on(e,t)}subscribe(e){if(this.isDisposed())throw t.n(new t.t(t.g.ROUTER_DISPOSED));return this.#a(t._.TRANSITION_SUCCESS,`subscribe`),this.#t.on(t._.TRANSITION_SUCCESS,(t,n)=>e({route:t,previousRoute:n}))}subscribeLeave(e){if(this.isDisposed())throw t.n(new t.t(t.g.ROUTER_DISPOSED));this.#r.push(e);let n=!1;return()=>{if(n)return;n=!0;let t=this.#r.indexOf(e);t!==-1&&this.#r.splice(t,1)}}hasLeaveListeners(){return this.#r.length>0}hasPreCommitListeners(){return this.#t.listenerCount(t._.TRANSITION_START)>0||this.#t.listenerCount(t._.TRANSITION_LEAVE_APPROVE)>0}awaitLeaveListeners(e,t,n){if(t===void 0)return;let r=Ia({route:t,nextRoute:e,signal:n}),i,a,o=[...this.#r];this.#i++;try{for(let e of o)try{let t=e(r);t!==void 0&&typeof t.then==`function`&&(i??=[],i.push(t))}catch(e){a===void 0&&(a=e)}}finally{this.#i--}if(i===void 0){if(a!==void 0)throw La(a);return}return Ra(i,a,n)}clearAll(){this.#t.clearAll(),this.#r.length=0}setLimits(e){this.#t.setLimits(e)}setValidatorAccessor(e){this.#n=e}sendCancelIfPossible(e,t){this.canCancel()&&this.sendCancel(e,t)}bridgeExternalSignal(e){let t=e.externalSignal;return t===void 0||e.detachExternalBridge!==void 0||(e.detachExternalBridge=za(t,()=>{this.sendCancelIfPossible(this.#e.getContext().current,t.reason)},()=>{e.detachExternalBridge=void 0})),_a}#a(e,t){let n=this.#n?.();n&&n.eventBus.validateCountThresholds(this.#t.listenerCount(e)+1,e,t)}#o(){if(this.isDisposed())return new t.t(t.g.ROUTER_DISPOSED);let e;return e=this.isTransitioning()?`[router] cannot commit a state while a transition is in flight — the navigation in progress commits its own`:this.isStarting()?`[router] cannot commit before the start navigation does — the boot would overwrite it; await start() first`:`[router] cannot commit a state before the router has started`,new t.t(t.g.ROUTER_NOT_STARTED,{message:e})}#s(){let e=this.#e;e.on(Y.STARTING,X.STARTED,()=>{this.emitRouterStart()}),e.on(Y.READY,X.STOP,()=>{this.emitRouterStop()});let n=e=>{let t=e.externalSignal!==void 0&&(this.hasLeaveListeners()||this.hasPreCommitListeners())?this.bridgeExternalSignal(e):_a;this.emitTransitionStart(e.toState,e.fromState,t)};e.on(Y.READY,X.NAVIGATE,n),e.on(Y.TRANSITION_STARTED,X.NAVIGATE,n),e.on(Y.LEAVE_APPROVED,X.NAVIGATE,n),e.on(Y.TRANSITION_STARTED,X.LEAVE_APPROVE,e=>{this.emitTransitionLeaveApprove(e.toState,e.fromState)}),e.on(Y.LEAVE_APPROVED,X.COMPLETE,e=>{e.detachExternalBridge?.(),this.emitTransitionSuccess(e.toState,e.fromState,e.opts)});let r=e=>{let{fromState:n,reason:r}=e,i=this.#e.getContext().inflight,a=r??new t.t(t.g.TRANSITION_CANCELLED);i.cancelReason=a,i.controller?.abort(a),i.detachExternalBridge?.(),this.emitTransitionCancel(i.toState,n)};e.on(Y.TRANSITION_STARTED,X.CANCEL,r),e.on(Y.LEAVE_APPROVED,X.CANCEL,r),e.on(Y.READY,X.SYSTEM_COMMIT,e=>{this.emitTransitionSuccess(e.toState,e.fromState,e.opts)});let i=e=>{let t=this.#e.getContext().inflight;t?.detachExternalBridge?.(),this.emitTransitionError(t?.toState,e.fromState,e.error)};e.on(Y.LEAVE_APPROVED,X.FAIL,i),e.on(Y.TRANSITION_STARTED,X.FAIL,i),e.on(Y.STARTING,X.FAIL,e=>{this.emitTransitionError(void 0,e.fromState,e.error)})}};const Va=Object.freeze;function Ha(e){return Wa(e)&&!Object.isFrozen(e)&&e!==k.defaultParams&&e!==k.defaultSearch}function Ua(e){let{defaultParams:t,defaultSearch:n}=e;return Va({...Ha(t)&&{defaultParams:new WeakRef(t)},...Ha(n)&&{defaultSearch:new WeakRef(n)}})}function Wa(e){return typeof e==`object`&&!!e}function Ga(e){let t={...e};return e.limits!=null&&(t.limits=n.o(`limits`,e.limits)),Wa(e.defaultParams)&&(t.defaultParams=n.o(`defaultParams`,e.defaultParams)),Wa(e.defaultSearch)&&(t.defaultSearch=n.o(`defaultSearch`,e.defaultSearch)),t}const Ka=Object.keys,qa=Object.freeze;function Ja(e={}){let n={...t.c,...e};return qa({maxDependencies:Number(n.maxDependencies),maxPlugins:Number(n.maxPlugins),maxListeners:Number(n.maxListeners),warnListeners:Number(n.warnListeners),maxLifecycleHandlers:Number(n.maxLifecycleHandlers)})}function Ya(e){return e==null?void 0:qa(Ka(e))}const Xa=Object.freeze,Za=Object.freeze({});function Qa(e,t){let n;try{n=t[e]}catch(t){throw TypeError(`[router.constructor] Invalid "queryParams.${e}": reading it threw.`,{cause:t})}if(n!=null){if(typeof n==`string`)return n;try{return String(n)}catch(t){throw TypeError(`[router.constructor] Invalid "queryParams.${e}": its value cannot be converted to a string.`,{cause:t})}}}function $a(e){if(e==null)return`default`;try{return String(e)}catch(e){throw TypeError(`[router.constructor] Invalid "urlParamsEncoding": coercing it threw.`,{cause:e})}}function eo(e){if(!e)return Za;let t=Qa(`arrayFormat`,e),n=Qa(`booleanFormat`,e),r=Qa(`nullFormat`,e),i=Qa(`numberFormat`,e);return Xa({...t!==void 0&&{arrayFormat:t},...n!==void 0&&{booleanFormat:n},...r!==void 0&&{nullFormat:r},...i!==void 0&&{numberFormat:i}})}function to(e){return Xa({strictTrailingSlash:e.trailingSlash===`strict`,caseSensitive:e.caseSensitive,strictQueryParams:e.queryParamsMode===`strict`,urlParamsEncoding:$a(e.urlParamsEncoding),queryParams:eo(e.queryParams)})}const no=new t.t(t.g.ROUTER_ALREADY_STARTED);Object.freeze(no);const ro={maxListeners:0,warnListeners:0};var io=class{#e=new Map;#t=new Set;#n=null;#r=ro;#i;#a;constructor(e){e?.limits&&(this.#r=e.limits),this.#i=e?.onListenerError??null,this.#a=e?.onListenerWarn??null}static validateCallback(e,t){if(typeof e!=`function`)throw TypeError(`Expected callback to be a function for event ${t}`)}setLimits(e){this.#r=e}on(e,t){let n=this.#e.get(e),r=n?.size??0;if(n?.has(t))throw Error(`Duplicate listener for "${e}"`);let{maxListeners:i,warnListeners:a}=this.#r;if(i!==0&&r>=i)throw Error(`Listener limit (${i}) reached for "${e}"`);a!==0&&r===a&&this.#a!==null&&(this.#n??=new Set,this.#n.has(e)||(this.#a(e,a),this.#n.add(e)));let o=n;return o===void 0&&(o=new Set,this.#e.set(e,o)),o.add(t),()=>{this.off(e,t)}}off(e,t){let n=this.#e.get(e);n&&(n.delete(t),n.size===0&&(this.#e.delete(e),this.#n?.delete(e)))}emit(e,t,n,r,i){let a=this.#e.get(e);if(!a||a.size===0||this.#t.has(e))return;let o=arguments.length-1;this.#t.add(e);try{if(a.size===1){let[s]=a;this.#o(e,s,o,t,n,r,i)}else{let s=[...a];for(let a of s)this.#o(e,a,o,t,n,r,i)}}finally{this.#t.delete(e)}}clearAll(){this.#e.clear(),this.#n=null}listenerCount(e){return this.#e.get(e)?.size??0}isDispatching(e){return this.#t.has(e)}#o(e,t,n,r,i,a,o){try{let s=this.#s(t,n,r,i,a,o),c=s?.then;typeof c==`function`&&new Promise((e,t)=>{c.call(s,e,t)}).catch(t=>{this.#i?.(e,t)})}catch(t){this.#i?.(e,t)}}#s(e,t,n,r,i,a){switch(t){case 0:return e();case 1:return e(n);case 2:return e(n,r);case 3:return e(n,r,i);default:return e(n,r,i,a)}}};const ao=Object.freeze({log:0,warn:1,error:2}),oo=Object.freeze({all:0,"warn-error":1,"error-only":2,none:3}),so=Object.hasOwn;var co=class{#e={level:`all`,callback:void 0,callbackIgnoresLevel:!1};#t=0;#n=!1;constructor(e){e&&this.configure(e)}configure(e){let t=pn(e),n=t.level;n!==void 0&&(this.#e.level=n,this.#t=oo[n]),so(t,`callback`)&&(this.#e.callback=t.callback),t.callbackIgnoresLevel!==void 0&&(this.#e.callbackIgnoresLevel=t.callbackIgnoresLevel)}getConfig(){return{level:this.#e.level,callback:this.#e.callback,callbackIgnoresLevel:this.#e.callbackIgnoresLevel}}log(e,t,...n){this.#r(`log`,e,t,n)}warn(e,t,...n){this.#r(`warn`,e,t,n)}error(e,t,...n){this.#r(`error`,e,t,n)}#r(e,t,n,r){if(this.#e.level===`none`&&!this.#e.callbackIgnoresLevel)return;let i=ao[e]<this.#t;i||this.#i(e,t,n,r),this.#a(e,t,n,i,r)}#i(e,t,n,r){if(typeof console<`u`&&typeof console[e]==`function`){let i=t?`[${t}] ${n}`:n;console[e](i,...r)}}#a(e,t,n,r,i){if(!(!this.#e.callback||!this.#e.callbackIgnoresLevel&&r)&&!this.#n){this.#n=!0;try{let r=this.#e.callback(e,t,n,...i);r!=null&&typeof r.then==`function`&&Promise.resolve(r).catch(e=>{this.#o(`[router] Error in async callback:`,e)})}catch(e){this.#o(`[router] Error in callback:`,e)}finally{this.#n=!1}}}#o(e,t){typeof console<`u`&&typeof console.error==`function`&&console.error(e,t)}};function lo(t){let n=e=>gn(t.dependenciesStore,e),r=uo(t.router,n),i=_o(t),a=()=>e.i(t.router).validator;fo(t),po(t,a),mo(t,r,a),ho(t,i,a,n),go(t,r,a),vo(t,i,n),yo(t),bo(t,i)}function uo(e,t){return n=>n(e,t)}function fo(e){e.eventBus.setLimits({maxListeners:e.limits.maxListeners,warnListeners:e.limits.warnListeners})}function po(e,t){e.eventBus.setValidatorAccessor(t)}function mo(t,n,r){let i={logger:e.i(t.router).logger,compileFactory:n,getValidator:r};t.routeLifecycle.setDependencies(i)}function ho(t,n,r,i){let a={logger:e.i(t.router).logger,getValidator:r,port:n,addActivateGuard:(e,n,r)=>{t.routeLifecycle.addCanActivate(e,n,!0,r)},addDeactivateGuard:(e,n,r)=>{t.routeLifecycle.addCanDeactivate(e,n,!0,r)},compileGuard:(e,n)=>t.routeLifecycle.compileGuardFactory(e,n),getState:()=>t.state.get(),areStatesEqual:(e,n,r)=>t.state.areStatesEqual(e,n,r),getDependency:i};t.routes.setDependencies(a),t.routes.setLifecycleNamespace(t.routeLifecycle)}function go(t,n,r){let i={logger:e.i(t.router).logger,addEventListener:(e,n)=>t.eventBus.addEventListener(e,n),canNavigate:()=>t.eventBus.canBeginTransition(),compileFactory:n,getValidator:r};t.plugins.setDependencies(i)}function _o(t){let n=e.i(t.router),r=t.routes.getStore(),i=(e,t)=>{n.validator?.state.reportUndeclaredParamKey(e,t)},a=(e,t)=>{n.validator?.state.reportDroppedQueryKey(e,t)};return{resolveForward:(e,t,r)=>n.forwardState(e,t,r),defaultParams:e=>r.config.defaultParams[e],defaultSearch:e=>r.config.defaultSearch[e],buildPath:(e,n,r)=>t.routes.buildPath(e,n,r,t.options.get()),queryNames:e=>t.routes.getQueryParams(e),printedQueryNames:e=>t.routes.getPrintedQueryParams(e),pathNames:e=>t.routes.hasRoute(e)?t.routes.getUrlParams(e):void 0,admitsUndeclaredQuery:()=>Cn(t.options.get().queryParamsMode)===`loose`,get reportDroppedQueryKey(){return n.validator?a:void 0},get reportUndeclaredParamKey(){return n.validator?i:void 0}}}function vo(t,n,r){let i=e=>r(e),a={logger:e.i(t.router).logger,getOptions:()=>t.options.get(),hasRoute:e=>t.routes.hasRoute(e),getQueryParams:e=>t.routes.getQueryParams(e),getMetaForState:e=>t.routes.getMetaForState(e),getState:()=>t.state.get(),buildNavigateState:(r,i,a)=>{e.i(t.router).validator?.routes.validateStateBuilderArgs(r,i,`navigate`);let o=A(n,r,i,a,{diagnoseUndeclared:!0});if(t.routes.getMetaForState(o.name)!==void 0)return e.v(`navigate`,o.name,o.path,n.queryNames(o.name)),M(o,j(o,n))},resolveDefault:()=>{let n=t.options.get(),r=e.i(t.router),a=Dn(n.defaultRoute,i),o=Dn(n.defaultParams,i),s=Dn(n.defaultSearch,i);return typeof n.defaultRoute==`function`&&r.validator?.options.validateResolvedDefaultRoute(a),{route:a,params:o,search:s}},startTransition:e=>t.eventBus.sendNavigate(e),systemCommit:(e,n,r)=>t.eventBus.systemCommit({toState:e,fromState:n,opts:r}),cancelNavigation:e=>{t.eventBus.sendCancelIfPossible(t.state.get(),e)},bridgeExternalSignal:e=>{t.eventBus.bridgeExternalSignal(e)},canCommitTransition:e=>t.eventBus.canCommitTransition(e)?pa:void 0,sendTransitionDone:e=>{t.eventBus.sendComplete(e)},sendTransitionFail:(e,n,r)=>{t.eventBus.sendFail(e,n,r)},emitTransitionError:(e,n,r)=>{t.eventBus.emitTransitionError(e,n,r)},sendLeaveApprove:e=>{t.eventBus.sendLeaveApprove(e)},canNavigate:()=>t.eventBus.canBeginTransition(),isStarting:()=>t.eventBus.isStarting(),getLifecycleFunctions:()=>t.routeLifecycle.getFunctions(),canDeactivateCurrent:(e,n,r)=>t.routeLifecycle.canNavigateTo(e,[],n,r),isTransitioning:()=>t.eventBus.isTransitioning(),clearCanDeactivate:(e,n)=>{t.routeLifecycle.clearCanDeactivate(e,`external`)},hasLeaveListeners:()=>t.eventBus.hasLeaveListeners(),hasPreCommitListeners:()=>t.eventBus.hasPreCommitListeners(),awaitLeaveListeners:(e,n,r)=>t.eventBus.awaitLeaveListeners(e,n,r)};t.navigation.setDependencies(a)}function yo(e){e.lifecycle.setDependencies({getOptions:()=>e.options.get(),navigateToState:(t,n)=>e.navigation.navigateToState(t,n),navigateToNotFound:t=>e.navigation.navigateToNotFound(t),matchPath:t=>e.routes.matchPath(t,e.options.get()),getRootPath:()=>e.routes.getStore().rootPath,completeStart:()=>{e.eventBus.sendStarted()},isIdle:()=>e.eventBus.isIdle()})}function bo(e,t){e.state.setDependencies({port:()=>t,getUrlParams:t=>e.routes.getUrlParams(t)})}var xo=class r{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;constructor(i=[],a={},o={}){let{logger:s,...c}=a,l=new co(s?pn(s):void 0);this.#f=e=>{Ei(e)||l.error(`router.start`,`Unexpected start error`,e)},En.validateOptionsIsObject(a),en(o);let u=an(i),d=Ga(c);this.#r=Ua(c),this.#e=new En(d),this.#t=Ja(d.limits),this.#n=Ya(d.limits),this.#i=yn(o,this.#t),this.#a=new Nn,this.#o=new vi(u,to(this.#e.get()),l),this.#s=new qn,this.#c=new Bn,this.#l=new fa,this.#u=new ga;let f=Fa();this.#a.setContext(f.getContext());let p=new io({onListenerError:(e,t)=>{l.error(`Router`,`Error in listener for ${e}:`,t)},onListenerWarn:(e,t)=>{l.warn(`router.addEventListener`,`Event "${e}" has ${t} listeners — possible memory leak`)}});this.#d=new Ba({routerFSM:f,emitter:p});let m=new Map,h=e=>{let t=e.params,r=e.search;return{name:e.name,params:t==null?t:n._(t),search:r==null?r:n._(r)}},g=e.r(e.t.forwardState,(e,t,n)=>this.#o.forwardState(e,t,n),m,h,So),_=((r,i,a)=>{let o=g(r,i,a),s=o.name,c=o.params;e._(`forwardState`,s,c,this.#o.getQueryParams(s),()=>s===r?"the `params` bag leaving the forwardState chain":`the \`params\` bag leaving the forwardState chain (forwarded here from "${r}")`);let l=o.search,u=l==null;return{name:s,params:n._(c??t.d),search:u?l:n._(l)}}),v=e.r(e.t.forwardState,(e,t,n)=>({name:e,params:t,search:n}),m,h,So);this.#p=(e,n,r)=>{let i=v(e,n,r),a=i.params,o=i.search;return this.#o.buildPathFromIntent(i.name,a??t.d,o)};let y={logger:l,makeState:(t,r,i,a)=>{e.s(y,`makeState`,t,r);let o=n.t(r);return y.validator?.state.validateMakeStateArgs(t,o,a),y.validator?.navigation.validateSearch(i,`makeState`),this.#a.makeState(t,o,i,a)},getMetaForState:e=>this.#o.getMetaForState(e),getDeclaredQueryNames:e=>this.#o.getQueryParams(e),forwardState:_,buildStateResolved:(e,t)=>this.#o.buildStateResolved(e,t),buildPathResolved:(e,r,i)=>{let a=n.t(r);return y.validator?.navigation.validateParamsShape(r,`buildPathResolved`),y.validator?.navigation.validateSearch(i,`buildPathResolved`),y.validator?.navigation.validateParams(a,`buildPathResolved`),this.#o.buildPathFromIntent(e,a??t.d,i)},port:()=>this.#o.getPort(),matchPath:(e,t)=>(y.validator?.routes.validateMatchPathArgs(e),this.#o.matchPath(e,t??this.#e.get())),getOptions:()=>this.#e.get(),getAdoptedOrigins:()=>this.#r,addEventListener:(t,n)=>(e.o(y.isDisposed),Jt(t),Yt(n),y.validator?.eventBus.validateListenerArgs(t,n),this.#d.addEventListener(t,n)),treeChanged:{emit:e=>{this.#d.emitTreeChanged(e)},subscribe:e=>this.#d.subscribeTreeChanged(e),listenerCount:()=>this.#d.treeChangedListenerCount(),isEmitting:()=>this.#d.isEmittingTreeChanged()},emitTransitionError:e=>{this.#d.emitTransitionError(void 0,this.#a.get(),e)},navigateToNotFound:e=>{if(e!==void 0&&typeof e!=`string`)throw TypeError(`[router.navigateToNotFound] path must be a string, got ${typeof e}`);return this.#l.navigateToNotFound(e)},revalidateToNotFound:e=>this.#l.revalidateToNotFound(e),start:e.n(e.t.start,e=>this.#u.start(e),m),navigateToState:(n,i)=>(e.o(y.isDisposed),y.validator?.navigation.validateNavigateToStateArgs(n),i!==void 0&&y.validator?.navigation.validateNavigationOptions(i,`navigateToState`),this.#g(),r.#m(this.#l.navigateToState(n,i??t.u))),interceptors:m,setRootPath:e=>{y.validator?.routes.validateSetRootPathArgs(e),this.#o.setRootPath(e)},getRootPath:()=>this.#o.getStore().rootPath,getTree:()=>this.#o.getStore().tree,isDisposed:()=>this.#d.isDisposed(),validator:null,dependenciesGetStore:()=>this.#i,getCloneState:()=>({options:{...this.#e.get()},dependencies:vn(this.#i),pluginFactories:this.#c.getAll(),loggerConfig:l.getConfig(),limits:this.#t,limitKeys:this.#n}),routeGetStore:()=>this.#o.getStore(),getStateName:()=>this.#a.get()?.name,isTransitioning:()=>this.#d.isTransitioning(),systemCommit:(e,n,r)=>{let i=e.name;if(i!==`@@router/UNKNOWN_ROUTE`&&!this.#o.hasRoute(i))throw t.n(new t.t(t.g.ROUTE_NOT_FOUND,{routeName:i}));return this.#d.systemCommit({toState:e,fromState:n,opts:r})},routerExtensions:[],contextClaimRecords:new Map};e.a(this,y),lo({router:this,options:this.#e,limits:this.#t,dependenciesStore:this.#i,state:this.#a,routes:this.#o,routeLifecycle:this.#s,plugins:this.#c,navigation:this.#l,lifecycle:this.#u,eventBus:this.#d}),this.isActiveRoute=this.isActiveRoute.bind(this),this.buildPath=this.buildPath.bind(this),this.getState=this.getState.bind(this),this.getPreviousState=this.getPreviousState.bind(this),this.areStatesEqual=this.areStatesEqual.bind(this),this.shouldUpdateNode=this.shouldUpdateNode.bind(this),this.isActive=this.isActive.bind(this),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.dispose=this.dispose.bind(this),this.canNavigateTo=this.canNavigateTo.bind(this),this.usePlugin=this.usePlugin.bind(this),this.navigate=this.navigate.bind(this),this.navigateToDefault=this.navigateToDefault.bind(this),this.navigateToNotFound=this.navigateToNotFound.bind(this),this.subscribe=this.subscribe.bind(this),this.subscribeLeave=this.subscribeLeave.bind(this),this.isLeaveApproved=this.isLeaveApproved.bind(this);try{this.#o.flushPendingGuards()}catch(e){throw this.dispose(),e}}isActiveRoute(t,n,r,i,a){let o=e.i(this);return o.validator?.routes.validateIsActiveRouteArgs(t,n,i,a),o.validator?.navigation.validateSearch(r,`isActiveRoute`),o.validator?.routes.validateRouteName(t,`isActiveRoute`),t===``?(o.logger.warn(`real-router`,`isActiveRoute("") called with empty string. Root node is not considered a parent of any route.`),!1):this.#o.isActiveRoute(t,n,r,i,a)}buildPath(r,i,a){let o=e.i(this);o.validator?.routes.validateBuildPathArgs(r,i),o.validator?.navigation.validateParamsShape(i,`buildPath`),o.validator?.navigation.validateSearch(a,`buildPath`);let s=n.t(i);return o.validator?.navigation.validateParams(s,`buildPath`),this.#p(r,s??t.d,a)}getState(){return this.#a.get()}getPreviousState(){return this.#a.getPrevious()}areStatesEqual(t,n,r=!0){return e.i(this).validator?.state.validateAreStatesEqualArgs(t,n,r),this.#a.areStatesEqual(t,n,r)}shouldUpdateNode(t){return e.i(this).validator?.routes.validateShouldUpdateNodeArgs(t),vi.shouldUpdateNode(t,e=>this.#o.getMetaForState(e))}isActive(){return this.#d.isActive()}start(e){let t=this.#h(e);return t.catch(this.#f),t}stop(){return this.#d.sendCancelIfPossible(this.#a.get()),!this.#d.isReady()&&!this.#d.isTransitioning()&&!this.#d.isStarting()||this.#d.sendStop(),this}dispose(){if(this.#d.isDisposed())return;this.#d.sendCancelIfPossible(this.#a.get()),(this.#d.isReady()||this.#d.isTransitioning())&&this.#d.sendStop(),this.#d.sendDispose(),this.#d.clearAll(),this.#c.disposeAll();let t=e.i(this);for(let e of t.routerExtensions)for(let t of e.keys)delete this[t];t.routerExtensions.length=0,t.contextClaimRecords.clear(),t.interceptors.clear(),this.#o.clearRoutes(),this.#s.clearAll(),_n(this.#i),this.#v()}canNavigateTo(r,i,a){let o=e.i(this);o.validator?.routes.validateRouteName(r,`canNavigateTo`),o.validator?.navigation.validateParamsShape(i,`canNavigateTo`),o.validator?.navigation.validateSearch(a,`canNavigateTo`);let s;try{s=n.t(i)}catch(e){return o.logger.warn(`router.canNavigateTo`,`Reading the params bag for route "${r}" threw; treating the route as unreachable.`,e),!1}if(o.validator?.navigation.validateParams(s,`canNavigateTo`),!this.#o.hasRoute(r)||e.y(i,this.#o.getQueryParams(r))!==void 0)return!1;let c=this.#o.getPort(),l;try{l=A(c,r,s??t.d,a)}catch(e){return o.logger.warn(`router.canNavigateTo`,`Resolving route "${r}" threw while answering the predicate; treating the route as unreachable.`,e),!1}let u;try{u=M(l,j(l,c))}catch{return!1}let d=this.#a.get(),{toDeactivate:f,toActivate:p}=K(u,d,e=>this.#o.getMetaForState(e));return this.#s.canNavigateTo(f,p,u,d)}usePlugin(...n){if(this.#d.isDisposed())throw t.n(new t.t(t.g.ROUTER_DISPOSED));let r=n.filter(Boolean);if(r.length===0)return()=>{};let i=e.i(this);i.validator?.plugins.validatePluginLimit(this.#c.count(),this.#t);for(let e of r)i.validator?.plugins.validateNoDuplicatePlugins(e,this.#c.getAll());return this.#c.use(...r)}subscribe(e){return Ba.validateSubscribeListener(e),this.#d.subscribe(e)}subscribeLeave(e){return Ba.validateSubscribeLeaveListener(e),this.#d.subscribeLeave(e)}isLeaveApproved(){return this.#d.isLeaveApproved()}navigate(i,a,o,s){this.#g();let c=e.i(this),l,u,d,f;typeof i==`object`&&i?(l=i.name,u=i.params,d=i.search,f=a??t.u):(l=i,u=a,d=o,f=s??t.u),e.s(c,`navigate`,l,u),c.validator?.navigation.validateNavigateArgs(l),c.validator?.navigation.validateParamsShape(u,`navigate`),c.validator?.navigation.validateSearch(d,`navigate`),c.validator?.navigation.validateNavigationOptions(f,`navigate`);let p;try{p=n.t(u)}catch(e){return Promise.reject(e)}return c.validator?.navigation.validateParams(p,`navigate`),r.#m(this.#l.navigate(l,p??t.d,d,f))}navigateToDefault(n){this.#g();let i=e.i(this);i.validator?.navigation.validateNavigateToDefaultArgs(n);let a=n??t.u;return i.validator?.navigation.validateNavigationOptions(a,`navigateToDefault`),r.#m(this.#l.navigateToDefault(a))}navigateToNotFound(e){if(this.#g(),!this.#d.isActive())throw t.n(new t.t(t.g.ROUTER_NOT_STARTED));if(e!==void 0&&typeof e!=`string`)throw TypeError(`[router.navigateToNotFound] path must be a string, got ${typeof e}`);if(e!==void 0)return this.#l.navigateToNotFound(e);let n=this.#a.get();if(n===void 0)throw t.n(new t.t(t.g.ROUTER_NOT_STARTED,{message:`[router.navigateToNotFound] cannot derive the path before the start navigation commits — pass an explicit path`}));return this.#l.navigateToNotFound(n.path)}static#m(e){return e instanceof Promise?e:Promise.resolve(e)}#h(t){if(!this.#d.canStart())return Promise.reject(no);e.i(this).validator?.navigation.validateStartArgs(t),this.#d.sendStart();let n;try{let r=e.i(this).start(t);n=typeof r?.then==`function`?r:Promise.reject(TypeError("[router.start] a `start` interceptor returned without calling next(). Every start interceptor must return `next(path)`."))}catch(e){n=Promise.reject(e)}return n.catch(e=>this.#_(e))}#g(){if(this.#d.isProcessing())throw t.n(new t.t(t.g.REENTRANT_NAVIGATION,{message:`[router] cannot start a navigation from inside a router event listener — the nested navigation would commit a state the outer one overwrites. Defer it: queueMicrotask(() => router.navigate(...)), await the current transition, or use an async listener.`}));if(this.#l.isPreparing())throw t.n(new t.t(t.g.REENTRANT_NAVIGATION,{message:`[router] cannot start a navigation from inside a forwardState interceptor, a route's encodeParams or dynamic forwardTo callback, or a defaultRoute/defaultParams/defaultSearch option callback — they run while a navigation is being prepared, before it is announced. Defer it: queueMicrotask(() => router.navigate(...)).`}));if(this.#o.isRevalidating())throw t.n(new t.t(t.g.REENTRANT_NAVIGATION,{message:`[router] cannot start a navigation from inside replace()'s revalidation — the revalidation would then defer to a commit that may never happen. Defer it: queueMicrotask(() => router.navigate(...)).`}))}#_(e){throw this.#d.isReady()&&this.#a.get()===void 0?this.#d.sendStop():this.#d.isStarting()&&this.#d.sendFail(void 0,e),e}#v(){this.navigate=$,this.navigateToDefault=$,this.navigateToNotFound=$,this.start=$,this.stop=$,this.usePlugin=$,this.subscribe=$,this.subscribeLeave=$,this.canNavigateTo=$}};function $(){throw t.n(new t.t(t.g.ROUTER_DISPOSED))}function So(e,t,r){return[e,n.t(t),n.t(r)]}Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return hn}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return ur}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return _n}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return on}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return an}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return rn}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return Zt}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return Qt}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return gn}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return Xt}}),Object.defineProperty(exports,"R",{enumerable:!0,get:function(){return lt}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return ir}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return Tr}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return Rr}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return Qn}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return Lr}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return Br}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return Ur}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return wr}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Wr}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return nn}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return vn}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return Kr}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return Vr}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return Fr}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return xo}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return Ir}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return gr}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return ar}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return hr}}),Object.defineProperty(exports,"z",{enumerable:!0,get:function(){return ut}});
|
|
2
|
-
//# sourceMappingURL=Router-CVjeBVB7.js.map
|