@serwist/core 9.0.0-preview.8 → 9.0.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.
Files changed (89) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +3 -11
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.internal.d.ts +1 -15
  5. package/dist/index.internal.d.ts.map +1 -1
  6. package/dist/index.internal.js +1 -120
  7. package/dist/index.js +2 -92
  8. package/package.json +9 -6
  9. package/src/index.internal.ts +4 -21
  10. package/src/index.ts +43 -13
  11. package/dist/_private/Deferred.d.ts +0 -19
  12. package/dist/_private/Deferred.d.ts.map +0 -1
  13. package/dist/_private/SerwistError.d.ts +0 -25
  14. package/dist/_private/SerwistError.d.ts.map +0 -1
  15. package/dist/_private/assert.d.ts +0 -11
  16. package/dist/_private/assert.d.ts.map +0 -1
  17. package/dist/_private/cacheMatchIgnoreParams.d.ts +0 -15
  18. package/dist/_private/cacheMatchIgnoreParams.d.ts.map +0 -1
  19. package/dist/_private/cacheNames.d.ts +0 -40
  20. package/dist/_private/cacheNames.d.ts.map +0 -1
  21. package/dist/_private/canConstructReadableStream.d.ts +0 -12
  22. package/dist/_private/canConstructReadableStream.d.ts.map +0 -1
  23. package/dist/_private/canConstructResponseFromBodyStream.d.ts +0 -11
  24. package/dist/_private/canConstructResponseFromBodyStream.d.ts.map +0 -1
  25. package/dist/_private/dontWaitFor.d.ts +0 -7
  26. package/dist/_private/dontWaitFor.d.ts.map +0 -1
  27. package/dist/_private/executeQuotaErrorCallbacks.d.ts +0 -9
  28. package/dist/_private/executeQuotaErrorCallbacks.d.ts.map +0 -1
  29. package/dist/_private/getFriendlyURL.d.ts +0 -3
  30. package/dist/_private/getFriendlyURL.d.ts.map +0 -1
  31. package/dist/_private/logger.d.ts +0 -24
  32. package/dist/_private/logger.d.ts.map +0 -1
  33. package/dist/_private/resultingClientExists.d.ts +0 -12
  34. package/dist/_private/resultingClientExists.d.ts.map +0 -1
  35. package/dist/_private/timeout.d.ts +0 -10
  36. package/dist/_private/timeout.d.ts.map +0 -1
  37. package/dist/_private/waitUntil.d.ts +0 -11
  38. package/dist/_private/waitUntil.d.ts.map +0 -1
  39. package/dist/cacheNames.d.ts +0 -21
  40. package/dist/cacheNames.d.ts.map +0 -1
  41. package/dist/chunks/quotaErrorCallbacks.js +0 -355
  42. package/dist/clientsClaim.d.ts +0 -7
  43. package/dist/clientsClaim.d.ts.map +0 -1
  44. package/dist/copyResponse.d.ts +0 -21
  45. package/dist/copyResponse.d.ts.map +0 -1
  46. package/dist/models/messages/messageGenerator.d.ts +0 -4
  47. package/dist/models/messages/messageGenerator.d.ts.map +0 -1
  48. package/dist/models/messages/messages.d.ts +0 -44
  49. package/dist/models/messages/messages.d.ts.map +0 -1
  50. package/dist/models/pluginEvents.d.ts +0 -10
  51. package/dist/models/pluginEvents.d.ts.map +0 -1
  52. package/dist/models/quotaErrorCallbacks.d.ts +0 -3
  53. package/dist/models/quotaErrorCallbacks.d.ts.map +0 -1
  54. package/dist/registerQuotaErrorCallback.d.ts +0 -9
  55. package/dist/registerQuotaErrorCallback.d.ts.map +0 -1
  56. package/dist/setCacheNameDetails.d.ts +0 -10
  57. package/dist/setCacheNameDetails.d.ts.map +0 -1
  58. package/dist/types.d.ts +0 -279
  59. package/dist/types.d.ts.map +0 -1
  60. package/dist/utils/pluginUtils.d.ts +0 -5
  61. package/dist/utils/pluginUtils.d.ts.map +0 -1
  62. package/dist/utils/welcome.d.ts +0 -2
  63. package/dist/utils/welcome.d.ts.map +0 -1
  64. package/src/_private/Deferred.ts +0 -33
  65. package/src/_private/SerwistError.ts +0 -43
  66. package/src/_private/assert.ts +0 -89
  67. package/src/_private/cacheMatchIgnoreParams.ts +0 -54
  68. package/src/_private/cacheNames.ts +0 -87
  69. package/src/_private/canConstructReadableStream.ts +0 -34
  70. package/src/_private/canConstructResponseFromBodyStream.ts +0 -37
  71. package/src/_private/dontWaitFor.ts +0 -16
  72. package/src/_private/executeQuotaErrorCallbacks.ts +0 -35
  73. package/src/_private/getFriendlyURL.ts +0 -16
  74. package/src/_private/logger.ts +0 -95
  75. package/src/_private/resultingClientExists.ts +0 -58
  76. package/src/_private/timeout.ts +0 -19
  77. package/src/_private/waitUntil.ts +0 -21
  78. package/src/cacheNames.ts +0 -41
  79. package/src/clientsClaim.ts +0 -20
  80. package/src/copyResponse.ts +0 -62
  81. package/src/models/messages/messageGenerator.ts +0 -29
  82. package/src/models/messages/messages.ts +0 -233
  83. package/src/models/pluginEvents.ts +0 -17
  84. package/src/models/quotaErrorCallbacks.ts +0 -13
  85. package/src/registerQuotaErrorCallback.ts +0 -36
  86. package/src/setCacheNameDetails.ts +0 -55
  87. package/src/types.ts +0 -322
  88. package/src/utils/pluginUtils.ts +0 -15
  89. package/src/utils/welcome.ts +0 -25
