@depup/miniflare 4.20260317.0-depup.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 (91) hide show
  1. package/README.md +31 -0
  2. package/bootstrap.js +11 -0
  3. package/changes.json +10 -0
  4. package/dist/local-explorer-ui/assets/Breadcrumbs-7hjI0sYt.js +1 -0
  5. package/dist/local-explorer-ui/assets/TableSelect-_bi6l6Iv.js +25 -0
  6. package/dist/local-explorer-ui/assets/_className-gSkjniQn.js +1 -0
  7. package/dist/local-explorer-ui/assets/_databaseId-DWcfgBis.js +1 -0
  8. package/dist/local-explorer-ui/assets/_namespaceId-8ViM8VDL.js +1 -0
  9. package/dist/local-explorer-ui/assets/_objectId-X6x-JUph.js +1 -0
  10. package/dist/local-explorer-ui/assets/dropdown-DFeFcKfn-BCd_NRZS.js +1 -0
  11. package/dist/local-explorer-ui/assets/index-BFNDwiew.js +42 -0
  12. package/dist/local-explorer-ui/assets/index-CLSFsgi0.js +1 -0
  13. package/dist/local-explorer-ui/assets/index-KG4JeHCX.js +1 -0
  14. package/dist/local-explorer-ui/assets/index-mgoUmSld.css +1 -0
  15. package/dist/local-explorer-ui/assets/table-BUmvaBj8-v-EIZgOz.js +1 -0
  16. package/dist/local-explorer-ui/favicon.svg +3 -0
  17. package/dist/local-explorer-ui/index.html +14 -0
  18. package/dist/src/index.d.ts +8703 -0
  19. package/dist/src/index.js +83666 -0
  20. package/dist/src/index.js.map +6 -0
  21. package/dist/src/shared/dev-registry.worker.js +69801 -0
  22. package/dist/src/shared/dev-registry.worker.js.map +6 -0
  23. package/dist/src/workers/analytics-engine/analytics-engine.worker.js +15 -0
  24. package/dist/src/workers/analytics-engine/analytics-engine.worker.js.map +6 -0
  25. package/dist/src/workers/assets/assets-kv.worker.js +28 -0
  26. package/dist/src/workers/assets/assets-kv.worker.js.map +6 -0
  27. package/dist/src/workers/assets/assets.worker.js +9014 -0
  28. package/dist/src/workers/assets/assets.worker.js.map +6 -0
  29. package/dist/src/workers/assets/router.worker.js +9625 -0
  30. package/dist/src/workers/assets/router.worker.js.map +6 -0
  31. package/dist/src/workers/assets/rpc-proxy.worker.js +29 -0
  32. package/dist/src/workers/assets/rpc-proxy.worker.js.map +6 -0
  33. package/dist/src/workers/browser-rendering/binding.worker.js +129 -0
  34. package/dist/src/workers/browser-rendering/binding.worker.js.map +6 -0
  35. package/dist/src/workers/cache/cache-entry-noop.worker.js +19 -0
  36. package/dist/src/workers/cache/cache-entry-noop.worker.js.map +6 -0
  37. package/dist/src/workers/cache/cache-entry.worker.js +28 -0
  38. package/dist/src/workers/cache/cache-entry.worker.js.map +6 -0
  39. package/dist/src/workers/cache/cache.worker.js +653 -0
  40. package/dist/src/workers/cache/cache.worker.js.map +6 -0
  41. package/dist/src/workers/core/do-wrapper.worker.js +43 -0
  42. package/dist/src/workers/core/do-wrapper.worker.js.map +6 -0
  43. package/dist/src/workers/core/entry.worker.js +4633 -0
  44. package/dist/src/workers/core/entry.worker.js.map +6 -0
  45. package/dist/src/workers/core/strip-cf-connecting-ip.worker.js +11 -0
  46. package/dist/src/workers/core/strip-cf-connecting-ip.worker.js.map +6 -0
  47. package/dist/src/workers/d1/database.worker.js +219 -0
  48. package/dist/src/workers/d1/database.worker.js.map +6 -0
  49. package/dist/src/workers/dispatch-namespace/dispatch-namespace-proxy.worker.js +2271 -0
  50. package/dist/src/workers/dispatch-namespace/dispatch-namespace-proxy.worker.js.map +6 -0
  51. package/dist/src/workers/dispatch-namespace/dispatch-namespace.worker.js +12 -0
  52. package/dist/src/workers/dispatch-namespace/dispatch-namespace.worker.js.map +6 -0
  53. package/dist/src/workers/email/email.worker.js +23 -0
  54. package/dist/src/workers/email/email.worker.js.map +6 -0
  55. package/dist/src/workers/email/send_email.worker.js +3294 -0
  56. package/dist/src/workers/email/send_email.worker.js.map +6 -0
  57. package/dist/src/workers/hello-world/binding.worker.js +19 -0
  58. package/dist/src/workers/hello-world/binding.worker.js.map +6 -0
  59. package/dist/src/workers/hello-world/object.worker.js +14 -0
  60. package/dist/src/workers/hello-world/object.worker.js.map +6 -0
  61. package/dist/src/workers/images/images.worker.js +155 -0
  62. package/dist/src/workers/images/images.worker.js.map +6 -0
  63. package/dist/src/workers/kv/namespace.worker.js +322 -0
  64. package/dist/src/workers/kv/namespace.worker.js.map +6 -0
  65. package/dist/src/workers/kv/sites.worker.js +146 -0
  66. package/dist/src/workers/kv/sites.worker.js.map +6 -0
  67. package/dist/src/workers/local-explorer/explorer.worker.js +5245 -0
  68. package/dist/src/workers/local-explorer/explorer.worker.js.map +6 -0
  69. package/dist/src/workers/pipelines/pipeline.worker.js +10 -0
  70. package/dist/src/workers/pipelines/pipeline.worker.js.map +6 -0
  71. package/dist/src/workers/queues/broker.worker.js +289 -0
  72. package/dist/src/workers/queues/broker.worker.js.map +6 -0
  73. package/dist/src/workers/r2/bucket.worker.js +1134 -0
  74. package/dist/src/workers/r2/bucket.worker.js.map +6 -0
  75. package/dist/src/workers/ratelimit/ratelimit.worker.js +54 -0
  76. package/dist/src/workers/ratelimit/ratelimit.worker.js.map +6 -0
  77. package/dist/src/workers/secrets-store/secret.worker.js +65 -0
  78. package/dist/src/workers/secrets-store/secret.worker.js.map +6 -0
  79. package/dist/src/workers/shared/index.worker.js +693 -0
  80. package/dist/src/workers/shared/index.worker.js.map +6 -0
  81. package/dist/src/workers/shared/object-entry.worker.js +21 -0
  82. package/dist/src/workers/shared/object-entry.worker.js.map +6 -0
  83. package/dist/src/workers/shared/remote-proxy-client.worker.js +2271 -0
  84. package/dist/src/workers/shared/remote-proxy-client.worker.js.map +6 -0
  85. package/dist/src/workers/shared/zod.worker.js +2954 -0
  86. package/dist/src/workers/shared/zod.worker.js.map +6 -0
  87. package/dist/src/workers/workflows/binding.worker.js +2422 -0
  88. package/dist/src/workers/workflows/binding.worker.js.map +6 -0
  89. package/dist/src/workers/workflows/wrapped-binding.worker.js +71 -0
  90. package/dist/src/workers/workflows/wrapped-binding.worker.js.map +6 -0
  91. package/package.json +139 -0
