@fluxfast/core 0.2.0 → 0.3.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/cache.d.ts +9 -1
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +55 -4
- package/dist/cache.js.map +1 -1
- package/dist/capabilities.d.ts +7 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +12 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/events.d.ts +19 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/protocol.d.ts +8 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/router.d.ts +25 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +285 -9
- package/dist/router.js.map +1 -1
- package/dist/store.d.ts +20 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +120 -11
- package/dist/store.js.map +1 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +22 -0
- package/dist/transport.js.map +1 -1
- package/package.json +1 -1
package/dist/cache.d.ts
CHANGED
|
@@ -5,14 +5,22 @@ export interface CachedPage {
|
|
|
5
5
|
readonly component: string;
|
|
6
6
|
readonly meta: Record<string, unknown>;
|
|
7
7
|
readonly resources: Record<string, string>;
|
|
8
|
+
readonly resourceKeys: string[];
|
|
9
|
+
readonly pendingDeferred: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface PageCacheManifest {
|
|
12
|
+
readonly resourceKeys: string[];
|
|
13
|
+
readonly pendingDeferred: string[];
|
|
8
14
|
}
|
|
9
15
|
/** Lightweight LRU page cache. Resource values remain in ResourceStore. */
|
|
10
16
|
export declare class PageCache {
|
|
11
17
|
private readonly maxPages;
|
|
12
18
|
private readonly entries;
|
|
13
19
|
constructor(maxPages?: number);
|
|
14
|
-
set(page: PageDescriptor, resources: Record<string, string
|
|
20
|
+
set(page: PageDescriptor, resources: Record<string, string>, manifest?: PageCacheManifest): void;
|
|
15
21
|
getValid(url: string, resources: ResourceStore): CachedPage | undefined;
|
|
22
|
+
/** Record resource-only settlement without replacing the cached page shell. */
|
|
23
|
+
settleResources(url: string, keys: string[], store: ResourceStore): void;
|
|
16
24
|
clear(): void;
|
|
17
25
|
}
|
|
18
26
|
//# sourceMappingURL=cache.d.ts.map
|
package/dist/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,2EAA2E;AAC3E,qBAAa,SAAS;IAGR,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IAEzD,YAA6B,QAAQ,GAAE,MAAW,EAIjD;IAED,GAAG,CACD,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,IAAI,CAkBN;IAED,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,UAAU,GAAG,SAAS,CA2BtE;IAED,+EAA+E;IAC/E,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAsCvE;IAED,KAAK,IAAI,IAAI,CAEZ;CACF"}
|
package/dist/cache.js
CHANGED
|
@@ -11,12 +11,15 @@ class PageCache {
|
|
|
11
11
|
throw new RangeError("maxPages must be a positive integer");
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
set(page, resources) {
|
|
14
|
+
set(page, resources, manifest) {
|
|
15
|
+
const resourceKeys = manifest?.resourceKeys ?? Object.keys(resources);
|
|
15
16
|
const entry = {
|
|
16
17
|
url: page.url,
|
|
17
18
|
component: page.component,
|
|
18
19
|
meta: { ...(page.meta ?? {}) },
|
|
19
20
|
resources: { ...resources },
|
|
21
|
+
resourceKeys: [...resourceKeys],
|
|
22
|
+
pendingDeferred: [...(manifest?.pendingDeferred ?? [])],
|
|
20
23
|
};
|
|
21
24
|
this.entries.delete(page.url);
|
|
22
25
|
this.entries.set(page.url, entry);
|
|
@@ -31,9 +34,20 @@ class PageCache {
|
|
|
31
34
|
const entry = this.entries.get(url);
|
|
32
35
|
if (!entry)
|
|
33
36
|
return undefined;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (
|
|
37
|
+
const pending = new Set(entry.pendingDeferred);
|
|
38
|
+
for (const key of entry.resourceKeys) {
|
|
39
|
+
if (pending.has(key))
|
|
40
|
+
continue;
|
|
41
|
+
const version = entry.resources[key];
|
|
42
|
+
if (version !== undefined) {
|
|
43
|
+
const record = resources.getRecord(key);
|
|
44
|
+
if (record && record.version === version && !resources.isStale(key)) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
this.entries.delete(url);
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
if (resources.getStateSnapshot(key).status !== "error") {
|
|
37
51
|
this.entries.delete(url);
|
|
38
52
|
return undefined;
|
|
39
53
|
}
|
|
@@ -42,6 +56,43 @@ class PageCache {
|
|
|
42
56
|
this.entries.set(url, entry);
|
|
43
57
|
return entry;
|
|
44
58
|
}
|
|
59
|
+
/** Record resource-only settlement without replacing the cached page shell. */
|
|
60
|
+
settleResources(url, keys, store) {
|
|
61
|
+
const entry = this.entries.get(url);
|
|
62
|
+
if (!entry)
|
|
63
|
+
return;
|
|
64
|
+
const ownedKeys = new Set(entry.resourceKeys);
|
|
65
|
+
const pending = new Set(entry.pendingDeferred);
|
|
66
|
+
const versions = { ...entry.resources };
|
|
67
|
+
for (const key of keys) {
|
|
68
|
+
if (!ownedKeys.has(key))
|
|
69
|
+
continue;
|
|
70
|
+
const state = store.getStateSnapshot(key);
|
|
71
|
+
const record = store.getRecord(key);
|
|
72
|
+
if (record && state.status === "ready" && !store.isStale(key)) {
|
|
73
|
+
versions[key] = record.version;
|
|
74
|
+
pending.delete(key);
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
if (state.status === "error") {
|
|
78
|
+
delete versions[key];
|
|
79
|
+
pending.delete(key);
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (state.status === "pending" || state.status === "loading") {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
this.entries.delete(url);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const updated = {
|
|
89
|
+
...entry,
|
|
90
|
+
resources: versions,
|
|
91
|
+
pendingDeferred: entry.resourceKeys.filter(key => pending.has(key)),
|
|
92
|
+
};
|
|
93
|
+
this.entries.delete(url);
|
|
94
|
+
this.entries.set(url, updated);
|
|
95
|
+
}
|
|
45
96
|
clear() {
|
|
46
97
|
this.entries.clear();
|
|
47
98
|
}
|
package/dist/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Client capabilities advertised independently from the wire protocol version. */
|
|
2
|
+
export declare const HEADER_CAPABILITIES = "X-FluxFast-Capabilities";
|
|
3
|
+
export declare const CAPABILITY_DEFERRED_RESOURCES = "deferred-resources";
|
|
4
|
+
export declare const FLUX_CAPABILITIES: readonly ["deferred-resources"];
|
|
5
|
+
export type FluxCapability = (typeof FLUX_CAPABILITIES)[number];
|
|
6
|
+
export declare function serializeCapabilities(): string;
|
|
7
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,eAAO,MAAM,mBAAmB,4BAA4B,CAAC;AAC7D,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AAElE,eAAO,MAAM,iBAAiB,iCAA2C,CAAC;AAE1E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** Client capabilities advertised independently from the wire protocol version. */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.FLUX_CAPABILITIES = exports.CAPABILITY_DEFERRED_RESOURCES = exports.HEADER_CAPABILITIES = void 0;
|
|
5
|
+
exports.serializeCapabilities = serializeCapabilities;
|
|
6
|
+
exports.HEADER_CAPABILITIES = "X-FluxFast-Capabilities";
|
|
7
|
+
exports.CAPABILITY_DEFERRED_RESOURCES = "deferred-resources";
|
|
8
|
+
exports.FLUX_CAPABILITIES = [exports.CAPABILITY_DEFERRED_RESOURCES];
|
|
9
|
+
function serializeCapabilities() {
|
|
10
|
+
return exports.FLUX_CAPABILITIES.join(",");
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":";AAAA,mFAAmF;;;;AAEtE,QAAA,mBAAmB,GAAG,yBAAyB,CAAC;AAChD,QAAA,6BAA6B,GAAG,oBAAoB,CAAC;AAErD,QAAA,iBAAiB,GAAG,CAAC,QAAA,6BAA6B,CAAU,CAAC;AAI1E;IACE,OAAO,QAAA,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC"}
|
package/dist/events.d.ts
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Framework-neutral event emitter for FluxFast runtime events.
|
|
3
3
|
*/
|
|
4
|
-
|
|
4
|
+
import type { ResourceErrorDetail } from "./protocol";
|
|
5
|
+
export type ResourceLoadReason = "deferred" | "refresh" | "mutation" | "retry";
|
|
6
|
+
export interface ResourceLoadEvent {
|
|
7
|
+
url: string;
|
|
8
|
+
keys: string[];
|
|
9
|
+
reason: ResourceLoadReason;
|
|
10
|
+
}
|
|
11
|
+
export interface ResourceLoadErrorEvent extends ResourceLoadEvent {
|
|
12
|
+
error: Error;
|
|
13
|
+
}
|
|
14
|
+
export interface ResourceErrorEvent extends ResourceLoadEvent {
|
|
15
|
+
key: string;
|
|
16
|
+
error: ResourceErrorDetail;
|
|
17
|
+
}
|
|
18
|
+
export type FluxEventName = "visit:start" | "visit:success" | "visit:error" | "visit:cancel" | "resource:load:start" | "resource:load:success" | "resource:load:error" | "resource:error" | "resource:update" | "resource:invalidate" | "cache:hit" | "cache:miss" | "prefetch:start" | "prefetch:success" | "mutation:start" | "mutation:success" | "mutation:error";
|
|
5
19
|
export interface FluxEventPayloads {
|
|
6
20
|
"visit:start": {
|
|
7
21
|
visitId: string;
|
|
@@ -21,6 +35,10 @@ export interface FluxEventPayloads {
|
|
|
21
35
|
visitId: string;
|
|
22
36
|
url: string;
|
|
23
37
|
};
|
|
38
|
+
"resource:load:start": ResourceLoadEvent;
|
|
39
|
+
"resource:load:success": ResourceLoadEvent;
|
|
40
|
+
"resource:load:error": ResourceLoadErrorEvent;
|
|
41
|
+
"resource:error": ResourceErrorEvent;
|
|
24
42
|
"resource:update": {
|
|
25
43
|
key: string;
|
|
26
44
|
version: string;
|
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,aAAa,GACrB,aAAa,GACb,eAAe,GACf,aAAa,GACb,cAAc,GACd,iBAAiB,GACjB,qBAAqB,GACrB,WAAW,GACX,YAAY,GACZ,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,CAAC;AAErB,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,eAAe,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,aAAa,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;IAC9D,cAAc,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,iBAAiB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,qBAAqB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,YAAY,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,gBAAgB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,kBAAkB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,gBAAgB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,kBAAkB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,gBAAgB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;CACjD;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,aAAa,IAAI,CACvD,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAC1B,IAAI,CAAC;AAEV,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAuD;IAExE,EAAE,CAAC,CAAC,SAAS,aAAa,EACxB,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC7B,MAAM,IAAI,CASZ;IAED,GAAG,CAAC,CAAC,SAAS,aAAa,EACzB,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC7B,IAAI,CAQN;IAED,IAAI,CAAC,CAAC,SAAS,aAAa,EAC1B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC5B,IAAI,CAWN;IAED,kBAAkB,IAAI,IAAI,CAEzB;CACF"}
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAgEH;IACU,SAAS,GAA6C,IAAI,GAAG,EAAE,CAAC;IAExE,EAAE,CACA,KAAQ,EACR,QAA8B;QAE9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEzC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;IAED,GAAG,CACD,KAAQ,EACR,QAA8B;QAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrB,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,OAA6B;QAE7B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,GAAG,EAAE,CAAC;YACR,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,0CAA0C,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
20
|
__exportStar(require("./protocol"), exports);
|
|
21
|
+
__exportStar(require("./capabilities"), exports);
|
|
21
22
|
__exportStar(require("./errors"), exports);
|
|
22
23
|
__exportStar(require("./events"), exports);
|
|
23
24
|
__exportStar(require("./mutation"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,6CAA2B;AAC3B,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAC3B,0CAAwB;AACxB,0CAAwB;AACxB,8CAA4B;AAC5B,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,6CAA2B;AAC3B,iDAA+B;AAC/B,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAC3B,0CAAwB;AACxB,0CAAwB;AACxB,8CAA4B;AAC5B,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -14,10 +14,18 @@ export interface PageDescriptor {
|
|
|
14
14
|
url: string;
|
|
15
15
|
meta?: Record<string, unknown>;
|
|
16
16
|
}
|
|
17
|
+
export interface ResourceErrorDetail {
|
|
18
|
+
type: string;
|
|
19
|
+
message: string;
|
|
20
|
+
details?: unknown;
|
|
21
|
+
}
|
|
17
22
|
export interface PageEnvelope {
|
|
18
23
|
protocol: ProtocolVersion;
|
|
19
24
|
page: PageDescriptor;
|
|
20
25
|
resources: Record<string, ResourceWireRecord>;
|
|
26
|
+
resourceKeys?: string[];
|
|
27
|
+
deferred?: string[];
|
|
28
|
+
resourceErrors?: Record<string, ResourceErrorDetail>;
|
|
21
29
|
appVersion?: string;
|
|
22
30
|
}
|
|
23
31
|
export type PatchOp = "replace-resource" | "merge-object" | "replace-item" | "remove-item" | "append-item";
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAE3C,eAAO,MAAM,gBAAgB,EAAE,eAA8B,CAAC;AAC9D,eAAO,MAAM,mBAAmB,kCAAkC,CAAC;AAEnE,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,OAAO,GACf,kBAAkB,GAClB,cAAc,GACd,cAAc,GACd,aAAa,GACb,aAAa,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,WAAW,CAAC;CACpB"}
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAE3C,eAAO,MAAM,gBAAgB,EAAE,eAA8B,CAAC;AAC9D,eAAO,MAAM,mBAAmB,kCAAkC,CAAC;AAEnE,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,OAAO,GACf,kBAAkB,GAClB,cAAc,GACd,cAAc,GACd,aAAa,GACb,aAAa,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,WAAW,CAAC;CACpB"}
|
package/dist/router.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Core navigation engine and coordinator. It has no UI-framework imports. */
|
|
2
2
|
import { PageCache } from "./cache";
|
|
3
|
-
import { EventEmitter, FluxEventListener, FluxEventName } from "./events";
|
|
3
|
+
import { EventEmitter, FluxEventListener, FluxEventName, type ResourceLoadReason } from "./events";
|
|
4
4
|
import { HistoryManager } from "./history";
|
|
5
5
|
import { MutationEnvelope, PageDescriptor, PageEnvelope } from "./protocol";
|
|
6
6
|
import { PrefetchManager } from "./prefetch";
|
|
@@ -17,6 +17,12 @@ export interface VisitOptions {
|
|
|
17
17
|
export interface RefreshOptions {
|
|
18
18
|
only?: string[];
|
|
19
19
|
}
|
|
20
|
+
export interface LoadResourcesOptions {
|
|
21
|
+
url?: string;
|
|
22
|
+
reason: ResourceLoadReason;
|
|
23
|
+
signal?: AbortSignal;
|
|
24
|
+
headers?: Record<string, string>;
|
|
25
|
+
}
|
|
20
26
|
export interface MutateOptions {
|
|
21
27
|
method?: string;
|
|
22
28
|
headers?: Record<string, string>;
|
|
@@ -29,6 +35,7 @@ export interface FluxRuntimeOptions {
|
|
|
29
35
|
history?: HistoryManager;
|
|
30
36
|
prefetchManager?: PrefetchManager;
|
|
31
37
|
pageCache?: PageCache;
|
|
38
|
+
initialEnvelope?: PageEnvelope;
|
|
32
39
|
initialPage?: PageDescriptor;
|
|
33
40
|
initialResources?: PageEnvelope["resources"];
|
|
34
41
|
maxResources?: number;
|
|
@@ -46,7 +53,15 @@ export declare class FluxRouter {
|
|
|
46
53
|
readonly pageCache: PageCache;
|
|
47
54
|
private currentVisitId;
|
|
48
55
|
private activeController;
|
|
56
|
+
private activeDeferredController;
|
|
57
|
+
private activeDeferredKeys;
|
|
58
|
+
private activeDeferredEpochs;
|
|
49
59
|
private visitCounter;
|
|
60
|
+
private resourceLoadCounter;
|
|
61
|
+
private resourceEpochCounter;
|
|
62
|
+
private readonly resourceEpochs;
|
|
63
|
+
private initialDeferredBatch?;
|
|
64
|
+
private initialDeferredPromise?;
|
|
50
65
|
private readonly hardNavigate;
|
|
51
66
|
private stopHistoryListener?;
|
|
52
67
|
constructor(options?: FluxRuntimeOptions);
|
|
@@ -55,13 +70,22 @@ export declare class FluxRouter {
|
|
|
55
70
|
on<E extends FluxEventName>(event: E, listener: FluxEventListener<E>): () => void;
|
|
56
71
|
visit(url: string, options?: VisitOptions): Promise<void>;
|
|
57
72
|
refresh(options?: RefreshOptions): Promise<void>;
|
|
73
|
+
/** Start initial deferred work after hydration. Repeated calls share one request. */
|
|
74
|
+
startInitialDeferred(): Promise<void>;
|
|
75
|
+
/** Load a resource batch without changing the current page or browser history. */
|
|
76
|
+
loadResources(keys: string[], options: LoadResourcesOptions): Promise<void>;
|
|
58
77
|
prefetch(url: string): Promise<PageEnvelope>;
|
|
59
78
|
mutate(url: string, data?: unknown, options?: MutateOptions): Promise<MutationEnvelope>;
|
|
60
79
|
clear(): void;
|
|
61
80
|
destroy(): void;
|
|
62
81
|
private applyPageEnvelope;
|
|
82
|
+
private cachePageEnvelope;
|
|
63
83
|
private emitResourceUpdates;
|
|
64
84
|
private abortActiveVisit;
|
|
85
|
+
private bumpResourceEpoch;
|
|
86
|
+
private startDeferredEnvelope;
|
|
87
|
+
private startDeferredBatch;
|
|
88
|
+
private abortActiveDeferred;
|
|
65
89
|
}
|
|
66
90
|
export declare function createFluxRuntime(options?: FluxRuntimeOptions): FluxRouter;
|
|
67
91
|
//# sourceMappingURL=router.d.ts.map
|
package/dist/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|