@nightintelligence/cloudflare-workers-utils 0.35.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 (66) hide show
  1. package/README.md +5 -0
  2. package/dist/browser.d.mts +47 -0
  3. package/dist/browser.mjs +4 -0
  4. package/dist/browser.mjs.map +1 -0
  5. package/dist/chunk-3D4BXUZX.mjs +54 -0
  6. package/dist/chunk-3D4BXUZX.mjs.map +1 -0
  7. package/dist/chunk-4RE36JUD.mjs +3160 -0
  8. package/dist/chunk-4RE36JUD.mjs.map +1 -0
  9. package/dist/chunk-6LYDFTTF.mjs +40 -0
  10. package/dist/chunk-6LYDFTTF.mjs.map +1 -0
  11. package/dist/chunk-CPLEE7LH.mjs +64 -0
  12. package/dist/chunk-CPLEE7LH.mjs.map +1 -0
  13. package/dist/chunk-G5FCNCLK.mjs +47 -0
  14. package/dist/chunk-G5FCNCLK.mjs.map +1 -0
  15. package/dist/chunk-IGC3TZGH.mjs +157 -0
  16. package/dist/chunk-IGC3TZGH.mjs.map +1 -0
  17. package/dist/chunk-NXPJWJ2B.mjs +180 -0
  18. package/dist/chunk-NXPJWJ2B.mjs.map +1 -0
  19. package/dist/chunk-OPAKTV2K.mjs +75 -0
  20. package/dist/chunk-OPAKTV2K.mjs.map +1 -0
  21. package/dist/chunk-VKFVZ67V.mjs +35 -0
  22. package/dist/chunk-VKFVZ67V.mjs.map +1 -0
  23. package/dist/chunk-W7DIL5J2.mjs +267 -0
  24. package/dist/chunk-W7DIL5J2.mjs.map +1 -0
  25. package/dist/chunk-ZLUHKBEC.mjs +44 -0
  26. package/dist/chunk-ZLUHKBEC.mjs.map +1 -0
  27. package/dist/chunk-ZQ2EZEOC.mjs +477 -0
  28. package/dist/chunk-ZQ2EZEOC.mjs.map +1 -0
  29. package/dist/compatibility-date.d.mts +80 -0
  30. package/dist/compatibility-date.mjs +4 -0
  31. package/dist/compatibility-date.mjs.map +1 -0
  32. package/dist/compliance-j3-tqeao.d.mts +3616 -0
  33. package/dist/compliance.d.mts +4 -0
  34. package/dist/compliance.mjs +9 -0
  35. package/dist/compliance.mjs.map +1 -0
  36. package/dist/docker-path.d.mts +8 -0
  37. package/dist/docker-path.mjs +5 -0
  38. package/dist/docker-path.mjs.map +1 -0
  39. package/dist/errors.d.mts +55 -0
  40. package/dist/errors.mjs +4 -0
  41. package/dist/errors.mjs.map +1 -0
  42. package/dist/fs-helpers.d.mts +40 -0
  43. package/dist/fs-helpers.mjs +4 -0
  44. package/dist/fs-helpers.mjs.map +1 -0
  45. package/dist/global-wrangler-config-path.d.mts +35 -0
  46. package/dist/global-wrangler-config-path.mjs +5 -0
  47. package/dist/global-wrangler-config-path.mjs.map +1 -0
  48. package/dist/index.d.mts +1263 -0
  49. package/dist/index.mjs +26282 -0
  50. package/dist/index.mjs.map +1 -0
  51. package/dist/local-env.d.mts +54 -0
  52. package/dist/local-env.mjs +178 -0
  53. package/dist/local-env.mjs.map +1 -0
  54. package/dist/metafile-esm.json +1 -0
  55. package/dist/open-OYMIZX6T.mjs +609 -0
  56. package/dist/open-OYMIZX6T.mjs.map +1 -0
  57. package/dist/prometheus-metrics.d.mts +50 -0
  58. package/dist/prometheus-metrics.mjs +4 -0
  59. package/dist/prometheus-metrics.mjs.map +1 -0
  60. package/dist/test-helpers/index.d.mts +46 -0
  61. package/dist/test-helpers/index.mjs +310 -0
  62. package/dist/test-helpers/index.mjs.map +1 -0
  63. package/dist/zod-format.d.mts +6 -0
  64. package/dist/zod-format.mjs +4 -0
  65. package/dist/zod-format.mjs.map +1 -0
  66. package/package.json +126 -0