package/README.md CHANGED
@@ -1 +1 @@
1
- This module's documentation can be found at https://developers.google.com/web/tools/workbox/modules/workbox-core
1
+ This module has been deprecated.
package/dist/index.d.ts CHANGED
@@ -1,12 +1,4 @@
1
- import { cacheNames } from "./cacheNames.js";
2
- import { clientsClaim } from "./clientsClaim.js";
3
- import { copyResponse } from "./copyResponse.js";
4
- import { registerQuotaErrorCallback } from "./registerQuotaErrorCallback.js";
5
- import { setCacheNameDetails } from "./setCacheNameDetails.js";
6
- /**
7
- * All Serwist libraries use `@serwist/core` for shared code as well as
8
- * setting default values that need to be shared (like cache names).
9
- */
10
- export { cacheNames, clientsClaim, copyResponse, registerQuotaErrorCallback, setCacheNameDetails };
11
- export type * from "./types.js";
1
+ export { cacheNames, copyResponse, registerQuotaErrorCallback, setCacheNameDetails } from "serwist";
2
+ export { clientsClaim } from "serwist/internal";
3
+ export type { PromiseOrNot, MapLikeObject, PluginState, RouteMatchCallbackOptions, RouteMatchCallback, RouteHandlerCallbackOptions, ManualHandlerCallbackOptions, HandlerCallbackOptions, RouteHandlerCallback, ManualHandlerCallback, RouteHandlerObject, RouteHandler, HandlerWillStartCallbackParam, HandlerWillStartCallback, CacheDidUpdateCallbackParam, CacheDidUpdateCallback, CacheKeyWillBeUsedCallbackParam, CacheKeyWillBeUsedCallback, CacheWillUpdateCallbackParam, CacheWillUpdateCallback, CachedResponseWillBeUsedCallbackParam, CachedResponseWillBeUsedCallback, FetchDidFailCallbackParam, FetchDidFailCallback, FetchDidSucceedCallbackParam, FetchDidSucceedCallback, RequestWillFetchCallbackParam, RequestWillFetchCallback, HandlerWillRespondCallbackParam, HandlerWillRespondCallback, HandlerDidErrorCallbackParam, HandlerDidErrorCallback, HandlerDidRespondCallbackParam, HandlerDidRespondCallback, HandlerDidCompleteCallbackParam, HandlerDidCompleteCallback, SerwistPlugin, SerwistPluginCallbackParam, SerwistGlobalConfig, } from "serwist";
12
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,CAAC;AAEnG,mBAAmB,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,YAAY,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,yBAAyB,EACzB,kBAAkB,EAClB,2BAA2B,EAC3B,4BAA4B,EAC5B,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,6BAA6B,EAC7B,wBAAwB,EACxB,2BAA2B,EAC3B,sBAAsB,EACtB,+BAA+B,EAC/B,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,qCAAqC,EACrC,gCAAgC,EAChC,yBAAyB,EACzB,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,6BAA6B,EAC7B,wBAAwB,EACxB,+BAA+B,EAC/B,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,8BAA8B,EAC9B,yBAAyB,EACzB,+BAA+B,EAC/B,0BAA0B,EAC1B,aAAa,EACb,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,SAAS,CAAC"}
@@ -1,16 +1,2 @@
1
- import { Deferred } from "./_private/Deferred.js";
2
- import { SerwistError } from "./_private/SerwistError.js";
3
- import { assert } from "./_private/assert.js";
4
- import { cacheMatchIgnoreParams } from "./_private/cacheMatchIgnoreParams.js";
5
- import { cacheNames as privateCacheNames } from "./_private/cacheNames.js";
6
- import { canConstructReadableStream } from "./_private/canConstructReadableStream.js";
7
- import { canConstructResponseFromBodyStream } from "./_private/canConstructResponseFromBodyStream.js";
8
- import { dontWaitFor } from "./_private/dontWaitFor.js";
9
- import { executeQuotaErrorCallbacks } from "./_private/executeQuotaErrorCallbacks.js";
10
- import { getFriendlyURL } from "./_private/getFriendlyURL.js";
11
- import { logger } from "./_private/logger.js";
12
- import { resultingClientExists } from "./_private/resultingClientExists.js";
13
- import { timeout } from "./_private/timeout.js";
14
- import { waitUntil } from "./_private/waitUntil.js";
15
- export { assert, cacheMatchIgnoreParams, canConstructReadableStream, canConstructResponseFromBodyStream, Deferred, dontWaitFor, executeQuotaErrorCallbacks, getFriendlyURL, logger, privateCacheNames, resultingClientExists, SerwistError, timeout, waitUntil, };
1
+ export { Deferred, SerwistError, assert, cacheMatchIgnoreParams, privateCacheNames, canConstructReadableStream, canConstructResponseFromBodyStream, dontWaitFor, executeQuotaErrorCallbacks, getFriendlyURL, logger, resultingClientExists, timeout, waitUntil, } from "serwist/internal";
16
2
  //# sourceMappingURL=index.internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.internal.d.ts","sourceRoot":"","sources":["../src/index.internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,kCAAkC,EAAE,MAAM,kDAAkD,CAAC;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIpD,OAAO,EACL,MAAM,EACN,sBAAsB,EACtB,0BAA0B,EAC1B,kCAAkC,EAClC,QAAQ,EACR,WAAW,EACX,0BAA0B,EAC1B,cAAc,EACd,MAAM,EACN,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,OAAO,EACP,SAAS,GACV,CAAC"}
