@pwa-platform/sw-runtime 0.1.0-beta.0 → 0.1.0-beta.1
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/build/config.d.ts.map +1 -1
- package/dist/build/config.js +35 -2
- package/dist/build/config.js.map +1 -1
- package/dist/messages/index.d.ts +30 -0
- package/dist/messages/index.d.ts.map +1 -1
- package/dist/messages/index.js +32 -0
- package/dist/messages/index.js.map +1 -1
- package/dist/recovery-worker/index.d.ts.map +1 -1
- package/dist/recovery-worker/index.js +22 -5
- package/dist/recovery-worker/index.js.map +1 -1
- package/dist/shared/config.d.ts +33 -0
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js +67 -1
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/expiration-records.d.ts +9 -0
- package/dist/shared/expiration-records.d.ts.map +1 -0
- package/dist/shared/expiration-records.js +85 -0
- package/dist/shared/expiration-records.js.map +1 -0
- package/dist/worker/admit.d.ts +8 -0
- package/dist/worker/admit.d.ts.map +1 -0
- package/dist/worker/admit.js +99 -0
- package/dist/worker/admit.js.map +1 -0
- package/dist/worker/decide.d.ts +23 -2
- package/dist/worker/decide.d.ts.map +1 -1
- package/dist/worker/decide.js +40 -11
- package/dist/worker/decide.js.map +1 -1
- package/dist/worker/handlers.d.ts +7 -2
- package/dist/worker/handlers.d.ts.map +1 -1
- package/dist/worker/handlers.js +247 -10
- package/dist/worker/handlers.js.map +1 -1
- package/dist/worker/index.d.ts.map +1 -1
- package/dist/worker/index.js +2 -2
- package/dist/worker/index.js.map +1 -1
- package/dist/worker/runtime-cleanup.d.ts +14 -0
- package/dist/worker/runtime-cleanup.d.ts.map +1 -0
- package/dist/worker/runtime-cleanup.js +23 -0
- package/dist/worker/runtime-cleanup.js.map +1 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/build/config.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/build/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiE,KAAK,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACtH,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,uBAAuB,CAgBjF;AAqCD,8GAA8G;AAC9G,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,uBAAuB,CAQjF"}
|
package/dist/build/config.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { appCachePrefix, cacheName, validatePlan } from "@pwa-platform/contracts";
|
|
1
|
+
import { appCachePrefix, cacheName, runtimeDataCacheName, validatePlan } from "@pwa-platform/contracts";
|
|
2
2
|
import { validatePlatformWorkerConfig, validateRecoveryWorkerConfig, } from "../shared/config.js";
|
|
3
3
|
/**
|
|
4
4
|
* The platform worker's runtime config: only the plan fields the worker reads, with the precache cache name computed
|
|
@@ -16,9 +16,42 @@ export function createPlatformWorkerConfig(plan) {
|
|
|
16
16
|
pathRules: pathRules.map(({ pathPrefix, action }) => ({ pathPrefix, action })),
|
|
17
17
|
offlineFallback: offlineFallback.enabled ? { enabled: true, path: offlineFallback.path } : { enabled: false },
|
|
18
18
|
updateMode,
|
|
19
|
-
offlineWrites: validated.schemaVersion ===
|
|
19
|
+
offlineWrites: validated.schemaVersion === 1 ? { enabled: false } : validated.offlineWrites,
|
|
20
|
+
runtimeCache: runtimeCacheWorkerConfig(validated),
|
|
21
|
+
...(validated.networkTimeoutSeconds === undefined ? {} : { networkTimeoutSeconds: validated.networkTimeoutSeconds }),
|
|
20
22
|
});
|
|
21
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* The pages and data cache names are always present, even when disabled or on a v1/v2 plan, because T8's activation
|
|
26
|
+
* cleanup needs them to remove caches a previously enabled config left behind.
|
|
27
|
+
*/
|
|
28
|
+
function runtimeCacheWorkerConfig(plan) {
|
|
29
|
+
const { identity } = plan;
|
|
30
|
+
const pagesCacheName = cacheName(identity, "runtime-pages");
|
|
31
|
+
const dataCacheNamePrefix = `${cacheName(identity, "runtime-data")}-`;
|
|
32
|
+
if (plan.schemaVersion !== 3 || !plan.runtimeCache.enabled) {
|
|
33
|
+
return { enabled: false, pagesCacheName, dataCacheNamePrefix };
|
|
34
|
+
}
|
|
35
|
+
const rules = plan.pathRules
|
|
36
|
+
.filter((rule) => rule.source === "policy" &&
|
|
37
|
+
((rule.resourceClass === "public-data" && (rule.action === "network-first" || rule.action === "stale-while-revalidate")) ||
|
|
38
|
+
(rule.resourceClass === "navigation-public-dynamic" && rule.action === "network-first")))
|
|
39
|
+
.map(({ pathPrefix, resourceClass, action }) => ({
|
|
40
|
+
pathPrefix,
|
|
41
|
+
resourceClass: resourceClass,
|
|
42
|
+
strategy: action,
|
|
43
|
+
}));
|
|
44
|
+
return {
|
|
45
|
+
enabled: true,
|
|
46
|
+
pagesCacheName,
|
|
47
|
+
dataCacheNamePrefix,
|
|
48
|
+
dataCacheName: runtimeDataCacheName(identity, plan.runtimeCache.configDigest),
|
|
49
|
+
maxEntries: plan.runtimeCache.maxEntries,
|
|
50
|
+
maxEntryBytes: plan.runtimeCache.maxEntryBytes,
|
|
51
|
+
maxAgeSeconds: plan.runtimeCache.maxAgeSeconds,
|
|
52
|
+
rules,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
22
55
|
/** The recovery worker's config: the app's cache prefix computed by contracts. Throws for an invalid plan. */
|
|
23
56
|
export function createRecoveryWorkerConfig(plan) {
|
|
24
57
|
const { identity } = validPlan(plan);
|
package/dist/build/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/build/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAgB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/build/config.ts"],"names":[],"mappings":"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"}
|
package/dist/messages/index.d.ts
CHANGED
|
@@ -46,4 +46,34 @@ export type PwaOfflineWriteClearResult = {
|
|
|
46
46
|
export declare function isOfflineWriteMessage(value: unknown): value is PwaOfflineWriteMessage;
|
|
47
47
|
/** Matches one closed clear acknowledgement without reading page- or worker-provided accessors. */
|
|
48
48
|
export declare function isOfflineWriteClearResult(value: unknown, requestId: string): value is PwaOfflineWriteClearResult;
|
|
49
|
+
export type PwaRuntimeCacheReason = "network-failed" | "network-timeout" | "stale-while-revalidate";
|
|
50
|
+
/** Posted by the worker to the client that received a runtime-cache-served response (spec "页面信号"). */
|
|
51
|
+
export type PwaRuntimeCacheServedMessage = {
|
|
52
|
+
readonly type: "pwa:runtime-cache:served";
|
|
53
|
+
readonly version: 1;
|
|
54
|
+
readonly url: string;
|
|
55
|
+
readonly cachedAt: number;
|
|
56
|
+
readonly reason: PwaRuntimeCacheReason;
|
|
57
|
+
};
|
|
58
|
+
/** A page's request, sent with exactly one `MessagePort`, for any runtime-cache signal stashed for its navigation. */
|
|
59
|
+
export type PwaRuntimeCachePendingMessage = {
|
|
60
|
+
readonly type: "pwa:runtime-cache:pending";
|
|
61
|
+
readonly version: 1;
|
|
62
|
+
};
|
|
63
|
+
/** The worker's reply on that port: `null` when nothing was stashed for this client, or was too stale. */
|
|
64
|
+
export type PwaRuntimeCachePendingResult = {
|
|
65
|
+
readonly type: "pwa:runtime-cache:pending-result";
|
|
66
|
+
readonly version: 1;
|
|
67
|
+
readonly served: null | {
|
|
68
|
+
readonly url: string;
|
|
69
|
+
readonly cachedAt: number;
|
|
70
|
+
readonly reason: PwaRuntimeCacheReason;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
/** Matches only the closed `{ type, version }` request envelope. Reads never invoke a page-provided accessor. */
|
|
74
|
+
export declare function isRuntimeCachePendingMessage(value: unknown): value is PwaRuntimeCachePendingMessage;
|
|
75
|
+
/** Matches only the closed served signal. Reads never invoke a page-provided accessor. */
|
|
76
|
+
export declare function isRuntimeCacheServedMessage(value: unknown): value is PwaRuntimeCacheServedMessage;
|
|
77
|
+
/** Matches only the closed pending-result reply. Reads never invoke a page-provided accessor. */
|
|
78
|
+
export declare function isRuntimeCachePendingResult(value: unknown): value is PwaRuntimeCachePendingResult;
|
|
49
79
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,MAAM,MAAM,qBAAqB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAE1E,eAAO,MAAM,oBAAoB,EAAE,qBAAmE,CAAC;AAEvG;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,qBAAqB,CAQnF;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAC9B;IACE,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;CAC/C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,0GAA0G;AAC1G,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;CAC5B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CA2BrF;AAED,mGAAmG;AACnG,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,IAAI,0BAA0B,CAShH"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":"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"}
|
package/dist/messages/index.js
CHANGED
|
@@ -59,6 +59,38 @@ export function isOfflineWriteClearResult(value, requestId) {
|
|
|
59
59
|
read(result, "requestId") === requestId &&
|
|
60
60
|
read(result, "status") === "cleared");
|
|
61
61
|
}
|
|
62
|
+
/** Matches only the closed `{ type, version }` request envelope. Reads never invoke a page-provided accessor. */
|
|
63
|
+
export function isRuntimeCachePendingMessage(value) {
|
|
64
|
+
const message = dataObject(value, ["type", "version"]);
|
|
65
|
+
return message !== undefined && read(message, "type") === "pwa:runtime-cache:pending" && read(message, "version") === 1;
|
|
66
|
+
}
|
|
67
|
+
/** Matches only the closed served signal. Reads never invoke a page-provided accessor. */
|
|
68
|
+
export function isRuntimeCacheServedMessage(value) {
|
|
69
|
+
const message = dataObject(value, ["type", "version", "url", "cachedAt", "reason"]);
|
|
70
|
+
if (message === undefined || read(message, "type") !== "pwa:runtime-cache:served" || read(message, "version") !== 1)
|
|
71
|
+
return false;
|
|
72
|
+
if (typeof read(message, "url") !== "string" || typeof read(message, "cachedAt") !== "number")
|
|
73
|
+
return false;
|
|
74
|
+
return isRuntimeCacheReason(read(message, "reason"));
|
|
75
|
+
}
|
|
76
|
+
/** Matches only the closed pending-result reply. Reads never invoke a page-provided accessor. */
|
|
77
|
+
export function isRuntimeCachePendingResult(value) {
|
|
78
|
+
const message = dataObject(value, ["type", "version", "served"]);
|
|
79
|
+
if (message === undefined || read(message, "type") !== "pwa:runtime-cache:pending-result" || read(message, "version") !== 1)
|
|
80
|
+
return false;
|
|
81
|
+
const served = read(message, "served");
|
|
82
|
+
if (served === null)
|
|
83
|
+
return true;
|
|
84
|
+
const entry = dataObject(served, ["url", "cachedAt", "reason"]);
|
|
85
|
+
if (entry === undefined)
|
|
86
|
+
return false;
|
|
87
|
+
if (typeof read(entry, "url") !== "string" || typeof read(entry, "cachedAt") !== "number")
|
|
88
|
+
return false;
|
|
89
|
+
return isRuntimeCacheReason(read(entry, "reason"));
|
|
90
|
+
}
|
|
91
|
+
function isRuntimeCacheReason(value) {
|
|
92
|
+
return value === "network-failed" || value === "network-timeout" || value === "stale-while-revalidate";
|
|
93
|
+
}
|
|
62
94
|
function dataObject(value, keys) {
|
|
63
95
|
const record = plainDataObject(value);
|
|
64
96
|
if (record === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recovery-worker/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recovery-worker/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgC,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAGjG,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC;IACzC,iFAAiF;IACjF,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,wBAAwB,GAAG,IAAI,CAWxF"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
// Recovery worker (service worker scope): activates at once, deletes this app's caches
|
|
2
|
-
//
|
|
1
|
+
// Recovery worker (service worker scope): activates at once, deletes this app's caches, the workbox-expiration
|
|
2
|
+
// records those caches left behind (ADR-0035, "过期记录与缓存一起清理") and its offline-write database, then claims
|
|
3
|
+
// clients. It imports no package, so the recovery artifact never carries Workbox or a fetch listener — the
|
|
4
|
+
// expiration-records module is local source, not a dependency.
|
|
3
5
|
import { validateRecoveryWorkerConfig } from "../shared/config.js";
|
|
6
|
+
import { deleteExpirationRecords } from "../shared/expiration-records.js";
|
|
4
7
|
/**
|
|
5
8
|
* Registers the recovery worker (ADR-0005): it takes over immediately only after it removes every cache and the
|
|
6
9
|
* identity-derived offline-write database of this app in this environment, then serves nothing, so page requests go
|
|
@@ -22,19 +25,33 @@ export function registerRecoveryWorker({ scope, config }) {
|
|
|
22
25
|
});
|
|
23
26
|
}
|
|
24
27
|
/**
|
|
25
|
-
* Deletes this app's caches
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
+
* Deletes this app's caches, this app's workbox-expiration records (best effort — see below), and the
|
|
29
|
+
* identity-derived queue database, cancels this registration's push subscription (if any), then claims the open
|
|
30
|
+
* clients so they stop being controlled by the broken worker. Cancelling the subscription never blocks deletion or
|
|
31
|
+
* takeover: it runs after deletion and before claim, and its own failure is swallowed.
|
|
28
32
|
*/
|
|
29
33
|
async function recover(scope, appCachePrefix, offlineWriteDatabaseName) {
|
|
30
34
|
for (const name of await scope.caches.keys()) {
|
|
31
35
|
if (name.startsWith(appCachePrefix))
|
|
32
36
|
await scope.caches.delete(name);
|
|
33
37
|
}
|
|
38
|
+
await deleteExpirationRecordsBestEffort(appCachePrefix);
|
|
34
39
|
await deleteOfflineWriteDatabase(offlineWriteDatabaseName);
|
|
35
40
|
await cancelPushSubscription(scope);
|
|
36
41
|
await scope.clients.claim();
|
|
37
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Best-effort, like the push-subscription cancellation below: a failure here must never block deleting the
|
|
45
|
+
* identity-derived offline-write database or claiming clients, so it is swallowed rather than propagated.
|
|
46
|
+
*/
|
|
47
|
+
async function deleteExpirationRecordsBestEffort(appCachePrefix) {
|
|
48
|
+
try {
|
|
49
|
+
await deleteExpirationRecords((name) => name.startsWith(appCachePrefix));
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// Swallowed: see the doc comment above.
|
|
53
|
+
}
|
|
54
|
+
}
|
|
38
55
|
/** Rejects on failure or blocked deletion so recovery does not take control while sensitive queue data remains. */
|
|
39
56
|
function deleteOfflineWriteDatabase(name) {
|
|
40
57
|
return new Promise((resolve, reject) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recovery-worker/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recovery-worker/index.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAC/G,yGAAyG;AACzG,2GAA2G;AAC3G,+DAA+D;AAC/D,OAAO,EAAE,4BAA4B,EAAgC,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAQ1E;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAE,KAAK,EAAE,MAAM,EAA4B;IAChF,MAAM,EAAE,cAAc,EAAE,wBAAwB,EAAE,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAE1F,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1C,wGAAwG;QACxG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3C,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,OAAO,CAAC,KAA+B,EAAE,cAAsB,EAAE,wBAAgC;IAC9G,KAAK,MAAM,IAAI,IAAI,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,iCAAiC,CAAC,cAAc,CAAC,CAAC;IACxD,MAAM,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;IAC3D,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,iCAAiC,CAAC,cAAsB;IACrE,IAAI,CAAC;QACH,MAAM,uBAAuB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;IAC1C,CAAC;AACH,CAAC;AAED,mHAAmH;AACnH,SAAS,0BAA0B,CAAC,IAAY;IAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,CAAC,SAAS,GAAG,GAAS,EAAE,CAAC,OAAO,EAAE,CAAC;QAC1C,OAAO,CAAC,OAAO,GAAG,GAAS,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;QAC3G,OAAO,CAAC,SAAS,GAAG,GAAS,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,qHAAqH;AACrH,KAAK,UAAU,sBAAsB,CAAC,KAA+B;IACnE,IAAI,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,YAAY,CAAC;QAAE,OAAO;IACnD,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAC5E,IAAI,YAAY,KAAK,IAAI;YAAE,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,6FAA6F;IAC/F,CAAC;AACH,CAAC"}
|
package/dist/shared/config.d.ts
CHANGED
|
@@ -27,6 +27,31 @@ export type PwaWorkerOfflineWrites = {
|
|
|
27
27
|
readonly maxTotalBodyBytes: number;
|
|
28
28
|
readonly targets: readonly PwaWorkerOfflineWriteTarget[];
|
|
29
29
|
};
|
|
30
|
+
export type PwaWorkerRuntimeResourceClass = "public-data" | "navigation-public-dynamic";
|
|
31
|
+
export type PwaWorkerRuntimeStrategy = "network-first" | "stale-while-revalidate";
|
|
32
|
+
export type PwaWorkerRuntimeCacheRule = {
|
|
33
|
+
readonly pathPrefix: PwaWorkerPath;
|
|
34
|
+
readonly resourceClass: PwaWorkerRuntimeResourceClass;
|
|
35
|
+
readonly strategy: PwaWorkerRuntimeStrategy;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* `pagesCacheName` and `dataCacheNamePrefix` are always present, even when disabled: T8's activation cleanup needs
|
|
39
|
+
* them to remove any runtime caches a previously enabled config left behind.
|
|
40
|
+
*/
|
|
41
|
+
export type PwaWorkerRuntimeCache = {
|
|
42
|
+
readonly enabled: false;
|
|
43
|
+
readonly pagesCacheName: string;
|
|
44
|
+
readonly dataCacheNamePrefix: string;
|
|
45
|
+
} | {
|
|
46
|
+
readonly enabled: true;
|
|
47
|
+
readonly pagesCacheName: string;
|
|
48
|
+
readonly dataCacheNamePrefix: string;
|
|
49
|
+
readonly dataCacheName: string;
|
|
50
|
+
readonly maxEntries: number;
|
|
51
|
+
readonly maxEntryBytes: number;
|
|
52
|
+
readonly maxAgeSeconds: number;
|
|
53
|
+
readonly rules: readonly PwaWorkerRuntimeCacheRule[];
|
|
54
|
+
};
|
|
30
55
|
export type PwaPlatformWorkerConfig = {
|
|
31
56
|
readonly kind: "platform";
|
|
32
57
|
readonly version: 1;
|
|
@@ -52,6 +77,14 @@ export type PwaPlatformWorkerConfig = {
|
|
|
52
77
|
readonly updateMode: "prompt";
|
|
53
78
|
/** Closed configuration for explicit offline writes; `false` for every v1 plan. */
|
|
54
79
|
readonly offlineWrites: PwaWorkerOfflineWrites;
|
|
80
|
+
/** Closed configuration for the public-read runtime cache; `enabled: false` for every v1/v2 plan. */
|
|
81
|
+
readonly runtimeCache: PwaWorkerRuntimeCache;
|
|
82
|
+
/**
|
|
83
|
+
* 1-30 integer seconds. Present only when the plan set it; omitted entirely (not `undefined`) otherwise, so a
|
|
84
|
+
* worker config built without it is byte-identical to one from before this field existed. Governs both the
|
|
85
|
+
* navigation fallback timeout and the runtime cache's network-first `networkTimeoutSeconds`.
|
|
86
|
+
*/
|
|
87
|
+
readonly networkTimeoutSeconds?: number;
|
|
55
88
|
};
|
|
56
89
|
export type PwaRecoveryWorkerConfig = {
|
|
57
90
|
readonly kind: "recovery";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"AAGA,yGAAyG;AACzG,eAAO,MAAM,uBAAuB,8GAQ1B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,gGAAiG,CAAC;AAEvI,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/E,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAChF,MAAM,MAAM,aAAa,GAAG,IAAI,MAAM,EAAE,CAAC;AAEzC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAA;CAAE,GAC3B;IACE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,2BAA2B,EAAE,CAAC;CAC1D,CAAC;AAEN,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,+GAA+G;IAC/G,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,sBAAsB,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACpE,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACjD,QAAQ,CAAC,eAAe,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;IACjH,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;IAC9B,mFAAmF;IACnF,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/config.js
CHANGED
|
@@ -21,6 +21,11 @@ const PRECACHE_CACHE_NAME = /^pwa:[^:]+:[^:]+:[^:]+:precache$/;
|
|
|
21
21
|
const APP_CACHE_PREFIX = /^pwa:[^:]+:[^:]+:$/;
|
|
22
22
|
const OFFLINE_WRITE_DATABASE_NAME = /^pwa-offline-write:[^:]+:[^:]+:[^:]+$/;
|
|
23
23
|
const OFFLINE_WRITE_ID = /^[a-z][a-z0-9-]{0,63}$/;
|
|
24
|
+
const RUNTIME_PAGES_CACHE_NAME = /^pwa:[^:]+:[^:]+:[^:]+:runtime-pages$/;
|
|
25
|
+
const RUNTIME_DATA_CACHE_NAME_PREFIX = /^pwa:[^:]+:[^:]+:[^:]+:runtime-data-$/;
|
|
26
|
+
const RUNTIME_DATA_CACHE_NAME = /^pwa:[^:]+:[^:]+:[^:]+:runtime-data-[0-9a-f]{16}$/;
|
|
27
|
+
const RUNTIME_RESOURCE_CLASSES = ["public-data", "navigation-public-dynamic"];
|
|
28
|
+
const RUNTIME_STRATEGIES = ["network-first", "stale-while-revalidate"];
|
|
24
29
|
// Only used to check the form of paths; never requested.
|
|
25
30
|
const PATH_BASE = "https://sw-runtime.invalid";
|
|
26
31
|
const PLATFORM_KEYS = [
|
|
@@ -33,12 +38,14 @@ const PLATFORM_KEYS = [
|
|
|
33
38
|
"offlineFallback",
|
|
34
39
|
"updateMode",
|
|
35
40
|
"offlineWrites",
|
|
41
|
+
"runtimeCache",
|
|
36
42
|
];
|
|
37
43
|
const RECOVERY_KEYS = ["kind", "version", "appCachePrefix", "offlineWriteDatabaseName"];
|
|
38
44
|
/** Validates a platform worker config and returns a fresh copy with keys in canonical order. Messages name fields only. */
|
|
39
45
|
export function validatePlatformWorkerConfig(value) {
|
|
40
46
|
const config = plainObject(value, "config");
|
|
41
|
-
|
|
47
|
+
const hasNetworkTimeout = Object.hasOwn(config, "networkTimeoutSeconds");
|
|
48
|
+
exactKeys(config, hasNetworkTimeout ? [...PLATFORM_KEYS, "networkTimeoutSeconds"] : PLATFORM_KEYS, "config");
|
|
42
49
|
if (config["kind"] !== "platform")
|
|
43
50
|
fail('config.kind must be "platform"');
|
|
44
51
|
if (config["version"] !== 1)
|
|
@@ -85,6 +92,10 @@ export function validatePlatformWorkerConfig(value) {
|
|
|
85
92
|
if (config["updateMode"] !== "prompt")
|
|
86
93
|
fail('config.updateMode must be "prompt"');
|
|
87
94
|
const offlineWrites = offlineWriteConfig(config["offlineWrites"], scope);
|
|
95
|
+
const runtimeCache = runtimeCacheConfig(config["runtimeCache"]);
|
|
96
|
+
const networkTimeoutSeconds = hasNetworkTimeout
|
|
97
|
+
? boundedInteger(config["networkTimeoutSeconds"], 1, 30, "config.networkTimeoutSeconds")
|
|
98
|
+
: undefined;
|
|
88
99
|
return {
|
|
89
100
|
kind: "platform",
|
|
90
101
|
version: 1,
|
|
@@ -95,6 +106,8 @@ export function validatePlatformWorkerConfig(value) {
|
|
|
95
106
|
offlineFallback,
|
|
96
107
|
updateMode: "prompt",
|
|
97
108
|
offlineWrites,
|
|
109
|
+
runtimeCache,
|
|
110
|
+
...(networkTimeoutSeconds === undefined ? {} : { networkTimeoutSeconds }),
|
|
98
111
|
};
|
|
99
112
|
}
|
|
100
113
|
/** Validates a recovery worker config and returns a fresh copy with keys in canonical order. Messages name fields only. */
|
|
@@ -181,6 +194,59 @@ function offlineWriteConfig(value, scope) {
|
|
|
181
194
|
});
|
|
182
195
|
return { enabled: true, databaseName, maxEntries, maxTotalBodyBytes, targets };
|
|
183
196
|
}
|
|
197
|
+
function runtimeCacheConfig(value) {
|
|
198
|
+
const config = plainObject(value, "config.runtimeCache");
|
|
199
|
+
if (config["enabled"] === false) {
|
|
200
|
+
exactKeys(config, ["enabled", "pagesCacheName", "dataCacheNamePrefix"], "config.runtimeCache");
|
|
201
|
+
return {
|
|
202
|
+
enabled: false,
|
|
203
|
+
pagesCacheName: runtimeCacheNameField(config["pagesCacheName"], RUNTIME_PAGES_CACHE_NAME, "config.runtimeCache.pagesCacheName"),
|
|
204
|
+
dataCacheNamePrefix: runtimeCacheNameField(config["dataCacheNamePrefix"], RUNTIME_DATA_CACHE_NAME_PREFIX, "config.runtimeCache.dataCacheNamePrefix"),
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
if (config["enabled"] !== true)
|
|
208
|
+
fail("config.runtimeCache.enabled must be true or false");
|
|
209
|
+
exactKeys(config, ["enabled", "pagesCacheName", "dataCacheNamePrefix", "dataCacheName", "maxEntries", "maxEntryBytes", "maxAgeSeconds", "rules"], "config.runtimeCache");
|
|
210
|
+
const pagesCacheName = runtimeCacheNameField(config["pagesCacheName"], RUNTIME_PAGES_CACHE_NAME, "config.runtimeCache.pagesCacheName");
|
|
211
|
+
const dataCacheNamePrefix = runtimeCacheNameField(config["dataCacheNamePrefix"], RUNTIME_DATA_CACHE_NAME_PREFIX, "config.runtimeCache.dataCacheNamePrefix");
|
|
212
|
+
const dataCacheName = config["dataCacheName"];
|
|
213
|
+
if (typeof dataCacheName !== "string" || !RUNTIME_DATA_CACHE_NAME.test(dataCacheName) || !dataCacheName.startsWith(dataCacheNamePrefix)) {
|
|
214
|
+
fail('config.runtimeCache.dataCacheName must have the form "pwa:<app>:<environment>:<seed>:runtime-data-<digest>"');
|
|
215
|
+
}
|
|
216
|
+
const maxEntries = boundedInteger(config["maxEntries"], 1, 200, "config.runtimeCache.maxEntries");
|
|
217
|
+
const maxEntryBytes = boundedInteger(config["maxEntryBytes"], 1, 1_048_576, "config.runtimeCache.maxEntryBytes");
|
|
218
|
+
const maxAgeSeconds = boundedInteger(config["maxAgeSeconds"], 60, 604_800, "config.runtimeCache.maxAgeSeconds");
|
|
219
|
+
const rawRules = config["rules"];
|
|
220
|
+
if (!Array.isArray(rawRules))
|
|
221
|
+
fail("config.runtimeCache.rules must be an array");
|
|
222
|
+
const rules = rawRules.map((entry, index) => {
|
|
223
|
+
const label = `config.runtimeCache.rules[${index}]`;
|
|
224
|
+
const rule = plainObject(entry, label);
|
|
225
|
+
exactKeys(rule, ["pathPrefix", "resourceClass", "strategy"], label);
|
|
226
|
+
const pathPrefix = canonicalPath(rule["pathPrefix"], `${label}.pathPrefix`);
|
|
227
|
+
const resourceClass = rule["resourceClass"];
|
|
228
|
+
if (!RUNTIME_RESOURCE_CLASSES.some((known) => known === resourceClass)) {
|
|
229
|
+
fail(`${label}.resourceClass must be "public-data" or "navigation-public-dynamic"`);
|
|
230
|
+
}
|
|
231
|
+
const strategy = rule["strategy"];
|
|
232
|
+
if (!RUNTIME_STRATEGIES.some((known) => known === strategy)) {
|
|
233
|
+
fail(`${label}.strategy must be "network-first" or "stale-while-revalidate"`);
|
|
234
|
+
}
|
|
235
|
+
return { pathPrefix, resourceClass: resourceClass, strategy: strategy };
|
|
236
|
+
});
|
|
237
|
+
return { enabled: true, pagesCacheName, dataCacheNamePrefix, dataCacheName, maxEntries, maxEntryBytes, maxAgeSeconds, rules };
|
|
238
|
+
}
|
|
239
|
+
function runtimeCacheNameField(value, pattern, label) {
|
|
240
|
+
if (typeof value !== "string" || !pattern.test(value))
|
|
241
|
+
fail(`${label} must have the form "pwa:<app>:<environment>:<seed>:runtime-…"`);
|
|
242
|
+
return value;
|
|
243
|
+
}
|
|
244
|
+
function boundedInteger(value, minimum, maximum, label) {
|
|
245
|
+
if (typeof value !== "number" || !Number.isInteger(value) || value < minimum || value > maximum) {
|
|
246
|
+
fail(`${label} must be an integer between ${minimum} and ${maximum}`);
|
|
247
|
+
}
|
|
248
|
+
return value;
|
|
249
|
+
}
|
|
184
250
|
function boundedPositiveInteger(value, maximum, label) {
|
|
185
251
|
if (typeof value !== "number" || !Number.isInteger(value) || value < 1 || value > maximum) {
|
|
186
252
|
fail(`${label} must be an integer between 1 and ${maximum}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deletes every `workbox-expiration` record whose `cacheName` field satisfies `matches`. Never creates the database:
|
|
3
|
+
* when `indexedDB.databases` reports it does not exist, this returns without opening anything; when `databases` is
|
|
4
|
+
* unavailable, it opens without forcing a version bump and, if that open turns out to create the database (an
|
|
5
|
+
* `upgradeneeded` fires), aborts the upgrade transaction so nothing is left behind and returns. A missing
|
|
6
|
+
* `cache-entries` store (a `workbox-expiration` from some future/incompatible schema) is treated the same way.
|
|
7
|
+
*/
|
|
8
|
+
export declare function deleteExpirationRecords(matches: (cacheName: string) => boolean): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=expiration-records.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expiration-records.d.ts","sourceRoot":"","sources":["../../src/shared/expiration-records.ts"],"names":[],"mappings":"AAaA;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAUpG"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// Deletes workbox-expiration's own per-entry IndexedDB records for the caches this app just deleted (ADR-0035,
|
|
2
|
+
// "过期记录与缓存一起清理"): `caches.delete` never touches them, so without this they outlive the cache they described.
|
|
3
|
+
// Imports nothing — this file is loaded by the recovery worker too, which must never carry a package import — so the
|
|
4
|
+
// schema below is duplicated from workbox-expiration, not imported from it.
|
|
5
|
+
//
|
|
6
|
+
// Schema constants are workbox-expiration@7.4.1's own
|
|
7
|
+
// (node_modules/workbox-expiration/models/CacheTimestampsModel.js): database `workbox-expiration` version 1, a
|
|
8
|
+
// single object store `cache-entries` (keyPath `id`, one record per `cacheName + '|' + url`), with a non-unique
|
|
9
|
+
// index named `cacheName`.
|
|
10
|
+
const DATABASE_NAME = "workbox-expiration";
|
|
11
|
+
const DATABASE_VERSION = 1;
|
|
12
|
+
const OBJECT_STORE_NAME = "cache-entries";
|
|
13
|
+
/**
|
|
14
|
+
* Deletes every `workbox-expiration` record whose `cacheName` field satisfies `matches`. Never creates the database:
|
|
15
|
+
* when `indexedDB.databases` reports it does not exist, this returns without opening anything; when `databases` is
|
|
16
|
+
* unavailable, it opens without forcing a version bump and, if that open turns out to create the database (an
|
|
17
|
+
* `upgradeneeded` fires), aborts the upgrade transaction so nothing is left behind and returns. A missing
|
|
18
|
+
* `cache-entries` store (a `workbox-expiration` from some future/incompatible schema) is treated the same way.
|
|
19
|
+
*/
|
|
20
|
+
export async function deleteExpirationRecords(matches) {
|
|
21
|
+
if (!(await mayExist()))
|
|
22
|
+
return;
|
|
23
|
+
const db = await openExistingDatabase();
|
|
24
|
+
if (db === undefined)
|
|
25
|
+
return;
|
|
26
|
+
try {
|
|
27
|
+
if (!db.objectStoreNames.contains(OBJECT_STORE_NAME))
|
|
28
|
+
return;
|
|
29
|
+
await deleteMatchingRecords(db, matches);
|
|
30
|
+
}
|
|
31
|
+
finally {
|
|
32
|
+
db.close();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/** `false` only when `indexedDB.databases` is available and its listing does not include `workbox-expiration`. */
|
|
36
|
+
async function mayExist() {
|
|
37
|
+
if (typeof indexedDB.databases !== "function")
|
|
38
|
+
return true;
|
|
39
|
+
const databases = await indexedDB.databases();
|
|
40
|
+
return databases.some((entry) => entry.name === DATABASE_NAME);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Opens `workbox-expiration` at its known version without creating it: an `upgradeneeded` firing means no such
|
|
44
|
+
* database existed yet, so the transaction is aborted (which discards the database `open` would otherwise have just
|
|
45
|
+
* created) and this resolves to `undefined` instead of a connection.
|
|
46
|
+
*/
|
|
47
|
+
function openExistingDatabase() {
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
let didNotExist = false;
|
|
50
|
+
const request = indexedDB.open(DATABASE_NAME, DATABASE_VERSION);
|
|
51
|
+
request.onupgradeneeded = () => {
|
|
52
|
+
didNotExist = true;
|
|
53
|
+
request.transaction?.abort();
|
|
54
|
+
};
|
|
55
|
+
request.onsuccess = () => resolve(request.result);
|
|
56
|
+
request.onerror = () => {
|
|
57
|
+
if (didNotExist) {
|
|
58
|
+
resolve(undefined);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
reject(request.error ?? new Error("workbox-expiration open failed"));
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/** One readwrite transaction: every entry whose `cacheName` matches is deleted while the cursor walks the store. */
|
|
66
|
+
function deleteMatchingRecords(db, matches) {
|
|
67
|
+
return new Promise((resolve, reject) => {
|
|
68
|
+
const transaction = db.transaction(OBJECT_STORE_NAME, "readwrite");
|
|
69
|
+
transaction.oncomplete = () => resolve();
|
|
70
|
+
transaction.onerror = () => reject(transaction.error ?? new Error("workbox-expiration record deletion failed"));
|
|
71
|
+
transaction.onabort = () => reject(transaction.error ?? new Error("workbox-expiration record deletion aborted"));
|
|
72
|
+
const request = transaction.objectStore(OBJECT_STORE_NAME).openCursor();
|
|
73
|
+
request.onerror = () => reject(request.error ?? new Error("workbox-expiration cursor failed"));
|
|
74
|
+
request.onsuccess = () => {
|
|
75
|
+
const cursor = request.result;
|
|
76
|
+
if (cursor === null)
|
|
77
|
+
return;
|
|
78
|
+
const cacheName = cursor.value.cacheName;
|
|
79
|
+
if (typeof cacheName === "string" && matches(cacheName))
|
|
80
|
+
cursor.delete();
|
|
81
|
+
cursor.continue();
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=expiration-records.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expiration-records.js","sourceRoot":"","sources":["../../src/shared/expiration-records.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type PwaRuntimeAdmitOptions = {
|
|
2
|
+
readonly resourceClass: "public-data" | "navigation-public-dynamic";
|
|
3
|
+
readonly strategy: "network-first" | "stale-while-revalidate";
|
|
4
|
+
readonly maxEntryBytes: number;
|
|
5
|
+
};
|
|
6
|
+
/** True only if `response` may be written to the runtime cache. Never consumes `response` itself. */
|
|
7
|
+
export declare function admitRuntimeResponse(response: Response, options: PwaRuntimeAdmitOptions): Promise<boolean>;
|
|
8
|
+
//# sourceMappingURL=admit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admit.d.ts","sourceRoot":"","sources":["../../src/worker/admit.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,2BAA2B,CAAC;IACpE,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,wBAAwB,CAAC;IAC9D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAAC;AAIF,qGAAqG;AACrG,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQhH"}
|