create-cloudflare 2.72.12 → 2.73.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 (60) hide show
  1. package/dist/cli.js +895 -628
  2. package/package.json +7 -7
  3. package/templates/analog/c3.ts +1 -0
  4. package/templates/angular/pages/c3.ts +1 -0
  5. package/templates/angular/workers/c3.ts +1 -0
  6. package/templates/django/c3.ts +19 -0
  7. package/templates/django/py/.python-version +1 -0
  8. package/templates/django/py/README.md +14 -0
  9. package/templates/django/py/__dot__gitignore +7 -0
  10. package/templates/django/py/package.json +13 -0
  11. package/templates/django/py/pyproject.toml +10 -0
  12. package/templates/django/py/src/django_app/__init__.py +0 -0
  13. package/templates/django/py/src/django_app/settings.py +11 -0
  14. package/templates/django/py/src/django_app/urls.py +9 -0
  15. package/templates/django/py/src/django_app/wsgi.py +7 -0
  16. package/templates/django/py/src/entry.py +12 -0
  17. package/templates/django/py/wrangler.jsonc +9 -0
  18. package/templates/docusaurus/pages/c3.ts +1 -0
  19. package/templates/docusaurus/workers/c3.ts +1 -0
  20. package/templates/fastapi/c3.ts +19 -0
  21. package/templates/fastapi/py/.python-version +1 -0
  22. package/templates/fastapi/py/README.md +14 -0
  23. package/templates/fastapi/py/__dot__gitignore +7 -0
  24. package/templates/fastapi/py/package.json +13 -0
  25. package/templates/fastapi/py/pyproject.toml +10 -0
  26. package/templates/fastapi/py/src/entry.py +14 -0
  27. package/templates/fastapi/py/wrangler.jsonc +9 -0
  28. package/templates/flask/c3.ts +19 -0
  29. package/templates/flask/py/.python-version +1 -0
  30. package/templates/flask/py/README.md +14 -0
  31. package/templates/flask/py/__dot__gitignore +7 -0
  32. package/templates/flask/py/package.json +13 -0
  33. package/templates/flask/py/pyproject.toml +10 -0
  34. package/templates/flask/py/src/entry.py +14 -0
  35. package/templates/flask/py/wrangler.jsonc +9 -0
  36. package/templates/gatsby/pages/c3.ts +1 -0
  37. package/templates/gatsby/workers/c3.ts +1 -0
  38. package/templates/hello-world-assets-only/c3.ts +1 -0
  39. package/templates/hono/pages/c3.ts +1 -0
  40. package/templates/hono/workers/c3.ts +1 -0
  41. package/templates/next/c3.ts +1 -0
  42. package/templates/next/experimental_c3.ts +1 -0
  43. package/templates/nuxt/pages/c3.ts +1 -0
  44. package/templates/nuxt/workers/c3.ts +1 -0
  45. package/templates/openapi/c3.ts +1 -0
  46. package/templates/pre-existing/c3.ts +1 -0
  47. package/templates/qwik/pages/c3.ts +1 -0
  48. package/templates/qwik/workers/c3.ts +1 -0
  49. package/templates/react/pages/c3.ts +1 -0
  50. package/templates/react-router/c3.ts +1 -0
  51. package/templates/redwood/c3.ts +1 -0
  52. package/templates/solid/c3.ts +1 -0
  53. package/templates/svelte/pages/c3.ts +1 -0
  54. package/templates/svelte/workers/c3.ts +1 -0
  55. package/templates/tanstack-start/c3.ts +1 -0
  56. package/templates/vike/c3.ts +1 -0
  57. package/templates/vike/experimental-c3.ts +1 -0
  58. package/templates/vue/pages/c3.ts +1 -0
  59. package/templates/waku/c3.ts +1 -0
  60. package/templates/waku/experimental-c3.ts +1 -0
package/dist/cli.js CHANGED
@@ -43,11 +43,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
43
43
  ));
44
44
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
45
45
 
