create-cloudflare 0.0.0-de209c235 → 0.0.0-de3764fa3

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 (113) hide show
  1. package/dist/cli.js +239 -202
  2. package/dist/tsconfig.tsbuildinfo +1 -1
  3. package/package.json +9 -9
  4. package/templates/analog/c3.ts +0 -24
  5. package/templates/analog/templates/env.d.ts +1 -1
  6. package/templates/angular/pages/c3.ts +3 -3
  7. package/templates/angular/pages/templates/wrangler.jsonc +5 -0
  8. package/templates/angular/workers/c3.ts +1 -0
  9. package/templates/astro/workers/templates/js/wrangler.jsonc +2 -1
  10. package/templates/astro/workers/templates/ts/wrangler.jsonc +2 -1
  11. package/templates/common/ts/tsconfig.json +0 -3
  12. package/templates/docusaurus/pages/c3.ts +1 -0
  13. package/templates/docusaurus/workers/c3.ts +1 -0
  14. package/templates/gatsby/pages/c3.ts +1 -0
  15. package/templates/gatsby/workers/c3.ts +1 -0
  16. package/templates/hello-world/js/package.json +1 -1
  17. package/templates/hello-world/py/README.md +2 -2
  18. package/templates/hello-world/py/pyproject.toml +1 -1
  19. package/templates/hello-world/py/src/entry.py +3 -2
  20. package/templates/hello-world/ts/package.json +1 -1
  21. package/templates/hello-world/ts/test/index.spec.ts +0 -1
  22. package/templates/hello-world/ts/test/tsconfig.json +1 -1
  23. package/templates/hello-world/ts/tsconfig.json +0 -2
  24. package/templates/hello-world-durable-object/c3.ts +3 -0
  25. package/templates/hello-world-durable-object/py/.python-version +1 -0
  26. package/templates/hello-world-durable-object/py/README.md +23 -0
  27. package/templates/hello-world-durable-object/py/__dot__gitignore +68 -0
  28. package/templates/hello-world-durable-object/py/package.json +13 -0
  29. package/templates/hello-world-durable-object/py/pyproject.toml +9 -0
  30. package/templates/hello-world-durable-object/py/src/entry.py +66 -0
  31. package/templates/hello-world-durable-object/py/uv.lock +22 -0
  32. package/templates/hello-world-durable-object/py/wrangler.jsonc +27 -0
  33. package/templates/hello-world-durable-object/ts/tsconfig.json +0 -2
  34. package/templates/hello-world-durable-object-with-assets/c3.ts +3 -0
  35. package/templates/hello-world-durable-object-with-assets/py/.python-version +1 -0
  36. package/templates/hello-world-durable-object-with-assets/py/README.md +23 -0
  37. package/templates/hello-world-durable-object-with-assets/py/__dot__gitignore +68 -0
  38. package/templates/hello-world-durable-object-with-assets/py/package.json +13 -0
  39. package/templates/hello-world-durable-object-with-assets/py/public/index.html +19 -0
  40. package/templates/hello-world-durable-object-with-assets/py/pyproject.toml +9 -0
  41. package/templates/hello-world-durable-object-with-assets/py/src/entry.py +66 -0
  42. package/templates/hello-world-durable-object-with-assets/py/uv.lock +22 -0
  43. package/templates/hello-world-durable-object-with-assets/py/wrangler.jsonc +31 -0
  44. package/templates/hello-world-durable-object-with-assets/ts/tsconfig.json +0 -2
  45. package/templates/hello-world-with-assets/js/package.json +1 -1
  46. package/templates/hello-world-with-assets/js/wrangler.jsonc +2 -1
  47. package/templates/hello-world-with-assets/py/.python-version +1 -0
  48. package/templates/hello-world-with-assets/py/README.md +23 -0
  49. package/templates/hello-world-with-assets/py/pyproject.toml +9 -0
  50. package/templates/hello-world-with-assets/py/src/entry.py +9 -7
  51. package/templates/hello-world-with-assets/py/uv.lock +22 -0
  52. package/templates/hello-world-with-assets/ts/package.json +1 -1
  53. package/templates/hello-world-with-assets/ts/test/tsconfig.json +1 -1
  54. package/templates/hello-world-with-assets/ts/tsconfig.json +0 -2
  55. package/templates/hello-world-with-assets/ts/wrangler.jsonc +2 -1
  56. package/templates/hono/pages/c3.ts +4 -1
  57. package/templates/hono/workers/c3.ts +3 -1
  58. package/templates/next/pages/c3.ts +6 -10
  59. package/templates/next/workers/c3.ts +8 -11
  60. package/templates/next/workers/templates/wrangler.jsonc +2 -1
  61. package/templates/nuxt/pages/c3.ts +2 -26
  62. package/templates/nuxt/pages/templates/env.d.ts +1 -1
  63. package/templates/nuxt/workers/c3.ts +2 -26
  64. package/templates/nuxt/workers/templates/env.d.ts +1 -1
  65. package/templates/openapi/ts/__dot__gitignore +1 -0
  66. package/templates/openapi/ts/package.json +7 -6
  67. package/templates/openapi/ts/src/endpoints/taskCreate.ts +2 -2
  68. package/templates/openapi/ts/src/endpoints/taskDelete.ts +2 -2
  69. package/templates/openapi/ts/src/endpoints/taskFetch.ts +2 -2
  70. package/templates/openapi/ts/src/endpoints/taskList.ts +2 -2
  71. package/templates/openapi/ts/src/index.ts +4 -1
  72. package/templates/openapi/ts/src/types.ts +3 -0
  73. package/templates/openapi/ts/tsconfig.json +18 -21
  74. package/templates/queues/ts/tsconfig.json +0 -2
  75. package/templates/qwik/pages/c3.ts +1 -0
  76. package/templates/qwik/workers/c3.ts +3 -4
  77. package/templates/qwik/workers/templates/wrangler.jsonc +2 -1
  78. package/templates/react/pages/c3.ts +4 -2
  79. package/templates/react/pages/templates/wrangler.jsonc +5 -0
  80. package/templates/react/workers/c3.ts +1 -1
  81. package/templates/react/workers/ts/tsconfig.worker.json +2 -2
  82. package/templates/react-router/c3.ts +0 -12
  83. package/templates/remix/pages/c3.ts +1 -0
  84. package/templates/remix/pages/templates/worker-configuration.d.ts +1 -1
  85. package/templates/remix/workers/c3.ts +1 -0
  86. package/templates/remix/workers/templates/wrangler.toml +1 -1
  87. package/templates/scheduled/ts/tsconfig.json +0 -2
  88. package/templates/solid/c3.ts +1 -0
  89. package/templates/svelte/pages/c3.ts +3 -3
  90. package/templates/svelte/workers/c3.ts +3 -3
  91. package/templates/vue/pages/c3.ts +5 -3
  92. package/templates/vue/pages/templates/wrangler.jsonc +5 -0
  93. package/templates/vue/workers/ts/tsconfig.worker.json +1 -1
  94. package/templates-experimental/solid/c3.ts +1 -1
  95. package/templates/analog/templates/worker-configuration.d.ts +0 -4
  96. package/templates/astro/workers/templates/ts/worker-configuration.d.ts +0 -4
  97. package/templates/common/ts/worker-configuration.d.ts +0 -4
  98. package/templates/hello-world/ts/worker-configuration.d.ts +0 -8
  99. package/templates/hello-world-durable-object/ts/worker-configuration.d.ts +0 -7
  100. package/templates/hello-world-durable-object-with-assets/ts/worker-configuration.d.ts +0 -8
  101. package/templates/hello-world-with-assets/ts/worker-configuration.d.ts +0 -7
  102. package/templates/hono/pages/templates/worker-configuration.d.ts +0 -4
  103. package/templates/hono/workers/templates/worker-configuration.d.ts +0 -4
  104. package/templates/next/pages/env.d.ts +0 -5
  105. package/templates/next/workers/templates/cloudflare-env.d.ts +0 -5
  106. package/templates/nuxt/pages/templates/worker-configuration.d.ts +0 -4
  107. package/templates/nuxt/workers/templates/worker-configuration.d.ts +0 -4
  108. package/templates/openapi/ts/worker-configuration.d.ts +0 -4
  109. package/templates/queues/ts/worker-configuration.d.ts +0 -5
  110. package/templates/react/workers/ts/worker-configuration.d.ts +0 -5
  111. package/templates/react-router/templates/worker-configuration.d.ts +0 -8
  112. package/templates/scheduled/ts/worker-configuration.d.ts +0 -4
  113. package/templates/vue/workers/ts/worker-configuration.d.ts +0 -6