@@ -0,0 +1,322 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __decorateClass = (decorators, target, key, kind) => {
4
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
5
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
6
+ return kind && result && __defProp(target, key, result), result;
7
+ };
8
+
9
+ // src/workers/kv/namespace.worker.ts
10
+ import assert from "node:assert";
11
+ import {
12
+ DeferredPromise,
13
+ DELETE,
14
+ GET,
15
+ HttpError as HttpError2,
16
+ KeyValueStorage,
17
+ maybeApply,
18
+ MiniflareDurableObject,
19
+ POST,
20
+ PUT
21
+ } from "miniflare:shared";
22
+
23
+ // src/workers/kv/constants.ts
24
+ import { testRegExps } from "miniflare:shared";
25
+ var KVLimits = {
26
+ MIN_CACHE_TTL_SECONDS: 30,
27
+ MIN_EXPIRATION_TTL_SECONDS: 60,
28
+ MAX_LIST_KEYS: 1e3,
29
+ MAX_KEY_SIZE_BYTES: 512,
30
+ MAX_VALUE_SIZE_BYTES: 25 * 1024 * 1024,
31
+ MAX_VALUE_SIZE_TEST_BYTES: 1024,
32
+ MAX_METADATA_SIZE_BYTES: 1024,
33
+ MAX_BULK_SIZE_BYTES: 25 * 1024 * 1024
34
+ }, KVParams = {
35
+ URL_ENCODED: "urlencoded",
36
+ CACHE_TTL: "cache_ttl",
37
+ EXPIRATION: "expiration",
38
+ EXPIRATION_TTL: "expiration_ttl",
39
+ LIST_LIMIT: "key_count_limit",
40
+ LIST_PREFIX: "prefix",
41
+ LIST_CURSOR: "cursor"
42
+ }, KVHeaders = {
43
+ EXPIRATION: "CF-Expiration",
44
+ METADATA: "CF-KV-Metadata"
45
+ };
46
+ var MAX_BULK_GET_KEYS = 100;
47
+
48
+ // src/workers/kv/validator.worker.ts
49
+ import { Buffer as Buffer2 } from "node:buffer";
50
+ import { HttpError } from "miniflare:shared";
51
+ function decodeKey({ key }, query) {
52
+ if (query.get(KVParams.URL_ENCODED)?.toLowerCase() !== "true") return key;
53
+ try {
54
+ return decodeURIComponent(key);
55
+ } catch (e) {
56
+ throw e instanceof URIError ? new HttpError(400, "Could not URL-decode key name") : e;
57
+ }
58
+ }
59
+ function validateKey(key) {
60
+ if (key === "")
61
+ throw new HttpError(400, "Key names must not be empty");
62
+ if (key === "." || key === "..")
63
+ throw new HttpError(
64
+ 400,
65
+ `Illegal key name "${key}". Please use a different name.`
66
+ );
67
+ validateKeyLength(key);
68
+ }
69
+ function validateKeyLength(key) {
70
+ let keyLength = Buffer2.byteLength(key);
71
+ if (keyLength > KVLimits.MAX_KEY_SIZE_BYTES)
72
+ throw new HttpError(
73
+ 414,
74
+ `UTF-8 encoded length of ${keyLength} exceeds key length limit of ${KVLimits.MAX_KEY_SIZE_BYTES}.`
75
+ );
76
+ }
77
+ function validateGetOptions(key, options) {
78
+ validateKey(key);
79
+ let cacheTtl = options?.cacheTtl;
80
+ if (cacheTtl !== void 0 && (isNaN(cacheTtl) || cacheTtl < KVLimits.MIN_CACHE_TTL_SECONDS))
81
+ throw new HttpError(
82
+ 400,
83
+ `Invalid ${KVParams.CACHE_TTL} of ${cacheTtl}. Cache TTL must be at least ${KVLimits.MIN_CACHE_TTL_SECONDS}.`
84
+ );
85
+ }
86
+ function validatePutOptions(key, options) {
87
+ let { now, rawExpiration, rawExpirationTtl, rawMetadata } = options;
88
+ validateKey(key);
89
+ let expiration;
90
+ if (rawExpirationTtl !== null) {
91
+ let expirationTtl = parseInt(rawExpirationTtl);
92
+ if (Number.isNaN(expirationTtl) || expirationTtl <= 0)
93
+ throw new HttpError(
94
+ 400,
95
+ `Invalid ${KVParams.EXPIRATION_TTL} of ${rawExpirationTtl}. Please specify integer greater than 0.`
96
+ );
97
+ if (expirationTtl < KVLimits.MIN_EXPIRATION_TTL_SECONDS)
98
+ throw new HttpError(
99
+ 400,
100
+ `Invalid ${KVParams.EXPIRATION_TTL} of ${rawExpirationTtl}. Expiration TTL must be at least ${KVLimits.MIN_EXPIRATION_TTL_SECONDS}.`
101
+ );
102
+ expiration = now + expirationTtl;
103
+ } else if (rawExpiration !== null) {
104
+ if (expiration = parseInt(rawExpiration), Number.isNaN(expiration) || expiration <= now)
105
+ throw new HttpError(
106
+ 400,
107
+ `Invalid ${KVParams.EXPIRATION} of ${rawExpiration}. Please specify integer greater than the current number of seconds since the UNIX epoch.`
108
+ );
109
+ if (expiration < now + KVLimits.MIN_EXPIRATION_TTL_SECONDS)
110
+ throw new HttpError(
111
+ 400,
112
+ `Invalid ${KVParams.EXPIRATION} of ${rawExpiration}. Expiration times must be at least ${KVLimits.MIN_EXPIRATION_TTL_SECONDS} seconds in the future.`
113
+ );
114
+ }
115
+ let metadata;
116
+ if (rawMetadata !== null) {
117
+ let metadataLength = Buffer2.byteLength(rawMetadata);
118
+ if (metadataLength > KVLimits.MAX_METADATA_SIZE_BYTES)
119
+ throw new HttpError(
120
+ 413,
121
+ `Metadata length of ${metadataLength} exceeds limit of ${KVLimits.MAX_METADATA_SIZE_BYTES}.`
122
+ );
123
+ metadata = JSON.parse(rawMetadata);
124
+ }
125
+ return { expiration, metadata };
126
+ }
127
+ function decodeListOptions(url) {
128
+ let limitParam = url.searchParams.get(KVParams.LIST_LIMIT), limit = limitParam === null ? KVLimits.MAX_LIST_KEYS : parseInt(limitParam), prefix = url.searchParams.get(KVParams.LIST_PREFIX) ?? void 0, cursor = url.searchParams.get(KVParams.LIST_CURSOR) ?? void 0;
129
+ return { limit, prefix, cursor };
130
+ }
131
+ function validateListOptions(options) {
132
+ let limit = options.limit;
133
+ if (limit !== void 0) {
134
+ if (isNaN(limit) || limit < 1)
135
+ throw new HttpError(
136
+ 400,
137
+ `Invalid ${KVParams.LIST_LIMIT} of ${limit}. Please specify an integer greater than 0.`
138
+ );
139
+ if (limit > KVLimits.MAX_LIST_KEYS)
140
+ throw new HttpError(
141
+ 400,
142
+ `Invalid ${KVParams.LIST_LIMIT} of ${limit}. Please specify an integer less than ${KVLimits.MAX_LIST_KEYS}.`
143
+ );
144
+ }
145
+ let prefix = options.prefix;
146
+ prefix != null && validateKeyLength(prefix);
147
+ }
148
+
149
+ // src/workers/kv/namespace.worker.ts
150
+ function createMaxValueSizeError(length, maxValueSize) {
151
+ return new HttpError2(
152
+ 413,
153
+ `Value length of ${length} exceeds limit of ${maxValueSize}.`
154
+ );
155
+ }
156
+ var MaxLengthStream = class extends TransformStream {
157
+ signal;
158
+ length;
159
+ constructor(maxLength) {
160
+ let abortController = new AbortController(), lengthPromise = new DeferredPromise(), length = 0;
161
+ super({
162
+ transform(chunk, controller) {
163
+ length += chunk.byteLength, length <= maxLength ? controller.enqueue(chunk) : abortController.signal.aborted || abortController.abort();
164
+ },
165
+ flush() {
166
+ lengthPromise.resolve(length);
167
+ }
168
+ }), this.signal = abortController.signal, this.length = lengthPromise;
169
+ }
170
+ };
171
+ function millisToSeconds(millis) {
172
+ return Math.floor(millis / 1e3);
173
+ }
174
+ function secondsToMillis(seconds) {
175
+ return seconds * 1e3;
176
+ }
177
+ async function processKeyValue(obj, type = "text", withMetadata = !1) {
178
+ let decoder = new TextDecoder(), decodedValue = "";
179
+ if (obj?.value) {
180
+ for await (let chunk of obj?.value)
181
+ decodedValue += decoder.decode(chunk, { stream: !0 });
182
+ decodedValue += decoder.decode();
183
+ }
184
+ let val = null, size = decodedValue.length;
185
+ try {
186
+ val = obj?.value ? type === "json" ? JSON.parse(decodedValue) : decodedValue : null;
187
+ } catch {
188
+ throw new HttpError2(
189
+ 400,
190
+ `At least one of the requested keys corresponds to a non-${type} value`
191
+ );
192
+ }
193
+ return val && withMetadata ? [
194
+ {
195
+ value: val,
196
+ metadata: obj?.metadata ?? null
197
+ },
198
+ size
199
+ ] : [val, size];
200
+ }
201
+ var KVNamespaceObject = class extends MiniflareDurableObject {
202
+ #storage;
203
+ get storage() {
204
+ return this.#storage ??= new KeyValueStorage(this);
205
+ }
206
+ get = async (req, params, url) => {
207
+ if (req.method === "POST" && req.body != null) {
208
+ let decodedBody = "", decoder = new TextDecoder();
209
+ for await (let chunk of req.body)
210
+ decodedBody += decoder.decode(chunk, { stream: !0 });
211
+ decodedBody += decoder.decode();
212
+ let parsedBody = JSON.parse(decodedBody), keys = parsedBody.keys, type = parsedBody?.type;
213
+ if (type && type !== "text" && type !== "json") {
214
+ let errorStr = `"${type}" is not a valid type. Use "json" or "text"`;
215
+ return new Response(errorStr, { status: 400, statusText: errorStr });
216
+ }
217
+ let obj = {};
218
+ if (keys.length > MAX_BULK_GET_KEYS) {
219
+ let errorStr = `You can request a maximum of ${MAX_BULK_GET_KEYS} keys`;
220
+ return new Response(errorStr, { status: 400, statusText: errorStr });
221
+ }
222
+ if (keys.length < 1) {
223
+ let errorStr = "You must request a minimum of 1 key";
224
+ return new Response(errorStr, { status: 400, statusText: errorStr });
225
+ }
226
+ let totalBytes = 0;
227
+ for (let key2 of keys) {
228
+ validateGetOptions(key2, { cacheTtl: parsedBody?.cacheTtl });
229
+ let entry2 = await this.storage.get(key2), [value, size] = await processKeyValue(
230
+ entry2,
231
+ parsedBody?.type,
232
+ parsedBody?.withMetadata
233
+ );
234
+ totalBytes += size, obj[key2] = value;
235
+ }
236
+ let maxValueSize = this.beingTested ? KVLimits.MAX_VALUE_SIZE_TEST_BYTES : KVLimits.MAX_BULK_SIZE_BYTES;
237
+ if (totalBytes > maxValueSize)
238
+ throw new HttpError2(
239
+ 413,
240
+ `Total size of request exceeds the limit of ${maxValueSize / 1024 / 1024}MB`
241
+ );
242
+ return new Response(JSON.stringify(obj));
243
+ }
244
+ let key = decodeKey(params, url.searchParams), cacheTtlParam = url.searchParams.get(KVParams.CACHE_TTL), cacheTtl = cacheTtlParam === null ? void 0 : parseInt(cacheTtlParam);
245
+ validateGetOptions(key, { cacheTtl });
246
+ let entry = await this.storage.get(key);
247
+ if (entry === null) throw new HttpError2(404, "Not Found");
248
+ let headers = new Headers();
249
+ return entry.expiration !== void 0 && headers.set(
250
+ KVHeaders.EXPIRATION,
251
+ millisToSeconds(entry.expiration).toString()
252
+ ), entry.metadata !== void 0 && headers.set(KVHeaders.METADATA, JSON.stringify(entry.metadata)), new Response(entry.value, { headers });
253
+ };
254
+ put = async (req, params, url) => {
255
+ let key = decodeKey(params, url.searchParams), rawExpiration = url.searchParams.get(KVParams.EXPIRATION), rawExpirationTtl = url.searchParams.get(KVParams.EXPIRATION_TTL), rawMetadata = req.headers.get(KVHeaders.METADATA), now = millisToSeconds(this.timers.now()), { expiration, metadata } = validatePutOptions(key, {
256
+ now,
257
+ rawExpiration,
258
+ rawExpirationTtl,
259
+ rawMetadata
260
+ }), value = req.body, contentLength = parseInt(req.headers.get("Content-Length")), valueLengthHint;
261
+ Number.isNaN(contentLength) ? value === null && (valueLengthHint = 0) : valueLengthHint = contentLength, value ??= new ReadableStream({
262
+ start(controller) {
263
+ controller.close();
264
+ }
265
+ });
266
+ let maxValueSize = this.beingTested ? KVLimits.MAX_VALUE_SIZE_TEST_BYTES : KVLimits.MAX_VALUE_SIZE_BYTES, maxLengthStream;
267
+ if (valueLengthHint !== void 0 && valueLengthHint > maxValueSize)
268
+ throw createMaxValueSizeError(valueLengthHint, maxValueSize);
269
+ maxLengthStream = new MaxLengthStream(maxValueSize), value = value.pipeThrough(maxLengthStream);
270
+ try {
271
+ await this.storage.put({
272
+ key,
273
+ value,
274
+ expiration: maybeApply(secondsToMillis, expiration),
275
+ metadata,
276
+ signal: maxLengthStream?.signal
277
+ });
278
+ } catch (e) {
279
+ if (typeof e == "object" && e !== null && "name" in e && e.name === "AbortError") {
280
+ assert(maxLengthStream !== void 0);
281
+ let length = await maxLengthStream.length;
282
+ throw createMaxValueSizeError(length, maxValueSize);
283
+ } else
284
+ throw e;
285
+ }
286
+ return new Response();
287
+ };
288
+ delete = async (req, params, url) => {
289
+ let key = decodeKey(params, url.searchParams);
290
+ return validateKey(key), await this.storage.delete(key), new Response();
291
+ };
292
+ list = async (req, params, url) => {
293
+ let options = decodeListOptions(url);
294
+ validateListOptions(options);
295
+ let res = await this.storage.list(options), keys = res.keys.map((key) => ({
296
+ name: key.key,
297
+ expiration: maybeApply(millisToSeconds, key.expiration),
298
+ // workerd expects metadata to be a JSON-serialised string
299
+ metadata: maybeApply(JSON.stringify, key.metadata)
300
+ })), result;
301
+ return res.cursor === void 0 ? result = { keys, list_complete: !0, cacheStatus: null } : result = {
302
+ keys,
303
+ list_complete: !1,
304
+ cursor: res.cursor,
305
+ cacheStatus: null
306
+ }, Response.json(result);
307
+ };
308
+ };
309
+ __decorateClass([
310
+ GET("/:key"),
311
+ POST("/bulk/get")
312
+ ], KVNamespaceObject.prototype, "get", 2), __decorateClass([
313
+ PUT("/:key")
314
+ ], KVNamespaceObject.prototype, "put", 2), __decorateClass([
315
+ DELETE("/:key")
316
+ ], KVNamespaceObject.prototype, "delete", 2), __decorateClass([
317
+ GET("/")
318
+ ], KVNamespaceObject.prototype, "list", 2);
319
+ export {
320
+ KVNamespaceObject
321
+ };
322
+ //# sourceMappingURL=namespace.worker.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/workers/kv/namespace.worker.ts", "../../../../src/workers/kv/constants.ts", "../../../../src/workers/kv/validator.worker.ts"],
4
+ "mappings": "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",
5
+ "names": ["HttpError", "Buffer", "Buffer", "HttpError", "key", "entry"]
6
+ }
@@ -0,0 +1,146 @@
1
+ // src/workers/kv/sites.worker.ts
2
+ import { base64Decode, base64Encode, SharedBindings } from "miniflare:shared";
3
+
4
+ // src/workers/kv/constants.ts
5
+ import { testRegExps } from "miniflare:shared";
6
+ var KVLimits = {
7
+ MIN_CACHE_TTL_SECONDS: 30,
8
+ MIN_EXPIRATION_TTL_SECONDS: 60,
9
+ MAX_LIST_KEYS: 1e3,
10
+ MAX_KEY_SIZE_BYTES: 512,
11
+ MAX_VALUE_SIZE_BYTES: 25 * 1024 * 1024,
12
+ MAX_VALUE_SIZE_TEST_BYTES: 1024,
13
+ MAX_METADATA_SIZE_BYTES: 1024,
14
+ MAX_BULK_SIZE_BYTES: 25 * 1024 * 1024
15
+ }, KVParams = {
16
+ URL_ENCODED: "urlencoded",
17
+ CACHE_TTL: "cache_ttl",
18
+ EXPIRATION: "expiration",
19
+ EXPIRATION_TTL: "expiration_ttl",
20
+ LIST_LIMIT: "key_count_limit",
21
+ LIST_PREFIX: "prefix",
22
+ LIST_CURSOR: "cursor"
23
+ };
24
+ var SiteBindings = {
25
+ KV_NAMESPACE_SITE: "__STATIC_CONTENT",
26
+ JSON_SITE_MANIFEST: "__STATIC_CONTENT_MANIFEST",
27
+ JSON_SITE_FILTER: "MINIFLARE_SITE_FILTER"
28
+ }, SITES_NO_CACHE_PREFIX = "$__MINIFLARE_SITES__$/";
29
+ function encodeSitesKey(key) {
30
+ return SITES_NO_CACHE_PREFIX + encodeURIComponent(key);
31
+ }
32
+ function decodeSitesKey(key) {
33
+ return key.startsWith(SITES_NO_CACHE_PREFIX) ? decodeURIComponent(key.substring(SITES_NO_CACHE_PREFIX.length)) : key;
34
+ }
35
+ function deserialiseRegExps(matcher) {
36
+ return {
37
+ include: matcher.include.map((regExp) => new RegExp(regExp)),
38
+ exclude: matcher.exclude.map((regExp) => new RegExp(regExp))
39
+ };
40
+ }
41
+ function deserialiseSiteRegExps(siteRegExps) {
42
+ return {
43
+ include: siteRegExps.include && deserialiseRegExps(siteRegExps.include),
44
+ exclude: siteRegExps.exclude && deserialiseRegExps(siteRegExps.exclude)
45
+ };
46
+ }
47
+ function testSiteRegExps(regExps, key) {
48
+ return regExps.include !== void 0 ? testRegExps(regExps.include, key) : regExps.exclude !== void 0 ? !testRegExps(regExps.exclude, key) : !0;
49
+ }
50
+
51
+ // src/workers/kv/validator.worker.ts
52
+ import { Buffer } from "node:buffer";
53
+ import { HttpError } from "miniflare:shared";
54
+ function validateKeyLength(key) {
55
+ let keyLength = Buffer.byteLength(key);
56
+ if (keyLength > KVLimits.MAX_KEY_SIZE_BYTES)
57
+ throw new HttpError(
58
+ 414,
59
+ `UTF-8 encoded length of ${keyLength} exceeds key length limit of ${KVLimits.MAX_KEY_SIZE_BYTES}.`
60
+ );
61
+ }
62
+ function decodeListOptions(url) {
63
+ let limitParam = url.searchParams.get(KVParams.LIST_LIMIT), limit = limitParam === null ? KVLimits.MAX_LIST_KEYS : parseInt(limitParam), prefix = url.searchParams.get(KVParams.LIST_PREFIX) ?? void 0, cursor = url.searchParams.get(KVParams.LIST_CURSOR) ?? void 0;
64
+ return { limit, prefix, cursor };
65
+ }
66
+ function validateListOptions(options) {
67
+ let limit = options.limit;
68
+ if (limit !== void 0) {
69
+ if (isNaN(limit) || limit < 1)
70
+ throw new HttpError(
71
+ 400,
72
+ `Invalid ${KVParams.LIST_LIMIT} of ${limit}. Please specify an integer greater than 0.`
73
+ );
74
+ if (limit > KVLimits.MAX_LIST_KEYS)
75
+ throw new HttpError(
76
+ 400,
77
+ `Invalid ${KVParams.LIST_LIMIT} of ${limit}. Please specify an integer less than ${KVLimits.MAX_LIST_KEYS}.`
78
+ );
79
+ }
80
+ let prefix = options.prefix;
81
+ prefix != null && validateKeyLength(prefix);
82
+ }
83
+
84
+ // src/workers/kv/sites.worker.ts
85
+ var siteRegExpsCache = /* @__PURE__ */ new WeakMap();
86
+ function getSiteRegExps(env) {
87
+ let regExps = siteRegExpsCache.get(env);
88
+ return regExps !== void 0 || (regExps = deserialiseSiteRegExps(env[SiteBindings.JSON_SITE_FILTER]), siteRegExpsCache.set(env, regExps)), regExps;
89
+ }
90
+ async function* walkDirectory(blobsService, path = "") {
91
+ let res = await blobsService.fetch(`http://placeholder/${path}`);
92
+ if (!(res.headers.get("Content-Type") ?? "").toLowerCase().startsWith("application/json")) {
93
+ await res.body?.pipeTo(new WritableStream()), yield path;
94
+ return;
95
+ }
96
+ let entries = await res.json();
97
+ for (let { name, type } of entries) {
98
+ let entryPath = `${path}${path === "" ? "" : "/"}${name}`;
99
+ type === "directory" ? yield* walkDirectory(blobsService, entryPath) : yield entryPath;
100
+ }
101
+ }
102
+ var encoder = new TextEncoder();
103
+ function arrayCompare(a, b) {
104
+ let minLength = Math.min(a.length, b.length);
105
+ for (let i = 0; i < minLength; i++) {
106
+ let aElement = a[i], bElement = b[i];
107
+ if (aElement < bElement) return -1;
108
+ if (aElement > bElement) return 1;
109
+ }
110
+ return a.length - b.length;
111
+ }
112
+ async function handleListRequest(url, blobsService, siteRegExps) {
113
+ let options = decodeListOptions(url);
114
+ validateListOptions(options);
115
+ let { limit = KVLimits.MAX_LIST_KEYS, prefix, cursor } = options, keys = [];
116
+ for await (let name of walkDirectory(blobsService))
117
+ testSiteRegExps(siteRegExps, name) && (name = encodeSitesKey(name), !(prefix !== void 0 && !name.startsWith(prefix)) && keys.push({ name, encodedName: encoder.encode(name) }));
118
+ keys.sort((a, b) => arrayCompare(a.encodedName, b.encodedName));
119
+ for (let key of keys) delete key.encodedName;
120
+ let startAfter = cursor === void 0 ? "" : base64Decode(cursor), startIndex = 0;
121
+ startAfter !== "" && (startIndex = keys.findIndex(({ name }) => name === startAfter), startIndex === -1 && (startIndex = keys.length), startIndex++);
122
+ let endIndex = startIndex + limit, nextCursor = endIndex < keys.length ? base64Encode(keys[endIndex - 1].name) : void 0;
123
+ return keys = keys.slice(startIndex, endIndex), nextCursor === void 0 ? Response.json({ keys, list_complete: !0 }) : Response.json({ keys, list_complete: !1, cursor: nextCursor });
124
+ }
125
+ var sites_worker_default = {
126
+ async fetch(request, env) {
127
+ if (request.method !== "GET") {
128
+ let message = `Cannot ${request.method.toLowerCase()}() with Workers Sites namespace`;
129
+ return new Response(message, { status: 405, statusText: message });
130
+ }
131
+ let url = new URL(request.url), key = url.pathname.substring(1);
132
+ url.searchParams.get(KVParams.URL_ENCODED)?.toLowerCase() === "true" && (key = decodeURIComponent(key)), key = decodeSitesKey(key);
133
+ let siteRegExps = getSiteRegExps(env);
134
+ if (key !== "" && !testSiteRegExps(siteRegExps, key))
135
+ return new Response("Not Found", {
136
+ status: 404,
137
+ statusText: "Not Found"
138
+ });
139
+ let blobsService = env[SharedBindings.MAYBE_SERVICE_BLOBS];
140
+ return key === "" ? handleListRequest(url, blobsService, siteRegExps) : blobsService.fetch(new URL(key, "http://placeholder"));
141
+ }
142
+ };
143
+ export {
144
+ sites_worker_default as default
145
+ };
146
+ //# sourceMappingURL=sites.worker.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/workers/kv/sites.worker.ts", "../../../../src/workers/kv/constants.ts", "../../../../src/workers/kv/validator.worker.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }