create-cloudflare 0.0.0-78ddb8de → 0.0.0-80c1b38a

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
@@ -4189,6 +4189,1333 @@ var require_which_pm_runs = __commonJS({
4189
4189
  }
4190
4190
  });
4191
4191
 
4192
+ // ../../node_modules/dns2/lib/reader.js
4193
+ var require_reader = __commonJS({
4194
+ "../../node_modules/dns2/lib/reader.js"(exports, module2) {
4195
+ function BufferReader(buffer, offset) {
4196
+ this.buffer = buffer;
4197
+ this.offset = offset || 0;
4198
+ return this;
4199
+ }
4200
+ BufferReader.read = function(buffer, offset, length) {
4201
+ let a2 = [];
4202
+ let c2 = Math.ceil(length / 8);
4203
+ let l2 = Math.floor(offset / 8);
4204
+ const m2 = offset % 8;
4205
+ function t(n) {
4206
+ const r2 = [0, 0, 0, 0, 0, 0, 0, 0];
4207
+ for (let i = 7; i >= 0; i--) {
4208
+ r2[7 - i] = n & Math.pow(2, i) ? 1 : 0;
4209
+ }
4210
+ a2 = a2.concat(r2);
4211
+ }
4212
+ function p3(a3) {
4213
+ let n = 0;
4214
+ const f2 = a3.length - 1;
4215
+ for (let i = f2; i >= 0; i--) {
4216
+ if (a3[f2 - i])
4217
+ n += Math.pow(2, i);
4218
+ }
4219
+ return n;
4220
+ }
4221
+ while (c2--)
4222
+ t(buffer.readUInt8(l2++));
4223
+ return p3(a2.slice(m2, m2 + length));
4224
+ };
4225
+ BufferReader.prototype.read = function(size) {
4226
+ const val = BufferReader.read(this.buffer, this.offset, size);
4227
+ this.offset += size;
4228
+ return val;
4229
+ };
4230
+ module2.exports = BufferReader;
4231
+ }
4232
+ });
4233
+
4234
+ // ../../node_modules/dns2/lib/writer.js
4235
+ var require_writer = __commonJS({
4236
+ "../../node_modules/dns2/lib/writer.js"(exports, module2) {
4237
+ function BufferWriter() {
4238
+ this.buffer = [];
4239
+ }
4240
+ BufferWriter.prototype.write = function(d3, size) {
4241
+ for (let i = 0; i < size; i++) {
4242
+ this.buffer.push(d3 & Math.pow(2, size - i - 1) ? 1 : 0);
4243
+ }
4244
+ };
4245
+ BufferWriter.prototype.writeBuffer = function(b2) {
4246
+ this.buffer = this.buffer.concat(b2.buffer);
4247
+ };
4248
+ BufferWriter.prototype.toBuffer = function() {
4249
+ const arr = [];
4250
+ for (let i = 0; i < this.buffer.length; i += 8) {
4251
+ const chunk = this.buffer.slice(i, i + 8);
4252
+ arr.push(parseInt(chunk.join(""), 2));
4253
+ }
4254
+ return Buffer.from(arr);
4255
+ };
4256
+ module2.exports = BufferWriter;
4257
+ }
4258
+ });
4259
+
4260
+ // ../../node_modules/dns2/packet.js
4261
+ var require_packet = __commonJS({
4262
+ "../../node_modules/dns2/packet.js"(exports, module2) {
4263
+ var { debuglog } = require("util");
4264
+ var BufferReader = require_reader();
4265
+ var BufferWriter = require_writer();
4266
+ var debug = debuglog("dns2");
4267
+ var toIPv6 = (buffer) => buffer.map((part) => part > 0 ? part.toString(16) : "0").join(":").replace(/\b(?:0+:){1,}/, ":");
4268
+ var fromIPv6 = (address) => {
4269
+ const digits = address.split(":");
4270
+ if (digits[0] === "") {
4271
+ digits.shift();
4272
+ }
4273
+ if (digits[digits.length - 1] === "") {
4274
+ digits.pop();
4275
+ }
4276
+ const missingFields = 8 - digits.length + 1;
4277
+ return digits.flatMap((digit) => {
4278
+ if (digit === "") {
4279
+ return Array(missingFields).fill("0");
4280
+ }
4281
+ return digit.padStart(4, "0");
4282
+ });
4283
+ };
4284
+ function Packet(data) {
4285
+ this.header = {};
4286
+ this.questions = [];
4287
+ this.answers = [];
4288
+ this.authorities = [];
4289
+ this.additionals = [];
4290
+ if (data instanceof Packet) {
4291
+ return data;
4292
+ } else if (data instanceof Packet.Header) {
4293
+ this.header = data;
4294
+ } else if (data instanceof Packet.Question) {
4295
+ this.questions.push(data);
4296
+ } else if (data instanceof Packet.Resource) {
4297
+ this.answers.push(data);
4298
+ } else if (typeof data === "string") {
4299
+ this.questions.push(data);
4300
+ } else if (typeof data === "object") {
4301
+ const type = {}.toString.call(data).match(/\[object (\w+)\]/)[1];
4302
+ if (type === "Array") {
4303
+ this.questions = data;
4304
+ }
4305
+ if (type === "Object") {
4306
+ this.header = data;
4307
+ }
4308
+ }
4309
+ return this;
4310
+ }
4311
+ Packet.TYPE = {
4312
+ A: 1,
4313
+ NS: 2,
4314
+ MD: 3,
4315
+ MF: 4,
4316
+ CNAME: 5,
4317
+ SOA: 6,
4318
+ MB: 7,
4319
+ MG: 8,
4320
+ MR: 9,
4321
+ NULL: 10,
4322
+ WKS: 11,
4323
+ PTR: 12,
4324
+ HINFO: 13,
4325
+ MINFO: 14,
4326
+ MX: 15,
4327
+ TXT: 16,
4328
+ AAAA: 28,
4329
+ SRV: 33,
4330
+ EDNS: 41,
4331
+ SPF: 99,
4332
+ AXFR: 252,
4333
+ MAILB: 253,
4334
+ MAILA: 254,
4335
+ ANY: 255,
4336
+ CAA: 257
4337
+ };
4338
+ Packet.CLASS = {
4339
+ IN: 1,
4340
+ CS: 2,
4341
+ CH: 3,
4342
+ HS: 4,
4343
+ ANY: 255
4344
+ };
4345
+ Packet.EDNS_OPTION_CODE = {
4346
+ ECS: 8
4347
+ };
4348
+ Packet.uuid = function() {
4349
+ return Math.floor(Math.random() * 1e5);
4350
+ };
4351
+ Packet.parse = function(buffer) {
4352
+ const packet = new Packet();
4353
+ const reader = new Packet.Reader(buffer);
4354
+ packet.header = Packet.Header.parse(reader);
4355
+ [
4356
+ // props parser count
4357
+ ["questions", Packet.Question, packet.header.qdcount],
4358
+ ["answers", Packet.Resource, packet.header.ancount],
4359
+ ["authorities", Packet.Resource, packet.header.nscount],
4360
+ ["additionals", Packet.Resource, packet.header.arcount]
4361
+ ].forEach(function(def) {
4362
+ const section = def[0];
4363
+ const decoder = def[1];
4364
+ let count = def[2];
4365
+ while (count--) {
4366
+ try {
4367
+ packet[section] = packet[section] || [];
4368
+ packet[section].push(decoder.parse(reader));
4369
+ } catch (e) {
4370
+ debug("node-dns > parse %s error:", section, e.message);
4371
+ }
4372
+ }
4373
+ });
4374
+ return packet;
4375
+ };
4376
+ Object.defineProperty(Packet.prototype, "recursive", {
4377
+ enumerable: true,
4378
+ configurable: true,
4379
+ get() {
4380
+ return !!this.header.rd;
4381
+ },
4382
+ set(yn) {
4383
+ this.header.rd = +yn;
4384
+ return this.header.rd;
4385
+ }
4386
+ });
4387
+ Packet.prototype.toBuffer = function(writer) {
4388
+ writer = writer || new Packet.Writer();
4389
+ this.header.qdcount = this.questions.length;
4390
+ this.header.ancount = this.answers.length;
4391
+ this.header.nscount = this.authorities.length;
4392
+ this.header.arcount = this.additionals.length;
4393
+ if (!(this instanceof Packet.Header)) {
4394
+ this.header = new Packet.Header(this.header);
4395
+ }
4396
+ this.header.toBuffer(writer);
4397
+ [
4398
+ // section encoder
4399
+ ["questions", Packet.Question],
4400
+ ["answers", Packet.Resource],
4401
+ ["authorities", Packet.Resource],
4402
+ ["additionals", Packet.Resource]
4403
+ ].forEach(function(def) {
4404
+ const section = def[0];
4405
+ const Encoder = def[1];
4406
+ (this[section] || []).map(function(resource) {
4407
+ return Encoder.encode(resource, writer);
4408
+ });
4409
+ }.bind(this));
4410
+ return writer.toBuffer();
4411
+ };
4412
+ Packet.Header = function(header) {
4413
+ this.id = 0;
4414
+ this.qr = 0;
4415
+ this.opcode = 0;
4416
+ this.aa = 0;
4417
+ this.tc = 0;
4418
+ this.rd = 0;
4419
+ this.ra = 0;
4420
+ this.z = 0;
4421
+ this.rcode = 0;
4422
+ this.qdcount = 0;
4423
+ this.nscount = 0;
4424
+ this.arcount = 0;
4425
+ for (const k3 in header) {
4426
+ this[k3] = header[k3];
4427
+ }
4428
+ return this;
4429
+ };
4430
+ Packet.Header.parse = function(reader) {
4431
+ const header = new Packet.Header();
4432
+ if (reader instanceof Buffer) {
4433
+ reader = new Packet.Reader(reader);
4434
+ }
4435
+ header.id = reader.read(16);
4436
+ header.qr = reader.read(1);
4437
+ header.opcode = reader.read(4);
4438
+ header.aa = reader.read(1);
4439
+ header.tc = reader.read(1);
4440
+ header.rd = reader.read(1);
4441
+ header.ra = reader.read(1);
4442
+ header.z = reader.read(3);
4443
+ header.rcode = reader.read(4);
4444
+ header.qdcount = reader.read(16);
4445
+ header.ancount = reader.read(16);
4446
+ header.nscount = reader.read(16);
4447
+ header.arcount = reader.read(16);
4448
+ return header;
4449
+ };
4450
+ Packet.Header.prototype.toBuffer = function(writer) {
4451
+ writer = writer || new Packet.Writer();
4452
+ writer.write(this.id, 16);
4453
+ writer.write(this.qr, 1);
4454
+ writer.write(this.opcode, 4);
4455
+ writer.write(this.aa, 1);
4456
+ writer.write(this.tc, 1);
4457
+ writer.write(this.rd, 1);
4458
+ writer.write(this.ra, 1);
4459
+ writer.write(this.z, 3);
4460
+ writer.write(this.rcode, 4);
4461
+ writer.write(this.qdcount, 16);
4462
+ writer.write(this.ancount, 16);
4463
+ writer.write(this.nscount, 16);
4464
+ writer.write(this.arcount, 16);
4465
+ return writer.toBuffer();
4466
+ };
4467
+ Packet.Question = function(name, type, cls) {
4468
+ const defaults = {
4469
+ type: Packet.TYPE.ANY,
4470
+ class: Packet.CLASS.ANY
4471
+ };
4472
+ if (typeof name === "object") {
4473
+ for (const k3 in name) {
4474
+ this[k3] = name[k3] || defaults[k3];
4475
+ }
4476
+ } else {
4477
+ this.name = name;
4478
+ this.type = type || defaults.type;
4479
+ this.class = cls || defaults.class;
4480
+ }
4481
+ return this;
4482
+ };
4483
+ Packet.Question.prototype.toBuffer = function(writer) {
4484
+ return Packet.Question.encode(this, writer);
4485
+ };
4486
+ Packet.Question.parse = Packet.Question.decode = function(reader) {
4487
+ const question = new Packet.Question();
4488
+ if (reader instanceof Buffer) {
4489
+ reader = new Packet.Reader(reader);
4490
+ }
4491
+ question.name = Packet.Name.decode(reader);
4492
+ question.type = reader.read(16);
4493
+ question.class = reader.read(16);
4494
+ return question;
4495
+ };
4496
+ Packet.Question.encode = function(question, writer) {
4497
+ writer = writer || new Packet.Writer();
4498
+ Packet.Name.encode(question.name, writer);
4499
+ writer.write(question.type, 16);
4500
+ writer.write(question.class, 16);
4501
+ return writer.toBuffer();
4502
+ };
4503
+ Packet.Resource = function(name, type, cls, ttl) {
4504
+ const defaults = {
4505
+ name: "",
4506
+ ttl: 300,
4507
+ type: Packet.TYPE.ANY,
4508
+ class: Packet.CLASS.ANY
4509
+ };
4510
+ let input;
4511
+ if (typeof name === "object") {
4512
+ input = name;
4513
+ } else {
4514
+ input = {
4515
+ name,
4516
+ type,
4517
+ class: cls,
4518
+ ttl
4519
+ };
4520
+ }
4521
+ Object.assign(this, defaults, input);
4522
+ return this;
4523
+ };
4524
+ Packet.Resource.prototype.toBuffer = function(writer) {
4525
+ return Packet.Resource.encode(this, writer);
4526
+ };
4527
+ Packet.Resource.encode = function(resource, writer) {
4528
+ writer = writer || new Packet.Writer();
4529
+ Packet.Name.encode(resource.name, writer);
4530
+ writer.write(resource.type, 16);
4531
+ writer.write(resource.class, 16);
4532
+ writer.write(resource.ttl, 32);
4533
+ const encoder = Object.keys(Packet.TYPE).filter(function(type) {
4534
+ return resource.type === Packet.TYPE[type];
4535
+ })[0];
4536
+ if (encoder in Packet.Resource && Packet.Resource[encoder].encode) {
4537
+ return Packet.Resource[encoder].encode(resource, writer);
4538
+ } else {
4539
+ debug("node-dns > unknown encoder %s(%j)", encoder, resource.type);
4540
+ }
4541
+ };
4542
+ Packet.Resource.parse = Packet.Resource.decode = function(reader) {
4543
+ if (reader instanceof Buffer) {
4544
+ reader = new Packet.Reader(reader);
4545
+ }
4546
+ let resource = new Packet.Resource();
4547
+ resource.name = Packet.Name.decode(reader);
4548
+ resource.type = reader.read(16);
4549
+ resource.class = reader.read(16);
4550
+ resource.ttl = reader.read(32);
4551
+ let length = reader.read(16);
4552
+ const parser2 = Object.keys(Packet.TYPE).filter(function(type) {
4553
+ return resource.type === Packet.TYPE[type];
4554
+ })[0];
4555
+ if (parser2 in Packet.Resource) {
4556
+ resource = Packet.Resource[parser2].decode.call(resource, reader, length);
4557
+ } else {
4558
+ debug("node-dns > unknown parser type: %s(%j)", parser2, resource.type);
4559
+ const arr = [];
4560
+ while (length--)
4561
+ arr.push(reader.read(8));
4562
+ resource.data = Buffer.from(arr);
4563
+ }
4564
+ return resource;
4565
+ };
4566
+ Packet.Name = {
4567
+ COPY: 192,
4568
+ decode: function(reader) {
4569
+ if (reader instanceof Buffer) {
4570
+ reader = new Packet.Reader(reader);
4571
+ }
4572
+ const name = [];
4573
+ let o2;
4574
+ let len = reader.read(8);
4575
+ while (len) {
4576
+ if ((len & Packet.Name.COPY) === Packet.Name.COPY) {
4577
+ len -= Packet.Name.COPY;
4578
+ len = len << 8;
4579
+ const pos = len + reader.read(8);
4580
+ if (!o2)
4581
+ o2 = reader.offset;
4582
+ reader.offset = pos * 8;
4583
+ len = reader.read(8);
4584
+ continue;
4585
+ } else {
4586
+ let part = "";
4587
+ while (len--)
4588
+ part += String.fromCharCode(reader.read(8));
4589
+ name.push(part);
4590
+ len = reader.read(8);
4591
+ }
4592
+ }
4593
+ if (o2)
4594
+ reader.offset = o2;
4595
+ return name.join(".");
4596
+ },
4597
+ encode: function(domain, writer) {
4598
+ writer = writer || new Packet.Writer();
4599
+ (domain || "").split(".").filter(function(part) {
4600
+ return !!part;
4601
+ }).forEach(function(part) {
4602
+ writer.write(part.length, 8);
4603
+ part.split("").map(function(c2) {
4604
+ writer.write(c2.charCodeAt(0), 8);
4605
+ return c2.charCodeAt(0);
4606
+ });
4607
+ });
4608
+ writer.write(0, 8);
4609
+ return writer.toBuffer();
4610
+ }
4611
+ };
4612
+ Packet.Resource.A = function(address) {
4613
+ this.type = Packet.TYPE.A;
4614
+ this.class = Packet.CLASS.IN;
4615
+ this.address = address;
4616
+ return this;
4617
+ };
4618
+ Packet.Resource.A.encode = function(record, writer) {
4619
+ writer = writer || new Packet.Writer();
4620
+ const parts = record.address.split(".");
4621
+ writer.write(parts.length, 16);
4622
+ parts.forEach(function(part) {
4623
+ writer.write(parseInt(part, 10), 8);
4624
+ });
4625
+ return writer.toBuffer();
4626
+ };
4627
+ Packet.Resource.A.decode = function(reader, length) {
4628
+ const parts = [];
4629
+ while (length--)
4630
+ parts.push(reader.read(8));
4631
+ this.address = parts.join(".");
4632
+ return this;
4633
+ };
4634
+ Packet.Resource.MX = function(exchange, priority) {
4635
+ this.type = Packet.TYPE.MX;
4636
+ this.class = Packet.CLASS.IN;
4637
+ this.exchange = exchange;
4638
+ this.priority = priority;
4639
+ return this;
4640
+ };
4641
+ Packet.Resource.MX.encode = function(record, writer) {
4642
+ writer = writer || new Packet.Writer();
4643
+ const len = Packet.Name.encode(record.exchange).length;
4644
+ writer.write(len + 2, 16);
4645
+ writer.write(record.priority, 16);
4646
+ Packet.Name.encode(record.exchange, writer);
4647
+ return writer.toBuffer();
4648
+ };
4649
+ Packet.Resource.MX.decode = function(reader, length) {
4650
+ this.priority = reader.read(16);
4651
+ this.exchange = Packet.Name.decode(reader);
4652
+ return this;
4653
+ };
4654
+ Packet.Resource.AAAA = {
4655
+ decode: function(reader, length) {
4656
+ const parts = [];
4657
+ while (length) {
4658
+ length -= 2;
4659
+ parts.push(reader.read(16));
4660
+ }
4661
+ this.address = toIPv6(parts);
4662
+ return this;
4663
+ },
4664
+ encode: function(record, writer) {
4665
+ writer = writer || new Packet.Writer();
4666
+ const parts = fromIPv6(record.address);
4667
+ writer.write(parts.length * 2, 16);
4668
+ parts.forEach(function(part) {
4669
+ writer.write(parseInt(part, 16), 16);
4670
+ });
4671
+ return writer.toBuffer();
4672
+ }
4673
+ };
4674
+ Packet.Resource.NS = {
4675
+ decode: function(reader, length) {
4676
+ this.ns = Packet.Name.decode(reader);
4677
+ return this;
4678
+ },
4679
+ encode: function(record, writer) {
4680
+ writer = writer || new Packet.Writer();
4681
+ writer.write(Packet.Name.encode(record.ns).length, 16);
4682
+ Packet.Name.encode(record.ns, writer);
4683
+ return writer.toBuffer();
4684
+ }
4685
+ };
4686
+ Packet.Resource.PTR = Packet.Resource.CNAME = {
4687
+ decode: function(reader, length) {
4688
+ this.domain = Packet.Name.decode(reader);
4689
+ return this;
4690
+ },
4691
+ encode: function(record, writer) {
4692
+ writer = writer || new Packet.Writer();
4693
+ writer.write(Packet.Name.encode(record.domain).length, 16);
4694
+ Packet.Name.encode(record.domain, writer);
4695
+ return writer.toBuffer();
4696
+ }
4697
+ };
4698
+ Packet.Resource.SPF = Packet.Resource.TXT = {
4699
+ decode: function(reader, length) {
4700
+ const parts = [];
4701
+ let bytesRead = 0;
4702
+ let chunkLength = 0;
4703
+ while (bytesRead < length) {
4704
+ chunkLength = reader.read(8);
4705
+ bytesRead++;
4706
+ while (chunkLength--) {
4707
+ parts.push(reader.read(8));
4708
+ bytesRead++;
4709
+ }
4710
+ }
4711
+ this.data = Buffer.from(parts).toString("utf8");
4712
+ return this;
4713
+ },
4714
+ encode: function(record, writer) {
4715
+ writer = writer || new Packet.Writer();
4716
+ const characterStrings = Array.isArray(record.data) ? record.data : [record.data];
4717
+ const characterStringBuffers = characterStrings.map(function(characterString) {
4718
+ if (Buffer.isBuffer(characterString)) {
4719
+ return characterString;
4720
+ }
4721
+ if (typeof characterString === "string") {
4722
+ return Buffer.from(characterString, "utf8");
4723
+ }
4724
+ return false;
4725
+ }).filter(function(characterString) {
4726
+ return characterString;
4727
+ });
4728
+ const bufferLength = characterStringBuffers.reduce(function(sum, characterStringBuffer) {
4729
+ return sum + characterStringBuffer.length;
4730
+ }, 0);
4731
+ writer.write(bufferLength + characterStringBuffers.length, 16);
4732
+ characterStringBuffers.forEach(function(buffer) {
4733
+ writer.write(buffer.length, 8);
4734
+ buffer.forEach(function(c2) {
4735
+ writer.write(c2, 8);
4736
+ });
4737
+ });
4738
+ return writer.toBuffer();
4739
+ }
4740
+ };
4741
+ Packet.Resource.SOA = {
4742
+ decode: function(reader, length) {
4743
+ this.primary = Packet.Name.decode(reader);
4744
+ this.admin = Packet.Name.decode(reader);
4745
+ this.serial = reader.read(32);
4746
+ this.refresh = reader.read(32);
4747
+ this.retry = reader.read(32);
4748
+ this.expiration = reader.read(32);
4749
+ this.minimum = reader.read(32);
4750
+ return this;
4751
+ },
4752
+ encode: function(record, writer) {
4753
+ writer = writer || new Packet.Writer();
4754
+ let len = 0;
4755
+ len += Packet.Name.encode(record.primary).length;
4756
+ len += Packet.Name.encode(record.admin).length;
4757
+ len += 32 * 5 / 8;
4758
+ writer.write(len, 16);
4759
+ Packet.Name.encode(record.primary, writer);
4760
+ Packet.Name.encode(record.admin, writer);
4761
+ writer.write(record.serial, 32);
4762
+ writer.write(record.refresh, 32);
4763
+ writer.write(record.retry, 32);
4764
+ writer.write(record.expiration, 32);
4765
+ writer.write(record.minimum, 32);
4766
+ return writer.toBuffer();
4767
+ }
4768
+ };
4769
+ Packet.Resource.SRV = {
4770
+ decode: function(reader, length) {
4771
+ this.priority = reader.read(16);
4772
+ this.weight = reader.read(16);
4773
+ this.port = reader.read(16);
4774
+ this.target = Packet.Name.decode(reader);
4775
+ return this;
4776
+ },
4777
+ encode: function(record, writer) {
4778
+ writer = writer || new Packet.Writer();
4779
+ const { length } = Packet.Name.encode(record.target);
4780
+ writer.write(length + 6, 16);
4781
+ writer.write(record.priority, 16);
4782
+ writer.write(record.weight, 16);
4783
+ writer.write(record.port, 16);
4784
+ Packet.Name.encode(record.target, writer);
4785
+ return writer.toBuffer();
4786
+ }
4787
+ };
4788
+ Packet.Resource.EDNS = function(rdata) {
4789
+ return {
4790
+ type: Packet.TYPE.EDNS,
4791
+ class: 512,
4792
+ // Supported UDP Payload size
4793
+ ttl: 0,
4794
+ // Extended RCODE and flags
4795
+ rdata
4796
+ // Objects of type Packet.Resource.EDNS.*
4797
+ };
4798
+ };
4799
+ Packet.Resource.EDNS.decode = function(reader, length) {
4800
+ this.type = Packet.TYPE.EDNS;
4801
+ this.class = 512;
4802
+ this.ttl = 0;
4803
+ this.rdata = [];
4804
+ while (length) {
4805
+ const optionCode = reader.read(16);
4806
+ const optionLength = reader.read(16);
4807
+ const decoder = Object.keys(Packet.EDNS_OPTION_CODE).filter(function(type) {
4808
+ return optionCode === Packet.EDNS_OPTION_CODE[type];
4809
+ })[0];
4810
+ if (decoder in Packet.Resource.EDNS && Packet.Resource.EDNS[decoder].decode) {
4811
+ const rdata = Packet.Resource.EDNS[decoder].decode(reader, optionLength);
4812
+ this.rdata.push(rdata);
4813
+ } else {
4814
+ reader.read(optionLength);
4815
+ debug("node-dns > unknown EDNS rdata decoder %s(%j)", decoder, optionCode);
4816
+ }
4817
+ length = length - 4 - optionLength;
4818
+ }
4819
+ return this;
4820
+ };
4821
+ Packet.Resource.EDNS.encode = function(record, writer) {
4822
+ const rdataWriter = new Packet.Writer();
4823
+ for (const rdata of record.rdata) {
4824
+ const encoder = Object.keys(Packet.EDNS_OPTION_CODE).filter(function(type) {
4825
+ return rdata.ednsCode === Packet.EDNS_OPTION_CODE[type];
4826
+ })[0];
4827
+ if (encoder in Packet.Resource.EDNS && Packet.Resource.EDNS[encoder].encode) {
4828
+ const w3 = new Packet.Writer();
4829
+ Packet.Resource.EDNS[encoder].encode(rdata, w3);
4830
+ rdataWriter.write(rdata.ednsCode, 16);
4831
+ rdataWriter.write(w3.buffer.length / 8, 16);
4832
+ rdataWriter.writeBuffer(w3);
4833
+ } else {
4834
+ debug("node-dns > unknown EDNS rdata encoder %s(%j)", encoder, rdata.ednsCode);
4835
+ }
4836
+ }
4837
+ writer = writer || new Packet.Writer();
4838
+ writer.write(rdataWriter.buffer.length / 8, 16);
4839
+ writer.writeBuffer(rdataWriter);
4840
+ return writer.toBuffer();
4841
+ };
4842
+ Packet.Resource.EDNS.ECS = function(clientIp) {
4843
+ const [ip, prefixLength] = clientIp.split("/");
4844
+ const numPrefixLength = parseInt(prefixLength) || 32;
4845
+ return {
4846
+ ednsCode: Packet.EDNS_OPTION_CODE.ECS,
4847
+ family: 1,
4848
+ sourcePrefixLength: numPrefixLength,
4849
+ scopePrefixLength: 0,
4850
+ ip
4851
+ };
4852
+ };
4853
+ Packet.Resource.EDNS.ECS.decode = function(reader, length) {
4854
+ const rdata = {};
4855
+ rdata.ednsCode = Packet.EDNS_OPTION_CODE.ECS;
4856
+ rdata.family = reader.read(16);
4857
+ rdata.sourcePrefixLength = reader.read(8);
4858
+ rdata.scopePrefixLength = reader.read(8);
4859
+ length -= 4;
4860
+ if (rdata.family !== 1) {
4861
+ debug("node-dns > unimplemented address family");
4862
+ reader.read(length * 8);
4863
+ return rdata;
4864
+ }
4865
+ const ipv4Octets = [];
4866
+ while (length--) {
4867
+ const octet = reader.read(8);
4868
+ ipv4Octets.push(octet);
4869
+ }
4870
+ while (ipv4Octets.length < 4) {
4871
+ ipv4Octets.push(0);
4872
+ }
4873
+ rdata.ip = ipv4Octets.join(".");
4874
+ return rdata;
4875
+ };
4876
+ Packet.Resource.EDNS.ECS.encode = function(record, writer) {
4877
+ const ip = record.ip.split(".").map((s) => parseInt(s));
4878
+ writer.write(record.family, 16);
4879
+ writer.write(record.sourcePrefixLength, 8);
4880
+ writer.write(record.scopePrefixLength, 8);
4881
+ writer.write(ip[0], 8);
4882
+ writer.write(ip[1], 8);
4883
+ writer.write(ip[2], 8);
4884
+ writer.write(ip[3], 8);
4885
+ };
4886
+ Packet.Resource.CAA = {
4887
+ encode: function(record, writer) {
4888
+ writer = writer || new Packet.Writer();
4889
+ const buffer = Buffer.from(record.tag + record.value, "utf8");
4890
+ writer.write(2 + buffer.length, 16);
4891
+ writer.write(record.flags, 8);
4892
+ writer.write(record.tag.length, 8);
4893
+ buffer.forEach(function(c2) {
4894
+ writer.write(c2, 8);
4895
+ });
4896
+ return writer.toBuffer();
4897
+ }
4898
+ };
4899
+ Packet.Reader = BufferReader;
4900
+ Packet.Writer = BufferWriter;
4901
+ Packet.createResponseFromRequest = function(request2) {
4902
+ const response = new Packet(request2);
4903
+ response.header.qr = 1;
4904
+ response.additionals = [];
4905
+ return response;
4906
+ };
4907
+ Packet.createResourceFromQuestion = function(base, record) {
4908
+ const resource = new Packet.Resource(base);
4909
+ Object.assign(resource, record);
4910
+ return resource;
4911
+ };
4912
+ Packet.readStream = (socket) => {
4913
+ let chunks = [];
4914
+ let chunklen = 0;
4915
+ let received = false;
4916
+ let expected = false;
4917
+ return new Promise((resolve9, reject) => {
4918
+ const processMessage = () => {
4919
+ if (received)
4920
+ return;
4921
+ received = true;
4922
+ const buffer = Buffer.concat(chunks, chunklen);
4923
+ resolve9(buffer.slice(2));
4924
+ };
4925
+ socket.on("end", processMessage);
4926
+ socket.on("error", reject);
4927
+ socket.on("readable", () => {
4928
+ let chunk;
4929
+ while ((chunk = socket.read()) !== null) {
4930
+ chunks.push(chunk);
4931
+ chunklen += chunk.length;
4932
+ }
4933
+ if (!expected && chunklen >= 2) {
4934
+ if (chunks.length > 1) {
4935
+ chunks = [Buffer.concat(chunks, chunklen)];
4936
+ }
4937
+ expected = chunks[0].readUInt16BE(0);
4938
+ }
4939
+ if (chunklen >= 2 + expected) {
4940
+ processMessage();
4941
+ }
4942
+ });
4943
+ });
4944
+ };
4945
+ Packet.prototype.toBase64URL = function() {
4946
+ const buffer = this.toBuffer();
4947
+ const base64 = buffer.toString("base64");
4948
+ return base64.replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
4949
+ };
4950
+ module2.exports = Packet;
4951
+ module2.exports.toIPv6 = toIPv6;
4952
+ module2.exports.fromIPv6 = fromIPv6;
4953
+ }
4954
+ });
4955
+
4956
+ // ../../node_modules/dns2/server/udp.js
4957
+ var require_udp = __commonJS({
4958
+ "../../node_modules/dns2/server/udp.js"(exports, module2) {
4959
+ var udp = require("dgram");
4960
+ var Packet = require_packet();
4961
+ var Server = class extends udp.Socket {
4962
+ constructor(options) {
4963
+ let type = "udp4";
4964
+ if (typeof options === "object") {
4965
+ type = options.type;
4966
+ }
4967
+ super(type);
4968
+ if (typeof options === "function") {
4969
+ this.on("request", options);
4970
+ }
4971
+ this.on("message", this.handle.bind(this));
4972
+ }
4973
+ handle(data, rinfo) {
4974
+ try {
4975
+ const message = Packet.parse(data);
4976
+ this.emit("request", message, this.response.bind(this, rinfo), rinfo);
4977
+ } catch (e) {
4978
+ this.emit("requestError", e);
4979
+ }
4980
+ }
4981
+ response(rinfo, message) {
4982
+ if (message instanceof Packet) {
4983
+ message = message.toBuffer();
4984
+ }
4985
+ return new Promise((resolve9, reject) => {
4986
+ this.send(message, rinfo.port, rinfo.address, (err) => {
4987
+ if (err)
4988
+ return reject(err);
4989
+ resolve9(message);
4990
+ });
4991
+ });
4992
+ }
4993
+ listen(port, address) {
4994
+ return new Promise((resolve9) => this.bind(port, address, resolve9));
4995
+ }
4996
+ };
4997
+ module2.exports = Server;
4998
+ }
4999
+ });
5000
+
5001
+ // ../../node_modules/dns2/server/tcp.js
5002
+ var require_tcp = __commonJS({
5003
+ "../../node_modules/dns2/server/tcp.js"(exports, module2) {
5004
+ var tcp = require("net");
5005
+ var Packet = require_packet();
5006
+ var Server = class extends tcp.Server {
5007
+ constructor(options) {
5008
+ super();
5009
+ if (typeof options === "function") {
5010
+ this.on("request", options);
5011
+ }
5012
+ this.on("connection", this.handle.bind(this));
5013
+ }
5014
+ async handle(client) {
5015
+ try {
5016
+ const data = await Packet.readStream(client);
5017
+ const message = Packet.parse(data);
5018
+ this.emit("request", message, this.response.bind(this, client), client);
5019
+ } catch (e) {
5020
+ this.emit("requestError", e);
5021
+ client.destroy();
5022
+ }
5023
+ }
5024
+ response(client, message) {
5025
+ if (message instanceof Packet) {
5026
+ message = message.toBuffer();
5027
+ }
5028
+ const len = Buffer.alloc(2);
5029
+ len.writeUInt16BE(message.length);
5030
+ client.end(Buffer.concat([len, message]));
5031
+ }
5032
+ };
5033
+ module2.exports = Server;
5034
+ }
5035
+ });
5036
+
5037
+ // ../../node_modules/dns2/server/doh.js
5038
+ var require_doh = __commonJS({
5039
+ "../../node_modules/dns2/server/doh.js"(exports, module2) {
5040
+ var http = require("http");
5041
+ var https = require("https");
5042
+ var { URL: URL2 } = require("url");
5043
+ var Packet = require_packet();
5044
+ var EventEmitter = require("events");
5045
+ var { debuglog } = require("util");
5046
+ var debug = debuglog("dns2-server");
5047
+ var decodeBase64URL = (str) => {
5048
+ let queryData = str.replace(/-/g, "+").replace(/_/g, "/");
5049
+ const pad = queryData.length % 4;
5050
+ if (pad === 1)
5051
+ return;
5052
+ if (pad) {
5053
+ queryData += new Array(5 - pad).join("=");
5054
+ }
5055
+ return queryData;
5056
+ };
5057
+ var readStream = (stream) => new Promise((resolve9, reject) => {
5058
+ let buffer = "";
5059
+ stream.on("error", reject).on("data", (chunk) => {
5060
+ buffer += chunk;
5061
+ }).on("end", () => resolve9(buffer));
5062
+ });
5063
+ var Server = class extends EventEmitter {
5064
+ constructor(options) {
5065
+ super();
5066
+ const { ssl } = Object.assign(this, { cors: true }, options);
5067
+ this.server = (ssl ? https.createServer(options) : http.createServer()).on("request", this.handleRequest.bind(this)).on("listening", () => this.emit("listening", this.address())).on("error", (error) => this.emit("error", error)).on("close", () => {
5068
+ this.server.removeAllListeners();
5069
+ this.emit("close");
5070
+ });
5071
+ return this;
5072
+ }
5073
+ async handleRequest(client, res) {
5074
+ try {
5075
+ const { method, url, headers } = client;
5076
+ const { pathname, searchParams: query } = new URL2(url, "http://unused/");
5077
+ const { cors } = this;
5078
+ if (cors === true) {
5079
+ res.setHeader("Access-Control-Allow-Origin", "*");
5080
+ } else if (typeof cors === "string") {
5081
+ res.setHeader("Access-Control-Allow-Origin", cors);
5082
+ res.setHeader("Vary", "Origin");
5083
+ } else if (typeof cors === "function") {
5084
+ const isAllowed = cors(headers.origin);
5085
+ res.setHeader("Access-Control-Allow-Origin", isAllowed ? headers.origin : "false");
5086
+ res.setHeader("Vary", "Origin");
5087
+ }
5088
+ debug("request", method, url);
5089
+ if (method !== "GET" && method !== "POST") {
5090
+ res.writeHead(405, { "Content-Type": "text/plain" });
5091
+ res.write("405 Method not allowed\n");
5092
+ res.end();
5093
+ return;
5094
+ }
5095
+ if (pathname !== "/dns-query") {
5096
+ res.writeHead(404, { "Content-Type": "text/plain" });
5097
+ res.write("404 Not Found\n");
5098
+ res.end();
5099
+ return;
5100
+ }
5101
+ const contentType = headers.accept;
5102
+ if (contentType !== "application/dns-message") {
5103
+ res.writeHead(400, { "Content-Type": "text/plain" });
5104
+ res.write("400 Bad Request: Illegal content type\n");
5105
+ res.end();
5106
+ return;
5107
+ }
5108
+ let queryData;
5109
+ if (method === "GET") {
5110
+ const dns = query.get("dns");
5111
+ if (!dns) {
5112
+ res.writeHead(400, { "Content-Type": "text/plain" });
5113
+ res.write("400 Bad Request: No query defined\n");
5114
+ res.end();
5115
+ return;
5116
+ }
5117
+ const base64 = decodeBase64URL(dns);
5118
+ if (!base64) {
5119
+ res.writeHead(400, { "Content-Type": "text/plain" });
5120
+ res.write("400 Bad Request: Invalid query data\n");
5121
+ res.end();
5122
+ return;
5123
+ }
5124
+ queryData = Buffer.from(base64, "base64");
5125
+ } else if (method === "POST") {
5126
+ queryData = await readStream(client);
5127
+ }
5128
+ const message = Packet.parse(queryData);
5129
+ this.emit("request", message, this.response.bind(this, res), client);
5130
+ } catch (e) {
5131
+ this.emit("requestError", e);
5132
+ res.destroy();
5133
+ }
5134
+ }
5135
+ /**
5136
+ * Send of the response to the client
5137
+ * @param {*} res
5138
+ * @param {*} message
5139
+ */
5140
+ response(res, message) {
5141
+ debug("response");
5142
+ res.setHeader("Content-Type", "application/dns-message");
5143
+ res.writeHead(200);
5144
+ res.end(message.toBuffer());
5145
+ }
5146
+ /**
5147
+ * listen
5148
+ * @param {*} port
5149
+ * @returns
5150
+ */
5151
+ listen(port, address) {
5152
+ return this.server.listen(port || this.port, address);
5153
+ }
5154
+ address() {
5155
+ return this.server.address();
5156
+ }
5157
+ close() {
5158
+ return this.server.close();
5159
+ }
5160
+ };
5161
+ module2.exports = Server;
5162
+ }
5163
+ });
5164
+
5165
+ // ../../node_modules/dns2/server/dns.js
5166
+ var require_dns = __commonJS({
5167
+ "../../node_modules/dns2/server/dns.js"(exports, module2) {
5168
+ var EventEmitter = require("events");
5169
+ var DOHServer = require_doh();
5170
+ var TCPServer = require_tcp();
5171
+ var UDPServer = require_udp();
5172
+ var DNSServer = class extends EventEmitter {
5173
+ constructor(options = {}) {
5174
+ super();
5175
+ this.servers = {};
5176
+ if (options.doh) {
5177
+ this.servers.doh = new DOHServer(options.doh).on("error", (error) => this.emit("error", error, "doh"));
5178
+ }
5179
+ if (options.tcp) {
5180
+ this.servers.tcp = new TCPServer().on("error", (error) => this.emit("error", error, "tcp"));
5181
+ }
5182
+ if (options.udp) {
5183
+ this.servers.udp = new UDPServer(typeof options.udp === "object" ? options.udp : void 0).on("error", (error) => this.emit("error", error, "udp"));
5184
+ }
5185
+ const servers = Object.values(this.servers);
5186
+ this.closed = Promise.all(
5187
+ servers.map((server) => new Promise((resolve9) => server.once("close", resolve9)))
5188
+ ).then(() => {
5189
+ this.emit("close");
5190
+ });
5191
+ this.listening = Promise.all(
5192
+ servers.map((server) => new Promise((resolve9) => server.once("listening", resolve9)))
5193
+ ).then(() => {
5194
+ const addresses = this.addresses();
5195
+ this.emit("listening", addresses);
5196
+ return addresses;
5197
+ });
5198
+ const emitRequest = (request2, send, client) => this.emit("request", request2, send, client);
5199
+ const emitRequestError = (error) => this.emit("requestError", error);
5200
+ for (const server of servers) {
5201
+ server.on("request", emitRequest);
5202
+ server.on("requestError", emitRequestError);
5203
+ }
5204
+ if (options.handle) {
5205
+ this.on("request", options.handle.bind(options));
5206
+ }
5207
+ }
5208
+ addresses() {
5209
+ const addresses = {};
5210
+ const { udp, tcp, doh } = this.servers;
5211
+ if (udp) {
5212
+ addresses.udp = udp.address();
5213
+ }
5214
+ if (tcp) {
5215
+ addresses.tcp = tcp.address();
5216
+ }
5217
+ if (doh) {
5218
+ addresses.doh = doh.address();
5219
+ }
5220
+ return addresses;
5221
+ }
5222
+ listen(options = {}) {
5223
+ for (const serverType of Object.keys(this.servers)) {
5224
+ const server = this.servers[serverType];
5225
+ const serverOptions = options[serverType];
5226
+ if (serverOptions && serverOptions.port) {
5227
+ server.listen(serverOptions.port, serverOptions.address);
5228
+ } else {
5229
+ server.listen(serverOptions);
5230
+ }
5231
+ }
5232
+ return this.listening;
5233
+ }
5234
+ close() {
5235
+ const { doh, udp, tcp } = this.servers;
5236
+ if (udp) {
5237
+ udp.close();
5238
+ }
5239
+ if (tcp) {
5240
+ tcp.close();
5241
+ }
5242
+ if (doh) {
5243
+ doh.close();
5244
+ }
5245
+ return this.closed;
5246
+ }
5247
+ };
5248
+ module2.exports = DNSServer;
5249
+ }
5250
+ });
5251
+
5252
+ // ../../node_modules/dns2/server/index.js
5253
+ var require_server = __commonJS({
5254
+ "../../node_modules/dns2/server/index.js"(exports, module2) {
5255
+ var UDPServer = require_udp();
5256
+ var TCPServer = require_tcp();
5257
+ var DOHServer = require_doh();
5258
+ var DNSServer = require_dns();
5259
+ var createUDPServer = (options) => {
5260
+ return new UDPServer(options);
5261
+ };
5262
+ var createTCPServer = (options) => {
5263
+ return new TCPServer(options);
5264
+ };
5265
+ var createDOHServer = (options) => {
5266
+ return new DOHServer(options);
5267
+ };
5268
+ var createServer = (options) => {
5269
+ return new DNSServer(options);
5270
+ };
5271
+ module2.exports = {
5272
+ UDPServer,
5273
+ TCPServer,
5274
+ DOHServer,
5275
+ DNSServer,
5276
+ createTCPServer,
5277
+ createUDPServer,
5278
+ createDOHServer,
5279
+ createServer
5280
+ };
5281
+ }
5282
+ });
5283
+
5284
+ // ../../node_modules/dns2/client/tcp.js
5285
+ var require_tcp2 = __commonJS({
5286
+ "../../node_modules/dns2/client/tcp.js"(exports, module2) {
5287
+ var tcp = require("net");
5288
+ var Packet = require_packet();
5289
+ module2.exports = ({ dns = "1.1.1.1", port = 53 } = {}) => {
5290
+ return async (name, type = "A", cls = Packet.CLASS.IN, { clientIp, recursive = true } = {}) => {
5291
+ const packet = new Packet();
5292
+ if (recursive) {
5293
+ packet.header.rd = 1;
5294
+ }
5295
+ if (clientIp) {
5296
+ packet.additionals.push(Packet.Resource.EDNS([
5297
+ Packet.Resource.EDNS.ECS(clientIp)
5298
+ ]));
5299
+ }
5300
+ packet.questions.push({
5301
+ name,
5302
+ class: cls,
5303
+ type: Packet.TYPE[type]
5304
+ });
5305
+ const message = packet.toBuffer();
5306
+ const len = Buffer.alloc(2);
5307
+ len.writeUInt16BE(message.length);
5308
+ const client = tcp.connect({ host: dns, port });
5309
+ client.end(Buffer.concat([len, message]));
5310
+ const data = await Packet.readStream(client);
5311
+ if (!data.length) {
5312
+ throw new Error("Empty TCP response");
5313
+ }
5314
+ return Packet.parse(data);
5315
+ };
5316
+ };
5317
+ }
5318
+ });
5319
+
5320
+ // ../../node_modules/dns2/client/doh.js
5321
+ var require_doh2 = __commonJS({
5322
+ "../../node_modules/dns2/client/doh.js"(exports, module2) {
5323
+ var Packet = require_packet();
5324
+ var defaultGet = (url) => new Promise((resolve9, reject) => {
5325
+ const headers = {
5326
+ accept: "application/dns-message"
5327
+ };
5328
+ const base = url.startsWith("https") ? require("https") : require("http");
5329
+ const req = base.get(url, { headers }, resolve9);
5330
+ req.on("error", reject);
5331
+ });
5332
+ var readStream = (stream) => {
5333
+ const buffer = [];
5334
+ return new Promise((resolve9, reject) => {
5335
+ stream.on("error", reject).on("data", (chunk) => buffer.push(chunk)).on("end", () => resolve9(Buffer.concat(buffer)));
5336
+ });
5337
+ };
5338
+ var DOHClient = ({ dns, http, get = defaultGet } = {}) => {
5339
+ return (name, type = "A", cls = Packet.CLASS.IN, { clientIp, recursive = true } = {}) => {
5340
+ const packet = new Packet();
5341
+ if (recursive) {
5342
+ packet.header.rd = 1;
5343
+ }
5344
+ if (clientIp) {
5345
+ packet.additionals.push(Packet.Resource.EDNS([
5346
+ Packet.Resource.EDNS.ECS(clientIp)
5347
+ ]));
5348
+ }
5349
+ packet.questions.push({
5350
+ name,
5351
+ class: cls,
5352
+ type: Packet.TYPE[type]
5353
+ });
5354
+ const query = packet.toBase64URL();
5355
+ return Promise.resolve(get(`http${http ? "" : "s"}://${dns}/dns-query?dns=${query}`)).then(readStream).then(Packet.parse);
5356
+ };
5357
+ };
5358
+ module2.exports = DOHClient;
5359
+ }
5360
+ });
5361
+
5362
+ // ../../node_modules/dns2/client/udp.js
5363
+ var require_udp2 = __commonJS({
5364
+ "../../node_modules/dns2/client/udp.js"(exports, module2) {
5365
+ var udp = require("dgram");
5366
+ var Packet = require_packet();
5367
+ var { equal } = require("assert");
5368
+ var { debuglog } = require("util");
5369
+ var debug = debuglog("dns2");
5370
+ module2.exports = ({ dns = "8.8.8.8", port = 53, socketType = "udp4" } = {}) => {
5371
+ return (name, type = "A", cls = Packet.CLASS.IN, { clientIp, recursive = true } = {}) => {
5372
+ const query = new Packet();
5373
+ query.header.id = Math.random() * 1e4 | 0;
5374
+ if (recursive) {
5375
+ query.header.rd = 1;
5376
+ }
5377
+ if (clientIp) {
5378
+ query.additionals.push(Packet.Resource.EDNS([
5379
+ Packet.Resource.EDNS.ECS(clientIp)
5380
+ ]));
5381
+ }
5382
+ query.questions.push({
5383
+ name,
5384
+ class: cls,
5385
+ type: Packet.TYPE[type]
5386
+ });
5387
+ const client = new udp.Socket(socketType);
5388
+ return new Promise((resolve9, reject) => {
5389
+ client.once("message", function onMessage(message) {
5390
+ client.close();
5391
+ const response = Packet.parse(message);
5392
+ equal(response.header.id, query.header.id);
5393
+ resolve9(response);
5394
+ });
5395
+ debug("send", dns, query.toBuffer());
5396
+ client.send(query.toBuffer(), port, dns, (err) => err && reject(err));
5397
+ });
5398
+ };
5399
+ };
5400
+ }
5401
+ });
5402
+
5403
+ // ../../node_modules/dns2/client/google.js
5404
+ var require_google = __commonJS({
5405
+ "../../node_modules/dns2/client/google.js"(exports, module2) {
5406
+ var https = require("https");
5407
+ var get = (url) => new Promise((resolve9) => https.get(url, resolve9));
5408
+ var readStream = (stream) => {
5409
+ const buffer = [];
5410
+ return new Promise((resolve9, reject) => {
5411
+ stream.on("error", reject).on("data", (chunk) => {
5412
+ buffer.push(chunk);
5413
+ }).on("end", () => resolve9(Buffer.concat(buffer)));
5414
+ });
5415
+ };
5416
+ var GoogleClient = () => (name, type = "ANY") => {
5417
+ return Promise.resolve().then(() => get(`https://dns.google.com/resolve?name=${name}&type=${type}`)).then(readStream).then(JSON.parse);
5418
+ };
5419
+ module2.exports = GoogleClient;
5420
+ }
5421
+ });
5422
+
5423
+ // ../../node_modules/dns2/index.js
5424
+ var require_dns2 = __commonJS({
5425
+ "../../node_modules/dns2/index.js"(exports, module2) {
5426
+ var {
5427
+ TCPServer,
5428
+ UDPServer,
5429
+ DOHServer,
5430
+ createTCPServer,
5431
+ createUDPServer,
5432
+ createDOHServer,
5433
+ createServer
5434
+ } = require_server();
5435
+ var EventEmitter = require("events");
5436
+ var DNS = class extends EventEmitter {
5437
+ constructor(options) {
5438
+ super();
5439
+ Object.assign(this, {
5440
+ port: 53,
5441
+ retries: 3,
5442
+ timeout: 3,
5443
+ recursive: true,
5444
+ resolverProtocol: "UDP",
5445
+ nameServers: [
5446
+ "8.8.8.8",
5447
+ "114.114.114.114"
5448
+ ],
5449
+ rootServers: [
5450
+ "a",
5451
+ "b",
5452
+ "c",
5453
+ "d",
5454
+ "e",
5455
+ "f",
5456
+ "g",
5457
+ "h",
5458
+ "i",
5459
+ "j",
5460
+ "k",
5461
+ "l",
5462
+ "m"
5463
+ ].map((x2) => `${x2}.root-servers.net`)
5464
+ }, options);
5465
+ }
5466
+ /**
5467
+ * query
5468
+ * @param {*} questions
5469
+ */
5470
+ query(name, type, cls, clientIp) {
5471
+ const { port, nameServers, recursive, resolverProtocol = "UDP" } = this;
5472
+ const createResolver = DNS[resolverProtocol + "Client"];
5473
+ return Promise.race(nameServers.map((address) => {
5474
+ const resolve9 = createResolver({ dns: address, port, recursive });
5475
+ return resolve9(name, type, cls, clientIp);
5476
+ }));
5477
+ }
5478
+ /**
5479
+ * resolve
5480
+ * @param {*} domain
5481
+ * @param {*} type
5482
+ * @param {*} cls
5483
+ */
5484
+ resolve(domain, type = "ANY", cls = DNS.Packet.CLASS.IN, clientIp = void 0) {
5485
+ return this.query(domain, type, cls, clientIp);
5486
+ }
5487
+ resolveA(domain, clientIp) {
5488
+ return this.resolve(domain, "A", void 0, clientIp);
5489
+ }
5490
+ resolveAAAA(domain) {
5491
+ return this.resolve(domain, "AAAA");
5492
+ }
5493
+ resolveMX(domain) {
5494
+ return this.resolve(domain, "MX");
5495
+ }
5496
+ resolveCNAME(domain) {
5497
+ return this.resolve(domain, "CNAME");
5498
+ }
5499
+ resolvePTR(domain) {
5500
+ return this.resolve(domain, "PTR");
5501
+ }
5502
+ };
5503
+ DNS.TCPServer = TCPServer;
5504
+ DNS.UDPServer = UDPServer;
5505
+ DNS.DOHServer = DOHServer;
5506
+ DNS.createUDPServer = createUDPServer;
5507
+ DNS.createTCPServer = createTCPServer;
5508
+ DNS.createDOHServer = createDOHServer;
5509
+ DNS.createServer = createServer;
5510
+ DNS.TCPClient = require_tcp2();
5511
+ DNS.DOHClient = require_doh2();
5512
+ DNS.UDPClient = require_udp2();
5513
+ DNS.GoogleClient = require_google();
5514
+ DNS.Packet = require_packet();
5515
+ module2.exports = DNS;
5516
+ }
5517
+ });
5518
+
4192
5519
  // node_modules/undici/lib/core/symbols.js