1
+ {"version":3,"file":"index.internal.d.ts","sourceRoot":"","sources":["../src/index.internal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,sBAAsB,EACtB,iBAAiB,EACjB,0BAA0B,EAC1B,kCAAkC,EAClC,WAAW,EACX,0BAA0B,EAC1B,cAAc,EACd,MAAM,EACN,qBAAqB,EACrB,OAAO,EACP,SAAS,GACV,MAAM,kBAAkB,CAAC"}
@@ -1,120 +1 @@
1
- import { l as logger, q as quotaErrorCallbacks } from './chunks/quotaErrorCallbacks.js';
2
- export { S as SerwistError, f as assert, a as canConstructResponseFromBodyStream, c as privateCacheNames } from './chunks/quotaErrorCallbacks.js';
3
-
4
- class Deferred {
5
- promise;
6
- resolve;
7
- reject;
8
- constructor(){
9
- this.promise = new Promise((resolve, reject)=>{
10
- this.resolve = resolve;
11
- this.reject = reject;
12
- });
13
- }
14
- }
15
-
16
- function stripParams(fullURL, ignoreParams) {
17
- const strippedURL = new URL(fullURL);
18
- for (const param of ignoreParams){
19
- strippedURL.searchParams.delete(param);
20
- }
21
- return strippedURL.href;
22
- }
23
- async function cacheMatchIgnoreParams(cache, request, ignoreParams, matchOptions) {
24
- const strippedRequestURL = stripParams(request.url, ignoreParams);
25
- if (request.url === strippedRequestURL) {
26
- return cache.match(request, matchOptions);
27
- }
28
- const keysOptions = {
29
- ...matchOptions,
30
- ignoreSearch: true
31
- };
32
- const cacheKeys = await cache.keys(request, keysOptions);
33
- for (const cacheKey of cacheKeys){
34
- const strippedCacheKeyURL = stripParams(cacheKey.url, ignoreParams);
35
- if (strippedRequestURL === strippedCacheKeyURL) {
36
- return cache.match(cacheKey, matchOptions);
37
- }
38
- }
39
- return;
40
- }
41
-
42
- let supportStatus;
43
- function canConstructReadableStream() {
44
- if (supportStatus === undefined) {
45
- try {
46
- new ReadableStream({
47
- start () {}
48
- });
49
- supportStatus = true;
50
- } catch (error) {
51
- supportStatus = false;
52
- }
53
- }
54
- return supportStatus;
55
- }
56
-
57
- function dontWaitFor(promise) {
58
- void promise.then(()=>{});
59
- }
60
-
61
- async function executeQuotaErrorCallbacks() {
62
- if (process.env.NODE_ENV !== "production") {
63
- logger.log(`About to run ${quotaErrorCallbacks.size} callbacks to clean up caches.`);
64
- }
65
- for (const callback of quotaErrorCallbacks){
66
- await callback();
67
- if (process.env.NODE_ENV !== "production") {
68
- logger.log(callback, "is complete.");
69
- }
70
- }
71
- if (process.env.NODE_ENV !== "production") {
72
- logger.log("Finished running callbacks.");
73
- }
74
- }
75
-
76
- const getFriendlyURL = (url)=>{
77
- const urlObj = new URL(String(url), location.href);
78
- return urlObj.href.replace(new RegExp(`^${location.origin}`), "");
79
- };
80
-
81
- function timeout(ms) {
82
- return new Promise((resolve)=>setTimeout(resolve, ms));
83
- }
84
-
85
- const MAX_RETRY_TIME = 2000;
86
- async function resultingClientExists(resultingClientId) {
87
- if (!resultingClientId) {
88
- return;
89
- }
90
- let existingWindows = await self.clients.matchAll({
91
- type: "window"
92
- });
93
- const existingWindowIds = new Set(existingWindows.map((w)=>w.id));
94
- let resultingWindow = undefined;
95
- const startTime = performance.now();
96
- while(performance.now() - startTime < MAX_RETRY_TIME){
97
- existingWindows = await self.clients.matchAll({
98
- type: "window"
99
- });
100
- resultingWindow = existingWindows.find((w)=>{
101
- if (resultingClientId) {
102
- return w.id === resultingClientId;
103
- }
104
- return !existingWindowIds.has(w.id);
105
- });
106
- if (resultingWindow) {
107
- break;
108
- }
109
- await timeout(100);
110
- }
111
- return resultingWindow;
112
- }
113
-
114
- const waitUntil = (event, asyncFn)=>{
115
- const returnPromise = asyncFn();
116
- event.waitUntil(returnPromise);
117
- return returnPromise;
118
- };
119
-
120
- export { Deferred, cacheMatchIgnoreParams, canConstructReadableStream, dontWaitFor, executeQuotaErrorCallbacks, getFriendlyURL, logger, resultingClientExists, timeout, waitUntil };
1
+ export { Deferred, SerwistError, assert, cacheMatchIgnoreParams, canConstructReadableStream, canConstructResponseFromBodyStream, dontWaitFor, executeQuotaErrorCallbacks, getFriendlyURL, logger, privateCacheNames, resultingClientExists, timeout, waitUntil } from 'serwist/internal';
package/dist/index.js CHANGED
@@ -1,92 +1,2 @@
1
- import { c as cacheNames$1, S as SerwistError, a as canConstructResponseFromBodyStream, f as finalAssertExports, q as quotaErrorCallbacks, l as logger } from './chunks/quotaErrorCallbacks.js';
2
-
3
- const cacheNames = {
4
- get googleAnalytics () {
5
- return cacheNames$1.getGoogleAnalyticsName();
6
- },
7
- get precache () {
8
- return cacheNames$1.getPrecacheName();
9
- },
10
- get prefix () {
11
- return cacheNames$1.getPrefix();
12
- },
13
- get runtime () {
14
- return cacheNames$1.getRuntimeName();
15
- },
16
- get suffix () {
17
- return cacheNames$1.getSuffix();
18
- }
19
- };
20
-
21
- function clientsClaim() {
22
- self.addEventListener("activate", ()=>self.clients.claim());
23
- }
24
-
25
- async function copyResponse(response, modifier) {
26
- let origin = null;
27
- if (response.url) {
28
- const responseURL = new URL(response.url);
29
- origin = responseURL.origin;
30
- }
31
- if (origin !== self.location.origin) {
32
- throw new SerwistError("cross-origin-copy-response", {
33
- origin
34
- });
35
- }
36
- const clonedResponse = response.clone();
37
- const responseInit = {
38
- headers: new Headers(clonedResponse.headers),
39
- status: clonedResponse.status,
40
- statusText: clonedResponse.statusText
41
- };
42
- const modifiedResponseInit = modifier ? modifier(responseInit) : responseInit;
43
- const body = canConstructResponseFromBodyStream() ? clonedResponse.body : await clonedResponse.blob();
44
- return new Response(body, modifiedResponseInit);
45
- }
46
-
47
- function registerQuotaErrorCallback(callback) {
48
- if (process.env.NODE_ENV !== "production") {
49
- finalAssertExports.isType(callback, "function", {
50
- moduleName: "@serwist/core",
51
- funcName: "register",
52
- paramName: "callback"
53
- });
54
- }
55
- quotaErrorCallbacks.add(callback);
56
- if (process.env.NODE_ENV !== "production") {
57
- logger.log("Registered a callback to respond to quota errors.", callback);
58
- }
59
- }
60
-
61
- function setCacheNameDetails(details) {
62
- if (process.env.NODE_ENV !== "production") {
63
- for (const key of Object.keys(details)){
64
- finalAssertExports.isType(details[key], "string", {
65
- moduleName: "@serwist/core",
66
- funcName: "setCacheNameDetails",
67
- paramName: `details.${key}`
68
- });
69
- }
70
- if (details.precache?.length === 0) {
71
- throw new SerwistError("invalid-cache-name", {
72
- cacheNameId: "precache",
73
- value: details.precache
74
- });
75
- }
76
- if (details.runtime?.length === 0) {
77
- throw new SerwistError("invalid-cache-name", {
78
- cacheNameId: "runtime",
79
- value: details.runtime
80
- });
81
- }
82
- if (details.googleAnalytics?.length === 0) {
83
- throw new SerwistError("invalid-cache-name", {
84
- cacheNameId: "googleAnalytics",
85
- value: details.googleAnalytics
86
- });
87
- }
88
- }
89
- cacheNames$1.updateDetails(details);
90
- }
91
-
92
- export { cacheNames, clientsClaim, copyResponse, registerQuotaErrorCallback, setCacheNameDetails };
1
+ export { cacheNames, copyResponse, registerQuotaErrorCallback, setCacheNameDetails } from 'serwist';
2
+ export { clientsClaim } from 'serwist/internal';
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@serwist/core",
3
- "version": "9.0.0-preview.8",
3
+ "version": "9.0.0",
4
4
  "type": "module",
5
- "description": "This module is used by a number of the other Serwist modules to share common code.",
5
+ "description": "This module was used by a number of the other Serwist modules to share common code.",
6
6
  "files": [
7
7
  "src",
8
8
  "dist"
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "author": "Google's Web DevRel Team, Serwist's Team",
17
17
  "license": "MIT",
18
- "repository": "serwist/serwist",
18
+ "repository": "https://github.com/serwist/serwist",
19
19
  "bugs": "https://github.com/serwist/serwist/issues",
20
20
  "homepage": "https://serwist.pages.dev",
21
21
  "main": "./dist/index.js",
@@ -37,10 +37,13 @@
37
37
  "default": "./dist/index.internal.js"
38
38
  }
39
39
  },
