@vesk/runtime 0.1.14 → 0.2.8
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/form.js +1 -1
- package/dist/headless.d.ts +30 -0
- package/dist/headless.d.ts.map +1 -0
- package/dist/headless.js +39 -0
- package/dist/hmr-client.js +5 -2
- package/dist/index-client.d.ts +5 -0
- package/dist/index-client.d.ts.map +1 -1
- package/dist/index-client.js +3 -0
- package/dist/index-router.d.ts +16 -0
- package/dist/index-router.d.ts.map +1 -0
- package/dist/index-router.js +15 -0
- package/dist/index-server.d.ts +3 -0
- package/dist/index-server.d.ts.map +1 -1
- package/dist/index-server.js +2 -0
- package/dist/loading-indicator.d.ts +127 -0
- package/dist/loading-indicator.d.ts.map +1 -0
- package/dist/loading-indicator.js +342 -0
- package/dist/md.d.ts +112 -3
- package/dist/md.d.ts.map +1 -1
- package/dist/md.js +1977 -198
- package/dist/network.d.ts +28 -0
- package/dist/network.d.ts.map +1 -0
- package/dist/network.js +62 -0
- package/dist/request.d.ts.map +1 -1
- package/dist/request.js +18 -6
- package/dist/router-components.d.ts +26 -0
- package/dist/router-components.d.ts.map +1 -1
- package/dist/router-components.js +73 -0
- package/dist/router-match.d.ts +2 -0
- package/dist/router-match.d.ts.map +1 -1
- package/dist/router-match.js +6 -3
- package/dist/router.d.ts +27 -0
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +749 -270
- package/package.json +6 -2
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser network-state tracking for connectivity-aware boundaries
|
|
3
|
+
* (`offline.vsk` / `network.vsk`) and the router's fallback UI.
|
|
4
|
+
*
|
|
5
|
+
* Degrades gracefully where the Network Information API is missing
|
|
6
|
+
* (Safari/Firefox): those fields become null and consumers fall back to
|
|
7
|
+
* the `online` flag alone.
|
|
8
|
+
*/
|
|
9
|
+
export type EffectiveType = 'slow-2g' | '2g' | '3g' | '4g' | 'unknown';
|
|
10
|
+
export interface NetworkState {
|
|
11
|
+
online: boolean;
|
|
12
|
+
effectiveType: EffectiveType;
|
|
13
|
+
/** Estimated downlink in Mbps, or null when unsupported. */
|
|
14
|
+
downlink: number | null;
|
|
15
|
+
/** Estimated round-trip time in ms, or null when unsupported. */
|
|
16
|
+
rtt: number | null;
|
|
17
|
+
saveData: boolean;
|
|
18
|
+
}
|
|
19
|
+
type NetworkListener = (state: NetworkState) => void;
|
|
20
|
+
export declare function getNetworkState(): NetworkState;
|
|
21
|
+
/**
|
|
22
|
+
* Subscribes to connectivity changes (online/offline flips plus
|
|
23
|
+
* Network Information API changes where supported). Returns an
|
|
24
|
+
* unsubscribe function. No-op-safe on the server.
|
|
25
|
+
*/
|
|
26
|
+
export declare function watchNetwork(cb: NetworkListener): () => void;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=network.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,aAAa,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iEAAiE;IACjE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,KAAK,eAAe,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAWrD,wBAAgB,eAAe,IAAI,YAAY,CAkB9C;AAkBD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,eAAe,GAAG,MAAM,IAAI,CAI5D"}
|
package/dist/network.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser network-state tracking for connectivity-aware boundaries
|
|
3
|
+
* (`offline.vsk` / `network.vsk`) and the router's fallback UI.
|
|
4
|
+
*
|
|
5
|
+
* Degrades gracefully where the Network Information API is missing
|
|
6
|
+
* (Safari/Firefox): those fields become null and consumers fall back to
|
|
7
|
+
* the `online` flag alone.
|
|
8
|
+
*/
|
|
9
|
+
const listeners = new Set();
|
|
10
|
+
let installed = false;
|
|
11
|
+
function readConnection() {
|
|
12
|
+
if (typeof navigator === 'undefined' || !navigator)
|
|
13
|
+
return null;
|
|
14
|
+
const navAny = navigator;
|
|
15
|
+
return (navAny.connection || navAny.mozConnection || navAny.webkitConnection);
|
|
16
|
+
}
|
|
17
|
+
export function getNetworkState() {
|
|
18
|
+
const conn = readConnection();
|
|
19
|
+
let online = true;
|
|
20
|
+
if (typeof navigator !== 'undefined' && navigator && typeof navigator.onLine === 'boolean') {
|
|
21
|
+
online = navigator.onLine;
|
|
22
|
+
}
|
|
23
|
+
const rawType = typeof conn?.effectiveType === 'string' ? conn.effectiveType : '';
|
|
24
|
+
const effectiveType = rawType === 'slow-2g' || rawType === '2g' || rawType === '3g' || rawType === '4g'
|
|
25
|
+
? rawType
|
|
26
|
+
: 'unknown';
|
|
27
|
+
return {
|
|
28
|
+
online,
|
|
29
|
+
effectiveType,
|
|
30
|
+
downlink: typeof conn?.downlink === 'number' ? conn.downlink : null,
|
|
31
|
+
rtt: typeof conn?.rtt === 'number' ? conn.rtt : null,
|
|
32
|
+
saveData: conn?.saveData === true,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function notify() {
|
|
36
|
+
const state = getNetworkState();
|
|
37
|
+
for (const fn of [...listeners]) {
|
|
38
|
+
try {
|
|
39
|
+
fn(state);
|
|
40
|
+
}
|
|
41
|
+
catch { /* listener errors must not break the router */ }
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function install() {
|
|
45
|
+
if (installed || typeof window === 'undefined' || typeof window.addEventListener !== 'function')
|
|
46
|
+
return;
|
|
47
|
+
installed = true;
|
|
48
|
+
window.addEventListener('online', notify);
|
|
49
|
+
window.addEventListener('offline', notify);
|
|
50
|
+
const conn = readConnection();
|
|
51
|
+
conn?.addEventListener?.('change', notify);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Subscribes to connectivity changes (online/offline flips plus
|
|
55
|
+
* Network Information API changes where supported). Returns an
|
|
56
|
+
* unsubscribe function. No-op-safe on the server.
|
|
57
|
+
*/
|
|
58
|
+
export function watchNetwork(cb) {
|
|
59
|
+
install();
|
|
60
|
+
listeners.add(cb);
|
|
61
|
+
return () => { listeners.delete(cb); };
|
|
62
|
+
}
|
package/dist/request.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
|
package/dist/request.js
CHANGED
|
@@ -337,19 +337,31 @@ export class VeskRequest extends ServerRequest {
|
|
|
337
337
|
set query(v) { this._query = v; }
|
|
338
338
|
get ip() {
|
|
339
339
|
if (!this._ip) {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
340
|
+
// Proxy headers are only trusted when explicitly enabled via
|
|
341
|
+
// setTrustProxy() — otherwise any client could spoof its IP.
|
|
342
|
+
if (this._security.trustProxy) {
|
|
343
|
+
const fwd = this.headers?.get('x-forwarded-for');
|
|
344
|
+
if (fwd)
|
|
345
|
+
this._ip = fwd.split(',')[0].trim();
|
|
346
|
+
else
|
|
347
|
+
this._ip = this.headers?.get('x-real-ip') || 'unknown';
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
344
350
|
this._ip = 'unknown';
|
|
351
|
+
}
|
|
345
352
|
}
|
|
346
353
|
return this._ip;
|
|
347
354
|
}
|
|
348
355
|
set ip(v) { this._ip = v; }
|
|
349
356
|
get protocol() {
|
|
350
357
|
if (!this._protocol) {
|
|
351
|
-
|
|
352
|
-
|
|
358
|
+
if (this._security.trustProxy) {
|
|
359
|
+
const proto = this.headers?.get('x-forwarded-proto');
|
|
360
|
+
this._protocol = proto ? proto.split(',')[0].trim() : (this.parsedUrl.protocol === 'https:' ? 'https' : 'http');
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
this._protocol = this.parsedUrl.protocol === 'https:' ? 'https' : 'http';
|
|
364
|
+
}
|
|
353
365
|
}
|
|
354
366
|
return this._protocol;
|
|
355
367
|
}
|
|
@@ -42,6 +42,8 @@ export declare function getCurrentRouter(): Router | null;
|
|
|
42
42
|
export declare function findLoadingComponent(chain: Record<string, unknown>[]): Function | null;
|
|
43
43
|
export declare function findErrorComponent(chain: Record<string, unknown>[]): Function | null;
|
|
44
44
|
export declare function findNotFoundComponent(chain: Record<string, unknown>[]): Function | null;
|
|
45
|
+
export declare function findOfflineComponent(chain: Record<string, unknown>[]): Function | string | null;
|
|
46
|
+
export declare function findNetworkComponent(chain: Record<string, unknown>[]): Function | string | null;
|
|
45
47
|
export declare function showLoadingInContainer(container: HTMLElement, loadingFn: Function, params: Record<string, string>): void;
|
|
46
48
|
export declare function handleScroll(pathname: string, isReplace?: boolean): void;
|
|
47
49
|
export declare function applyHead(headHtml: string): void;
|
|
@@ -74,10 +76,34 @@ export declare function useSearchParams(): [URLSearchParams, (next: Record<strin
|
|
|
74
76
|
export declare function useRouter(): {
|
|
75
77
|
push: (href: string) => void;
|
|
76
78
|
replace: (href: string) => void;
|
|
79
|
+
navigate: (href: string, opts?: {
|
|
80
|
+
replace?: boolean;
|
|
81
|
+
}) => void;
|
|
77
82
|
back: () => void;
|
|
78
83
|
forward: () => void;
|
|
84
|
+
go: (n: number) => void;
|
|
79
85
|
refresh: () => void;
|
|
80
86
|
prefetch: (href: string) => void;
|
|
87
|
+
beforeEach: (fn: (to: string, from: string) => false | string | void | Promise<false | string | void>) => () => void;
|
|
88
|
+
readonly isLoading: boolean;
|
|
89
|
+
/** 0–100 progress of the in-flight navigation (0 when idle). */
|
|
90
|
+
readonly progress: number;
|
|
91
|
+
/** True when the last navigation finished with an error. */
|
|
92
|
+
readonly error: boolean;
|
|
93
|
+
/** Reactive current pathname. */
|
|
94
|
+
readonly pathname: string;
|
|
95
|
+
/** Reactive dynamic-segment params for the current route. */
|
|
96
|
+
readonly params: Record<string, string>;
|
|
97
|
+
/** Reactive query string (without '?'; empty when none). */
|
|
98
|
+
readonly search: string;
|
|
99
|
+
setSearch: (next: Record<string, string> | string) => void;
|
|
100
|
+
/** Snapshot of the matched route — null before the first navigation. */
|
|
101
|
+
readonly route: {
|
|
102
|
+
pathname: string;
|
|
103
|
+
params: Record<string, string>;
|
|
104
|
+
pattern: string;
|
|
105
|
+
} | null;
|
|
106
|
+
readonly canGoBack: boolean;
|
|
81
107
|
};
|
|
82
108
|
export {};
|
|
83
109
|
//# sourceMappingURL=router-components.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-components.d.ts","sourceRoot":"","sources":["../src/router-components.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"router-components.d.ts","sourceRoot":"","sources":["../src/router-components.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { track, get } from '@vesk/runtime/src/ripple-runtime';
|
|
2
2
|
import { createContext } from '@vesk/runtime/src/context';
|
|
3
3
|
import { createHydrateWalker } from '@vesk/runtime/src/hydrate';
|
|
4
|
+
import { isLoadingActive, getLoadingState } from '@vesk/runtime/src/loading-indicator';
|
|
4
5
|
export class Redirect extends Error {
|
|
5
6
|
url;
|
|
6
7
|
status;
|
|
@@ -70,6 +71,20 @@ export function findNotFoundComponent(chain) {
|
|
|
70
71
|
}
|
|
71
72
|
return null;
|
|
72
73
|
}
|
|
74
|
+
export function findOfflineComponent(chain) {
|
|
75
|
+
for (let i = chain.length - 1; i >= 0; i--) {
|
|
76
|
+
if (chain[i].offline)
|
|
77
|
+
return chain[i].offline;
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
export function findNetworkComponent(chain) {
|
|
82
|
+
for (let i = chain.length - 1; i >= 0; i--) {
|
|
83
|
+
if (chain[i].network)
|
|
84
|
+
return chain[i].network;
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
73
88
|
export function showLoadingInContainer(container, loadingFn, params) {
|
|
74
89
|
const tempRoot = document.createDocumentFragment();
|
|
75
90
|
const walker = createHydrateWalker(tempRoot, []);
|
|
@@ -312,9 +327,67 @@ export function useRouter() {
|
|
|
312
327
|
return {
|
|
313
328
|
push: (href) => router?.navigate?.(href),
|
|
314
329
|
replace: (href) => router?.navigate?.(href, { replace: true }),
|
|
330
|
+
navigate: (href, opts) => router?.navigate?.(href, opts),
|
|
315
331
|
back: () => window.history.back(),
|
|
316
332
|
forward: () => window.history.forward(),
|
|
333
|
+
go: (n) => window.history.go(n),
|
|
317
334
|
refresh: () => router?.navigate?.(window.location.pathname, { replace: true }),
|
|
318
335
|
prefetch: (href) => router?.prefetch?.(href),
|
|
336
|
+
beforeEach: (fn) => {
|
|
337
|
+
const r = router;
|
|
338
|
+
if (r?.beforeEach)
|
|
339
|
+
return r.beforeEach(fn);
|
|
340
|
+
// no active router yet — no-op subscription
|
|
341
|
+
return () => { };
|
|
342
|
+
},
|
|
343
|
+
// All state getters are reactive when read inside an effect():
|
|
344
|
+
// they read tracked cells the router updates during navigations.
|
|
345
|
+
get isLoading() {
|
|
346
|
+
return isLoadingActive();
|
|
347
|
+
},
|
|
348
|
+
get progress() {
|
|
349
|
+
const s = getLoadingState();
|
|
350
|
+
return Number(get(s.progress)) || 0;
|
|
351
|
+
},
|
|
352
|
+
get error() {
|
|
353
|
+
const s = getLoadingState();
|
|
354
|
+
return get(s.error) === true;
|
|
355
|
+
},
|
|
356
|
+
get pathname() {
|
|
357
|
+
return get(_state.path);
|
|
358
|
+
},
|
|
359
|
+
get params() {
|
|
360
|
+
return get(_state.params) || {};
|
|
361
|
+
},
|
|
362
|
+
get search() {
|
|
363
|
+
return get(_state.search);
|
|
364
|
+
},
|
|
365
|
+
setSearch: (next) => {
|
|
366
|
+
const q = typeof next === 'string' ? next : new URLSearchParams(next).toString();
|
|
367
|
+
_state.search.value = q;
|
|
368
|
+
const nav = useNavigate();
|
|
369
|
+
const path = get(_state.path);
|
|
370
|
+
nav(path + (q ? '?' + q : ''), { replace: true });
|
|
371
|
+
},
|
|
372
|
+
get route() {
|
|
373
|
+
const m = router?._currentMatch;
|
|
374
|
+
if (!m)
|
|
375
|
+
return null;
|
|
376
|
+
const chain = m.matchChain ?? [];
|
|
377
|
+
const deepest = chain[chain.length - 1];
|
|
378
|
+
return {
|
|
379
|
+
pathname: m.pathname || '',
|
|
380
|
+
params: m.params,
|
|
381
|
+
pattern: deepest?.fullPath || '/',
|
|
382
|
+
};
|
|
383
|
+
},
|
|
384
|
+
get canGoBack() {
|
|
385
|
+
try {
|
|
386
|
+
return window.history.length > 1;
|
|
387
|
+
}
|
|
388
|
+
catch {
|
|
389
|
+
return false;
|
|
390
|
+
}
|
|
391
|
+
},
|
|
319
392
|
};
|
|
320
393
|
}
|
package/dist/router-match.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export interface RouteNode {
|
|
|
9
9
|
loading?: Function | null;
|
|
10
10
|
error?: Function | null;
|
|
11
11
|
notFound?: Function | null;
|
|
12
|
+
offline?: Function | string | null;
|
|
13
|
+
network?: Function | string | null;
|
|
12
14
|
children?: RouteNode[];
|
|
13
15
|
segmentCount?: number;
|
|
14
16
|
_matchChain?: RouteNode[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-match.d.ts","sourceRoot":"","sources":["../src/router-match.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IAC1B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,aAAa;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAiBnE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,EAAE,CAsB/G;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAO5E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAc1F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,GAAE,SAAS,EAAO,GAAG,SAAS,EAAE,CAoChH;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"router-match.d.ts","sourceRoot":"","sources":["../src/router-match.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IAC1B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,aAAa;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAiBnE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,EAAE,CAsB/G;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAO5E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAc1F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,GAAE,SAAS,EAAO,GAAG,SAAS,EAAE,CAoChH;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAwBjF;AAED,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,SAAS,EAAE,CA0Bb"}
|
package/dist/router-match.js
CHANGED
|
@@ -119,8 +119,9 @@ export function matchRoute(tree, pathname) {
|
|
|
119
119
|
const segCount = node.segmentCount != null ? node.segmentCount : 1;
|
|
120
120
|
if (node.isDynamic && !node.isCatchAll) {
|
|
121
121
|
const name = node.path.startsWith(':') ? node.path.slice(1) : node.path;
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
const paramIdx = partIdx + segCount - 1;
|
|
123
|
+
if (paramIdx < pathParts.length) {
|
|
124
|
+
params[name] = decodeURIComponent(pathParts[paramIdx]);
|
|
124
125
|
}
|
|
125
126
|
}
|
|
126
127
|
if (node.isCatchAll) {
|
|
@@ -148,8 +149,10 @@ export function buildTreeFromMap(routes, _options) {
|
|
|
148
149
|
loading: null,
|
|
149
150
|
error: null,
|
|
150
151
|
notFound: null,
|
|
152
|
+
offline: null,
|
|
153
|
+
network: null,
|
|
151
154
|
children: [],
|
|
152
|
-
segmentCount: parts.length
|
|
155
|
+
segmentCount: parts.length,
|
|
153
156
|
loader,
|
|
154
157
|
};
|
|
155
158
|
root.push(node);
|
package/dist/router.d.ts
CHANGED
|
@@ -17,6 +17,22 @@ interface RouterInstance {
|
|
|
17
17
|
}): Promise<void> | void;
|
|
18
18
|
prefetch(path: string): void;
|
|
19
19
|
readonly currentPath: string;
|
|
20
|
+
/** True while an SPA navigation is in flight (shared with LoadingIndicator). */
|
|
21
|
+
readonly isLoading: boolean;
|
|
22
|
+
/** Registers a navigation guard (programmatic/Link navigations only — the
|
|
23
|
+
* browser's own back/forward cannot be blocked). Return `false` to block
|
|
24
|
+
* or a path to redirect. Returns an unsubscribe function. */
|
|
25
|
+
beforeEach(fn: (to: string, from: string) => false | string | void | Promise<false | string | void>): () => void;
|
|
26
|
+
go(n: number): void;
|
|
27
|
+
readonly route: {
|
|
28
|
+
pathname: string;
|
|
29
|
+
params: Record<string, string>;
|
|
30
|
+
pattern: string;
|
|
31
|
+
} | null;
|
|
32
|
+
_beforeGuards?: GuardFn[];
|
|
33
|
+
_viewTransitions?: boolean;
|
|
34
|
+
_guardDepth?: number;
|
|
35
|
+
_runGuards(to: string): false | string | void | Promise<false | string | void>;
|
|
20
36
|
hmrUpdate(): void;
|
|
21
37
|
__hydrators?: Record<string, Function>;
|
|
22
38
|
__componentInstances?: Map<string, {
|
|
@@ -35,12 +51,23 @@ interface RouterInstance {
|
|
|
35
51
|
interface RouterOptions {
|
|
36
52
|
container?: HTMLElement;
|
|
37
53
|
prefetch?: boolean;
|
|
54
|
+
/** Wrap SPA DOM swaps in document.startViewTransition when supported. Default false. */
|
|
55
|
+
viewTransitions?: boolean;
|
|
38
56
|
hydrate?: 'full' | 'viewport' | 'idle' | 'interaction';
|
|
39
57
|
/** Route-data freshness TTL in ms. Default 0 = always refetch on SPA nav. */
|
|
40
58
|
routeDataCache?: number;
|
|
59
|
+
/**
|
|
60
|
+
* Offline experience for SPA navigations that fail due to loss of
|
|
61
|
+
* connectivity: a component `(props, registry, walker) => Node | string`
|
|
62
|
+
* receiving `{ url, params, retry }`, or a raw HTML string. When omitted,
|
|
63
|
+
* a built-in default panel with automatic recovery is shown. Network
|
|
64
|
+
* failures never render the not-found page.
|
|
65
|
+
*/
|
|
66
|
+
offline?: Function | string;
|
|
41
67
|
[k: string]: unknown;
|
|
42
68
|
}
|
|
43
69
|
declare function ensureChunk(chunkUrl: string): Promise<void>;
|
|
70
|
+
type GuardFn = (to: string, from: string) => false | string | void | Promise<false | string | void>;
|
|
44
71
|
export declare function createRouter(routes: RouteNode[] | Record<string, Function>, options?: RouterOptions): RouterInstance;
|
|
45
72
|
interface FileRouterOptions extends RouterOptions {
|
|
46
73
|
middleware?: Function | Function[];
|
package/dist/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|