4193
5520
  var require_symbols = __commonJS({
4194
5521
  "node_modules/undici/lib/core/symbols.js"(exports, module2) {
@@ -53155,8 +54482,6 @@ var space = (n = 1) => {
53155
54482
  return hidden("\u200A".repeat(n));
53156
54483
  };
53157
54484
  var logRaw = (msg) => {
53158
- if (process.env.VITEST)
53159
- return;
53160
54485
  process.stdout.write(`${msg}
53161
54486
  `);
53162
54487
  };
@@ -54509,9 +55834,9 @@ var getConfirmRenderers = (config14) => {
54509
55834
  cancel: handleCancel
54510
55835
  };
54511
55836
  };
55837
+ var spinnerFrames = ["\u2524", "\u2518", "\u2534", "\u2514", "\u251C", "\u250C", "\u252C", "\u2510"];
55838
+ var ellipsisFrames = ["", ".", "..", "...", " ..", " .", ""];
54512
55839
  var spinner = () => {
54513
- const spinnerFrames = ["\u2524", "\u2518", "\u2534", "\u2514", "\u251C", "\u250C", "\u252C", "\u2510"];
54514
- const ellipsisFrames = ["", ".", "..", "...", " ..", " .", ""];
54515
55840
  const color = brandColor;
54516
55841
  const frameRate = 120;
54517
55842
  let loop = null;
@@ -59412,7 +60737,7 @@ var Yargs = YargsFactory(esm_default);
59412
60737
  var yargs_default = Yargs;
59413
60738
 
59414
60739
  // package.json
59415
- var version = "0.0.0-78ddb8de";
60740
+ var version = "0.0.0-80c1b38a";
59416
60741
 
59417
60742
  // src/common.ts
59418
60743
  var import_fs6 = require("fs");
@@ -59473,15 +60798,14 @@ var runCommand = async (command2, opts = {}) => {
59473
60798
  }
59474
60799
  return printAsyncStatus({
59475
60800
  useSpinner: opts.useSpinner ?? opts.silent,
59476
- startText: opts.startText || command2.join(" "),
60801
+ startText: opts.startText || command2.join(" ").trim(),
59477
60802
  doneText: opts.doneText,
59478
60803
  promise() {
59479
60804
  const [executable, ...args] = command2;
59480
- const squelch = opts.silent || process.env.VITEST;
59481
60805
  const cmd = (0, import_cross_spawn.spawn)(executable, [...args], {
59482
60806
  // TODO: ideally inherit stderr, but npm install uses this for warnings
59483
60807
  // stdio: [ioMode, ioMode, "inherit"],
59484
- stdio: squelch ? "pipe" : "inherit",
60808
+ stdio: opts.silent ? "pipe" : "inherit",
59485
60809
  env: {
59486
60810
  ...process.env,
59487
60811
  ...opts.env
@@ -59489,7 +60813,7 @@ var runCommand = async (command2, opts = {}) => {
59489
60813
  cwd: opts.cwd
59490
60814
  });
59491
60815
  let output = ``;
59492
- if (opts?.captureOutput ?? squelch) {
60816
+ if (opts.captureOutput ?? opts.silent) {
59493
60817
  cmd.stdout?.on("data", (data) => {
59494
60818
  output += data;
59495
60819
  });
@@ -59514,6 +60838,9 @@ var runCommand = async (command2, opts = {}) => {
59514
60838
  }
59515
60839
  }
59516
60840
  });
60841
+ cmd.on("error", (code) => {
60842
+ reject(code);
60843
+ });
59517
60844
  });
59518
60845
  }
59519
60846
  });
@@ -59624,10 +60951,14 @@ var installWrangler = async () => {
59624
60951
  };
59625
60952
  var isLoggedIn = async () => {
59626
60953
  const { npx: npx6 } = detectPackageManager();
59627
- const output = await runCommand(`${npx6} wrangler whoami`, {
59628
- silent: true
59629
- });
59630
- return !/not authenticated/.test(output);
60954
+ try {
60955
+ const output = await runCommand(`${npx6} wrangler whoami`, {
60956
+ silent: true
60957
+ });
60958
+ return /You are logged in/.test(output);
60959
+ } catch (error) {
60960
+ return false;
60961
+ }
59631
60962
  };
59632
60963
  var wranglerLogin = async () => {
59633
60964
  const { npx: npx6 } = detectPackageManager();
@@ -59680,7 +61011,7 @@ async function getWorkerdCompatibilityDate() {
59680
61011
  }
59681
61012
 
59682
61013
  // src/helpers/poll.ts
59683
- var import_promises = require("node:dns/promises");
61014
+ var import_dns2 = __toESM(require_dns2());
59684
61015
  var import_undici = __toESM(require_undici());
59685
61016
  var TIMEOUT = 1e3 * 60 * 5;
59686
61017
  var POLL_INTERVAL = 1e3;
@@ -59689,14 +61020,28 @@ var poll = async (url) => {
59689
61020
  const domain = new URL(url).host;
59690
61021
  const s = spinner();
59691
61022
  s.start("Waiting for DNS to propagate");
61023
+ await sleep(10 * 1e3);
61024
+ await pollDns(domain, start, s);
61025
+ if (await pollHttp(url, start, s))
61026
+ return true;
61027
+ s.stop(
61028
+ `${brandColor(
61029
+ "timed out"
61030
+ )} while waiting for ${url} - try accessing it in a few minutes.`
61031
+ );
61032
+ return false;
61033
+ };
61034
+ var pollDns = async (domain, start, s) => {
59692
61035
  while (Date.now() - start < TIMEOUT) {
59693
61036
  s.update(`Waiting for DNS to propagate (${secondsSince(start)}s)`);
59694
- if (await dnsLookup(domain)) {
61037
+ if (await isDomainResolvable(domain)) {
59695
61038
  s.stop(`${brandColor("DNS propagation")} ${dim("complete")}.`);
59696
- break;
61039
+ return;
59697
61040
  }
59698
61041
  await sleep(POLL_INTERVAL);
59699
61042
  }
61043
+ };
61044
+ var pollHttp = async (url, start, s) => {
59700
61045
  s.start("Waiting for deployment to become available");
59701
61046
  while (Date.now() - start < TIMEOUT) {
59702
61047
  s.update(
@@ -59720,27 +61065,31 @@ var poll = async (url) => {
59720
61065
  }
59721
61066
  await sleep(POLL_INTERVAL);
59722
61067
  }
59723
- s.stop(
59724
- `${brandColor(
59725
- "timed out"
59726
- )} while waiting for ${url} - try accessing it in a few minutes.`
59727
- );
59728
- return false;
59729
61068
  };
59730
- async function dnsLookup(domain) {
61069
+ var isDomainResolvable = async (domain) => {
59731
61070
  try {
59732
- const resolver = new import_promises.Resolver({ timeout: TIMEOUT, tries: 1 });
59733
- resolver.setServers([
59734
- "1.1.1.1",
59735
- "1.0.0.1",
59736
- "2606:4700:4700::1111",
59737
- "2606:4700:4700::1001"
59738
- ]);
59739
- return (await resolver.resolve4(domain)).length > 0;
59740
- } catch (e) {
61071
+ const nameServers = await lookupSubdomainNameservers(domain);
61072
+ if (nameServers.length === 0)
61073
+ return false;
61074
+ const dns = new import_dns2.default({ nameServers });
61075
+ const res = await dns.resolve(domain, "A");
61076
+ return res.answers.length > 0;
61077
+ } catch (error) {
59741
61078
  return false;
59742
61079
  }
59743
- }
61080
+ };
61081
+ var lookupSubdomainNameservers = async (domain) => {
61082
+ const nameServers = await lookupDomainLevelNameservers(domain);
61083
+ const dns = new import_dns2.default({ nameServers });
61084
+ const res = await dns.resolve(domain, "NS");
61085
+ return res.authorities.filter((r2) => Boolean(r2.ns)).map((r2) => r2.ns);
61086
+ };
61087
+ var lookupDomainLevelNameservers = async (domain) => {
61088
+ const baseDomain = domain.split(".").slice(-2).join(".");
61089
+ const dns = new import_dns2.default({});
61090
+ const nameservers = await dns.resolve(baseDomain, "NS");
61091
+ return nameservers.answers.map((n) => n.ns);
61092
+ };
59744
61093
  async function sleep(ms) {
59745
61094
  return new Promise((res) => setTimeout(res, ms));
59746
61095
  }
@@ -59797,7 +61146,7 @@ var runDeploy = async (ctx) => {
59797
61146
  const result = await runCommand(deployCmd, {
59798
61147
  silent: true,
59799
61148
  cwd: ctx.project.path,
59800
- env: { CLOUDFLARE_ACCOUNT_ID: ctx.account.id },
61149
+ env: { CLOUDFLARE_ACCOUNT_ID: ctx.account.id, NODE_ENV: "production" },
59801
61150
  startText: `Deploying your application`,
59802
61151
  doneText: `${brandColor("deployed")} ${dim(`via \`${deployCmd}\``)}`
59803
61152
  });
@@ -59846,7 +61195,7 @@ var chooseAccount = async (ctx) => {
59846
61195
  };
59847
61196
  var printSummary = async (ctx) => {
59848
61197
  const nextSteps = [
59849
- [`Navigate to the new directory:`, `cd ${ctx.project.name}`],
61198
+ [`Navigate to the new directory`, `cd ${ctx.project.name}`],
59850
61199
  [
59851
61200
  `Run the development server`,
59852
61201
  `${npm} run ${ctx.framework?.config.devCommand ?? "start"}`
@@ -59857,7 +61206,7 @@ var printSummary = async (ctx) => {
59857
61206
  ],
59858
61207
  [
59859
61208
  `Read the documentation`,
59860
- `https://developers.cloudflare.com/${ctx.framework ? "pages" : "workers"}`
61209
+ `https://developers.cloudflare.com/${ctx.framework ? ctx.framework.config.type === "workers" ? "workers" : "pages" : "workers"}`
59861
61210
  ],
59862
61211
  [`Stuck? Join us at`, `https://discord.gg/cloudflaredev`]
59863
61212
  ];
@@ -59973,13 +61322,31 @@ async function initializeGit(cwd) {
59973
61322
  await runCommand(`git init`, { useSpinner: false, silent: true, cwd });
59974
61323
  }
59975
61324
  }
61325
+ async function getProductionBranch(cwd) {
61326
+ try {
61327
+ const productionBranch = await runCommand(
61328
+ // "git branch --show-current", // git@^2.22
61329
+ "git rev-parse --abbrev-ref HEAD",
61330
+ // git@^1.6.3
61331
+ {
61332
+ silent: true,
61333
+ cwd,
61334
+ useSpinner: false,
61335
+ captureOutput: true
61336
+ }
61337
+ );
61338
+ return productionBranch.trim();
61339
+ } catch (err) {
61340
+ }
61341
+ return "main";
61342
+ }
59976
61343
 
59977
61344
  // src/pages.ts
59978
61345
  var import_path8 = require("path");
59979
61346
  var import_process3 = require("process");
59980
61347
 
59981
61348
  // src/frameworks/angular/index.ts
59982
- var import_promises2 = require("node:fs/promises");
61349
+ var import_promises = require("node:fs/promises");
59983
61350
  var import_node_path = require("node:path");
59984
61351
 
59985
61352
  // src/helpers/files.ts
@@ -60002,6 +61369,9 @@ var readJSON = (path3) => {
60002
61369
  const contents = readFile(path3);
60003
61370
  return contents ? JSON.parse(contents) : contents;
60004
61371
  };
61372
+ var writeJSON = (path3, object, stringifySpace) => {
61373
+ writeFile2(path3, JSON.stringify(object, null, stringifySpace));
61374
+ };
60005
61375
  var probePaths = (paths, errorMsg = "Failed to find required file.") => {
60006
61376
  for (const path3 of paths) {
60007
61377
  if ((0, import_fs7.existsSync)(path3)) {
@@ -60014,6 +61384,35 @@ var probePaths = (paths, errorMsg = "Failed to find required file.") => {
60014
61384
  var usesTypescript = (projectRoot = ".") => {
60015
61385
  return (0, import_fs7.existsSync)(`${projectRoot}/tsconfig.json`);
60016
61386
  };
61387
+ var eslintRcExts = ["js", "cjs", "yaml", "yml", "json"];
61388
+ var usesEslint = (ctx) => {
61389
+ for (const ext of eslintRcExts) {
61390
+ const eslintRcFilename = `.eslintrc.${ext}`;
61391
+ if ((0, import_fs7.existsSync)(`${ctx.project.path}/${eslintRcFilename}`)) {
61392
+ return {
61393
+ used: true,
61394
+ configType: eslintRcFilename
61395
+ };
61396
+ }
61397
+ }
61398
+ if ((0, import_fs7.existsSync)(`${ctx.project.path}/eslint.config.js`)) {
61399
+ return {
61400
+ used: true,
61401
+ configType: "eslint.config.js"
61402
+ };
61403
+ }
61404
+ try {
61405
+ const pkgJson = readJSON(`${ctx.project.path}/package.json`);
61406
+ if (pkgJson.eslintConfig) {
61407
+ return {
61408
+ used: true,
61409
+ configType: "package.json"
61410
+ };
61411
+ }
61412
+ } catch {
61413
+ }
61414
+ return { used: false };
61415
+ };
60017
61416
  var compatDateFlag = () => {
60018
61417
  const date = /* @__PURE__ */ new Date();
60019
61418
  return `--compatibility-date=${date.toISOString().slice(0, 10)}`;
@@ -60057,7 +61456,7 @@ var angular_default = config;
60057
61456
  async function installCFWorker(ctx) {
60058
61457
  const s = spinner();
60059
61458
  s.start(`Adding Cloudflare Pages adapter code`);
60060
- await (0, import_promises2.cp)(
61459
+ await (0, import_promises.cp)(
60061
61460
  // eslint-disable-next-line no-restricted-globals
60062
61461
  (0, import_node_path.resolve)(__dirname, "./angular/templates"),
60063
61462
  (0, import_node_path.resolve)(ctx.project.path),
@@ -60099,7 +61498,7 @@ async function updateAppCode() {
60099
61498
  "providers: [provideHttpClient(withFetch()), provideClientHydration(), "
60100
61499
  );
60101
61500
  writeFile2((0, import_node_path.resolve)(appConfigPath), newAppConfig);
60102
- await (0, import_promises2.rm)((0, import_node_path.resolve)("server.ts"));
61501
+ await (0, import_promises.rm)((0, import_node_path.resolve)("server.ts"));
60103
61502
  s.stop(`${brandColor(`updated`)} ${dim(appConfigPath)}`);
60104
61503
  }
60105
61504
  function updateAngularJson(ctx) {
@@ -60218,7 +61617,7 @@ var generate5 = async (ctx) => {
60218
61617
  const version2 = getFrameworkVersion(ctx);
60219
61618
  await runFrameworkGenerator(
60220
61619
  ctx,
60221
- `${dlx5} create-hono@${version2} ${ctx.project.name} --template cloudflare-pages`
61620
+ `${dlx5} create-hono@${version2} ${ctx.project.name} --template cloudflare-workers`
60222
61621
  );
60223
61622
  logRaw("");
60224
61623
  };
@@ -60227,7 +61626,8 @@ var config5 = {
60227
61626
  displayName: "Hono",
60228
61627
  packageScripts: {},
60229
61628
  deployCommand: "deploy",
60230
- devCommand: "dev"
61629
+ devCommand: "dev",
61630
+ type: "workers"
60231
61631
  };
60232
61632
  var hono_default = config5;
60233
61633
 
@@ -60319,14 +61719,50 @@ var configure3 = async (ctx) => {
60319
61719
  );
60320
61720
  writeFile2(handlerPath, handlerFile);
60321
61721
  updateStatus("Created an example API route handler");
61722
+ const installEslintPlugin = await shouldInstallNextOnPagesEslintPlugin(ctx);
61723
+ if (installEslintPlugin) {
61724
+ await writeEslintrc(ctx);
61725
+ }
60322
61726
  process.chdir(projectName);
60323
- const packages = ["@cloudflare/next-on-pages@1", "vercel"];
61727
+ const packages = [
61728
+ "@cloudflare/next-on-pages@1",
61729
+ "vercel",
61730
+ ...installEslintPlugin ? ["eslint-plugin-next-on-pages"] : []
61731
+ ];
60324
61732
  await installPackages(packages, {
60325
61733
  dev: true,
60326
61734
  startText: "Adding the Cloudflare Pages adapter",
60327
61735
  doneText: `${brandColor(`installed`)} ${dim(packages.join(", "))}`
60328
61736
  });
60329
61737
  };
61738
+ var shouldInstallNextOnPagesEslintPlugin = async (ctx) => {
61739
+ const eslintUsage = usesEslint(ctx);
61740
+ if (!eslintUsage.used)
61741
+ return false;
61742
+ if (eslintUsage.configType !== ".eslintrc.json") {
61743
+ warn(
61744
+ `Expected .eslintrc.json from Next.js scaffolding but found ${eslintUsage.configType} instead`
61745
+ );
61746
+ return false;
61747
+ }
61748
+ return await processArgument(ctx.args, "eslint-plugin", {
61749
+ type: "confirm",
61750
+ question: "Do you want to use the next-on-pages eslint-plugin?",
61751
+ label: "eslint-plugin",
61752
+ defaultValue: true
61753
+ });
61754
+ };
61755
+ var writeEslintrc = async (ctx) => {
61756
+ const eslintConfig = readJSON(`${ctx.project.name}/.eslintrc.json`);
61757
+ eslintConfig.plugins ??= [];
61758
+ eslintConfig.plugins.push("eslint-plugin-next-on-pages");
61759
+ if (typeof eslintConfig.extends === "string") {
61760
+ eslintConfig.extends = [eslintConfig.extends];
61761
+ }
61762
+ eslintConfig.extends ??= [];
61763
+ eslintConfig.extends.push("plugin:eslint-plugin-next-on-pages/recommended");
61764
+ writeJSON(`${ctx.project.name}/.eslintrc.json`, eslintConfig, 2);
61765
+ };
60330
61766
  var config6 = {
60331
61767
  generate: generate6,
60332
61768
  configure: configure3,
@@ -60345,7 +61781,7 @@ var config6 = {
60345
61781
  "--src-dir",
60346
61782
  "--app",
60347
61783
  "--import-alias",
60348
- '"@/*"'
61784
+ "@/*"
60349
61785
  ],
60350
61786
  compatibilityFlags: ["nodejs_compat"]
60351
61787
  };
@@ -60363,6 +61799,7 @@ var generate7 = async (ctx) => {
60363
61799
  };
60364
61800
  var configure4 = async (ctx) => {
60365
61801
  process.chdir(ctx.project.path);
61802
+ writeFile2("./.node-version", "17");
60366
61803
  await npmInstall();
60367
61804
  };
60368
61805
  var config7 = {
@@ -60370,8 +61807,9 @@ var config7 = {
60370
61807
  configure: configure4,
60371
61808
  displayName: "Nuxt",
60372
61809
  packageScripts: {
61810
+ build: (cmd) => `NITRO_PRESET=cloudflare-pages ${cmd}`,
60373
61811
  "pages:dev": `wrangler pages dev ${compatDateFlag()} --proxy 3000 -- npm run dev`,
60374
- "pages:deploy": `NODE_VERSION=17 npm run generate && wrangler pages deploy ./dist`
61812
+ "pages:deploy": "npm run build && wrangler pages deploy ./dist"
60375
61813
  }
60376
61814
  };
60377
61815
  var nuxt_default = config7;
@@ -60486,7 +61924,7 @@ var config11 = {
60486
61924
  displayName: "Solid",
60487
61925
  packageScripts: {
60488
61926
  "pages:dev": `wrangler pages dev ${compatDateFlag()} --proxy 3000 -- ${npm9} run dev`,
60489
- "pages:deploy": `${npm9} run build build && wrangler pages deploy ./dist/public`
61927
+ "pages:deploy": `${npm9} run build && wrangler pages deploy ./dist/public`
60490
61928
  }
60491
61929
  };
60492
61930
  var solid_default = config11;
@@ -60721,11 +62159,29 @@ var updatePackageScripts = async (ctx) => {
60721
62159
  const { packageScripts } = ctx.framework?.config ?? {};
60722
62160
  if (packageScripts) {
60723
62161
  const s = spinner();
60724
- s.start(`Adding command scripts`, `for development and deployment`);
62162
+ const updatingScripts = Object.entries(packageScripts).filter(
62163
+ ([_3, cmdOrUpdater]) => typeof cmdOrUpdater === "function"
62164
+ ).length > 0;
62165
+ s.start(
62166
+ `${updatingScripts ? "Updating" : "Adding"} command scripts`,
62167
+ "for development and deployment"
62168
+ );
60725
62169
  const pkgJsonPath = (0, import_path8.resolve)("package.json");
60726
62170
  const pkgConfig = readJSON(pkgJsonPath);
60727
- Object.entries(packageScripts).forEach(([target, command2]) => {
60728
- pkgConfig.scripts[target] = command2;
62171
+ Object.entries(packageScripts).forEach(([target, cmdOrUpdater]) => {
62172
+ if (typeof cmdOrUpdater === "string") {
62173
+ const command2 = cmdOrUpdater;
62174
+ pkgConfig.scripts[target] = command2;
62175
+ } else {
62176
+ const existingCommand = pkgConfig.scripts[target];
62177
+ if (!existingCommand) {
62178
+ throw new Error(
62179
+ `Could not find ${target} script to update during ${ctx.framework} setup`
62180
+ );
62181
+ }
62182
+ const updater = cmdOrUpdater;
62183
+ pkgConfig.scripts[target] = updater(existingCommand);
62184
+ }
60729
62185
  });
60730
62186
  writeFile2(pkgJsonPath, JSON.stringify(pkgConfig, null, 2));
60731
62187
  s.stop(`${brandColor("added")} ${dim("commands to `package.json`")}`);
@@ -60734,6 +62190,8 @@ var updatePackageScripts = async (ctx) => {
60734
62190
  var createProject = async (ctx) => {
60735
62191
  if (ctx.args.deploy === false)
60736
62192
  return;
62193
+ if (ctx.framework?.config.type === "workers")
62194
+ return;
60737
62195
  if (!ctx.account?.id) {
60738
62196
  crash("Failed to read Cloudflare account.");
60739
62197
  return;
@@ -60741,7 +62199,8 @@ var createProject = async (ctx) => {
60741
62199
  const CLOUDFLARE_ACCOUNT_ID = ctx.account.id;
60742
62200
  const compatFlags = ctx.framework?.config.compatibilityFlags?.join(" ");
60743
62201
  const compatFlagsArg = compatFlags ? `--compatibility-flags ${compatFlags}` : "";
60744
- const cmd = `${npx5} wrangler pages project create ${ctx.project.name} --production-branch main ${compatFlagsArg}`;
62202
+ const productionBranch = await getProductionBranch(ctx.project.path);
62203
+ const cmd = `${npx5} wrangler pages project create ${ctx.project.name} --production-branch ${productionBranch} ${compatFlagsArg}`;
60745
62204
  try {
60746
62205
  await retry(
60747
62206
  CREATE_PROJECT_RETRIES,
@@ -60750,7 +62209,7 @@ var createProject = async (ctx) => {
60750
62209
  cwd: ctx.project.path,
60751
62210
  env: { CLOUDFLARE_ACCOUNT_ID },
60752
62211
  startText: "Creating Pages project",
60753
- doneText: `${brandColor("created")} ${dim(`via \`${cmd}\``)}`
62212
+ doneText: `${brandColor("created")} ${dim(`via \`${cmd.trim()}\``)}`
60754
62213
  })
60755
62214
  );
60756
62215
  } catch (error) {
@@ -60759,7 +62218,7 @@ var createProject = async (ctx) => {
60759
62218
  };
60760
62219
 
60761
62220
  // src/workers.ts
60762
- var import_promises3 = require("fs/promises");
62221
+ var import_promises2 = require("fs/promises");
60763
62222
  var import_os = require("os");
60764
62223
  var import_path9 = require("path");
60765
62224
  var import_process4 = require("process");
@@ -60784,14 +62243,12 @@ var runWorkersGenerator = async (args) => {
60784
62243
  await printSummary(ctx);
60785
62244
  };
60786
62245
  async function getTemplate(ctx) {
60787
- if (ctx.args.ts === void 0) {
60788
- ctx.args.ts = await processArgument(ctx.args, "ts", {
60789
- type: "confirm",
60790
- question: "Do you want to use TypeScript?",
60791
- label: "typescript",
60792
- defaultValue: C3_DEFAULTS.ts
60793
- });
60794
- }
62246
+ ctx.args.ts = await processArgument(ctx.args, "ts", {
62247
+ type: "confirm",
62248
+ question: "Do you want to use TypeScript?",
62249
+ label: "typescript",
62250
+ defaultValue: C3_DEFAULTS.ts
62251
+ });
60795
62252
  const preexisting = ctx.args.type === "pre-existing";
60796
62253
  const template = preexisting ? "hello-world" : ctx.args.type;
60797
62254
  const path3 = (0, import_path9.resolve)(
@@ -60808,7 +62265,7 @@ async function copyFiles(ctx) {
60808
62265
  const { template, path: srcdir } = await getTemplate(ctx);
60809
62266
  const destdir = ctx.project.path;
60810
62267
  updateStatus(`Copying files from "${template}" template`);
60811
- await (0, import_promises3.cp)(srcdir, destdir, { recursive: true });
62268
+ await (0, import_promises2.cp)(srcdir, destdir, { recursive: true });
60812
62269
  }
60813
62270
  async function copyExistingWorkerFiles(ctx) {
60814
62271
  const { preexisting } = await getTemplate(ctx);
@@ -60826,7 +62283,7 @@ async function copyExistingWorkerFiles(ctx) {
60826
62283
  }
60827
62284
  );
60828
62285
  }
60829
- const tempdir = await (0, import_promises3.mkdtemp)(
62286
+ const tempdir = await (0, import_promises2.mkdtemp)(
60830
62287
  (0, import_path9.join)((0, import_os.tmpdir)(), "c3-wrangler-init--from-dash-")
60831
62288
  );
60832
62289
  await runCommand(
@@ -60842,15 +62299,15 @@ async function copyExistingWorkerFiles(ctx) {
60842
62299
  )}`
60843
62300
  }
60844
62301
  );
60845
- for (const filename of await (0, import_promises3.readdir)((0, import_path9.join)(ctx.project.path, "src"))) {
60846
- await (0, import_promises3.rm)((0, import_path9.join)(ctx.project.path, "src", filename));
62302
+ for (const filename of await (0, import_promises2.readdir)((0, import_path9.join)(ctx.project.path, "src"))) {
62303
+ await (0, import_promises2.rm)((0, import_path9.join)(ctx.project.path, "src", filename));
60847
62304
  }
60848
- await (0, import_promises3.cp)(
62305
+ await (0, import_promises2.cp)(
60849
62306
  (0, import_path9.join)(tempdir, ctx.args.existingScript, "src"),
60850
62307
  (0, import_path9.join)(ctx.project.path, "src"),
60851
62308
  { recursive: true }
60852
62309
  );
60853
- await (0, import_promises3.cp)(
62310
+ await (0, import_promises2.cp)(
60854
62311
  (0, import_path9.join)(tempdir, ctx.args.existingScript, "wrangler.toml"),
60855
62312
  (0, import_path9.join)(ctx.project.path, "wrangler.toml")
60856
62313
  );
@@ -60862,8 +62319,8 @@ async function updateFiles(ctx) {
60862
62319
  wranglertoml: (0, import_path9.resolve)(ctx.project.path, "wrangler.toml")
60863
62320
  };
60864
62321
  const contents = {
60865
- packagejson: JSON.parse(await (0, import_promises3.readFile)(paths.packagejson, "utf-8")),
60866
- wranglertoml: await (0, import_promises3.readFile)(paths.wranglertoml, "utf-8")
62322
+ packagejson: JSON.parse(await (0, import_promises2.readFile)(paths.packagejson, "utf-8")),
62323
+ wranglertoml: await (0, import_promises2.readFile)(paths.wranglertoml, "utf-8")
60867
62324
  };
60868
62325
  if (contents.packagejson.name === "<TBD>") {
60869
62326
  contents.packagejson.name = ctx.project.name;
@@ -60872,11 +62329,11 @@ async function updateFiles(ctx) {
60872
62329
  /^compatibility_date\s*=\s*"<TBD>"/m,
60873
62330
  `compatibility_date = "${await getWorkerdCompatibilityDate()}"`
60874
62331
  );
60875
- await (0, import_promises3.writeFile)(
62332
+ await (0, import_promises2.writeFile)(
60876
62333
  paths.packagejson,
60877
62334
  JSON.stringify(contents.packagejson, null, 2)
60878
62335
  );
60879
- await (0, import_promises3.writeFile)(paths.wranglertoml, contents.wranglertoml);
62336
+ await (0, import_promises2.writeFile)(paths.wranglertoml, contents.wranglertoml);
60880
62337
  }
60881
62338
 
60882
62339
  // src/cli.ts