46
- // ../workers-utils/dist/chunk-Q72B4Q5Z.mjs
47
- var __create2, __defProp2, __getOwnPropDesc2, __getOwnPropNames2, __getProtoOf2, __hasOwnProp2, __name, __require, __commonJS2, __export2, __copyProps2, __toESM2;
48
- var init_chunk_Q72B4Q5Z = __esm({
49
- "../workers-utils/dist/chunk-Q72B4Q5Z.mjs"() {
46
+ // ../workers-utils/dist/chunk-U6NEESU5.mjs
47
+ var import_node_module, import_meta, require$1, __create2, __defProp2, __getOwnPropDesc2, __getOwnPropNames2, __getProtoOf2, __hasOwnProp2, __name, __require, __commonJS2, __export2, __copyProps2, __toESM2;
48
+ var init_chunk_U6NEESU5 = __esm({
49
+ "../workers-utils/dist/chunk-U6NEESU5.mjs"() {
50
50
  "use strict";
51
+ import_node_module = require("node:module");
52
+ import_meta = {};
53
+ require$1 = (0, import_node_module.createRequire)(import_meta.url || (typeof __filename === "string" ? __filename : "/"));
51
54
  __create2 = Object.create;
52
55
  __defProp2 = Object.defineProperty;
53
56
  __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
@@ -55,10 +58,10 @@ var init_chunk_Q72B4Q5Z = __esm({
55
58
  __getProtoOf2 = Object.getPrototypeOf;
56
59
  __hasOwnProp2 = Object.prototype.hasOwnProperty;
57
60
  __name = (target, value) => __defProp2(target, "name", { value, configurable: true });
58
- __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
59
- get: (a, b2) => (typeof require !== "undefined" ? require : a)[b2]
61
+ __require = /* @__PURE__ */ ((x) => typeof require$1 !== "undefined" ? require$1 : typeof Proxy !== "undefined" ? new Proxy(x, {
62
+ get: (a, b2) => (typeof require$1 !== "undefined" ? require$1 : a)[b2]
60
63
  }) : x)(function(x) {
61
- if (typeof require !== "undefined") return require.apply(this, arguments);
64
+ if (typeof require$1 !== "undefined") return require$1.apply(this, arguments);
62
65
  throw Error('Dynamic require of "' + x + '" is not supported');
63
66
  });
64
67
  __commonJS2 = (cb, mod) => function __require2() {
@@ -26504,9 +26507,9 @@ ${captureLines}` : capture.stack;
26504
26507
  }
26505
26508
  });
26506
26509
 
26507
- // ../workers-utils/dist/open-PBXRGS4R.mjs
26508
- var open_PBXRGS4R_exports = {};
26509
- __export(open_PBXRGS4R_exports, {
26510
+ // ../workers-utils/dist/open-PCXX3ZDZ.mjs
26511
+ var open_PCXX3ZDZ_exports = {};
26512
+ __export(open_PCXX3ZDZ_exports, {
26510
26513
  apps: () => apps,
26511
26514
  default: () => open_default,
26512
26515
  openApp: () => openApp
@@ -26648,11 +26651,12 @@ function detectPlatformBinary({ [platform]: platformBinary }, { wsl } = {}) {
26648
26651
  }
26649
26652
  return detectArchBinary(platformBinary);
26650
26653
  }
26651
- var import_node_process7, import_node_path4, import_node_url, import_node_child_process, import_promises, import_node_util2, import_node_os4, import_node_fs3, import_node_buffer, import_meta, isDockerCached, cachedResult, hasContainerEnv, isWsl, is_wsl_default, execFile, powerShellPath, executePowerShell, execFile2, wslDrivesMountPoint, powerShellPathFromWsl, powerShellPath2, canAccessPowerShellPromise, canAccessPowerShell, wslDefaultBrowser, convertWslPathToWindows, execFileAsync, execFileAsync2, execFileAsync3, windowsBrowserProgIds, _windowsBrowserProgIdMap, UnknownBrowserError, execFileAsync4, titleize, isInSsh, is_in_ssh_default, fallbackAttemptSymbol, __dirname$1, localXdgOpenPath, platform, arch, tryEachApp, baseOpen, open, openApp, apps, open_default;
26652
- var init_open_PBXRGS4R = __esm({
26653
- "../workers-utils/dist/open-PBXRGS4R.mjs"() {
26654
+ var import_node_module12, import_node_process7, import_node_path4, import_node_url, import_node_child_process, import_promises, import_node_util2, import_node_os4, import_node_fs3, import_node_buffer, import_meta12, isDockerCached, cachedResult, hasContainerEnv, isWsl, is_wsl_default, execFile, powerShellPath, executePowerShell, execFile2, wslDrivesMountPoint, powerShellPathFromWsl, powerShellPath2, canAccessPowerShellPromise, canAccessPowerShell, wslDefaultBrowser, convertWslPathToWindows, execFileAsync, execFileAsync2, execFileAsync3, windowsBrowserProgIds, _windowsBrowserProgIdMap, UnknownBrowserError, execFileAsync4, titleize, isInSsh, is_in_ssh_default, fallbackAttemptSymbol, __dirname$1, localXdgOpenPath, platform, arch, tryEachApp, baseOpen, open, openApp, apps, open_default;
26655
+ var init_open_PCXX3ZDZ = __esm({
26656
+ "../workers-utils/dist/open-PCXX3ZDZ.mjs"() {
26654
26657
  "use strict";
26655
- init_chunk_Q72B4Q5Z();
26658
+ import_node_module12 = require("node:module");
26659
+ init_chunk_U6NEESU5();
26656
26660
  import_node_process7 = __toESM(require("node:process"), 1);
26657
26661
  import_node_path4 = __toESM(require("node:path"), 1);
26658
26662
  import_node_url = require("node:url");
@@ -26662,7 +26666,8 @@ var init_open_PBXRGS4R = __esm({
26662
26666
  import_node_os4 = __toESM(require("node:os"), 1);
26663
26667
  import_node_fs3 = __toESM(require("node:fs"), 1);
26664
26668
  import_node_buffer = require("node:buffer");
26665
- import_meta = {};
26669
+ import_meta12 = {};
26670
+ (0, import_node_module12.createRequire)(import_meta12.url || (typeof __filename === "string" ? __filename : "/"));
26666
26671
  __name(hasDockerEnv, "hasDockerEnv");
26667
26672
  __name(hasDockerCGroup, "hasDockerCGroup");
26668
26673
  __name(isDocker, "isDocker");
@@ -26823,7 +26828,7 @@ var init_open_PBXRGS4R = __esm({
26823
26828
  isInSsh = Boolean(import_node_process7.default.env.SSH_CONNECTION || import_node_process7.default.env.SSH_CLIENT || import_node_process7.default.env.SSH_TTY);
26824
26829
  is_in_ssh_default = isInSsh;
26825
26830
  fallbackAttemptSymbol = /* @__PURE__ */ Symbol("fallbackAttempt");
26826
- __dirname$1 = import_meta.url ? import_node_path4.default.dirname((0, import_node_url.fileURLToPath)(import_meta.url)) : "";
26831
+ __dirname$1 = import_meta12.url ? import_node_path4.default.dirname((0, import_node_url.fileURLToPath)(import_meta12.url)) : "";
26827
26832
  localXdgOpenPath = import_node_path4.default.join(__dirname$1, "xdg-open");
26828
26833
  ({ platform, arch } = import_node_process7.default);
26829
26834
  tryEachApp = /* @__PURE__ */ __name(async (apps22, opener) => {
@@ -75341,8 +75346,14 @@ var stderr = process.stderr;
75341
75346
  // ../cli/dist/check-macos-version.mjs
75342
75347
  var import_node_os2 = __toESM(require("node:os"), 1);
75343
75348
 
75344
- // ../workers-utils/dist/chunk-WO2IAW6M.mjs
75345
- init_chunk_Q72B4Q5Z();
75349
+ // ../workers-utils/dist/errors.mjs
75350
+ var import_node_module3 = require("node:module");
75351
+
75352
+ // ../workers-utils/dist/chunk-OWPFSLY6.mjs
75353
+ var import_node_module2 = require("node:module");
75354
+ init_chunk_U6NEESU5();
75355
+ var import_meta2 = {};
75356
+ (0, import_node_module2.createRequire)(import_meta2.url || (typeof __filename === "string" ? __filename : "/"));
75346
75357
  var UserError = class extends Error {
75347
75358
  static {
75348
75359
  __name(this, "UserError");
@@ -75401,6 +75412,10 @@ function createFatalError(message, isJson, options) {
75401
75412
  }
75402
75413
  __name(createFatalError, "createFatalError");
75403
75414
 
75415
+ // ../workers-utils/dist/errors.mjs
75416
+ var import_meta3 = {};
75417
+ (0, import_node_module3.createRequire)(import_meta3.url || (typeof __filename === "string" ? __filename : "/"));
75418
+
75404
75419
  // ../cli/dist/check-macos-version.mjs
75405
75420
  var import_ci_info = __toESM(require_ci_info(), 1);
75406
75421
  var MINIMUM_MACOS_VERSION = "13.5.0";
@@ -77418,8 +77433,14 @@ function isInteractive() {
77418
77433
  var import_node_fs5 = require("node:fs");
77419
77434
  var import_node_path6 = require("node:path");
77420
77435
 
77421
- // ../workers-utils/dist/chunk-OWXQB7GP.mjs
77422
- init_chunk_Q72B4Q5Z();
77436
+ // ../workers-utils/dist/index.mjs
77437
+ var import_node_module13 = require("node:module");
77438
+
77439
+ // ../workers-utils/dist/chunk-PWC7WAOU.mjs
77440
+ var import_node_module4 = require("node:module");
77441
+ init_chunk_U6NEESU5();
77442
+ var import_meta4 = {};
77443
+ (0, import_node_module4.createRequire)(import_meta4.url || (typeof __filename === "string" ? __filename : "/"));
77423
77444
  var external_exports = {};
77424
77445
  __export2(external_exports, {
77425
77446
  $brand: () => $brand,
@@ -92227,8 +92248,14 @@ function formatZodError(error51) {
92227
92248
  }
92228
92249
  __name(formatZodError, "formatZodError");
92229
92250
 
92230
- // ../workers-utils/dist/chunk-MCNIGVAF.mjs
92231
- init_chunk_Q72B4Q5Z();
92251
+ // ../workers-utils/dist/chunk-AUSY7DKT.mjs
92252
+ var import_node_module6 = require("node:module");
92253
+
92254
+ // ../workers-utils/dist/chunk-M3RITKR3.mjs
92255
+ var import_node_module5 = require("node:module");
92256
+ init_chunk_U6NEESU5();
92257
+ var import_meta5 = {};
92258
+ (0, import_node_module5.createRequire)(import_meta5.url || (typeof __filename === "string" ? __filename : "/"));
92232
92259
  function dedent(templ) {
92233
92260
  var values = [];
92234
92261
  for (var _i = 1; _i < arguments.length; _i++) {
@@ -92270,10 +92297,12 @@ function dedent(templ) {
92270
92297
  __name(dedent, "dedent");
92271
92298
  var esm_default = dedent;
92272
92299
 
92273
- // ../workers-utils/dist/chunk-XNN5XXU4.mjs
92274
- init_chunk_Q72B4Q5Z();
92300
+ // ../workers-utils/dist/chunk-AUSY7DKT.mjs
92301
+ init_chunk_U6NEESU5();
92275
92302
  var import_node_fs = require("node:fs");
92276
92303
  var import_node_path = __toESM(require("node:path"), 1);
92304
+ var import_meta6 = {};
92305
+ (0, import_node_module6.createRequire)(import_meta6.url || (typeof __filename === "string" ? __filename : "/"));
92277
92306
  function hasKnownExportType(entry) {
92278
92307
  const type = entry?.type;
92279
92308
  return type === "durable-object" || type === "worker" || type === "workflow";
@@ -92297,6 +92326,11 @@ function partitionExports(exports$1) {
92297
92326
  return partitioned;
92298
92327
  }
92299
92328
  __name(partitionExports, "partitionExports");
92329
+ function isLiveDurableObjectExport(exportConfig) {
92330
+ const state = exportConfig.state ?? "created";
92331
+ return state === "created" || state === "expecting-transfer";
92332
+ }
92333
+ __name(isLiveDurableObjectExport, "isLiveDurableObjectExport");
92300
92334
  function getDurableObjectExports(exports$1) {
92301
92335
  return partitionExports(exports$1)["durable-object"];
92302
92336
  }
@@ -92416,7 +92450,7 @@ function getDurableObjectClassNameToUseSQLiteMap(migrations, exports$1) {
92416
92450
  if (entry.type !== "durable-object") {
92417
92451
  continue;
92418
92452
  }
92419
- if (entry.state === void 0 || entry.state === "created" || entry.state === "expecting-transfer") {
92453
+ if (isLiveDurableObjectExport(entry)) {
92420
92454
  durableObjectClassNameToUseSQLiteMap.set(
92421
92455
  className,
92422
92456
  entry.storage === "sqlite"
@@ -95324,469 +95358,12 @@ function formatConfigSnippet(snippet, configPath, formatted = true) {
95324
95358
  }
95325
95359
  __name(formatConfigSnippet, "formatConfigSnippet");
95326
95360
 
95327
- // ../workers-utils/dist/chunk-DKSA7K25.mjs
95328
- init_chunk_Q72B4Q5Z();
95329
- var DEFAULT_COMPAT_DATE = "2026-09-23";
95330
- function assertNever2(_value) {
95331
- }
95332
- __name(assertNever2, "assertNever");
95333
- function mapWorkerMetadataBindings(bindings) {
95334
- return bindings.filter((binding) => binding.type !== "secret_text").reduce((configObj, binding) => {
95335
- switch (binding.type) {
95336
- case "plain_text":
95337
- {
95338
- configObj.vars = {
95339
- ...configObj.vars ?? {},
95340
- [binding.name]: binding.text
95341
- };
95342
- }
95343
- break;
95344
- case "json":
95345
- {
95346
- configObj.vars = {
95347
- ...configObj.vars ?? {},
95348
- [binding.name]: binding.json
95349
- };
95350
- }
95351
- break;
95352
- case "kv_namespace":
95353
- {
95354
- configObj.kv_namespaces = [
95355
- ...configObj.kv_namespaces ?? [],
95356
- { id: binding.namespace_id, binding: binding.name }
95357
- ];
95358
- }
95359
- break;
95360
- case "durable_object_namespace":
95361
- {
95362
- configObj.durable_objects = {
95363
- bindings: [
95364
- ...configObj.durable_objects?.bindings ?? [],
95365
- {
95366
- name: binding.name,
95367
- class_name: binding.class_name,
95368
- script_name: binding.script_name,
95369
- environment: binding.environment
95370
- }
95371
- ]
95372
- };
95373
- }
95374
- break;
95375
- case "d1":
95376
- {
95377
- configObj.d1_databases = [
95378
- ...configObj.d1_databases ?? [],
95379
- {
95380
- binding: binding.name,
95381
- database_id: binding.id
95382
- }
95383
- ];
95384
- }
95385
- break;
95386
- case "browser":
95387
- {
95388
- configObj.browser = {
95389
- binding: binding.name
95390
- };
95391
- }
95392
- break;
95393
- case "ai":
95394
- {
95395
- configObj.ai = {
95396
- binding: binding.name
95397
- };
95398
- }
95399
- break;
95400
- case "images":
95401
- {
95402
- configObj.images = {
95403
- binding: binding.name
95404
- };
95405
- }
95406
- break;
95407
- case "stream":
95408
- {
95409
- configObj.stream = {
95410
- binding: binding.name
95411
- };
95412
- }
95413
- break;
95414
- case "media":
95415
- {
95416
- configObj.media = {
95417
- binding: binding.name
95418
- };
95419
- }
95420
- break;
95421
- case "r2_bucket":
95422
- {
95423
- configObj.r2_buckets = [
95424
- ...configObj.r2_buckets ?? [],
95425
- {
95426
- binding: binding.name,
95427
- bucket_name: binding.bucket_name,
95428
- jurisdiction: binding.jurisdiction
95429
- }
95430
- ];
95431
- }
95432
- break;
95433
- case "secrets_store_secret":
95434
- {
95435
- configObj.secrets_store_secrets = [
95436
- ...configObj.secrets_store_secrets ?? [],
95437
- {
95438
- binding: binding.name,
95439
- store_id: binding.store_id,
95440
- secret_name: binding.secret_name
95441
- }
95442
- ];
95443
- }
95444
- break;
95445
- case "artifacts":
95446
- {
95447
- configObj.artifacts = [
95448
- ...configObj.artifacts ?? [],
95449
- {
95450
- binding: binding.name,
95451
- namespace: binding.namespace
95452
- }
95453
- ];
95454
- }
95455
- break;
95456
- case "unsafe_hello_world": {
95457
- configObj.unsafe_hello_world = [
95458
- ...configObj.unsafe_hello_world ?? [],
95459
- {
95460
- binding: binding.name,
95461
- enable_timer: binding.enable_timer
95462
- }
95463
- ];
95464
- break;
95465
- }
95466
- case "flagship": {
95467
- configObj.flagship = [
95468
- ...configObj.flagship ?? [],
95469
- {
95470
- binding: binding.name,
95471
- app_id: binding.app_id
95472
- }
95473
- ];
95474
- break;
95475
- }
95476
- case "service":
95477
- {
95478
- configObj.services = [
95479
- ...configObj.services ?? [],
95480
- {
95481
- binding: binding.name,
95482
- service: binding.service,
95483
- environment: binding.environment,
95484
- entrypoint: binding.entrypoint
95485
- }
95486
- ];
95487
- }
95488
- break;
95489
- case "analytics_engine":
95490
- {
95491
- configObj.analytics_engine_datasets = [
95492
- ...configObj.analytics_engine_datasets ?? [],
95493
- { binding: binding.name, dataset: binding.dataset }
95494
- ];
95495
- }
95496
- break;
95497
- case "dispatch_namespace":
95498
- {
95499
- configObj.dispatch_namespaces = [
95500
- ...configObj.dispatch_namespaces ?? [],
95501
- {
95502
- binding: binding.name,
95503
- namespace: binding.namespace,
95504
- ...binding.outbound && {
95505
- outbound: {
95506
- service: binding.outbound.worker.service,
95507
- environment: binding.outbound.worker.environment,
95508
- parameters: binding.outbound.params?.map((p2) => p2.name) ?? []
95509
- }
95510
- }
95511
- }
95512
- ];
95513
- }
95514
- break;
95515
- case "logfwdr":
95516
- {
95517
- configObj.logfwdr = {
95518
- bindings: [
95519
- ...configObj.logfwdr?.bindings ?? [],
95520
- { name: binding.name, destination: binding.destination }
95521
- ]
95522
- };
95523
- }
95524
- break;
95525
- case "wasm_module":
95526
- {
95527
- configObj.wasm_modules = {
95528
- ...configObj.wasm_modules ?? {},
95529
- [binding.name]: binding.part
95530
- };
95531
- }
95532
- break;
95533
- case "text_blob":
95534
- {
95535
- configObj.text_blobs = {
95536
- ...configObj.text_blobs ?? {},
95537
- [binding.name]: binding.part
95538
- };
95539
- }
95540
- break;
95541
- case "data_blob":
95542
- {
95543
- configObj.data_blobs = {
95544
- ...configObj.data_blobs ?? {},
95545
- [binding.name]: binding.part
95546
- };
95547
- }
95548
- break;
95549
- case "secret_text":
95550
- break;
95551
- case "version_metadata": {
95552
- {
95553
- configObj.version_metadata = {
95554
- binding: binding.name
95555
- };
95556
- }
95557
- break;
95558
- }
95559
- case "send_email": {
95560
- configObj.send_email = [
95561
- ...configObj.send_email ?? [],
95562
- {
95563
- name: binding.name,
95564
- destination_address: binding.destination_address,
95565
- allowed_destination_addresses: binding.allowed_destination_addresses,
95566
- allowed_sender_addresses: binding.allowed_sender_addresses
95567
- }
95568
- ];
95569
- break;
95570
- }
95571
- case "queue":
95572
- configObj.queues ??= { producers: [] };
95573
- configObj.queues.producers = [
95574
- ...configObj.queues.producers ?? [],
95575
- {
95576
- binding: binding.name,
95577
- queue: binding.queue_name,
95578
- delivery_delay: binding.delivery_delay
95579
- }
95580
- ];
95581
- break;
95582
- case "vectorize":
95583
- configObj.vectorize = [
95584
- ...configObj.vectorize ?? [],
95585
- {
95586
- binding: binding.name,
95587
- index_name: binding.index_name
95588
- }
95589
- ];
95590
- break;
95591
- case "ai_search_namespace":
95592
- configObj.ai_search_namespaces = [
95593
- ...configObj.ai_search_namespaces ?? [],
95594
- {
95595
- binding: binding.name,
95596
- namespace: binding.namespace
95597
- }
95598
- ];
95599
- break;
95600
- case "ai_search":
95601
- configObj.ai_search = [
95602
- ...configObj.ai_search ?? [],
95603
- {
95604
- binding: binding.name,
95605
- instance_name: binding.instance_name
95606
- }
95607
- ];
95608
- break;
95609
- case "agent_memory": {
95610
- configObj.agent_memory = [
95611
- ...configObj.agent_memory ?? [],
95612
- {
95613
- binding: binding.name,
95614
- namespace: binding.namespace
95615
- }
95616
- ];
95617
- break;
95618
- }
95619
- case "hyperdrive":
95620
- configObj.hyperdrive = [
95621
- ...configObj.hyperdrive ?? [],
95622
- {
95623
- binding: binding.name,
95624
- id: binding.id
95625
- }
95626
- ];
95627
- break;
95628
- case "mtls_certificate":
95629
- configObj.mtls_certificates = [
95630
- ...configObj.mtls_certificates ?? [],
95631
- {
95632
- binding: binding.name,
95633
- certificate_id: binding.certificate_id
95634
- }
95635
- ];
95636
- break;
95637
- case "pipelines":
95638
- configObj.pipelines = [
95639
- ...configObj.pipelines ?? [],
95640
- {
95641
- binding: binding.name,
95642
- // NOTE: stream is the primary field, but we also support pipeline for backward compatibility
95643
- ...binding.stream && { stream: binding.stream },
95644
- ...binding.pipeline && { pipeline: binding.pipeline }
95645
- }
95646
- ];
95647
- break;
95648
- case "assets":
95649
- configObj.assets = {
95650
- binding: binding.name
95651
- // Note: we currently don't get all the assets information from the
95652
- // API, so here we are only able to set the name of the binding
95653
- // hopefully in the future we can properly fully support the binding
95654
- };
95655
- break;
95656
- case "inherit":
95657
- configObj.unsafe = {
95658
- bindings: [...configObj.unsafe?.bindings ?? [], binding],
95659
- metadata: configObj.unsafe?.metadata ?? void 0
95660
- };
95661
- break;
95662
- case "workflow":
95663
- {
95664
- configObj.workflows = [
95665
- ...configObj.workflows ?? [],
95666
- {
95667
- binding: binding.name,
95668
- name: binding.workflow_name,
95669
- class_name: binding.class_name,
95670
- script_name: binding.script_name
95671
- }
95672
- ];
95673
- }
95674
- break;
95675
- case "worker_loader":
95676
- {
95677
- configObj.worker_loaders = [
95678
- ...configObj.worker_loaders ?? [],
95679
- {
95680
- binding: binding.name
95681
- }
95682
- ];
95683
- }
95684
- break;
95685
- case "ratelimit":
95686
- {
95687
- configObj.ratelimits = [
95688
- ...configObj.ratelimits ?? [],
95689
- {
95690
- name: binding.name,
95691
- namespace_id: binding.namespace_id,
95692
- simple: {
95693
- limit: binding.simple.limit,
95694
- period: binding.simple.period
95695
- }
95696
- }
95697
- ];
95698
- }
95699
- break;
95700
- case "vpc_service":
95701
- {
95702
- configObj.vpc_services = [
95703
- ...configObj.vpc_services ?? [],
95704
- {
95705
- binding: binding.name,
95706
- service_id: binding.service_id
95707
- }
95708
- ];
95709
- }
95710
- break;
95711
- case "vpc_network":
95712
- {
95713
- if (binding.tunnel_id !== void 0) {
95714
- configObj.vpc_networks = [
95715
- ...configObj.vpc_networks ?? [],
95716
- { binding: binding.name, tunnel_id: binding.tunnel_id }
95717
- ];
95718
- } else if (binding.network_id !== void 0) {
95719
- configObj.vpc_networks = [
95720
- ...configObj.vpc_networks ?? [],
95721
- { binding: binding.name, network_id: binding.network_id }
95722
- ];
95723
- }
95724
- }
95725
- break;
95726
- default: {
95727
- configObj.unsafe = {
95728
- bindings: [...configObj.unsafe?.bindings ?? [], binding],
95729
- metadata: configObj.unsafe?.metadata ?? void 0
95730
- };
95731
- }
95732
- }
95733
- return configObj;
95734
- }, {});
95735
- }
95736
- __name(mapWorkerMetadataBindings, "mapWorkerMetadataBindings");
95737
- function constructWranglerConfig(config50) {
95738
- const mappedBindings = mapWorkerMetadataBindings(config50.bindings);
95739
- const durableObjectClassNames = config50.bindings.filter(
95740
- (binding) => binding.type === "durable_object_namespace" && binding.script_name === config50.name
95741
- ).map(
95742
- (durableObject) => durableObject.class_name
95743
- );
95744
- const allRoutes = [
95745
- ...config50.routes.map((r) => ({
95746
- pattern: r.pattern,
95747
- zone_name: r.zone_name
95748
- })),
95749
- ...config50.domains.map((c2) => ({
95750
- pattern: c2.hostname,
95751
- zone_name: c2.zone_name,
95752
- custom_domain: true,
95753
- enabled: c2.enabled,
95754
- previews_enabled: c2.previews_enabled
95755
- }))
95756
- ];
95757
- return {
95758
- name: config50.name,
95759
- main: config50.entrypoint,
95760
- workers_dev: config50.subdomain.enabled,
95761
- preview_urls: config50.subdomain.previews_enabled,
95762
- compatibility_date: config50.compatibility_date ?? DEFAULT_COMPAT_DATE,
95763
- compatibility_flags: config50.compatibility_flags,
95764
- ...allRoutes.length ? { routes: allRoutes } : {},
95765
- placement: config50.placement?.mode === "smart" ? { mode: "smart" } : void 0,
95766
- limits: config50.limits,
95767
- ...durableObjectClassNames.length && config50.migration_tag ? {
95768
- migrations: [
95769
- {
95770
- tag: config50.migration_tag,
95771
- new_classes: durableObjectClassNames
95772
- }
95773
- ]
95774
- } : {},
95775
- ...config50.schedules.length ? {
95776
- triggers: {
95777
- crons: config50.schedules.map((scheduled) => scheduled.cron)
95778
- }
95779
- } : {},
95780
- tail_consumers: config50.tail_consumers ?? void 0,
95781
- observability: config50.observability,
95782
- ...mappedBindings
95783
- };
95784
- }
95785
- __name(constructWranglerConfig, "constructWranglerConfig");
95786
-
95787
- // ../workers-utils/dist/chunk-C6O4ION7.mjs
95788
- init_chunk_Q72B4Q5Z();
95361
+ // ../workers-utils/dist/chunk-2Q77CKVU.mjs
95362
+ var import_node_module7 = require("node:module");
95363
+ init_chunk_U6NEESU5();
95789
95364
  var import_node_assert = __toESM(require("node:assert"), 1);
95365
+ var import_meta7 = {};
95366
+ (0, import_node_module7.createRequire)(import_meta7.url || (typeof __filename === "string" ? __filename : "/"));
95790
95367
  function isCompatDate(str) {
95791
95368
  return /^\d{4}-\d{2}-\d{2}$/.test(str);
95792
95369
  }
@@ -95825,8 +95402,14 @@ function stripRedundantNodejsCompatFlags(compatibilityDate, compatibilityFlags)
95825
95402
  }
95826
95403
  __name(stripRedundantNodejsCompatFlags, "stripRedundantNodejsCompatFlags");
95827
95404
 
95828
- // ../workers-utils/dist/chunk-3IYLA2JH.mjs
95829
- init_chunk_Q72B4Q5Z();
95405
+ // ../workers-utils/dist/chunk-FR75DWDU.mjs
95406
+ var import_node_module11 = require("node:module");
95407
+
95408
+ // ../workers-utils/dist/chunk-QSRIB43D.mjs
95409
+ var import_node_module8 = require("node:module");
95410
+ init_chunk_U6NEESU5();
95411
+ var import_meta8 = {};
95412
+ (0, import_node_module8.createRequire)(import_meta8.url || (typeof __filename === "string" ? __filename : "/"));
95830
95413
  function getBooleanEnvironmentVariableFactory(options) {
95831
95414
  return () => {
95832
95415
  if (!(options.variableName in process.env) || process.env[options.variableName] === void 0) {
@@ -95893,9 +95476,15 @@ var getDockerPath = getEnvironmentVariableFactory({
95893
95476
  }
95894
95477
  });
95895
95478
 
95896
- // ../workers-utils/dist/chunk-53IMCORZ.mjs
95897
- init_chunk_Q72B4Q5Z();
95479
+ // ../workers-utils/dist/chunk-MV2OJK3L.mjs
95480
+ var import_node_module10 = require("node:module");
95481
+
95482
+ // ../workers-utils/dist/chunk-MIA26B4M.mjs
95483
+ var import_node_module9 = require("node:module");
95484
+ init_chunk_U6NEESU5();
95898
95485
  var import_node_fs2 = __toESM(require("node:fs"), 1);
95486
+ var import_meta9 = {};
95487
+ (0, import_node_module9.createRequire)(import_meta9.url || (typeof __filename === "string" ? __filename : "/"));
95899
95488
  function isDirectory(path9) {
95900
95489
  return import_node_fs2.default.statSync(path9, { throwIfNoEntry: false })?.isDirectory() ?? false;
95901
95490
  }
@@ -95925,10 +95514,12 @@ function removeDirSync(dirPath) {
95925
95514
  }
95926
95515
  __name(removeDirSync, "removeDirSync");
95927
95516
 
95928
- // ../workers-utils/dist/chunk-34VZWBGB.mjs
95929
- init_chunk_Q72B4Q5Z();
95517
+ // ../workers-utils/dist/chunk-MV2OJK3L.mjs
95518
+ init_chunk_U6NEESU5();
95930
95519
  var import_node_os3 = __toESM(require("node:os"), 1);
95931
95520
  var import_node_path2 = __toESM(require("node:path"), 1);
95521
+ var import_meta10 = {};
95522
+ (0, import_node_module10.createRequire)(import_meta10.url || (typeof __filename === "string" ? __filename : "/"));
95932
95523
  function isWindows() {
95933
95524
  return /^win/i.test(process.platform);
95934
95525
  }
@@ -96076,9 +95667,11 @@ function getGlobalWranglerCachePath() {
96076
95667
  }
96077
95668
  __name(getGlobalWranglerCachePath, "getGlobalWranglerCachePath");
96078
95669
 
96079
- // ../workers-utils/dist/chunk-IYSONYTF.mjs
96080
- init_chunk_Q72B4Q5Z();
95670
+ // ../workers-utils/dist/chunk-FR75DWDU.mjs
95671
+ init_chunk_U6NEESU5();
96081
95672
  var import_node_path3 = __toESM(require("node:path"), 1);
95673
+ var import_meta11 = {};
95674
+ (0, import_node_module11.createRequire)(import_meta11.url || (typeof __filename === "string" ? __filename : "/"));
96082
95675
  var getC3CommandFromEnv = getEnvironmentVariableFactory({
96083
95676
  variableName: "WRANGLER_C3_COMMAND",
96084
95677
  defaultValue: /* @__PURE__ */ __name(() => "create cloudflare", "defaultValue")
@@ -96256,7 +95849,7 @@ var getCloudflaredPathFromEnv = getEnvironmentVariableFactory({
96256
95849
  });
96257
95850
 
96258
95851
  // ../workers-utils/dist/index.mjs
96259
- init_chunk_Q72B4Q5Z();
95852
+ init_chunk_U6NEESU5();
96260
95853
  var import_node_fs4 = __toESM(require("node:fs"), 1);
96261
95854
  var import_node_assert2 = __toESM(require("node:assert"), 1);
96262
95855
  var path5 = __toESM(require("node:path"), 1);
@@ -96269,6 +95862,8 @@ var import_node_crypto = require("node:crypto");
96269
95862
  var import_node_os5 = require("node:os");
96270
95863
  var timersPromises = __toESM(require("node:timers/promises"), 1);
96271
95864
  var import_promises2 = require("node:timers/promises");
95865
+ var import_meta13 = {};
95866
+ (0, import_node_module13.createRequire)(import_meta13.url || (typeof __filename === "string" ? __filename : "/"));
96272
95867
  var require_vendors2 = __commonJS2({
96273
95868
  "../../node_modules/.pnpm/ci-info@4.4.0/node_modules/ci-info/vendors.json"(exports$1, module2) {
96274
95869
  module2.exports = [
@@ -100346,18 +99941,22 @@ function normalizeAndValidateEnvironment(diagnostics, configPath, rawEnv, isDisp
100346
99941
  validateDefines(envName),
100347
99942
  {}
100348
99943
  ),
100349
- durable_objects: notInheritable(
100350
- diagnostics,
100351
- topLevelEnv,
100352
- rawConfig,
100353
- rawEnv,
100354
- envName,
100355
- "durable_objects",
100356
- validateBindingsProperty(envName, validateDurableObjectBinding),
100357
- {
100358
- bindings: []
100359
- }
100360
- ),
99944
+ durable_objects: (() => {
99945
+ const durableObjects = notInheritable(
99946
+ diagnostics,
99947
+ topLevelEnv,
99948
+ rawConfig,
99949
+ rawEnv,
99950
+ envName,
99951
+ "durable_objects",
99952
+ validateDurableObjectsProperty(envName, true),
99953
+ { bindings: [] }
99954
+ );
99955
+ return {
99956
+ ...durableObjects,
99957
+ bindings: durableObjects.bindings ?? []
99958
+ };
99959
+ })(),
100361
99960
  workflows: notInheritable(
100362
99961
  diagnostics,
100363
99962
  topLevelEnv,
@@ -101238,6 +100837,85 @@ Please add a binding for each to "${fieldPath}.bindings":
101238
100837
  }
101239
100838
  return isValid;
101240
100839
  }, "validateBindingsProperty");
100840
+ var DURABLE_OBJECTS_CODE_UPDATE_MAX_DELAY_SECONDS = 24 * 60 * 60;
100841
+ var MILLISECOND_PRECISION_TOLERANCE = 1e-6;
100842
+ var validateDurableObjectsProperty = /* @__PURE__ */ __name((envName, allowMissingBindings = false, allowCodeUpdateStrategy = true) => (diagnostics, field, value, config50) => {
100843
+ const fieldPath = config50 === void 0 ? `${field}` : `env.${envName}.${field}`;
100844
+ if (value === void 0) {
100845
+ return true;
100846
+ }
100847
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
100848
+ diagnostics.errors.push(
100849
+ `The field "${fieldPath}" should be an object but got ${JSON.stringify(value)}.`
100850
+ );
100851
+ return false;
100852
+ }
100853
+ validateAdditionalProperties(
100854
+ diagnostics,
100855
+ fieldPath,
100856
+ Object.keys(value),
100857
+ allowCodeUpdateStrategy ? ["bindings", "code_update_strategy"] : ["bindings"]
100858
+ );
100859
+ const bindingsContainer = allowMissingBindings && !hasProperty(value, "bindings") ? { ...value, bindings: [] } : value;
100860
+ let isValid = validateBindingsProperty(
100861
+ envName,
100862
+ validateDurableObjectBinding
100863
+ )(diagnostics, field, bindingsContainer, config50);
100864
+ if (!allowCodeUpdateStrategy) {
100865
+ return isValid;
100866
+ }
100867
+ if (!hasProperty(value, "code_update_strategy") || value.code_update_strategy === void 0) {
100868
+ return isValid;
100869
+ }
100870
+ const strategy = value.code_update_strategy;
100871
+ const strategyPath = `${fieldPath}.code_update_strategy`;
100872
+ if (typeof strategy !== "object" || strategy === null || Array.isArray(strategy)) {
100873
+ diagnostics.errors.push(
100874
+ `The field "${strategyPath}" should be an object but got ${JSON.stringify(strategy)}.`
100875
+ );
100876
+ return false;
100877
+ }
100878
+ validateAdditionalProperties(
100879
+ diagnostics,
100880
+ strategyPath,
100881
+ Object.keys(strategy),
100882
+ ["mode", "max_delay"]
100883
+ );
100884
+ isValid = validateRequiredProperty(
100885
+ diagnostics,
100886
+ strategyPath,
100887
+ "mode",
100888
+ hasProperty(strategy, "mode") ? strategy.mode : void 0,
100889
+ "string",
100890
+ ["immediate", "deferred"]
100891
+ ) && isValid;
100892
+ const maxDelay = hasProperty(strategy, "max_delay") ? strategy.max_delay : void 0;
100893
+ const maxDelayHasValidType = validateOptionalProperty(
100894
+ diagnostics,
100895
+ strategyPath,
100896
+ "max_delay",
100897
+ maxDelay,
100898
+ "number"
100899
+ );
100900
+ isValid = maxDelayHasValidType && isValid;
100901
+ if (maxDelayHasValidType && typeof maxDelay === "number" && (!Number.isFinite(maxDelay) || maxDelay < 0 || maxDelay > DURABLE_OBJECTS_CODE_UPDATE_MAX_DELAY_SECONDS)) {
100902
+ diagnostics.errors.push(
100903
+ `Expected "${strategyPath}.max_delay" to be between 0 and ${DURABLE_OBJECTS_CODE_UPDATE_MAX_DELAY_SECONDS} seconds but got ${JSON.stringify(maxDelay)}.`
100904
+ );
100905
+ isValid = false;
100906
+ }
100907
+ if (maxDelayHasValidType && typeof maxDelay === "number" && Number.isFinite(maxDelay) && maxDelay >= 0 && maxDelay <= DURABLE_OBJECTS_CODE_UPDATE_MAX_DELAY_SECONDS) {
100908
+ const milliseconds = maxDelay * 1e3;
100909
+ const roundedMilliseconds = Math.round(milliseconds);
100910
+ if (maxDelay > 0 && roundedMilliseconds === 0 || Math.abs(milliseconds - roundedMilliseconds) > MILLISECOND_PRECISION_TOLERANCE) {
100911
+ diagnostics.errors.push(
100912
+ `Expected "${strategyPath}.max_delay" to use millisecond precision but got ${JSON.stringify(maxDelay)}.`
100913
+ );
100914
+ isValid = false;
100915
+ }
100916
+ }
100917
+ return isValid;
100918
+ }, "validateDurableObjectsProperty");
101241
100919
  var validateUnsafeSettings = /* @__PURE__ */ __name((envName) => (diagnostics, field, value, config50) => {
101242
100920
  const fieldPath = config50 === void 0 ? `${field}` : `env.${envName}.${field}`;
101243
100921
  if (typeof value !== "object" || value === null || Array.isArray(value)) {
@@ -104088,7 +103766,7 @@ var validatePreviewsConfig = /* @__PURE__ */ __name((envName, configPath) => (di
104088
103766
  previews,
104089
103767
  `${field}.placement`
104090
103768
  );
104091
- isValid = validateBindingsProperty(envName, validateDurableObjectBinding)(
103769
+ isValid = validateDurableObjectsProperty(envName, false, false)(
104092
103770
  diagnostics,
104093
103771
  `${field}.durable_objects`,
104094
103772
  previews.durable_objects,
@@ -105098,8 +104776,7 @@ function warnIfDurableObjectsHaveNoLifecycleConfig(diagnostics, durableObjects,
105098
104776
  if (entry === void 0 || entry.type !== "durable-object") {
105099
104777
  return false;
105100
104778
  }
105101
- const state = entry.state ?? "created";
105102
- return state === "created" || state === "expecting-transfer";
104779
+ return isLiveDurableObjectExport(entry);
105103
104780
  }, "exportsCovers");
105104
104781
  const uncoveredByExports = exportedDurableObjects.filter(
105105
104782
  (binding) => typeof binding.class_name !== "string" || !exportsCovers(binding.class_name)
@@ -105346,6 +105023,9 @@ function isDockerfile(imagePath, configPath) {
105346
105023
  return false;
105347
105024
  }
105348
105025
  __name(isDockerfile, "isDockerfile");
105026
+ function assertNever2(_value) {
105027
+ }
105028
+ __name(assertNever2, "assertNever");
105349
105029
  var BINDING_LOCAL_SUPPORT = {
105350
105030
  plain_text: "local-only",
105351
105031
  secret_text: "local-only",
@@ -105443,8 +105123,6 @@ function validateBindingRemoteSetting(type, remote, warn2) {
105443
105123
  );
105444
105124
  }
105445
105125
  return;
105446
- default:
105447
- assertNever2(support);
105448
105126
  }
105449
105127
  }
105450
105128
  __name(validateBindingRemoteSetting, "validateBindingRemoteSetting");
@@ -105662,6 +105340,460 @@ function findFileUp(name3, startDir, lastDir) {
105662
105340
  return void 0;
105663
105341
  }
105664
105342
  __name(findFileUp, "findFileUp");
105343
+ function mapWorkerMetadataBindings(bindings) {
105344
+ return bindings.filter((binding) => binding.type !== "secret_text").reduce((configObj, binding) => {
105345
+ switch (binding.type) {
105346
+ case "plain_text":
105347
+ {
105348
+ configObj.vars = {
105349
+ ...configObj.vars ?? {},
105350
+ [binding.name]: binding.text
105351
+ };
105352
+ }
105353
+ break;
105354
+ case "json":
105355
+ {
105356
+ configObj.vars = {
105357
+ ...configObj.vars ?? {},
105358
+ [binding.name]: binding.json
105359
+ };
105360
+ }
105361
+ break;
105362
+ case "kv_namespace":
105363
+ {
105364
+ configObj.kv_namespaces = [
105365
+ ...configObj.kv_namespaces ?? [],
105366
+ { id: binding.namespace_id, binding: binding.name }
105367
+ ];
105368
+ }
105369
+ break;
105370
+ case "durable_object_namespace":
105371
+ {
105372
+ configObj.durable_objects = {
105373
+ bindings: [
105374
+ ...configObj.durable_objects?.bindings ?? [],
105375
+ {
105376
+ name: binding.name,
105377
+ class_name: binding.class_name,
105378
+ script_name: binding.script_name,
105379
+ environment: binding.environment
105380
+ }
105381
+ ]
105382
+ };
105383
+ }
105384
+ break;
105385
+ case "d1":
105386
+ {
105387
+ configObj.d1_databases = [
105388
+ ...configObj.d1_databases ?? [],
105389
+ {
105390
+ binding: binding.name,
105391
+ database_id: binding.id
105392
+ }
105393
+ ];
105394
+ }
105395
+ break;
105396
+ case "browser":
105397
+ {
105398
+ configObj.browser = {
105399
+ binding: binding.name
105400
+ };
105401
+ }
105402
+ break;
105403
+ case "ai":
105404
+ {
105405
+ configObj.ai = {
105406
+ binding: binding.name
105407
+ };
105408
+ }
105409
+ break;
105410
+ case "images":
105411
+ {
105412
+ configObj.images = {
105413
+ binding: binding.name
105414
+ };
105415
+ }
105416
+ break;
105417
+ case "stream":
105418
+ {
105419
+ configObj.stream = {
105420
+ binding: binding.name
105421
+ };
105422
+ }
105423
+ break;
105424
+ case "media":
105425
+ {
105426
+ configObj.media = {
105427
+ binding: binding.name
105428
+ };
105429
+ }
105430
+ break;
105431
+ case "r2_bucket":
105432
+ {
105433
+ configObj.r2_buckets = [
105434
+ ...configObj.r2_buckets ?? [],
105435
+ {
105436
+ binding: binding.name,
105437
+ bucket_name: binding.bucket_name,
105438
+ jurisdiction: binding.jurisdiction
105439
+ }
105440
+ ];
105441
+ }
105442
+ break;
105443
+ case "secrets_store_secret":
105444
+ {
105445
+ configObj.secrets_store_secrets = [
105446
+ ...configObj.secrets_store_secrets ?? [],
105447
+ {
105448
+ binding: binding.name,
105449
+ store_id: binding.store_id,
105450
+ secret_name: binding.secret_name
105451
+ }
105452
+ ];
105453
+ }
105454
+ break;
105455
+ case "artifacts":
105456
+ {
105457
+ configObj.artifacts = [
105458
+ ...configObj.artifacts ?? [],
105459
+ {
105460
+ binding: binding.name,
105461
+ namespace: binding.namespace
105462
+ }
105463
+ ];
105464
+ }
105465
+ break;
105466
+ case "unsafe_hello_world": {
105467
+ configObj.unsafe_hello_world = [
105468
+ ...configObj.unsafe_hello_world ?? [],
105469
+ {
105470
+ binding: binding.name,
105471
+ enable_timer: binding.enable_timer
105472
+ }
105473
+ ];
105474
+ break;
105475
+ }
105476
+ case "flagship": {
105477
+ configObj.flagship = [
105478
+ ...configObj.flagship ?? [],
105479
+ {
105480
+ binding: binding.name,
105481
+ app_id: binding.app_id
105482
+ }
105483
+ ];
105484
+ break;
105485
+ }
105486
+ case "service":
105487
+ {
105488
+ configObj.services = [
105489
+ ...configObj.services ?? [],
105490
+ {
105491
+ binding: binding.name,
105492
+ service: binding.service,
105493
+ environment: binding.environment,
105494
+ entrypoint: binding.entrypoint
105495
+ }
105496
+ ];
105497
+ }
105498
+ break;
105499
+ case "analytics_engine":
105500
+ {
105501
+ configObj.analytics_engine_datasets = [
105502
+ ...configObj.analytics_engine_datasets ?? [],
105503
+ { binding: binding.name, dataset: binding.dataset }
105504
+ ];
105505
+ }
105506
+ break;
105507
+ case "dispatch_namespace":
105508
+ {
105509
+ configObj.dispatch_namespaces = [
105510
+ ...configObj.dispatch_namespaces ?? [],
105511
+ {
105512
+ binding: binding.name,
105513
+ namespace: binding.namespace,
105514
+ ...binding.outbound && {
105515
+ outbound: {
105516
+ service: binding.outbound.worker.service,
105517
+ environment: binding.outbound.worker.environment,
105518
+ parameters: binding.outbound.params?.map((p2) => p2.name) ?? []
105519
+ }
105520
+ }
105521
+ }
105522
+ ];
105523
+ }
105524
+ break;
105525
+ case "logfwdr":
105526
+ {
105527
+ configObj.logfwdr = {
105528
+ bindings: [
105529
+ ...configObj.logfwdr?.bindings ?? [],
105530
+ { name: binding.name, destination: binding.destination }
105531
+ ]
105532
+ };
105533
+ }
105534
+ break;
105535
+ case "wasm_module":
105536
+ {
105537
+ configObj.wasm_modules = {
105538
+ ...configObj.wasm_modules ?? {},
105539
+ [binding.name]: binding.part
105540
+ };
105541
+ }
105542
+ break;
105543
+ case "text_blob":
105544
+ {
105545
+ configObj.text_blobs = {
105546
+ ...configObj.text_blobs ?? {},
105547
+ [binding.name]: binding.part
105548
+ };
105549
+ }
105550
+ break;
105551
+ case "data_blob":
105552
+ {
105553
+ configObj.data_blobs = {
105554
+ ...configObj.data_blobs ?? {},
105555
+ [binding.name]: binding.part
105556
+ };
105557
+ }
105558
+ break;
105559
+ case "secret_text":
105560
+ break;
105561
+ case "version_metadata": {
105562
+ {
105563
+ configObj.version_metadata = {
105564
+ binding: binding.name
105565
+ };
105566
+ }
105567
+ break;
105568
+ }
105569
+ case "send_email": {
105570
+ configObj.send_email = [
105571
+ ...configObj.send_email ?? [],
105572
+ {
105573
+ name: binding.name,
105574
+ destination_address: binding.destination_address,
105575
+ allowed_destination_addresses: binding.allowed_destination_addresses,
105576
+ allowed_sender_addresses: binding.allowed_sender_addresses
105577
+ }
105578
+ ];
105579
+ break;
105580
+ }
105581
+ case "queue":
105582
+ configObj.queues ??= { producers: [] };
105583
+ configObj.queues.producers = [
105584
+ ...configObj.queues.producers ?? [],
105585
+ {
105586
+ binding: binding.name,
105587
+ queue: binding.queue_name,
105588
+ delivery_delay: binding.delivery_delay
105589
+ }
105590
+ ];
105591
+ break;
105592
+ case "vectorize":
105593
+ configObj.vectorize = [
105594
+ ...configObj.vectorize ?? [],
105595
+ {
105596
+ binding: binding.name,
105597
+ index_name: binding.index_name
105598
+ }
105599
+ ];
105600
+ break;
105601
+ case "ai_search_namespace":
105602
+ configObj.ai_search_namespaces = [
105603
+ ...configObj.ai_search_namespaces ?? [],
105604
+ {
105605
+ binding: binding.name,
105606
+ namespace: binding.namespace
105607
+ }
105608
+ ];
105609
+ break;
105610
+ case "ai_search":
105611
+ configObj.ai_search = [
105612
+ ...configObj.ai_search ?? [],
105613
+ {
105614
+ binding: binding.name,
105615
+ instance_name: binding.instance_name
105616
+ }
105617
+ ];
105618
+ break;
105619
+ case "agent_memory": {
105620
+ configObj.agent_memory = [
105621
+ ...configObj.agent_memory ?? [],
105622
+ {
105623
+ binding: binding.name,
105624
+ namespace: binding.namespace
105625
+ }
105626
+ ];
105627
+ break;
105628
+ }
105629
+ case "hyperdrive":
105630
+ configObj.hyperdrive = [
105631
+ ...configObj.hyperdrive ?? [],
105632
+ {
105633
+ binding: binding.name,
105634
+ id: binding.id
105635
+ }
105636
+ ];
105637
+ break;
105638
+ case "mtls_certificate":
105639
+ configObj.mtls_certificates = [
105640
+ ...configObj.mtls_certificates ?? [],
105641
+ {
105642
+ binding: binding.name,
105643
+ certificate_id: binding.certificate_id
105644
+ }
105645
+ ];
105646
+ break;
105647
+ case "pipelines":
105648
+ configObj.pipelines = [
105649
+ ...configObj.pipelines ?? [],
105650
+ {
105651
+ binding: binding.name,
105652
+ // NOTE: stream is the primary field, but we also support pipeline for backward compatibility
105653
+ ...binding.stream && { stream: binding.stream },
105654
+ ...binding.pipeline && { pipeline: binding.pipeline }
105655
+ }
105656
+ ];
105657
+ break;
105658
+ case "assets":
105659
+ configObj.assets = {
105660
+ binding: binding.name
105661
+ // Note: we currently don't get all the assets information from the
105662
+ // API, so here we are only able to set the name of the binding
105663
+ // hopefully in the future we can properly fully support the binding
105664
+ };
105665
+ break;
105666
+ case "inherit":
105667
+ configObj.unsafe = {
105668
+ bindings: [...configObj.unsafe?.bindings ?? [], binding],
105669
+ metadata: configObj.unsafe?.metadata ?? void 0
105670
+ };
105671
+ break;
105672
+ case "workflow":
105673
+ {
105674
+ configObj.workflows = [
105675
+ ...configObj.workflows ?? [],
105676
+ {
105677
+ binding: binding.name,
105678
+ name: binding.workflow_name,
105679
+ class_name: binding.class_name,
105680
+ script_name: binding.script_name
105681
+ }
105682
+ ];
105683
+ }
105684
+ break;
105685
+ case "worker_loader":
105686
+ {
105687
+ configObj.worker_loaders = [
105688
+ ...configObj.worker_loaders ?? [],
105689
+ {
105690
+ binding: binding.name
105691
+ }
105692
+ ];
105693
+ }
105694
+ break;
105695
+ case "ratelimit":
105696
+ {
105697
+ configObj.ratelimits = [
105698
+ ...configObj.ratelimits ?? [],
105699
+ {
105700
+ name: binding.name,
105701
+ namespace_id: binding.namespace_id,
105702
+ simple: {
105703
+ limit: binding.simple.limit,
105704
+ period: binding.simple.period
105705
+ }
105706
+ }
105707
+ ];
105708
+ }
105709
+ break;
105710
+ case "vpc_service":
105711
+ {
105712
+ configObj.vpc_services = [
105713
+ ...configObj.vpc_services ?? [],
105714
+ {
105715
+ binding: binding.name,
105716
+ service_id: binding.service_id
105717
+ }
105718
+ ];
105719
+ }
105720
+ break;
105721
+ case "vpc_network":
105722
+ {
105723
+ if (binding.tunnel_id !== void 0) {
105724
+ configObj.vpc_networks = [
105725
+ ...configObj.vpc_networks ?? [],
105726
+ { binding: binding.name, tunnel_id: binding.tunnel_id }
105727
+ ];
105728
+ } else if (binding.network_id !== void 0) {
105729
+ configObj.vpc_networks = [
105730
+ ...configObj.vpc_networks ?? [],
105731
+ { binding: binding.name, network_id: binding.network_id }
105732
+ ];
105733
+ }
105734
+ }
105735
+ break;
105736
+ default: {
105737
+ configObj.unsafe = {
105738
+ bindings: [...configObj.unsafe?.bindings ?? [], binding],
105739
+ metadata: configObj.unsafe?.metadata ?? void 0
105740
+ };
105741
+ }
105742
+ }
105743
+ return configObj;
105744
+ }, {});
105745
+ }
105746
+ __name(mapWorkerMetadataBindings, "mapWorkerMetadataBindings");
105747
+ var DEFAULT_COMPAT_DATE = "2026-09-26";
105748
+ function constructWranglerConfig(config50) {
105749
+ const mappedBindings = mapWorkerMetadataBindings(config50.bindings);
105750
+ const durableObjectClassNames = config50.bindings.filter(
105751
+ (binding) => binding.type === "durable_object_namespace" && binding.script_name === config50.name
105752
+ ).map(
105753
+ (durableObject) => durableObject.class_name
105754
+ );
105755
+ const allRoutes = [
105756
+ ...config50.routes.map((r2) => ({
105757
+ pattern: r2.pattern,
105758
+ zone_name: r2.zone_name
105759
+ })),
105760
+ ...config50.domains.map((c2) => ({
105761
+ pattern: c2.hostname,
105762
+ zone_name: c2.zone_name,
105763
+ custom_domain: true,
105764
+ enabled: c2.enabled,
105765
+ previews_enabled: c2.previews_enabled
105766
+ }))
105767
+ ];
105768
+ return {
105769
+ name: config50.name,
105770
+ main: config50.entrypoint,
105771
+ workers_dev: config50.subdomain.enabled,
105772
+ preview_urls: config50.subdomain.previews_enabled,
105773
+ compatibility_date: config50.compatibility_date ?? DEFAULT_COMPAT_DATE,
105774
+ compatibility_flags: config50.compatibility_flags,
105775
+ ...allRoutes.length ? { routes: allRoutes } : {},
105776
+ placement: config50.placement?.mode === "smart" ? { mode: "smart" } : void 0,
105777
+ limits: config50.limits,
105778
+ ...durableObjectClassNames.length && config50.migration_tag ? {
105779
+ migrations: [
105780
+ {
105781
+ tag: config50.migration_tag,
105782
+ new_classes: durableObjectClassNames
105783
+ }
105784
+ ]
105785
+ } : {},
105786
+ ...config50.schedules.length ? {
105787
+ triggers: {
105788
+ crons: config50.schedules.map((scheduled) => scheduled.cron)
105789
+ }
105790
+ } : {},
105791
+ tail_consumers: config50.tail_consumers ?? void 0,
105792
+ observability: config50.observability,
105793
+ ...mappedBindings
105794
+ };
105795
+ }
105796
+ __name(constructWranglerConfig, "constructWranglerConfig");
105665
105797
  function assertNever22(_value) {
105666
105798
  }
105667
105799
  __name(assertNever22, "assertNever");
@@ -108548,7 +108680,7 @@ async function fetchLatestNpmVersion(name3, version4) {
108548
108680
  __name(fetchLatestNpmVersion, "fetchLatestNpmVersion");
108549
108681
  async function openInBrowser(url2, logger) {
108550
108682
  try {
108551
- const { default: open3 } = await Promise.resolve().then(() => (init_open_PBXRGS4R(), open_PBXRGS4R_exports));
108683
+ const { default: open3 } = await Promise.resolve().then(() => (init_open_PCXX3ZDZ(), open_PCXX3ZDZ_exports));
108552
108684
  const childProcess5 = await open3(url2);
108553
108685
  childProcess5.on("error", (err) => {
108554
108686
  handleBrowserOpenError(url2, err, logger);
@@ -110440,12 +110572,12 @@ var y18n2 = (opts) => {
110440
110572
  var y18n_default = y18n2;
110441
110573
 
110442
110574
  // ../../node_modules/.pnpm/yargs@17.7.2/node_modules/yargs/lib/platform-shims/esm.mjs
110443
- var import_meta2 = {};
110575
+ var import_meta14 = {};
110444
110576
  var REQUIRE_ERROR = "require is not supported by ESM";
110445
110577
  var REQUIRE_DIRECTORY_ERROR = "loading a directory of commands is not supported yet for ESM";
110446
110578
  var __dirname2;
110447
110579
  try {
110448
- __dirname2 = (0, import_url.fileURLToPath)(import_meta2.url);
110580
+ __dirname2 = (0, import_url.fileURLToPath)(import_meta14.url);
110449
110581
  } catch (e) {
110450
110582
  __dirname2 = process.cwd();
110451
110583
  }
@@ -113772,7 +113904,7 @@ var Yargs = YargsFactory(esm_default2);
113772
113904
  var yargs_default = Yargs;
113773
113905
 
113774
113906
  // package.json
113775
- var version2 = "2.72.12";
113907
+ var version2 = "2.73.0";
113776
113908
 
113777
113909
  // src/metrics.ts
113778
113910
  var import_node_async_hooks = require("node:async_hooks");
@@ -113782,6 +113914,13 @@ var import_promises3 = require("node:timers/promises");
113782
113914
  var import_node_crypto2 = require("node:crypto");
113783
113915
  var import_node_fs6 = require("node:fs");
113784
113916
  var import_node_path7 = __toESM(require("node:path"));
113917
+
113918
+ // ../workers-utils/dist/global-wrangler-config-path.mjs
113919
+ var import_node_module14 = require("node:module");
113920
+ var import_meta15 = {};
113921
+ (0, import_node_module14.createRequire)(import_meta15.url || (typeof __filename === "string" ? __filename : "/"));
113922
+
113923
+ // src/helpers/metrics-config.ts
113785
113924
  function writeMetricsConfig(config50) {
113786
113925
  (0, import_node_fs6.mkdirSync)(import_node_path7.default.dirname(getMetricsConfigPath()), { recursive: true });
113787
113926
  (0, import_node_fs6.writeFileSync)(
@@ -113901,6 +114040,11 @@ function quoteShellArgs(args) {
113901
114040
  }).join(" ");
113902
114041
  }
113903
114042
 
114043
+ // ../workers-utils/dist/fs-helpers.mjs
114044
+ var import_node_module15 = require("node:module");
114045
+ var import_meta16 = {};
114046
+ (0, import_node_module15.createRequire)(import_meta16.url || (typeof __filename === "string" ? __filename : "/"));
114047
+
113904
114048
  // src/helpers/packageManagers.ts
113905
114049
  var import_semver = __toESM(require_semver2());
113906
114050
  var import_which_pm_runs = __toESM(require_which_pm_runs());
@@ -114316,7 +114460,7 @@ var import_node_path9 = __toESM(require("node:path"), 1);
114316
114460
  var import_node_assert4 = __toESM(require("node:assert"), 1);
114317
114461
  var import_promises4 = require("node:fs/promises");
114318
114462
  var installPackages = async (packageManager, packages, config50 = {}) => {
114319
- const { force, dev, startText, doneText } = config50;
114463
+ const { cwd = process.cwd(), force, dev, startText, doneText } = config50;
114320
114464
  const isWorkspaceRoot = config50.isWorkspaceRoot ?? false;
114321
114465
  if (packages.length === 0) {
114322
114466
  let cmd$1;
@@ -114338,7 +114482,7 @@ var installPackages = async (packageManager, packages, config50 = {}) => {
114338
114482
  ...force === true ? ["--force"] : [],
114339
114483
  ...getWorkspaceInstallRootFlag(packageManager, isWorkspaceRoot)
114340
114484
  ], {
114341
- cwd: process.cwd(),
114485
+ cwd,
114342
114486
  startText,
114343
114487
  doneText,
114344
114488
  silent: true
@@ -114372,12 +114516,13 @@ var installPackages = async (packageManager, packages, config50 = {}) => {
114372
114516
  ...force === true ? ["--force"] : [],
114373
114517
  ...getWorkspaceInstallRootFlag(packageManager, isWorkspaceRoot)
114374
114518
  ], {
114519
+ cwd,
114375
114520
  startText,
114376
114521
  doneText,
114377
114522
  silent: true
114378
114523
  });
114379
114524
  if (packageManager === "npm") {
114380
- const pkgJsonPath = import_node_path9.default.join(process.cwd(), "package.json");
114525
+ const pkgJsonPath = import_node_path9.default.join(cwd, "package.json");
114381
114526
  const pkgJson = parsePackageJSON(readFileSync(pkgJsonPath), pkgJsonPath);
114382
114527
  const deps = config50.dev ? pkgJson.devDependencies : pkgJson.dependencies;
114383
114528
  (0, import_node_assert4.default)(deps, "dependencies should be defined");
@@ -116014,9 +116159,9 @@ var isInSsh2 = Boolean(import_node_process13.default.env.SSH_CONNECTION || impor
116014
116159
  var is_in_ssh_default2 = isInSsh2;
116015
116160
 
116016
116161
  // ../../node_modules/.pnpm/open@11.0.0/node_modules/open/index.js
116017
- var import_meta3 = {};
116162
+ var import_meta17 = {};
116018
116163
  var fallbackAttemptSymbol2 = /* @__PURE__ */ Symbol("fallbackAttempt");
116019
- var __dirname3 = import_meta3.url ? import_node_path13.default.dirname((0, import_node_url3.fileURLToPath)(import_meta3.url)) : "";
116164
+ var __dirname3 = import_meta17.url ? import_node_path13.default.dirname((0, import_node_url3.fileURLToPath)(import_meta17.url)) : "";
116020
116165
  var localXdgOpenPath2 = import_node_path13.default.join(__dirname3, "xdg-open");
116021
116166
  var { platform: platform2, arch: arch3 } = import_node_process14.default;
116022
116167
  var tryEachApp2 = async (apps3, opener) => {
@@ -116355,12 +116500,15 @@ var WRANGLER_DEFAULTS = {
116355
116500
  };
116356
116501
 
116357
116502
  // ../shared-ast-primitives/dist/index.mjs
116503
+ var import_node_module16 = require("node:module");
116358
116504
  var import_node_fs15 = require("node:fs");
116359
116505
  var import_node_path14 = __toESM(require("node:path"), 1);
116360
116506
  var recast = __toESM(require_main2(), 1);
116361
116507
  var import_recast = __toESM(require_main2(), 1);
116362
116508
  var esprimaParser = __toESM(require_esprima3(), 1);
116363
116509
  var typescriptParser = __toESM(require_typescript2(), 1);
116510
+ var import_meta18 = {};
116511
+ (0, import_node_module16.createRequire)(import_meta18.url || (typeof __filename === "string" ? __filename : "/"));
116364
116512
  var __defProp3 = Object.defineProperty;
116365
116513
  var __name2 = (target, value) => __defProp3(target, "name", { value, configurable: true });
116366
116514
  function parseJs(src) {
@@ -116592,6 +116740,7 @@ var config2 = {
116592
116740
  frameworkCli: "create-analog",
116593
116741
  displayName: "Analog",
116594
116742
  platform: "workers",
116743
+ languages: ["ts"],
116595
116744
  copyFiles: {
116596
116745
  path: "./templates"
116597
116746
  },
@@ -116675,6 +116824,7 @@ var config3 = {
116675
116824
  frameworkCli: "@angular/create",
116676
116825
  displayName: "Angular",
116677
116826
  platform: "pages",
116827
+ languages: ["ts"],
116678
116828
  hidden: true,
116679
116829
  copyFiles: {
116680
116830
  path: "./templates"
@@ -116760,6 +116910,7 @@ var config4 = {
116760
116910
  frameworkCli: "@angular/create",
116761
116911
  displayName: "Angular",
116762
116912
  platform: "workers",
116913
+ languages: ["ts"],
116763
116914
  copyFiles: {
116764
116915
  path: "./templates"
116765
116916
  },
@@ -116959,6 +117110,25 @@ var config9 = {
116959
117110
  };
116960
117111
  var c3_default8 = config9;
116961
117112
 
117113
+ // templates/django/c3.ts
117114
+ var c3_default9 = {
117115
+ configVersion: 1,
117116
+ id: "django",
117117
+ displayName: "Django",
117118
+ description: "A Django application running on Cloudflare Workers",
117119
+ platform: "workers",
117120
+ copyFiles: {
117121
+ variants: {
117122
+ python: {
117123
+ path: "./py"
117124
+ }
117125
+ }
117126
+ },
117127
+ workersTypes: "none",
117128
+ devScript: "dev",
117129
+ deployScript: "deploy"
117130
+ };
117131
+
116962
117132
  // templates/docusaurus/pages/c3.ts
116963
117133
  var { npm: npm4 } = detectPackageManager();
116964
117134
  var generate6 = async (ctx) => {
@@ -116969,6 +117139,7 @@ var config10 = {
116969
117139
  id: "docusaurus",
116970
117140
  frameworkCli: "create-docusaurus",
116971
117141
  platform: "pages",
117142
+ languages: ["js", "ts"],
116972
117143
  hidden: true,
116973
117144
  displayName: "Docusaurus",
116974
117145
  path: "templates/docusaurus/pages",
@@ -116984,7 +117155,7 @@ var config10 = {
116984
117155
  previewScript: "preview",
116985
117156
  workersTypes: "none"
116986
117157
  };
116987
- var c3_default9 = config10;
117158
+ var c3_default10 = config10;
116988
117159
 
116989
117160
  // templates/docusaurus/workers/c3.ts
116990
117161
  var { npm: npm5 } = detectPackageManager();
@@ -116996,6 +117167,7 @@ var config11 = {
116996
117167
  id: "docusaurus",
116997
117168
  frameworkCli: "create-docusaurus",
116998
117169
  platform: "workers",
117170
+ languages: ["js", "ts"],
116999
117171
  displayName: "Docusaurus",
117000
117172
  copyFiles: {
117001
117173
  path: "./templates"
@@ -117013,14 +117185,52 @@ var config11 = {
117013
117185
  previewScript: "preview",
117014
117186
  workersTypes: "none"
117015
117187
  };
117016
- var c3_default10 = config11;
117188
+ var c3_default11 = config11;
117017
117189
 
117018
117190
  // templates/docusaurus/c3.ts
117019
117191
  var config12 = {
117020
117192
  displayName: "Docusaurus",
117021
- platformVariants: { pages: c3_default9, workers: c3_default10 }
117193
+ platformVariants: { pages: c3_default10, workers: c3_default11 }
117194
+ };
117195
+ var c3_default12 = config12;
117196
+
117197
+ // templates/fastapi/c3.ts
117198
+ var c3_default13 = {
117199
+ configVersion: 1,
117200
+ id: "fastapi",
117201
+ displayName: "FastAPI",
117202
+ description: "A FastAPI application running on Cloudflare Workers",
117203
+ platform: "workers",
117204
+ copyFiles: {
117205
+ variants: {
117206
+ python: {
117207
+ path: "./py"
117208
+ }
117209
+ }
117210
+ },
117211
+ workersTypes: "none",
117212
+ devScript: "dev",
117213
+ deployScript: "deploy"
117214
+ };
117215
+
117216
+ // templates/flask/c3.ts
117217
+ var c3_default14 = {
117218
+ configVersion: 1,
117219
+ id: "flask",
117220
+ displayName: "Flask",
117221
+ description: "A Flask application running on Cloudflare Workers",
117222
+ platform: "workers",
117223
+ copyFiles: {
117224
+ variants: {
117225
+ python: {
117226
+ path: "./py"
117227
+ }
117228
+ }
117229
+ },
117230
+ workersTypes: "none",
117231
+ devScript: "dev",
117232
+ deployScript: "deploy"
117022
117233
  };
117023
- var c3_default11 = config12;
117024
117234
 
117025
117235
  // templates/gatsby/pages/c3.ts
117026
117236
  var { npm: npm6 } = detectPackageManager();
@@ -117048,6 +117258,7 @@ var config13 = {
117048
117258
  id: "gatsby",
117049
117259
  frameworkCli: "gatsby",
117050
117260
  platform: "pages",
117261
+ languages: ["js", "ts"],
117051
117262
  hidden: true,
117052
117263
  displayName: "Gatsby",
117053
117264
  path: "templates/gatsby/pages",
@@ -117063,7 +117274,7 @@ var config13 = {
117063
117274
  previewScript: "preview",
117064
117275
  workersTypes: "none"
117065
117276
  };
117066
- var c3_default12 = config13;
117277
+ var c3_default15 = config13;
117067
117278
 
117068
117279
  // templates/gatsby/workers/c3.ts
117069
117280
  var { npm: npm7 } = detectPackageManager();
@@ -117091,6 +117302,7 @@ var config14 = {
117091
117302
  id: "gatsby",
117092
117303
  frameworkCli: "gatsby",
117093
117304
  platform: "workers",
117305
+ languages: ["js", "ts"],
117094
117306
  displayName: "Gatsby",
117095
117307
  copyFiles: {
117096
117308
  path: "./templates"
@@ -117108,14 +117320,14 @@ var config14 = {
117108
117320
  previewScript: "preview",
117109
117321
  workersTypes: "none"
117110
117322
  };
117111
- var c3_default13 = config14;
117323
+ var c3_default16 = config14;
117112
117324
 
117113
117325
  // templates/gatsby/c3.ts
117114
117326
  var config15 = {
117115
117327
  displayName: "Gatsby",
117116
- platformVariants: { pages: c3_default12, workers: c3_default13 }
117328
+ platformVariants: { pages: c3_default15, workers: c3_default16 }
117117
117329
  };
117118
- var c3_default14 = config15;
117330
+ var c3_default17 = config15;
117119
117331
 
117120
117332
  // templates/hello-world-assets-only/c3.ts
117121
117333
  var config16 = {
@@ -117125,11 +117337,12 @@ var config16 = {
117125
117337
  displayName: "Static site",
117126
117338
  description: "For static sites or when using your own backend. Uses Workers Static Assets.",
117127
117339
  platform: "workers",
117340
+ languages: ["js", "ts"],
117128
117341
  copyFiles: {
117129
117342
  path: "./templates"
117130
117343
  }
117131
117344
  };
117132
- var c3_default15 = config16;
117345
+ var c3_default18 = config16;
117133
117346
 
117134
117347
  // templates/hello-world-durable-object-with-assets/c3.ts
117135
117348
  var config17 = {
@@ -117153,7 +117366,7 @@ var config17 = {
117153
117366
  }
117154
117367
  }
117155
117368
  };
117156
- var c3_default16 = config17;
117369
+ var c3_default19 = config17;
117157
117370
 
117158
117371
  // templates/hello-world-durable-object/c3.ts
117159
117372
  var config18 = {
@@ -117176,7 +117389,7 @@ var config18 = {
117176
117389
  }
117177
117390
  }
117178
117391
  };
117179
- var c3_default17 = config18;
117392
+ var c3_default20 = config18;
117180
117393
 
117181
117394
  // templates/hello-world-with-assets/c3.ts
117182
117395
  var config19 = {
@@ -117200,10 +117413,10 @@ var config19 = {
117200
117413
  }
117201
117414
  }
117202
117415
  };
117203
- var c3_default18 = config19;
117416
+ var c3_default21 = config19;
117204
117417
 
117205
117418
  // templates/hello-world-workflows/c3.ts
117206
- var c3_default19 = {
117419
+ var c3_default22 = {
117207
117420
  configVersion: 1,
117208
117421
  id: "hello-world-workflows",
117209
117422
  displayName: "Workflow",
@@ -117222,7 +117435,7 @@ var c3_default19 = {
117222
117435
  };
117223
117436
 
117224
117437
  // templates/hello-world/c3.ts
117225
- var c3_default20 = {
117438
+ var c3_default23 = {
117226
117439
  configVersion: 1,
117227
117440
  id: "hello-world",
117228
117441
  displayName: "Worker only",
@@ -117267,6 +117480,7 @@ var config20 = {
117267
117480
  },
117268
117481
  path: "templates/hono/pages",
117269
117482
  platform: "pages",
117483
+ languages: ["ts"],
117270
117484
  hidden: true,
117271
117485
  generate: generate10,
117272
117486
  transformPackageJson: async () => ({
@@ -117280,7 +117494,7 @@ var config20 = {
117280
117494
  previewScript: "preview",
117281
117495
  envInterfaceName
117282
117496
  };
117283
- var c3_default21 = config20;
117497
+ var c3_default24 = config20;
117284
117498
 
117285
117499
  // templates/hono/workers/c3.ts
117286
117500
  var generate11 = async (ctx) => {
@@ -117305,6 +117519,7 @@ var config21 = {
117305
117519
  path: "./templates"
117306
117520
  },
117307
117521
  platform: "workers",
117522
+ languages: ["ts"],
117308
117523
  path: "templates/hono/workers",
117309
117524
  generate: generate11,
117310
117525
  transformPackageJson: async () => ({
@@ -117317,14 +117532,14 @@ var config21 = {
117317
117532
  previewScript: "dev",
117318
117533
  envInterfaceName: envInterfaceName2
117319
117534
  };
117320
- var c3_default22 = config21;
117535
+ var c3_default25 = config21;
117321
117536
 
117322
117537
  // templates/hono/c3.ts
117323
117538
  var config22 = {
117324
117539
  displayName: "Hono",
117325
- platformVariants: { pages: c3_default21, workers: c3_default22 }
117540
+ platformVariants: { pages: c3_default24, workers: c3_default25 }
117326
117541
  };
117327
- var c3_default23 = config22;
117542
+ var c3_default26 = config22;
117328
117543
 
117329
117544
  // templates/next/c3.ts
117330
117545
  var import_node_assert5 = __toESM(require("node:assert"));
@@ -117404,13 +117619,14 @@ var generate12 = async (ctx) => {
117404
117619
  await generateVinext(ctx);
117405
117620
  };
117406
117621
  var envInterfaceName3 = "CloudflareEnv";
117407
- var c3_default24 = {
117622
+ var c3_default27 = {
117408
117623
  configVersion: 1,
117409
117624
  id: "next",
117410
117625
  // Used by runFrameworkGenerator for the vinext path. OpenNext downloads a
117411
117626
  // remote template and does not invoke this CLI.
117412
117627
  frameworkCli: "create-vinext-app",
117413
117628
  platform: "workers",
117629
+ languages: ["ts"],
117414
117630
  displayName: "Next.js",
117415
117631
  generate: generate12,
117416
117632
  transformPackageJson: async (_pkgJson, ctx) => {
@@ -117449,6 +117665,7 @@ var experimental_c3_default = {
117449
117665
  id: "next",
117450
117666
  frameworkCli: "create-next-app",
117451
117667
  platform: "workers",
117668
+ languages: ["js", "ts"],
117452
117669
  displayName: "Next.js",
117453
117670
  generate: generate13,
117454
117671
  devScript: "dev",
@@ -117533,6 +117750,7 @@ var config23 = {
117533
117750
  id: "nuxt",
117534
117751
  frameworkCli: "nuxi",
117535
117752
  platform: "pages",
117753
+ languages: ["ts"],
117536
117754
  hidden: true,
117537
117755
  displayName: "Nuxt",
117538
117756
  copyFiles: {
@@ -117552,7 +117770,7 @@ var config23 = {
117552
117770
  deployScript: "deploy",
117553
117771
  previewScript: "preview"
117554
117772
  };
117555
- var c3_default25 = config23;
117773
+ var c3_default28 = config23;
117556
117774
 
117557
117775
  // templates/nuxt/workers/c3.ts
117558
117776
  var recast5 = __toESM(require_main2());
@@ -117629,6 +117847,7 @@ var config24 = {
117629
117847
  id: "nuxt",
117630
117848
  frameworkCli: "nuxi",
117631
117849
  platform: "workers",
117850
+ languages: ["ts"],
117632
117851
  displayName: "Nuxt",
117633
117852
  copyFiles: {
117634
117853
  path: "./templates"
@@ -117647,14 +117866,14 @@ var config24 = {
117647
117866
  deployScript: "deploy",
117648
117867
  previewScript: "preview"
117649
117868
  };
117650
- var c3_default26 = config24;
117869
+ var c3_default29 = config24;
117651
117870
 
117652
117871
  // templates/nuxt/c3.ts
117653
117872
  var config25 = {
117654
117873
  displayName: "Nuxt",
117655
- platformVariants: { pages: c3_default25, workers: c3_default26 }
117874
+ platformVariants: { pages: c3_default28, workers: c3_default29 }
117656
117875
  };
117657
- var c3_default27 = config25;
117876
+ var c3_default30 = config25;
117658
117877
 
117659
117878
  // templates/openapi/c3.ts
117660
117879
  var config26 = {
@@ -117665,9 +117884,10 @@ var config26 = {
117665
117884
  platform: "workers",
117666
117885
  copyFiles: {
117667
117886
  path: "./ts"
117668
- }
117887
+ },
117888
+ languages: ["ts"]
117669
117889
  };
117670
- var c3_default28 = config26;
117890
+ var c3_default31 = config26;
117671
117891
 
117672
117892
  // templates/pre-existing/c3.ts
117673
117893
  var import_node_fs17 = require("node:fs");
@@ -117856,13 +118076,14 @@ var config27 = {
117856
118076
  copyFiles: {
117857
118077
  path: "./js"
117858
118078
  },
118079
+ languages: ["js"],
117859
118080
  configure: buildConfigure({
117860
118081
  login: wranglerLogin,
117861
118082
  chooseAccount,
117862
118083
  copyFiles: copyExistingWorkerFiles
117863
118084
  })
117864
118085
  };
117865
- var c3_default29 = config27;
118086
+ var c3_default32 = config27;
117866
118087
  function buildConfigure(params) {
117867
118088
  return async function configure18(ctx) {
117868
118089
  const loginSuccess = await params.login(ctx);
@@ -117903,7 +118124,7 @@ var config28 = {
117903
118124
  ]
117904
118125
  }
117905
118126
  };
117906
- var c3_default30 = config28;
118127
+ var c3_default33 = config28;
117907
118128
 
117908
118129
  // src/helpers/codemod.ts
117909
118130
  var import_node_fs18 = require("node:fs");
@@ -117994,6 +118215,7 @@ var config29 = {
117994
118215
  frameworkCli: "create-qwik",
117995
118216
  displayName: "Qwik",
117996
118217
  platform: "pages",
118218
+ languages: ["ts"],
117997
118219
  hidden: true,
117998
118220
  copyFiles: {
117999
118221
  path: "./templates"
@@ -118013,7 +118235,7 @@ var config29 = {
118013
118235
  previewScript: "preview",
118014
118236
  workersTypes: "installed"
118015
118237
  };
118016
- var c3_default31 = config29;
118238
+ var c3_default34 = config29;
118017
118239
 
118018
118240
  // templates/qwik/workers/c3.ts
118019
118241
  var recast7 = __toESM(require_main2());
@@ -118082,6 +118304,7 @@ var config30 = {
118082
118304
  frameworkCli: "create-qwik",
118083
118305
  displayName: "Qwik",
118084
118306
  platform: "workers",
118307
+ languages: ["ts"],
118085
118308
  copyFiles: {
118086
118309
  path: "./templates"
118087
118310
  },
@@ -118100,14 +118323,14 @@ var config30 = {
118100
118323
  previewScript: "preview",
118101
118324
  workersTypes: "installed"
118102
118325
  };
118103
- var c3_default32 = config30;
118326
+ var c3_default35 = config30;
118104
118327
 
118105
118328
  // templates/qwik/c3.ts
118106
118329
  var config31 = {
118107
118330
  displayName: "Qwik",
118108
- platformVariants: { pages: c3_default31, workers: c3_default32 }
118331
+ platformVariants: { pages: c3_default34, workers: c3_default35 }
118109
118332
  };
118110
- var c3_default33 = config31;
118333
+ var c3_default36 = config31;
118111
118334
 
118112
118335
  // templates/react-router/c3.ts
118113
118336
  var import_node_path20 = require("node:path");
@@ -118148,6 +118371,7 @@ var config32 = {
118148
118371
  copyFiles: {
118149
118372
  path: "./ts"
118150
118373
  },
118374
+ languages: ["ts"],
118151
118375
  generate: generate18,
118152
118376
  configure: configure10,
118153
118377
  transformPackageJson: async () => ({
@@ -118163,7 +118387,7 @@ var config32 = {
118163
118387
  deployScript: "deploy",
118164
118388
  previewScript: "preview"
118165
118389
  };
118166
- var c3_default34 = config32;
118390
+ var c3_default37 = config32;
118167
118391
 
118168
118392
  // templates/react/pages/c3.ts
118169
118393
  var { npm: npm14 } = detectPackageManager();
@@ -118220,6 +118444,7 @@ var config33 = {
118220
118444
  frameworkCli: "create-vite",
118221
118445
  displayName: "React",
118222
118446
  platform: "pages",
118447
+ languages: ["js", "ts"],
118223
118448
  hidden: true,
118224
118449
  path: "templates/react/pages",
118225
118450
  copyFiles: { path: "./templates" },
@@ -118235,7 +118460,7 @@ var config33 = {
118235
118460
  deployScript: "deploy",
118236
118461
  previewScript: "preview"
118237
118462
  };
118238
- var c3_default35 = config33;
118463
+ var c3_default38 = config33;
118239
118464
 
118240
118465
  // templates/react/workers/c3.ts
118241
118466
  var import_node_assert6 = __toESM(require("node:assert"));
@@ -118385,14 +118610,14 @@ var config34 = {
118385
118610
  deployScript: "deploy",
118386
118611
  previewScript: "preview"
118387
118612
  };
118388
- var c3_default36 = config34;
118613
+ var c3_default39 = config34;
118389
118614
 
118390
118615
  // templates/react/c3.ts
118391
118616
  var config35 = {
118392
118617
  displayName: "React",
118393
- platformVariants: { pages: c3_default35, workers: c3_default36 }
118618
+ platformVariants: { pages: c3_default38, workers: c3_default39 }
118394
118619
  };
118395
- var c3_default37 = config35;
118620
+ var c3_default40 = config35;
118396
118621
 
118397
118622
  // templates/redwood/c3.ts
118398
118623
  var { npm: npm16 } = detectPackageManager();
@@ -118404,6 +118629,7 @@ var config36 = {
118404
118629
  configVersion: 1,
118405
118630
  id: "redwood",
118406
118631
  platform: "workers",
118632
+ languages: ["ts"],
118407
118633
  frameworkCli: "create-rwsdk",
118408
118634
  displayName: "RedwoodSDK",
118409
118635
  generate: generate21,
@@ -118418,7 +118644,7 @@ var config36 = {
118418
118644
  deployScript: "release",
118419
118645
  previewScript: "preview"
118420
118646
  };
118421
- var c3_default38 = config36;
118647
+ var c3_default41 = config36;
118422
118648
 
118423
118649
  // templates/scheduled/c3.ts
118424
118650
  var config37 = {
@@ -118438,7 +118664,7 @@ var config37 = {
118438
118664
  }
118439
118665
  }
118440
118666
  };
118441
- var c3_default39 = config37;
118667
+ var c3_default42 = config37;
118442
118668
 
118443
118669
  // templates/solid/c3.ts
118444
118670
  var recast9 = __toESM(require_main2());
@@ -118480,6 +118706,7 @@ var config38 = {
118480
118706
  frameworkCli: "create-solid",
118481
118707
  displayName: "SolidStart",
118482
118708
  platform: "workers",
118709
+ languages: ["js", "ts"],
118483
118710
  copyFiles: {
118484
118711
  path: "./templates"
118485
118712
  },
@@ -118497,7 +118724,7 @@ var config38 = {
118497
118724
  deployScript: "deploy",
118498
118725
  previewScript: "preview"
118499
118726
  };
118500
- var c3_default40 = config38;
118727
+ var c3_default43 = config38;
118501
118728
 
118502
118729
  // templates/svelte/pages/c3.ts
118503
118730
  var import_node_fs19 = require("node:fs");
@@ -118597,6 +118824,7 @@ var config39 = {
118597
118824
  frameworkCli: "sv",
118598
118825
  displayName: "SvelteKit",
118599
118826
  platform: "pages",
118827
+ languages: ["js", "ts"],
118600
118828
  hidden: true,
118601
118829
  copyFiles: {
118602
118830
  path: "./templates"
@@ -118622,7 +118850,7 @@ var config39 = {
118622
118850
  previewScript: "preview",
118623
118851
  typesPath: typesPath2
118624
118852
  };
118625
- var c3_default41 = config39;
118853
+ var c3_default44 = config39;
118626
118854
 
118627
118855
  // templates/svelte/workers/c3.ts
118628
118856
  var recast11 = __toESM(require_main2());
@@ -118698,6 +118926,7 @@ var config40 = {
118698
118926
  frameworkCli: "sv",
118699
118927
  displayName: "SvelteKit",
118700
118928
  platform: "workers",
118929
+ languages: ["js", "ts"],
118701
118930
  copyFiles: {
118702
118931
  path: "./templates"
118703
118932
  },
@@ -118722,14 +118951,14 @@ var config40 = {
118722
118951
  previewScript: "preview",
118723
118952
  typesPath: typesPath3
118724
118953
  };
118725
- var c3_default42 = config40;
118954
+ var c3_default45 = config40;
118726
118955
 
118727
118956
  // templates/svelte/c3.ts
118728
118957
  var config41 = {
118729
118958
  displayName: "SvelteKit",
118730
- platformVariants: { pages: c3_default41, workers: c3_default42 }
118959
+ platformVariants: { pages: c3_default44, workers: c3_default45 }
118731
118960
  };
118732
- var c3_default43 = config41;
118961
+ var c3_default46 = config41;
118733
118962
 
118734
118963
  // templates/tanstack-start/c3.ts
118735
118964
  var { npm: npm20 } = detectPackageManager();
@@ -118753,6 +118982,7 @@ var config42 = {
118753
118982
  configVersion: 1,
118754
118983
  id: "tanstack-start",
118755
118984
  platform: "workers",
118985
+ languages: ["ts"],
118756
118986
  frameworkCli: "@tanstack/cli",
118757
118987
  displayName: "TanStack Start",
118758
118988
  generate: generate25,
@@ -118767,7 +118997,7 @@ var config42 = {
118767
118997
  deployScript: "deploy",
118768
118998
  previewScript: "preview"
118769
118999
  };
118770
- var c3_default44 = config42;
119000
+ var c3_default47 = config42;
118771
119001
 
118772
119002
  // templates/vike/c3.ts
118773
119003
  var generate26 = async (ctx) => {
@@ -118783,6 +119013,7 @@ var config43 = {
118783
119013
  configVersion: 1,
118784
119014
  id: "vike",
118785
119015
  platform: "workers",
119016
+ languages: ["ts"],
118786
119017
  frameworkCli: "create-vike",
118787
119018
  displayName: "Vike",
118788
119019
  generate: generate26,
@@ -118795,7 +119026,7 @@ var config43 = {
118795
119026
  }
118796
119027
  })
118797
119028
  };
118798
- var c3_default45 = config43;
119029
+ var c3_default48 = config43;
118799
119030
 
118800
119031
  // templates/vike/experimental-c3.ts
118801
119032
  var generate27 = async (ctx) => {
@@ -118813,6 +119044,7 @@ var config44 = {
118813
119044
  configVersion: 1,
118814
119045
  id: "vike",
118815
119046
  platform: "workers",
119047
+ languages: ["ts"],
118816
119048
  frameworkCli: "create-vike",
118817
119049
  displayName: "Vike",
118818
119050
  generate: generate27,
@@ -118833,6 +119065,7 @@ var config45 = {
118833
119065
  frameworkCli: "create-vue",
118834
119066
  displayName: "Vue",
118835
119067
  platform: "pages",
119068
+ languages: ["js", "ts"],
118836
119069
  hidden: true,
118837
119070
  path: "templates/vue/pages",
118838
119071
  copyFiles: { path: "./templates" },
@@ -118848,7 +119081,7 @@ var config45 = {
118848
119081
  deployScript: "deploy",
118849
119082
  previewScript: "preview"
118850
119083
  };
118851
- var c3_default46 = config45;
119084
+ var c3_default49 = config45;
118852
119085
 
118853
119086
  // templates/vue/workers/c3.ts
118854
119087
  var { npm: npm22 } = detectPackageManager();
@@ -118923,14 +119156,14 @@ var config46 = {
118923
119156
  deployScript: "deploy",
118924
119157
  previewScript: "preview"
118925
119158
  };
118926
- var c3_default47 = config46;
119159
+ var c3_default50 = config46;
118927
119160
 
118928
119161
  // templates/vue/c3.ts
118929
119162
  var config47 = {
118930
119163
  displayName: "Vue",
118931
- platformVariants: { pages: c3_default46, workers: c3_default47 }
119164
+ platformVariants: { pages: c3_default49, workers: c3_default50 }
118932
119165
  };
118933
- var c3_default48 = config47;
119166
+ var c3_default51 = config47;
118934
119167
 
118935
119168
  // templates/waku/c3.ts
118936
119169
  var import_node_path21 = require("node:path");
@@ -118965,6 +119198,7 @@ var config48 = {
118965
119198
  id: "waku",
118966
119199
  frameworkCli: "create-waku",
118967
119200
  platform: "workers",
119201
+ languages: ["ts"],
118968
119202
  displayName: "Waku",
118969
119203
  copyFiles: {
118970
119204
  path: "./templates"
@@ -118984,7 +119218,7 @@ var config48 = {
118984
119218
  deployScript: "deploy",
118985
119219
  previewScript: "preview"
118986
119220
  };
118987
- var c3_default49 = config48;
119221
+ var c3_default52 = config48;
118988
119222
 
118989
119223
  // templates/waku/experimental-c3.ts
118990
119224
  var { npm: npm24 } = detectPackageManager();
@@ -119003,6 +119237,7 @@ var config49 = {
119003
119237
  id: "waku",
119004
119238
  frameworkCli: "create-waku",
119005
119239
  platform: "workers",
119240
+ languages: ["ts"],
119006
119241
  displayName: "Waku",
119007
119242
  generate: generate31,
119008
119243
  devScript: "dev",
@@ -119080,7 +119315,7 @@ If the application uses Durable Objects or Workflows, refer to the relevant best
119080
119315
  var import_node_assert7 = __toESM(require("node:assert"));
119081
119316
 
119082
119317
  // ../wrangler/package.json
119083
- var version3 = "4.139.0";
119318
+ var version3 = "4.143.0";
119084
119319
 
119085
119320
  // src/git.ts
119086
119321
  var offerGit = async (ctx) => {
@@ -119286,14 +119521,6 @@ var validateTemplateUrl = (value) => {
119286
119521
  };
119287
119522
  var validateProjectDirectory = (relativePath, args) => {
119288
119523
  const path9 = (0, import_node_path22.resolve)(relativePath);
119289
- const existsAlready = (0, import_node_fs20.existsSync)(path9);
119290
- if (existsAlready) {
119291
- for (const file3 of (0, import_node_fs20.readdirSync)(path9)) {
119292
- if (!isAllowedExistingFile(file3)) {
119293
- return `Directory \`${relativePath}\` already exists and contains files that might conflict. Please choose a new name.`;
119294
- }
119295
- }
119296
- }
119297
119524
  if (!args.existingScript) {
119298
119525
  const projectName = (0, import_node_path22.basename)(path9);
119299
119526
  const invalidChars = /[^a-z0-9-]/;
@@ -119308,6 +119535,14 @@ var validateProjectDirectory = (relativePath, args) => {
119308
119535
  return `Project names must be less than 58 characters.`;
119309
119536
  }
119310
119537
  }
119538
+ const existsAlready = (0, import_node_fs20.existsSync)(path9);
119539
+ if (existsAlready) {
119540
+ for (const file3 of (0, import_node_fs20.readdirSync)(path9)) {
119541
+ if (!isAllowedExistingFile(file3)) {
119542
+ return `Directory \`${relativePath}\` already exists and contains files that might conflict. Please choose a new name.`;
119543
+ }
119544
+ }
119545
+ }
119311
119546
  };
119312
119547
  var isAllowedExistingFile = (file3) => {
119313
119548
  const allowedExistingFiles = /* @__PURE__ */ new Set([
@@ -119356,15 +119591,25 @@ var isAllowedExistingFile = (file3) => {
119356
119591
  var defaultSelectVariant = async (ctx) => {
119357
119592
  return ctx.args.lang;
119358
119593
  };
119359
- var templateSupportsLanguage = (config50, lang) => {
119594
+ var getTemplateLanguages = (config50) => {
119360
119595
  const { copyFiles } = config50;
119361
- if (!copyFiles || isVariantInfo(copyFiles)) {
119362
- return false;
119596
+ if (copyFiles && !isVariantInfo(copyFiles)) {
119597
+ return Object.keys(copyFiles.variants);
119363
119598
  }
119364
- if (copyFiles.variants && !copyFiles.variants[lang]) {
119365
- return false;
119366
- }
119367
- return true;
119599
+ return config50.languages ?? [];
119600
+ };
119601
+ var templateSupportsLanguage = (config50, lang) => {
119602
+ return getTemplateLanguages(config50).includes(lang);
119603
+ };
119604
+ var getTemplateSupportedLanguages = (config50, platform3) => {
119605
+ const configs = "platformVariants" in config50 ? platform3 ? [config50.platformVariants[platform3]] : Object.values(config50.platformVariants) : [config50];
119606
+ return [
119607
+ ...new Set(
119608
+ configs.flatMap(
119609
+ ({ copyFiles }) => copyFiles && !isVariantInfo(copyFiles) ? Object.keys(copyFiles.variants) : []
119610
+ )
119611
+ )
119612
+ ];
119368
119613
  };
119369
119614
  var filterTemplatesByLanguage = (templates, lang) => {
119370
119615
  if (!lang) {
@@ -119385,19 +119630,19 @@ function getFrameworkMap({ experimental: experimental2 = false }) {
119385
119630
  analog: c3_default,
119386
119631
  angular: c3_default4,
119387
119632
  astro: c3_default7,
119388
- docusaurus: c3_default11,
119389
- gatsby: c3_default14,
119633
+ docusaurus: c3_default12,
119634
+ gatsby: c3_default17,
119390
119635
  next: experimental_c3_default,
119391
- nuxt: c3_default27,
119392
- qwik: c3_default33,
119393
- react: c3_default37,
119394
- "react-router": c3_default34,
119395
- redwood: c3_default38,
119396
- solid: c3_default40,
119397
- svelte: c3_default43,
119398
- "tanstack-start": c3_default44,
119636
+ nuxt: c3_default30,
119637
+ qwik: c3_default36,
119638
+ react: c3_default40,
119639
+ "react-router": c3_default37,
119640
+ redwood: c3_default41,
119641
+ solid: c3_default43,
119642
+ svelte: c3_default46,
119643
+ "tanstack-start": c3_default47,
119399
119644
  vike: experimental_c3_default2,
119400
- vue: c3_default48,
119645
+ vue: c3_default51,
119401
119646
  waku: experimental_c3_default3
119402
119647
  };
119403
119648
  } else {
@@ -119405,21 +119650,24 @@ function getFrameworkMap({ experimental: experimental2 = false }) {
119405
119650
  analog: c3_default,
119406
119651
  angular: c3_default4,
119407
119652
  astro: c3_default7,
119408
- docusaurus: c3_default11,
119409
- gatsby: c3_default14,
119410
- hono: c3_default23,
119411
- next: c3_default24,
119412
- nuxt: c3_default27,
119413
- qwik: c3_default33,
119414
- react: c3_default37,
119415
- "react-router": c3_default34,
119416
- redwood: c3_default38,
119417
- solid: c3_default40,
119418
- svelte: c3_default43,
119419
- "tanstack-start": c3_default44,
119420
- vike: c3_default45,
119421
- vue: c3_default48,
119422
- waku: c3_default49
119653
+ django: c3_default9,
119654
+ docusaurus: c3_default12,
119655
+ fastapi: c3_default13,
119656
+ flask: c3_default14,
119657
+ gatsby: c3_default17,
119658
+ hono: c3_default26,
119659
+ next: c3_default27,
119660
+ nuxt: c3_default30,
119661
+ qwik: c3_default36,
119662
+ react: c3_default40,
119663
+ "react-router": c3_default37,
119664
+ redwood: c3_default41,
119665
+ solid: c3_default43,
119666
+ svelte: c3_default46,
119667
+ "tanstack-start": c3_default47,
119668
+ vike: c3_default48,
119669
+ vue: c3_default51,
119670
+ waku: c3_default52
119423
119671
  };
119424
119672
  }
119425
119673
  }
@@ -119431,10 +119679,10 @@ function getOtherTemplateMap({
119431
119679
  } else {
119432
119680
  return {
119433
119681
  common: c3_default8,
119434
- scheduled: c3_default39,
119435
- queues: c3_default30,
119436
- openapi: c3_default28,
119437
- "pre-existing": c3_default29
119682
+ scheduled: c3_default42,
119683
+ queues: c3_default33,
119684
+ openapi: c3_default31,
119685
+ "pre-existing": c3_default32
119438
119686
  };
119439
119687
  }
119440
119688
  }
@@ -119445,17 +119693,17 @@ function getHelloWorldTemplateMap({
119445
119693
  return {};
119446
119694
  } else {
119447
119695
  return {
119448
- "hello-world": c3_default20,
119449
- "hello-world-assets-only": c3_default15,
119450
- "hello-world-with-assets": c3_default18,
119451
- "hello-world-durable-object": c3_default17,
119452
- "hello-world-durable-object-with-assets": c3_default16,
119453
- "hello-world-workflows": c3_default19,
119696
+ "hello-world": c3_default23,
119697
+ "hello-world-assets-only": c3_default18,
119698
+ "hello-world-with-assets": c3_default21,
119699
+ "hello-world-durable-object": c3_default20,
119700
+ "hello-world-durable-object-with-assets": c3_default19,
119701
+ "hello-world-workflows": c3_default22,
119454
119702
  common: c3_default8,
119455
- scheduled: c3_default39,
119456
- queues: c3_default30,
119457
- openapi: c3_default28,
119458
- "pre-existing": c3_default29
119703
+ scheduled: c3_default42,
119704
+ queues: c3_default33,
119705
+ openapi: c3_default31,
119706
+ "pre-existing": c3_default32
119459
119707
  };
119460
119708
  }
119461
119709
  }
@@ -119513,6 +119761,19 @@ var deriveCorrelatedArgs = (args) => {
119513
119761
  }
119514
119762
  args.lang = language;
119515
119763
  }
119764
+ if (args.framework && args.lang === void 0 && (args.acceptDefaults || args.wranglerDefaults)) {
119765
+ const frameworkConfig = getFrameworkMap({
119766
+ experimental: args.experimental
119767
+ })[args.framework];
119768
+ const supportedLanguages = frameworkConfig ? getTemplateSupportedLanguages(frameworkConfig, args.platform) : [];
119769
+ if (supportedLanguages.length > 0) {
119770
+ if (supportedLanguages.length === 1) {
119771
+ args.lang = supportedLanguages[0];
119772
+ } else if (C3_DEFAULTS.lang && supportedLanguages.includes(C3_DEFAULTS.lang)) {
119773
+ args.lang = C3_DEFAULTS.lang;
119774
+ }
119775
+ }
119776
+ }
119516
119777
  };
119517
119778
  var createContext = async (args, prevArgs) => {
119518
119779
  deriveCorrelatedArgs(args);
@@ -120292,6 +120553,12 @@ var parseArgs = async (argv) => {
120292
120553
  args: {
120293
120554
  ...args.wranglerDefaults && WRANGLER_DEFAULTS,
120294
120555
  ...args.acceptDefaults && C3_DEFAULTS,
120556
+ ...args.framework && {
120557
+ category: void 0,
120558
+ type: void 0,
120559
+ lang: void 0,
120560
+ template: void 0
120561
+ },
120295
120562
  ...args,
120296
120563
  additionalArgs,
120297
120564
  projectName: positionalArgs[0]