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.
|
|
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
|
-
|
|
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
|
|
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
|
|
61100
|
+
if (await isDomainResolvable(domain)) {
|
|
59699
61101
|
s.stop(`${brandColor("DNS propagation")} ${dim("complete")}.`);
|
|
59700
|
-
|
|
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
|
|
61132
|
+
var isDomainResolvable = async (domain) => {
|
|
59735
61133
|
try {
|
|
59736
|
-
const
|
|
59737
|
-
|
|
59738
|
-
|
|
59739
|
-
|
|
59740
|
-
|
|
59741
|
-
|
|
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
|
|
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,
|
|
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,
|
|
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-
|
|
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 = [
|
|
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": `${
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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.
|
|
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:
|
|
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 (
|
|
60711
|
-
await
|
|
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
|
-
|
|
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
|
|
62286
|
+
crash("Failed to create pages project. See output above.");
|
|
60801
62287
|
}
|
|
60802
62288
|
};
|
|
60803
62289
|
|
|
60804
62290
|
// src/workers.ts
|
|
60805
|
-
var
|
|
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,
|
|
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,
|
|
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,
|
|
60887
|
-
await (0,
|
|
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,
|
|
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,
|
|
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,
|
|
60907
|
-
wranglertoml: await (0,
|
|
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,
|
|
62402
|
+
await (0, import_promises2.writeFile)(
|
|
60917
62403
|
paths.packagejson,
|
|
60918
62404
|
JSON.stringify(contents.packagejson, null, 2)
|
|
60919
62405
|
);
|
|
60920
|
-
await (0,
|
|
62406
|
+
await (0, import_promises2.writeFile)(paths.wranglertoml, contents.wranglertoml);
|
|
60921
62407
|
}
|
|
60922
62408
|
|
|
60923
62409
|
// src/cli.ts
|