@vesk/runtime 0.1.1 → 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 +22 -13
- package/dist/resource.d.ts +3 -1
- package/dist/resource.d.ts.map +1 -1
- package/dist/resource.js +36 -1
- package/dist/ripple-runtime.d.ts +11 -6
- package/dist/ripple-runtime.d.ts.map +1 -1
- package/dist/ripple-runtime.js +12 -0
- package/dist/router-components.d.ts +29 -3
- 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 +770 -254
- package/package.json +6 -2
- package/dist/package.json +0 -23
|
@@ -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":"AAAA,UAAU,cAAc;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACrB;AAWD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAI3D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAI3D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAM9F;AAED,wBAAgB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGlD;AAED,wBAAgB,UAAU,IAAI,cAAc,GAAG,IAAI,CAElD;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CA2BhD;AAED,UAAU,WAAW;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,UAAU,cAAc;IACvB,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,wBAAgB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,cAAc,CA6C9D;AAED,UAAU,cAAc;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CA0ExF;AAED,UAAU,WAAW;IACpB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,MAAM,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,QAAQ,IAAI,MAAM,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;CAC3C;AAED,wBAAgB,OAAO,IAAI,WAAW,CAyBrC;AAED,wBAAgB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIhD;AAED,wBAAgB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,CAyBvE;AAED,qBAAa,aAAc,SAAQ,OAAO;IACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAErB,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW;IAOnD,IAAI,OAAO,IAAI,WAAW,CAWzB;IACD,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAwB;IAE7D,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAyB;IAC7D,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAuB;IAE3D,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAyB;IAC9D,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAuB;CAC5D;AAED,UAAU,oBAAqB,SAAQ,QAAQ;IAC9C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAC9C,KAAK,IAAI,oBAAoB,CAAC;IAC9B,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QACtD,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;KACrE,GAAG,oBAAoB,CAAC;IACzB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,oBAAoB,CAAC;IAC3F,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,oBAAoB,CAAC;IACrD,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,oBAAoB,CAAC;IAC7E,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAChD,OAAO,IAAI,oBAAoB,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,oBAAoB,CAAC;IAClH,qBAAqB,IAAI,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,cAAe,SAAQ,QAAQ;IAC3C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,cAAc;IAO/D,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,cAAc;IAO1D,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc;IAO3C,MAAM,CAAC,IAAI,IAAI,cAAc;CAM7B;AAED,qBAAa,WAAY,SAAQ,aAAa;IAC7C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACtC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,GAAG,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEzB,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW;IAqBnD,IAAI,SAAS,IAAI,GAAG,CAKnB;IAED,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASlC;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAsB;IAEzD,IAAI,EAAE,IAAI,MAAM,CAaf;IACD,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAmB;IAEnC,IAAI,QAAQ,IAAI,MAAM,CAUrB;IACD,IAAI,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAyB;IAE/C,IAAI,QAAQ,IAAI,MAAM,CAKrB;IACD,IAAI,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAyB;IAEzC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAapC,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGvC;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAIpC,YAAY,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,GAAG,IAAI;IAIxE,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAI9B,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAK5D,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAI7C,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG/C;AAED,cAAM,aAAc,SAAQ,cAAc;IACzC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEhB,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY;IAOvD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAKtC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,KAAK,IAAI,aAAa;IAKhB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAKvB,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAK9B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE;QAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QACtD,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;KAChE,GAAG,aAAa;IAYtB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,aAAa;IAIvF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa;IAK7C,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa;IAKrE,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAKxC,OAAO,IAAI,aAAa;IAOxB,IAAI,CAAC,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,aAAa;IAQ9G,qBAAqB,IAAI,IAAI;IAkB7B,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,aAAa;IAO9D,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,aAAa;IAIzD,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAI1C,MAAM,CAAC,IAAI,IAAI,aAAa;IAI5B,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,aAAa;CAM7D;AAED,eAAO,MAAM,YAAY,EAInB,OAAO,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,KAAK,oBAAoB,CAAC,CAAC;AAE7F,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAY/F;AAED,wBAAsB,cAAc,CACnC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE;IAAE,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE;YAAE,MAAM,EAAE;gBAAE,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,EAAE,CAAA;SAAE,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,EACpJ,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/B,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,CAqC7B;AAiBD,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5F;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAI3G;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIxI;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAIhH"}
|
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
|
}
|
|
@@ -585,16 +597,13 @@ async function _getImpl() {
|
|
|
585
597
|
if (_signImpl)
|
|
586
598
|
return _signImpl;
|
|
587
599
|
try {
|
|
600
|
+
// Subpath import only — importing the bare '@vesk/compiler' index here
|
|
601
|
+
// would pull typecheck.ts (and its typescript dependency) into every
|
|
602
|
+
// bundled server runtime via the request.ts -> compiler edge.
|
|
588
603
|
_signImpl = await import('@vesk/compiler/src/server-utils');
|
|
589
604
|
}
|
|
590
605
|
catch {
|
|
591
|
-
|
|
592
|
-
const mod = await import('@vesk/compiler');
|
|
593
|
-
_signImpl = mod;
|
|
594
|
-
}
|
|
595
|
-
catch {
|
|
596
|
-
_signImpl = { signCookie: null, unsignCookie: null, setSignedCookie: null, readSignedCookie: null };
|
|
597
|
-
}
|
|
606
|
+
_signImpl = { signCookie: null, unsignCookie: null, setSignedCookie: null, readSignedCookie: null };
|
|
598
607
|
}
|
|
599
608
|
return _signImpl;
|
|
600
609
|
}
|
package/dist/resource.d.ts
CHANGED
|
@@ -9,7 +9,8 @@ export interface Resource<T> extends PromiseLike<T> {
|
|
|
9
9
|
}
|
|
10
10
|
export interface UseFetchOptions<T> extends Omit<RequestInit, 'body'> {
|
|
11
11
|
key?: string;
|
|
12
|
-
into
|
|
12
|
+
/** Target tracked cell — the fetched payload is written into it, so awaiting is unnecessary. */
|
|
13
|
+
into?: Tracked<T>;
|
|
13
14
|
body?: unknown;
|
|
14
15
|
staleTime?: number;
|
|
15
16
|
keepPreviousData?: boolean;
|
|
@@ -21,6 +22,7 @@ export interface UseFetchOptions<T> extends Omit<RequestInit, 'body'> {
|
|
|
21
22
|
}
|
|
22
23
|
export declare class HttpError extends Error {
|
|
23
24
|
status: number;
|
|
25
|
+
statusCode: number;
|
|
24
26
|
constructor(status: number, statusText: string);
|
|
25
27
|
}
|
|
26
28
|
export declare class TimeoutError extends Error {
|
package/dist/resource.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAQhE,MAAM,WAAW,QAAQ,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
|
package/dist/resource.js
CHANGED
|
@@ -2,9 +2,11 @@ import { tracked, get, set, scope, on_destroy } from '@vesk/runtime/src/ripple-r
|
|
|
2
2
|
import { is_destroyed } from '@vesk/runtime/src/ripple-blocks';
|
|
3
3
|
export class HttpError extends Error {
|
|
4
4
|
status;
|
|
5
|
+
statusCode;
|
|
5
6
|
constructor(status, statusText) {
|
|
6
7
|
super(`HTTP ${status}: ${statusText}`);
|
|
7
8
|
this.status = status;
|
|
9
|
+
this.statusCode = status;
|
|
8
10
|
this.name = 'HttpError';
|
|
9
11
|
}
|
|
10
12
|
}
|
|
@@ -53,6 +55,26 @@ function getSsrData(key) {
|
|
|
53
55
|
return undefined;
|
|
54
56
|
return store[key];
|
|
55
57
|
}
|
|
58
|
+
// Failed SSR fetches are memoized per render token so the codegen re-render
|
|
59
|
+
// passes (up to 3) settle from the recorded error instead of re-fetching the
|
|
60
|
+
// failing key every pass — an always-failing key (e.g. an API returning 401)
|
|
61
|
+
// would otherwise keep the passes from converging and the page would render
|
|
62
|
+
// empty. Successes already converge via `__vsk_ssr_data`; failures need the
|
|
63
|
+
// same treatment. Cleared by the compiler's `clearSsrCells(token)`.
|
|
64
|
+
// Untokenized calls (settle handlers that outlive a render) get no memo —
|
|
65
|
+
// writing into a shared map there would leak the failure into other renders.
|
|
66
|
+
function getSsrFailures() {
|
|
67
|
+
const tk = g().__vsk_ssr_token;
|
|
68
|
+
if (!tk)
|
|
69
|
+
return undefined;
|
|
70
|
+
const key = `__vsk_ssr_failures_${tk}`;
|
|
71
|
+
let store = g()[key];
|
|
72
|
+
if (!store) {
|
|
73
|
+
store = new Map();
|
|
74
|
+
g()[key] = store;
|
|
75
|
+
}
|
|
76
|
+
return store;
|
|
77
|
+
}
|
|
56
78
|
export function setSsrData(key, value) {
|
|
57
79
|
const sink = ssrSink;
|
|
58
80
|
if (sink) {
|
|
@@ -285,6 +307,15 @@ function startRequest(handle, skipCache) {
|
|
|
285
307
|
const key = handle.key;
|
|
286
308
|
const options = handle.options;
|
|
287
309
|
if (isServer()) {
|
|
310
|
+
const recorded = !skipCache ? getSsrFailures()?.get(key) : undefined;
|
|
311
|
+
if (recorded !== undefined) {
|
|
312
|
+
settleError(handle, recorded);
|
|
313
|
+
const settled = handle.settled.then(() => {
|
|
314
|
+
throw recorded;
|
|
315
|
+
});
|
|
316
|
+
settled.catch(() => { });
|
|
317
|
+
return settled;
|
|
318
|
+
}
|
|
288
319
|
const existing = getInflight().get(key);
|
|
289
320
|
const prom = existing ?? runFetcher(handle, options.timeout || 0);
|
|
290
321
|
if (!existing) {
|
|
@@ -292,7 +323,10 @@ function startRequest(handle, skipCache) {
|
|
|
292
323
|
prom.then(data => {
|
|
293
324
|
setSsrData(key, data);
|
|
294
325
|
settle(handle, data);
|
|
295
|
-
}, error =>
|
|
326
|
+
}, error => {
|
|
327
|
+
getSsrFailures()?.set(key, error);
|
|
328
|
+
settleError(handle, error);
|
|
329
|
+
}).finally(() => {
|
|
296
330
|
if (getInflight().get(key) === prom)
|
|
297
331
|
getInflight().delete(key);
|
|
298
332
|
});
|
|
@@ -498,5 +532,6 @@ export async function resolveSsrResources() {
|
|
|
498
532
|
await Promise.allSettled(promises);
|
|
499
533
|
const data = (g().__vsk_ssr_data || {});
|
|
500
534
|
delete g().__vsk_ssr_promises;
|
|
535
|
+
delete g().__vsk_ssr_failures;
|
|
501
536
|
return data;
|
|
502
537
|
}
|
package/dist/ripple-runtime.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface Block {
|
|
|
15
15
|
t: (() => void) | null;
|
|
16
16
|
tc: (() => void)[] | null;
|
|
17
17
|
}
|
|
18
|
-
export interface Tracked {
|
|
18
|
+
export interface Tracked<T = unknown> {
|
|
19
19
|
a: {
|
|
20
20
|
get?: Function;
|
|
21
21
|
set?: Function;
|
|
@@ -25,8 +25,10 @@ export interface Tracked {
|
|
|
25
25
|
d: DeferredTrackedEntry[] | null;
|
|
26
26
|
f: number;
|
|
27
27
|
__v: unknown;
|
|
28
|
+
get(): T;
|
|
29
|
+
set(value: T): void;
|
|
28
30
|
}
|
|
29
|
-
export interface Derived {
|
|
31
|
+
export interface Derived<T = unknown> {
|
|
30
32
|
a: {
|
|
31
33
|
get?: Function;
|
|
32
34
|
set?: Function;
|
|
@@ -39,6 +41,8 @@ export interface Derived {
|
|
|
39
41
|
f: number;
|
|
40
42
|
fn: () => unknown;
|
|
41
43
|
__v: unknown;
|
|
44
|
+
get(): T;
|
|
45
|
+
set(value: T): void;
|
|
42
46
|
}
|
|
43
47
|
export interface Dependency {
|
|
44
48
|
c: number;
|
|
@@ -86,10 +90,11 @@ export declare function handle_error(error: unknown, _block: Block): void;
|
|
|
86
90
|
export declare function run_block(block: Block): void;
|
|
87
91
|
export type GetHook = (value: unknown) => unknown;
|
|
88
92
|
export type SetHook = (next: unknown, prev: unknown) => unknown;
|
|
89
|
-
export declare function tracked(v:
|
|
90
|
-
export declare function derived(fn: () =>
|
|
91
|
-
export declare function track(
|
|
92
|
-
export declare function track(v:
|
|
93
|
+
export declare function tracked<T>(v: T, block?: Block, get?: GetHook, set?: SetHook): Tracked<T>;
|
|
94
|
+
export declare function derived<T>(fn: () => T, block?: Block, get?: GetHook, set?: SetHook): Derived<T>;
|
|
95
|
+
export declare function track<T>(fn: () => T, b?: Block): Derived<T>;
|
|
96
|
+
export declare function track<T>(v: T, b?: Block): Tracked<T>;
|
|
97
|
+
export declare function track<T>(v: T, get: GetHook, set?: SetHook): Tracked<T>;
|
|
93
98
|
export declare function is_block_dirty(block: Block): boolean;
|
|
94
99
|
export declare function tick(): Promise<void>;
|
|
95
100
|
export declare function queue_microtask(fn?: () => void): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ripple-runtime.d.ts","sourceRoot":"","sources":["../src/ripple-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,2BAA2B,EAI3B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,2BAA2B,EAAE,CAAC;AACvC,OAAO,EAwBN,aAAa,EACb,MAAM,oCAAoC,CAAC;AAG5C,MAAM,WAAW,KAAK;IACrB,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC;IACrB,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAChB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,CAAC,EAAE,OAAO,CAAC;IACX,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IACvB,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,OAAO;
|
|
1
|
+
{"version":3,"file":"ripple-runtime.d.ts","sourceRoot":"","sources":["../src/ripple-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/ripple-runtime.js
CHANGED
|
@@ -210,6 +210,12 @@ class TrackedValue {
|
|
|
210
210
|
this.f = TRACKED;
|
|
211
211
|
this.__v = v;
|
|
212
212
|
}
|
|
213
|
+
get() {
|
|
214
|
+
return get_tracked(this);
|
|
215
|
+
}
|
|
216
|
+
set(value) {
|
|
217
|
+
set(this, value);
|
|
218
|
+
}
|
|
213
219
|
get [0]() {
|
|
214
220
|
return get_tracked(this);
|
|
215
221
|
}
|
|
@@ -254,6 +260,12 @@ class DerivedValue {
|
|
|
254
260
|
this.fn = fn;
|
|
255
261
|
this.__v = UNINITIALIZED;
|
|
256
262
|
}
|
|
263
|
+
get() {
|
|
264
|
+
return get_derived(this);
|
|
265
|
+
}
|
|
266
|
+
set(value) {
|
|
267
|
+
set(this, value);
|
|
268
|
+
}
|
|
257
269
|
get [0]() {
|
|
258
270
|
return get_derived(this);
|
|
259
271
|
}
|
|
@@ -30,9 +30,9 @@ export declare const RouterCtx: import("@vesk/runtime/src/context").Context<Rout
|
|
|
30
30
|
export declare let __isHydrating: boolean;
|
|
31
31
|
export declare function setIsHydrating(v: boolean): void;
|
|
32
32
|
export declare const _state: {
|
|
33
|
-
path: import("@vesk/runtime/src/ripple-runtime").
|
|
34
|
-
params: import("@vesk/runtime/src/ripple-runtime").
|
|
35
|
-
search: import("@vesk/runtime/src/ripple-runtime").
|
|
33
|
+
path: import("@vesk/runtime/src/ripple-runtime").Tracked<string>;
|
|
34
|
+
params: import("@vesk/runtime/src/ripple-runtime").Tracked<Record<string, string>>;
|
|
35
|
+
search: import("@vesk/runtime/src/ripple-runtime").Tracked<string>;
|
|
36
36
|
};
|
|
37
37
|
export declare const _scrollPositions: Map<string, number>;
|
|
38
38
|
export declare let _isPopStateNavigation: boolean;
|
|
@@ -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);
|