@netlify/cache 1.3.0 → 1.5.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/bootstrap/main.cjs +20 -1
- package/dist/bootstrap/main.js +45 -11
- package/dist/main.cjs +17 -0
- package/dist/main.d.cts +22 -1
- package/dist/main.d.ts +22 -1
- package/dist/main.js +18 -7
- package/package.json +1 -1
- package/dist/chunk-I5FZDZ6V.js +0 -46
package/dist/bootstrap/main.cjs
CHANGED
|
@@ -43,7 +43,21 @@ __export(main_exports, {
|
|
|
43
43
|
});
|
|
44
44
|
module.exports = __toCommonJS(main_exports);
|
|
45
45
|
|
|
46
|
+
// src/bootstrap/errors.ts
|
|
47
|
+
var ERROR_CODES = {
|
|
48
|
+
invalid_vary: "Responses must not use unsupported directives of the `Netlify-Vary` header (https://ntl.fyi/cache_api_invalid_vary).",
|
|
49
|
+
no_cache: "Responses must not set cache control headers with the `private`, `no-cache` or `no-store` directives (https://ntl.fyi/cache_api_no_cache).",
|
|
50
|
+
low_ttl: "Responses must have a cache control header with a `max-age` or `s-maxage` directive (https://ntl.fyi/cache_api_low_ttl).",
|
|
51
|
+
no_directive: "Responses must have a cache control header with caching directives (https://ntl.fyi/cache_api_no_directive).",
|
|
52
|
+
no_ttl: "Responses must have a cache control header with a `max-age` or `s-maxage` directive (https://ntl.fyi/cache_api_no_ttl).",
|
|
53
|
+
no_status: "Responses must specify a status code (https://ntl.fyi/cache_api_no_status).",
|
|
54
|
+
invalid_directive: "Responses must have a cache control header with caching directives (https://ntl.fyi/cache_api_invalid_directive).",
|
|
55
|
+
status: "Responses must have a status code between 200 and 299 (https://ntl.fyi/cache_api_status)."
|
|
56
|
+
};
|
|
57
|
+
var GENERIC_ERROR = "The server has returned an unexpected error (https://ntl.fyi/cache_api_error).";
|
|
58
|
+
|
|
46
59
|
// src/headers.ts
|
|
60
|
+
var ErrorDetail = "netlify-programmable-error";
|
|
47
61
|
var ResourceHeaders = "netlify-programmable-headers";
|
|
48
62
|
var ResourceStatus = "netlify-programmable-status";
|
|
49
63
|
var ResourceStore = "netlify-programmable-store";
|
|
@@ -155,7 +169,7 @@ var NetlifyCache = class {
|
|
|
155
169
|
}
|
|
156
170
|
const context = __privateGet(this, _getContext).call(this);
|
|
157
171
|
const resourceURL = extractAndValidateURL(request);
|
|
158
|
-
await fetch(`${context.url}/${toCacheKey(resourceURL)}`, {
|
|
172
|
+
const cacheResponse = await fetch(`${context.url}/${toCacheKey(resourceURL)}`, {
|
|
159
173
|
body: response.body,
|
|
160
174
|
headers: {
|
|
161
175
|
...this[getInternalHeaders](context),
|
|
@@ -166,6 +180,11 @@ var NetlifyCache = class {
|
|
|
166
180
|
duplex: "half",
|
|
167
181
|
method: "POST"
|
|
168
182
|
});
|
|
183
|
+
if (!cacheResponse.ok) {
|
|
184
|
+
const errorDetail = cacheResponse.headers.get(ErrorDetail) ?? "";
|
|
185
|
+
const errorMessage = ERROR_CODES[errorDetail] || GENERIC_ERROR;
|
|
186
|
+
console.warn(`Failed to write to the cache: ${errorMessage}`);
|
|
187
|
+
}
|
|
169
188
|
}
|
|
170
189
|
};
|
|
171
190
|
_base64Encode = new WeakMap();
|
package/dist/bootstrap/main.js
CHANGED
|
@@ -1,13 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
var __accessCheck = (obj, member, msg) => {
|
|
2
|
+
if (!member.has(obj))
|
|
3
|
+
throw TypeError("Cannot " + msg);
|
|
4
|
+
};
|
|
5
|
+
var __privateGet = (obj, member, getter) => {
|
|
6
|
+
__accessCheck(obj, member, "read from private field");
|
|
7
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
8
|
+
};
|
|
9
|
+
var __privateAdd = (obj, member, value) => {
|
|
10
|
+
if (member.has(obj))
|
|
11
|
+
throw TypeError("Cannot add the same private member more than once");
|
|
12
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
13
|
+
};
|
|
14
|
+
var __privateSet = (obj, member, value, setter) => {
|
|
15
|
+
__accessCheck(obj, member, "write to private field");
|
|
16
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
17
|
+
return value;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
// src/bootstrap/errors.ts
|
|
21
|
+
var ERROR_CODES = {
|
|
22
|
+
invalid_vary: "Responses must not use unsupported directives of the `Netlify-Vary` header (https://ntl.fyi/cache_api_invalid_vary).",
|
|
23
|
+
no_cache: "Responses must not set cache control headers with the `private`, `no-cache` or `no-store` directives (https://ntl.fyi/cache_api_no_cache).",
|
|
24
|
+
low_ttl: "Responses must have a cache control header with a `max-age` or `s-maxage` directive (https://ntl.fyi/cache_api_low_ttl).",
|
|
25
|
+
no_directive: "Responses must have a cache control header with caching directives (https://ntl.fyi/cache_api_no_directive).",
|
|
26
|
+
no_ttl: "Responses must have a cache control header with a `max-age` or `s-maxage` directive (https://ntl.fyi/cache_api_no_ttl).",
|
|
27
|
+
no_status: "Responses must specify a status code (https://ntl.fyi/cache_api_no_status).",
|
|
28
|
+
invalid_directive: "Responses must have a cache control header with caching directives (https://ntl.fyi/cache_api_invalid_directive).",
|
|
29
|
+
status: "Responses must have a status code between 200 and 299 (https://ntl.fyi/cache_api_status)."
|
|
30
|
+
};
|
|
31
|
+
var GENERIC_ERROR = "The server has returned an unexpected error (https://ntl.fyi/cache_api_error).";
|
|
32
|
+
|
|
33
|
+
// src/headers.ts
|
|
34
|
+
var ErrorDetail = "netlify-programmable-error";
|
|
35
|
+
var ResourceHeaders = "netlify-programmable-headers";
|
|
36
|
+
var ResourceStatus = "netlify-programmable-status";
|
|
37
|
+
var ResourceStore = "netlify-programmable-store";
|
|
38
|
+
var NetlifyForwardedHost = "netlify-forwarded-host";
|
|
39
|
+
var UserAgent = "user-agent";
|
|
11
40
|
|
|
12
41
|
// src/bootstrap/cache.ts
|
|
13
42
|
var allowedProtocols = /* @__PURE__ */ new Set(["http:", "https:"]);
|
|
@@ -114,7 +143,7 @@ var NetlifyCache = class {
|
|
|
114
143
|
}
|
|
115
144
|
const context = __privateGet(this, _getContext).call(this);
|
|
116
145
|
const resourceURL = extractAndValidateURL(request);
|
|
117
|
-
await fetch(`${context.url}/${toCacheKey(resourceURL)}`, {
|
|
146
|
+
const cacheResponse = await fetch(`${context.url}/${toCacheKey(resourceURL)}`, {
|
|
118
147
|
body: response.body,
|
|
119
148
|
headers: {
|
|
120
149
|
...this[getInternalHeaders](context),
|
|
@@ -125,6 +154,11 @@ var NetlifyCache = class {
|
|
|
125
154
|
duplex: "half",
|
|
126
155
|
method: "POST"
|
|
127
156
|
});
|
|
157
|
+
if (!cacheResponse.ok) {
|
|
158
|
+
const errorDetail = cacheResponse.headers.get(ErrorDetail) ?? "";
|
|
159
|
+
const errorMessage = ERROR_CODES[errorDetail] || GENERIC_ERROR;
|
|
160
|
+
console.warn(`Failed to write to the cache: ${errorMessage}`);
|
|
161
|
+
}
|
|
128
162
|
}
|
|
129
163
|
};
|
|
130
164
|
_base64Encode = new WeakMap();
|
package/dist/main.cjs
CHANGED
|
@@ -20,6 +20,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/main.ts
|
|
21
21
|
var main_exports = {};
|
|
22
22
|
__export(main_exports, {
|
|
23
|
+
DAY: () => DAY,
|
|
24
|
+
HOUR: () => HOUR,
|
|
25
|
+
MINUTE: () => MINUTE,
|
|
26
|
+
WEEK: () => WEEK,
|
|
27
|
+
YEAR: () => YEAR,
|
|
23
28
|
fetchWithCache: () => fetchWithCache,
|
|
24
29
|
getCacheStatus: () => getCacheStatus,
|
|
25
30
|
setCacheHeaders: () => setCacheHeaders
|
|
@@ -290,8 +295,20 @@ var fetchWithCache = async (request, optionsOrCacheSettings, cacheOptionsParam)
|
|
|
290
295
|
}
|
|
291
296
|
return fresh;
|
|
292
297
|
};
|
|
298
|
+
|
|
299
|
+
// src/constants.ts
|
|
300
|
+
var MINUTE = 60;
|
|
301
|
+
var HOUR = 60 * MINUTE;
|
|
302
|
+
var DAY = 24 * HOUR;
|
|
303
|
+
var WEEK = 7 * DAY;
|
|
304
|
+
var YEAR = 365 * DAY;
|
|
293
305
|
// Annotate the CommonJS export names for ESM import in node:
|
|
294
306
|
0 && (module.exports = {
|
|
307
|
+
DAY,
|
|
308
|
+
HOUR,
|
|
309
|
+
MINUTE,
|
|
310
|
+
WEEK,
|
|
311
|
+
YEAR,
|
|
295
312
|
fetchWithCache,
|
|
296
313
|
getCacheStatus,
|
|
297
314
|
setCacheHeaders
|
package/dist/main.d.cts
CHANGED
|
@@ -153,4 +153,25 @@ type FetchWithCache = {
|
|
|
153
153
|
*/
|
|
154
154
|
declare const fetchWithCache: FetchWithCache;
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
/**
|
|
157
|
+
* Number of seconds in one minute.
|
|
158
|
+
*/
|
|
159
|
+
declare const MINUTE = 60;
|
|
160
|
+
/**
|
|
161
|
+
* Number of seconds in one hour.
|
|
162
|
+
*/
|
|
163
|
+
declare const HOUR: number;
|
|
164
|
+
/**
|
|
165
|
+
* Number of seconds in one day.
|
|
166
|
+
*/
|
|
167
|
+
declare const DAY: number;
|
|
168
|
+
/**
|
|
169
|
+
* Number of seconds in one week.
|
|
170
|
+
*/
|
|
171
|
+
declare const WEEK: number;
|
|
172
|
+
/**
|
|
173
|
+
* Number of seconds in one year.
|
|
174
|
+
*/
|
|
175
|
+
declare const YEAR: number;
|
|
176
|
+
|
|
177
|
+
export { DAY, HOUR, MINUTE, WEEK, YEAR, fetchWithCache, getCacheStatus, setCacheHeaders };
|
package/dist/main.d.ts
CHANGED
|
@@ -153,4 +153,25 @@ type FetchWithCache = {
|
|
|
153
153
|
*/
|
|
154
154
|
declare const fetchWithCache: FetchWithCache;
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
/**
|
|
157
|
+
* Number of seconds in one minute.
|
|
158
|
+
*/
|
|
159
|
+
declare const MINUTE = 60;
|
|
160
|
+
/**
|
|
161
|
+
* Number of seconds in one hour.
|
|
162
|
+
*/
|
|
163
|
+
declare const HOUR: number;
|
|
164
|
+
/**
|
|
165
|
+
* Number of seconds in one day.
|
|
166
|
+
*/
|
|
167
|
+
declare const DAY: number;
|
|
168
|
+
/**
|
|
169
|
+
* Number of seconds in one week.
|
|
170
|
+
*/
|
|
171
|
+
declare const WEEK: number;
|
|
172
|
+
/**
|
|
173
|
+
* Number of seconds in one year.
|
|
174
|
+
*/
|
|
175
|
+
declare const YEAR: number;
|
|
176
|
+
|
|
177
|
+
export { DAY, HOUR, MINUTE, WEEK, YEAR, fetchWithCache, getCacheStatus, setCacheHeaders };
|
package/dist/main.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} from "./chunk-I5FZDZ6V.js";
|
|
1
|
+
// src/headers.ts
|
|
2
|
+
var CacheStatus = "cache-status";
|
|
3
|
+
var NetlifyCacheId = "netlify-cache-id";
|
|
4
|
+
var NetlifyCacheTag = "netlify-cache-tag";
|
|
5
|
+
var NetlifyCdnCacheControl = "netlify-cdn-cache-control";
|
|
6
|
+
var NetlifyVary = "netlify-vary";
|
|
8
7
|
|
|
9
8
|
// src/cache-headers/validation.ts
|
|
10
9
|
var ensureArray = (value) => Array.isArray(value) ? value : [value];
|
|
@@ -263,7 +262,19 @@ var fetchWithCache = async (request, optionsOrCacheSettings, cacheOptionsParam)
|
|
|
263
262
|
}
|
|
264
263
|
return fresh;
|
|
265
264
|
};
|
|
265
|
+
|
|
266
|
+
// src/constants.ts
|
|
267
|
+
var MINUTE = 60;
|
|
268
|
+
var HOUR = 60 * MINUTE;
|
|
269
|
+
var DAY = 24 * HOUR;
|
|
270
|
+
var WEEK = 7 * DAY;
|
|
271
|
+
var YEAR = 365 * DAY;
|
|
266
272
|
export {
|
|
273
|
+
DAY,
|
|
274
|
+
HOUR,
|
|
275
|
+
MINUTE,
|
|
276
|
+
WEEK,
|
|
277
|
+
YEAR,
|
|
267
278
|
fetchWithCache,
|
|
268
279
|
getCacheStatus,
|
|
269
280
|
setCacheHeaders
|
package/package.json
CHANGED
package/dist/chunk-I5FZDZ6V.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
var __accessCheck = (obj, member, msg) => {
|
|
2
|
-
if (!member.has(obj))
|
|
3
|
-
throw TypeError("Cannot " + msg);
|
|
4
|
-
};
|
|
5
|
-
var __privateGet = (obj, member, getter) => {
|
|
6
|
-
__accessCheck(obj, member, "read from private field");
|
|
7
|
-
return getter ? getter.call(obj) : member.get(obj);
|
|
8
|
-
};
|
|
9
|
-
var __privateAdd = (obj, member, value) => {
|
|
10
|
-
if (member.has(obj))
|
|
11
|
-
throw TypeError("Cannot add the same private member more than once");
|
|
12
|
-
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
13
|
-
};
|
|
14
|
-
var __privateSet = (obj, member, value, setter) => {
|
|
15
|
-
__accessCheck(obj, member, "write to private field");
|
|
16
|
-
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
17
|
-
return value;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
// src/headers.ts
|
|
21
|
-
var CacheStatus = "cache-status";
|
|
22
|
-
var NetlifyCacheId = "netlify-cache-id";
|
|
23
|
-
var NetlifyCacheTag = "netlify-cache-tag";
|
|
24
|
-
var NetlifyCdnCacheControl = "netlify-cdn-cache-control";
|
|
25
|
-
var NetlifyVary = "netlify-vary";
|
|
26
|
-
var ResourceHeaders = "netlify-programmable-headers";
|
|
27
|
-
var ResourceStatus = "netlify-programmable-status";
|
|
28
|
-
var ResourceStore = "netlify-programmable-store";
|
|
29
|
-
var NetlifyForwardedHost = "netlify-forwarded-host";
|
|
30
|
-
var UserAgent = "user-agent";
|
|
31
|
-
|
|
32
|
-
export {
|
|
33
|
-
__privateGet,
|
|
34
|
-
__privateAdd,
|
|
35
|
-
__privateSet,
|
|
36
|
-
CacheStatus,
|
|
37
|
-
NetlifyCacheId,
|
|
38
|
-
NetlifyCacheTag,
|
|
39
|
-
NetlifyCdnCacheControl,
|
|
40
|
-
NetlifyVary,
|
|
41
|
-
ResourceHeaders,
|
|
42
|
-
ResourceStatus,
|
|
43
|
-
ResourceStore,
|
|
44
|
-
NetlifyForwardedHost,
|
|
45
|
-
UserAgent
|
|
46
|
-
};
|