create-cloudflare 2.0.14 → 2.1.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
@@ -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) {
@@ -54507,9 +55834,9 @@ var getConfirmRenderers = (config14) => {
54507
55834
  cancel: handleCancel
54508
55835
  };
54509
55836
  };
55837
+ var spinnerFrames = ["\u2524", "\u2518", "\u2534", "\u2514", "\u251C", "\u250C", "\u252C", "\u2510"];
55838
+ var ellipsisFrames = ["", ".", "..", "...", " ..", " .", ""];
54510
55839
  var spinner = () => {
54511
- const spinnerFrames = ["\u2524", "\u2518", "\u2534", "\u2514", "\u251C", "\u250C", "\u252C", "\u2510"];
54512
- const ellipsisFrames = ["", ".", "..", "...", " ..", " .", ""];
54513
55840
  const color = brandColor;
54514
55841
  const frameRate = 120;
54515
55842
  let loop = null;
@@ -59410,7 +60737,44 @@ var Yargs = YargsFactory(esm_default);
59410
60737
  var yargs_default = Yargs;
59411
60738
 
59412
60739
  // package.json
59413
- var version = "2.0.14";
60740
+ var version = "2.1.1";
60741
+ var devDependencies = {
60742
+ "@babel/parser": "^7.21.3",
60743
+ "@babel/types": "^7.21.4",
60744
+ "@clack/prompts": "^0.6.3",
60745
+ "@cloudflare/eslint-config-worker": "*",
60746
+ "@cloudflare/workers-tsconfig": "*",
60747
+ "@cloudflare/workers-types": "^4.20230419.0",
60748
+ "@types/command-exists": "^1.2.0",
60749
+ "@types/cross-spawn": "^6.0.2",
60750
+ "@types/dns2": "^2.0.3",
60751
+ "@types/esprima": "^4.0.3",
60752
+ "@types/node": "^18.15.3",
60753
+ "@types/which-pm-runs": "^1.0.0",
60754
+ "@types/yargs": "^17.0.22",
60755
+ "@typescript-eslint/eslint-plugin": "^5.55.0",
60756
+ "@typescript-eslint/parser": "^5.55.0",
60757
+ chalk: "^5.2.0",
60758
+ "command-exists": "^1.2.9",
60759
+ "cross-spawn": "^7.0.3",
60760
+ dns2: "^2.1.0",
60761
+ esbuild: "^0.17.12",
60762
+ execa: "^7.1.1",
60763
+ haikunator: "^2.1.2",
60764
+ "log-update": "^5.0.1",
60765
+ open: "^8.4.0",
60766
+ pnpm: "^8.6.11",
60767
+ recast: "^0.22.0",
60768
+ semver: "^7.5.1",
60769
+ typescript: "^5.0.2",
60770
+ undici: "5.20.0",
60771
+ "vite-tsconfig-paths": "^4.0.8",
60772
+ vitest: "^0.30.0",
60773
+ "which-pm-runs": "^1.1.0",
60774
+ wrangler: "*",
60775
+ yargs: "^17.7.1",
60776
+ yarn: "^1.22.19"
60777
+ };
59414
60778
 
59415
60779
  // src/common.ts
59416
60780
  var import_fs6 = require("fs");
@@ -59426,7 +60790,19 @@ var import_cross_spawn = __toESM(require_cross_spawn());
59426
60790
  var import_semver = __toESM(require_semver2());
59427
60791
  var import_which_pm_runs = __toESM(require_which_pm_runs());
59428
60792
  var detectPackageManager = () => {
59429
- const { name, version: version2 } = (0, import_which_pm_runs.default)() ?? { name: "npm", version: "0.0.0" };
60793
+ let { name, version: version2 } = (0, import_which_pm_runs.default)() ?? { name: "npm", version: "0.0.0" };
60794
+ if (process.env.TEST_PM) {
60795
+ switch (process.env.TEST_PM) {
60796
+ case "pnpm":
60797
+ name = "pnpm";
60798
+ version2 = devDependencies["pnpm"].replace("^", "");
60799
+ break;
60800
+ case "yarn":
60801
+ name = "yarn";
60802
+ version2 = devDependencies["yarn"].replace("^", "");
60803
+ break;
60804
+ }
60805
+ }
59430
60806
  switch (name) {
59431
60807
  case "pnpm":
59432
60808
  if (import_semver.default.gt(version2, "6.0.0")) {
@@ -59607,6 +60983,20 @@ var npmInstall = async () => {
59607
60983
  doneText: `${brandColor("installed")} ${dim(`via \`${npm12} install\``)}`
59608
60984
  });
59609
60985
  };
60986
+ var resetPackageManager = async (ctx) => {
60987
+ const { npm: npm12 } = detectPackageManager();
60988
+ if (npm12 === "npm")
60989
+ return;
60990
+ const nodeModulesPath = import_path5.default.join(ctx.project.path, "node_modules");
60991
+ (0, import_fs5.rmSync)(nodeModulesPath, { recursive: true });
60992
+ const lockfilePath = import_path5.default.join(ctx.project.path, "package-lock.json");
60993
+ (0, import_fs5.rmSync)(lockfilePath);
60994
+ await runCommand(`${npm12} install`, {
60995
+ silent: true,
60996
+ startText: "Installing dependencies",
60997
+ doneText: `${brandColor("installed")} ${dim(`via \`${npm12} install\``)}`
60998
+ });
60999
+ };
59610
61000
  var installWrangler = async () => {
59611
61001
  const { npm: npm12 } = detectPackageManager();
59612
61002
  if ((0, import_fs5.existsSync)(import_path5.default.resolve("node_modules", "wrangler"))) {
@@ -59684,7 +61074,7 @@ async function getWorkerdCompatibilityDate() {
59684
61074
  }
59685
61075
 
59686
61076
  // src/helpers/poll.ts
59687
- var import_promises = require("node:dns/promises");
61077
+ var import_dns2 = __toESM(require_dns2());
59688
61078
  var import_undici = __toESM(require_undici());
59689
61079
  var TIMEOUT = 1e3 * 60 * 5;
59690
61080
  var POLL_INTERVAL = 1e3;
@@ -59693,14 +61083,28 @@ var poll = async (url) => {
59693
61083
  const domain = new URL(url).host;
59694
61084
  const s = spinner();
59695
61085
  s.start("Waiting for DNS to propagate");
61086
+ await sleep(10 * 1e3);
61087
+ await pollDns(domain, start, s);
61088
+ if (await pollHttp(url, start, s))
61089
+ return true;
61090
+ s.stop(
61091
+ `${brandColor(
61092
+ "timed out"
61093
+ )} while waiting for ${url} - try accessing it in a few minutes.`
61094
+ );
61095
+ return false;
61096
+ };
61097
+ var pollDns = async (domain, start, s) => {
59696
61098
  while (Date.now() - start < TIMEOUT) {
59697
61099
  s.update(`Waiting for DNS to propagate (${secondsSince(start)}s)`);
59698
- if (await dnsLookup(domain)) {
61100
+ if (await isDomainResolvable(domain)) {
59699
61101
  s.stop(`${brandColor("DNS propagation")} ${dim("complete")}.`);
59700
- break;
61102
+ return;
59701
61103
  }
59702
61104
  await sleep(POLL_INTERVAL);
59703
61105
  }
61106
+ };
61107
+ var pollHttp = async (url, start, s) => {
59704
61108
  s.start("Waiting for deployment to become available");
59705
61109
  while (Date.now() - start < TIMEOUT) {
59706
61110
  s.update(
@@ -59724,27 +61128,31 @@ var poll = async (url) => {
59724
61128
  }
59725
61129
  await sleep(POLL_INTERVAL);
59726
61130
  }
59727
- s.stop(
59728
- `${brandColor(
59729
- "timed out"
59730
- )} while waiting for ${url} - try accessing it in a few minutes.`
59731
- );
59732
- return false;
59733
61131
  };
59734
- async function dnsLookup(domain) {
61132
+ var isDomainResolvable = async (domain) => {
59735
61133
  try {
59736
- const resolver = new import_promises.Resolver({ timeout: TIMEOUT, tries: 1 });
59737
- resolver.setServers([
59738
- "1.1.1.1",
59739
- "1.0.0.1",
59740
- "2606:4700:4700::1111",
59741
- "2606:4700:4700::1001"
59742
- ]);
59743
- return (await resolver.resolve4(domain)).length > 0;
59744
- } catch (e) {
61134
+ const nameServers = await lookupSubdomainNameservers(domain);
61135
+ if (nameServers.length === 0)
61136
+ return false;
61137
+ const dns = new import_dns2.default({ nameServers });
61138
+ const res = await dns.resolve(domain, "A");
61139
+ return res.answers.length > 0;
61140
+ } catch (error) {
59745
61141
  return false;
59746
61142
  }
59747
- }
61143
+ };
61144
+ var lookupSubdomainNameservers = async (domain) => {
61145
+ const nameServers = await lookupDomainLevelNameservers(domain);
61146
+ const dns = new import_dns2.default({ nameServers });
61147
+ const res = await dns.resolve(domain, "NS");
61148
+ return res.authorities.filter((r2) => Boolean(r2.ns)).map((r2) => r2.ns);
61149
+ };
61150
+ var lookupDomainLevelNameservers = async (domain) => {
61151
+ const baseDomain = domain.split(".").slice(-2).join(".");
61152
+ const dns = new import_dns2.default({});
61153
+ const nameservers = await dns.resolve(baseDomain, "NS");
61154
+ return nameservers.answers.map((n) => n.ns);
61155
+ };
59748
61156
  async function sleep(ms) {
59749
61157
  return new Promise((res) => setTimeout(res, ms));
59750
61158
  }
@@ -59801,7 +61209,7 @@ var runDeploy = async (ctx) => {
59801
61209
  const result = await runCommand(deployCmd, {
59802
61210
  silent: true,
59803
61211
  cwd: ctx.project.path,
59804
- env: { CLOUDFLARE_ACCOUNT_ID: ctx.account.id },
61212
+ env: { CLOUDFLARE_ACCOUNT_ID: ctx.account.id, NODE_ENV: "production" },
59805
61213
  startText: `Deploying your application`,
59806
61214
  doneText: `${brandColor("deployed")} ${dim(`via \`${deployCmd}\``)}`
59807
61215
  });
@@ -59861,7 +61269,7 @@ var printSummary = async (ctx) => {
59861
61269
  ],
59862
61270
  [
59863
61271
  `Read the documentation`,
59864
- `https://developers.cloudflare.com/${ctx.framework ? "pages" : "workers"}`
61272
+ `https://developers.cloudflare.com/${ctx.framework ? ctx.framework.config.type === "workers" ? "workers" : "pages" : "workers"}`
59865
61273
  ],
59866
61274
  [`Stuck? Join us at`, `https://discord.gg/cloudflaredev`]
59867
61275
  ];
@@ -59898,6 +61306,7 @@ var printSummary = async (ctx) => {
59898
61306
  }
59899
61307
  }