40
+ "dependencies": {
41
+ "serwist": "9.0.0"
42
+ },
40
43
  "devDependencies": {
41
- "rollup": "4.9.6",
42
- "typescript": "5.4.0-dev.20240206",
43
- "@serwist/constants": "9.0.0-preview.8"
44
+ "rollup": "4.14.3",
45
+ "typescript": "5.5.0-dev.20240415",
46
+ "@serwist/configs": "9.0.0"
44
47
  },
45
48
  "peerDependencies": {
46
49
  "typescript": ">=5.0.0"
@@ -1,33 +1,16 @@
1
- import { Deferred } from "./_private/Deferred.js";
2
- import { SerwistError } from "./_private/SerwistError.js";
3
- import { assert } from "./_private/assert.js";
4
- import { cacheMatchIgnoreParams } from "./_private/cacheMatchIgnoreParams.js";
5
- import { cacheNames as privateCacheNames } from "./_private/cacheNames.js";
6
- import { canConstructReadableStream } from "./_private/canConstructReadableStream.js";
7
- import { canConstructResponseFromBodyStream } from "./_private/canConstructResponseFromBodyStream.js";
8
- import { dontWaitFor } from "./_private/dontWaitFor.js";
9
- import { executeQuotaErrorCallbacks } from "./_private/executeQuotaErrorCallbacks.js";
10
- import { getFriendlyURL } from "./_private/getFriendlyURL.js";
11
- import { logger } from "./_private/logger.js";
12
- import { resultingClientExists } from "./_private/resultingClientExists.js";
13
- import { timeout } from "./_private/timeout.js";
14
- import { waitUntil } from "./_private/waitUntil.js";
15
-
16
- // Serwist's internal functions, classes, variables, and more. Feel free to use them,
17
- // but they are not documented. Note: they do follow semver.
18
1
  export {
2
+ Deferred,
3
+ SerwistError,
19
4
  assert,
20
5
  cacheMatchIgnoreParams,
6
+ privateCacheNames,
21
7
  canConstructReadableStream,
22
8
  canConstructResponseFromBodyStream,
23
- Deferred,
24
9
  dontWaitFor,
25
10
  executeQuotaErrorCallbacks,
26
11
  getFriendlyURL,
27
12
  logger,
28
- privateCacheNames,
29
13
  resultingClientExists,
30
- SerwistError,
31
14
  timeout,
32
15
  waitUntil,
33
- };
16
+ } from "serwist/internal";
package/src/index.ts CHANGED
@@ -5,16 +5,46 @@
5
5
  license that can be found in the LICENSE file or at
