create-cloudflare 2.24.0 → 2.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -583,6 +583,8 @@ var init_cli = __esm({
583
583
  dash: "\u2500",
584
584
  radioInactive: "\u25CB",
585
585
  radioActive: "\u25CF",
586
+ backActive: "\u25C0",
587
+ backInactive: "\u25C1",
586
588
  bar: "\u2502",
587
589
  leftT: "\u251C",
588
590
  rigthT: "\u2524",
@@ -2615,7 +2617,7 @@ var init_interactive = __esm({
2615
2617
  const color = isInListOfValues || active ? blue : white;
2616
2618
  const text = active ? color.underline(optionLabel) : color(optionLabel);
2617
2619
  const sublabel = opt.sublabel ? color.grey(opt.sublabel) : "";
2618
- const indicator = isInListOfValues || active && !Array.isArray(value) ? color(shapes.radioActive) : color(shapes.radioInactive);
2620
+ const indicator = isInListOfValues || active && !Array.isArray(value) ? color(opt.activeIcon ?? shapes.radioActive) : color(opt.inactiveIcon ?? shapes.radioInactive);
2619
2621
  return `${space(2)}${indicator} ${text} ${sublabel}`;
2620
2622
  };
2621
2623
  const renderOptionCondition = (_2, i) => {
@@ -2875,35 +2877,11 @@ ${grayBar} ${msg}`);
2875
2877
  }
2876
2878
  });
2877
2879
 
2878
- // ../cli/args.ts
2879
- var processArgument;
2880
- var init_args = __esm({
2881
- "../cli/args.ts"() {
2882
- init_interactive();
2883
- init_cli();
2884
- processArgument = async (args, name, promptConfig) => {
2885
- let value = args[name];
2886
- const renderSubmitted = getRenderers(promptConfig).submit;
2887
- if (value !== void 0) {
2888
- const error2 = promptConfig.validate?.(value);
2889
- if (error2) {
2890
- crash(error2);
2891
- }
2892
- const lines = renderSubmitted({ value });
2893
- logRaw(lines.join("\n"));
2894
- return value;
2895
- }
2896
- value = await inputPrompt(promptConfig);
2897
- return value;
2898
- };
2899
- }
2900
- });
2901
-
2902
2880
  // package.json
2903
2881
  var version;
2904
2882
  var init_package = __esm({
2905
2883
  "package.json"() {
2906
- version = "2.24.0";
2884
+ version = "2.25.1";
2907
2885
  }
2908
2886
  });
2909
2887
 
@@ -5431,12 +5409,12 @@ var require_isexe = __commonJS({
5431
5409
  if (typeof Promise !== "function") {
5432
5410
  throw new TypeError("callback not provided");
5433
5411
  }
5434
- return new Promise(function(resolve11, reject) {
5412
+ return new Promise(function(resolve10, reject) {
5435
5413
  isexe(path4, options || {}, function(er, is) {
5436
5414
  if (er) {
5437
5415
  reject(er);
5438
5416
  } else {
5439
- resolve11(is);
5417
+ resolve10(is);
5440
5418
  }
5441
5419
  });
5442
5420
  });
@@ -5502,27 +5480,27 @@ var require_which = __commonJS({
5502
5480
  opt = {};
5503
5481
  const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt);
5504
5482
  const found = [];
5505
- const step = (i) => new Promise((resolve11, reject) => {
5483
+ const step = (i) => new Promise((resolve10, reject) => {
5506
5484
  if (i === pathEnv.length)
5507
- return opt.all && found.length ? resolve11(found) : reject(getNotFoundError(cmd));
5485
+ return opt.all && found.length ? resolve10(found) : reject(getNotFoundError(cmd));
5508
5486
  const ppRaw = pathEnv[i];
5509
5487
  const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
5510
5488
  const pCmd = path4.join(pathPart, cmd);
5511
5489
  const p2 = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;
5512
- resolve11(subStep(p2, i, 0));
5490
+ resolve10(subStep(p2, i, 0));
5513
5491
  });
5514
- const subStep = (p2, i, ii) => new Promise((resolve11, reject) => {
5492
+ const subStep = (p2, i, ii) => new Promise((resolve10, reject) => {
5515
5493
  if (ii === pathExt.length)
5516
- return resolve11(step(i + 1));
5494
+ return resolve10(step(i + 1));
5517
5495
  const ext = pathExt[ii];
5518
5496
  isexe(p2 + ext, { pathExt: pathExtExe }, (er, is) => {
5519
5497
  if (!er && is) {
5520
5498
  if (opt.all)
5521
5499
  found.push(p2 + ext);
5522
5500
  else
5523
- return resolve11(p2 + ext);
5501
+ return resolve10(p2 + ext);
5524
5502
  }
5525
- return resolve11(subStep(p2, i, ii + 1));
5503
+ return resolve10(subStep(p2, i, ii + 1));
5526
5504
  });
5527
5505
  });
5528
5506
  return cb ? step(0).then((res) => cb(null, res), cb) : step(0);
@@ -9969,8 +9947,8 @@ var require_util2 = __commonJS({
9969
9947
  function createDeferredPromise() {
9970
9948
  let res;
9971
9949
  let rej;
9972
- const promise = new Promise((resolve11, reject) => {
9973
- res = resolve11;
9950
+ const promise = new Promise((resolve10, reject) => {
9951
+ res = resolve10;
9974
9952
  rej = reject;
9975
9953
  });
9976
9954
  return { promise, resolve: res, reject: rej };
@@ -11472,8 +11450,8 @@ Content-Type: ${value.type || "application/octet-stream"}\r
11472
11450
  });
11473
11451
  }
11474
11452
  });
11475
- const busboyResolve = new Promise((resolve11, reject) => {
11476
- busboy.on("finish", resolve11);
11453
+ const busboyResolve = new Promise((resolve10, reject) => {
11454
+ busboy.on("finish", resolve10);
11477
11455
  busboy.on("error", (err) => reject(new TypeError(err)));
11478
11456
  });
11479
11457
  if (this.body !== null)
@@ -12018,9 +11996,9 @@ var require_dispatcher_base = __commonJS({
12018
11996
  }
12019
11997
  close(callback) {
12020
11998
  if (callback === void 0) {
12021
- return new Promise((resolve11, reject) => {
11999
+ return new Promise((resolve10, reject) => {
12022
12000
  this.close((err, data) => {
12023
- return err ? reject(err) : resolve11(data);
12001
+ return err ? reject(err) : resolve10(data);
12024
12002
  });
12025
12003
  });
12026
12004
  }
@@ -12058,12 +12036,12 @@ var require_dispatcher_base = __commonJS({
12058
12036
  err = null;
12059
12037
  }
12060
12038
  if (callback === void 0) {
12061
- return new Promise((resolve11, reject) => {
12039
+ return new Promise((resolve10, reject) => {
12062
12040
  this.destroy(err, (err2, data) => {
12063
12041
  return err2 ? (
12064
12042
  /* istanbul ignore next: should never error */
12065
12043
  reject(err2)
12066
- ) : resolve11(data);
12044
+ ) : resolve10(data);
12067
12045
  });
12068
12046
  });
12069
12047
  }
@@ -13123,16 +13101,16 @@ var require_client = __commonJS({
13123
13101
  return this[kNeedDrain] < 2;
13124
13102
  }
13125
13103
  async [kClose]() {
13126
- return new Promise((resolve11) => {
13104
+ return new Promise((resolve10) => {
13127
13105
  if (!this[kSize]) {
13128
- resolve11(null);
13106
+ resolve10(null);
13129
13107
  } else {
13130
- this[kClosedResolve] = resolve11;
13108
+ this[kClosedResolve] = resolve10;
13131
13109
  }
13132
13110
  });
13133
13111
  }
13134
13112
  async [kDestroy](err) {
13135
- return new Promise((resolve11) => {
13113
+ return new Promise((resolve10) => {
13136
13114
  const requests = this[kQueue].splice(this[kPendingIdx]);
13137
13115
  for (let i = 0; i < requests.length; i++) {
13138
13116
  const request2 = requests[i];
@@ -13143,7 +13121,7 @@ var require_client = __commonJS({
13143
13121
  this[kClosedResolve]();
13144
13122
  this[kClosedResolve] = null;
13145
13123
  }
13146
- resolve11();
13124
+ resolve10();
13147
13125
  };
13148
13126
  if (this[kHTTP2Session] != null) {
13149
13127
  util.destroy(this[kHTTP2Session], err);
@@ -13723,7 +13701,7 @@ var require_client = __commonJS({
13723
13701
  });
13724
13702
  }
13725
13703
  try {
13726
- const socket = await new Promise((resolve11, reject) => {
13704
+ const socket = await new Promise((resolve10, reject) => {
13727
13705
  client[kConnector]({
13728
13706
  host,
13729
13707
  hostname,
@@ -13735,7 +13713,7 @@ var require_client = __commonJS({
13735
13713
  if (err) {
13736
13714
  reject(err);
13737
13715
  } else {
13738
- resolve11(socket2);
13716
+ resolve10(socket2);
13739
13717
  }
13740
13718
  });
13741
13719
  });
@@ -14362,12 +14340,12 @@ upgrade: ${upgrade}\r
14362
14340
  cb();
14363
14341
  }
14364
14342
  }
14365
- const waitForDrain = () => new Promise((resolve11, reject) => {
14343
+ const waitForDrain = () => new Promise((resolve10, reject) => {
14366
14344
  assert(callback === null);
14367
14345
  if (socket[kError]) {
14368
14346
  reject(socket[kError]);
14369
14347
  } else {
14370
- callback = resolve11;
14348
+ callback = resolve10;
14371
14349
  }
14372
14350
  });
14373
14351
  if (client[kHTTPConnVersion] === "h2") {
@@ -14712,8 +14690,8 @@ var require_pool_base = __commonJS({
14712
14690
  if (this[kQueue].isEmpty()) {
14713
14691
  return Promise.all(this[kClients].map((c2) => c2.close()));
14714
14692
  } else {
14715
- return new Promise((resolve11) => {
14716
- this[kClosedResolve] = resolve11;
14693
+ return new Promise((resolve10) => {
14694
+ this[kClosedResolve] = resolve10;
14717
14695
  });
14718
14696
  }
14719
14697
  }
@@ -15284,7 +15262,7 @@ var require_readable = __commonJS({
15284
15262
  if (this.closed) {
15285
15263
  return Promise.resolve(null);
15286
15264
  }
15287
- return new Promise((resolve11, reject) => {
15265
+ return new Promise((resolve10, reject) => {
15288
15266
  const signalListenerCleanup = signal ? util.addAbortListener(signal, () => {
15289
15267
  this.destroy();
15290
15268
  }) : noop;
@@ -15293,7 +15271,7 @@ var require_readable = __commonJS({
15293
15271
  if (signal && signal.aborted) {
15294
15272
  reject(signal.reason || Object.assign(new Error("The operation was aborted"), { name: "AbortError" }));
15295
15273
  } else {
15296
- resolve11(null);
15274
+ resolve10(null);
15297
15275
  }
15298
15276
  }).on("error", noop).on("data", function(chunk) {
15299
15277
  limit -= chunk.length;
@@ -15315,11 +15293,11 @@ var require_readable = __commonJS({
15315
15293
  throw new TypeError("unusable");
15316
15294
  }
15317
15295
  assert(!stream[kConsume]);
15318
- return new Promise((resolve11, reject) => {
15296
+ return new Promise((resolve10, reject) => {
15319
15297
  stream[kConsume] = {
15320
15298
  type,
15321
15299
  stream,
15322
- resolve: resolve11,
15300
+ resolve: resolve10,
15323
15301
  reject,
15324
15302
  length: 0,
15325
15303
  body: []
@@ -15354,12 +15332,12 @@ var require_readable = __commonJS({
15354
15332
  }
15355
15333
  }
15356
15334
  function consumeEnd(consume2) {
15357
- const { type, body, resolve: resolve11, stream, length } = consume2;
15335
+ const { type, body, resolve: resolve10, stream, length } = consume2;
15358
15336
  try {
15359
15337
  if (type === "text") {
15360
- resolve11(toUSVString(Buffer.concat(body)));
15338
+ resolve10(toUSVString(Buffer.concat(body)));
15361
15339
  } else if (type === "json") {
15362
- resolve11(JSON.parse(Buffer.concat(body)));
15340
+ resolve10(JSON.parse(Buffer.concat(body)));
15363
15341
  } else if (type === "arrayBuffer") {
15364
15342
  const dst = new Uint8Array(length);
15365
15343
  let pos = 0;
@@ -15367,12 +15345,12 @@ var require_readable = __commonJS({
15367
15345
  dst.set(buf, pos);
15368
15346
  pos += buf.byteLength;
15369
15347
  }
15370
- resolve11(dst.buffer);
15348
+ resolve10(dst.buffer);
15371
15349
  } else if (type === "blob") {
15372
15350
  if (!Blob2) {
15373
15351
  Blob2 = require("buffer").Blob;
15374
15352
  }
15375
- resolve11(new Blob2(body, { type: stream[kContentType] }));
15353
+ resolve10(new Blob2(body, { type: stream[kContentType] }));
15376
15354
  }
15377
15355
  consumeFinish(consume2);
15378
15356
  } catch (err) {
@@ -15627,9 +15605,9 @@ var require_api_request = __commonJS({
15627
15605
  };
15628
15606
  function request2(opts, callback) {
15629
15607
  if (callback === void 0) {
15630
- return new Promise((resolve11, reject) => {
15608
+ return new Promise((resolve10, reject) => {
15631
15609
  request2.call(this, opts, (err, data) => {
15632
- return err ? reject(err) : resolve11(data);
15610
+ return err ? reject(err) : resolve10(data);
15633
15611
  });
15634
15612
  });
15635
15613
  }
@@ -15802,9 +15780,9 @@ var require_api_stream = __commonJS({
15802
15780
  };
15803
15781
  function stream(opts, factory, callback) {
15804
15782
  if (callback === void 0) {
15805
- return new Promise((resolve11, reject) => {
15783
+ return new Promise((resolve10, reject) => {
15806
15784
  stream.call(this, opts, factory, (err, data) => {
15807
- return err ? reject(err) : resolve11(data);
15785
+ return err ? reject(err) : resolve10(data);
15808
15786
  });
15809
15787
  });
15810
15788
  }
@@ -16085,9 +16063,9 @@ var require_api_upgrade = __commonJS({
16085
16063
  };
16086
16064
  function upgrade(opts, callback) {
16087
16065
  if (callback === void 0) {
16088
- return new Promise((resolve11, reject) => {
16066
+ return new Promise((resolve10, reject) => {
16089
16067
  upgrade.call(this, opts, (err, data) => {
16090
- return err ? reject(err) : resolve11(data);
16068
+ return err ? reject(err) : resolve10(data);
16091
16069
  });
16092
16070
  });
16093
16071
  }
@@ -16176,9 +16154,9 @@ var require_api_connect = __commonJS({
16176
16154
  };
16177
16155
  function connect(opts, callback) {
16178
16156
  if (callback === void 0) {
16179
- return new Promise((resolve11, reject) => {
16157
+ return new Promise((resolve10, reject) => {
16180
16158
  connect.call(this, opts, (err, data) => {
16181
- return err ? reject(err) : resolve11(data);
16159
+ return err ? reject(err) : resolve10(data);
16182
16160
  });
16183
16161
  });
16184
16162
  }
@@ -19799,7 +19777,7 @@ var require_fetch = __commonJS({
19799
19777
  async function dispatch({ body }) {
19800
19778
  const url = requestCurrentURL(request2);
19801
19779
  const agent = fetchParams.controller.dispatcher;
19802
- return new Promise((resolve11, reject) => agent.dispatch(
19780
+ return new Promise((resolve10, reject) => agent.dispatch(
19803
19781
  {
19804
19782
  path: url.pathname + url.search,
19805
19783
  origin: url.origin,
@@ -19875,7 +19853,7 @@ var require_fetch = __commonJS({
19875
19853
  }
19876
19854
  }
19877
19855
  }
19878
- resolve11({
19856
+ resolve10({
19879
19857
  status: status2,
19880
19858
  statusText,
19881
19859
  headersList: headers[kHeadersList],
@@ -19918,7 +19896,7 @@ var require_fetch = __commonJS({
19918
19896
  const val = headersList[n2 + 1].toString("latin1");
19919
19897
  headers[kHeadersList].append(key, val);
19920
19898
  }
19921
- resolve11({
19899
+ resolve10({
19922
19900
  status: status2,
19923
19901
  statusText: STATUS_CODES[status2],
19924
19902
  headersList: headers[kHeadersList],
@@ -23560,14 +23538,14 @@ var require_open = __commonJS({
23560
23538
  }
23561
23539
  const subprocess = childProcess.spawn(command2, cliArguments, childProcessOptions);
23562
23540
  if (options.wait) {
23563
- return new Promise((resolve11, reject) => {
23541
+ return new Promise((resolve10, reject) => {
23564
23542
  subprocess.once("error", reject);
23565
23543
  subprocess.once("close", (exitCode) => {
23566
23544
  if (options.allowNonzeroExitCode && exitCode > 0) {
23567
23545
  reject(new Error(`Exited with code ${exitCode}`));
23568
23546
  return;
23569
23547
  }
23570
- resolve11(subprocess);
23548
+ resolve10(subprocess);
23571
23549
  });
23572
23550
  });
23573
23551
  }
@@ -23704,6 +23682,25 @@ var init_cli2 = __esm({
23704
23682
  }
23705
23683
  });
23706
23684
 
23685
+ // ../cli/args.ts
23686
+ var processArgument;
23687
+ var init_args = __esm({
23688
+ "../cli/args.ts"() {
23689
+ init_interactive();
23690
+ processArgument = async (args, name, promptConfig) => {
23691
+ const value = args[name];
23692
+ const result = await inputPrompt({
23693
+ ...promptConfig,
23694
+ // Accept the default value if the arg is already set
23695
+ acceptDefault: promptConfig.acceptDefault ?? value !== void 0,
23696
+ defaultValue: value ?? promptConfig.defaultValue
23697
+ });
23698
+ args[name] = result;
23699
+ return result;
23700
+ };
23701
+ }
23702
+ });
23703
+
23707
23704
  // ../../node_modules/.pnpm/dns2@2.1.0/node_modules/dns2/lib/reader.js
23708
23705
  var require_reader = __commonJS({
23709
23706
  "../../node_modules/.pnpm/dns2@2.1.0/node_modules/dns2/lib/reader.js"(exports2, module2) {
@@ -24429,13 +24426,13 @@ var require_packet = __commonJS({
24429
24426
  let chunklen = 0;
24430
24427
  let received = false;
24431
24428
  let expected = false;
24432
- return new Promise((resolve11, reject) => {
24429
+ return new Promise((resolve10, reject) => {
24433
24430
  const processMessage = () => {
24434
24431
  if (received)
24435
24432
  return;
24436
24433
  received = true;
24437
24434
  const buffer = Buffer.concat(chunks, chunklen);
24438
- resolve11(buffer.slice(2));
24435
+ resolve10(buffer.slice(2));
24439
24436
  };
24440
24437
  socket.on("end", processMessage);
24441
24438
  socket.on("error", reject);
@@ -24497,16 +24494,16 @@ var require_udp = __commonJS({
24497
24494
  if (message instanceof Packet) {
24498
24495
  message = message.toBuffer();
24499
24496
  }
24500
- return new Promise((resolve11, reject) => {
24497
+ return new Promise((resolve10, reject) => {
24501
24498
  this.send(message, rinfo.port, rinfo.address, (err) => {
24502
24499
  if (err)
24503
24500
  return reject(err);
24504
- resolve11(message);
24501
+ resolve10(message);
24505
24502
  });
24506
24503
  });
24507
24504
  }
24508
24505
  listen(port, address) {
24509
- return new Promise((resolve11) => this.bind(port, address, resolve11));
24506
+ return new Promise((resolve10) => this.bind(port, address, resolve10));
24510
24507
  }
24511
24508
  };
24512
24509
  module2.exports = Server;
@@ -24569,11 +24566,11 @@ var require_doh = __commonJS({
24569
24566
  }
24570
24567
  return queryData;
24571
24568
  };
24572
- var readStream = (stream) => new Promise((resolve11, reject) => {
24569
+ var readStream = (stream) => new Promise((resolve10, reject) => {
24573
24570
  let buffer = "";
24574
24571
  stream.on("error", reject).on("data", (chunk) => {
24575
24572
  buffer += chunk;
24576
- }).on("end", () => resolve11(buffer));
24573
+ }).on("end", () => resolve10(buffer));
24577
24574
  });
24578
24575
  var Server = class extends EventEmitter {
24579
24576
  constructor(options) {
@@ -24699,12 +24696,12 @@ var require_dns = __commonJS({
24699
24696
  }
24700
24697
  const servers = Object.values(this.servers);
24701
24698
  this.closed = Promise.all(
24702
- servers.map((server) => new Promise((resolve11) => server.once("close", resolve11)))
24699
+ servers.map((server) => new Promise((resolve10) => server.once("close", resolve10)))
24703
24700
  ).then(() => {
24704
24701
  this.emit("close");
24705
24702
  });
24706
24703
  this.listening = Promise.all(
24707
- servers.map((server) => new Promise((resolve11) => server.once("listening", resolve11)))
24704
+ servers.map((server) => new Promise((resolve10) => server.once("listening", resolve10)))
24708
24705
  ).then(() => {
24709
24706
  const addresses = this.addresses();
24710
24707
  this.emit("listening", addresses);
@@ -24836,18 +24833,18 @@ var require_tcp2 = __commonJS({
24836
24833
  var require_doh2 = __commonJS({
24837
24834
  "../../node_modules/.pnpm/dns2@2.1.0/node_modules/dns2/client/doh.js"(exports2, module2) {
24838
24835
  var Packet = require_packet();
24839
- var defaultGet = (url) => new Promise((resolve11, reject) => {
24836
+ var defaultGet = (url) => new Promise((resolve10, reject) => {
24840
24837
  const headers = {
24841
24838
  accept: "application/dns-message"
24842
24839
  };
24843
24840
  const base = url.startsWith("https") ? require("https") : require("http");
24844
- const req = base.get(url, { headers }, resolve11);
24841
+ const req = base.get(url, { headers }, resolve10);
24845
24842
  req.on("error", reject);
24846
24843
  });
24847
24844
  var readStream = (stream) => {
24848
24845
  const buffer = [];
24849
- return new Promise((resolve11, reject) => {
24850
- stream.on("error", reject).on("data", (chunk) => buffer.push(chunk)).on("end", () => resolve11(Buffer.concat(buffer)));
24846
+ return new Promise((resolve10, reject) => {
24847
+ stream.on("error", reject).on("data", (chunk) => buffer.push(chunk)).on("end", () => resolve10(Buffer.concat(buffer)));
24851
24848
  });
24852
24849
  };
24853
24850
  var DOHClient = ({ dns, http, get = defaultGet } = {}) => {
@@ -24900,12 +24897,12 @@ var require_udp2 = __commonJS({
24900
24897
  type: Packet.TYPE[type]
24901
24898
  });
24902
24899
  const client = new udp.Socket(socketType);
24903
- return new Promise((resolve11, reject) => {
24900
+ return new Promise((resolve10, reject) => {
24904
24901
  client.once("message", function onMessage(message) {
24905
24902
  client.close();
24906
24903
  const response = Packet.parse(message);
24907
24904
  equal(response.header.id, query.header.id);
24908
- resolve11(response);
24905
+ resolve10(response);
24909
24906
  });
24910
24907
  debug("send", dns, query.toBuffer());
24911
24908
  client.send(query.toBuffer(), port, dns, (err) => err && reject(err));
@@ -24919,13 +24916,13 @@ var require_udp2 = __commonJS({
24919
24916
  var require_google = __commonJS({
24920
24917
  "../../node_modules/.pnpm/dns2@2.1.0/node_modules/dns2/client/google.js"(exports2, module2) {
24921
24918
  var https = require("https");
24922
- var get = (url) => new Promise((resolve11) => https.get(url, resolve11));
24919
+ var get = (url) => new Promise((resolve10) => https.get(url, resolve10));
24923
24920
  var readStream = (stream) => {
24924
24921
  const buffer = [];
24925
- return new Promise((resolve11, reject) => {
24922
+ return new Promise((resolve10, reject) => {
24926
24923
  stream.on("error", reject).on("data", (chunk) => {
24927
24924
  buffer.push(chunk);
24928
- }).on("end", () => resolve11(Buffer.concat(buffer)));
24925
+ }).on("end", () => resolve10(Buffer.concat(buffer)));
24929
24926
  });
24930
24927
  };
24931
24928
  var GoogleClient = () => (name, type = "ANY") => {
@@ -24986,8 +24983,8 @@ var require_dns2 = __commonJS({
24986
24983
  const { port, nameServers, recursive, resolverProtocol = "UDP" } = this;
24987
24984
  const createResolver = DNS[resolverProtocol + "Client"];
24988
24985
  return Promise.race(nameServers.map((address) => {
24989
- const resolve11 = createResolver({ dns: address, port, recursive });
24990
- return resolve11(name, type, cls, clientIp);
24986
+ const resolve10 = createResolver({ dns: address, port, recursive });
24987
+ return resolve10(name, type, cls, clientIp);
24991
24988
  }));
24992
24989
  }
24993
24990
  /**
@@ -25045,15 +25042,15 @@ var init_package2 = __esm({
25045
25042
  dependencies: {
25046
25043
  "create-astro": "4.8.0",
25047
25044
  "create-analog": "1.3.1",
25048
- "@angular/create": "18.1.3",
25049
- "create-docusaurus": "3.4.0",
25050
- "create-hono": "0.10.1",
25045
+ "@angular/create": "18.1.4",
25046
+ "create-docusaurus": "3.5.2",
25047
+ "create-hono": "0.12.0",
25051
25048
  "create-next-app": "14.2.5",
25052
25049
  "create-qwik": "1.5.7",
25053
25050
  "create-react-app": "5.0.1",
25054
- "create-remix": "2.10.3",
25051
+ "create-remix": "2.11.1",
25055
25052
  "create-solid": "0.5.12",
25056
- "create-svelte": "6.3.5",
25053
+ "create-svelte": "6.3.8",
25057
25054
  "create-vue": "3.10.4",
25058
25055
  gatsby: "5.13.7",
25059
25056
  nuxi: "3.12.0"
@@ -25132,7 +25129,7 @@ var init_frameworks = __esm({
25132
25129
  var version2;
25133
25130
  var init_package3 = __esm({
25134
25131
  "../wrangler/package.json"() {
25135
- version2 = "3.71.0";
25132
+ version2 = "3.72.1";
25136
25133
  }
25137
25134
  });
25138
25135
 
@@ -27163,20 +27160,20 @@ var require_parse_async = __commonJS({
27163
27160
  const index = 0;
27164
27161
  const blocksize = opts.blocksize || 40960;
27165
27162
  const parser2 = new TOMLParser();
27166
- return new Promise((resolve11, reject) => {
27167
- setImmediate(parseAsyncNext, index, blocksize, resolve11, reject);
27163
+ return new Promise((resolve10, reject) => {
27164
+ setImmediate(parseAsyncNext, index, blocksize, resolve10, reject);
27168
27165
  });
27169
- function parseAsyncNext(index2, blocksize2, resolve11, reject) {
27166
+ function parseAsyncNext(index2, blocksize2, resolve10, reject) {
27170
27167
  if (index2 >= str.length) {
27171
27168
  try {
27172
- return resolve11(parser2.finish());
27169
+ return resolve10(parser2.finish());
27173
27170
  } catch (err) {
27174
27171
  return reject(prettyError(err, str));
27175
27172
  }
27176
27173
  }
27177
27174
  try {
27178
27175
  parser2.parse(str.slice(index2, index2 + blocksize2));
27179
- setImmediate(parseAsyncNext, index2 + blocksize2, blocksize2, resolve11, reject);
27176
+ setImmediate(parseAsyncNext, index2 + blocksize2, blocksize2, resolve10, reject);
27180
27177
  } catch (err) {
27181
27178
  reject(prettyError(err, str));
27182
27179
  }
@@ -27202,7 +27199,7 @@ var require_parse_stream = __commonJS({
27202
27199
  function parseReadable(stm) {
27203
27200
  const parser2 = new TOMLParser();
27204
27201
  stm.setEncoding("utf8");
27205
- return new Promise((resolve11, reject) => {
27202
+ return new Promise((resolve10, reject) => {
27206
27203
  let readable;
27207
27204
  let ended = false;
27208
27205
  let errored = false;
@@ -27211,7 +27208,7 @@ var require_parse_stream = __commonJS({
27211
27208
  if (readable)
27212
27209
  return;
27213
27210
  try {
27214
- resolve11(parser2.finish());
27211
+ resolve10(parser2.finish());
27215
27212
  } catch (err) {
27216
27213
  reject(err);
27217
27214
  }
@@ -27536,7 +27533,7 @@ var require_toml = __commonJS({
27536
27533
  });
27537
27534
 
27538
27535
  // src/helpers/files.ts
27539
- var import_fs8, import_path8, import_toml, copyFile, writeFile2, appendFile, readFile, directoryExists, readJSON, writeJSON, probePaths, usesTypescript, eslintRcExts, usesEslint;
27536
+ var import_fs8, import_path8, import_toml, copyFile, writeFile2, appendFile, readFile, directoryExists, readJSON, writeJSON, probePaths, usesTypescript, hasTsConfig, eslintRcExts, usesEslint;
27540
27537
  var init_files = __esm({
27541
27538
  "src/helpers/files.ts"() {
27542
27539
  import_fs8 = __toESM(require("fs"));
@@ -27598,7 +27595,10 @@ var init_files = __esm({
27598
27595
  return null;
27599
27596
  };
27600
27597
  usesTypescript = (ctx) => {
27601
- return (0, import_fs8.existsSync)((0, import_path8.join)(`${ctx.project.path}`, `tsconfig.json`));
27598
+ return hasTsConfig(ctx.project.path);
27599
+ };
27600
+ hasTsConfig = (path4) => {
27601
+ return (0, import_fs8.existsSync)((0, import_path8.join)(`${path4}`, `tsconfig.json`));
27602
27602
  };
27603
27603
  eslintRcExts = ["js", "cjs", "yaml", "yml", "json"];
27604
27604
  usesEslint = (ctx) => {
@@ -28518,9 +28518,9 @@ var require_index_688c5d50 = __commonJS({
28518
28518
  }
28519
28519
  // stream.promise().then(() => done, er => emitted error)
28520
28520
  promise() {
28521
- return new Promise((resolve12, reject) => {
28521
+ return new Promise((resolve11, reject) => {
28522
28522
  this.on(DESTROYED, () => reject(new Error("stream destroyed")));
28523
- this.on("end", () => resolve12());
28523
+ this.on("end", () => resolve11());
28524
28524
  this.on("error", (er) => reject(er));
28525
28525
  });
28526
28526
  }
@@ -28532,7 +28532,7 @@ var require_index_688c5d50 = __commonJS({
28532
28532
  return Promise.resolve({ done: false, value: res });
28533
28533
  if (this[EOF$1])
28534
28534
  return Promise.resolve({ done: true });
28535
- let resolve12 = null;
28535
+ let resolve11 = null;
28536
28536
  let reject = null;
28537
28537
  const onerr = (er) => {
28538
28538
  this.removeListener("data", ondata);
@@ -28543,17 +28543,17 @@ var require_index_688c5d50 = __commonJS({
28543
28543
  this.removeListener("error", onerr);
28544
28544
  this.removeListener("end", onend);
28545
28545
  this.pause();
28546
- resolve12({ value, done: !!this[EOF$1] });
28546
+ resolve11({ value, done: !!this[EOF$1] });
28547
28547
  };
28548
28548
  const onend = () => {
28549
28549
  this.removeListener("error", onerr);
28550
28550
  this.removeListener("data", ondata);
28551
- resolve12({ done: true });
28551
+ resolve11({ done: true });
28552
28552
  };
28553
28553
  const ondestroy = () => onerr(new Error("stream destroyed"));
28554
28554
  return new Promise((res2, rej) => {
28555
28555
  reject = rej;
28556
- resolve12 = res2;
28556
+ resolve11 = res2;
28557
28557
  this.once(DESTROYED, ondestroy);
28558
28558
  this.once("error", onerr);
28559
28559
  this.once("end", onend);
@@ -30975,9 +30975,9 @@ var require_index_688c5d50 = __commonJS({
30975
30975
  const parse5 = new parse$4(opt);
30976
30976
  const readSize = opt.maxReadSize || 16 * 1024 * 1024;
30977
30977
  const file = opt.file;
30978
- const p2 = new Promise((resolve12, reject) => {
30978
+ const p2 = new Promise((resolve11, reject) => {
30979
30979
  parse5.on("error", reject);
30980
- parse5.on("end", resolve12);
30980
+ parse5.on("end", resolve11);
30981
30981
  fs__default["default"].stat(file, (er, stat) => {
30982
30982
  if (er)
30983
30983
  reject(er);
@@ -31189,7 +31189,7 @@ var require_index_688c5d50 = __commonJS({
31189
31189
  };
31190
31190
  fs__default["default"].read(fd, headBuf, 0, 512, position, onread);
31191
31191
  };
31192
- const promise = new Promise((resolve12, reject) => {
31192
+ const promise = new Promise((resolve11, reject) => {
31193
31193
  p2.on("error", reject);
31194
31194
  let flag = "r+";
31195
31195
  const onopen = (er, fd) => {
@@ -31211,7 +31211,7 @@ var require_index_688c5d50 = __commonJS({
31211
31211
  });
31212
31212
  p2.pipe(stream);
31213
31213
  stream.on("error", reject);
31214
- stream.on("close", resolve12);
31214
+ stream.on("close", resolve11);
31215
31215
  addFilesAsync(p2, files);
31216
31216
  });
31217
31217
  });
@@ -31288,7 +31288,7 @@ var require_index_688c5d50 = __commonJS({
31288
31288
  };
31289
31289
  var optsArg_1 = optsArg;
31290
31290
  var platform$2 = process.env.__TESTING_MKDIRP_PLATFORM__ || process.platform;
31291
- var { resolve: resolve11, parse: parse$3 } = path__default["default"];
31291
+ var { resolve: resolve10, parse: parse$3 } = path__default["default"];
31292
31292
  var pathArg = (path5) => {
31293
31293
  if (/\0/.test(path5)) {
31294
31294
  throw Object.assign(
@@ -31299,7 +31299,7 @@ var require_index_688c5d50 = __commonJS({
31299
31299
  }
31300
31300
  );
31301
31301
  }
31302
- path5 = resolve11(path5);
31302
+ path5 = resolve10(path5);
31303
31303
  if (platform$2 === "win32") {
31304
31304
  const badWinChars = /[*|"<>?:]/;
31305
31305
  const { root } = parse$3(path5);
@@ -31388,12 +31388,12 @@ var require_index_688c5d50 = __commonJS({
31388
31388
  }
31389
31389
  };
31390
31390
  var mkdirpManual_1 = { mkdirpManual: mkdirpManual$2, mkdirpManualSync: mkdirpManualSync$2 };
31391
- var { dirname: dirname4 } = path__default["default"];
31391
+ var { dirname: dirname5 } = path__default["default"];
31392
31392
  var { findMade, findMadeSync } = findMade_1;
31393
31393
  var { mkdirpManual: mkdirpManual$1, mkdirpManualSync: mkdirpManualSync$1 } = mkdirpManual_1;
31394
31394
  var mkdirpNative$1 = (path5, opts) => {
31395
31395
  opts.recursive = true;
31396
- const parent = dirname4(path5);
31396
+ const parent = dirname5(path5);
31397
31397
  if (parent === path5)
31398
31398
  return opts.mkdirAsync(path5, opts);
31399
31399
  return findMade(opts, path5).then((made) => opts.mkdirAsync(path5, opts).then(() => made).catch((er) => {
@@ -31405,7 +31405,7 @@ var require_index_688c5d50 = __commonJS({
31405
31405
  };
31406
31406
  var mkdirpNativeSync$1 = (path5, opts) => {
31407
31407
  opts.recursive = true;
31408
- const parent = dirname4(path5);
31408
+ const parent = dirname5(path5);
31409
31409
  if (parent === path5)
31410
31410
  return opts.mkdirSync(path5, opts);
31411
31411
  const made = findMadeSync(opts, path5);
@@ -32378,9 +32378,9 @@ var require_index_688c5d50 = __commonJS({
32378
32378
  const u = new unpack(opt);
32379
32379
  const readSize = opt.maxReadSize || 16 * 1024 * 1024;
32380
32380
  const file = opt.file;
32381
- const p2 = new Promise((resolve12, reject) => {
32381
+ const p2 = new Promise((resolve11, reject) => {
32382
32382
  u.on("error", reject);
32383
- u.on("close", resolve12);
32383
+ u.on("close", resolve11);
32384
32384
  fs__default["default"].stat(file, (er, stat) => {
32385
32385
  if (er)
32386
32386
  reject(er);
@@ -37765,12 +37765,12 @@ var require_index_688c5d50 = __commonJS({
37765
37765
  });
37766
37766
  function promisify(fn) {
37767
37767
  return function(req, opts) {
37768
- return new Promise((resolve12, reject) => {
37768
+ return new Promise((resolve11, reject) => {
37769
37769
  fn.call(this, req, opts, (err, rtn) => {
37770
37770
  if (err) {
37771
37771
  reject(err);
37772
37772
  } else {
37773
- resolve12(rtn);
37773
+ resolve11(rtn);
37774
37774
  }
37775
37775
  });
37776
37776
  });
@@ -37961,7 +37961,7 @@ var require_index_688c5d50 = __commonJS({
37961
37961
  var debug_1$1 = __importDefault$2(src$1);
37962
37962
  var debug$1 = debug_1$1.default("https-proxy-agent:parse-proxy-response");
37963
37963
  function parseProxyResponse(socket) {
37964
- return new Promise((resolve12, reject) => {
37964
+ return new Promise((resolve11, reject) => {
37965
37965
  let buffersLength = 0;
37966
37966
  const buffers = [];
37967
37967
  function read() {
@@ -38001,7 +38001,7 @@ var require_index_688c5d50 = __commonJS({
38001
38001
  const firstLine = buffered.toString("ascii", 0, buffered.indexOf("\r\n"));
38002
38002
  const statusCode = +firstLine.split(" ")[1];
38003
38003
  debug$1("got proxy server response: %o", firstLine);
38004
- resolve12({
38004
+ resolve11({
38005
38005
  statusCode,
38006
38006
  buffered
38007
38007
  });
@@ -38018,11 +38018,11 @@ var require_index_688c5d50 = __commonJS({
38018
38018
  }, "__esModule", { value: true });
38019
38019
  var __awaiter2 = commonjsGlobal && commonjsGlobal.__awaiter || function(thisArg, _arguments, P2, generator) {
38020
38020
  function adopt(value) {
38021
- return value instanceof P2 ? value : new P2(function(resolve12) {
38022
- resolve12(value);
38021
+ return value instanceof P2 ? value : new P2(function(resolve11) {
38022
+ resolve11(value);
38023
38023
  });
38024
38024
  }
38025
- return new (P2 || (P2 = Promise))(function(resolve12, reject) {
38025
+ return new (P2 || (P2 = Promise))(function(resolve11, reject) {
38026
38026
  function fulfilled(value) {
38027
38027
  try {
38028
38028
  step(generator.next(value));
@@ -38038,7 +38038,7 @@ var require_index_688c5d50 = __commonJS({
38038
38038
  }
38039
38039
  }
38040
38040
  function step(result) {
38041
- result.done ? resolve12(result.value) : adopt(result.value).then(fulfilled, rejected);
38041
+ result.done ? resolve11(result.value) : adopt(result.value).then(fulfilled, rejected);
38042
38042
  }
38043
38043
  step((generator = generator.apply(thisArg, _arguments || [])).next());
38044
38044
  });
@@ -38891,11 +38891,11 @@ function __metadata(metadataKey, metadataValue) {
38891
38891
  }
38892
38892
  function __awaiter(thisArg, _arguments, P2, generator) {
38893
38893
  function adopt(value) {
38894
- return value instanceof P2 ? value : new P2(function(resolve11) {
38895
- resolve11(value);
38894
+ return value instanceof P2 ? value : new P2(function(resolve10) {
38895
+ resolve10(value);
38896
38896
  });
38897
38897
  }
38898
- return new (P2 || (P2 = Promise))(function(resolve11, reject) {
38898
+ return new (P2 || (P2 = Promise))(function(resolve10, reject) {
38899
38899
  function fulfilled(value) {
38900
38900
  try {
38901
38901
  step(generator.next(value));
@@ -38911,7 +38911,7 @@ function __awaiter(thisArg, _arguments, P2, generator) {
38911
38911
  }
38912
38912
  }
38913
38913
  function step(result) {
38914
- result.done ? resolve11(result.value) : adopt(result.value).then(fulfilled, rejected);
38914
+ result.done ? resolve10(result.value) : adopt(result.value).then(fulfilled, rejected);
38915
38915
  }
38916
38916
  step((generator = generator.apply(thisArg, _arguments || [])).next());
38917
38917
  });
@@ -39117,14 +39117,14 @@ function __asyncValues(o) {
39117
39117
  }, i);
39118
39118
  function verb(n2) {
39119
39119
  i[n2] = o[n2] && function(v2) {
39120
- return new Promise(function(resolve11, reject) {
39121
- v2 = o[n2](v2), settle(resolve11, reject, v2.done, v2.value);
39120
+ return new Promise(function(resolve10, reject) {
39121
+ v2 = o[n2](v2), settle(resolve10, reject, v2.done, v2.value);
39122
39122
  });
39123
39123
  };
39124
39124
  }
39125
- function settle(resolve11, reject, d2, v2) {
39125
+ function settle(resolve10, reject, d2, v2) {
39126
39126
  Promise.resolve(v2).then(function(v3) {
39127
- resolve11({ value: v3, done: d2 });
39127
+ resolve10({ value: v3, done: d2 });
39128
39128
  }, reject);
39129
39129
  }
39130
39130
  }
@@ -70319,15 +70319,6 @@ var init_c36 = __esm({
70319
70319
  s.start(`Updating \`${indexFile}\``);
70320
70320
  const snippets = loadTemplateSnippets(ctx);
70321
70321
  transformFile(indexFile, {
70322
- // Insert the env declaration after the last import (but before the rest of the body)
70323
- visitProgram: function(n2) {
70324
- const lastImportIndex = n2.node.body.findLastIndex(
70325
- (t) => t.type === "ImportDeclaration"
70326
- );
70327
- const lastImport = n2.get("body", lastImportIndex);
70328
- lastImport.insertAfter(...snippets.bindingsTypeTs);
70329
- return this.traverse(n2);
70330
- },
70331
70322
  visitVariableDeclarator(n2) {
70332
70323
  if (n2.node.id.type === "Identifier" && n2.node.id.name === "app") {
70333
70324
  n2.node.init = snippets.appDeclarationTs[0];
@@ -71391,8 +71382,11 @@ async function copyTemplateFiles(ctx) {
71391
71382
  } else {
71392
71383
  const selectVariant = copyFiles.selectVariant ?? defaultSelectVariant;
71393
71384
  const variant = await selectVariant(ctx);
71394
- const variantPath = copyFiles.variants[variant].path;
71395
- srcdir = (0, import_path15.join)(getTemplatePath(ctx), variantPath);
71385
+ const variantInfo = variant ? copyFiles.variants[variant] : null;
71386
+ if (!variantInfo) {
71387
+ crash(`Unknown variant provided: ${JSON.stringify(variant ?? "")}`);
71388
+ }
71389
+ srcdir = (0, import_path15.join)(getTemplatePath(ctx), variantInfo.path);
71396
71390
  }
71397
71391
  const copyDestDir = await getCopyFilesDestinationDir(ctx);
71398
71392
  const destdir = (0, import_path15.join)(ctx.project.path, ...copyDestDir ? [copyDestDir] : []);
@@ -71405,19 +71399,7 @@ async function copyTemplateFiles(ctx) {
71405
71399
  }
71406
71400
  s.stop(`${brandColor("files")} ${dim("copied to project directory")}`);
71407
71401
  }
71408
- function inferLanguageArg(args) {
71409
- if (args.ts === void 0) {
71410
- return;
71411
- }
71412
- const language = args.ts ? "ts" : "js";
71413
- if (args.lang !== void 0) {
71414
- crash(
71415
- "The `--ts` argument cannot be specified in conjunction with the `--lang` argument"
71416
- );
71417
- }
71418
- args.lang = language;
71419
- }
71420
- var import_fs12, import_promises2, import_os2, import_path15, import_deepmerge, import_degit, defaultSelectVariant, getFrameworkMap, getTemplateMap, selectTemplate, selectFramework, selectLanguage, processRemoteTemplate, validateTemplate, validateTemplateSrcDirectory, inferTemplateConfig, inferCopyFilesDefinition, downloadRemoteTemplate, updatePackageName, updatePackageScripts, getTemplatePath, isVariantInfo, getCopyFilesDestinationDir, addWranglerToGitIgnore;
71402
+ var import_fs12, import_promises2, import_os2, import_path15, import_deepmerge, import_degit, defaultSelectVariant, getFrameworkMap, getTemplateMap, deriveCorrelatedArgs, createContext, processRemoteTemplate, validateTemplate, validateTemplateSrcDirectory, inferTemplateConfig, inferCopyFilesDefinition, downloadRemoteTemplate, updatePackageName, updatePackageScripts, getTemplatePath, isVariantInfo, getCopyFilesDestinationDir, addWranglerToGitIgnore;
71421
71403
  var init_templates = __esm({
71422
71404
  "src/templates.ts"() {
71423
71405
  import_fs12 = require("fs");
@@ -71432,9 +71414,10 @@ var init_templates = __esm({
71432
71414
  import_degit = __toESM(require_dist());
71433
71415
  init_cli2();
71434
71416
  init_files();
71417
+ init_git();
71435
71418
  init_validators();
71436
71419
  defaultSelectVariant = async (ctx) => {
71437
- return await selectLanguage(ctx);
71420
+ return ctx.args.lang;
71438
71421
  };
71439
71422
  getFrameworkMap = async () => ({
71440
71423
  analog: (await Promise.resolve().then(() => (init_c3(), c3_exports))).default,
@@ -71463,7 +71446,7 @@ var init_templates = __esm({
71463
71446
  "pre-existing": (await Promise.resolve().then(() => (init_c321(), c3_exports21))).default
71464
71447
  };
71465
71448
  };
71466
- selectTemplate = async (args) => {
71449
+ deriveCorrelatedArgs = (args) => {
71467
71450
  if (args.framework) {
71468
71451
  args.type ??= "web-framework";
71469
71452
  } else if (args.template) {
@@ -71502,122 +71485,193 @@ var init_templates = __esm({
71502
71485
  args.category ??= "others";
71503
71486
  break;
71504
71487
  }
71488
+ if (args.ts !== void 0) {
71489
+ const language = args.ts ? "ts" : "js";
71490
+ if (args.lang !== void 0) {
71491
+ crash(
71492
+ "The `--ts` argument cannot be specified in conjunction with the `--lang` argument"
71493
+ );
71494
+ }
71495
+ args.lang = language;
71496
+ }
71497
+ };
71498
+ createContext = async (args, prevArgs) => {
71499
+ const goBack = async (from) => {
71500
+ const newArgs = { ...args };
71501
+ let linesPrinted = 0;
71502
+ switch (from) {
71503
+ case "type":
71504
+ linesPrinted = 9;
71505
+ newArgs.category = void 0;
71506
+ break;
71507
+ case "framework":
71508
+ linesPrinted = 9;
71509
+ newArgs.category = void 0;
71510
+ break;
71511
+ case "lang":
71512
+ linesPrinted = 12;
71513
+ newArgs.type = void 0;
71514
+ break;
71515
+ }
71516
+ newArgs[from] = void 0;
71517
+ args[from] = void 0;
71518
+ if (process.stdout.isTTY) {
71519
+ process.stdout.moveCursor(0, -linesPrinted);
71520
+ process.stdout.clearScreenDown();
71521
+ }
71522
+ return await createContext(newArgs, args);
71523
+ };
71524
+ const BACK_VALUE = "__BACK__";
71525
+ const backOption = {
71526
+ label: "Go back",
71527
+ value: BACK_VALUE,
71528
+ activeIcon: shapes.backActive,
71529
+ inactiveIcon: shapes.backInactive
71530
+ };
71531
+ const defaultName = args.existingScript || C3_DEFAULTS.projectName;
71532
+ const projectName = await processArgument(args, "projectName", {
71533
+ type: "text",
71534
+ question: `In which directory do you want to create your application?`,
71535
+ helpText: "also used as application name",
71536
+ defaultValue: defaultName,
71537
+ label: "dir",
71538
+ validate: (value) => validateProjectDirectory(String(value) || C3_DEFAULTS.projectName, args),
71539
+ format: (val) => `./${val}`
71540
+ });
71541
+ const categoryOptions = [
71542
+ {
71543
+ label: "Hello World example",
71544
+ value: "hello-world",
71545
+ description: "Select from barebones examples to get started with Workers"
71546
+ },
71547
+ {
71548
+ label: "Framework Starter",
71549
+ value: "web-framework",
71550
+ description: "Select from the most popular full-stack web frameworks"
71551
+ },
71552
+ {
71553
+ label: "Demo application",
71554
+ value: "demo",
71555
+ description: "Select from a range of starter applications using various Cloudflare products"
71556
+ },
71557
+ {
71558
+ label: "Template from a Github repo",
71559
+ value: "remote-template",
71560
+ description: "Start from an existing GitHub repo link"
71561
+ },
71562
+ // This is used only if the type is `pre-existing`
71563
+ { label: "Others", value: "others", hidden: true }
71564
+ ];
71505
71565
  const category = await processArgument(args, "category", {
71506
71566
  type: "select",
71507
71567
  question: "What would you like to start with?",
71508
71568
  label: "category",
71509
- options: [
71510
- {
71511
- label: "Hello World example",
71512
- value: "hello-world",
71513
- description: "Select from barebones examples to get started with Workers"
71514
- },
71515
- {
71516
- label: "Framework Starter",
71517
- value: "web-framework",
71518
- description: "Select from the most popular full-stack web frameworks"
71519
- },
71520
- {
71521
- label: "Demo application",
71522
- value: "demo",
71523
- description: "Select from a range of starter applications using various Cloudflare products"
71524
- },
71525
- {
71526
- label: "Template from a Github repo",
71527
- value: "remote-template",
71528
- description: "Start from an existing GitHub repo link"
71529
- },
71530
- // This is used only if the type is `pre-existing`
71531
- { label: "Others", value: "others", hidden: true }
71532
- ],
71533
- defaultValue: C3_DEFAULTS.category
71569
+ options: categoryOptions,
71570
+ defaultValue: prevArgs?.category ?? C3_DEFAULTS.category
71534
71571
  });
71572
+ let template;
71535
71573
  if (category === "web-framework") {
71536
- return selectFramework(args);
71537
- }
71538
- if (category === "remote-template") {
71539
- return processRemoteTemplate(args);
71540
- }
71541
- const templateMap = await getTemplateMap();
71542
- const templateOptions = Object.entries(templateMap).map(
71543
- ([value, { displayName, description, hidden: hidden2 }]) => {
71544
- const isHelloWorldExample = value.startsWith("hello-world");
71545
- const isCategoryMatched = category === "hello-world" ? isHelloWorldExample : !isHelloWorldExample;
71546
- return {
71547
- value,
71548
- label: displayName,
71549
- description,
71550
- hidden: hidden2 || !isCategoryMatched
71551
- };
71574
+ const frameworkMap = await getFrameworkMap();
71575
+ const frameworkOptions = Object.entries(frameworkMap).map(
71576
+ ([key, config14]) => ({
71577
+ label: config14.displayName,
71578
+ value: key
71579
+ })
71580
+ );
71581
+ const framework = await processArgument(
71582
+ args,
71583
+ "framework",
71584
+ {
71585
+ type: "select",
71586
+ label: "framework",
71587
+ question: "Which development framework do you want to use?",
71588
+ options: frameworkOptions.concat(backOption),
71589
+ defaultValue: prevArgs?.framework ?? C3_DEFAULTS.framework
71590
+ }
71591
+ );
71592
+ if (framework === BACK_VALUE) {
71593
+ return goBack("framework");
71594
+ }
71595
+ const frameworkConfig = frameworkMap[framework];
71596
+ if (!frameworkConfig) {
71597
+ crash(`Unsupported framework: ${framework}`);
71598
+ }
71599
+ template = {
71600
+ deployScript: "pages:deploy",
71601
+ devScript: "pages:dev",
71602
+ ...frameworkConfig
71603
+ };
71604
+ } else if (category === "remote-template") {
71605
+ template = await processRemoteTemplate(args);
71606
+ } else {
71607
+ const templateMap = await getTemplateMap();
71608
+ const templateOptions = Object.entries(templateMap).map(
71609
+ ([value, { displayName, description, hidden: hidden2 }]) => {
71610
+ const isHelloWorldExample = value.startsWith("hello-world");
71611
+ const isCategoryMatched = category === "hello-world" ? isHelloWorldExample : !isHelloWorldExample;
71612
+ return {
71613
+ value,
71614
+ label: displayName,
71615
+ description,
71616
+ hidden: hidden2 || !isCategoryMatched
71617
+ };
71618
+ }
71619
+ );
71620
+ const type = await processArgument(args, "type", {
71621
+ type: "select",
71622
+ question: "Which template would you like to use?",
71623
+ label: "type",
71624
+ options: templateOptions.concat(backOption),
71625
+ defaultValue: prevArgs?.type ?? C3_DEFAULTS.type
71626
+ });
71627
+ if (type === BACK_VALUE) {
71628
+ return goBack("type");
71629
+ }
71630
+ template = templateMap[type];
71631
+ if (!template) {
71632
+ return crash(`Unknown application type provided: ${type}.`);
71552
71633
  }
71553
- );
71554
- const type = await processArgument(args, "type", {
71555
- type: "select",
71556
- question: "Which template would you like to use?",
71557
- label: "type",
71558
- options: templateOptions,
71559
- defaultValue: C3_DEFAULTS.type
71560
- });
71561
- if (!type) {
71562
- return crash("An application type must be specified to continue.");
71563
- }
71564
- if (!Object.keys(templateMap).includes(type)) {
71565
- return crash(`Unknown application type provided: ${type}.`);
71566
- }
71567
- return templateMap[type];
71568
- };
71569
- selectFramework = async (args) => {
71570
- const frameworkMap = await getFrameworkMap();
71571
- const frameworkOptions = Object.entries(frameworkMap).map(
71572
- ([key, config14]) => ({
71573
- label: config14.displayName,
71574
- value: key
71575
- })
71576
- );
71577
- const framework = await processArgument(args, "framework", {
71578
- type: "select",
71579
- label: "framework",
71580
- question: "Which development framework do you want to use?",
71581
- options: frameworkOptions,
71582
- defaultValue: C3_DEFAULTS.framework
71583
- });
71584
- if (!framework) {
71585
- crash("A framework must be selected to continue.");
71586
71634
  }
71587
- if (!Object.keys(frameworkMap).includes(framework)) {
71588
- crash(`Unsupported framework: ${framework}`);
71635
+ const path4 = (0, import_path15.resolve)(projectName);
71636
+ const languageVariants = template.copyFiles && !isVariantInfo(template.copyFiles) && !template.copyFiles.selectVariant ? Object.keys(template.copyFiles.variants) : [];
71637
+ if (languageVariants.length > 0) {
71638
+ if (hasTsConfig(path4)) {
71639
+ args.lang = "ts";
71640
+ } else if (template.generate) {
71641
+ args.lang = "js";
71642
+ } else {
71643
+ const languageOptions = [
71644
+ { label: "TypeScript", value: "ts" },
71645
+ { label: "JavaScript", value: "js" },
71646
+ { label: "Python (beta)", value: "python" }
71647
+ ];
71648
+ const lang = await processArgument(args, "lang", {
71649
+ type: "select",
71650
+ question: "Which language do you want to use?",
71651
+ label: "lang",
71652
+ options: languageOptions.filter((option) => languageVariants.includes(option.value)).concat(args.template ? [] : backOption),
71653
+ defaultValue: C3_DEFAULTS.lang
71654
+ });
71655
+ if (lang === BACK_VALUE) {
71656
+ return goBack("lang");
71657
+ }
71658
+ }
71589
71659
  }
71590
- const defaultFrameworkConfig = {
71591
- deployScript: "pages:deploy",
71592
- devScript: "pages:dev"
71593
- };
71660
+ const name = (0, import_path15.basename)(path4);
71661
+ const directory = (0, import_path15.dirname)(path4);
71662
+ const originalCWD = process.cwd();
71594
71663
  return {
71595
- ...defaultFrameworkConfig,
71596
- ...frameworkMap[framework]
71664
+ project: { name, path: path4 },
71665
+ args: {
71666
+ ...args,
71667
+ projectName
71668
+ },
71669
+ template,
71670
+ originalCWD,
71671
+ gitRepoAlreadyExisted: await isInsideGitRepo(directory),
71672
+ deployment: {}
71597
71673
  };
71598
71674
  };
71599
- selectLanguage = async (ctx) => {
71600
- if (usesTypescript(ctx)) {
71601
- return "ts";
71602
- }
71603
- if (ctx.template.generate) {
71604
- return "js";
71605
- }
71606
- inferLanguageArg(ctx.args);
71607
- const variants = ctx.template.copyFiles && !isVariantInfo(ctx.template.copyFiles) ? Object.keys(ctx.template.copyFiles.variants) : [];
71608
- const languageOptions = [
71609
- { label: "TypeScript", value: "ts" },
71610
- { label: "JavaScript", value: "js" },
71611
- { label: "Python (beta)", value: "python" }
71612
- ].filter((option) => variants.includes(option.value));
71613
- return processArgument(ctx.args, "lang", {
71614
- type: "select",
71615
- question: "Which language do you want to use?",
71616
- label: "lang",
71617
- options: languageOptions,
71618
- defaultValue: C3_DEFAULTS.lang
71619
- });
71620
- };
71621
71675
  processRemoteTemplate = async (args) => {
71622
71676
  const templateUrl = await processArgument(args, "template", {
71623
71677
  type: "text",
@@ -71799,7 +71853,6 @@ var import_fs14 = require("fs");
71799
71853
  var import_path17 = require("path");
71800
71854
  var import_process2 = require("process");
71801
71855
  init_cli();
71802
- init_args();
71803
71856
  init_interactive();
71804
71857
 
71805
71858
  // ../../node_modules/.pnpm/yargs@17.7.2/node_modules/yargs/lib/platform-shims/esm.mjs
@@ -75615,12 +75668,12 @@ var YargsInstance = class {
75615
75668
  async getCompletion(args, done) {
75616
75669
  argsert("<array> [function]", [args, done], arguments.length);
75617
75670
  if (!done) {
75618
- return new Promise((resolve11, reject) => {
75671
+ return new Promise((resolve10, reject) => {
75619
75672
  __classPrivateFieldGet(this, _YargsInstance_completion, "f").getCompletion(args, (err, completions) => {
75620
75673
  if (err)
75621
75674
  reject(err);
75622
75675
  else
75623
- resolve11(completions);
75676
+ resolve10(completions);
75624
75677
  });
75625
75678
  });
75626
75679
  } else {
@@ -78647,7 +78700,7 @@ function printWelcomeMessage(version3) {
78647
78700
  ]);
78648
78701
  logRaw(dialog);
78649
78702
  }
78650
- var printSummary = async (ctx) => {
78703
+ var printSummary = (ctx) => {
78651
78704
  const dashboardUrl = ctx.account ? `https://dash.cloudflare.com/?to=/:account/workers/services/view/${ctx.project.name}` : null;
78652
78705
  const relativePath = (0, import_path10.relative)(ctx.originalCWD, ctx.project.path);
78653
78706
  const cdCommand = relativePath ? `cd ${relativePath}` : null;
@@ -80201,54 +80254,27 @@ var runLatest = async () => {
80201
80254
  };
80202
80255
  var runCli = async (args) => {
80203
80256
  printBanner();
80204
- const defaultName = args.existingScript || C3_DEFAULTS.projectName;
80205
- const projectName = await processArgument(args, "projectName", {
80206
- type: "text",
80207
- question: `In which directory do you want to create your application?`,
80208
- helpText: "also used as application name",
80209
- defaultValue: defaultName,
80210
- label: "dir",
80211
- validate: (value) => validateProjectDirectory(String(value) || C3_DEFAULTS.projectName, args),
80212
- format: (val) => `./${val}`
80213
- });
80214
- const validatedArgs = {
80215
- ...args,
80216
- projectName
80217
- };
80218
- const originalCWD = process.cwd();
80219
- const { name, path: path4 } = setupProjectDirectory(validatedArgs);
80220
- const template = await selectTemplate(validatedArgs);
80221
- const ctx = {
80222
- project: { name, path: path4 },
80223
- args: validatedArgs,
80224
- template,
80225
- originalCWD,
80226
- gitRepoAlreadyExisted: await isInsideGitRepo((0, import_path17.dirname)(path4)),
80227
- deployment: {}
80228
- };
80229
- await runTemplate(ctx);
80257
+ deriveCorrelatedArgs(args);
80258
+ const ctx = await createContext(args);
80259
+ await create(ctx);
80260
+ await configure11(ctx);
80261
+ await deploy(ctx);
80262
+ printSummary(ctx);
80263
+ logRaw("");
80230
80264
  };
80231
- var setupProjectDirectory = (args) => {
80232
- const path4 = (0, import_path17.resolve)(args.projectName);
80233
- const err = validateProjectDirectory(path4, args);
80265
+ var setupProjectDirectory = (ctx) => {
80266
+ const path4 = ctx.project.path;
80267
+ const err = validateProjectDirectory(path4, ctx.args);
80234
80268
  if (err) {
80235
80269
  crash(err);
80236
80270
  }
80237
80271
  const directory = (0, import_path17.dirname)(path4);
80238
- const pathBasename = (0, import_path17.basename)(path4);
80239
80272
  (0, import_fs14.mkdirSync)(directory, { recursive: true });
80240
80273
  (0, import_process2.chdir)(directory);
80241
- return { name: pathBasename, path: path4 };
80242
- };
80243
- var runTemplate = async (ctx) => {
80244
- await create(ctx);
80245
- await configure11(ctx);
80246
- await deploy(ctx);
80247
- await printSummary(ctx);
80248
- logRaw("");
80249
80274
  };
80250
80275
  var create = async (ctx) => {
80251
80276
  const { template } = ctx;
80277
+ setupProjectDirectory(ctx);
80252
80278
  if (template.generate) {
80253
80279
  await template.generate(ctx);
80254
80280
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-cloudflare",
3
- "version": "2.24.0",
3
+ "version": "2.25.1",
4
4
  "description": "A CLI for creating and deploying new applications to Cloudflare.",
5
5
  "keywords": [
6
6
  "cloudflare",
@@ -65,9 +65,9 @@
65
65
  "wrap-ansi": "^9.0.0",
66
66
  "yargs": "^17.7.2",
67
67
  "@cloudflare/cli": "1.1.1",
68
- "@cloudflare/workers-tsconfig": "0.0.0",
69
- "wrangler": "3.71.0",
70
- "@cloudflare/eslint-config-worker": "1.1.0"
68
+ "@cloudflare/eslint-config-worker": "1.1.0",
69
+ "wrangler": "3.72.1",
70
+ "@cloudflare/workers-tsconfig": "0.0.0"
71
71
  },
72
72
  "engines": {
73
73
  "node": ">=18.14.1"
@@ -32,16 +32,6 @@ const configure = async (ctx: C3Context) => {
32
32
  const snippets = loadTemplateSnippets(ctx);
33
33
 
34
34
  transformFile(indexFile, {
35
- // Insert the env declaration after the last import (but before the rest of the body)
36
- visitProgram: function (n) {
37
- const lastImportIndex = n.node.body.findLastIndex(
38
- (t) => t.type === "ImportDeclaration",
39
- );
40
- const lastImport = n.get("body", lastImportIndex);
41
- lastImport.insertAfter(...snippets.bindingsTypeTs);
42
-
43
- return this.traverse(n);
44
- },
45
35
  visitVariableDeclarator(n) {
46
36
  if (n.node.id.type === "Identifier" && n.node.id.name === "app") {
47
37
  n.node.init = snippets
@@ -1 +1 @@
1
- new Hono<{ Bindings: Bindings }>()
1
+ new Hono<{ Bindings: CloudflareBindings }>()
@@ -1,3 +0,0 @@
1
- type Bindings = {
2
- [key in keyof CloudflareBindings]: CloudflareBindings[key]
3
- }