package/dist/cli.js CHANGED
@@ -3111,8 +3111,8 @@ var require_path_key = __commonJS({
3111
3111
  "use strict";
3112
3112
  var pathKey = (options = {}) => {
3113
3113
  const environment = options.env || process.env;
3114
- const platform3 = options.platform || process.platform;
3115
- if (platform3 !== "win32") {
3114
+ const platform = options.platform || process.platform;
3115
+ if (platform !== "win32") {
3116
3116
  return "PATH";
3117
3117
  }
3118
3118
  return Object.keys(environment).reverse().find((key) => key.toUpperCase() === "PATH") || "Path";
@@ -26411,7 +26411,7 @@ var require_index_688c5d50 = __commonJS({
26411
26411
  }
26412
26412
  var origCwd = process.cwd;
26413
26413
  var cwd = null;
26414
- var platform3 = process.env.GRACEFUL_FS_PLATFORM || process.platform;
26414
+ var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform;
26415
26415
  process.cwd = function() {
26416
26416
  if (!cwd)
26417
26417
  cwd = origCwd.call(process);
@@ -26466,7 +26466,7 @@ var require_index_688c5d50 = __commonJS({
26466
26466
  fs4.lchownSync = function() {
26467
26467
  };
26468
26468
  }
26469
- if (platform3 === "win32") {
26469
+ if (platform === "win32") {
26470
26470
  fs4.rename = /* @__PURE__ */ function(fs$rename) {
26471
26471
  return function(from, to, cb) {
26472
26472
  var start = Date.now();
@@ -31639,7 +31639,7 @@ var require_open = __commonJS({
31639
31639
  var isDocker = require_is_docker();
31640
31640
  var defineLazyProperty = require_define_lazy_prop();
31641
31641
  var localXdgOpenPath = path6.join(__dirname, "xdg-open");
31642
- var { platform: platform3, arch } = process;
31642
+ var { platform, arch } = process;
31643
31643
  var getWslDrivesMountPoint = /* @__PURE__ */ (() => {
31644
31644
  const defaultMountPoint = "/mnt/";
31645
31645
  let mountPoint;
@@ -31706,7 +31706,7 @@ var require_open = __commonJS({
31706
31706
  let command2;
31707
31707
  const cliArguments = [];
31708
31708
  const childProcessOptions = {};
31709
- if (platform3 === "darwin") {
31709
+ if (platform === "darwin") {
31710
31710
  command2 = "open";
31711
31711
  if (options.wait) {
31712
31712
  cliArguments.push("--wait-apps");
@@ -31720,7 +31720,7 @@ var require_open = __commonJS({
31720
31720
  if (app) {
31721
31721
  cliArguments.push("-a", app);
31722
31722
  }
31723
- } else if (platform3 === "win32" || isWsl && !isDocker()) {
31723
+ } else if (platform === "win32" || isWsl && !isDocker()) {
31724
31724
  const mountPoint = await getWslDrivesMountPoint();
31725
31725
  command2 = isWsl ? `${mountPoint}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe` : `${process.env.SYSTEMROOT}\\System32\\WindowsPowerShell\\v1.0\\powershell`;
31726
31726
  cliArguments.push(
@@ -31761,7 +31761,7 @@ var require_open = __commonJS({
31761
31761
  exeLocalXdgOpen = true;
31762
31762
  } catch {
31763
31763
  }
31764
- const useSystemXdgOpen = process.versions.electron || platform3 === "android" || isBundled || !exeLocalXdgOpen;
31764
+ const useSystemXdgOpen = process.versions.electron || platform === "android" || isBundled || !exeLocalXdgOpen;
31765
31765
  command2 = useSystemXdgOpen ? "xdg-open" : localXdgOpenPath;
31766
31766
  }
31767
31767
  if (appArguments.length > 0) {
@@ -31775,7 +31775,7 @@ var require_open = __commonJS({
31775
31775
  if (options.target) {
31776
31776
  cliArguments.push(options.target);
31777
31777
  }
31778
- if (platform3 === "darwin" && appArguments.length > 0) {
31778
+ if (platform === "darwin" && appArguments.length > 0) {
31779
31779
  cliArguments.push("--args", ...appArguments);
31780
31780
  }
31781
31781
  const subprocess = childProcess.spawn(command2, cliArguments, childProcessOptions);
@@ -31829,12 +31829,12 @@ var require_open = __commonJS({
31829
31829
  }
31830
31830
  return archBinary;
31831
31831
  }
31832
- function detectPlatformBinary({ [platform3]: platformBinary }, { wsl }) {
31832
+ function detectPlatformBinary({ [platform]: platformBinary }, { wsl }) {
31833
31833
  if (wsl && isWsl) {
31834
31834
  return detectArchBinary(wsl);
31835
31835
  }
31836
31836
  if (!platformBinary) {
31837
- throw new Error(`${platform3} is not supported`);
31837
+ throw new Error(`${platform} is not supported`);
31838
31838
  }
31839
31839
  return detectArchBinary(platformBinary);
31840
31840
  }
@@ -74560,7 +74560,7 @@ var Yargs = YargsFactory(esm_default);
74560
74560
  var yargs_default = Yargs;
74561
74561
 
74562
74562
  // package.json
74563
- var version = "0.0.0-de209c235";
74563
+ var version = "0.0.0-de3764fa3";
74564
74564
 
74565
74565
  // src/metrics.ts
74566
74566
  var import_node_async_hooks = require("node:async_hooks");
@@ -74853,7 +74853,7 @@ var detectPmMismatch = (ctx) => {
74853
74853
 
74854
74854
  // src/helpers/sparrow.ts
74855
74855
  var import_undici = __toESM(require_undici());
74856
- var SPARROW_SOURCE_KEY = "";
74856
+ var SPARROW_SOURCE_KEY = "5adf183f94b3436ba78d67f506965998";
74857
74857
  var SPARROW_URL = "https://sparrow.cloudflare.com";
74858
74858
  function hasSparrowSourceKey() {
74859
74859
  return SPARROW_SOURCE_KEY !== "";
@@ -74892,8 +74892,8 @@ function promiseWithResolvers() {
74892
74892
  return { resolve: resolve12, reject, promise };
74893
74893
  }
74894
74894
  function getPlatform() {
74895
- const platform3 = process.platform;
74896
- switch (platform3) {
74895
+ const platform = process.platform;
74896
+ switch (platform) {
74897
74897
  case "win32":
74898
74898
  return "Windows";
74899
74899
  case "darwin":
@@ -74901,7 +74901,7 @@ function getPlatform() {
74901
74901
  case "linux":
74902
74902
  return "Linux";
74903
74903
  default:
74904
- return `Others: ${platform3}`;
74904
+ return `Others: ${platform}`;
74905
74905
  }
74906
74906
  }
74907
74907
  function createReporter() {
@@ -74912,7 +74912,7 @@ function createReporter() {
74912
74912
  const isEnabled = isTelemetryEnabled();
74913
74913
  const deviceId = getDeviceId(config48);
74914
74914
  const packageManager = detectPackageManager();
74915
- const platform3 = getPlatform();
74915
+ const platform = getPlatform();
74916
74916
  const amplitude_session_id = Date.now();
74917
74917
  const enableLog = process.env.CREATE_CLOUDFLARE_TELEMETRY_DEBUG === "1";
74918
74918
  let amplitude_event_id = 0;
@@ -74928,7 +74928,7 @@ function createReporter() {
74928
74928
  properties: {
74929
74929
  amplitude_session_id,
74930
74930
  amplitude_event_id: amplitude_event_id++,
74931
- platform: platform3,
74931
+ platform,
74932
74932
  c3Version: version,
74933
74933
  isFirstUsage,
74934
74934
  packageManager: packageManager.name,
@@ -75335,21 +75335,21 @@ var package_default = {
75335
75335
  "so that we can use dependabot to update these dependencies automatically."
75336
75336
  ],
75337
75337
  dependencies: {
75338
- "create-astro": "4.11.1",
75338
+ "create-astro": "4.11.4",
75339
75339
  "create-analog": "1.8.1",
75340
- "@angular/create": "19.2.6",
75340
+ "@angular/create": "19.2.11",
75341
75341
  "create-docusaurus": "3.7.0",
75342
- "create-hono": "0.17.0",
75343
- "create-next-app": "15.2.1",
75342
+ "create-hono": "0.18.0",
75343
+ "create-next-app": "15.3.2",
75344
75344
  "create-qwik": "1.13.0",
75345
- "create-vite": "6.3.1",
75346
- "create-remix": "2.16.5",
75347
- "create-react-router": "7.5.0",
75345
+ "create-vite": "6.5.0",
75346
+ "create-remix": "2.16.6",
75347
+ "create-react-router": "7.6.0",
75348
75348
  "create-solid": "0.6.2",
75349
75349
  "create-vue": "3.16.4",
75350
- gatsby: "5.14.1",
75351
- sv: "0.8.0",
75352
- nuxi: "3.24.1"
75350
+ gatsby: "5.14.3",
75351
+ sv: "0.8.3",
75352
+ nuxi: "3.25.0"
75353
75353
  }
75354
75354
  };
75355
75355
 
@@ -75483,10 +75483,6 @@ async function getWorkerdCompatibilityDate() {
75483
75483
  );
75484
75484
  return fallbackDate;
75485
75485
  }
75486
- var compatDateFlag = async () => {
75487
- const workerdCompatDate = await getWorkerdCompatibilityDate();
75488
- return `--compatibility-date=${workerdCompatDate}`;
75489
- };
75490
75486
  function getLatestTypesEntrypoint(ctx) {
75491
75487
  const workersTypesPath = (0, import_path9.resolve)(
75492
75488
  ctx.project.path,
@@ -75569,10 +75565,10 @@ var config = {
75569
75565
  transformPackageJson: async () => ({
75570
75566
  scripts: {
75571
75567
  preview: `${npm} run build && npx wrangler dev`,
75572
- deploy: `${npm} run build && wrangler deploy`
75568
+ deploy: `${npm} run build && wrangler deploy`,
75569
+ "cf-typegen": `wrangler types`
75573
75570
  }
75574
75571
  }),
75575
- compatibilityFlags: ["nodejs_compat"],
75576
75572
  devScript: "dev",
75577
75573
  deployScript: "deploy",
75578
75574
  previewScript: "preview"
@@ -75604,21 +75600,6 @@ var configure2 = async (ctx) => {
75604
75600
  });
75605
75601
  }
75606
75602
  updateViteConfig(ctx);
75607
- updateEnvTypes(ctx);
75608
- };
75609
- var updateEnvTypes = (ctx) => {
75610
- const filepath = "env.d.ts";
75611
- const s = spinner();
75612
- s.start(`Updating ${filepath}`);
75613
- let file = readFile(filepath);
75614
- let typesEntrypoint = `@cloudflare/workers-types`;
75615
- const latestEntrypoint = getLatestTypesEntrypoint(ctx);
75616
- if (latestEntrypoint) {
75617
- typesEntrypoint += `/${latestEntrypoint}`;
75618
- }
75619
- file = file.replace("WORKERS_TYPES_ENTRYPOINT", typesEntrypoint);
75620
- writeFile2("env.d.ts", file);
75621
- s.stop(`${brandColor(`updated`)} ${dim(`\`${filepath}\``)}`);
75622
75603
  };
75623
75604
  var updateViteConfig = (ctx) => {
75624
75605
  const b3 = recast3.types.builders;
@@ -75762,10 +75743,11 @@ var config3 = {
75762
75743
  configure: configure3,
75763
75744
  transformPackageJson: async () => ({
75764
75745
  scripts: {
75765
- start: `${npm3} run build && wrangler pages dev dist/cloudflare ${await compatDateFlag()}`,
75746
+ start: `${npm3} run build && wrangler pages dev`,
75766
75747
  build: `ng build && ${npm3} run process`,
75767
75748
  process: "node ./tools/copy-files.mjs",
75768
- deploy: `${npm3} run build && wrangler pages deploy dist/cloudflare`
75749
+ deploy: `${npm3} run build && wrangler pages deploy`,
75750
+ "cf-typegen": `wrangler types`
75769
75751
  }
75770
75752
  })
75771
75753
  };
@@ -75851,7 +75833,8 @@ var config4 = {
75851
75833
  scripts: {
75852
75834
  start: `${npm4} run build && wrangler dev`,
75853
75835
  build: `ng build`,
75854
- deploy: `${npm4} run build && wrangler deploy`
75836
+ deploy: `${npm4} run build && wrangler deploy`,
75837
+ "cf-typegen": `wrangler types`
75855
75838
  }
75856
75839
  })
75857
75840
  };
@@ -76067,7 +76050,8 @@ var config10 = {
76067
76050
  }),
76068
76051
  devScript: "preview",
76069
76052
  deployScript: "deploy",
76070
- previewScript: "preview"
76053
+ previewScript: "preview",
76054
+ workersTypes: "none"
76071
76055
  };
76072
76056
  var c3_default10 = config10;
76073
76057
 
@@ -76095,7 +76079,8 @@ var config11 = {
76095
76079
  }),
76096
76080
  devScript: "start",
76097
76081
  deployScript: "deploy",
76098
- previewScript: "preview"
76082
+ previewScript: "preview",
76083
+ workersTypes: "none"
76099
76084
  };
76100
76085
  var c3_default11 = config11;
76101
76086
 
@@ -76144,7 +76129,8 @@ var config13 = {
76144
76129
  }),
76145
76130
  devScript: "develop",
76146
76131
  deployScript: "deploy",
76147
- previewScript: "preview"
76132
+ previewScript: "preview",
76133
+ workersTypes: "none"
76148
76134
  };
76149
76135
  var c3_default13 = config13;
76150
76136
 
@@ -76188,7 +76174,8 @@ var config14 = {
76188
76174
  }),
76189
76175
  devScript: "develop",
76190
76176
  deployScript: "deploy",
76191
- previewScript: "preview"
76177
+ previewScript: "preview",
76178
+ workersTypes: "none"
76192
76179
  };
76193
76180
  var c3_default14 = config14;
76194
76181
 
@@ -76228,6 +76215,9 @@ var config17 = {
76228
76215
  },
76229
76216
  ts: {
76230
76217
  path: "./ts"
76218
+ },
76219
+ python: {
76220
+ path: "./py"
76231
76221
  }
76232
76222
  }
76233
76223
  }
@@ -76248,6 +76238,9 @@ var config18 = {
76248
76238
  },
76249
76239
  ts: {
76250
76240
  path: "./ts"
76241
+ },
76242
+ python: {
76243
+ path: "./py"
76251
76244
  }
76252
76245
  }
76253
76246
  }
@@ -76327,6 +76320,7 @@ var generate11 = async (ctx) => {
76327
76320
  ]);
76328
76321
  logRaw("");
76329
76322
  };
76323
+ var envInterfaceName = "CloudflareBindings";
76330
76324
  var config20 = {
76331
76325
  configVersion: 1,
76332
76326
  id: "hono",
@@ -76341,13 +76335,14 @@ var config20 = {
76341
76335
  generate: generate11,
76342
76336
  transformPackageJson: async () => ({
76343
76337
  scripts: {
76344
- "cf-typegen": "wrangler types --env-interface CloudflareBindings",
76338
+ "cf-typegen": `wrangler types --env-interface ${envInterfaceName}`,
76345
76339
  preview: "vite build && wrangler pages dev"
76346
76340
  }
76347
76341
  }),
76348
76342
  devScript: "dev",
76349
76343
  deployScript: "deploy",
76350
- previewScript: "preview"
76344
+ previewScript: "preview",
76345
+ envInterfaceName
76351
76346
  };
76352
76347
  var c3_default21 = config20;
76353
76348
 
@@ -76364,6 +76359,7 @@ var generate12 = async (ctx) => {
76364
76359
  ]);
76365
76360
  logRaw("");
76366
76361
  };
76362
+ var envInterfaceName2 = "CloudflareBindings";
76367
76363
  var config21 = {
76368
76364
  configVersion: 1,
76369
76365
  id: "hono",
@@ -76377,12 +76373,13 @@ var config21 = {
76377
76373
  generate: generate12,
76378
76374
  transformPackageJson: async () => ({
76379
76375
  scripts: {
76380
- "cf-typegen": "wrangler types --env-interface CloudflareBindings"
76376
+ "cf-typegen": `wrangler types --env-interface ${envInterfaceName2}`
76381
76377
  }
76382
76378
  }),
76383
76379
  devScript: "dev",
76384
76380
  deployScript: "deploy",
76385
- previewScript: "dev"
76381
+ previewScript: "dev",
76382
+ envInterfaceName: envInterfaceName2
76386
76383
  };
76387
76384
  var c3_default22 = config21;
76388
76385
 
@@ -76435,13 +76432,6 @@ var configure7 = async (ctx) => {
76435
76432
  throw new Error("Could not find the `/api` or `/app` directory");
76436
76433
  }
76437
76434
  const usesTs = usesTypescript(ctx);
76438
- if (usesTs) {
76439
- copyFile(
76440
- (0, import_path10.join)(getTemplatePath(ctx), "env.d.ts"),
76441
- (0, import_path10.join)(projectPath, "env.d.ts")
76442
- );
76443
- updateStatus("Created an env.d.ts file");
76444
- }
76445
76435
  const installEslintPlugin = await shouldInstallNextOnPagesEslintPlugin(ctx);
76446
76436
  if (installEslintPlugin) {
76447
76437
  await writeEslintrc(ctx);
@@ -76486,7 +76476,6 @@ var writeEslintrc = async (ctx) => {
76486
76476
  var addDevDependencies = async (installEslintPlugin) => {
76487
76477
  const packages = [
76488
76478
  "@cloudflare/next-on-pages@1",
76489
- "@cloudflare/workers-types",
76490
76479
  "vercel",
76491
76480
  ...installEslintPlugin ? ["eslint-plugin-next-on-pages"] : []
76492
76481
  ];
@@ -76496,6 +76485,8 @@ var addDevDependencies = async (installEslintPlugin) => {
76496
76485
  doneText: `${brandColor(`installed`)} ${dim(packages.join(", "))}`
76497
76486
  });
76498
76487
  };
76488
+ var envInterfaceName3 = "CloudflareEnv";
76489
+ var typesPath = "./env.d.ts";
76499
76490
  var c3_default24 = {
76500
76491
  configVersion: 1,
76501
76492
  id: "next",
@@ -76549,7 +76540,7 @@ var c3_default24 = {
76549
76540
  preview: `${pagesBuildRunCommand} && wrangler pages dev`,
76550
76541
  deploy: `${pagesBuildRunCommand} && wrangler pages deploy`,
76551
76542
  ...usesTypescript(ctx) && {
76552
- "cf-typegen": `wrangler types --env-interface CloudflareEnv env.d.ts`
76543
+ "cf-typegen": `wrangler types --env-interface ${envInterfaceName3} ${typesPath}`
76553
76544
  }
76554
76545
  }
76555
76546
  };
@@ -76557,7 +76548,9 @@ var c3_default24 = {
76557
76548
  devScript: "dev",
76558
76549
  previewScript: "preview",
76559
76550
  deployScript: "deploy",
76560
- compatibilityFlags: ["nodejs_compat"]
76551
+ compatibilityFlags: ["nodejs_compat"],
76552
+ typesPath,
76553
+ envInterfaceName: envInterfaceName3
76561
76554
  };
76562
76555
 
76563
76556
  // templates/next/workers/c3.ts
@@ -76565,14 +76558,9 @@ var generate14 = async (ctx) => {
76565
76558
  await runFrameworkGenerator(ctx, [ctx.project.name]);
76566
76559
  };
76567
76560
  var configure8 = async (ctx) => {
76568
- const packages = [
76569
- "@opennextjs/cloudflare@~1.0.0-beta.0 || ^1.0.0",
76570
- "@cloudflare/workers-types"
76571
- ];
76572
- await installPackages(packages, {
76573
- dev: true,
76561
+ await installPackages(["@opennextjs/cloudflare@^1.0.2"], {
76574
76562
  startText: "Adding the Cloudflare adapter",
76575
- doneText: `${brandColor(`installed`)} ${dim(packages.join(", "))}`
76563
+ doneText: `${brandColor(`installed`)} @opennextjs/cloudflare)}`
76576
76564
  });
76577
76565
  const usesTs = usesTypescript(ctx);
76578
76566
  updateNextConfig2(usesTs);
@@ -76590,13 +76578,14 @@ var updateNextConfig2 = (usesTs) => {
76590
76578
  writeFile2(configFile, updatedConfigFile);
76591
76579
  s.stop(`${brandColor(`updated`)} ${dim(`\`${configFile}\``)}`);
76592
76580
  };
76581
+ var envInterfaceName4 = "CloudflareEnv";
76582
+ var typesPath2 = "./cloudflare-env.d.ts";
76593
76583
  var c3_default25 = {
76594
76584
  configVersion: 1,
76595
76585
  id: "next",
76596
76586
  frameworkCli: "create-next-app",
76597
- frameworkCliPinnedVersion: "~15.2.4",
76598
76587
  platform: "workers",
76599
- displayName: "Next.js (using Node.js compat + Workers Assets)",
76588
+ displayName: "Next.js",
76600
76589
  path: "templates/next/workers",
76601
76590
  copyFiles: {
76602
76591
  path: "./templates"
@@ -76607,13 +76596,14 @@ var c3_default25 = {
76607
76596
  scripts: {
76608
76597
  deploy: `opennextjs-cloudflare build && opennextjs-cloudflare deploy`,
76609
76598
  preview: `opennextjs-cloudflare build && opennextjs-cloudflare preview`,
76610
- "cf-typegen": `wrangler types --env-interface CloudflareEnv cloudflare-env.d.ts`
76599
+ "cf-typegen": `wrangler types --env-interface ${envInterfaceName4} ${typesPath2}`
76611
76600
  }
76612
76601
  }),
76613
76602
  devScript: "dev",
76614
76603
  previewScript: "preview",
76615
76604
  deployScript: "deploy",
76616
- compatibilityFlags: ["nodejs_compat"]
76605
+ typesPath: typesPath2,
76606
+ envInterfaceName: envInterfaceName4
76617
76607
  };
76618
76608
 
76619
76609
  // templates/next/c3.ts
@@ -76639,7 +76629,7 @@ var generate15 = async (ctx) => {
76639
76629
  writeFile2("./.node-version", "18");
76640
76630
  logRaw("");
76641
76631
  };
76642
- var configure9 = async (ctx) => {
76632
+ var configure9 = async () => {
76643
76633
  const packages = ["nitro-cloudflare-dev"];
76644
76634
  if (pm2 === "pnpm") {
76645
76635
  packages.push("h3");
@@ -76650,21 +76640,6 @@ var configure9 = async (ctx) => {
76650
76640
  doneText: `${brandColor("installed")} ${dim(`via \`${npm10} install\``)}`
76651
76641
  });
76652
76642
  updateNuxtConfig();
76653
- updateEnvTypes2(ctx);
76654
- };
76655
- var updateEnvTypes2 = (ctx) => {
76656
- const filepath = "env.d.ts";
76657
- const s = spinner();
76658
- s.start(`Updating ${filepath}`);
76659
- let file = readFile(filepath);
76660
- let typesEntrypoint = `@cloudflare/workers-types`;
76661
- const latestEntrypoint = getLatestTypesEntrypoint(ctx);
76662
- if (latestEntrypoint) {
76663
- typesEntrypoint += `/${latestEntrypoint}`;
76664
- }
76665
- file = file.replace("WORKERS_TYPES_ENTRYPOINT", typesEntrypoint);
76666
- writeFile2("env.d.ts", file);
76667
- s.stop(`${brandColor(`updated`)} ${dim(`\`${filepath}\``)}`);
76668
76643
  };
76669
76644
  var updateNuxtConfig = () => {
76670
76645
  const s = spinner();
@@ -76750,7 +76725,7 @@ var generate16 = async (ctx) => {
76750
76725
  writeFile2("./.node-version", "18");
76751
76726
  logRaw("");
76752
76727
  };
76753
- var configure10 = async (ctx) => {
76728
+ var configure10 = async () => {
76754
76729
  const packages = ["nitro-cloudflare-dev", "nitropack"];
76755
76730
  if (pm3 === "pnpm") {
76756
76731
  packages.push("h3");
@@ -76761,21 +76736,6 @@ var configure10 = async (ctx) => {
76761
76736
  doneText: `${brandColor("installed")} ${dim(`via \`${npm11} install\``)}`
76762
76737
  });
76763
76738
  updateNuxtConfig2();
76764
- updateEnvTypes3(ctx);
76765
- };
76766
- var updateEnvTypes3 = (ctx) => {
76767
- const filepath = "env.d.ts";
76768
- const s = spinner();
76769
- s.start(`Updating ${filepath}`);
76770
- let file = readFile(filepath);
76771
- let typesEntrypoint = `@cloudflare/workers-types`;
76772
- const latestEntrypoint = getLatestTypesEntrypoint(ctx);
76773
- if (latestEntrypoint) {
76774
- typesEntrypoint += `/${latestEntrypoint}`;
76775
- }
76776
- file = file.replace("WORKERS_TYPES_ENTRYPOINT", typesEntrypoint);
76777
- writeFile2("env.d.ts", file);
76778
- s.stop(`${brandColor(`updated`)} ${dim(`\`${filepath}\``)}`);
76779
76739
  };
76780
76740
  var updateNuxtConfig2 = () => {
76781
76741
  const s = spinner();
@@ -77176,7 +77136,8 @@ var config30 = {
77176
77136
  }),
77177
77137
  devScript: "dev",
77178
77138
  deployScript: "deploy",
77179
- previewScript: "preview"
77139
+ previewScript: "preview",
77140
+ workersTypes: "installed"
77180
77141
  };
77181
77142
  var c3_default33 = config30;
77182
77143
 
@@ -77190,8 +77151,6 @@ var configure12 = async (ctx) => {
77190
77151
  const cmd = [name2 === "pnpm" ? npm13 : npx5, "qwik", "add", "cloudflare-pages"];
77191
77152
  endSection(`Running ${quoteShellArgs(cmd)}`);
77192
77153
  await runCommand(cmd);
77193
- removeFile("./public/_headers");
77194
- removeFile("./public/_redirects");
77195
77154
  removeFile("./public/_routes.json");
77196
77155
  addBindingsProxy2(ctx);
77197
77156
  populateCloudflareEnv2();
@@ -77231,7 +77190,7 @@ var addBindingsProxy2 = (ctx) => {
77231
77190
  return false;
77232
77191
  }
77233
77192
  if (configArgument.type !== "ObjectExpression") {
77234
- crash("Failed to update `vite.config.ts`");
77193
+ throw new Error("Failed to update `vite.config.ts`");
77235
77194
  }
77236
77195
  configArgument.properties.push(platformPropery);
77237
77196
  return false;
@@ -77287,7 +77246,8 @@ var config31 = {
77287
77246
  }),
77288
77247
  devScript: "dev",
77289
77248
  deployScript: "deploy",
77290
- previewScript: "preview"
77249
+ previewScript: "preview",
77250
+ workersTypes: "installed"
77291
77251
  };
77292
77252
  var c3_default34 = config31;
77293
77253
 
@@ -77317,9 +77277,6 @@ var config33 = {
77317
77277
  platform: "workers",
77318
77278
  frameworkCli: "create-react-router",
77319
77279
  displayName: "React Router (formerly Remix)",
77320
- copyFiles: {
77321
- path: "./templates"
77322
- },
77323
77280
  generate: generate19,
77324
77281
  // configure,
77325
77282
  transformPackageJson: async () => ({
@@ -77375,11 +77332,13 @@ var config34 = {
77375
77332
  platform: "pages",
77376
77333
  hidden: true,
77377
77334
  path: "templates/react/pages",
77335
+ copyFiles: { path: "./templates" },
77378
77336
  generate: generate20,
77379
77337
  transformPackageJson: async () => ({
77380
77338
  scripts: {
77381
- deploy: `${npm15} run build && wrangler pages deploy ./dist`,
77382
- preview: `${npm15} run build && wrangler pages dev ./dist`
77339
+ deploy: `${npm15} run build && wrangler pages deploy`,
77340
+ preview: `${npm15} run build && wrangler pages dev`,
77341
+ "cf-typegen": `wrangler types`
77383
77342
  }
77384
77343
  }),
77385
77344
  devScript: "dev",
@@ -77410,7 +77369,7 @@ var configure13 = async (ctx) => {
77410
77369
  startText: "Installing the Cloudflare Vite plugin",
77411
77370
  doneText: `${brandColor(`installed`)} ${dim("@cloudflare/vite-plugin")}`
77412
77371
  });
77413
- await transformViteConfig(ctx);
77372
+ transformViteConfig(ctx);
77414
77373
  if (usesTypescript(ctx)) {
77415
77374
  updateTsconfigJson();
77416
77375
  }
@@ -77580,7 +77539,8 @@ var config37 = {
77580
77539
  }),
77581
77540
  devScript: "dev",
77582
77541
  deployScript: "deploy",
77583
- previewScript: "preview"
77542
+ previewScript: "preview",
77543
+ workersTypes: "installed"
77584
77544
  };
77585
77545
  var c3_default40 = config37;
77586
77546
 
@@ -77622,7 +77582,8 @@ var config38 = {
77622
77582
  }),
77623
77583
  devScript: "dev",
77624
77584
  deployScript: "deploy",
77625
- previewScript: "preview"
77585
+ previewScript: "preview",
77586
+ workersTypes: "installed"
77626
77587
  };
77627
77588
  var c3_default41 = config38;
77628
77589
 
@@ -77713,7 +77674,8 @@ var config41 = {
77713
77674
  transformPackageJson: async () => ({
77714
77675
  scripts: {
77715
77676
  preview: `${npm19} run build && npx wrangler pages dev`,
77716
- deploy: `${npm19} run build && wrangler pages deploy`
77677
+ deploy: `${npm19} run build && wrangler pages deploy`,
77678
+ "cf-typegen": `wrangler types`
77717
77679
  }
77718
77680
  }),
77719
77681
  compatibilityFlags: ["nodejs_compat"],
@@ -77725,7 +77687,6 @@ var c3_default44 = config41;
77725
77687
 
77726
77688
  // templates/svelte/pages/c3.ts
77727
77689
  var import_node_fs3 = require("node:fs");
77728
- var import_node_os3 = require("node:os");
77729
77690
  var recast12 = __toESM(require_main3());
77730
77691
  var { npm: npm20 } = detectPackageManager();
77731
77692
  var generate25 = async (ctx) => {
@@ -77814,6 +77775,7 @@ var updateTypeDefinitions = (ctx) => {
77814
77775
  }
77815
77776
  });
77816
77777
  };
77778
+ var typesPath3 = "src/worker-configuration.d.ts";
77817
77779
  var config42 = {
77818
77780
  configVersion: 1,
77819
77781
  id: "svelte",
@@ -77833,22 +77795,21 @@ var config42 = {
77833
77795
  deploy: `${npm20} run build && wrangler pages deploy`
77834
77796
  };
77835
77797
  if (usesTypescript(ctx)) {
77836
- const mv = (0, import_node_os3.platform)() === "win32" ? "move" : "mv";
77837
77798
  scripts = {
77838
77799
  ...scripts,
77839
- "cf-typegen": `wrangler types && ${mv} worker-configuration.d.ts src/`
77800
+ "cf-typegen": `wrangler types ${typesPath3}`
77840
77801
  };
77841
77802
  }
77842
77803
  return { scripts };
77843
77804
  },
77844
77805
  devScript: "dev",
77845
77806
  deployScript: "deploy",
77846
- previewScript: "preview"
77807
+ previewScript: "preview",
77808
+ typesPath: typesPath3
77847
77809
  };
77848
77810
  var c3_default45 = config42;
77849
77811
 
77850
77812
  // templates/svelte/workers/c3.ts
77851
- var import_node_os4 = require("node:os");
77852
77813
  var recast13 = __toESM(require_main3());
77853
77814
  var { npm: npm21 } = detectPackageManager();
77854
77815
  var generate26 = async (ctx) => {
@@ -77914,6 +77875,7 @@ var updateTypeDefinitions2 = (ctx) => {
77914
77875
  }
77915
77876
  });
77916
77877
  };
77878
+ var typesPath4 = "./src/worker-configuration.d.ts";
77917
77879
  var config43 = {
77918
77880
  configVersion: 1,
77919
77881
  id: "svelte",
@@ -77932,17 +77894,17 @@ var config43 = {
77932
77894
  deploy: `${npm21} run build && wrangler deploy`
77933
77895
  };
77934
77896
  if (usesTypescript(ctx)) {
77935
- const mv = (0, import_node_os4.platform)() === "win32" ? "move" : "mv";
77936
77897
  scripts = {
77937
77898
  ...scripts,
77938
- "cf-typegen": `wrangler types && ${mv} worker-configuration.d.ts src/`
77899
+ "cf-typegen": `wrangler types ${typesPath4}`
77939
77900
  };
77940
77901
  }
77941
77902
  return { scripts };
77942
77903
  },
77943
77904
  devScript: "dev",
77944
77905
  deployScript: "deploy",
77945
- previewScript: "preview"
77906
+ previewScript: "preview",
77907
+ typesPath: typesPath4
77946
77908
  };
77947
77909
  var c3_default46 = config43;
77948
77910
 
@@ -77965,12 +77927,14 @@ var config45 = {
77965
77927
  displayName: "Vue",
77966
77928
  platform: "pages",
77967
77929
  hidden: true,
77968
- path: "templates/pages/vue",
77930
+ path: "templates/vue/pages",
77931
+ copyFiles: { path: "./templates" },
77969
77932
  generate: generate27,
77970
77933
  transformPackageJson: async () => ({
77971
77934
  scripts: {
77972
- deploy: `${npm22} run build && wrangler pages deploy ./dist`,
77973
- preview: `${npm22} run build && wrangler pages dev ./dist`
77935
+ deploy: `${npm22} run build && wrangler pages deploy`,
77936
+ preview: `${npm22} run build && wrangler pages dev`,
77937
+ "cf-typegen": `wrangler types`
77974
77938
  }
77975
77939
  }),
77976
77940
  devScript: "dev",
@@ -78065,7 +78029,7 @@ var c3_default50 = config47;
78065
78029
  var import_node_assert = __toESM(require("node:assert"));
78066
78030
 
78067
78031
  // ../wrangler/package.json
78068
- var version2 = "0.0.0-de209c235";
78032
+ var version2 = "0.0.0-de3764fa3";
78069
78033
 
78070
78034
  // src/git.ts
78071
78035
  var offerGit = async (ctx) => {
@@ -78441,10 +78405,10 @@ var createContext = async (args, prevArgs) => {
78441
78405
  deriveCorrelatedArgs(args);
78442
78406
  const experimental = args.experimental;
78443
78407
  const frameworkMap = getFrameworkMap({ experimental });
78444
- const helloWorldTemplateMap = await getHelloWorldTemplateMap({
78408
+ const helloWorldTemplateMap = getHelloWorldTemplateMap({
78445
78409
  experimental
78446
78410
  });
78447
- const otherTemplateMap = await getOtherTemplateMap({ experimental });
78411
+ const otherTemplateMap = getOtherTemplateMap({ experimental });
78448
78412
  let linesPrinted = 0;
78449
78413
  const goBack = async (from) => {
78450
78414
  const currentArgs = { ...args };
@@ -78570,7 +78534,7 @@ var createContext = async (args, prevArgs) => {
78570
78534
  if (availableVariants.length === 1) {
78571
78535
  args.platform ??= availableVariants[0][0];
78572
78536
  }
78573
- const platform3 = await processArgument(args, "platform", {
78537
+ const platform = await processArgument(args, "platform", {
78574
78538
  type: "select",
78575
78539
  label: "platform",
78576
78540
  question: "Select your deployment platform",
@@ -78594,10 +78558,10 @@ var createContext = async (args, prevArgs) => {
78594
78558
  defaultValue: "workers"
78595
78559
  });
78596
78560
  linesPrinted += 3;
78597
- if (platform3 === BACK_VALUE) {
78561
+ if (platform === BACK_VALUE) {
78598
78562
  return goBack("platform");
78599
78563
  }
78600
- frameworkConfig = frameworkConfig.platformVariants[platform3];
78564
+ frameworkConfig = frameworkConfig.platformVariants[platform];
78601
78565
  }
78602
78566
  template = {
78603
78567
  deployScript: "pages:deploy",
@@ -78634,6 +78598,12 @@ var createContext = async (args, prevArgs) => {
78634
78598
  throw new Error(`Unknown application type provided: ${type}.`);
78635
78599
  }
78636
78600
  }
78601
+ template = {
78602
+ workersTypes: "generated",
78603
+ typesPath: "./worker-configuration.d.ts",
78604
+ envInterfaceName: "Env",
78605
+ ...template
78606
+ };
78637
78607
  const path6 = (0, import_path13.resolve)(projectName);
78638
78608
  const languageVariants = template.copyFiles && !isVariantInfo(template.copyFiles) && !template.copyFiles.selectVariant ? Object.keys(template.copyFiles.variants) : [];
78639
78609
  if (languageVariants.length > 0) {
@@ -78693,7 +78663,7 @@ async function copyTemplateFiles(ctx) {
78693
78663
  }
78694
78664
  srcdir = (0, import_path13.join)(getTemplatePath(ctx), variantInfo.path);
78695
78665
  }
78696
- const copyDestDir = await getCopyFilesDestinationDir(ctx);
78666
+ const copyDestDir = getCopyFilesDestinationDir(ctx);
78697
78667
  const destdir = (0, import_path13.join)(ctx.project.path, ...copyDestDir ? [copyDestDir] : []);
78698
78668
  const s = spinner();
78699
78669
  s.start(`Copying template files`);
@@ -78716,7 +78686,7 @@ var processRemoteTemplate = async (args) => {
78716
78686
  if (src.startsWith("https://github.com/") && src.includes("/tree/main/")) {
78717
78687
  src = src.replace("https://github.com/", "github:").replace("/tree/main/", "/");
78718
78688
  }
78719
- const path6 = await downloadRemoteTemplate(src);
78689
+ const path6 = await downloadRemoteTemplate(src, args.templateMode);
78720
78690
  const config48 = inferTemplateConfig(path6);
78721
78691
  validateTemplate(path6, config48);
78722
78692
  updateStatus(`${brandColor("template")} ${dim("cloned and validated")}`);
@@ -78775,13 +78745,14 @@ var inferCopyFilesDefinition = (path6) => {
78775
78745
  const copyFiles = Object.keys(variants).length !== 0 ? { variants } : { path: "." };
78776
78746
  return copyFiles;
78777
78747
  };
78778
- var downloadRemoteTemplate = async (src) => {
78748
+ var downloadRemoteTemplate = async (src, mode) => {
78779
78749
  try {
78780
78750
  updateStatus(`Cloning template from: ${blue(src)}`);
78781
78751
  const emitter = (0, import_degit.default)(src, {
78782
78752
  cache: false,
78783
78753
  verbose: false,
78784
- force: true
78754
+ force: true,
78755
+ mode
78785
78756
  });
78786
78757
  const tmpDir = await (0, import_promises4.mkdtemp)((0, import_path13.join)((0, import_os2.tmpdir)(), "c3-template"));
78787
78758
  await emitter.clone(tmpDir);
@@ -79036,6 +79007,27 @@ var cliDefinition = {
79036
79007
  npm create cloudflare -- --template https://github.com/cloudflare/workers-sdk/templates/worker-r2
79037
79008
  `
79038
79009
  },
79010
+ {
79011
+ name: "template-mode",
79012
+ type: "string",
79013
+ requiresArg: true,
79014
+ description: `The mechanism to use when fetching the template.
79015
+
79016
+ Can be either "git" or "tar". "tar" does not support fetching from private
79017
+ repositories. By default, degit will use "tar" if the template is hosted on GitHub, BitBucket, GitLab, or git.sr.ht.
79018
+ Otherwise, it will use "git".
79019
+ `,
79020
+ values: [
79021
+ {
79022
+ name: "git",
79023
+ description: "Use git to fetch the template. Supports private repositories."
79024
+ },
79025
+ {
79026
+ name: "tar",
79027
+ description: "Use tar to fetch the template. Only supported on public repositories hosted on GitHub, BitBucket, GitLab, or git.sr.ht."
79028
+ }
79029
+ ]
79030
+ },
79039
79031
  {
79040
79032
  name: "accept-defaults",
79041
79033
  alias: "y",
@@ -79200,7 +79192,7 @@ var processArgument = async (args, key, promptConfig) => {
79200
79192
 
79201
79193
  // src/deploy.ts
79202
79194
  var import_promises5 = require("node:fs/promises");
79203
- var import_node_os5 = require("node:os");
79195
+ var import_node_os3 = require("node:os");
79204
79196
  var import_node_path6 = require("node:path");
79205
79197
  var import_toml3 = __toESM(require_toml());
79206
79198
 
@@ -80867,7 +80859,7 @@ var runDeploy = async (ctx) => {
80867
80859
  ] : []
80868
80860
  ];
80869
80861
  const outputFile = (0, import_node_path6.join)(
80870
- await (0, import_promises5.mkdtemp)((0, import_node_path6.join)((0, import_node_os5.tmpdir)(), "c3-wrangler-deploy-")),
80862
+ await (0, import_promises5.mkdtemp)((0, import_node_path6.join)((0, import_node_os3.tmpdir)(), "c3-wrangler-deploy-")),
80871
80863
  "output.json"
80872
80864
  );
80873
80865
  await runCommand(deployCmd, {
@@ -81447,48 +81439,107 @@ var createProject = async (ctx) => {
81447
81439
  // src/workers.ts
81448
81440
  var import_fs13 = require("fs");
81449
81441
  var import_path16 = require("path");
81450
- async function installWorkersTypes(ctx) {
81442
+ var import_toml4 = __toESM(require_toml());
81443
+ async function addTypes(ctx) {
81444
+ if (!usesTypescript(ctx) || ctx.template.workersTypes === "none") {
81445
+ return;
81446
+ }
81451
81447
  const { npm: npm25 } = detectPackageManager();
81452
- if (!usesTypescript(ctx)) {
81448
+ if (ctx.template.workersTypes === "installed") {
81449
+ await installWorkersTypes(npm25);
81450
+ } else if (ctx.template.workersTypes === "generated") {
81451
+ await generateWorkersTypes(ctx, npm25);
81452
+ }
81453
+ const usesNodeCompat = await maybeInstallNodeTypes(ctx, npm25);
81454
+ await updateTsConfig(ctx, { usesNodeCompat });
81455
+ }
81456
+ async function generateWorkersTypes(ctx, npm25) {
81457
+ const packageJsonPath = (0, import_path16.join)(ctx.project.path, "package.json");
81458
+ if (!(0, import_fs13.existsSync)(packageJsonPath)) {
81453
81459
  return;
81454
81460
  }
81455
- await installPackages(["@cloudflare/workers-types"], {
81456
- dev: true,
81457
- startText: "Installing @cloudflare/workers-types",
81458
- doneText: `${brandColor("installed")} ${dim(`via ${npm25}`)}`
81461
+ const packageManifest = readJSON(packageJsonPath);
81462
+ if (!packageManifest.scripts?.["cf-typegen"]) {
81463
+ return;
81464
+ }
81465
+ const typesCmd = [npm25, "run", "cf-typegen"];
81466
+ await runCommand(typesCmd, {
81467
+ cwd: ctx.project.path,
81468
+ silent: true,
81469
+ startText: "Generating types for your application",
81470
+ doneText: `${brandColor("generated")} ${dim(`to \`${ctx.template.typesPath}\` via \`${typesCmd.join(" ")}\``)}`
81459
81471
  });
81460
- await addWorkersTypesToTsConfig(ctx);
81472
+ if (packageManifest["devDependencies"]?.["@cloudflare/workers-types"]) {
81473
+ delete packageManifest["devDependencies"]?.["@cloudflare/workers-types"];
81474
+ writeFile2(packageJsonPath, JSON.stringify(packageManifest, null, 2));
81475
+ }
81461
81476
  }
81462
- async function addWorkersTypesToTsConfig(ctx) {
81477
+ var maybeInstallNodeTypes = async (ctx, npm25) => {
81478
+ let parsedConfig = {};
81479
+ if (wranglerJsonExists(ctx)) {
81480
+ const wranglerJsonStr = readWranglerJson(ctx);
81481
+ parsedConfig = parse4(wranglerJsonStr, void 0, {
81482
+ allowTrailingComma: true
81483
+ });
81484
+ } else if (wranglerTomlExists(ctx)) {
81485
+ const wranglerTomlStr = readWranglerToml(ctx);
81486
+ parsedConfig = import_toml4.default.parse(wranglerTomlStr);
81487
+ }
81488
+ const compatibilityFlags = Array.isArray(parsedConfig["compatibility_flags"]) ? parsedConfig["compatibility_flags"] : [];
81489
+ if (compatibilityFlags.includes("nodejs_compat") || compatibilityFlags.includes("nodejs_compat_v2")) {
81490
+ await installPackages(["@types/node"], {
81491
+ dev: true,
81492
+ startText: "Installing @types/node",
81493
+ doneText: `${brandColor("installed")} ${dim(`via ${npm25}`)}`
81494
+ });
81495
+ return true;
81496
+ }
81497
+ return false;
81498
+ };
81499
+ async function updateTsConfig(ctx, { usesNodeCompat }) {
81463
81500
  const tsconfigPath = (0, import_path16.join)(ctx.project.path, "tsconfig.json");
81464
81501
  if (!(0, import_fs13.existsSync)(tsconfigPath)) {
81465
81502
  return;
81466
81503
  }
81467
- const s = spinner();
81468
- s.start("Adding latest types to `tsconfig.json`");
81469
81504
  const tsconfig = readFile(tsconfigPath);
81470
- const entrypointVersion = getLatestTypesEntrypoint(ctx);
81471
- if (entrypointVersion === null) {
81472
- s.stop(
81473
- `${brandColor(
81474
- "skipped"
81475
- )} couldn't find latest compatible version of @cloudflare/workers-types`
81476
- );
81477
- return;
81478
- }
81479
- const typesEntrypoint = `@cloudflare/workers-types/${entrypointVersion}`;
81480
81505
  try {
81481
81506
  const config48 = parse4(tsconfig);
81482
81507
  const currentTypes = config48.compilerOptions?.types ?? [];
81483
- const explicitEntrypoint = currentTypes.some(
81484
- (t2) => t2.match(/@cloudflare\/workers-types\/\d{4}-\d{2}-\d{2}/)
81485
- );
81486
- const newTypes = explicitEntrypoint ? [...currentTypes] : [
81487
- ...currentTypes.filter(
81488
- (t2) => t2 !== "@cloudflare/workers-types"
81489
- ),
81490
- typesEntrypoint
81491
- ];
81508
+ let newTypes = [...currentTypes];
81509
+ if (ctx.template.workersTypes === "installed") {
81510
+ const entrypointVersion = getLatestTypesEntrypoint(ctx);
81511
+ if (entrypointVersion === null) {
81512
+ return;
81513
+ }
81514
+ const typesEntrypoint = `@cloudflare/workers-types/${entrypointVersion}`;
81515
+ const explicitEntrypoint = currentTypes.some(
81516
+ (t2) => t2.match(/@cloudflare\/workers-types\/\d{4}-\d{2}-\d{2}/)
81517
+ );
81518
+ if (!explicitEntrypoint) {
81519
+ newTypes = newTypes.filter(
81520
+ (t2) => t2 !== "@cloudflare/workers-types"
81521
+ );
81522
+ newTypes.push(typesEntrypoint);
81523
+ }
81524
+ } else if (ctx.template.workersTypes === "generated") {
81525
+ newTypes.push(ctx.template.typesPath ?? "./worker-configuration.d.ts");
81526
+ const typegen = readFile(
81527
+ ctx.template.typesPath ?? "./worker-configuration.d.ts"
81528
+ ).split("\n");
81529
+ if (typegen.some(
81530
+ (line) => line.includes("// Runtime types generated with workerd")
81531
+ )) {
81532
+ newTypes = newTypes.filter(
81533
+ (t2) => !t2.startsWith("@cloudflare/workers-types")
81534
+ );
81535
+ }
81536
+ }
81537
+ if (usesNodeCompat) {
81538
+ newTypes.push("node");
81539
+ }
81540
+ if (newTypes.sort() === currentTypes.sort()) {
81541
+ return;
81542
+ }
81492
81543
  const useSpaces = !tsconfig.match(/\t/g);
81493
81544
  const edits = modify(
81494
81545
  tsconfig,
@@ -81501,11 +81552,15 @@ async function addWorkersTypesToTsConfig(ctx) {
81501
81552
  const updated = applyEdits(tsconfig, edits);
81502
81553
  writeFile2(tsconfigPath, updated);
81503
81554
  } catch (error2) {
81504
- warn(
81505
- "Failed to update `tsconfig.json` with latest `@cloudflare/workers-types` entrypoint."
81506
- );
81555
+ warn("Failed to update `tsconfig.json`.");
81507
81556
  }
81508
- s.stop(`${brandColor("added")} ${dim(typesEntrypoint)}`);
81557
+ }
81558
+ async function installWorkersTypes(npm25) {
81559
+ await installPackages(["@cloudflare/workers-types"], {
81560
+ dev: true,
81561
+ startText: "Installing @cloudflare/workers-types",
81562
+ doneText: `${brandColor("installed")} ${dim(`via ${npm25}`)}`
81563
+ });
81509
81564
  }
81510
81565
 
81511
81566
  // src/cli.ts
@@ -81585,7 +81640,6 @@ var create = async (ctx) => {
81585
81640
  var configure20 = async (ctx) => {
81586
81641
  startSection("Configuring your application for Cloudflare", "Step 2 of 3");
81587
81642
  await installWrangler();
81588
- await installWorkersTypes(ctx);
81589
81643
  await updateWranglerConfig(ctx);
81590
81644
  const { template } = ctx;
81591
81645
  if (template.configure) {
@@ -81593,6 +81647,7 @@ var configure20 = async (ctx) => {
81593
81647
  }
81594
81648
  addWranglerToGitIgnore(ctx);
81595
81649
  await updatePackageScripts(ctx);
81650
+ await addTypes(ctx);
81596
81651
  await offerGit(ctx);
81597
81652
  await gitCommit(ctx);
81598
81653
  endSection(`Application configured`);
@@ -81643,26 +81698,8 @@ repeat-string/index.js:
81643
81698
  *)
81644
81699
 
81645
81700
  yargs-parser/build/lib/string-utils.js:
81646
- (**
81647
- * @license
81648
- * Copyright (c) 2016, Contributors
81649
- * SPDX-License-Identifier: ISC
81650
- *)
81651
-
81652
81701
  yargs-parser/build/lib/tokenize-arg-string.js:
81653
- (**
81654
- * @license
81655
- * Copyright (c) 2016, Contributors
81656
- * SPDX-License-Identifier: ISC
81657
- *)
81658
-
81659
81702
  yargs-parser/build/lib/yargs-parser-types.js:
81660
- (**
81661
- * @license
81662
- * Copyright (c) 2016, Contributors
81663
- * SPDX-License-Identifier: ISC
81664
- *)
81665
-
81666
81703
  yargs-parser/build/lib/yargs-parser.js:
81667
81704
  (**
81668
81705
  * @license