@@ -0,0 +1,477 @@
1
+ import { __name } from './chunk-6LYDFTTF.mjs';
2
+
3
+ // src/default-compat-date.ts
4
+ var DEFAULT_COMPAT_DATE = "2026-09-02";
5
+
6
+ // src/assert-never.ts
7
+ function assertNever(_value) {
8
+ }
9
+ __name(assertNever, "assertNever");
10
+
11
+ // src/map-worker-metadata-bindings.ts
12
+ function mapWorkerMetadataBindings(bindings) {
13
+ return bindings.filter((binding) => binding.type !== "secret_text").reduce((configObj, binding) => {
14
+ switch (binding.type) {
15
+ case "plain_text":
16
+ {
17
+ configObj.vars = {
18
+ ...configObj.vars ?? {},
19
+ [binding.name]: binding.text
20
+ };
21
+ }
22
+ break;
23
+ case "json":
24
+ {
25
+ configObj.vars = {
26
+ ...configObj.vars ?? {},
27
+ [binding.name]: binding.json
28
+ };
29
+ }
30
+ break;
31
+ case "kv_namespace":
32
+ {
33
+ configObj.kv_namespaces = [
34
+ ...configObj.kv_namespaces ?? [],
35
+ { id: binding.namespace_id, binding: binding.name }
36
+ ];
37
+ }
38
+ break;
39
+ case "durable_object_namespace":
40
+ {
41
+ configObj.durable_objects = {
42
+ bindings: [
43
+ ...configObj.durable_objects?.bindings ?? [],
44
+ {
45
+ name: binding.name,
46
+ class_name: binding.class_name,
47
+ script_name: binding.script_name,
48
+ environment: binding.environment
49
+ }
50
+ ]
51
+ };
52
+ }
53
+ break;
54
+ case "d1":
55
+ {
56
+ configObj.d1_databases = [
57
+ ...configObj.d1_databases ?? [],
58
+ {
59
+ binding: binding.name,
60
+ database_id: binding.id
61
+ }
62
+ ];
63
+ }
64
+ break;
65
+ case "browser":
66
+ {
67
+ configObj.browser = {
68
+ binding: binding.name
69
+ };
70
+ }
71
+ break;
72
+ case "ai":
73
+ {
74
+ configObj.ai = {
75
+ binding: binding.name
76
+ };
77
+ }
78
+ break;
79
+ case "images":
80
+ {
81
+ configObj.images = {
82
+ binding: binding.name
83
+ };
84
+ }
85
+ break;
86
+ case "stream":
87
+ {
88
+ configObj.stream = {
89
+ binding: binding.name
90
+ };
91
+ }
92
+ break;
93
+ case "media":
94
+ {
95
+ configObj.media = {
96
+ binding: binding.name
97
+ };
98
+ }
99
+ break;
100
+ case "r2_bucket":
101
+ {
102
+ configObj.r2_buckets = [
103
+ ...configObj.r2_buckets ?? [],
104
+ {
105
+ binding: binding.name,
106
+ bucket_name: binding.bucket_name,
107
+ jurisdiction: binding.jurisdiction
108
+ }
109
+ ];
110
+ }
111
+ break;
112
+ case "secrets_store_secret":
113
+ {
114
+ configObj.secrets_store_secrets = [
115
+ ...configObj.secrets_store_secrets ?? [],
116
+ {
117
+ binding: binding.name,
118
+ store_id: binding.store_id,
119
+ secret_name: binding.secret_name
120
+ }
121
+ ];
122
+ }
123
+ break;
124
+ case "artifacts":
125
+ {
126
+ configObj.artifacts = [
127
+ ...configObj.artifacts ?? [],
128
+ {
129
+ binding: binding.name,
130
+ namespace: binding.namespace
131
+ }
132
+ ];
133
+ }
134
+ break;
135
+ case "unsafe_hello_world": {
136
+ configObj.unsafe_hello_world = [
137
+ ...configObj.unsafe_hello_world ?? [],
138
+ {
139
+ binding: binding.name,
140
+ enable_timer: binding.enable_timer
141
+ }
142
+ ];
143
+ break;
144
+ }
145
+ case "flagship": {
146
+ configObj.flagship = [
147
+ ...configObj.flagship ?? [],
148
+ {
149
+ binding: binding.name,
150
+ app_id: binding.app_id
151
+ }
152
+ ];
153
+ break;
154
+ }
155
+ case "service":
156
+ {
157
+ configObj.services = [
158
+ ...configObj.services ?? [],
159
+ {
160
+ binding: binding.name,
161
+ service: binding.service,
162
+ environment: binding.environment,
163
+ entrypoint: binding.entrypoint
164
+ }
165
+ ];
166
+ }
167
+ break;
168
+ case "analytics_engine":
169
+ {
170
+ configObj.analytics_engine_datasets = [
171
+ ...configObj.analytics_engine_datasets ?? [],
172
+ { binding: binding.name, dataset: binding.dataset }
173
+ ];
174
+ }
175
+ break;
176
+ case "dispatch_namespace":
177
+ {
178
+ configObj.dispatch_namespaces = [
179
+ ...configObj.dispatch_namespaces ?? [],
180
+ {
181
+ binding: binding.name,
182
+ namespace: binding.namespace,
183
+ ...binding.outbound && {
184
+ outbound: {
185
+ service: binding.outbound.worker.service,
186
+ environment: binding.outbound.worker.environment,
187
+ parameters: binding.outbound.params?.map((p) => p.name) ?? []
188
+ }
189
+ }
190
+ }
191
+ ];
192
+ }
193
+ break;
194
+ case "logfwdr":
195
+ {
196
+ configObj.logfwdr = {
197
+ bindings: [
198
+ ...configObj.logfwdr?.bindings ?? [],
199
+ { name: binding.name, destination: binding.destination }
200
+ ]
201
+ };
202
+ }
203
+ break;
204
+ case "wasm_module":
205
+ {
206
+ configObj.wasm_modules = {
207
+ ...configObj.wasm_modules ?? {},
208
+ [binding.name]: binding.part
209
+ };
210
+ }
211
+ break;
212
+ case "text_blob":
213
+ {
214
+ configObj.text_blobs = {
215
+ ...configObj.text_blobs ?? {},
216
+ [binding.name]: binding.part
217
+ };
218
+ }
219
+ break;
220
+ case "data_blob":
221
+ {
222
+ configObj.data_blobs = {
223
+ ...configObj.data_blobs ?? {},
224
+ [binding.name]: binding.part
225
+ };
226
+ }
227
+ break;
228
+ case "secret_text":
229
+ break;
230
+ case "version_metadata": {
231
+ {
232
+ configObj.version_metadata = {
233
+ binding: binding.name
234
+ };
235
+ }
236
+ break;
237
+ }
238
+ case "send_email": {
239
+ configObj.send_email = [
240
+ ...configObj.send_email ?? [],
241
+ {
242
+ name: binding.name,
243
+ destination_address: binding.destination_address,
244
+ allowed_destination_addresses: binding.allowed_destination_addresses,
245
+ allowed_sender_addresses: binding.allowed_sender_addresses
246
+ }
247
+ ];
248
+ break;
249
+ }
250
+ case "queue":
251
+ configObj.queues ??= { producers: [] };
252
+ configObj.queues.producers = [
253
+ ...configObj.queues.producers ?? [],
254
+ {
255
+ binding: binding.name,
256
+ queue: binding.queue_name,
257
+ delivery_delay: binding.delivery_delay
258
+ }
259
+ ];
260
+ break;
261
+ case "vectorize":
262
+ configObj.vectorize = [
263
+ ...configObj.vectorize ?? [],
264
+ {
265
+ binding: binding.name,
266
+ index_name: binding.index_name
267
+ }
268
+ ];
269
+ break;
270
+ case "ai_search_namespace":
271
+ configObj.ai_search_namespaces = [
272
+ ...configObj.ai_search_namespaces ?? [],
273
+ {
274
+ binding: binding.name,
275
+ namespace: binding.namespace
276
+ }
277
+ ];
278
+ break;
279
+ case "ai_search":
280
+ configObj.ai_search = [
281
+ ...configObj.ai_search ?? [],
282
+ {
283
+ binding: binding.name,
284
+ instance_name: binding.instance_name
285
+ }
286
+ ];
287
+ break;
288
+ case "websearch":
289
+ {
290
+ configObj.websearch = {
291
+ binding: binding.name
292
+ };
293
+ }
294
+ break;
295
+ case "agent_memory": {
296
+ configObj.agent_memory = [
297
+ ...configObj.agent_memory ?? [],
298
+ {
299
+ binding: binding.name,
300
+ namespace: binding.namespace
301
+ }
302
+ ];
303
+ break;
304
+ }
305
+ case "hyperdrive":
306
+ configObj.hyperdrive = [
307
+ ...configObj.hyperdrive ?? [],
308
+ {
309
+ binding: binding.name,
310
+ id: binding.id
311
+ }
312
+ ];
313
+ break;
314
+ case "mtls_certificate":
315
+ configObj.mtls_certificates = [
316
+ ...configObj.mtls_certificates ?? [],
317
+ {
318
+ binding: binding.name,
319
+ certificate_id: binding.certificate_id
320
+ }
321
+ ];
322
+ break;
323
+ case "pipelines":
324
+ configObj.pipelines = [
325
+ ...configObj.pipelines ?? [],
326
+ {
327
+ binding: binding.name,
328
+ // NOTE: stream is the primary field, but we also support pipeline for backward compatibility
329
+ ...binding.stream && { stream: binding.stream },
330
+ ...binding.pipeline && { pipeline: binding.pipeline }
331
+ }
332
+ ];
333
+ break;
334
+ case "assets":
335
+ configObj.assets = {
336
+ binding: binding.name
337
+ // Note: we currently don't get all the assets information from the
338
+ // API, so here we are only able to set the name of the binding
339
+ // hopefully in the future we can properly fully support the binding
340
+ };
341
+ break;
342
+ case "inherit":
343
+ configObj.unsafe = {
344
+ bindings: [...configObj.unsafe?.bindings ?? [], binding],
345
+ metadata: configObj.unsafe?.metadata ?? void 0
346
+ };
347
+ break;
348
+ case "workflow":
349
+ {
350
+ configObj.workflows = [
351
+ ...configObj.workflows ?? [],
352
+ {
353
+ binding: binding.name,
354
+ name: binding.workflow_name,
355
+ class_name: binding.class_name,
356
+ script_name: binding.script_name
357
+ }
358
+ ];
359
+ }
360
+ break;
361
+ case "worker_loader":
362
+ {
363
+ configObj.worker_loaders = [
364
+ ...configObj.worker_loaders ?? [],
365
+ {
366
+ binding: binding.name
367
+ }
368
+ ];
369
+ }
370
+ break;
371
+ case "ratelimit":
372
+ {
373
+ configObj.ratelimits = [
374
+ ...configObj.ratelimits ?? [],
375
+ {
376
+ name: binding.name,
377
+ namespace_id: binding.namespace_id,
378
+ simple: {
379
+ limit: binding.simple.limit,
380
+ period: binding.simple.period
381
+ }
382
+ }
383
+ ];
384
+ }
385
+ break;
386
+ case "vpc_service":
387
+ {
388
+ configObj.vpc_services = [
389
+ ...configObj.vpc_services ?? [],
390
+ {
391
+ binding: binding.name,
392
+ service_id: binding.service_id
393
+ }
394
+ ];
395
+ }
396
+ break;
397
+ case "vpc_network":
398
+ {
399
+ if (binding.tunnel_id !== void 0) {
400
+ configObj.vpc_networks = [
401
+ ...configObj.vpc_networks ?? [],
402
+ { binding: binding.name, tunnel_id: binding.tunnel_id }
403
+ ];
404
+ } else if (binding.network_id !== void 0) {
405
+ configObj.vpc_networks = [
406
+ ...configObj.vpc_networks ?? [],
407
+ { binding: binding.name, network_id: binding.network_id }
408
+ ];
409
+ }
410
+ }
411
+ break;
412
+ default: {
413
+ configObj.unsafe = {
414
+ bindings: [...configObj.unsafe?.bindings ?? [], binding],
415
+ metadata: configObj.unsafe?.metadata ?? void 0
416
+ };
417
+ }
418
+ }
419
+ return configObj;
420
+ }, {});
421
+ }
422
+ __name(mapWorkerMetadataBindings, "mapWorkerMetadataBindings");
423
+
424
+ // src/construct-wrangler-config.ts
425
+ function constructWranglerConfig(config) {
426
+ const mappedBindings = mapWorkerMetadataBindings(config.bindings);
427
+ const durableObjectClassNames = config.bindings.filter(
428
+ (binding) => binding.type === "durable_object_namespace" && binding.script_name === config.name
429
+ ).map(
430
+ (durableObject) => durableObject.class_name
431
+ );
432
+ const allRoutes = [
433
+ ...config.routes.map((r) => ({
434
+ pattern: r.pattern,
435
+ zone_name: r.zone_name
436
+ })),
437
+ ...config.domains.map((c) => ({
438
+ pattern: c.hostname,
439
+ zone_name: c.zone_name,
440
+ custom_domain: true,
441
+ enabled: c.enabled,
442
+ previews_enabled: c.previews_enabled
443
+ }))
444
+ ];
445
+ return {
446
+ name: config.name,
447
+ main: config.entrypoint,
448
+ workers_dev: config.subdomain.enabled,
449
+ preview_urls: config.subdomain.previews_enabled,
450
+ compatibility_date: config.compatibility_date ?? DEFAULT_COMPAT_DATE,
451
+ compatibility_flags: config.compatibility_flags,
452
+ ...allRoutes.length ? { routes: allRoutes } : {},
453
+ placement: config.placement?.mode === "smart" ? { mode: "smart" } : void 0,
454
+ limits: config.limits,
455
+ ...durableObjectClassNames.length && config.migration_tag ? {
456
+ migrations: [
457
+ {
458
+ tag: config.migration_tag,
459
+ new_classes: durableObjectClassNames
460
+ }
461
+ ]
462
+ } : {},
463
+ ...config.schedules.length ? {
464
+ triggers: {
465
+ crons: config.schedules.map((scheduled) => scheduled.cron)
466
+ }
467
+ } : {},
468
+ tail_consumers: config.tail_consumers ?? void 0,
469
+ observability: config.observability,
470
+ ...mappedBindings
471
+ };
472
+ }
473
+ __name(constructWranglerConfig, "constructWranglerConfig");
474
+
475
+ export { DEFAULT_COMPAT_DATE, assertNever, constructWranglerConfig, mapWorkerMetadataBindings };
476
+ //# sourceMappingURL=chunk-ZQ2EZEOC.mjs.map
477
+ //# sourceMappingURL=chunk-ZQ2EZEOC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/default-compat-date.ts","../src/assert-never.ts","../src/map-worker-metadata-bindings.ts","../src/construct-wrangler-config.ts"],"names":[],"mappings":"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","file":"chunk-ZQ2EZEOC.mjs","sourcesContent":["import type { CompatDate } from \"./compatibility-date\";\n\n/**\n * The compatibility date to use when the user has not specified one.\n *\n * This is the release date of the `workerd` version pinned in the pnpm catalog,\n * so it is fixed for a given release of workers-sdk and updated whenever\n * `workerd` is upgraded.\n *\n * It deliberately tracks `workerd` rather than the current date, because\n * workerd rejects a compatibility date later than either of:\n *\n * - its `MAXIMUM_COMPATIBILITY_DATE`, which is its release date plus 7 days, or\n * - today's date (UTC).\n *\n * Run `pnpm update:compat-date` to refresh this value; `pnpm check:compat-date`\n * asserts that it matches the pinned `workerd` version.\n *\n * @see https://github.com/cloudflare/workerd/blob/main/src/workerd/io/BUILD.bazel\n * @see https://github.com/cloudflare/workerd/blob/main/src/workerd/io/compatibility-date.c%2B%2B\n */\nexport const DEFAULT_COMPAT_DATE: CompatDate = \"2026-09-02\";\n","export function assertNever(_value: never) {}\n","import { assertNever } from \"./assert-never\";\nimport type { RawConfig } from \"./config\";\nimport type { WorkerMetadataBinding } from \"./types\";\n\n/**\n * Maps a set of bindings defined as worker metadata bindings (straight from the Cloudflare API) to bindings defined in the local format.\n *\n * @param bindings The set of worker metadata bindings to convert\n * @param accountId The ID of the account\n * @param complianceConfig The compliance region configuration\n * @returns A RawConfig object with its bindings populated based on the provided bindings\n */\nexport function mapWorkerMetadataBindings(\n\tbindings: WorkerMetadataBinding[]\n): RawConfig {\n\treturn (\n\t\tbindings\n\t\t\t.filter((binding) => (binding.type as string) !== \"secret_text\")\n\t\t\t// Combine the same types into {[type]: [binding]}\n\t\t\t.reduce((configObj, binding) => {\n\t\t\t\t// Some types have different names in wrangler.toml\n\t\t\t\t// I want the type safety of the binding being destructured after the case narrowing the union but type is unused\n\n\t\t\t\tswitch (binding.type) {\n\t\t\t\t\tcase \"plain_text\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.vars = {\n\t\t\t\t\t\t\t\t...(configObj.vars ?? {}),\n\t\t\t\t\t\t\t\t[binding.name]: binding.text,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"json\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.vars = {\n\t\t\t\t\t\t\t\t...(configObj.vars ?? {}),\n\t\t\t\t\t\t\t\t[binding.name]: binding.json,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"kv_namespace\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.kv_namespaces = [\n\t\t\t\t\t\t\t\t...(configObj.kv_namespaces ?? []),\n\t\t\t\t\t\t\t\t{ id: binding.namespace_id, binding: binding.name },\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"durable_object_namespace\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.durable_objects = {\n\t\t\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\t\t\t...(configObj.durable_objects?.bindings ?? []),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tname: binding.name,\n\t\t\t\t\t\t\t\t\t\tclass_name: binding.class_name,\n\t\t\t\t\t\t\t\t\t\tscript_name: binding.script_name,\n\t\t\t\t\t\t\t\t\t\tenvironment: binding.environment,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"d1\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.d1_databases = [\n\t\t\t\t\t\t\t\t...(configObj.d1_databases ?? []),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\t\tdatabase_id: binding.id,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"browser\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.browser = {\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"ai\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.ai = {\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"images\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.images = {\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"stream\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.stream = {\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"media\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.media = {\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"r2_bucket\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.r2_buckets = [\n\t\t\t\t\t\t\t\t...(configObj.r2_buckets ?? []),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\t\tbucket_name: binding.bucket_name,\n\t\t\t\t\t\t\t\t\tjurisdiction: binding.jurisdiction,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"secrets_store_secret\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.secrets_store_secrets = [\n\t\t\t\t\t\t\t\t...(configObj.secrets_store_secrets ?? []),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\t\tstore_id: binding.store_id,\n\t\t\t\t\t\t\t\t\tsecret_name: binding.secret_name,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"artifacts\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.artifacts = [\n\t\t\t\t\t\t\t\t...(configObj.artifacts ?? []),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\t\tnamespace: binding.namespace,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"unsafe_hello_world\": {\n\t\t\t\t\t\tconfigObj.unsafe_hello_world = [\n\t\t\t\t\t\t\t...(configObj.unsafe_hello_world ?? []),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\tenable_timer: binding.enable_timer,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"flagship\": {\n\t\t\t\t\t\tconfigObj.flagship = [\n\t\t\t\t\t\t\t...(configObj.flagship ?? []),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\tapp_id: binding.app_id,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"service\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.services = [\n\t\t\t\t\t\t\t\t...(configObj.services ?? []),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\t\tservice: binding.service,\n\t\t\t\t\t\t\t\t\tenvironment: binding.environment,\n\t\t\t\t\t\t\t\t\tentrypoint: binding.entrypoint,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"analytics_engine\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.analytics_engine_datasets = [\n\t\t\t\t\t\t\t\t...(configObj.analytics_engine_datasets ?? []),\n\t\t\t\t\t\t\t\t{ binding: binding.name, dataset: binding.dataset },\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"dispatch_namespace\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.dispatch_namespaces = [\n\t\t\t\t\t\t\t\t...(configObj.dispatch_namespaces ?? []),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\t\tnamespace: binding.namespace,\n\t\t\t\t\t\t\t\t\t...(binding.outbound && {\n\t\t\t\t\t\t\t\t\t\toutbound: {\n\t\t\t\t\t\t\t\t\t\t\tservice: binding.outbound.worker.service,\n\t\t\t\t\t\t\t\t\t\t\tenvironment: binding.outbound.worker.environment,\n\t\t\t\t\t\t\t\t\t\t\tparameters:\n\t\t\t\t\t\t\t\t\t\t\t\tbinding.outbound.params?.map((p) => p.name) ?? [],\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"logfwdr\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.logfwdr = {\n\t\t\t\t\t\t\t\tbindings: [\n\t\t\t\t\t\t\t\t\t...(configObj.logfwdr?.bindings ?? []),\n\t\t\t\t\t\t\t\t\t{ name: binding.name, destination: binding.destination },\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"wasm_module\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.wasm_modules = {\n\t\t\t\t\t\t\t\t...(configObj.wasm_modules ?? {}),\n\t\t\t\t\t\t\t\t[binding.name]: binding.part,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"text_blob\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.text_blobs = {\n\t\t\t\t\t\t\t\t...(configObj.text_blobs ?? {}),\n\t\t\t\t\t\t\t\t[binding.name]: binding.part,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"data_blob\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.data_blobs = {\n\t\t\t\t\t\t\t\t...(configObj.data_blobs ?? {}),\n\t\t\t\t\t\t\t\t[binding.name]: binding.part,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"secret_text\":\n\t\t\t\t\t\t// Ignore secrets\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"version_metadata\": {\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.version_metadata = {\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"send_email\": {\n\t\t\t\t\t\tconfigObj.send_email = [\n\t\t\t\t\t\t\t...(configObj.send_email ?? []),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: binding.name,\n\t\t\t\t\t\t\t\tdestination_address: binding.destination_address,\n\t\t\t\t\t\t\t\tallowed_destination_addresses:\n\t\t\t\t\t\t\t\t\tbinding.allowed_destination_addresses,\n\t\t\t\t\t\t\t\tallowed_sender_addresses: binding.allowed_sender_addresses,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"queue\":\n\t\t\t\t\t\tconfigObj.queues ??= { producers: [] };\n\t\t\t\t\t\tconfigObj.queues.producers = [\n\t\t\t\t\t\t\t...(configObj.queues.producers ?? []),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\tqueue: binding.queue_name,\n\t\t\t\t\t\t\t\tdelivery_delay: binding.delivery_delay,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"vectorize\":\n\t\t\t\t\t\tconfigObj.vectorize = [\n\t\t\t\t\t\t\t...(configObj.vectorize ?? []),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\tindex_name: binding.index_name,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"ai_search_namespace\":\n\t\t\t\t\t\tconfigObj.ai_search_namespaces = [\n\t\t\t\t\t\t\t...(configObj.ai_search_namespaces ?? []),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\tnamespace: binding.namespace,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"ai_search\":\n\t\t\t\t\t\tconfigObj.ai_search = [\n\t\t\t\t\t\t\t...(configObj.ai_search ?? []),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\tinstance_name: binding.instance_name,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"websearch\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.websearch = {\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"agent_memory\": {\n\t\t\t\t\t\tconfigObj.agent_memory = [\n\t\t\t\t\t\t\t...(configObj.agent_memory ?? []),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\tnamespace: binding.namespace,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"hyperdrive\":\n\t\t\t\t\t\tconfigObj.hyperdrive = [\n\t\t\t\t\t\t\t...(configObj.hyperdrive ?? []),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\tid: binding.id,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"mtls_certificate\":\n\t\t\t\t\t\tconfigObj.mtls_certificates = [\n\t\t\t\t\t\t\t...(configObj.mtls_certificates ?? []),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\tcertificate_id: binding.certificate_id,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"pipelines\":\n\t\t\t\t\t\tconfigObj.pipelines = [\n\t\t\t\t\t\t\t...(configObj.pipelines ?? []),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\t// NOTE: stream is the primary field, but we also support pipeline for backward compatibility\n\t\t\t\t\t\t\t\t...(binding.stream && { stream: binding.stream }),\n\n\t\t\t\t\t\t\t\t...(binding.pipeline && { pipeline: binding.pipeline }),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"assets\":\n\t\t\t\t\t\tconfigObj.assets = {\n\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t// Note: we currently don't get all the assets information from the\n\t\t\t\t\t\t\t// API, so here we are only able to set the name of the binding\n\t\t\t\t\t\t\t// hopefully in the future we can properly fully support the binding\n\t\t\t\t\t\t};\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"inherit\":\n\t\t\t\t\t\tconfigObj.unsafe = {\n\t\t\t\t\t\t\tbindings: [...(configObj.unsafe?.bindings ?? []), binding],\n\t\t\t\t\t\t\tmetadata: configObj.unsafe?.metadata ?? undefined,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"workflow\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.workflows = [\n\t\t\t\t\t\t\t\t...(configObj.workflows ?? []),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\t\tname: binding.workflow_name,\n\t\t\t\t\t\t\t\t\tclass_name: binding.class_name,\n\t\t\t\t\t\t\t\t\tscript_name: binding.script_name,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"worker_loader\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.worker_loaders = [\n\t\t\t\t\t\t\t\t...(configObj.worker_loaders ?? []),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"ratelimit\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.ratelimits = [\n\t\t\t\t\t\t\t\t...(configObj.ratelimits ?? []),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: binding.name,\n\t\t\t\t\t\t\t\t\tnamespace_id: binding.namespace_id,\n\t\t\t\t\t\t\t\t\tsimple: {\n\t\t\t\t\t\t\t\t\t\tlimit: binding.simple.limit,\n\t\t\t\t\t\t\t\t\t\tperiod: binding.simple.period,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"vpc_service\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfigObj.vpc_services = [\n\t\t\t\t\t\t\t\t...(configObj.vpc_services ?? []),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbinding: binding.name,\n\t\t\t\t\t\t\t\t\tservice_id: binding.service_id,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"vpc_network\":\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (binding.tunnel_id !== undefined) {\n\t\t\t\t\t\t\t\tconfigObj.vpc_networks = [\n\t\t\t\t\t\t\t\t\t...(configObj.vpc_networks ?? []),\n\t\t\t\t\t\t\t\t\t{ binding: binding.name, tunnel_id: binding.tunnel_id },\n\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t} else if (binding.network_id !== undefined) {\n\t\t\t\t\t\t\t\tconfigObj.vpc_networks = [\n\t\t\t\t\t\t\t\t\t...(configObj.vpc_networks ?? []),\n\t\t\t\t\t\t\t\t\t{ binding: binding.name, network_id: binding.network_id },\n\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tconfigObj.unsafe = {\n\t\t\t\t\t\t\tbindings: [...(configObj.unsafe?.bindings ?? []), binding],\n\t\t\t\t\t\t\tmetadata: configObj.unsafe?.metadata ?? undefined,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tassertNever(binding);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn configObj;\n\t\t\t}, {} as RawConfig)\n\t);\n}\n","import { DEFAULT_COMPAT_DATE } from \"./default-compat-date\";\nimport { mapWorkerMetadataBindings } from \"./map-worker-metadata-bindings\";\nimport type { RawConfig } from \"./config\";\nimport type {\n\tCustomDomainRoute,\n\tRoute,\n\tTailConsumer,\n\tZoneNameRoute,\n} from \"./config/environment\";\nimport type { WorkerMetadata } from \"./types\";\nimport type { AssetConfig } from \"@cloudflare/workers-shared\";\nimport type { Cloudflare } from \"cloudflare\";\n\ntype RoutesRes = {\n\tid: string;\n\tpattern: string;\n\tzone_name: string;\n\tscript: string;\n}[];\n\ninterface APIWorkerConfig {\n\t/* sourced from https://developers.cloudflare.com/api/resources/workers/subresources/scripts/methods/list/ */\n\tname: string; // property renamed from `id`...\n\tentrypoint: string;\n\ttags: string[] | null;\n\tcompatibility_date: string;\n\tcompatibility_flags: string[];\n\tlogpush: boolean | undefined;\n\troutes: RoutesRes;\n\ttail_consumers: TailConsumer[] | undefined | null;\n\tmigration_tag?: string;\n\n\t/* sourced from https://developers.cloudflare.com/api/resources/workers/subresources/domains/methods/list/ */\n\tdomains: Cloudflare.Workers.Domain[];\n\t/* sourced from https://developers.cloudflare.com/api/resources/workers/subresources/scripts/subresources/schedules/methods/get/ */\n\tschedules: Cloudflare.Workers.Scripts.Schedules.ScheduleGetResponse.Schedule[];\n\n\t/* sourced from https://developers.cloudflare.com/api/resources/workers/subresources/beta/subresources/workers/subresources/versions/methods/get/ using `{version_id}` of `latest` */\n\tassets?: AssetConfig;\n\tbindings: WorkerMetadata[\"bindings\"];\n\tobservability: Cloudflare.Workers.Beta.Worker.Observability | undefined;\n\tlimits: { cpu_ms?: number; subrequests?: number } | undefined;\n\tplacement: Cloudflare.Workers.Beta.Workers.Version.Placement | undefined;\n\tsubdomain: {\n\t\tenabled: boolean;\n\t\tpreviews_enabled: boolean;\n\t};\n}\n\n/**\n * Given information about a Worker,\n * construct a Wrangler config file for the application.\n *\n * @param config - The Worker configuration sourced from the Cloudflare API\n * @returns A Wrangler-compatible raw config object\n */\nexport function constructWranglerConfig(config: APIWorkerConfig): RawConfig {\n\tconst mappedBindings = mapWorkerMetadataBindings(config.bindings);\n\n\tconst durableObjectClassNames = config.bindings\n\t\t.filter(\n\t\t\t(binding) =>\n\t\t\t\tbinding.type === \"durable_object_namespace\" &&\n\t\t\t\tbinding.script_name === config.name\n\t\t)\n\t\t.map(\n\t\t\t(durableObject) => (durableObject as { class_name: string }).class_name\n\t\t);\n\n\tconst allRoutes: Route[] = [\n\t\t...config.routes.map<ZoneNameRoute>((r) => ({\n\t\t\tpattern: r.pattern,\n\t\t\tzone_name: r.zone_name,\n\t\t})),\n\t\t...config.domains.map<CustomDomainRoute>((c) => ({\n\t\t\tpattern: c.hostname as string,\n\t\t\tzone_name: c.zone_name,\n\t\t\tcustom_domain: true,\n\t\t\tenabled: (c as typeof c & { enabled: boolean }).enabled,\n\t\t\tpreviews_enabled: (c as typeof c & { previews_enabled: boolean })\n\t\t\t\t.previews_enabled,\n\t\t})),\n\t];\n\n\treturn {\n\t\tname: config.name,\n\t\tmain: config.entrypoint,\n\t\tworkers_dev: config.subdomain.enabled,\n\t\tpreview_urls: config.subdomain.previews_enabled,\n\t\tcompatibility_date: config.compatibility_date ?? DEFAULT_COMPAT_DATE,\n\t\tcompatibility_flags: config.compatibility_flags,\n\t\t...(allRoutes.length ? { routes: allRoutes } : {}),\n\t\tplacement:\n\t\t\tconfig.placement?.mode === \"smart\" ? { mode: \"smart\" } : undefined,\n\t\tlimits: config.limits,\n\t\t...(durableObjectClassNames.length && config.migration_tag\n\t\t\t? {\n\t\t\t\t\tmigrations: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttag: config.migration_tag,\n\t\t\t\t\t\t\tnew_classes: durableObjectClassNames,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t: {}),\n\t\t...(config.schedules.length\n\t\t\t? {\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\tcrons: config.schedules.map((scheduled) => scheduled.cron),\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t: {}),\n\t\ttail_consumers: config.tail_consumers ?? undefined,\n\t\tobservability: config.observability,\n\t\t...mappedBindings,\n\t};\n}\n"]}
@@ -0,0 +1,80 @@
1
+ type YYYY = `${number}${number}${number}${number}`;
2
+ type MM = `${number}${number}`;
3
+ type DD = `${number}${number}`;
4
+ /**
5
+ * Represents a valid compatibility date, a string such as `2025-09-27`
6
+ */
7
+ type CompatDate = `${YYYY}-${MM}-${DD}`;
8
+ /**
9
+ * Discern whether a string represents a compatibility date (`YYYY-MM-DD`)
10
+ *
11
+ * @param str The target string
12
+ * @returns true if the string represents a compatibility date, false otherwise
13
+ */
14
+ declare function isCompatDate(str: string): str is CompatDate;
15
+ /**
16
+ * Returns today's date as a compatibility date string (`YYYY-MM-DD`).
17
+ */
18
+ declare function getTodaysCompatDate(): CompatDate;
19
+ /**
20
+ * The compatibility date on which the `nodejs_compat` and `nodejs_compat_v2`
21
+ * compatibility flags became enabled by default in workerd.
22
+ *
23
+ * From this date onwards, specifying either flag explicitly is a validation
24
+ * error ("The compatibility flag nodejs_compat became the default as of
25
+ * 2026-08-04 so does not need to be specified anymore"), so tooling must not
26
+ * add them to configurations using such a compatibility date.
27
+ *
28
+ * @see https://github.com/cloudflare/workerd/blob/main/src/workerd/io/compatibility-date.capnp
29
+ */
30
+ declare const NODEJS_COMPAT_DEFAULT_ON_DATE = "2026-08-04";
31
+ /**
32
+ * Whether workerd enables Node.js compatibility by default for the given
33
+ * compatibility date, i.e. without the `nodejs_compat` flag being specified.
34
+ *
35
+ * @param compatibilityDate The compatibility date to check
36
+ * @returns true if the date is on or after {@link NODEJS_COMPAT_DEFAULT_ON_DATE}
37
+ */
38
+ declare function isNodejsCompatDefaultOn(compatibilityDate: string | undefined): boolean;
39
+ /**
40
+ * The compatibility date on which `nodejs_compat` started implying
41
+ * `nodejs_compat_v2`.
42
+ */
43
+ declare const NODEJS_COMPAT_V2_SWITCH_OVER_DATE = "2024-09-23";
44
+ /**
45
+ * Resolves whether workerd will enable the `nodejs_compat` and
46
+ * `nodejs_compat_v2` features, mirroring how workerd itself resolves them from
47
+ * the compatibility date and flags:
48
+ * - Both are enabled by default from {@link NODEJS_COMPAT_DEFAULT_ON_DATE}
49
+ * onwards, and each must be turned off separately from that date, with
50
+ * `no_nodejs_compat` and `no_nodejs_compat_v2` respectively.
51
+ * - Before that date, `nodejs_compat` implies `nodejs_compat_v2` from
52
+ * {@link NODEJS_COMPAT_V2_SWITCH_OVER_DATE} onwards.
53
+ *
54
+ * @param compatibilityDate The compatibility date
55
+ * @param compatibilityFlags The compatibility flags
56
+ */
57
+ declare function resolveNodejsCompat(compatibilityDate: string, compatibilityFlags: string[]): {
58
+ isNodejsCompatEnabled: boolean;
59
+ isNodejsCompatV2Enabled: boolean;
60
+ };
61
+ /**
62
+ * Removes the `nodejs_compat` and `nodejs_compat_v2` flags from a list of
63
+ * compatibility flags when the compatibility date already enables them.
64
+ *
65
+ * workerd rejects a compatibility flag that its compatibility date enables by
66
+ * default, so from {@link NODEJS_COMPAT_DEFAULT_ON_DATE} onwards specifying
67
+ * either flag stops a Worker from starting up. Removing them is a no-op for
68
+ * such a date, so tooling can accept the redundant flags rather than failing.
69
+ *
70
+ * A flag is kept when its matching opt-out is specified too, since workerd
71
+ * reports those as contradictory and the enable flag wins there - dropping it
72
+ * would silently switch Node.js compatibility off instead.
73
+ *
74
+ * @param compatibilityDate The compatibility date
75
+ * @param compatibilityFlags The compatibility flags
76
+ * @returns The flags, without the ones the date makes redundant
77
+ */
78
+ declare function stripRedundantNodejsCompatFlags(compatibilityDate: string | undefined, compatibilityFlags: string[]): string[];
79
+
80
+ export { type CompatDate, NODEJS_COMPAT_DEFAULT_ON_DATE, NODEJS_COMPAT_V2_SWITCH_OVER_DATE, getTodaysCompatDate, isCompatDate, isNodejsCompatDefaultOn, resolveNodejsCompat, stripRedundantNodejsCompatFlags };
@@ -0,0 +1,4 @@
1
+ export { NODEJS_COMPAT_DEFAULT_ON_DATE, NODEJS_COMPAT_V2_SWITCH_OVER_DATE, getTodaysCompatDate, isCompatDate, isNodejsCompatDefaultOn, resolveNodejsCompat, stripRedundantNodejsCompatFlags } from './chunk-ZLUHKBEC.mjs';
2
+ import './chunk-6LYDFTTF.mjs';
3
+ //# sourceMappingURL=compatibility-date.mjs.map
4
+ //# sourceMappingURL=compatibility-date.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"compatibility-date.mjs"}