6
6
  https://opensource.org/licenses/MIT.
7
7
  */
8
- import { cacheNames } from "./cacheNames.js";
9
- import { clientsClaim } from "./clientsClaim.js";
10
- import { copyResponse } from "./copyResponse.js";
11
- import { registerQuotaErrorCallback } from "./registerQuotaErrorCallback.js";
12
- import { setCacheNameDetails } from "./setCacheNameDetails.js";
13
-
14
- /**
15
- * All Serwist libraries use `@serwist/core` for shared code as well as
16
- * setting default values that need to be shared (like cache names).
17
- */
18
- export { cacheNames, clientsClaim, copyResponse, registerQuotaErrorCallback, setCacheNameDetails };
19
-
20
- export type * from "./types.js";
8
+ export { cacheNames, copyResponse, registerQuotaErrorCallback, setCacheNameDetails } from "serwist";
9
+ export { clientsClaim } from "serwist/internal";
10
+ export type {
11
+ PromiseOrNot,
12
+ MapLikeObject,
13
+ PluginState,
14
+ RouteMatchCallbackOptions,
15
+ RouteMatchCallback,
16
+ RouteHandlerCallbackOptions,
17
+ ManualHandlerCallbackOptions,
18
+ HandlerCallbackOptions,
19
+ RouteHandlerCallback,
20
+ ManualHandlerCallback,
21
+ RouteHandlerObject,
22
+ RouteHandler,
23
+ HandlerWillStartCallbackParam,
24
+ HandlerWillStartCallback,
25
+ CacheDidUpdateCallbackParam,
26
+ CacheDidUpdateCallback,
27
+ CacheKeyWillBeUsedCallbackParam,
28
+ CacheKeyWillBeUsedCallback,
29
+ CacheWillUpdateCallbackParam,
30
+ CacheWillUpdateCallback,
31
+ CachedResponseWillBeUsedCallbackParam,
32
+ CachedResponseWillBeUsedCallback,
33
+ FetchDidFailCallbackParam,
34
+ FetchDidFailCallback,
35
+ FetchDidSucceedCallbackParam,
36
+ FetchDidSucceedCallback,
37
+ RequestWillFetchCallbackParam,
38
+ RequestWillFetchCallback,
39
+ HandlerWillRespondCallbackParam,
40
+ HandlerWillRespondCallback,
41
+ HandlerDidErrorCallbackParam,
42
+ HandlerDidErrorCallback,
43
+ HandlerDidRespondCallbackParam,
44
+ HandlerDidRespondCallback,
45
+ HandlerDidCompleteCallbackParam,
46
+ HandlerDidCompleteCallback,
47
+ SerwistPlugin,
48
+ SerwistPluginCallbackParam,
49
+ SerwistGlobalConfig,
50
+ } from "serwist";
@@ -1,19 +0,0 @@
1
- /**
2
- * The Deferred class composes Promises in a way that allows for them to be
3
- * resolved or rejected from outside the constructor. In most cases promises
4
- * should be used directly, but Deferreds can be necessary when the logic to
5
- * resolve a promise must be separate.
6
- *
7
- * @private
8
- */
9
- declare class Deferred<T> {
10
- promise: Promise<T>;
11
- resolve: (value: T) => void;
12
- reject: (reason?: any) => void;
13
- /**
14
- * Creates a promise and exposes its resolve and reject functions as methods.
15
- */
16
- constructor();
17
- }
18
- export { Deferred };
19
- //# sourceMappingURL=Deferred.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Deferred.d.ts","sourceRoot":"","sources":["../../src/_private/Deferred.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,cAAM,QAAQ,CAAC,CAAC;IACd,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,EAAG,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,MAAM,EAAG,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAEhC;;OAEG;;CAOJ;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,25 +0,0 @@
1
- import type { MessageKey } from "../models/messages/messages.js";
2
- import type { MapLikeObject } from "../types.js";
3
- /**
4
- * Serwist errors should be thrown with this class.
5
- * This allows use to ensure the type easily in tests,
6
- * helps developers identify errors from Serwist
7
- * easily and allows use to optimise error
8
- * messages correctly.
9
- *
10
- * @private
11
- */
12
- declare class SerwistError extends Error {
13
- details?: MapLikeObject;
14
- /**
15
- *
16
- * @param errorCode The error code that
17
- * identifies this particular error.
18
- * @param details Any relevant arguments
19
- * that will help developers identify issues should
20
- * be added as a key on the context object.
21
- */
22
- constructor(errorCode: MessageKey, details?: MapLikeObject);
23
- }
24
- export { SerwistError };
25
- //# sourceMappingURL=SerwistError.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SerwistError.d.ts","sourceRoot":"","sources":["../../src/_private/SerwistError.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;;;;;GAQG;AACH,cAAM,YAAa,SAAQ,KAAK;IAC9B,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;;;;;;OAOG;gBACS,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa;CAQ3D;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1,11 +0,0 @@
1
- import type { MapLikeObject } from "../types.js";
2
- declare const finalAssertExports: {
3
- hasMethod: (object: MapLikeObject, expectedMethod: string, details: MapLikeObject) => void;
4
- isArray: (value: any[], details: MapLikeObject) => void;
5
- isInstance: (object: unknown, expectedClass: Function, details: MapLikeObject) => void;
6
- isOneOf: (value: any, validValues: any[], details: MapLikeObject) => void;
7
- isType: (object: unknown, expectedType: string, details: MapLikeObject) => void;
8
- isArrayOfClass: (value: any, expectedClass: Function, details: MapLikeObject) => void;
9
- } | null;
10
- export { finalAssertExports as assert };
11
- //# sourceMappingURL=assert.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/_private/assert.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAmEjD,QAAA,MAAM,kBAAkB;wBArDG,aAAa,kBAAkB,MAAM,WAAW,aAAa;qBANhE,GAAG,EAAE,WAAW,aAAa;yBAuB3C,OAAO,iBAEA,QAAQ,WACd,aAAa;qBAQA,GAAG,eAAe,GAAG,EAAE,WAAW,aAAa;qBApB/C,OAAO,gBAAgB,MAAM,WAAW,aAAa;4BA4BpE,GAAG,iBAEK,QAAQ,WACd,aAAa;QAwBjB,CAAC;AAER,OAAO,EAAE,kBAAkB,IAAI,MAAM,EAAE,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Matches an item in the cache, ignoring specific URL params. This is similar
3
- * to the `ignoreSearch` option, but it allows you to ignore just specific
4
- * params (while continuing to match on the others).
5
- *
6
- * @private
7
- * @param cache
8
- * @param request
9
- * @param matchOptions
10
- * @param ignoreParams
11
- * @returns
12
- */
13
- declare function cacheMatchIgnoreParams(cache: Cache, request: Request, ignoreParams: string[], matchOptions?: CacheQueryOptions): Promise<Response | undefined>;
14
- export { cacheMatchIgnoreParams };
15
- //# sourceMappingURL=cacheMatchIgnoreParams.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cacheMatchIgnoreParams.d.ts","sourceRoot":"","sources":["../../src/_private/cacheMatchIgnoreParams.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;GAWG;AACH,iBAAe,sBAAsB,CACnC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAmB/B;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -1,40 +0,0 @@
1
- export interface CacheNameDetails {
2
- googleAnalytics: string;
3
- precache: string;
4
- prefix: string;
5
- runtime: string;
6
- suffix: string;
7
- }
8
- export interface PartialCacheNameDetails {
9
- /**
10
- * The string to add to the beginning of the precache and runtime cache names.
11
- */
12
- prefix?: string;
13
- /**
14
- * The string to add to the end of the precache and runtime cache names.
15
- */
16
- suffix?: string;
17
- /**
18
- * The cache name to use for precache caching.
19
- */
20
- precache?: string;
21
- /**
22
- * The cache name to use for runtime caching.
23
- */
24
- runtime?: string;
25
- /**
26
- * The cache name to use for `@serwist/google-analytics` caching.
27
- */
28
- googleAnalytics?: string;
29
- [propName: string]: string | undefined;
30
- }
31
- export type CacheNameDetailsProp = "googleAnalytics" | "precache" | "prefix" | "runtime" | "suffix";
32
- export declare const cacheNames: {
33
- updateDetails: (details: PartialCacheNameDetails) => void;
34
- getGoogleAnalyticsName: (userCacheName?: string) => string;
35
- getPrecacheName: (userCacheName?: string) => string;
36
- getPrefix: () => string;
37
- getRuntimeName: (userCacheName?: string) => string;
38
- getSuffix: () => string;
39
- };
40
- //# sourceMappingURL=cacheNames.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cacheNames.d.ts","sourceRoot":"","sources":["../../src/_private/cacheNames.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAoBpG,eAAO,MAAM,UAAU;6BACI,uBAAuB,KAAG,IAAI;6CAQd,MAAM,KAAG,MAAM;sCAGtB,MAAM,KAAG,MAAM;qBAGlC,MAAM;qCAGY,MAAM,KAAG,MAAM;qBAGjC,MAAM;CAGtB,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * A utility function that determines whether the current browser supports
3
- * constructing a [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/ReadableStream)
4
- * object.
5
- *
6
- * @returns `true`, if the current browser can successfully construct a `ReadableStream`, `false` otherwise.
7
- *
8
- * @private
9
- */
10
- declare function canConstructReadableStream(): boolean;
11
- export { canConstructReadableStream };
12
- //# sourceMappingURL=canConstructReadableStream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"canConstructReadableStream.d.ts","sourceRoot":"","sources":["../../src/_private/canConstructReadableStream.ts"],"names":[],"mappings":"AAUA;;;;;;;;GAQG;AACH,iBAAS,0BAA0B,IAAI,OAAO,CAY7C;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * A utility function that determines whether the current browser supports
3
- * constructing a new `Response` from a `response.body` stream.
4
- *
5
- * @returns `true`, if the current browser can successfully construct
6
- * a `Response` from a `response.body` stream, `false` otherwise.
7
- * @private
8
- */
9
- declare function canConstructResponseFromBodyStream(): boolean;
10
- export { canConstructResponseFromBodyStream };
11
- //# sourceMappingURL=canConstructResponseFromBodyStream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"canConstructResponseFromBodyStream.d.ts","sourceRoot":"","sources":["../../src/_private/canConstructResponseFromBodyStream.ts"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,iBAAS,kCAAkC,IAAI,OAAO,CAgBrD;AAED,OAAO,EAAE,kCAAkC,EAAE,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * A helper function that prevents a promise from being flagged as unused.
3
- *
4
- * @private
5
- **/
6
- export declare function dontWaitFor(promise: Promise<any>): void;
7
- //# sourceMappingURL=dontWaitFor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dontWaitFor.d.ts","sourceRoot":"","sources":["../../src/_private/dontWaitFor.ts"],"names":[],"mappings":"AAOA;;;;IAII;AACJ,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAGvD"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Runs all of the callback functions, one at a time sequentially, in the order
3
- * in which they were registered.
4
- *
5
- * @private
6
- */
7
- declare function executeQuotaErrorCallbacks(): Promise<void>;
8
- export { executeQuotaErrorCallbacks };
9
- //# sourceMappingURL=executeQuotaErrorCallbacks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executeQuotaErrorCallbacks.d.ts","sourceRoot":"","sources":["../../src/_private/executeQuotaErrorCallbacks.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,iBAAe,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CAezD;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
@@ -1,3 +0,0 @@
1
- declare const getFriendlyURL: (url: URL | string) => string;
2
- export { getFriendlyURL };
3
- //# sourceMappingURL=getFriendlyURL.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFriendlyURL.d.ts","sourceRoot":"","sources":["../../src/_private/getFriendlyURL.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,cAAc,QAAS,GAAG,GAAG,MAAM,KAAG,MAK3C,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -1,24 +0,0 @@
1
- declare global {
2
- interface WorkerGlobalScope {
3
- __WB_DISABLE_DEV_LOGS: boolean;
4
- }
5
- interface Window {
6
- __WB_DISABLE_DEV_LOGS: boolean;
7
- }
8
- }
9
- /**
10
- * The logger used by Serwist inside of both service workers and the window global scope.
11
- *
12
- * Note: This is forcibly `null` in production mode to reduce bundle size. Do check whether
13
- * you are currently in development mode (by using `process.env.NODE_ENV !== "production"`)
14
- * before using it.
15
- */
16
- export declare const logger: {
17
- error: (...args: any[]) => void;
18
- debug: (...args: any[]) => void;
19
- log: (...args: any[]) => void;
20
- warn: (...args: any[]) => void;
21
- groupCollapsed: (...args: any[]) => void;
22
- groupEnd: (...args: any[]) => void;
23
- };
24
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/_private/logger.ts"],"names":[],"mappings":"AAQA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,iBAAiB;QACzB,qBAAqB,EAAE,OAAO,CAAC;KAChC;IAED,UAAU,MAAM;QACd,qBAAqB,EAAE,OAAO,CAAC;KAChC;CACF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,MAAM;qBAmEoC,GAAG,EAAE,KAAK,IAAI;qBAAd,GAAG,EAAE,KAAK,IAAI;mBAAd,GAAG,EAAE,KAAK,IAAI;oBAAd,GAAG,EAAE,KAAK,IAAI;8BAAd,GAAG,EAAE,KAAK,IAAI;wBAAd,GAAG,EAAE,KAAK,IAAI;CAE3D,CAAC"}