59900
61308
  endSection("See you again soon!");
61309
+ process.exit(0);
59901
61310
  };
59902
61311
  var offerGit = async (ctx) => {
59903
61312
  const gitInstalled = await isGitInstalled();
@@ -60001,7 +61410,7 @@ var import_path8 = require("path");
60001
61410
  var import_process3 = require("process");
60002
61411
 
60003
61412
  // src/frameworks/angular/index.ts
60004
- var import_promises2 = require("node:fs/promises");
61413
+ var import_promises = require("node:fs/promises");
60005
61414
  var import_node_path = require("node:path");
60006
61415
 
60007
61416
  // src/helpers/files.ts
@@ -60024,6 +61433,9 @@ var readJSON = (path3) => {
60024
61433
  const contents = readFile(path3);
60025
61434
  return contents ? JSON.parse(contents) : contents;
60026
61435
  };
61436
+ var writeJSON = (path3, object, stringifySpace) => {
61437
+ writeFile2(path3, JSON.stringify(object, null, stringifySpace));
61438
+ };
60027
61439
  var probePaths = (paths, errorMsg = "Failed to find required file.") => {
60028
61440
  for (const path3 of paths) {
60029
61441
  if ((0, import_fs7.existsSync)(path3)) {
@@ -60036,6 +61448,35 @@ var probePaths = (paths, errorMsg = "Failed to find required file.") => {
60036
61448
  var usesTypescript = (projectRoot = ".") => {
60037
61449
  return (0, import_fs7.existsSync)(`${projectRoot}/tsconfig.json`);
60038
61450
  };
61451
+ var eslintRcExts = ["js", "cjs", "yaml", "yml", "json"];
61452
+ var usesEslint = (ctx) => {
61453
+ for (const ext of eslintRcExts) {
61454
+ const eslintRcFilename = `.eslintrc.${ext}`;
61455
+ if ((0, import_fs7.existsSync)(`${ctx.project.path}/${eslintRcFilename}`)) {
61456
+ return {
61457
+ used: true,
61458
+ configType: eslintRcFilename
61459
+ };
61460
+ }
61461
+ }
61462
+ if ((0, import_fs7.existsSync)(`${ctx.project.path}/eslint.config.js`)) {
61463
+ return {
61464
+ used: true,
61465
+ configType: "eslint.config.js"
61466
+ };
61467
+ }
61468
+ try {
61469
+ const pkgJson = readJSON(`${ctx.project.path}/package.json`);
61470
+ if (pkgJson.eslintConfig) {
61471
+ return {
61472
+ used: true,
61473
+ configType: "package.json"
61474
+ };
61475
+ }
61476
+ } catch {
61477
+ }
61478
+ return { used: false };
61479
+ };
60039
61480
  var compatDateFlag = () => {
60040
61481
  const date = /* @__PURE__ */ new Date();
60041
61482
  return `--compatibility-date=${date.toISOString().slice(0, 10)}`;
@@ -60079,7 +61520,7 @@ var angular_default = config;
60079
61520
  async function installCFWorker(ctx) {
60080
61521
  const s = spinner();
60081
61522
  s.start(`Adding Cloudflare Pages adapter code`);
60082
- await (0, import_promises2.cp)(
61523
+ await (0, import_promises.cp)(
60083
61524
  // eslint-disable-next-line no-restricted-globals
60084
61525
  (0, import_node_path.resolve)(__dirname, "./angular/templates"),
60085
61526
  (0, import_node_path.resolve)(ctx.project.path),
@@ -60121,7 +61562,7 @@ async function updateAppCode() {
60121
61562
  "providers: [provideHttpClient(withFetch()), provideClientHydration(), "
60122
61563
  );
60123
61564
  writeFile2((0, import_node_path.resolve)(appConfigPath), newAppConfig);
60124
- await (0, import_promises2.rm)((0, import_node_path.resolve)("server.ts"));
61565
+ await (0, import_promises.rm)((0, import_node_path.resolve)("server.ts"));
60125
61566
  s.stop(`${brandColor(`updated`)} ${dim(appConfigPath)}`);
60126
61567
  }
60127
61568
  function updateAngularJson(ctx) {
@@ -60240,7 +61681,7 @@ var generate5 = async (ctx) => {
60240
61681
  const version2 = getFrameworkVersion(ctx);
60241
61682
  await runFrameworkGenerator(
60242
61683
  ctx,
60243
- `${dlx5} create-hono@${version2} ${ctx.project.name} --template cloudflare-pages`
61684
+ `${dlx5} create-hono@${version2} ${ctx.project.name} --template cloudflare-workers`
60244
61685
  );
60245
61686
  logRaw("");
60246
61687
  };
@@ -60249,7 +61690,8 @@ var config5 = {
60249
61690
  displayName: "Hono",
60250
61691
  packageScripts: {},
60251
61692
  deployCommand: "deploy",
60252
- devCommand: "dev"
61693
+ devCommand: "dev",
61694
+ type: "workers"
60253
61695
  };
60254
61696
  var hono_default = config5;
60255
61697
 
@@ -60341,20 +61783,56 @@ var configure3 = async (ctx) => {
60341
61783
  );
60342
61784
  writeFile2(handlerPath, handlerFile);
60343
61785
  updateStatus("Created an example API route handler");
61786
+ const installEslintPlugin = await shouldInstallNextOnPagesEslintPlugin(ctx);
61787
+ if (installEslintPlugin) {
61788
+ await writeEslintrc(ctx);
61789
+ }
60344
61790
  process.chdir(projectName);
60345
- const packages = ["@cloudflare/next-on-pages@1", "vercel"];
61791
+ const packages = [
61792
+ "@cloudflare/next-on-pages@1",
61793
+ "vercel",
61794
+ ...installEslintPlugin ? ["eslint-plugin-next-on-pages"] : []
61795
+ ];
60346
61796
  await installPackages(packages, {
60347
61797
  dev: true,
60348
61798
  startText: "Adding the Cloudflare Pages adapter",
60349
61799
  doneText: `${brandColor(`installed`)} ${dim(packages.join(", "))}`
60350
61800
  });
60351
61801
  };
61802
+ var shouldInstallNextOnPagesEslintPlugin = async (ctx) => {
61803
+ const eslintUsage = usesEslint(ctx);
61804
+ if (!eslintUsage.used)
61805
+ return false;
61806
+ if (eslintUsage.configType !== ".eslintrc.json") {
61807
+ warn(
61808
+ `Expected .eslintrc.json from Next.js scaffolding but found ${eslintUsage.configType} instead`
61809
+ );
61810
+ return false;
61811
+ }
61812
+ return await processArgument(ctx.args, "eslint-plugin", {
61813
+ type: "confirm",
61814
+ question: "Do you want to use the next-on-pages eslint-plugin?",
61815
+ label: "eslint-plugin",
61816
+ defaultValue: true
61817
+ });
61818
+ };
61819
+ var writeEslintrc = async (ctx) => {
61820
+ const eslintConfig = readJSON(`${ctx.project.name}/.eslintrc.json`);
61821
+ eslintConfig.plugins ??= [];
61822
+ eslintConfig.plugins.push("eslint-plugin-next-on-pages");
61823
+ if (typeof eslintConfig.extends === "string") {
61824
+ eslintConfig.extends = [eslintConfig.extends];
61825
+ }
61826
+ eslintConfig.extends ??= [];
61827
+ eslintConfig.extends.push("plugin:eslint-plugin-next-on-pages/recommended");
61828
+ writeJSON(`${ctx.project.name}/.eslintrc.json`, eslintConfig, 2);
61829
+ };
60352
61830
  var config6 = {
60353
61831
  generate: generate6,
60354
61832
  configure: configure3,
60355
61833
  displayName: "Next",
60356
61834
  packageScripts: {
60357
- "pages:build": `${npx3} @cloudflare/next-on-pages@1`,
61835
+ "pages:build": `${dlx6} @cloudflare/next-on-pages@1`,
60358
61836
  "pages:deploy": `${npm5} run pages:build && wrangler pages deploy .vercel/output/static`,
60359
61837
  "pages:watch": `${npx3} @cloudflare/next-on-pages@1 --watch`,
60360
61838
  "pages:dev": `${npx3} wrangler pages dev .vercel/output/static --compatibility-flag=nodejs_compat`
@@ -60367,7 +61845,7 @@ var config6 = {
60367
61845
  "--src-dir",
60368
61846
  "--app",
60369
61847
  "--import-alias",
60370
- '"@/*"'
61848
+ "@/*"
60371
61849
  ],
60372
61850
  compatibilityFlags: ["nodejs_compat"]
60373
61851
  };
@@ -60437,8 +61915,12 @@ var generate9 = async (ctx) => {
60437
61915
  );
60438
61916
  logRaw("");
60439
61917
  };
61918
+ var configure6 = async (ctx) => {
61919
+ await resetPackageManager(ctx);
61920
+ };
60440
61921
  var config9 = {
60441
61922
  generate: generate9,
61923
+ configure: configure6,
60442
61924
  displayName: "React",
60443
61925
  packageScripts: {
60444
61926
  "pages:dev": `wrangler pages dev ${compatDateFlag()} --port 3000 -- ${npm7} start`,
@@ -60491,7 +61973,7 @@ var generate11 = async (ctx) => {
60491
61973
  await runFrameworkGenerator(ctx, `${dlx11} create-solid@${version2}`);
60492
61974
  logRaw("");
60493
61975
  };
60494
- var configure6 = async () => {
61976
+ var configure7 = async () => {
60495
61977
  const pkg = "solid-start-cloudflare-pages";
60496
61978
  await installPackages([pkg], {
60497
61979
  dev: true,
@@ -60506,7 +61988,7 @@ var configure6 = async () => {
60506
61988
  };
60507
61989
  var config11 = {
60508
61990
  generate: generate11,
60509
- configure: configure6,
61991
+ configure: configure7,
60510
61992
  displayName: "Solid",
60511
61993
  packageScripts: {
60512
61994
  "pages:dev": `wrangler pages dev ${compatDateFlag()} --proxy 3000 -- ${npm9} run dev`,
@@ -60571,7 +62053,7 @@ var generate12 = async (ctx) => {
60571
62053
  );
60572
62054
  logRaw("");
60573
62055
  };
60574
- var configure7 = async (ctx) => {
62056
+ var configure8 = async (ctx) => {
60575
62057
  process.chdir(ctx.project.path);
60576
62058
  await npmInstall();
60577
62059
  const pkg = `@sveltejs/adapter-cloudflare`;
@@ -60606,7 +62088,7 @@ var configure7 = async (ctx) => {
60606
62088
  };
60607
62089
  var config12 = {
60608
62090
  generate: generate12,
60609
- configure: configure7,
62091
+ configure: configure8,
60610
62092
  displayName: "Svelte",
60611
62093
  packageScripts: {
60612
62094
  "pages:dev": `wrangler pages dev ${compatDateFlag()} --proxy 5173 -- ${npm10} run dev`,
@@ -60624,7 +62106,7 @@ var versionMap_default = {
60624
62106
  hono: "0.2.6",
60625
62107
  next: "13.4.2",
60626
62108
  nuxt: "3.4.2",
60627
- qwik: "1.1.x",
62109
+ qwik: "1.2.7",
60628
62110
  react: "5.0.1",
60629
62111
  remix: "1.16.0",
60630
62112
  solid: "0.2.26",
@@ -60704,11 +62186,11 @@ var runPagesGenerator = async (args) => {
60704
62186
  },
60705
62187
  args
60706
62188
  };
60707
- const { generate: generate14, configure: configure8 } = FrameworkMap[framework];
62189
+ const { generate: generate14, configure: configure9 } = FrameworkMap[framework];
60708
62190
  await generate14({ ...ctx });
60709
62191
  startSection("Configuring your application for Cloudflare", "Step 2 of 3");
60710
- if (configure8) {
60711
- await configure8({ ...ctx });
62192
+ if (configure9) {
62193
+ await configure9({ ...ctx });
60712
62194
  }
60713
62195
  await updatePackageScripts(ctx);
60714
62196
  await offerGit(ctx);
@@ -60776,6 +62258,8 @@ var updatePackageScripts = async (ctx) => {
60776
62258
  var createProject = async (ctx) => {
60777
62259
  if (ctx.args.deploy === false)
60778
62260
  return;
62261
+ if (ctx.framework?.config.type === "workers")
62262
+ return;
60779
62263
  if (!ctx.account?.id) {
60780
62264
  crash("Failed to read Cloudflare account.");
60781
62265
  return;
@@ -60789,7 +62273,9 @@ var createProject = async (ctx) => {
60789
62273
  await retry(
60790
62274
  CREATE_PROJECT_RETRIES,
60791
62275
  async () => runCommand(cmd, {
60792
- silent: true,
62276
+ // Make this command more verbose in test mode to aid
62277
+ // troubleshooting API errors
62278
+ silent: process.env.VITEST == void 0,
60793
62279
  cwd: ctx.project.path,
60794
62280
  env: { CLOUDFLARE_ACCOUNT_ID },
60795
62281
  startText: "Creating Pages project",
@@ -60797,12 +62283,12 @@ var createProject = async (ctx) => {
60797
62283
  })
60798
62284
  );
60799
62285
  } catch (error) {
60800
- crash("Failed to create pages application. See output above.");
62286
+ crash("Failed to create pages project. See output above.");
60801
62287
  }
60802
62288
  };
60803
62289
 
60804
62290
  // src/workers.ts
60805
- var import_promises3 = require("fs/promises");
62291
+ var import_promises2 = require("fs/promises");
60806
62292
  var import_os = require("os");
60807
62293
  var import_path9 = require("path");
60808
62294
  var import_process4 = require("process");
@@ -60849,7 +62335,7 @@ async function copyFiles(ctx) {
60849
62335
  const { template, path: srcdir } = await getTemplate(ctx);
60850
62336
  const destdir = ctx.project.path;
60851
62337
  updateStatus(`Copying files from "${template}" template`);
60852
- await (0, import_promises3.cp)(srcdir, destdir, { recursive: true });
62338
+ await (0, import_promises2.cp)(srcdir, destdir, { recursive: true });
60853
62339
  }
60854
62340
  async function copyExistingWorkerFiles(ctx) {
60855
62341
  const { preexisting } = await getTemplate(ctx);
@@ -60867,7 +62353,7 @@ async function copyExistingWorkerFiles(ctx) {
60867
62353
  }
60868
62354
  );
60869
62355
  }
60870
- const tempdir = await (0, import_promises3.mkdtemp)(
62356
+ const tempdir = await (0, import_promises2.mkdtemp)(
60871
62357
  (0, import_path9.join)((0, import_os.tmpdir)(), "c3-wrangler-init--from-dash-")
60872
62358
  );
60873
62359
  await runCommand(
@@ -60883,15 +62369,15 @@ async function copyExistingWorkerFiles(ctx) {
60883
62369
  )}`
60884
62370
  }
60885
62371
  );
60886
- for (const filename of await (0, import_promises3.readdir)((0, import_path9.join)(ctx.project.path, "src"))) {
60887
- await (0, import_promises3.rm)((0, import_path9.join)(ctx.project.path, "src", filename));
62372
+ for (const filename of await (0, import_promises2.readdir)((0, import_path9.join)(ctx.project.path, "src"))) {
62373
+ await (0, import_promises2.rm)((0, import_path9.join)(ctx.project.path, "src", filename));
60888
62374
  }
60889
- await (0, import_promises3.cp)(
62375
+ await (0, import_promises2.cp)(
60890
62376
  (0, import_path9.join)(tempdir, ctx.args.existingScript, "src"),
60891
62377
  (0, import_path9.join)(ctx.project.path, "src"),
60892
62378
  { recursive: true }
60893
62379
  );
60894
- await (0, import_promises3.cp)(
62380
+ await (0, import_promises2.cp)(
60895
62381
  (0, import_path9.join)(tempdir, ctx.args.existingScript, "wrangler.toml"),
60896
62382
  (0, import_path9.join)(ctx.project.path, "wrangler.toml")
60897
62383
  );
@@ -60903,8 +62389,8 @@ async function updateFiles(ctx) {
60903
62389
  wranglertoml: (0, import_path9.resolve)(ctx.project.path, "wrangler.toml")
60904
62390
  };
60905
62391
  const contents = {
60906
- packagejson: JSON.parse(await (0, import_promises3.readFile)(paths.packagejson, "utf-8")),
60907
- wranglertoml: await (0, import_promises3.readFile)(paths.wranglertoml, "utf-8")
62392
+ packagejson: JSON.parse(await (0, import_promises2.readFile)(paths.packagejson, "utf-8")),
62393
+ wranglertoml: await (0, import_promises2.readFile)(paths.wranglertoml, "utf-8")
60908
62394
  };
60909
62395
  if (contents.packagejson.name === "<TBD>") {
60910
62396
  contents.packagejson.name = ctx.project.name;
@@ -60913,11 +62399,11 @@ async function updateFiles(ctx) {
60913
62399
  /^compatibility_date\s*=\s*"<TBD>"/m,
60914
62400
  `compatibility_date = "${await getWorkerdCompatibilityDate()}"`
60915
62401
  );
60916
- await (0, import_promises3.writeFile)(
62402
+ await (0, import_promises2.writeFile)(
60917
62403
  paths.packagejson,
60918
62404
  JSON.stringify(contents.packagejson, null, 2)
60919
62405
  );
60920
- await (0, import_promises3.writeFile)(paths.wranglertoml, contents.wranglertoml);
62406
+ await (0, import_promises2.writeFile)(paths.wranglertoml, contents.wranglertoml);
60921
62407
  }
60922
62408
 
60923
62409
  // src/cli.ts