@netlify/cache 1.8.2 → 1.10.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 +19 -30
- package/dist/bootstrap/main.d.cts +3 -3
- package/dist/bootstrap/main.d.ts +3 -3
- package/dist/bootstrap/main.js +18 -29
- package/dist/{cache-7af07baa.d.ts → cache-Boq7iRAh.d.cts} +8 -10
- package/dist/cache-Boq7iRAh.d.ts +40 -0
- package/dist/main.cjs +15 -4
- package/dist/main.d.cts +1 -1
- package/dist/main.d.ts +1 -1
- package/dist/main.js +15 -4
- package/package.json +7 -3
package/dist/bootstrap/main.cjs
CHANGED
|
@@ -3,6 +3,9 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __typeError = (msg) => {
|
|
7
|
+
throw TypeError(msg);
|
|
8
|
+
};
|
|
6
9
|
var __export = (target, all) => {
|
|
7
10
|
for (var name in all)
|
|
8
11
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -16,24 +19,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
19
|
return to;
|
|
17
20
|
};
|
|
18
21
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var __accessCheck = (obj, member, msg) =>
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
var __privateGet = (obj, member, getter) => {
|
|
24
|
-
__accessCheck(obj, member, "read from private field");
|
|
25
|
-
return getter ? getter.call(obj) : member.get(obj);
|
|
26
|
-
};
|
|
27
|
-
var __privateAdd = (obj, member, value) => {
|
|
28
|
-
if (member.has(obj))
|
|
29
|
-
throw TypeError("Cannot add the same private member more than once");
|
|
30
|
-
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
31
|
-
};
|
|
32
|
-
var __privateSet = (obj, member, value, setter) => {
|
|
33
|
-
__accessCheck(obj, member, "write to private field");
|
|
34
|
-
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
35
|
-
return value;
|
|
36
|
-
};
|
|
22
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
23
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
24
|
+
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
25
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
37
26
|
|
|
38
27
|
// src/bootstrap/main.ts
|
|
39
28
|
var main_exports = {};
|
|
@@ -52,6 +41,9 @@ var Operation = /* @__PURE__ */ ((Operation2) => {
|
|
|
52
41
|
return Operation2;
|
|
53
42
|
})(Operation || {});
|
|
54
43
|
|
|
44
|
+
// src/bootstrap/cache.ts
|
|
45
|
+
var import_runtime_utils = require("@netlify/runtime-utils");
|
|
46
|
+
|
|
55
47
|
// src/bootstrap/errors.ts
|
|
56
48
|
var ERROR_CODES = {
|
|
57
49
|
invalid_vary: "Responses must not use unsupported directives of the `Netlify-Vary` header (https://ntl.fyi/cache_api_invalid_vary).",
|
|
@@ -78,14 +70,12 @@ var allowedProtocols = /* @__PURE__ */ new Set(["http:", "https:"]);
|
|
|
78
70
|
var discardedHeaders = /* @__PURE__ */ new Set(["cookie", "content-encoding", "content-length"]);
|
|
79
71
|
var getInternalHeaders = Symbol("getInternalHeaders");
|
|
80
72
|
var serializeResourceHeaders = Symbol("serializeResourceHeaders");
|
|
81
|
-
var
|
|
73
|
+
var _getContext, _name, _userAgent;
|
|
82
74
|
var NetlifyCache = class {
|
|
83
|
-
constructor({
|
|
84
|
-
__privateAdd(this,
|
|
85
|
-
__privateAdd(this,
|
|
86
|
-
__privateAdd(this,
|
|
87
|
-
__privateAdd(this, _userAgent, void 0);
|
|
88
|
-
__privateSet(this, _base64Encode, base64Encode);
|
|
75
|
+
constructor({ getContext, name, userAgent }) {
|
|
76
|
+
__privateAdd(this, _getContext);
|
|
77
|
+
__privateAdd(this, _name);
|
|
78
|
+
__privateAdd(this, _userAgent);
|
|
89
79
|
__privateSet(this, _getContext, getContext);
|
|
90
80
|
__privateSet(this, _name, name);
|
|
91
81
|
__privateSet(this, _userAgent, userAgent);
|
|
@@ -117,7 +107,7 @@ var NetlifyCache = class {
|
|
|
117
107
|
headersMap[key] = value.split(",");
|
|
118
108
|
}
|
|
119
109
|
});
|
|
120
|
-
return
|
|
110
|
+
return (0, import_runtime_utils.base64Encode)(JSON.stringify(headersMap));
|
|
121
111
|
}
|
|
122
112
|
async add(request) {
|
|
123
113
|
await this.put(new Request(request), await fetch(request));
|
|
@@ -198,13 +188,12 @@ var NetlifyCache = class {
|
|
|
198
188
|
method: "POST"
|
|
199
189
|
});
|
|
200
190
|
if (!cacheResponse.ok) {
|
|
201
|
-
const errorDetail = cacheResponse.headers
|
|
191
|
+
const errorDetail = cacheResponse.headers?.get(ErrorDetail) ?? "";
|
|
202
192
|
const errorMessage = ERROR_CODES[errorDetail] || GENERIC_ERROR;
|
|
203
193
|
context.logger?.(`Failed to write to the cache: ${errorMessage}`);
|
|
204
194
|
}
|
|
205
195
|
}
|
|
206
196
|
};
|
|
207
|
-
_base64Encode = new WeakMap();
|
|
208
197
|
_getContext = new WeakMap();
|
|
209
198
|
_name = new WeakMap();
|
|
210
199
|
_userAgent = new WeakMap();
|
|
@@ -234,8 +223,8 @@ var toCacheKey = (url) => encodeURIComponent(url.toString());
|
|
|
234
223
|
var _environmentOptions, _stores;
|
|
235
224
|
var NetlifyCacheStorage = class {
|
|
236
225
|
constructor(environmentOptions) {
|
|
237
|
-
__privateAdd(this, _environmentOptions
|
|
238
|
-
__privateAdd(this, _stores
|
|
226
|
+
__privateAdd(this, _environmentOptions);
|
|
227
|
+
__privateAdd(this, _stores);
|
|
239
228
|
__privateSet(this, _environmentOptions, environmentOptions);
|
|
240
229
|
__privateSet(this, _stores, /* @__PURE__ */ new Map());
|
|
241
230
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { E as EnvironmentOptions } from '../cache-
|
|
2
|
-
export {
|
|
1
|
+
import { E as EnvironmentOptions } from '../cache-Boq7iRAh.cjs';
|
|
2
|
+
export { N as NetlifyCache, O as Operation, R as RequestContextFactory } from '../cache-Boq7iRAh.cjs';
|
|
3
3
|
|
|
4
4
|
declare class NetlifyCacheStorage {
|
|
5
5
|
#private;
|
|
@@ -8,7 +8,7 @@ declare class NetlifyCacheStorage {
|
|
|
8
8
|
has(name: string): Promise<boolean>;
|
|
9
9
|
delete(name: string): Promise<boolean>;
|
|
10
10
|
keys(): Promise<string[]>;
|
|
11
|
-
match(request: RequestInfo, options?: MultiCacheQueryOptions): Promise<Response | undefined>;
|
|
11
|
+
match(request: RequestInfo | URL, options?: MultiCacheQueryOptions): Promise<Response | undefined>;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export { NetlifyCacheStorage };
|
package/dist/bootstrap/main.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { E as EnvironmentOptions } from '../cache-
|
|
2
|
-
export {
|
|
1
|
+
import { E as EnvironmentOptions } from '../cache-Boq7iRAh.js';
|
|
2
|
+
export { N as NetlifyCache, O as Operation, R as RequestContextFactory } from '../cache-Boq7iRAh.js';
|
|
3
3
|
|
|
4
4
|
declare class NetlifyCacheStorage {
|
|
5
5
|
#private;
|
|
@@ -8,7 +8,7 @@ declare class NetlifyCacheStorage {
|
|
|
8
8
|
has(name: string): Promise<boolean>;
|
|
9
9
|
delete(name: string): Promise<boolean>;
|
|
10
10
|
keys(): Promise<string[]>;
|
|
11
|
-
match(request: RequestInfo, options?: MultiCacheQueryOptions): Promise<Response | undefined>;
|
|
11
|
+
match(request: RequestInfo | URL, options?: MultiCacheQueryOptions): Promise<Response | undefined>;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export { NetlifyCacheStorage };
|
package/dist/bootstrap/main.js
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
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;
|
|
1
|
+
var __typeError = (msg) => {
|
|
2
|
+
throw TypeError(msg);
|
|
18
3
|
};
|
|
4
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
5
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
6
|
+
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
7
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
19
8
|
|
|
20
9
|
// src/bootstrap/environment.ts
|
|
21
10
|
var Operation = /* @__PURE__ */ ((Operation2) => {
|
|
@@ -25,6 +14,9 @@ var Operation = /* @__PURE__ */ ((Operation2) => {
|
|
|
25
14
|
return Operation2;
|
|
26
15
|
})(Operation || {});
|
|
27
16
|
|
|
17
|
+
// src/bootstrap/cache.ts
|
|
18
|
+
import { base64Encode } from "@netlify/runtime-utils";
|
|
19
|
+
|
|
28
20
|
// src/bootstrap/errors.ts
|
|
29
21
|
var ERROR_CODES = {
|
|
30
22
|
invalid_vary: "Responses must not use unsupported directives of the `Netlify-Vary` header (https://ntl.fyi/cache_api_invalid_vary).",
|
|
@@ -51,14 +43,12 @@ var allowedProtocols = /* @__PURE__ */ new Set(["http:", "https:"]);
|
|
|
51
43
|
var discardedHeaders = /* @__PURE__ */ new Set(["cookie", "content-encoding", "content-length"]);
|
|
52
44
|
var getInternalHeaders = Symbol("getInternalHeaders");
|
|
53
45
|
var serializeResourceHeaders = Symbol("serializeResourceHeaders");
|
|
54
|
-
var
|
|
46
|
+
var _getContext, _name, _userAgent;
|
|
55
47
|
var NetlifyCache = class {
|
|
56
|
-
constructor({
|
|
57
|
-
__privateAdd(this,
|
|
58
|
-
__privateAdd(this,
|
|
59
|
-
__privateAdd(this,
|
|
60
|
-
__privateAdd(this, _userAgent, void 0);
|
|
61
|
-
__privateSet(this, _base64Encode, base64Encode);
|
|
48
|
+
constructor({ getContext, name, userAgent }) {
|
|
49
|
+
__privateAdd(this, _getContext);
|
|
50
|
+
__privateAdd(this, _name);
|
|
51
|
+
__privateAdd(this, _userAgent);
|
|
62
52
|
__privateSet(this, _getContext, getContext);
|
|
63
53
|
__privateSet(this, _name, name);
|
|
64
54
|
__privateSet(this, _userAgent, userAgent);
|
|
@@ -90,7 +80,7 @@ var NetlifyCache = class {
|
|
|
90
80
|
headersMap[key] = value.split(",");
|
|
91
81
|
}
|
|
92
82
|
});
|
|
93
|
-
return
|
|
83
|
+
return base64Encode(JSON.stringify(headersMap));
|
|
94
84
|
}
|
|
95
85
|
async add(request) {
|
|
96
86
|
await this.put(new Request(request), await fetch(request));
|
|
@@ -171,13 +161,12 @@ var NetlifyCache = class {
|
|
|
171
161
|
method: "POST"
|
|
172
162
|
});
|
|
173
163
|
if (!cacheResponse.ok) {
|
|
174
|
-
const errorDetail = cacheResponse.headers
|
|
164
|
+
const errorDetail = cacheResponse.headers?.get(ErrorDetail) ?? "";
|
|
175
165
|
const errorMessage = ERROR_CODES[errorDetail] || GENERIC_ERROR;
|
|
176
166
|
context.logger?.(`Failed to write to the cache: ${errorMessage}`);
|
|
177
167
|
}
|
|
178
168
|
}
|
|
179
169
|
};
|
|
180
|
-
_base64Encode = new WeakMap();
|
|
181
170
|
_getContext = new WeakMap();
|
|
182
171
|
_name = new WeakMap();
|
|
183
172
|
_userAgent = new WeakMap();
|
|
@@ -207,8 +196,8 @@ var toCacheKey = (url) => encodeURIComponent(url.toString());
|
|
|
207
196
|
var _environmentOptions, _stores;
|
|
208
197
|
var NetlifyCacheStorage = class {
|
|
209
198
|
constructor(environmentOptions) {
|
|
210
|
-
__privateAdd(this, _environmentOptions
|
|
211
|
-
__privateAdd(this, _stores
|
|
199
|
+
__privateAdd(this, _environmentOptions);
|
|
200
|
+
__privateAdd(this, _stores);
|
|
212
201
|
__privateSet(this, _environmentOptions, environmentOptions);
|
|
213
202
|
__privateSet(this, _stores, /* @__PURE__ */ new Map());
|
|
214
203
|
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
type Base64Encoder = (input: string) => string;
|
|
2
1
|
type Logger = (...args: any[]) => void;
|
|
3
2
|
interface EnvironmentOptions {
|
|
4
|
-
base64Encode: Base64Encoder;
|
|
5
3
|
getContext: RequestContextFactory;
|
|
6
4
|
userAgent?: string;
|
|
7
5
|
}
|
|
@@ -27,16 +25,16 @@ declare const getInternalHeaders: unique symbol;
|
|
|
27
25
|
declare const serializeResourceHeaders: unique symbol;
|
|
28
26
|
declare class NetlifyCache implements Cache {
|
|
29
27
|
#private;
|
|
30
|
-
constructor({
|
|
28
|
+
constructor({ getContext, name, userAgent }: NetlifyCacheOptions);
|
|
31
29
|
private [getInternalHeaders];
|
|
32
30
|
private [serializeResourceHeaders];
|
|
33
|
-
add(request: RequestInfo): Promise<void>;
|
|
31
|
+
add(request: RequestInfo | URL): Promise<void>;
|
|
34
32
|
addAll(requests: RequestInfo[]): Promise<void>;
|
|
35
|
-
delete(request: RequestInfo): Promise<boolean>;
|
|
36
|
-
keys(_request?: Request): Promise<never[]>;
|
|
37
|
-
match(request: RequestInfo): Promise<Response | undefined>;
|
|
38
|
-
matchAll(request?: RequestInfo, _options?: CacheQueryOptions): Promise<readonly Response[]>;
|
|
39
|
-
put(request: RequestInfo | URL
|
|
33
|
+
delete(request: RequestInfo | URL): Promise<boolean>;
|
|
34
|
+
keys(_request?: Request | URL): Promise<never[]>;
|
|
35
|
+
match(request: RequestInfo | URL): Promise<Response | undefined>;
|
|
36
|
+
matchAll(request?: RequestInfo | URL, _options?: CacheQueryOptions): Promise<readonly Response[]>;
|
|
37
|
+
put(request: RequestInfo | URL, response: Response): Promise<void>;
|
|
40
38
|
}
|
|
41
39
|
|
|
42
|
-
export {
|
|
40
|
+
export { type EnvironmentOptions as E, NetlifyCache as N, Operation as O, type RequestContextFactory as R };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
type Logger = (...args: any[]) => void;
|
|
2
|
+
interface EnvironmentOptions {
|
|
3
|
+
getContext: RequestContextFactory;
|
|
4
|
+
userAgent?: string;
|
|
5
|
+
}
|
|
6
|
+
declare enum Operation {
|
|
7
|
+
Delete = "delete",
|
|
8
|
+
Read = "read",
|
|
9
|
+
Write = "write"
|
|
10
|
+
}
|
|
11
|
+
type RequestContextFactory = (options: {
|
|
12
|
+
operation: Operation;
|
|
13
|
+
}) => RequestContext | null;
|
|
14
|
+
interface RequestContext {
|
|
15
|
+
host: string;
|
|
16
|
+
logger?: Logger;
|
|
17
|
+
token: string;
|
|
18
|
+
url: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
type NetlifyCacheOptions = EnvironmentOptions & {
|
|
22
|
+
name: string;
|
|
23
|
+
};
|
|
24
|
+
declare const getInternalHeaders: unique symbol;
|
|
25
|
+
declare const serializeResourceHeaders: unique symbol;
|
|
26
|
+
declare class NetlifyCache implements Cache {
|
|
27
|
+
#private;
|
|
28
|
+
constructor({ getContext, name, userAgent }: NetlifyCacheOptions);
|
|
29
|
+
private [getInternalHeaders];
|
|
30
|
+
private [serializeResourceHeaders];
|
|
31
|
+
add(request: RequestInfo | URL): Promise<void>;
|
|
32
|
+
addAll(requests: RequestInfo[]): Promise<void>;
|
|
33
|
+
delete(request: RequestInfo | URL): Promise<boolean>;
|
|
34
|
+
keys(_request?: Request | URL): Promise<never[]>;
|
|
35
|
+
match(request: RequestInfo | URL): Promise<Response | undefined>;
|
|
36
|
+
matchAll(request?: RequestInfo | URL, _options?: CacheQueryOptions): Promise<readonly Response[]>;
|
|
37
|
+
put(request: RequestInfo | URL, response: Response): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { type EnvironmentOptions as E, NetlifyCache as N, Operation as O, type RequestContextFactory as R };
|
package/dist/main.cjs
CHANGED
|
@@ -340,14 +340,25 @@ var fetchWithCache = async (request, optionsOrCacheSettings, cacheOptionsParam)
|
|
|
340
340
|
return cached;
|
|
341
341
|
}
|
|
342
342
|
const fresh = await fetch(request, requestInit);
|
|
343
|
-
|
|
344
|
-
|
|
343
|
+
if (!fresh.body) {
|
|
344
|
+
return fresh;
|
|
345
|
+
}
|
|
346
|
+
const [clientStream, cacheStream] = fresh.body.tee();
|
|
347
|
+
const clientResponse = new Response(clientStream, fresh);
|
|
348
|
+
const cacheResponse = new Response(cacheStream, fresh);
|
|
349
|
+
applyHeaders(cacheResponse.headers, cacheHeaders(cacheSettings));
|
|
350
|
+
const cachePut = cache.put(request, cacheResponse);
|
|
345
351
|
if (onCachePut) {
|
|
346
352
|
await onCachePut(cachePut);
|
|
347
353
|
} else {
|
|
348
|
-
|
|
354
|
+
const requestContext = globalThis.Netlify?.context;
|
|
355
|
+
if (requestContext) {
|
|
356
|
+
requestContext.waitUntil(cachePut);
|
|
357
|
+
} else {
|
|
358
|
+
await cachePut;
|
|
359
|
+
}
|
|
349
360
|
}
|
|
350
|
-
return
|
|
361
|
+
return clientResponse;
|
|
351
362
|
};
|
|
352
363
|
|
|
353
364
|
// src/constants.ts
|
package/dist/main.d.cts
CHANGED
package/dist/main.d.ts
CHANGED
package/dist/main.js
CHANGED
|
@@ -306,14 +306,25 @@ var fetchWithCache = async (request, optionsOrCacheSettings, cacheOptionsParam)
|
|
|
306
306
|
return cached;
|
|
307
307
|
}
|
|
308
308
|
const fresh = await fetch(request, requestInit);
|
|
309
|
-
|
|
310
|
-
|
|
309
|
+
if (!fresh.body) {
|
|
310
|
+
return fresh;
|
|
311
|
+
}
|
|
312
|
+
const [clientStream, cacheStream] = fresh.body.tee();
|
|
313
|
+
const clientResponse = new Response(clientStream, fresh);
|
|
314
|
+
const cacheResponse = new Response(cacheStream, fresh);
|
|
315
|
+
applyHeaders(cacheResponse.headers, cacheHeaders(cacheSettings));
|
|
316
|
+
const cachePut = cache.put(request, cacheResponse);
|
|
311
317
|
if (onCachePut) {
|
|
312
318
|
await onCachePut(cachePut);
|
|
313
319
|
} else {
|
|
314
|
-
|
|
320
|
+
const requestContext = globalThis.Netlify?.context;
|
|
321
|
+
if (requestContext) {
|
|
322
|
+
requestContext.waitUntil(cachePut);
|
|
323
|
+
} else {
|
|
324
|
+
await cachePut;
|
|
325
|
+
}
|
|
315
326
|
}
|
|
316
|
-
return
|
|
327
|
+
return clientResponse;
|
|
317
328
|
};
|
|
318
329
|
|
|
319
330
|
// src/constants.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@netlify/cache",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "TypeScript utilities for interacting with the Netlify cache",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -67,10 +67,14 @@
|
|
|
67
67
|
},
|
|
68
68
|
"author": "Netlify Inc.",
|
|
69
69
|
"devDependencies": {
|
|
70
|
+
"@netlify/dev-utils": "2.1.0",
|
|
70
71
|
"npm-run-all2": "^7.0.2",
|
|
71
72
|
"semver": "^7.5.3",
|
|
72
73
|
"tmp-promise": "^3.0.3",
|
|
73
|
-
"tsup": "^
|
|
74
|
-
"vitest": "^0.
|
|
74
|
+
"tsup": "^8.0.0",
|
|
75
|
+
"vitest": "^3.0.0"
|
|
76
|
+
},
|
|
77
|
+
"dependencies": {
|
|
78
|
+
"@netlify/runtime-utils": "1.2.0"
|
|
75
79
|
}
|
|
76
80
|
}
|