xasdd6 1.0.3 → 1.0.4
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/package.json +1 -1
- package/xasdd6.es.js +211 -213
- package/xasdd6.umd.cjs +2 -2
package/package.json
CHANGED
package/xasdd6.es.js
CHANGED
|
@@ -474,29 +474,29 @@ var E = T({
|
|
|
474
474
|
encodingLength(e) {
|
|
475
475
|
return E.encodingLength(e) + 2;
|
|
476
476
|
}
|
|
477
|
-
}),
|
|
477
|
+
}), j = T({
|
|
478
478
|
encode(e, t, n) {
|
|
479
|
-
t ||= new Uint8Array(
|
|
479
|
+
t ||= new Uint8Array(j.encodingLength(e)), n ||= 0;
|
|
480
480
|
let r = n;
|
|
481
|
-
return n += 2, E.encode(e.mname, t, n), n += E.encode.bytes, E.encode(e.rname, t, n), n += E.encode.bytes, S(t, e.serial || 0, n), n += 4, S(t, e.refresh || 0, n), n += 4, S(t, e.retry || 0, n), n += 4, S(t, e.expire || 0, n), n += 4, S(t, e.minimum || 0, n), n += 4, C(t, n - r - 2, r),
|
|
481
|
+
return n += 2, E.encode(e.mname, t, n), n += E.encode.bytes, E.encode(e.rname, t, n), n += E.encode.bytes, S(t, e.serial || 0, n), n += 4, S(t, e.refresh || 0, n), n += 4, S(t, e.retry || 0, n), n += 4, S(t, e.expire || 0, n), n += 4, S(t, e.minimum || 0, n), n += 4, C(t, n - r - 2, r), j.encode.bytes = n - r, t;
|
|
482
482
|
},
|
|
483
483
|
decode(e, t) {
|
|
484
484
|
t ||= 0;
|
|
485
485
|
let n = t, r = {};
|
|
486
|
-
return t += 2, r.mname = E.decode(e, t), t += E.decode.bytes, r.rname = E.decode(e, t), t += E.decode.bytes, r.serial = b(e, t), t += 4, r.refresh = b(e, t), t += 4, r.retry = b(e, t), t += 4, r.expire = b(e, t), t += 4, r.minimum = b(e, t), t += 4,
|
|
486
|
+
return t += 2, r.mname = E.decode(e, t), t += E.decode.bytes, r.rname = E.decode(e, t), t += E.decode.bytes, r.serial = b(e, t), t += 4, r.refresh = b(e, t), t += 4, r.retry = b(e, t), t += 4, r.expire = b(e, t), t += 4, r.minimum = b(e, t), t += 4, j.decode.bytes = t - n, r;
|
|
487
487
|
},
|
|
488
488
|
encodingLength(e) {
|
|
489
489
|
return 22 + E.encodingLength(e.mname) + E.encodingLength(e.rname);
|
|
490
490
|
}
|
|
491
|
-
}),
|
|
491
|
+
}), M = T({
|
|
492
492
|
encode(e, t, n) {
|
|
493
493
|
Array.isArray(e) || (e = [e]);
|
|
494
494
|
for (let t = 0; t < e.length; t++) if (typeof e[t] == "string" && (e[t] = oe(e[t])), !v(e[t])) throw Error("Must be a Buffer");
|
|
495
|
-
t ||= new Uint8Array(
|
|
495
|
+
t ||= new Uint8Array(M.encodingLength(e)), n ||= 0;
|
|
496
496
|
let r = n;
|
|
497
497
|
return n += 2, e.forEach(function(e) {
|
|
498
498
|
t[n++] = e.length, w(e, t, n, 0, e.length), n += e.length;
|
|
499
|
-
}), C(t, n - r - 2, r),
|
|
499
|
+
}), C(t, n - r - 2, r), M.encode.bytes = n - r, t;
|
|
500
500
|
},
|
|
501
501
|
decode(e, t) {
|
|
502
502
|
t ||= 0;
|
|
@@ -508,7 +508,7 @@ var E = T({
|
|
|
508
508
|
if (--r, r < n) throw Error("Buffer overflow");
|
|
509
509
|
i.push(e.slice(t, t + n)), t += n, r -= n;
|
|
510
510
|
}
|
|
511
|
-
return
|
|
511
|
+
return M.decode.bytes = t - n, i;
|
|
512
512
|
},
|
|
513
513
|
encodingLength(e) {
|
|
514
514
|
Array.isArray(e) || (e = [e]);
|
|
@@ -517,122 +517,122 @@ var E = T({
|
|
|
517
517
|
t += typeof e == "string" ? y(e) + 1 : e.length + 1;
|
|
518
518
|
}), t;
|
|
519
519
|
}
|
|
520
|
-
}),
|
|
520
|
+
}), N = T({
|
|
521
521
|
encode(e, t, n) {
|
|
522
|
-
t ||= new Uint8Array(
|
|
522
|
+
t ||= new Uint8Array(N.encodingLength(e)), n ||= 0, typeof e == "string" && (e = oe(e)), e ||= /* @__PURE__ */ new Uint8Array();
|
|
523
523
|
let r = n;
|
|
524
524
|
n += 2;
|
|
525
525
|
let i = e.length;
|
|
526
|
-
return w(e, t, n, 0, i), n += i, C(t, n - r - 2, r),
|
|
526
|
+
return w(e, t, n, 0, i), n += i, C(t, n - r - 2, r), N.encode.bytes = n - r, t;
|
|
527
527
|
},
|
|
528
528
|
decode(e, t) {
|
|
529
529
|
t ||= 0;
|
|
530
530
|
let n = t, r = x(e, t);
|
|
531
531
|
t += 2;
|
|
532
532
|
let i = e.slice(t, t + r);
|
|
533
|
-
return t += r,
|
|
533
|
+
return t += r, N.decode.bytes = t - n, i;
|
|
534
534
|
},
|
|
535
535
|
encodingLength(e) {
|
|
536
536
|
return e ? (v(e) ? e.length : y(e)) + 2 : 2;
|
|
537
537
|
}
|
|
538
|
-
}),
|
|
538
|
+
}), P = T({
|
|
539
539
|
encode(e, t, n) {
|
|
540
|
-
t ||= new Uint8Array(
|
|
540
|
+
t ||= new Uint8Array(P.encodingLength(e)), n ||= 0;
|
|
541
541
|
let r = n;
|
|
542
|
-
return n += 2, D.encode(e.cpu, t, n), n += D.encode.bytes, D.encode(e.os, t, n), n += D.encode.bytes, C(t, n - r - 2, r),
|
|
542
|
+
return n += 2, D.encode(e.cpu, t, n), n += D.encode.bytes, D.encode(e.os, t, n), n += D.encode.bytes, C(t, n - r - 2, r), P.encode.bytes = n - r, t;
|
|
543
543
|
},
|
|
544
544
|
decode(e, t) {
|
|
545
545
|
t ||= 0;
|
|
546
546
|
let n = t, r = {};
|
|
547
|
-
return t += 2, r.cpu = D.decode(e, t), t += D.decode.bytes, r.os = D.decode(e, t), t += D.decode.bytes,
|
|
547
|
+
return t += 2, r.cpu = D.decode(e, t), t += D.decode.bytes, r.os = D.decode(e, t), t += D.decode.bytes, P.decode.bytes = t - n, r;
|
|
548
548
|
},
|
|
549
549
|
encodingLength(e) {
|
|
550
550
|
return D.encodingLength(e.cpu) + D.encodingLength(e.os) + 2;
|
|
551
551
|
}
|
|
552
|
-
}),
|
|
552
|
+
}), F = T({
|
|
553
553
|
encode(e, t, n) {
|
|
554
|
-
return t ||= new Uint8Array(
|
|
554
|
+
return t ||= new Uint8Array(F.encodingLength(e)), n ||= 0, E.encode(e, t, n + 2), C(t, E.encode.bytes, n), F.encode.bytes = E.encode.bytes + 2, t;
|
|
555
555
|
},
|
|
556
556
|
decode(e, t) {
|
|
557
557
|
t ||= 0;
|
|
558
558
|
let n = E.decode(e, t + 2);
|
|
559
|
-
return
|
|
559
|
+
return F.decode.bytes = E.decode.bytes + 2, n;
|
|
560
560
|
},
|
|
561
561
|
encodingLength(e) {
|
|
562
562
|
return E.encodingLength(e) + 2;
|
|
563
563
|
}
|
|
564
|
-
}),
|
|
564
|
+
}), I = T({
|
|
565
565
|
encode(e, t, n) {
|
|
566
|
-
t ||= new Uint8Array(
|
|
566
|
+
t ||= new Uint8Array(I.encodingLength(e)), n ||= 0, C(t, e.priority || 0, n + 2), C(t, e.weight || 0, n + 4), C(t, e.port || 0, n + 6), E.encode(e.target, t, n + 8);
|
|
567
567
|
let r = E.encode.bytes + 6;
|
|
568
|
-
return C(t, r, n),
|
|
568
|
+
return C(t, r, n), I.encode.bytes = r + 2, t;
|
|
569
569
|
},
|
|
570
570
|
decode(e, t) {
|
|
571
571
|
t ||= 0;
|
|
572
572
|
let n = x(e, t), r = {};
|
|
573
|
-
return r.priority = x(e, t + 2), r.weight = x(e, t + 4), r.port = x(e, t + 6), r.target = E.decode(e, t + 8),
|
|
573
|
+
return r.priority = x(e, t + 2), r.weight = x(e, t + 4), r.port = x(e, t + 6), r.target = E.decode(e, t + 8), I.decode.bytes = n + 2, r;
|
|
574
574
|
},
|
|
575
575
|
encodingLength(e) {
|
|
576
576
|
return 8 + E.encodingLength(e.target);
|
|
577
577
|
}
|
|
578
|
-
}),
|
|
578
|
+
}), L = T({
|
|
579
579
|
encode(e, t, n) {
|
|
580
|
-
let r =
|
|
581
|
-
return t ||= new Uint8Array(
|
|
580
|
+
let r = L.encodingLength(e);
|
|
581
|
+
return t ||= new Uint8Array(L.encodingLength(e)), n ||= 0, e.issuerCritical && (e.flags = L.ISSUER_CRITICAL), C(t, r - 2, n), n += 2, t[n] = e.flags || 0, n += 1, D.encode(e.tag, t, n), n += D.encode.bytes, se(t, e.value, n), n += y(e.value), L.encode.bytes = r, t;
|
|
582
582
|
},
|
|
583
583
|
decode(e, t) {
|
|
584
584
|
t ||= 0;
|
|
585
585
|
let n = x(e, t);
|
|
586
586
|
t += 2;
|
|
587
587
|
let r = t, i = {};
|
|
588
|
-
return i.flags = e[t], t += 1, i.tag = D.decode(e, t), t += D.decode.bytes, i.value = _(e, t, r + n), i.issuerCritical = !!(i.flags &
|
|
588
|
+
return i.flags = e[t], t += 1, i.tag = D.decode(e, t), t += D.decode.bytes, i.value = _(e, t, r + n), i.issuerCritical = !!(i.flags & L.ISSUER_CRITICAL), L.decode.bytes = n + 2, i;
|
|
589
589
|
},
|
|
590
590
|
encodingLength(e) {
|
|
591
591
|
return D.encodingLength(e.tag) + D.encodingLength(e.value) + 2;
|
|
592
592
|
}
|
|
593
593
|
});
|
|
594
|
-
|
|
595
|
-
var
|
|
594
|
+
L.ISSUER_CRITICAL = 128;
|
|
595
|
+
var ve = T({
|
|
596
596
|
encode(e, t, n) {
|
|
597
|
-
t ||= new Uint8Array(
|
|
597
|
+
t ||= new Uint8Array(ve.encodingLength(e)), n ||= 0;
|
|
598
598
|
let r = n;
|
|
599
|
-
return n += 2, C(t, e.preference || 0, n), n += 2, E.encode(e.exchange, t, n), n += E.encode.bytes, C(t, n - r - 2, r),
|
|
599
|
+
return n += 2, C(t, e.preference || 0, n), n += 2, E.encode(e.exchange, t, n), n += E.encode.bytes, C(t, n - r - 2, r), ve.encode.bytes = n - r, t;
|
|
600
600
|
},
|
|
601
601
|
decode(e, t) {
|
|
602
602
|
t ||= 0;
|
|
603
603
|
let n = t, r = {};
|
|
604
|
-
return t += 2, r.preference = x(e, t), t += 2, r.exchange = E.decode(e, t), t += E.decode.bytes,
|
|
604
|
+
return t += 2, r.preference = x(e, t), t += 2, r.exchange = E.decode(e, t), t += E.decode.bytes, ve.decode.bytes = t - n, r;
|
|
605
605
|
},
|
|
606
606
|
encodingLength(e) {
|
|
607
607
|
return 4 + E.encodingLength(e.exchange);
|
|
608
608
|
}
|
|
609
|
-
}),
|
|
609
|
+
}), ye = T({
|
|
610
610
|
encode(e, t, n) {
|
|
611
|
-
return t ||= new Uint8Array(
|
|
611
|
+
return t ||= new Uint8Array(ye.encodingLength(e)), n ||= 0, C(t, 4, n), n += 2, a.encode(e, t, n), t;
|
|
612
612
|
},
|
|
613
613
|
decode(e, t) {
|
|
614
614
|
return t ||= 0, t += 2, a.decode(e, t);
|
|
615
615
|
},
|
|
616
616
|
bytes: 6
|
|
617
|
-
}),
|
|
617
|
+
}), be = T({
|
|
618
618
|
encode(e, t, n) {
|
|
619
|
-
return t ||= new Uint8Array(
|
|
619
|
+
return t ||= new Uint8Array(be.encodingLength(e)), n ||= 0, C(t, 16, n), n += 2, o.encode(e, t, n), be.encode.bytes = 18, t;
|
|
620
620
|
},
|
|
621
621
|
decode(e, t) {
|
|
622
622
|
t ||= 0, t += 2;
|
|
623
623
|
let n = o.decode(e, t);
|
|
624
|
-
return
|
|
624
|
+
return be.decode.bytes = 18, n;
|
|
625
625
|
},
|
|
626
626
|
bytes: 18
|
|
627
|
-
}),
|
|
627
|
+
}), xe = (e) => new Uint8Array(e), R = T({
|
|
628
628
|
encode(e, t, n) {
|
|
629
|
-
t ||= new Uint8Array(
|
|
629
|
+
t ||= new Uint8Array(R.encodingLength(e)), n ||= 0;
|
|
630
630
|
let r = n, i = re(e.code);
|
|
631
631
|
if (C(t, i, n), n += 2, e.data) C(t, e.data.length, n), n += 2, w(e.data, t, n), n += e.data.length;
|
|
632
632
|
else switch (i) {
|
|
633
633
|
case 8:
|
|
634
634
|
{
|
|
635
|
-
let r = e.sourcePrefixLength || 0, i = e.family || c(e.ip,
|
|
635
|
+
let r = e.sourcePrefixLength || 0, i = e.family || c(e.ip, xe), a = l(e.ip, xe), o = Math.ceil(r / 8);
|
|
636
636
|
C(t, o + 4, n), n += 2, C(t, i, n), n += 2, t[n++] = r, t[n++] = e.scopePrefixLength || 0, w(a, t, n, 0, o), n += o;
|
|
637
637
|
}
|
|
638
638
|
break;
|
|
@@ -654,7 +654,7 @@ var F = T({
|
|
|
654
654
|
break;
|
|
655
655
|
default: throw Error(`Unknown roption code: ${e.code}`);
|
|
656
656
|
}
|
|
657
|
-
return
|
|
657
|
+
return R.encode.bytes = n - r, t;
|
|
658
658
|
},
|
|
659
659
|
decode(e, t) {
|
|
660
660
|
t ||= 0;
|
|
@@ -676,7 +676,7 @@ var F = T({
|
|
|
676
676
|
n.tags = [];
|
|
677
677
|
for (let i = 0; i < r; i += 2) n.tags.push(x(e, t)), t += 2;
|
|
678
678
|
}
|
|
679
|
-
return
|
|
679
|
+
return R.decode.bytes = r + 4, n;
|
|
680
680
|
},
|
|
681
681
|
encodingLength(e) {
|
|
682
682
|
if (e.data) return e.data.length + 4;
|
|
@@ -691,73 +691,73 @@ var F = T({
|
|
|
691
691
|
}
|
|
692
692
|
throw Error(`Unknown roption code: ${e.code}`);
|
|
693
693
|
}
|
|
694
|
-
}),
|
|
694
|
+
}), z = T({
|
|
695
695
|
encode(e, t, n) {
|
|
696
|
-
t ||= new Uint8Array(
|
|
697
|
-
let r = n, i = X(e,
|
|
698
|
-
return C(t, i, n), n = Z(e,
|
|
696
|
+
t ||= new Uint8Array(z.encodingLength(e)), n ||= 0;
|
|
697
|
+
let r = n, i = X(e, R);
|
|
698
|
+
return C(t, i, n), n = Z(e, R, t, n + 2), z.encode.bytes = n - r, t;
|
|
699
699
|
},
|
|
700
700
|
decode(e, t) {
|
|
701
701
|
t ||= 0;
|
|
702
702
|
let n = t, r = [], i = x(e, t);
|
|
703
703
|
t += 2;
|
|
704
704
|
let a = 0;
|
|
705
|
-
for (; i > 0;) r[a++] =
|
|
706
|
-
return
|
|
705
|
+
for (; i > 0;) r[a++] = R.decode(e, t), t += R.decode.bytes, i -= R.decode.bytes;
|
|
706
|
+
return z.decode.bytes = t - n, r;
|
|
707
707
|
},
|
|
708
708
|
encodingLength(e) {
|
|
709
|
-
return 2 + X(e || [],
|
|
709
|
+
return 2 + X(e || [], R);
|
|
710
710
|
}
|
|
711
|
-
}),
|
|
711
|
+
}), B = T({
|
|
712
712
|
encode(e, t, n) {
|
|
713
|
-
t ||= new Uint8Array(
|
|
713
|
+
t ||= new Uint8Array(B.encodingLength(e)), n ||= 0;
|
|
714
714
|
let r = n, i = e.key;
|
|
715
715
|
if (!v(i)) throw Error("Key must be a Buffer");
|
|
716
|
-
return n += 2, C(t, e.flags, n), n += 2, t[n] =
|
|
716
|
+
return n += 2, C(t, e.flags, n), n += 2, t[n] = B.PROTOCOL_DNSSEC, n += 1, t[n] = e.algorithm, n += 1, w(i, t, n, 0, i.length), n += i.length, B.encode.bytes = n - r, C(t, B.encode.bytes - 2, r), t;
|
|
717
717
|
},
|
|
718
718
|
decode(e, t) {
|
|
719
719
|
t ||= 0;
|
|
720
720
|
let n = t, r = {}, i = x(e, t);
|
|
721
|
-
if (t += 2, r.flags = x(e, t), t += 2, e[t] !==
|
|
722
|
-
return t += 1, r.algorithm = e[t], t += 1, r.key = e.slice(t, n + i + 2), t += r.key.length,
|
|
721
|
+
if (t += 2, r.flags = x(e, t), t += 2, e[t] !== B.PROTOCOL_DNSSEC) throw Error("Protocol must be 3");
|
|
722
|
+
return t += 1, r.algorithm = e[t], t += 1, r.key = e.slice(t, n + i + 2), t += r.key.length, B.decode.bytes = t - n, r;
|
|
723
723
|
},
|
|
724
724
|
encodingLength(e) {
|
|
725
725
|
return 6 + y(e.key);
|
|
726
726
|
}
|
|
727
727
|
});
|
|
728
|
-
|
|
729
|
-
var
|
|
728
|
+
B.PROTOCOL_DNSSEC = 3, B.ZONE_KEY = 128, B.SECURE_ENTRYPOINT = 32768;
|
|
729
|
+
var V = T({
|
|
730
730
|
encode(e, t, n) {
|
|
731
|
-
t ||= new Uint8Array(
|
|
731
|
+
t ||= new Uint8Array(V.encodingLength(e)), n ||= 0;
|
|
732
732
|
let r = n, i = e.signature;
|
|
733
733
|
if (!v(i)) throw Error("Signature must be a Buffer");
|
|
734
|
-
return n += 2, C(t, f(e.typeCovered), n), n += 2, t[n] = e.algorithm, n += 1, t[n] = e.labels, n += 1, S(t, e.originalTTL, n), n += 4, S(t, e.expiration, n), n += 4, S(t, e.inception, n), n += 4, C(t, e.keyTag, n), n += 2, E.encode(e.signersName, t, n), n += E.encode.bytes, w(i, t, n, 0, i.length), n += i.length,
|
|
734
|
+
return n += 2, C(t, f(e.typeCovered), n), n += 2, t[n] = e.algorithm, n += 1, t[n] = e.labels, n += 1, S(t, e.originalTTL, n), n += 4, S(t, e.expiration, n), n += 4, S(t, e.inception, n), n += 4, C(t, e.keyTag, n), n += 2, E.encode(e.signersName, t, n), n += E.encode.bytes, w(i, t, n, 0, i.length), n += i.length, V.encode.bytes = n - r, C(t, V.encode.bytes - 2, r), t;
|
|
735
735
|
},
|
|
736
736
|
decode(e, t) {
|
|
737
737
|
t ||= 0;
|
|
738
738
|
let n = t, r = {}, i = x(e, t);
|
|
739
|
-
return t += 2, r.typeCovered = d(x(e, t)), t += 2, r.algorithm = e[t], t += 1, r.labels = e[t], t += 1, r.originalTTL = b(e, t), t += 4, r.expiration = b(e, t), t += 4, r.inception = b(e, t), t += 4, r.keyTag = x(e, t), t += 2, r.signersName = E.decode(e, t), t += E.decode.bytes, r.signature = e.slice(t, n + i + 2), t += r.signature.length,
|
|
739
|
+
return t += 2, r.typeCovered = d(x(e, t)), t += 2, r.algorithm = e[t], t += 1, r.labels = e[t], t += 1, r.originalTTL = b(e, t), t += 4, r.expiration = b(e, t), t += 4, r.inception = b(e, t), t += 4, r.keyTag = x(e, t), t += 2, r.signersName = E.decode(e, t), t += E.decode.bytes, r.signature = e.slice(t, n + i + 2), t += r.signature.length, V.decode.bytes = t - n, r;
|
|
740
740
|
},
|
|
741
741
|
encodingLength(e) {
|
|
742
742
|
return 20 + E.encodingLength(e.signersName) + y(e.signature);
|
|
743
743
|
}
|
|
744
|
-
}),
|
|
744
|
+
}), H = T({
|
|
745
745
|
encode(e, t, n) {
|
|
746
|
-
t ||= new Uint8Array(
|
|
746
|
+
t ||= new Uint8Array(H.encodingLength(e)), n ||= 0;
|
|
747
747
|
let r = n;
|
|
748
|
-
return n += 2, E.encode(e.mbox || ".", t, n), n += E.encode.bytes, E.encode(e.txt || ".", t, n), n += E.encode.bytes,
|
|
748
|
+
return n += 2, E.encode(e.mbox || ".", t, n), n += E.encode.bytes, E.encode(e.txt || ".", t, n), n += E.encode.bytes, H.encode.bytes = n - r, C(t, H.encode.bytes - 2, r), t;
|
|
749
749
|
},
|
|
750
750
|
decode(e, t) {
|
|
751
751
|
t ||= 0;
|
|
752
752
|
let n = t, r = {};
|
|
753
|
-
return t += 2, r.mbox = E.decode(e, t) || ".", t += E.decode.bytes, r.txt = E.decode(e, t) || ".", t += E.decode.bytes,
|
|
753
|
+
return t += 2, r.mbox = E.decode(e, t) || ".", t += E.decode.bytes, r.txt = E.decode(e, t) || ".", t += E.decode.bytes, H.decode.bytes = t - n, r;
|
|
754
754
|
},
|
|
755
755
|
encodingLength(e) {
|
|
756
756
|
return 2 + E.encodingLength(e.mbox || ".") + E.encodingLength(e.txt || ".");
|
|
757
757
|
}
|
|
758
|
-
}),
|
|
758
|
+
}), U = T({
|
|
759
759
|
encode(e, t, n) {
|
|
760
|
-
t ||= new Uint8Array(
|
|
760
|
+
t ||= new Uint8Array(U.encodingLength(e)), n ||= 0;
|
|
761
761
|
let r = n, i = [];
|
|
762
762
|
for (let t = 0; t < e.length; t++) {
|
|
763
763
|
let n = f(e[t]);
|
|
@@ -767,7 +767,7 @@ var B = T({
|
|
|
767
767
|
let r = oe(i[e]);
|
|
768
768
|
t[n] = e, n += 1, t[n] = r.length, n += 1, w(r, t, n, 0, r.length), n += r.length;
|
|
769
769
|
}
|
|
770
|
-
return
|
|
770
|
+
return U.encode.bytes = n - r, t;
|
|
771
771
|
},
|
|
772
772
|
decode(e, t, n) {
|
|
773
773
|
t ||= 0;
|
|
@@ -786,7 +786,7 @@ var B = T({
|
|
|
786
786
|
}
|
|
787
787
|
t += r;
|
|
788
788
|
}
|
|
789
|
-
return
|
|
789
|
+
return U.decode.bytes = t - r, i;
|
|
790
790
|
},
|
|
791
791
|
encodingLength(e) {
|
|
792
792
|
let t = [];
|
|
@@ -798,28 +798,28 @@ var B = T({
|
|
|
798
798
|
for (let e = 0; e < t.length; e++) t[e] !== void 0 && (n += 2 + Math.ceil((t[e] + 1) / 8));
|
|
799
799
|
return n;
|
|
800
800
|
}
|
|
801
|
-
}),
|
|
801
|
+
}), W = T({
|
|
802
802
|
encode(e, t, n) {
|
|
803
|
-
t ||= new Uint8Array(
|
|
803
|
+
t ||= new Uint8Array(W.encodingLength(e)), n ||= 0;
|
|
804
804
|
let r = n;
|
|
805
|
-
return n += 2, E.encode(e.nextDomain, t, n), n += E.encode.bytes,
|
|
805
|
+
return n += 2, E.encode(e.nextDomain, t, n), n += E.encode.bytes, U.encode(e.rrtypes, t, n), n += U.encode.bytes, W.encode.bytes = n - r, C(t, W.encode.bytes - 2, r), t;
|
|
806
806
|
},
|
|
807
807
|
decode(e, t) {
|
|
808
808
|
t ||= 0;
|
|
809
809
|
let n = t, r = {}, i = x(e, t);
|
|
810
|
-
return t += 2, r.nextDomain = E.decode(e, t), t += E.decode.bytes, r.rrtypes =
|
|
810
|
+
return t += 2, r.nextDomain = E.decode(e, t), t += E.decode.bytes, r.rrtypes = U.decode(e, t, i - (t - n)), t += U.decode.bytes, W.decode.bytes = t - n, r;
|
|
811
811
|
},
|
|
812
812
|
encodingLength(e) {
|
|
813
|
-
return 2 + E.encodingLength(e.nextDomain) +
|
|
813
|
+
return 2 + E.encodingLength(e.nextDomain) + U.encodingLength(e.rrtypes);
|
|
814
814
|
}
|
|
815
|
-
}),
|
|
815
|
+
}), G = T({
|
|
816
816
|
encode(e, t, n) {
|
|
817
|
-
t ||= new Uint8Array(
|
|
817
|
+
t ||= new Uint8Array(G.encodingLength(e)), n ||= 0;
|
|
818
818
|
let r = n, i = e.salt;
|
|
819
819
|
if (!v(i)) throw Error("salt must be a Buffer");
|
|
820
820
|
let a = e.nextDomain;
|
|
821
821
|
if (!v(a)) throw Error("nextDomain must be a Buffer");
|
|
822
|
-
return n += 2, t[n] = e.algorithm, n += 1, t[n] = e.flags, n += 1, C(t, e.iterations, n), n += 2, t[n] = i.length, n += 1, w(i, t, n, 0, i.length), n += i.length, t[n] = a.length, n += 1, w(a, t, n, 0, a.length), n += a.length,
|
|
822
|
+
return n += 2, t[n] = e.algorithm, n += 1, t[n] = e.flags, n += 1, C(t, e.iterations, n), n += 2, t[n] = i.length, n += 1, w(i, t, n, 0, i.length), n += i.length, t[n] = a.length, n += 1, w(a, t, n, 0, a.length), n += a.length, U.encode(e.rrtypes, t, n), n += U.encode.bytes, G.encode.bytes = n - r, C(t, G.encode.bytes - 2, r), t;
|
|
823
823
|
},
|
|
824
824
|
decode(e, t) {
|
|
825
825
|
t ||= 0;
|
|
@@ -828,146 +828,148 @@ var B = T({
|
|
|
828
828
|
let a = e[t];
|
|
829
829
|
t += 1, r.salt = e.slice(t, t + a), t += a;
|
|
830
830
|
let o = e[t];
|
|
831
|
-
return t += 1, r.nextDomain = e.slice(t, t + o), t += o, r.rrtypes =
|
|
831
|
+
return t += 1, r.nextDomain = e.slice(t, t + o), t += o, r.rrtypes = U.decode(e, t, i - (t - n)), t += U.decode.bytes, G.decode.bytes = t - n, r;
|
|
832
832
|
},
|
|
833
833
|
encodingLength(e) {
|
|
834
|
-
return 8 + e.salt.length + e.nextDomain.length +
|
|
834
|
+
return 8 + e.salt.length + e.nextDomain.length + U.encodingLength(e.rrtypes);
|
|
835
835
|
}
|
|
836
|
-
}),
|
|
836
|
+
}), K = T({
|
|
837
837
|
encode(e, t, n) {
|
|
838
|
-
t ||= new Uint8Array(
|
|
838
|
+
t ||= new Uint8Array(K.encodingLength(e)), n ||= 0;
|
|
839
839
|
let r = n, i = e.digest;
|
|
840
840
|
if (!v(i)) throw Error("Digest must be a Buffer");
|
|
841
|
-
return n += 2, C(t, e.keyTag, n), n += 2, t[n] = e.algorithm, n += 1, t[n] = e.digestType, n += 1, w(i, t, n, 0, i.length), n += i.length,
|
|
841
|
+
return n += 2, C(t, e.keyTag, n), n += 2, t[n] = e.algorithm, n += 1, t[n] = e.digestType, n += 1, w(i, t, n, 0, i.length), n += i.length, K.encode.bytes = n - r, C(t, K.encode.bytes - 2, r), t;
|
|
842
842
|
},
|
|
843
843
|
decode(e, t) {
|
|
844
844
|
t ||= 0;
|
|
845
845
|
let n = t, r = {}, i = x(e, t);
|
|
846
|
-
return t += 2, r.keyTag = x(e, t), t += 2, r.algorithm = e[t], t += 1, r.digestType = e[t], t += 1, r.digest = e.slice(t, n + i + 2), t += r.digest.length,
|
|
846
|
+
return t += 2, r.keyTag = x(e, t), t += 2, r.algorithm = e[t], t += 1, r.digestType = e[t], t += 1, r.digest = e.slice(t, n + i + 2), t += r.digest.length, K.decode.bytes = t - n, r;
|
|
847
847
|
},
|
|
848
848
|
encodingLength(e) {
|
|
849
849
|
return 6 + y(e.digest);
|
|
850
850
|
}
|
|
851
851
|
});
|
|
852
|
-
function
|
|
852
|
+
function Se(e) {
|
|
853
853
|
switch (e.toUpperCase()) {
|
|
854
|
-
case "A": return
|
|
855
|
-
case "PTR": return
|
|
856
|
-
case "CNAME": return
|
|
857
|
-
case "DNAME": return
|
|
858
|
-
case "TXT": return
|
|
859
|
-
case "NULL": return
|
|
860
|
-
case "AAAA": return
|
|
861
|
-
case "SRV": return
|
|
862
|
-
case "HINFO": return
|
|
863
|
-
case "CAA": return
|
|
854
|
+
case "A": return ye;
|
|
855
|
+
case "PTR": return F;
|
|
856
|
+
case "CNAME": return F;
|
|
857
|
+
case "DNAME": return F;
|
|
858
|
+
case "TXT": return M;
|
|
859
|
+
case "NULL": return N;
|
|
860
|
+
case "AAAA": return be;
|
|
861
|
+
case "SRV": return I;
|
|
862
|
+
case "HINFO": return P;
|
|
863
|
+
case "CAA": return L;
|
|
864
864
|
case "NS": return A;
|
|
865
|
-
case "SOA": return
|
|
866
|
-
case "MX": return
|
|
867
|
-
case "OPT": return
|
|
868
|
-
case "DNSKEY": return
|
|
869
|
-
case "RRSIG": return
|
|
870
|
-
case "RP": return
|
|
871
|
-
case "NSEC": return
|
|
872
|
-
case "NSEC3": return
|
|
873
|
-
case "DS": return
|
|
865
|
+
case "SOA": return j;
|
|
866
|
+
case "MX": return ve;
|
|
867
|
+
case "OPT": return z;
|
|
868
|
+
case "DNSKEY": return B;
|
|
869
|
+
case "RRSIG": return V;
|
|
870
|
+
case "RP": return H;
|
|
871
|
+
case "NSEC": return W;
|
|
872
|
+
case "NSEC3": return G;
|
|
873
|
+
case "DS": return K;
|
|
874
874
|
}
|
|
875
875
|
return k;
|
|
876
876
|
}
|
|
877
|
-
var
|
|
877
|
+
var q = T({
|
|
878
878
|
encode(e, t, n) {
|
|
879
|
-
t ||= new Uint8Array(
|
|
879
|
+
t ||= new Uint8Array(q.encodingLength(e)), n ||= 0;
|
|
880
880
|
let r = n;
|
|
881
881
|
if (E.encode(e.name, t, n), n += E.encode.bytes, C(t, f(e.type), n), e.type.toUpperCase() === "OPT") {
|
|
882
882
|
if (e.name !== ".") throw Error("OPT name must be root.");
|
|
883
|
-
C(t, e.udpPayloadSize || 4096, n + 2), t[n + 4] = e.extendedRcode || 0, t[n + 5] = e.ednsVersion || 0, C(t, e.flags || 0, n + 6), n += 8,
|
|
883
|
+
C(t, e.udpPayloadSize || 4096, n + 2), t[n + 4] = e.extendedRcode || 0, t[n + 5] = e.ednsVersion || 0, C(t, e.flags || 0, n + 6), n += 8, z.encode(e.options || [], t, n), n += z.encode.bytes;
|
|
884
884
|
} else {
|
|
885
885
|
let r = te(e.class === void 0 ? "IN" : e.class);
|
|
886
886
|
e.flush && (r |= me), C(t, r, n + 2), S(t, e.ttl || 0, n + 4), n += 8;
|
|
887
|
-
let i =
|
|
887
|
+
let i = Se(e.type);
|
|
888
888
|
i.encode(e.data, t, n), n += i.encode.bytes;
|
|
889
889
|
}
|
|
890
|
-
return
|
|
890
|
+
return q.encode.bytes = n - r, t;
|
|
891
891
|
},
|
|
892
892
|
decode(e, t) {
|
|
893
893
|
t ||= 0;
|
|
894
894
|
let n = {}, r = t;
|
|
895
|
-
if (n.name = E.decode(e, t), t += E.decode.bytes, n.type = d(x(e, t)), n.type === "OPT") n.udpPayloadSize = x(e, t + 2), n.extendedRcode = e[t + 4], n.ednsVersion = e[t + 5], n.flags = x(e, t + 6), n.flag_do = (n.flags >> 15 & 1) == 1, n.options =
|
|
895
|
+
if (n.name = E.decode(e, t), t += E.decode.bytes, n.type = d(x(e, t)), n.type === "OPT") n.udpPayloadSize = x(e, t + 2), n.extendedRcode = e[t + 4], n.ednsVersion = e[t + 5], n.flags = x(e, t + 6), n.flag_do = (n.flags >> 15 & 1) == 1, n.options = z.decode(e, t + 8), t += 8 + z.decode.bytes;
|
|
896
896
|
else {
|
|
897
897
|
let r = x(e, t + 2);
|
|
898
898
|
n.ttl = b(e, t + 4), n.class = m(r & he), n.flush = !!(r & me);
|
|
899
|
-
let i =
|
|
899
|
+
let i = Se(n.type);
|
|
900
900
|
n.data = i.decode(e, t + 8), t += 8 + i.decode.bytes;
|
|
901
901
|
}
|
|
902
|
-
return
|
|
902
|
+
return q.decode.bytes = t - r, n;
|
|
903
903
|
},
|
|
904
904
|
encodingLength(e) {
|
|
905
905
|
let t = e.data !== null && e.data !== void 0 ? e.data : e.options;
|
|
906
|
-
return E.encodingLength(e.name) + 8 +
|
|
906
|
+
return E.encodingLength(e.name) + 8 + Se(e.type).encodingLength(t);
|
|
907
907
|
}
|
|
908
|
-
}),
|
|
908
|
+
}), J = T({
|
|
909
909
|
encode(e, t, n) {
|
|
910
|
-
t ||= new Uint8Array(
|
|
910
|
+
t ||= new Uint8Array(J.encodingLength(e)), n ||= 0;
|
|
911
911
|
let r = n;
|
|
912
|
-
return E.encode(e.name, t, n), n += E.encode.bytes, C(t, f(e.type), n), n += 2, C(t, te(e.class === void 0 ? "IN" : e.class), n), n += 2,
|
|
912
|
+
return E.encode(e.name, t, n), n += E.encode.bytes, C(t, f(e.type), n), n += 2, C(t, te(e.class === void 0 ? "IN" : e.class), n), n += 2, J.encode.bytes = n - r, e;
|
|
913
913
|
},
|
|
914
914
|
decode(e, t) {
|
|
915
915
|
t ||= 0;
|
|
916
916
|
let n = t, r = {};
|
|
917
|
-
return r.name = E.decode(e, t), t += E.decode.bytes, r.type = d(x(e, t)), t += 2, r.class = m(x(e, t)), t += 2, r.class & ge && (r.class &= _e),
|
|
917
|
+
return r.name = E.decode(e, t), t += E.decode.bytes, r.type = d(x(e, t)), t += 2, r.class = m(x(e, t)), t += 2, r.class & ge && (r.class &= _e), J.decode.bytes = t - n, r;
|
|
918
918
|
},
|
|
919
919
|
encodingLength(e) {
|
|
920
920
|
return E.encodingLength(e.name) + 4;
|
|
921
921
|
}
|
|
922
|
-
}),
|
|
922
|
+
}), Y = {
|
|
923
923
|
encode: function(e, t, n) {
|
|
924
924
|
let r = !t;
|
|
925
|
-
r && (t = new Uint8Array(
|
|
925
|
+
r && (t = new Uint8Array(De(e))), n ||= 0;
|
|
926
926
|
let i = n;
|
|
927
|
-
return e.questions ||= [], e.answers ||= [], e.authorities ||= [], e.additionals ||= [], O.encode(e, t, n), n += O.encode.bytes, n = Z(e.questions,
|
|
927
|
+
return e.questions ||= [], e.answers ||= [], e.authorities ||= [], e.additionals ||= [], O.encode(e, t, n), n += O.encode.bytes, n = Z(e.questions, J, t, n), n = Z(e.answers, q, t, n), n = Z(e.authorities, q, t, n), n = Z(e.additionals, q, t, n), Y.encode.bytes = n - i, r && Ee.bytes !== t.length ? t.slice(0, Ee.bytes) : t;
|
|
928
928
|
},
|
|
929
929
|
decode: function(e, t) {
|
|
930
930
|
t ||= 0;
|
|
931
931
|
let n = t, r = O.decode(e, t);
|
|
932
|
-
return t += O.decode.bytes, t =
|
|
932
|
+
return t += O.decode.bytes, t = Oe(r.questions, J, e, t), t = Oe(r.answers, q, e, t), t = Oe(r.authorities, q, e, t), t = Oe(r.additionals, q, e, t), Y.decode.bytes = t - n, r;
|
|
933
933
|
},
|
|
934
934
|
encodingLength: function(e) {
|
|
935
|
-
return O.encodingLength(e) + X(e.questions || [],
|
|
935
|
+
return O.encodingLength(e) + X(e.questions || [], J) + X(e.answers || [], q) + X(e.authorities || [], q) + X(e.additionals || [], q);
|
|
936
936
|
}
|
|
937
937
|
};
|
|
938
|
-
|
|
939
|
-
function
|
|
938
|
+
Y.encode.bytes = 0, Y.decode.bytes = 0;
|
|
939
|
+
function Ce(e, t) {
|
|
940
940
|
if (e.questions) throw Error("Only one .question object expected instead of a .questions array!");
|
|
941
941
|
let n = Object.assign({ type: t }, e);
|
|
942
942
|
return n.question && (n.questions = [n.question], delete n.question), n;
|
|
943
943
|
}
|
|
944
944
|
var we = {
|
|
945
945
|
encode: function(e, t, n) {
|
|
946
|
-
return t =
|
|
946
|
+
return t = Y.encode(Ce(e, "query"), t, n), we.encode.bytes = Y.encode.bytes, t;
|
|
947
947
|
},
|
|
948
948
|
decode: function(e, t) {
|
|
949
|
-
let n =
|
|
950
|
-
return we.decode.bytes =
|
|
949
|
+
let n = Y.decode(e, t);
|
|
950
|
+
return we.decode.bytes = Y.decode.bytes, n.questions && (n.question = n.questions[0], delete n.questions), n;
|
|
951
951
|
},
|
|
952
952
|
encodingLength: function(e) {
|
|
953
|
-
return
|
|
953
|
+
return Y.encodingLength(Ce(e, "query"));
|
|
954
954
|
}
|
|
955
955
|
};
|
|
956
956
|
we.encode.bytes = 0, we.decode.bytes = 0;
|
|
957
957
|
var Te = {
|
|
958
958
|
encode: function(e, t, n) {
|
|
959
|
-
return t =
|
|
959
|
+
return t = Y.encode(Ce(e, "response"), t, n), Te.encode.bytes = Y.encode.bytes, t;
|
|
960
960
|
},
|
|
961
961
|
decode: function(e, t) {
|
|
962
|
-
let n =
|
|
963
|
-
return Te.decode.bytes =
|
|
962
|
+
let n = Y.decode(e, t);
|
|
963
|
+
return Te.decode.bytes = Y.decode.bytes, n.questions && (n.question = n.questions[0], delete n.questions), n;
|
|
964
964
|
},
|
|
965
965
|
encodingLength: function(e) {
|
|
966
|
-
return
|
|
966
|
+
return Y.encodingLength(Ce(e, "response"));
|
|
967
967
|
}
|
|
968
968
|
};
|
|
969
969
|
Te.encode.bytes = 0, Te.decode.bytes = 0;
|
|
970
|
-
var Ee =
|
|
970
|
+
var Ee = Y.encode;
|
|
971
|
+
Y.decode;
|
|
972
|
+
var De = Y.encodingLength;
|
|
971
973
|
function X(e, t) {
|
|
972
974
|
let n = 0;
|
|
973
975
|
for (let r = 0; r < e.length; r++) n += t.encodingLength(e[r]);
|
|
@@ -977,11 +979,11 @@ function Z(e, t, n, r) {
|
|
|
977
979
|
for (let i = 0; i < e.length; i++) t.encode(e[i], n, r), r += t.encode.bytes;
|
|
978
980
|
return r;
|
|
979
981
|
}
|
|
980
|
-
function
|
|
982
|
+
function Oe(e, t, n, r) {
|
|
981
983
|
for (let i = 0; i < e.length; i++) e[i] = t.decode(n, r), r += t.decode.bytes;
|
|
982
984
|
return r;
|
|
983
985
|
}
|
|
984
|
-
function
|
|
986
|
+
function ke(e, t, n, r) {
|
|
985
987
|
if (t.length !== 64) throw Error(`Charset needs to be 64 characters long! (${t.length})`);
|
|
986
988
|
let i = /* @__PURE__ */ new Uint8Array(256), a = /* @__PURE__ */ new Uint8Array(64);
|
|
987
989
|
for (let e = 0; e < 64; e += 1) {
|
|
@@ -1030,16 +1032,16 @@ function Ae(e, t, n, r) {
|
|
|
1030
1032
|
};
|
|
1031
1033
|
return s;
|
|
1032
1034
|
}
|
|
1033
|
-
|
|
1034
|
-
var
|
|
1035
|
+
ke("base64", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", "=", 1);
|
|
1036
|
+
var Ae = ke("base64-url", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", "=", 2), je = /* @__PURE__ */ e(((e, t) => {
|
|
1035
1037
|
t.exports = {};
|
|
1036
|
-
})),
|
|
1037
|
-
|
|
1038
|
+
})), Me = typeof global < "u" ? global.AbortError : typeof window < "u" ? window.AbortError : null;
|
|
1039
|
+
Me ||= class extends Error {
|
|
1038
1040
|
constructor(e = "Request aborted.") {
|
|
1039
1041
|
super(e);
|
|
1040
1042
|
}
|
|
1041
|
-
},
|
|
1042
|
-
var Ne = typeof globalThis < "u" && globalThis.URL ||
|
|
1043
|
+
}, Me.prototype.name = "AbortError", Me.prototype.code = "ABORT_ERR";
|
|
1044
|
+
var Ne = typeof globalThis < "u" && globalThis.URL || je().URL, Q = class extends Error {
|
|
1043
1045
|
constructor(e, t, n) {
|
|
1044
1046
|
super("status=" + t + " while requesting " + e + " [" + n + "]"), this.uri = e, this.status = t, this.method = n;
|
|
1045
1047
|
}
|
|
@@ -1053,7 +1055,7 @@ var Ne = typeof globalThis < "u" && globalThis.URL || Me().URL, $ = class extend
|
|
|
1053
1055
|
};
|
|
1054
1056
|
}
|
|
1055
1057
|
};
|
|
1056
|
-
|
|
1058
|
+
Q.prototype.name = "HTTPStatusError", Q.prototype.code = "HTTP_STATUS";
|
|
1057
1059
|
var Pe = class extends Error {
|
|
1058
1060
|
constructor(e, t) {
|
|
1059
1061
|
super(e), this.cause = t;
|
|
@@ -1227,16 +1229,13 @@ function Qe(e) {
|
|
|
1227
1229
|
//#region node_modules/dns-query/lib.browser.mjs
|
|
1228
1230
|
var $e = "application/dns-message";
|
|
1229
1231
|
function et() {}
|
|
1230
|
-
function tt() {
|
|
1231
|
-
throw Error("Only \"doh\" endpoints are supported in the browser");
|
|
1232
|
-
}
|
|
1233
|
-
async function nt(e, t, n, r) {
|
|
1232
|
+
async function tt(e, t, n, r) {
|
|
1234
1233
|
let i = t ? t.localStoragePrefix + t.name : null;
|
|
1235
1234
|
if (i) try {
|
|
1236
1235
|
let e = JSON.parse(localStorage.getItem(i));
|
|
1237
1236
|
if (e && e.time > t.maxTime) return e;
|
|
1238
1237
|
} catch {}
|
|
1239
|
-
let { data: a } = await
|
|
1238
|
+
let { data: a } = await nt(e, "GET", null, n, r), o = {
|
|
1240
1239
|
time: Date.now(),
|
|
1241
1240
|
data: JSON.parse(_(a))
|
|
1242
1241
|
};
|
|
@@ -1247,10 +1246,10 @@ async function nt(e, t, n, r) {
|
|
|
1247
1246
|
}
|
|
1248
1247
|
return o;
|
|
1249
1248
|
}
|
|
1250
|
-
function
|
|
1249
|
+
function nt(e, t, n, r, i) {
|
|
1251
1250
|
return new Promise((a, o) => {
|
|
1252
1251
|
let s = new Ne(e);
|
|
1253
|
-
t === "GET" && n && (s.search = "?dns=" +
|
|
1252
|
+
t === "GET" && n && (s.search = "?dns=" + Ae.decode(n));
|
|
1254
1253
|
let c = s.toString(), l = new XMLHttpRequest();
|
|
1255
1254
|
l.open(t, c, !0), l.setRequestHeader("Accept", $e), t === "POST" && l.setRequestHeader("Content-Type", $e), l.responseType = "arraybuffer", l.timeout = r, l.ontimeout = u, l.onreadystatechange = f, l.onerror = ee, l.onload = d, t === "POST" ? l.send(n) : l.send(), i && i.addEventListener("abort", m);
|
|
1256
1255
|
function u() {
|
|
@@ -1260,7 +1259,7 @@ function rt(e, t, n, r, i) {
|
|
|
1260
1259
|
} catch {}
|
|
1261
1260
|
}
|
|
1262
1261
|
function d() {
|
|
1263
|
-
if (l.status !== 200) p(new
|
|
1262
|
+
if (l.status !== 200) p(new Q(c, l.status, t));
|
|
1264
1263
|
else {
|
|
1265
1264
|
let e;
|
|
1266
1265
|
if (typeof l.response == "string") e = g(l.response);
|
|
@@ -1272,7 +1271,7 @@ function rt(e, t, n, r, i) {
|
|
|
1272
1271
|
}
|
|
1273
1272
|
function f() {
|
|
1274
1273
|
if (l.readyState > 1 && l.status !== 200 && l.status !== 0) {
|
|
1275
|
-
p(new
|
|
1274
|
+
p(new Q(c, l.status, t));
|
|
1276
1275
|
try {
|
|
1277
1276
|
l.abort();
|
|
1278
1277
|
} catch {}
|
|
@@ -1288,25 +1287,22 @@ function rt(e, t, n, r, i) {
|
|
|
1288
1287
|
});
|
|
1289
1288
|
};
|
|
1290
1289
|
function ee() {
|
|
1291
|
-
p(l.status === 200 ? /* @__PURE__ */ Error("Inexplicable XHR Error") : new
|
|
1290
|
+
p(l.status === 200 ? /* @__PURE__ */ Error("Inexplicable XHR Error") : new Q(c, l.status, t));
|
|
1292
1291
|
}
|
|
1293
1292
|
function m() {
|
|
1294
|
-
p(new
|
|
1293
|
+
p(new Me());
|
|
1295
1294
|
try {
|
|
1296
1295
|
l.abort();
|
|
1297
1296
|
} catch {}
|
|
1298
1297
|
}
|
|
1299
1298
|
});
|
|
1300
1299
|
}
|
|
1301
|
-
function
|
|
1302
|
-
return rt(e, t, n, r, i);
|
|
1303
|
-
}
|
|
1304
|
-
function at(e) {
|
|
1300
|
+
function rt(e) {
|
|
1305
1301
|
return e.filter((e) => e.cors || e.endpoint.cors);
|
|
1306
1302
|
}
|
|
1307
1303
|
//#endregion
|
|
1308
1304
|
//#region node_modules/dns-query/resolvers.mjs
|
|
1309
|
-
var
|
|
1305
|
+
var it = {
|
|
1310
1306
|
data: [
|
|
1311
1307
|
{
|
|
1312
1308
|
name: "adfree.usableprivacy.net",
|
|
@@ -2506,8 +2502,8 @@ var ot = {
|
|
|
2506
2502
|
};
|
|
2507
2503
|
//#endregion
|
|
2508
2504
|
//#region node_modules/dns-query/index.mjs
|
|
2509
|
-
function
|
|
2510
|
-
let t = e.time === null || e.time === void 0 ? Date.now() : e.time, n =
|
|
2505
|
+
function at(e) {
|
|
2506
|
+
let t = e.time === null || e.time === void 0 ? Date.now() : e.time, n = rt(e.data.map((e) => (e.endpoint = Qe(Object.assign({ name: e.name }, e.endpoint)), e))), r = n.map((e) => e.endpoint);
|
|
2511
2507
|
return {
|
|
2512
2508
|
data: {
|
|
2513
2509
|
resolvers: n,
|
|
@@ -2518,31 +2514,8 @@ function st(e) {
|
|
|
2518
2514
|
time: t
|
|
2519
2515
|
};
|
|
2520
2516
|
}
|
|
2521
|
-
var
|
|
2522
|
-
function
|
|
2523
|
-
let t = Object.assign({ type: "query" }, e);
|
|
2524
|
-
return delete t.question, t.questions = [], e.question && t.questions.push(e.question), t;
|
|
2525
|
-
}
|
|
2526
|
-
function ut(e, t, n, r) {
|
|
2527
|
-
return r && r.aborted ? Promise.reject(new Q()) : e.protocol === "udp4:" || e.protocol === "udp6:" ? tt(e, t, n, r) : dt(e, t, n, r);
|
|
2528
|
-
}
|
|
2529
|
-
function dt(e, t, n, r) {
|
|
2530
|
-
return it(e.url, e.method, Ee(Object.assign({ flags: 256 }, t)), n, r).then(function(e) {
|
|
2531
|
-
let t = e.data, n = e.response, r = e.error;
|
|
2532
|
-
if (r === void 0) {
|
|
2533
|
-
if (t.length === 0) r = new Pe("Empty.");
|
|
2534
|
-
else try {
|
|
2535
|
-
let e = De(t);
|
|
2536
|
-
return e.response = n, e;
|
|
2537
|
-
} catch (e) {
|
|
2538
|
-
r = new Pe("Invalid packet (cause=" + e.message + ")", e);
|
|
2539
|
-
}
|
|
2540
|
-
}
|
|
2541
|
-
throw Object.assign(r, { response: n });
|
|
2542
|
-
});
|
|
2543
|
-
}
|
|
2544
|
-
var ft = new Ne("https://martinheidegger.github.io/dns-query/resolvers.json");
|
|
2545
|
-
function pt(e) {
|
|
2517
|
+
var ot = at(it), st = new Ne("https://martinheidegger.github.io/dns-query/resolvers.json");
|
|
2518
|
+
function ct(e) {
|
|
2546
2519
|
return /^@/.test(e);
|
|
2547
2520
|
}
|
|
2548
2521
|
new class {
|
|
@@ -2550,36 +2523,36 @@ new class {
|
|
|
2550
2523
|
this.opts = Object.assign({
|
|
2551
2524
|
timeout: 5e3,
|
|
2552
2525
|
update: !0,
|
|
2553
|
-
updateURL:
|
|
2526
|
+
updateURL: st,
|
|
2554
2527
|
persist: !1,
|
|
2555
2528
|
localStoragePrefix: "dnsquery_",
|
|
2556
2529
|
maxAge: 3e5
|
|
2557
2530
|
}, e), this._dataP = null;
|
|
2558
2531
|
}
|
|
2559
2532
|
_data(e, t) {
|
|
2560
|
-
return !e && this._dataP !== null ? this._dataP.then((e) => e.time < Date.now() - this.opts.maxAge ? this._data(!0, e) : e) : (this._dataP = this.opts.update ?
|
|
2533
|
+
return !e && this._dataP !== null ? this._dataP.then((e) => e.time < Date.now() - this.opts.maxAge ? this._data(!0, e) : e) : (this._dataP = this.opts.update ? tt(this.opts.updateURL, this.opts.persist ? {
|
|
2561
2534
|
name: "resolvers.json",
|
|
2562
2535
|
localStoragePrefix: this.opts.localStoragePrefix,
|
|
2563
2536
|
maxTime: Date.now() - this.opts.maxAge
|
|
2564
|
-
} : null, this.opts.timeout).then((e) =>
|
|
2537
|
+
} : null, this.opts.timeout).then((e) => at({
|
|
2565
2538
|
data: e.data.resolvers,
|
|
2566
2539
|
time: e.time
|
|
2567
|
-
})).catch(() => t ||
|
|
2540
|
+
})).catch(() => t || ot) : Promise.resolve(ot), this._dataP);
|
|
2568
2541
|
}
|
|
2569
2542
|
data() {
|
|
2570
2543
|
return this._data(!1).then((e) => e.data);
|
|
2571
2544
|
}
|
|
2572
2545
|
endpoints(e) {
|
|
2573
2546
|
if (e == null) return this.data().then((e) => e.endpoints);
|
|
2574
|
-
if (e === "doh" && (e =
|
|
2547
|
+
if (e === "doh" && (e = lt), e === "dns" && (e = ut), typeof e == "function") return this.data().then((t) => t.endpoints.filter(e));
|
|
2575
2548
|
if (typeof e == "string" || typeof e[Symbol.iterator] != "function") return Promise.reject(/* @__PURE__ */ Error(`Endpoints (${e}) needs to be iterable (array).`));
|
|
2576
|
-
if (e = Array.from(e).filter(Boolean), e.findIndex(
|
|
2549
|
+
if (e = Array.from(e).filter(Boolean), e.findIndex(ct) === -1) try {
|
|
2577
2550
|
return Promise.resolve(e.map(Qe));
|
|
2578
2551
|
} catch (e) {
|
|
2579
2552
|
return Promise.reject(e);
|
|
2580
2553
|
}
|
|
2581
2554
|
return this.data().then((t) => e.map((e) => {
|
|
2582
|
-
if (
|
|
2555
|
+
if (ct(e)) {
|
|
2583
2556
|
let n = t.endpointByName[e.substring(1)];
|
|
2584
2557
|
if (!n) throw Error(`Endpoint ${e} is not known.`);
|
|
2585
2558
|
return n;
|
|
@@ -2588,36 +2561,61 @@ new class {
|
|
|
2588
2561
|
}));
|
|
2589
2562
|
}
|
|
2590
2563
|
}();
|
|
2591
|
-
function
|
|
2592
|
-
return
|
|
2564
|
+
function lt(e) {
|
|
2565
|
+
return e.protocol === "https:" || e.protocol === "http:";
|
|
2593
2566
|
}
|
|
2594
|
-
function
|
|
2595
|
-
return
|
|
2567
|
+
function ut(e) {
|
|
2568
|
+
return e.protocol === "udp4:" || e.protocol === "udp6:";
|
|
2596
2569
|
}
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2570
|
+
//#endregion
|
|
2571
|
+
//#region src/crypto.js
|
|
2572
|
+
var $ = {
|
|
2573
|
+
name: "AES-GCM",
|
|
2574
|
+
length: 256,
|
|
2575
|
+
tagLength: 128,
|
|
2576
|
+
ivLength: 12,
|
|
2577
|
+
key: "Hello, World!"
|
|
2578
|
+
}, dt = new TextEncoder(), ft = new TextDecoder(), pt;
|
|
2579
|
+
function mt() {
|
|
2580
|
+
return pt ||= crypto.subtle.digest("SHA-256", dt.encode($.key)).then((e) => crypto.subtle.importKey("raw", e, { name: $.name }, !1, ["encrypt", "decrypt"])), pt;
|
|
2605
2581
|
}
|
|
2606
|
-
function
|
|
2607
|
-
|
|
2608
|
-
return ut(r, t, n.timeout, n.signal).then((e) => (e.endpoint = r.toString(), e), (i) => {
|
|
2609
|
-
if (i.name === "AbortError" || n.retries === 0) throw i.endpoint = r.toString(), i;
|
|
2610
|
-
return n.retries > 0 && --n.retries, _t(e, t, n);
|
|
2611
|
-
});
|
|
2582
|
+
function ht(e) {
|
|
2583
|
+
return Array.from(e, (e) => e.toString(16).padStart(2, "0")).join("");
|
|
2612
2584
|
}
|
|
2613
|
-
function
|
|
2614
|
-
|
|
2585
|
+
function gt(e) {
|
|
2586
|
+
if (e.length % 2 != 0) throw Error("Invalid ciphertext");
|
|
2587
|
+
let t = new Uint8Array(e.length / 2);
|
|
2588
|
+
for (let n = 0; n < t.length; n++) {
|
|
2589
|
+
let r = Number.parseInt(e.slice(n * 2, n * 2 + 2), 16);
|
|
2590
|
+
if (Number.isNaN(r)) throw Error("Invalid ciphertext");
|
|
2591
|
+
t[n] = r;
|
|
2592
|
+
}
|
|
2593
|
+
return t;
|
|
2615
2594
|
}
|
|
2616
|
-
function
|
|
2617
|
-
|
|
2595
|
+
async function _t(e) {
|
|
2596
|
+
let t = crypto.getRandomValues(new Uint8Array($.ivLength)), n = await crypto.subtle.encrypt({
|
|
2597
|
+
name: $.name,
|
|
2598
|
+
iv: t,
|
|
2599
|
+
tagLength: $.tagLength
|
|
2600
|
+
}, await mt(), dt.encode(e)), r = new Uint8Array($.ivLength + n.byteLength);
|
|
2601
|
+
return r.set(t), r.set(new Uint8Array(n), $.ivLength), ht(r);
|
|
2602
|
+
}
|
|
2603
|
+
async function vt(e) {
|
|
2604
|
+
let t = gt(e);
|
|
2605
|
+
if (t.length <= $.ivLength) throw Error("Invalid ciphertext");
|
|
2606
|
+
let n = await crypto.subtle.decrypt({
|
|
2607
|
+
name: $.name,
|
|
2608
|
+
iv: t.slice(0, $.ivLength),
|
|
2609
|
+
tagLength: $.tagLength
|
|
2610
|
+
}, await mt(), t.slice($.ivLength));
|
|
2611
|
+
return ft.decode(n);
|
|
2618
2612
|
}
|
|
2619
2613
|
//#endregion
|
|
2620
2614
|
//#region src/index.js
|
|
2621
|
-
|
|
2615
|
+
(async () => {
|
|
2616
|
+
let e = await _t("Fizz Buzz");
|
|
2617
|
+
console.log("Encrypted:", e);
|
|
2618
|
+
let t = await vt(e);
|
|
2619
|
+
console.log("Decrypted:", t);
|
|
2620
|
+
})();
|
|
2622
2621
|
//#endregion
|
|
2623
|
-
export { gt as query };
|
package/xasdd6.umd.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.xasdd6={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),n=/^(\d{1,3}\.){3,3}\d{1,3}$/,r=4,i=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,a=16,o={name:`v4`,size:r,isFormat:e=>n.test(e),encode(e,t,n){n=~~n,t||=new Uint8Array(n+r);let i=e.length,a=0;for(let r=0;r<i;){let i=e.charCodeAt(r++);i===46?(t[n++]=a,a=0):a=a*10+(i-48)}return t[n]=a,t},decode(e,t){return t=~~t,`${e[t++]}.${e[t++]}.${e[t++]}.${e[t]}`}},s={name:`v6`,size:a,isFormat:e=>e.length>0&&i.test(e),encode(e,t,n){n=~~n;let r=n+a,i=-1,o=0,s=0,c=!0,l=!1;t||=new Uint8Array(n+a);for(let a=0;a<e.length;a++){let u=e.charCodeAt(a);u===58?(c?i===-1?n<r&&(i=n):(n<r&&(t[n]=0),n<r-1&&(t[n+1]=0),n+=2):(l===!0?(n<r&&(t[n]=s),n++):(n<r&&(t[n]=o>>8),n<r-1&&(t[n+1]=o&255),n+=2),o=0,s=0),c=!0,l=!1):u===46?(n<r&&(t[n]=s),n++,s=0,o=0,c=!1,l=!0):(c=!1,u>=97?u-=87:u>=65?u-=55:(u-=48,s=s*10+u),o=(o<<4)+u)}if(c===!1)l===!0?(n<r&&(t[n]=s),n++):(n<r&&(t[n]=o>>8),n<r-1&&(t[n+1]=o&255),n+=2);else if(i===0)n<r&&(t[n]=0),n<r-1&&(t[n+1]=0),n+=2;else if(i!==-1){n+=2;for(let e=Math.min(n-1,r-1);e>=i+2;e--)t[e]=t[e-2];t[i]=0,t[i+1]=0,i=n}if(i!==n&&i!==-1)for(n>r-2&&(n=r-2);r>i;)t[--r]=n<r&&n>i?t[--n]:0;else for(;n<r;)t[n++]=0;return t},decode(e,t){t=~~t;let n=``;for(let r=0;r<a;r+=2)r!==0&&(n+=`:`),n+=(e[t+r]<<8|e[t+r+1]).toString(16);return n.replace(/(^|:)0(:0)*:0(:|$)/,`$1::$3`).replace(/:{3,4}/,`::`)}};function c(e){if(o.isFormat(e))return o.size;if(s.isFormat(e))return s.size;throw Error(`Invalid ip address: ${e}`)}function l(e){return c(e)===o.size?1:2}function u(e,t,n){n=~~n;let r=c(e);return typeof t==`function`&&(t=t(n+r)),r===o.size?o.encode(e,t,n):s.encode(e,t,n)}function ee(e,t,n){if(t=~~t,n||=e.length-t,n===o.size)return o.decode(e,t,n);if(n===s.size)return s.decode(e,t,n);throw Error(`Invalid buffer size needs to be ${o.size} for v4 or ${s.size} for v6.`)}function d(e){switch(e){case 1:return`A`;case 10:return`NULL`;case 28:return`AAAA`;case 18:return`AFSDB`;case 42:return`APL`;case 257:return`CAA`;case 60:return`CDNSKEY`;case 59:return`CDS`;case 37:return`CERT`;case 5:return`CNAME`;case 49:return`DHCID`;case 32769:return`DLV`;case 39:return`DNAME`;case 48:return`DNSKEY`;case 43:return`DS`;case 55:return`HIP`;case 13:return`HINFO`;case 45:return`IPSECKEY`;case 25:return`KEY`;case 36:return`KX`;case 29:return`LOC`;case 15:return`MX`;case 35:return`NAPTR`;case 2:return`NS`;case 47:return`NSEC`;case 50:return`NSEC3`;case 51:return`NSEC3PARAM`;case 12:return`PTR`;case 46:return`RRSIG`;case 17:return`RP`;case 24:return`SIG`;case 6:return`SOA`;case 99:return`SPF`;case 33:return`SRV`;case 44:return`SSHFP`;case 32768:return`TA`;case 249:return`TKEY`;case 52:return`TLSA`;case 250:return`TSIG`;case 16:return`TXT`;case 252:return`AXFR`;case 251:return`IXFR`;case 41:return`OPT`;case 255:return`ANY`}return`UNKNOWN_`+e}function f(e){switch(e.toUpperCase()){case`A`:return 1;case`NULL`:return 10;case`AAAA`:return 28;case`AFSDB`:return 18;case`APL`:return 42;case`CAA`:return 257;case`CDNSKEY`:return 60;case`CDS`:return 59;case`CERT`:return 37;case`CNAME`:return 5;case`DHCID`:return 49;case`DLV`:return 32769;case`DNAME`:return 39;case`DNSKEY`:return 48;case`DS`:return 43;case`HIP`:return 55;case`HINFO`:return 13;case`IPSECKEY`:return 45;case`KEY`:return 25;case`KX`:return 36;case`LOC`:return 29;case`MX`:return 15;case`NAPTR`:return 35;case`NS`:return 2;case`NSEC`:return 47;case`NSEC3`:return 50;case`NSEC3PARAM`:return 51;case`PTR`:return 12;case`RRSIG`:return 46;case`RP`:return 17;case`SIG`:return 24;case`SOA`:return 6;case`SPF`:return 99;case`SRV`:return 33;case`SSHFP`:return 44;case`TA`:return 32768;case`TKEY`:return 249;case`TLSA`:return 52;case`TSIG`:return 250;case`TXT`:return 16;case`AXFR`:return 252;case`IXFR`:return 251;case`OPT`:return 41;case`ANY`:return 255;case`*`:return 255}return e.toUpperCase().startsWith(`UNKNOWN_`)?parseInt(e.slice(8)):0}function te(e){switch(e){case 0:return`NOERROR`;case 1:return`FORMERR`;case 2:return`SERVFAIL`;case 3:return`NXDOMAIN`;case 4:return`NOTIMP`;case 5:return`REFUSED`;case 6:return`YXDOMAIN`;case 7:return`YXRRSET`;case 8:return`NXRRSET`;case 9:return`NOTAUTH`;case 10:return`NOTZONE`;case 11:return`RCODE_11`;case 12:return`RCODE_12`;case 13:return`RCODE_13`;case 14:return`RCODE_14`;case 15:return`RCODE_15`}return`RCODE_`+e}function ne(e){switch(e){case 0:return`QUERY`;case 1:return`IQUERY`;case 2:return`STATUS`;case 3:return`OPCODE_3`;case 4:return`NOTIFY`;case 5:return`UPDATE`;case 6:return`OPCODE_6`;case 7:return`OPCODE_7`;case 8:return`OPCODE_8`;case 9:return`OPCODE_9`;case 10:return`OPCODE_10`;case 11:return`OPCODE_11`;case 12:return`OPCODE_12`;case 13:return`OPCODE_13`;case 14:return`OPCODE_14`;case 15:return`OPCODE_15`}return`OPCODE_`+e}function re(e){switch(e){case 1:return`IN`;case 2:return`CS`;case 3:return`CH`;case 4:return`HS`;case 255:return`ANY`}return`UNKNOWN_`+e}function ie(e){switch(e.toUpperCase()){case`IN`:return 1;case`CS`:return 2;case`CH`:return 3;case`HS`:return 4;case`ANY`:return 255}return 0}function ae(e){switch(e){case 1:return`LLQ`;case 2:return`UL`;case 3:return`NSID`;case 5:return`DAU`;case 6:return`DHU`;case 7:return`N3U`;case 8:return`CLIENT_SUBNET`;case 9:return`EXPIRE`;case 10:return`COOKIE`;case 11:return`TCP_KEEPALIVE`;case 12:return`PADDING`;case 13:return`CHAIN`;case 14:return`KEY_TAG`;case 26946:return`DEVICEID`}return e<0?null:`OPTION_${e}`}function oe(e){if(typeof e==`number`)return e;if(!e)return-1;switch(e.toUpperCase()){case`OPTION_0`:return 0;case`LLQ`:return 1;case`UL`:return 2;case`NSID`:return 3;case`OPTION_4`:return 4;case`DAU`:return 5;case`DHU`:return 6;case`N3U`:return 7;case`CLIENT_SUBNET`:return 8;case`EXPIRE`:return 9;case`COOKIE`:return 10;case`TCP_KEEPALIVE`:return 11;case`PADDING`:return 12;case`CHAIN`:return 13;case`KEY_TAG`:return 14;case`DEVICEID`:return 26946;case`OPTION_65535`:return 65535}let t=e.match(/_(\d+)$/);return t?parseInt(t[1],10):-1}var se=55296,p=56320;function ce(e){let t=0,n=e.length;for(let r=0;r<n;r+=1){let i=e.charCodeAt(r);if(i<=127)t+=1;else if(i<=2047)t+=2;else if((i&63488)!==se)t+=3;else{let a=r+1;a===n||i>=p?t+=3:(e.charCodeAt(a)&64512)===p?(r=a,t+=4):t+=3}}return t}function m(e,t,n){let r=e.length;n??=0,t===void 0&&(t=new Uint8Array(ce(e)+n));let i=n;for(let n=0;n<r;n+=1){let a=e.charCodeAt(n);if(a<=127)t[i++]=a;else if(a<=2047)t[i++]=192|(a&1984)>>6,t[i++]=128|a&63;else if((a&63488)!==se)t[i++]=224|(a&61440)>>12,t[i++]=128|(a&4032)>>6,t[i++]=128|a&63;else{let o=n+1;if(o===r||a>=p)t[i++]=239,t[i++]=191,t[i++]=189;else{let r=e.charCodeAt(o);(r&64512)===p?(n=o,a=65536|(a&1023)<<10|r&1023,t[i++]=240|(a&1835008)>>18,t[i++]=128|(a&258048)>>12,t[i++]=128|(a&4032)>>6,t[i++]=128|a&63):(t[i++]=239,t[i++]=191,t[i++]=189)}}}return m.bytes=i-n,t}m.bytes=0;function h(e,t,n){let r=``;t??=0,n??=e.length;for(let i=t;i<n;){let t=e[i++],n;if(t<=128)n=t;else if(t>191&&t<224)n=(t&31)<<6|e[i++]&63;else if(t>239&&t<365){n=((t&7)<<18|(e[i++]&63)<<12|(e[i++]&63)<<6|e[i++]&63)-65536;let a=se|n>>10&1023;r+=String.fromCharCode(a),n=p|n&1023}else n=(t&15)<<12|(e[i++]&63)<<6|e[i++]&63;r+=String.fromCharCode(n)}return h.bytes=n-t,r}h.bytes=0;var g=e=>e instanceof Uint8Array;function _(e){return typeof e==`string`?ce(e):e.byteLength}function le(e){return e instanceof Uint8Array?e:Array.isArray(e)?new Uint8Array(e):m(e)}function ue(e,t,n){if(typeof t!=`string`)throw Error(`unknown input type`);return m(t,e,n),m.bytes}var de=2**24,fe=2**16,pe=256,v=(e,t)=>e[t]*de+e[t+1]*fe+e[t+2]*pe+e[t+3],y=(e,t)=>e[t]<<8|e[t+1],b=(e,t,n)=>(t=+t,e[n+3]=t,t>>>=8,e[n+2]=t,t>>>=8,e[n+1]=t,t>>>=8,e[n]=t,n+4),x=(e,t,n)=>(e[n]=t>>8,e[n+1]=t&255,n+2);function S(e,t,n,r,i){return n<0&&(r-=n,n=0),r<0&&(r=0),i<0?new Uint8Array:n>=t.length||r>=i?0:me(e,t,n,r,i)}function me(e,t,n,r,i){i-r>t.length-n&&(i=r+t.length-n);let a=i-r,o=e.length-r;return a>o&&(a=o),(r!==0||i<e.length)&&(e=new Uint8Array(e.buffer,e.byteOffset+r,a)),t.set(e,n),a}var he=0,ge=32768,_e=32768,ve=-32769,ye=32768,be=-32769;function C({bytes:e=0,encode:t,decode:n,encodingLength:r}){return t.bytes=e,n.bytes=e,{encode:t,decode:n,encodingLength:r||(()=>e)}}var w=C({encode(e,t,n){t||=new Uint8Array(w.encodingLength(e)),n||=0;let r=n,i=e.replace(/^\.|\.$/gm,``);if(i.length){let e=i.split(`.`);for(let r=0;r<e.length;r++){let i=ue(t,e[r],n+1);t[n]=i,n+=i+1}}return t[n++]=0,w.encode.bytes=n-r,t},decode(e,t){t||=0;let n=[],r=t,i=0,a=0,o=!1;for(;;){if(t>=e.length)throw Error(`Cannot decode name (buffer overflow)`);let s=e[t++];if(a+=+!o,s===0)break;if(!(s&192)){if(t+s>e.length)throw Error(`Cannot decode name (buffer overflow)`);if(i+=s+1,i>254)throw Error(`Cannot decode name (name too long)`);n.push(h(e,t,t+s)),t+=s,a+=o?0:s}else if((s&192)==192){if(t+1>e.length)throw Error(`Cannot decode name (buffer overflow)`);let n=y(e,t-1)-49152;if(n>=r)throw Error(`Cannot decode name (bad pointer)`);t=n,r=n,a+=+!o,o=!0}else throw Error(`Cannot decode name (bad label)`)}return w.decode.bytes=a,n.length===0?`.`:n.join(`.`)},encodingLength(e){return e===`.`||e===`..`?1:_(e.replace(/^\.|\.$/gm,``))+2}}),T=C({encode(e,t,n){t||=new Uint8Array(T.encodingLength(e)),n||=0;let r=ue(t,e,n+1);return t[n]=r,T.encode.bytes=r+1,t},decode(e,t){t||=0;let n=e[t],r=h(e,t+1,t+1+n);return T.decode.bytes=n+1,r},encodingLength(e){return _(e)+1}}),E=C({bytes:12,encode(e,t,n){t||=new Uint8Array(E.encodingLength(e)),n||=0;let r=(e.flags||0)&32767,i=e.type===`response`?ge:he;return x(t,e.id||0,n),x(t,r|i,n+2),x(t,e.questions.length,n+4),x(t,e.answers.length,n+6),x(t,e.authorities.length,n+8),x(t,e.additionals.length,n+10),t},decode(e,t){if(t||=0,e.length<12)throw Error(`Header must be 12 bytes`);let n=y(e,t+2);return{id:y(e,t),type:n&ge?`response`:`query`,flags:n&32767,flag_qr:(n>>15&1)==1,opcode:ne(n>>11&15),flag_aa:(n>>10&1)==1,flag_tc:(n>>9&1)==1,flag_rd:(n>>8&1)==1,flag_ra:(n>>7&1)==1,flag_z:(n>>6&1)==1,flag_ad:(n>>5&1)==1,flag_cd:(n>>4&1)==1,rcode:te(n&15),questions:Array(y(e,t+4)),answers:Array(y(e,t+6)),authorities:Array(y(e,t+8)),additionals:Array(y(e,t+10))}},encodingLength(){return 12}}),D=C({encode(e,t,n){t||=new Uint8Array(D.encodingLength(e)),n||=0;let r=e.length;return x(t,r,n),S(e,t,n+2,0,r),D.encode.bytes=r+2,t},decode(e,t){t||=0;let n=y(e,t),r=e.slice(t+2,t+2+n);return D.decode.bytes=n+2,r},encodingLength(e){return e.length+2}}),O=C({encode(e,t,n){return t||=new Uint8Array(O.encodingLength(e)),n||=0,w.encode(e,t,n+2),x(t,w.encode.bytes,n),O.encode.bytes=w.encode.bytes+2,t},decode(e,t){t||=0;let n=y(e,t),r=w.decode(e,t+2);return O.decode.bytes=n+2,r},encodingLength(e){return w.encodingLength(e)+2}}),k=C({encode(e,t,n){t||=new Uint8Array(k.encodingLength(e)),n||=0;let r=n;return n+=2,w.encode(e.mname,t,n),n+=w.encode.bytes,w.encode(e.rname,t,n),n+=w.encode.bytes,b(t,e.serial||0,n),n+=4,b(t,e.refresh||0,n),n+=4,b(t,e.retry||0,n),n+=4,b(t,e.expire||0,n),n+=4,b(t,e.minimum||0,n),n+=4,x(t,n-r-2,r),k.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.mname=w.decode(e,t),t+=w.decode.bytes,r.rname=w.decode(e,t),t+=w.decode.bytes,r.serial=v(e,t),t+=4,r.refresh=v(e,t),t+=4,r.retry=v(e,t),t+=4,r.expire=v(e,t),t+=4,r.minimum=v(e,t),t+=4,k.decode.bytes=t-n,r},encodingLength(e){return 22+w.encodingLength(e.mname)+w.encodingLength(e.rname)}}),A=C({encode(e,t,n){Array.isArray(e)||(e=[e]);for(let t=0;t<e.length;t++)if(typeof e[t]==`string`&&(e[t]=le(e[t])),!g(e[t]))throw Error(`Must be a Buffer`);t||=new Uint8Array(A.encodingLength(e)),n||=0;let r=n;return n+=2,e.forEach(function(e){t[n++]=e.length,S(e,t,n,0,e.length),n+=e.length}),x(t,n-r-2,r),A.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r=y(e,t);t+=2;let i=[];for(;r>0;){let n=e[t++];if(--r,r<n)throw Error(`Buffer overflow`);i.push(e.slice(t,t+n)),t+=n,r-=n}return A.decode.bytes=t-n,i},encodingLength(e){Array.isArray(e)||(e=[e]);let t=2;return e.forEach(function(e){t+=typeof e==`string`?_(e)+1:e.length+1}),t}}),xe=C({encode(e,t,n){t||=new Uint8Array(xe.encodingLength(e)),n||=0,typeof e==`string`&&(e=le(e)),e||=new Uint8Array;let r=n;n+=2;let i=e.length;return S(e,t,n,0,i),n+=i,x(t,n-r-2,r),xe.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r=y(e,t);t+=2;let i=e.slice(t,t+r);return t+=r,xe.decode.bytes=t-n,i},encodingLength(e){return e?(g(e)?e.length:_(e))+2:2}}),Se=C({encode(e,t,n){t||=new Uint8Array(Se.encodingLength(e)),n||=0;let r=n;return n+=2,T.encode(e.cpu,t,n),n+=T.encode.bytes,T.encode(e.os,t,n),n+=T.encode.bytes,x(t,n-r-2,r),Se.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.cpu=T.decode(e,t),t+=T.decode.bytes,r.os=T.decode(e,t),t+=T.decode.bytes,Se.decode.bytes=t-n,r},encodingLength(e){return T.encodingLength(e.cpu)+T.encodingLength(e.os)+2}}),j=C({encode(e,t,n){return t||=new Uint8Array(j.encodingLength(e)),n||=0,w.encode(e,t,n+2),x(t,w.encode.bytes,n),j.encode.bytes=w.encode.bytes+2,t},decode(e,t){t||=0;let n=w.decode(e,t+2);return j.decode.bytes=w.decode.bytes+2,n},encodingLength(e){return w.encodingLength(e)+2}}),Ce=C({encode(e,t,n){t||=new Uint8Array(Ce.encodingLength(e)),n||=0,x(t,e.priority||0,n+2),x(t,e.weight||0,n+4),x(t,e.port||0,n+6),w.encode(e.target,t,n+8);let r=w.encode.bytes+6;return x(t,r,n),Ce.encode.bytes=r+2,t},decode(e,t){t||=0;let n=y(e,t),r={};return r.priority=y(e,t+2),r.weight=y(e,t+4),r.port=y(e,t+6),r.target=w.decode(e,t+8),Ce.decode.bytes=n+2,r},encodingLength(e){return 8+w.encodingLength(e.target)}}),M=C({encode(e,t,n){let r=M.encodingLength(e);return t||=new Uint8Array(M.encodingLength(e)),n||=0,e.issuerCritical&&(e.flags=M.ISSUER_CRITICAL),x(t,r-2,n),n+=2,t[n]=e.flags||0,n+=1,T.encode(e.tag,t,n),n+=T.encode.bytes,ue(t,e.value,n),n+=_(e.value),M.encode.bytes=r,t},decode(e,t){t||=0;let n=y(e,t);t+=2;let r=t,i={};return i.flags=e[t],t+=1,i.tag=T.decode(e,t),t+=T.decode.bytes,i.value=h(e,t,r+n),i.issuerCritical=!!(i.flags&M.ISSUER_CRITICAL),M.decode.bytes=n+2,i},encodingLength(e){return T.encodingLength(e.tag)+T.encodingLength(e.value)+2}});M.ISSUER_CRITICAL=128;var N=C({encode(e,t,n){t||=new Uint8Array(N.encodingLength(e)),n||=0;let r=n;return n+=2,x(t,e.preference||0,n),n+=2,w.encode(e.exchange,t,n),n+=w.encode.bytes,x(t,n-r-2,r),N.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.preference=y(e,t),t+=2,r.exchange=w.decode(e,t),t+=w.decode.bytes,N.decode.bytes=t-n,r},encodingLength(e){return 4+w.encodingLength(e.exchange)}}),we=C({encode(e,t,n){return t||=new Uint8Array(we.encodingLength(e)),n||=0,x(t,4,n),n+=2,o.encode(e,t,n),t},decode(e,t){return t||=0,t+=2,o.decode(e,t)},bytes:6}),P=C({encode(e,t,n){return t||=new Uint8Array(P.encodingLength(e)),n||=0,x(t,16,n),n+=2,s.encode(e,t,n),P.encode.bytes=18,t},decode(e,t){t||=0,t+=2;let n=s.decode(e,t);return P.decode.bytes=18,n},bytes:18}),Te=e=>new Uint8Array(e),F=C({encode(e,t,n){t||=new Uint8Array(F.encodingLength(e)),n||=0;let r=n,i=oe(e.code);if(x(t,i,n),n+=2,e.data)x(t,e.data.length,n),n+=2,S(e.data,t,n),n+=e.data.length;else switch(i){case 8:{let r=e.sourcePrefixLength||0,i=e.family||l(e.ip,Te),a=u(e.ip,Te),o=Math.ceil(r/8);x(t,o+4,n),n+=2,x(t,i,n),n+=2,t[n++]=r,t[n++]=e.scopePrefixLength||0,S(a,t,n,0,o),n+=o}break;case 11:e.timeout?(x(t,2,n),n+=2,x(t,e.timeout,n),n+=2):(x(t,0,n),n+=2);break;case 12:{let r=e.length||0;x(t,r,n),n+=2,t.fill(0,n,n+r),n+=r}break;case 14:{let r=e.tags.length*2;x(t,r,n),n+=2;for(let r of e.tags)x(t,r,n),n+=2}break;default:throw Error(`Unknown roption code: ${e.code}`)}return F.encode.bytes=n-r,t},decode(e,t){t||=0;let n={};n.code=y(e,t),n.type=ae(n.code),t+=2;let r=y(e,t);switch(t+=2,n.data=e.slice(t,t+r),n.code){case 8:n.family=y(e,t),t+=2,n.sourcePrefixLength=e[t++],n.scopePrefixLength=e[t++];{let i=new Uint8Array(n.family===1?4:16);S(e,i,0,t,t+r-4),n.ip=ee(i)}break;case 11:r>0&&(n.timeout=y(e,t),t+=2);break;case 14:n.tags=[];for(let i=0;i<r;i+=2)n.tags.push(y(e,t)),t+=2}return F.decode.bytes=r+4,n},encodingLength(e){if(e.data)return e.data.length+4;switch(oe(e.code)){case 8:{let t=e.sourcePrefixLength||0;return Math.ceil(t/8)+8}case 11:return typeof e.timeout==`number`?6:4;case 12:return e.length+4;case 14:return 4+e.tags.length*2}throw Error(`Unknown roption code: ${e.code}`)}}),I=C({encode(e,t,n){t||=new Uint8Array(I.encodingLength(e)),n||=0;let r=n,i=Y(e,F);return x(t,i,n),n=X(e,F,t,n+2),I.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r=[],i=y(e,t);t+=2;let a=0;for(;i>0;)r[a++]=F.decode(e,t),t+=F.decode.bytes,i-=F.decode.bytes;return I.decode.bytes=t-n,r},encodingLength(e){return 2+Y(e||[],F)}}),L=C({encode(e,t,n){t||=new Uint8Array(L.encodingLength(e)),n||=0;let r=n,i=e.key;if(!g(i))throw Error(`Key must be a Buffer`);return n+=2,x(t,e.flags,n),n+=2,t[n]=L.PROTOCOL_DNSSEC,n+=1,t[n]=e.algorithm,n+=1,S(i,t,n,0,i.length),n+=i.length,L.encode.bytes=n-r,x(t,L.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=y(e,t);if(t+=2,r.flags=y(e,t),t+=2,e[t]!==L.PROTOCOL_DNSSEC)throw Error(`Protocol must be 3`);return t+=1,r.algorithm=e[t],t+=1,r.key=e.slice(t,n+i+2),t+=r.key.length,L.decode.bytes=t-n,r},encodingLength(e){return 6+_(e.key)}});L.PROTOCOL_DNSSEC=3,L.ZONE_KEY=128,L.SECURE_ENTRYPOINT=32768;var R=C({encode(e,t,n){t||=new Uint8Array(R.encodingLength(e)),n||=0;let r=n,i=e.signature;if(!g(i))throw Error(`Signature must be a Buffer`);return n+=2,x(t,f(e.typeCovered),n),n+=2,t[n]=e.algorithm,n+=1,t[n]=e.labels,n+=1,b(t,e.originalTTL,n),n+=4,b(t,e.expiration,n),n+=4,b(t,e.inception,n),n+=4,x(t,e.keyTag,n),n+=2,w.encode(e.signersName,t,n),n+=w.encode.bytes,S(i,t,n,0,i.length),n+=i.length,R.encode.bytes=n-r,x(t,R.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=y(e,t);return t+=2,r.typeCovered=d(y(e,t)),t+=2,r.algorithm=e[t],t+=1,r.labels=e[t],t+=1,r.originalTTL=v(e,t),t+=4,r.expiration=v(e,t),t+=4,r.inception=v(e,t),t+=4,r.keyTag=y(e,t),t+=2,r.signersName=w.decode(e,t),t+=w.decode.bytes,r.signature=e.slice(t,n+i+2),t+=r.signature.length,R.decode.bytes=t-n,r},encodingLength(e){return 20+w.encodingLength(e.signersName)+_(e.signature)}}),z=C({encode(e,t,n){t||=new Uint8Array(z.encodingLength(e)),n||=0;let r=n;return n+=2,w.encode(e.mbox||`.`,t,n),n+=w.encode.bytes,w.encode(e.txt||`.`,t,n),n+=w.encode.bytes,z.encode.bytes=n-r,x(t,z.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.mbox=w.decode(e,t)||`.`,t+=w.decode.bytes,r.txt=w.decode(e,t)||`.`,t+=w.decode.bytes,z.decode.bytes=t-n,r},encodingLength(e){return 2+w.encodingLength(e.mbox||`.`)+w.encodingLength(e.txt||`.`)}}),B=C({encode(e,t,n){t||=new Uint8Array(B.encodingLength(e)),n||=0;let r=n,i=[];for(let t=0;t<e.length;t++){let n=f(e[t]);i[n>>8]===void 0&&(i[n>>8]=[]),i[n>>8][n>>3&31]|=1<<7-(n&7)}for(let e=0;e<i.length;e++)if(i[e]!==void 0){let r=le(i[e]);t[n]=e,n+=1,t[n]=r.length,n+=1,S(r,t,n,0,r.length),n+=r.length}return B.encode.bytes=n-r,t},decode(e,t,n){t||=0;let r=t,i=[];for(;t-r<n;){let n=e[t];t+=1;let r=e[t];t+=1;for(let a=0;a<r;a++){let r=e[t+a];for(let e=0;e<8;e++)if(r&1<<7-e){let t=d(n<<8|a<<3|e);i.push(t)}}t+=r}return B.decode.bytes=t-r,i},encodingLength(e){let t=[];for(let n=0;n<e.length;n++){let r=f(e[n]);t[r>>8]=Math.max(t[r>>8]||0,r&255)}let n=0;for(let e=0;e<t.length;e++)t[e]!==void 0&&(n+=2+Math.ceil((t[e]+1)/8));return n}}),V=C({encode(e,t,n){t||=new Uint8Array(V.encodingLength(e)),n||=0;let r=n;return n+=2,w.encode(e.nextDomain,t,n),n+=w.encode.bytes,B.encode(e.rrtypes,t,n),n+=B.encode.bytes,V.encode.bytes=n-r,x(t,V.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=y(e,t);return t+=2,r.nextDomain=w.decode(e,t),t+=w.decode.bytes,r.rrtypes=B.decode(e,t,i-(t-n)),t+=B.decode.bytes,V.decode.bytes=t-n,r},encodingLength(e){return 2+w.encodingLength(e.nextDomain)+B.encodingLength(e.rrtypes)}}),H=C({encode(e,t,n){t||=new Uint8Array(H.encodingLength(e)),n||=0;let r=n,i=e.salt;if(!g(i))throw Error(`salt must be a Buffer`);let a=e.nextDomain;if(!g(a))throw Error(`nextDomain must be a Buffer`);return n+=2,t[n]=e.algorithm,n+=1,t[n]=e.flags,n+=1,x(t,e.iterations,n),n+=2,t[n]=i.length,n+=1,S(i,t,n,0,i.length),n+=i.length,t[n]=a.length,n+=1,S(a,t,n,0,a.length),n+=a.length,B.encode(e.rrtypes,t,n),n+=B.encode.bytes,H.encode.bytes=n-r,x(t,H.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=y(e,t);t+=2,r.algorithm=e[t],t+=1,r.flags=e[t],t+=1,r.iterations=y(e,t),t+=2;let a=e[t];t+=1,r.salt=e.slice(t,t+a),t+=a;let o=e[t];return t+=1,r.nextDomain=e.slice(t,t+o),t+=o,r.rrtypes=B.decode(e,t,i-(t-n)),t+=B.decode.bytes,H.decode.bytes=t-n,r},encodingLength(e){return 8+e.salt.length+e.nextDomain.length+B.encodingLength(e.rrtypes)}}),U=C({encode(e,t,n){t||=new Uint8Array(U.encodingLength(e)),n||=0;let r=n,i=e.digest;if(!g(i))throw Error(`Digest must be a Buffer`);return n+=2,x(t,e.keyTag,n),n+=2,t[n]=e.algorithm,n+=1,t[n]=e.digestType,n+=1,S(i,t,n,0,i.length),n+=i.length,U.encode.bytes=n-r,x(t,U.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=y(e,t);return t+=2,r.keyTag=y(e,t),t+=2,r.algorithm=e[t],t+=1,r.digestType=e[t],t+=1,r.digest=e.slice(t,n+i+2),t+=r.digest.length,U.decode.bytes=t-n,r},encodingLength(e){return 6+_(e.digest)}});function Ee(e){switch(e.toUpperCase()){case`A`:return we;case`PTR`:return j;case`CNAME`:return j;case`DNAME`:return j;case`TXT`:return A;case`NULL`:return xe;case`AAAA`:return P;case`SRV`:return Ce;case`HINFO`:return Se;case`CAA`:return M;case`NS`:return O;case`SOA`:return k;case`MX`:return N;case`OPT`:return I;case`DNSKEY`:return L;case`RRSIG`:return R;case`RP`:return z;case`NSEC`:return V;case`NSEC3`:return H;case`DS`:return U}return D}var W=C({encode(e,t,n){t||=new Uint8Array(W.encodingLength(e)),n||=0;let r=n;if(w.encode(e.name,t,n),n+=w.encode.bytes,x(t,f(e.type),n),e.type.toUpperCase()===`OPT`){if(e.name!==`.`)throw Error(`OPT name must be root.`);x(t,e.udpPayloadSize||4096,n+2),t[n+4]=e.extendedRcode||0,t[n+5]=e.ednsVersion||0,x(t,e.flags||0,n+6),n+=8,I.encode(e.options||[],t,n),n+=I.encode.bytes}else{let r=ie(e.class===void 0?`IN`:e.class);e.flush&&(r|=_e),x(t,r,n+2),b(t,e.ttl||0,n+4),n+=8;let i=Ee(e.type);i.encode(e.data,t,n),n+=i.encode.bytes}return W.encode.bytes=n-r,t},decode(e,t){t||=0;let n={},r=t;if(n.name=w.decode(e,t),t+=w.decode.bytes,n.type=d(y(e,t)),n.type===`OPT`)n.udpPayloadSize=y(e,t+2),n.extendedRcode=e[t+4],n.ednsVersion=e[t+5],n.flags=y(e,t+6),n.flag_do=(n.flags>>15&1)==1,n.options=I.decode(e,t+8),t+=8+I.decode.bytes;else{let r=y(e,t+2);n.ttl=v(e,t+4),n.class=re(r&ve),n.flush=!!(r&_e);let i=Ee(n.type);n.data=i.decode(e,t+8),t+=8+i.decode.bytes}return W.decode.bytes=t-r,n},encodingLength(e){let t=e.data!==null&&e.data!==void 0?e.data:e.options;return w.encodingLength(e.name)+8+Ee(e.type).encodingLength(t)}}),G=C({encode(e,t,n){t||=new Uint8Array(G.encodingLength(e)),n||=0;let r=n;return w.encode(e.name,t,n),n+=w.encode.bytes,x(t,f(e.type),n),n+=2,x(t,ie(e.class===void 0?`IN`:e.class),n),n+=2,G.encode.bytes=n-r,e},decode(e,t){t||=0;let n=t,r={};return r.name=w.decode(e,t),t+=w.decode.bytes,r.type=d(y(e,t)),t+=2,r.class=re(y(e,t)),t+=2,r.class&ye&&(r.class&=be),G.decode.bytes=t-n,r},encodingLength(e){return w.encodingLength(e.name)+4}}),K={encode:function(e,t,n){let r=!t;r&&(t=new Uint8Array(Ae(e))),n||=0;let i=n;return e.questions||=[],e.answers||=[],e.authorities||=[],e.additionals||=[],E.encode(e,t,n),n+=E.encode.bytes,n=X(e.questions,G,t,n),n=X(e.answers,W,t,n),n=X(e.authorities,W,t,n),n=X(e.additionals,W,t,n),K.encode.bytes=n-i,r&&Oe.bytes!==t.length?t.slice(0,Oe.bytes):t},decode:function(e,t){t||=0;let n=t,r=E.decode(e,t);return t+=E.decode.bytes,t=je(r.questions,G,e,t),t=je(r.answers,W,e,t),t=je(r.authorities,W,e,t),t=je(r.additionals,W,e,t),K.decode.bytes=t-n,r},encodingLength:function(e){return E.encodingLength(e)+Y(e.questions||[],G)+Y(e.answers||[],W)+Y(e.authorities||[],W)+Y(e.additionals||[],W)}};K.encode.bytes=0,K.decode.bytes=0;function q(e,t){if(e.questions)throw Error(`Only one .question object expected instead of a .questions array!`);let n=Object.assign({type:t},e);return n.question&&(n.questions=[n.question],delete n.question),n}var J={encode:function(e,t,n){return t=K.encode(q(e,`query`),t,n),J.encode.bytes=K.encode.bytes,t},decode:function(e,t){let n=K.decode(e,t);return J.decode.bytes=K.decode.bytes,n.questions&&(n.question=n.questions[0],delete n.questions),n},encodingLength:function(e){return K.encodingLength(q(e,`query`))}};J.encode.bytes=0,J.decode.bytes=0;var De={encode:function(e,t,n){return t=K.encode(q(e,`response`),t,n),De.encode.bytes=K.encode.bytes,t},decode:function(e,t){let n=K.decode(e,t);return De.decode.bytes=K.decode.bytes,n.questions&&(n.question=n.questions[0],delete n.questions),n},encodingLength:function(e){return K.encodingLength(q(e,`response`))}};De.encode.bytes=0,De.decode.bytes=0;var Oe=K.encode,ke=K.decode,Ae=K.encodingLength;function Y(e,t){let n=0;for(let r=0;r<e.length;r++)n+=t.encodingLength(e[r]);return n}function X(e,t,n,r){for(let i=0;i<e.length;i++)t.encode(e[i],n,r),r+=t.encode.bytes;return r}function je(e,t,n,r){for(let i=0;i<e.length;i++)e[i]=t.decode(n,r),r+=t.decode.bytes;return r}function Me(e,t,n,r){if(t.length!==64)throw Error(`Charset needs to be 64 characters long! (${t.length})`);let i=new Uint8Array(256),a=new Uint8Array(64);for(let e=0;e<64;e+=1){let n=t.charCodeAt(e);if(n>255)throw Error(`Character #${e} in charset [code=${n}, char=${t.charAt(e)}] is too high! (max=255)`);if(i[n]!==0)throw Error(`Character [code=${n}, char=${t.charAt(e)}] is more than once in the charset!`);i[n]=e,a[e]=n}let o=n.charCodeAt(0),s={name:e,encodingLength(e){let t=e.length,n=t*.75|0;return e.charCodeAt(t-1)===o?e.charCodeAt(t-2)===o?n-2:n-1:n},encode(e,t,n){t??=new Uint8Array(s.encodingLength(e)),n??=0;let r=e.length;e.charCodeAt(r-1)===o&&(e.charCodeAt(r-2)===o?r-=2:--r);let a=r%4,c=r-a,l=n,u=0;for(;u<c;){let n=i[e.charCodeAt(u)]<<18|i[e.charCodeAt(u+1)]<<12|i[e.charCodeAt(u+2)]<<6|i[e.charCodeAt(u+3)];t[l++]=n>>16,t[l++]=n>>8,t[l++]=n,u+=4}if(a===3){let n=i[e.charCodeAt(u)]<<10|i[e.charCodeAt(u+1)]<<4|i[e.charCodeAt(u+2)]>>2;t[l++]=n>>8,t[l++]=n}else a===2&&(t[l++]=i[e.charCodeAt(u)]<<2|i[e.charCodeAt(u+1)]>>4);return s.encode.bytes=l-n,t},decode(e,t,n){t??=0,n??=e.length;let i=n-t,c=i%3,l=t+i-c,u=[];for(let n=t;n<l;n+=3){let t=e[n]<<16|e[n+1]<<8|e[n+2];u.push(a[t>>18&63],a[t>>12&63],a[t>>6&63],a[t&63])}if(c===2){let t=(e[n-2]<<8)+e[n-1];u.push(a[t>>10],a[t>>4&63],a[t<<2&63]),r===1&&u.push(o)}else if(c===1){let t=e[n-1];u.push(a[t>>2],a[t<<4&63]),r===1&&u.push(o,o)}return s.decode.bytes=i,String.fromCharCode.apply(String,u)}};return s}Me(`base64`,`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,`=`,1);var Ne=Me(`base64-url`,`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,`=`,2),Pe=t(((e,t)=>{t.exports={}})),Z=typeof global<`u`?global.AbortError:typeof window<`u`?window.AbortError:null;Z||=class extends Error{constructor(e=`Request aborted.`){super(e)}},Z.prototype.name=`AbortError`,Z.prototype.code=`ABORT_ERR`;var Fe=typeof globalThis<`u`&&globalThis.URL||Pe().URL,Q=class extends Error{constructor(e,t,n){super(`status=`+t+` while requesting `+e+` [`+n+`]`),this.uri=e,this.status=t,this.method=n}toJSON(){return{code:this.code,uri:this.uri,status:this.status,method:this.method,endpoint:this.endpoint}}};Q.prototype.name=`HTTPStatusError`,Q.prototype.code=`HTTP_STATUS`;var Ie=class extends Error{constructor(e,t){super(e),this.cause=t}toJSON(){return{message:this.message,endpoint:this.endpoint,code:this.code,cause:Be(this.cause)}}};Ie.prototype.name=`ResponseError`,Ie.prototype.code=`RESPONSE_ERR`;var Le=class extends Error{constructor(e){super(`Timeout (t=`+e+`).`),this.timeout=e}toJSON(){return{code:this.code,endpoint:this.endpoint,timeout:this.timeout}}};Le.prototype.name=`TimeoutError`,Le.prototype.code=`ETIMEOUT`;var Re=/^((\d{1,3}\.){3,3}\d{1,3})(:(\d{2,5}))?$/,ze=/^((::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?)(:(\d{2,5}))?$/i;function Be(e){if(typeof e==`string`)return{message:e};try{let t=JSON.stringify(e);if(t!==`{}`)return JSON.parse(t)}catch{}let t={message:String(e.message||e)};return e.code!==void 0&&(t.code=String(e.code)),t}var Ve=/^(([a-z0-9]+:)\/\/)?([^/[\s:]+|\[[^\]]+\])?(:([^/\s]+))?(\/[^\s]*)?(.*)$/,He=/\[(post|get|((ipv4|ipv6|name)=([^\]]+)))\]/gi,Ue=/\[(((pk|name)=([^\]]+)))\]/gi;function We(e){let t=Ve.exec(e),n=t[2]||`https:`,r=t[3],i=t[5],a=t[6],o=t[7];if(n===`https:`||n===`http:`){let e=Ge(o,He);return{name:e.name,protocol:n,ipv4:e.ipv4,ipv6:e.ipv6,host:r,port:i,path:a,method:e.post?`POST`:`GET`}}if(n===`udp:`||n===`udp4:`||n===`udp6:`){let t=Ge(o,Ue),a=/^\[(.*)\]$/.exec(r);if(a&&n===`udp4:`)throw Error(`Endpoint parsing error: Cannot use ipv6 host with udp4: (endpoint=${e})`);if(!a&&n===`udp6:`)throw Error(`Endpoint parsing error: Incorrectly formatted host for udp6: (endpoint=${e})`);return a?new Ze({protocol:`udp6:`,ipv6:a[1],port:i,pk:t.pk,name:t.name}):new Xe({protocol:`udp4:`,ipv4:r,port:i,pk:t.pk,name:t.name})}throw new Ke(n,e)}function Ge(e,t){t.lastIndex=0;let n={};for(;;){let r=t.exec(e);if(!r)break;r[2]?n[r[3].toLowerCase()]=r[4]:n[r[1].toLowerCase()]=!0}return n}var Ke=class extends Error{constructor(e,t){super(`Invalid Endpoint: unsupported protocol "${e}" for endpoint: ${t}, supported protocols: ${qe.join(`, `)}`),this.protocol=e,this.endpoint=t}toJSON(){return{code:this.code,endpoint:this.endpoint,timeout:this.timeout}}};Ke.prototype.name=`InvalidProtocolError`,Ke.prototype.code=`EPROTOCOL`;var qe=[`http:`,`https:`,`udp4:`,`udp6:`],Je=class{constructor(e,t){this.name=e.name||null,this.protocol=e.protocol;let n=typeof e.port==`string`?e.port=parseInt(e.port,10):e.port;if(n==null)this.port=t?this.protocol===`https:`?443:80:e.pk?443:53;else if(typeof n!=`number`&&!isNaN(n))throw Error(`Invalid Endpoint: port "${e.port}" needs to be a number: ${JSON.stringify(e)}`);else this.port=n}toJSON(){return this.toString()}},Ye=class extends Je{constructor(e){super(e,!1),this.pk=e.pk||null}toString(){let e=this.port===(this.pk?443:53)?``:`:${this.port}`,t=this.pk?` [pk=${this.pk}]`:``,n=this.name?` [name=${this.name}]`:``;return`udp://${this.ipv4||`[${this.ipv6}]`}${e}${t}${n}`}},Xe=class extends Ye{constructor(e){if(super(Object.assign({protocol:`udp4:`},e)),!e.ipv4||typeof e.ipv4!=`string`)throw Error(`Invalid Endpoint: .ipv4 "${e.ipv4}" needs to be set: ${JSON.stringify(e)}`);this.ipv4=e.ipv4}},Ze=class extends Ye{constructor(e){if(super(Object.assign({protocol:`udp6:`},e)),!e.ipv6||typeof e.ipv6!=`string`)throw Error(`Invalid Endpoint: .ipv6 "${e.ipv6}" needs to be set: ${JSON.stringify(e)}`);this.ipv6=e.ipv6}};function Qe(e){return ze.test(e)&&!Re.test(e)?`[${e}]`:e}var $e=class extends Je{constructor(e){if(super(Object.assign({protocol:`https:`},e),!0),e.host||(e.ipv4&&(e.host=e.ipv4),e.ipv6&&(e.host=`[${e.ipv6}]`)),!e.host||typeof e.host!=`string`)throw Error(`Invalid Endpoint: host "${e.path}" needs to be set: ${JSON.stringify(e)}`);if(this.host=e.host,this.path=e.path||`/dns-query`,this.method=/^post$/i.test(e.method)?`POST`:`GET`,this.ipv4=e.ipv4,this.ipv6=e.ipv6,!this.ipv6){let e=ze.exec(this.host);e&&(this.ipv6=e[1])}this.ipv4||Re.test(this.host)&&(this.ipv4=this.host);let t=`${this.protocol}//${Qe(this.host)}:${this.port}${this.path}`;try{this.url=new Fe(t)}catch(e){throw Error(e.message+` [${t}]`)}}toString(){let e=this.protocol===`https:`?``:`http://`,t=this.port===(this.protocol===`https:`?443:80)?``:`:${this.port}`,n=this.method===`GET`?``:` [post]`,r=this.path===`/dns-query`?``:this.path,i=this.name?` [name=${this.name}]`:``,a=this.ipv4&&this.ipv4!==this.host?` [ipv4=${this.ipv4}]`:``,o=this.ipv6&&this.ipv6!==this.host?` [ipv6=${this.ipv6}]`:``;return`${e}${Qe(this.host)}${t}${r}${n}${a}${o}${i}`}};function $(e){let t;if(typeof e==`string`)t=We(e);else{if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Can not convert ${e} to an endpoint`);if(e instanceof Je)return e;t=e}(t.protocol===null||t.protocol===void 0)&&(t.protocol=`https:`);let n=t.protocol;if(n===`udp4:`)return new Xe(t);if(n===`udp6:`)return new Ze(t);if(n===`https:`||n===`http:`)return new $e(t);throw new Ke(n,JSON.stringify(t))}var et=`application/dns-message`;function tt(){}function nt(){throw Error(`Only "doh" endpoints are supported in the browser`)}async function rt(e,t,n,r){let i=t?t.localStoragePrefix+t.name:null;if(i)try{let e=JSON.parse(localStorage.getItem(i));if(e&&e.time>t.maxTime)return e}catch{}let{data:a}=await it(e,`GET`,null,n,r),o={time:Date.now(),data:JSON.parse(h(a))};if(i)try{localStorage.setItem(i,JSON.stringify(o))}catch{o.time=null}return o}function it(e,t,n,r,i){return new Promise((a,o)=>{let s=new Fe(e);t===`GET`&&n&&(s.search=`?dns=`+Ne.decode(n));let c=s.toString(),l=new XMLHttpRequest;l.open(t,c,!0),l.setRequestHeader(`Accept`,et),t===`POST`&&l.setRequestHeader(`Content-Type`,et),l.responseType=`arraybuffer`,l.timeout=r,l.ontimeout=u,l.onreadystatechange=d,l.onerror=te,l.onload=ee,t===`POST`?l.send(n):l.send(),i&&i.addEventListener(`abort`,ne);function u(){f(new Le(r));try{l.abort()}catch{}}function ee(){if(l.status!==200)f(new Q(c,l.status,t));else{let e;if(typeof l.response==`string`)e=m(l.response);else if(l.response instanceof Uint8Array)e=l.response;else if(Array.isArray(l.response)||l.response instanceof ArrayBuffer)e=new Uint8Array(l.response);else throw Error(`Unprocessable response `+l.response);f(null,e)}}function d(){if(l.readyState>1&&l.status!==200&&l.status!==0){f(new Q(c,l.status,t));try{l.abort()}catch{}}}let f=function(e,t){f=tt,i&&i.removeEventListener(`abort`,ne),a(e?{error:e,response:l}:{data:t,response:l})};function te(){f(l.status===200?Error(`Inexplicable XHR Error`):new Q(c,l.status,t))}function ne(){f(new Z);try{l.abort()}catch{}}})}function at(e,t,n,r,i){return it(e,t,n,r,i)}function ot(e){return e.filter(e=>e.cors||e.endpoint.cors)}var st={data:[{name:`adfree.usableprivacy.net`,endpoint:{protocol:`https:`,host:`adfree.usableprivacy.net`},description:`Public updns DoH service with advertising, tracker and malware filters.
|
|
1
|
+
(function(e){typeof define==`function`&&define.amd?define([],e):e()})(function(){var e=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),t=/^(\d{1,3}\.){3,3}\d{1,3}$/,n=4,r=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,i=16,a={name:`v4`,size:n,isFormat:e=>t.test(e),encode(e,t,r){r=~~r,t||=new Uint8Array(r+n);let i=e.length,a=0;for(let n=0;n<i;){let i=e.charCodeAt(n++);i===46?(t[r++]=a,a=0):a=a*10+(i-48)}return t[r]=a,t},decode(e,t){return t=~~t,`${e[t++]}.${e[t++]}.${e[t++]}.${e[t]}`}},o={name:`v6`,size:i,isFormat:e=>e.length>0&&r.test(e),encode(e,t,n){n=~~n;let r=n+i,a=-1,o=0,s=0,c=!0,l=!1;t||=new Uint8Array(n+i);for(let i=0;i<e.length;i++){let u=e.charCodeAt(i);u===58?(c?a===-1?n<r&&(a=n):(n<r&&(t[n]=0),n<r-1&&(t[n+1]=0),n+=2):(l===!0?(n<r&&(t[n]=s),n++):(n<r&&(t[n]=o>>8),n<r-1&&(t[n+1]=o&255),n+=2),o=0,s=0),c=!0,l=!1):u===46?(n<r&&(t[n]=s),n++,s=0,o=0,c=!1,l=!0):(c=!1,u>=97?u-=87:u>=65?u-=55:(u-=48,s=s*10+u),o=(o<<4)+u)}if(c===!1)l===!0?(n<r&&(t[n]=s),n++):(n<r&&(t[n]=o>>8),n<r-1&&(t[n+1]=o&255),n+=2);else if(a===0)n<r&&(t[n]=0),n<r-1&&(t[n+1]=0),n+=2;else if(a!==-1){n+=2;for(let e=Math.min(n-1,r-1);e>=a+2;e--)t[e]=t[e-2];t[a]=0,t[a+1]=0,a=n}if(a!==n&&a!==-1)for(n>r-2&&(n=r-2);r>a;)t[--r]=n<r&&n>a?t[--n]:0;else for(;n<r;)t[n++]=0;return t},decode(e,t){t=~~t;let n=``;for(let r=0;r<i;r+=2)r!==0&&(n+=`:`),n+=(e[t+r]<<8|e[t+r+1]).toString(16);return n.replace(/(^|:)0(:0)*:0(:|$)/,`$1::$3`).replace(/:{3,4}/,`::`)}};function s(e){if(a.isFormat(e))return a.size;if(o.isFormat(e))return o.size;throw Error(`Invalid ip address: ${e}`)}function c(e){return s(e)===a.size?1:2}function l(e,t,n){n=~~n;let r=s(e);return typeof t==`function`&&(t=t(n+r)),r===a.size?a.encode(e,t,n):o.encode(e,t,n)}function u(e,t,n){if(t=~~t,n||=e.length-t,n===a.size)return a.decode(e,t,n);if(n===o.size)return o.decode(e,t,n);throw Error(`Invalid buffer size needs to be ${a.size} for v4 or ${o.size} for v6.`)}function d(e){switch(e){case 1:return`A`;case 10:return`NULL`;case 28:return`AAAA`;case 18:return`AFSDB`;case 42:return`APL`;case 257:return`CAA`;case 60:return`CDNSKEY`;case 59:return`CDS`;case 37:return`CERT`;case 5:return`CNAME`;case 49:return`DHCID`;case 32769:return`DLV`;case 39:return`DNAME`;case 48:return`DNSKEY`;case 43:return`DS`;case 55:return`HIP`;case 13:return`HINFO`;case 45:return`IPSECKEY`;case 25:return`KEY`;case 36:return`KX`;case 29:return`LOC`;case 15:return`MX`;case 35:return`NAPTR`;case 2:return`NS`;case 47:return`NSEC`;case 50:return`NSEC3`;case 51:return`NSEC3PARAM`;case 12:return`PTR`;case 46:return`RRSIG`;case 17:return`RP`;case 24:return`SIG`;case 6:return`SOA`;case 99:return`SPF`;case 33:return`SRV`;case 44:return`SSHFP`;case 32768:return`TA`;case 249:return`TKEY`;case 52:return`TLSA`;case 250:return`TSIG`;case 16:return`TXT`;case 252:return`AXFR`;case 251:return`IXFR`;case 41:return`OPT`;case 255:return`ANY`}return`UNKNOWN_`+e}function f(e){switch(e.toUpperCase()){case`A`:return 1;case`NULL`:return 10;case`AAAA`:return 28;case`AFSDB`:return 18;case`APL`:return 42;case`CAA`:return 257;case`CDNSKEY`:return 60;case`CDS`:return 59;case`CERT`:return 37;case`CNAME`:return 5;case`DHCID`:return 49;case`DLV`:return 32769;case`DNAME`:return 39;case`DNSKEY`:return 48;case`DS`:return 43;case`HIP`:return 55;case`HINFO`:return 13;case`IPSECKEY`:return 45;case`KEY`:return 25;case`KX`:return 36;case`LOC`:return 29;case`MX`:return 15;case`NAPTR`:return 35;case`NS`:return 2;case`NSEC`:return 47;case`NSEC3`:return 50;case`NSEC3PARAM`:return 51;case`PTR`:return 12;case`RRSIG`:return 46;case`RP`:return 17;case`SIG`:return 24;case`SOA`:return 6;case`SPF`:return 99;case`SRV`:return 33;case`SSHFP`:return 44;case`TA`:return 32768;case`TKEY`:return 249;case`TLSA`:return 52;case`TSIG`:return 250;case`TXT`:return 16;case`AXFR`:return 252;case`IXFR`:return 251;case`OPT`:return 41;case`ANY`:return 255;case`*`:return 255}return e.toUpperCase().startsWith(`UNKNOWN_`)?parseInt(e.slice(8)):0}function p(e){switch(e){case 0:return`NOERROR`;case 1:return`FORMERR`;case 2:return`SERVFAIL`;case 3:return`NXDOMAIN`;case 4:return`NOTIMP`;case 5:return`REFUSED`;case 6:return`YXDOMAIN`;case 7:return`YXRRSET`;case 8:return`NXRRSET`;case 9:return`NOTAUTH`;case 10:return`NOTZONE`;case 11:return`RCODE_11`;case 12:return`RCODE_12`;case 13:return`RCODE_13`;case 14:return`RCODE_14`;case 15:return`RCODE_15`}return`RCODE_`+e}function ee(e){switch(e){case 0:return`QUERY`;case 1:return`IQUERY`;case 2:return`STATUS`;case 3:return`OPCODE_3`;case 4:return`NOTIFY`;case 5:return`UPDATE`;case 6:return`OPCODE_6`;case 7:return`OPCODE_7`;case 8:return`OPCODE_8`;case 9:return`OPCODE_9`;case 10:return`OPCODE_10`;case 11:return`OPCODE_11`;case 12:return`OPCODE_12`;case 13:return`OPCODE_13`;case 14:return`OPCODE_14`;case 15:return`OPCODE_15`}return`OPCODE_`+e}function m(e){switch(e){case 1:return`IN`;case 2:return`CS`;case 3:return`CH`;case 4:return`HS`;case 255:return`ANY`}return`UNKNOWN_`+e}function te(e){switch(e.toUpperCase()){case`IN`:return 1;case`CS`:return 2;case`CH`:return 3;case`HS`:return 4;case`ANY`:return 255}return 0}function ne(e){switch(e){case 1:return`LLQ`;case 2:return`UL`;case 3:return`NSID`;case 5:return`DAU`;case 6:return`DHU`;case 7:return`N3U`;case 8:return`CLIENT_SUBNET`;case 9:return`EXPIRE`;case 10:return`COOKIE`;case 11:return`TCP_KEEPALIVE`;case 12:return`PADDING`;case 13:return`CHAIN`;case 14:return`KEY_TAG`;case 26946:return`DEVICEID`}return e<0?null:`OPTION_${e}`}function re(e){if(typeof e==`number`)return e;if(!e)return-1;switch(e.toUpperCase()){case`OPTION_0`:return 0;case`LLQ`:return 1;case`UL`:return 2;case`NSID`:return 3;case`OPTION_4`:return 4;case`DAU`:return 5;case`DHU`:return 6;case`N3U`:return 7;case`CLIENT_SUBNET`:return 8;case`EXPIRE`:return 9;case`COOKIE`:return 10;case`TCP_KEEPALIVE`:return 11;case`PADDING`:return 12;case`CHAIN`:return 13;case`KEY_TAG`:return 14;case`DEVICEID`:return 26946;case`OPTION_65535`:return 65535}let t=e.match(/_(\d+)$/);return t?parseInt(t[1],10):-1}var ie=55296,h=56320;function ae(e){let t=0,n=e.length;for(let r=0;r<n;r+=1){let i=e.charCodeAt(r);if(i<=127)t+=1;else if(i<=2047)t+=2;else if((i&63488)!==ie)t+=3;else{let a=r+1;a===n||i>=h?t+=3:(e.charCodeAt(a)&64512)===h?(r=a,t+=4):t+=3}}return t}function g(e,t,n){let r=e.length;n??=0,t===void 0&&(t=new Uint8Array(ae(e)+n));let i=n;for(let n=0;n<r;n+=1){let a=e.charCodeAt(n);if(a<=127)t[i++]=a;else if(a<=2047)t[i++]=192|(a&1984)>>6,t[i++]=128|a&63;else if((a&63488)!==ie)t[i++]=224|(a&61440)>>12,t[i++]=128|(a&4032)>>6,t[i++]=128|a&63;else{let o=n+1;if(o===r||a>=h)t[i++]=239,t[i++]=191,t[i++]=189;else{let r=e.charCodeAt(o);(r&64512)===h?(n=o,a=65536|(a&1023)<<10|r&1023,t[i++]=240|(a&1835008)>>18,t[i++]=128|(a&258048)>>12,t[i++]=128|(a&4032)>>6,t[i++]=128|a&63):(t[i++]=239,t[i++]=191,t[i++]=189)}}}return g.bytes=i-n,t}g.bytes=0;function _(e,t,n){let r=``;t??=0,n??=e.length;for(let i=t;i<n;){let t=e[i++],n;if(t<=128)n=t;else if(t>191&&t<224)n=(t&31)<<6|e[i++]&63;else if(t>239&&t<365){n=((t&7)<<18|(e[i++]&63)<<12|(e[i++]&63)<<6|e[i++]&63)-65536;let a=ie|n>>10&1023;r+=String.fromCharCode(a),n=h|n&1023}else n=(t&15)<<12|(e[i++]&63)<<6|e[i++]&63;r+=String.fromCharCode(n)}return _.bytes=n-t,r}_.bytes=0;var v=e=>e instanceof Uint8Array;function y(e){return typeof e==`string`?ae(e):e.byteLength}function oe(e){return e instanceof Uint8Array?e:Array.isArray(e)?new Uint8Array(e):g(e)}function se(e,t,n){if(typeof t!=`string`)throw Error(`unknown input type`);return g(t,e,n),g.bytes}var ce=2**24,le=2**16,ue=256,b=(e,t)=>e[t]*ce+e[t+1]*le+e[t+2]*ue+e[t+3],x=(e,t)=>e[t]<<8|e[t+1],S=(e,t,n)=>(t=+t,e[n+3]=t,t>>>=8,e[n+2]=t,t>>>=8,e[n+1]=t,t>>>=8,e[n]=t,n+4),C=(e,t,n)=>(e[n]=t>>8,e[n+1]=t&255,n+2);function w(e,t,n,r,i){return n<0&&(r-=n,n=0),r<0&&(r=0),i<0?new Uint8Array:n>=t.length||r>=i?0:de(e,t,n,r,i)}function de(e,t,n,r,i){i-r>t.length-n&&(i=r+t.length-n);let a=i-r,o=e.length-r;return a>o&&(a=o),(r!==0||i<e.length)&&(e=new Uint8Array(e.buffer,e.byteOffset+r,a)),t.set(e,n),a}var fe=0,pe=32768,me=32768,he=-32769,ge=32768,_e=-32769;function T({bytes:e=0,encode:t,decode:n,encodingLength:r}){return t.bytes=e,n.bytes=e,{encode:t,decode:n,encodingLength:r||(()=>e)}}var E=T({encode(e,t,n){t||=new Uint8Array(E.encodingLength(e)),n||=0;let r=n,i=e.replace(/^\.|\.$/gm,``);if(i.length){let e=i.split(`.`);for(let r=0;r<e.length;r++){let i=se(t,e[r],n+1);t[n]=i,n+=i+1}}return t[n++]=0,E.encode.bytes=n-r,t},decode(e,t){t||=0;let n=[],r=t,i=0,a=0,o=!1;for(;;){if(t>=e.length)throw Error(`Cannot decode name (buffer overflow)`);let s=e[t++];if(a+=+!o,s===0)break;if(!(s&192)){if(t+s>e.length)throw Error(`Cannot decode name (buffer overflow)`);if(i+=s+1,i>254)throw Error(`Cannot decode name (name too long)`);n.push(_(e,t,t+s)),t+=s,a+=o?0:s}else if((s&192)==192){if(t+1>e.length)throw Error(`Cannot decode name (buffer overflow)`);let n=x(e,t-1)-49152;if(n>=r)throw Error(`Cannot decode name (bad pointer)`);t=n,r=n,a+=+!o,o=!0}else throw Error(`Cannot decode name (bad label)`)}return E.decode.bytes=a,n.length===0?`.`:n.join(`.`)},encodingLength(e){return e===`.`||e===`..`?1:y(e.replace(/^\.|\.$/gm,``))+2}}),D=T({encode(e,t,n){t||=new Uint8Array(D.encodingLength(e)),n||=0;let r=se(t,e,n+1);return t[n]=r,D.encode.bytes=r+1,t},decode(e,t){t||=0;let n=e[t],r=_(e,t+1,t+1+n);return D.decode.bytes=n+1,r},encodingLength(e){return y(e)+1}}),O=T({bytes:12,encode(e,t,n){t||=new Uint8Array(O.encodingLength(e)),n||=0;let r=(e.flags||0)&32767,i=e.type===`response`?pe:fe;return C(t,e.id||0,n),C(t,r|i,n+2),C(t,e.questions.length,n+4),C(t,e.answers.length,n+6),C(t,e.authorities.length,n+8),C(t,e.additionals.length,n+10),t},decode(e,t){if(t||=0,e.length<12)throw Error(`Header must be 12 bytes`);let n=x(e,t+2);return{id:x(e,t),type:n&pe?`response`:`query`,flags:n&32767,flag_qr:(n>>15&1)==1,opcode:ee(n>>11&15),flag_aa:(n>>10&1)==1,flag_tc:(n>>9&1)==1,flag_rd:(n>>8&1)==1,flag_ra:(n>>7&1)==1,flag_z:(n>>6&1)==1,flag_ad:(n>>5&1)==1,flag_cd:(n>>4&1)==1,rcode:p(n&15),questions:Array(x(e,t+4)),answers:Array(x(e,t+6)),authorities:Array(x(e,t+8)),additionals:Array(x(e,t+10))}},encodingLength(){return 12}}),k=T({encode(e,t,n){t||=new Uint8Array(k.encodingLength(e)),n||=0;let r=e.length;return C(t,r,n),w(e,t,n+2,0,r),k.encode.bytes=r+2,t},decode(e,t){t||=0;let n=x(e,t),r=e.slice(t+2,t+2+n);return k.decode.bytes=n+2,r},encodingLength(e){return e.length+2}}),A=T({encode(e,t,n){return t||=new Uint8Array(A.encodingLength(e)),n||=0,E.encode(e,t,n+2),C(t,E.encode.bytes,n),A.encode.bytes=E.encode.bytes+2,t},decode(e,t){t||=0;let n=x(e,t),r=E.decode(e,t+2);return A.decode.bytes=n+2,r},encodingLength(e){return E.encodingLength(e)+2}}),j=T({encode(e,t,n){t||=new Uint8Array(j.encodingLength(e)),n||=0;let r=n;return n+=2,E.encode(e.mname,t,n),n+=E.encode.bytes,E.encode(e.rname,t,n),n+=E.encode.bytes,S(t,e.serial||0,n),n+=4,S(t,e.refresh||0,n),n+=4,S(t,e.retry||0,n),n+=4,S(t,e.expire||0,n),n+=4,S(t,e.minimum||0,n),n+=4,C(t,n-r-2,r),j.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.mname=E.decode(e,t),t+=E.decode.bytes,r.rname=E.decode(e,t),t+=E.decode.bytes,r.serial=b(e,t),t+=4,r.refresh=b(e,t),t+=4,r.retry=b(e,t),t+=4,r.expire=b(e,t),t+=4,r.minimum=b(e,t),t+=4,j.decode.bytes=t-n,r},encodingLength(e){return 22+E.encodingLength(e.mname)+E.encodingLength(e.rname)}}),M=T({encode(e,t,n){Array.isArray(e)||(e=[e]);for(let t=0;t<e.length;t++)if(typeof e[t]==`string`&&(e[t]=oe(e[t])),!v(e[t]))throw Error(`Must be a Buffer`);t||=new Uint8Array(M.encodingLength(e)),n||=0;let r=n;return n+=2,e.forEach(function(e){t[n++]=e.length,w(e,t,n,0,e.length),n+=e.length}),C(t,n-r-2,r),M.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r=x(e,t);t+=2;let i=[];for(;r>0;){let n=e[t++];if(--r,r<n)throw Error(`Buffer overflow`);i.push(e.slice(t,t+n)),t+=n,r-=n}return M.decode.bytes=t-n,i},encodingLength(e){Array.isArray(e)||(e=[e]);let t=2;return e.forEach(function(e){t+=typeof e==`string`?y(e)+1:e.length+1}),t}}),N=T({encode(e,t,n){t||=new Uint8Array(N.encodingLength(e)),n||=0,typeof e==`string`&&(e=oe(e)),e||=new Uint8Array;let r=n;n+=2;let i=e.length;return w(e,t,n,0,i),n+=i,C(t,n-r-2,r),N.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r=x(e,t);t+=2;let i=e.slice(t,t+r);return t+=r,N.decode.bytes=t-n,i},encodingLength(e){return e?(v(e)?e.length:y(e))+2:2}}),P=T({encode(e,t,n){t||=new Uint8Array(P.encodingLength(e)),n||=0;let r=n;return n+=2,D.encode(e.cpu,t,n),n+=D.encode.bytes,D.encode(e.os,t,n),n+=D.encode.bytes,C(t,n-r-2,r),P.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.cpu=D.decode(e,t),t+=D.decode.bytes,r.os=D.decode(e,t),t+=D.decode.bytes,P.decode.bytes=t-n,r},encodingLength(e){return D.encodingLength(e.cpu)+D.encodingLength(e.os)+2}}),F=T({encode(e,t,n){return t||=new Uint8Array(F.encodingLength(e)),n||=0,E.encode(e,t,n+2),C(t,E.encode.bytes,n),F.encode.bytes=E.encode.bytes+2,t},decode(e,t){t||=0;let n=E.decode(e,t+2);return F.decode.bytes=E.decode.bytes+2,n},encodingLength(e){return E.encodingLength(e)+2}}),I=T({encode(e,t,n){t||=new Uint8Array(I.encodingLength(e)),n||=0,C(t,e.priority||0,n+2),C(t,e.weight||0,n+4),C(t,e.port||0,n+6),E.encode(e.target,t,n+8);let r=E.encode.bytes+6;return C(t,r,n),I.encode.bytes=r+2,t},decode(e,t){t||=0;let n=x(e,t),r={};return r.priority=x(e,t+2),r.weight=x(e,t+4),r.port=x(e,t+6),r.target=E.decode(e,t+8),I.decode.bytes=n+2,r},encodingLength(e){return 8+E.encodingLength(e.target)}}),L=T({encode(e,t,n){let r=L.encodingLength(e);return t||=new Uint8Array(L.encodingLength(e)),n||=0,e.issuerCritical&&(e.flags=L.ISSUER_CRITICAL),C(t,r-2,n),n+=2,t[n]=e.flags||0,n+=1,D.encode(e.tag,t,n),n+=D.encode.bytes,se(t,e.value,n),n+=y(e.value),L.encode.bytes=r,t},decode(e,t){t||=0;let n=x(e,t);t+=2;let r=t,i={};return i.flags=e[t],t+=1,i.tag=D.decode(e,t),t+=D.decode.bytes,i.value=_(e,t,r+n),i.issuerCritical=!!(i.flags&L.ISSUER_CRITICAL),L.decode.bytes=n+2,i},encodingLength(e){return D.encodingLength(e.tag)+D.encodingLength(e.value)+2}});L.ISSUER_CRITICAL=128;var ve=T({encode(e,t,n){t||=new Uint8Array(ve.encodingLength(e)),n||=0;let r=n;return n+=2,C(t,e.preference||0,n),n+=2,E.encode(e.exchange,t,n),n+=E.encode.bytes,C(t,n-r-2,r),ve.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.preference=x(e,t),t+=2,r.exchange=E.decode(e,t),t+=E.decode.bytes,ve.decode.bytes=t-n,r},encodingLength(e){return 4+E.encodingLength(e.exchange)}}),ye=T({encode(e,t,n){return t||=new Uint8Array(ye.encodingLength(e)),n||=0,C(t,4,n),n+=2,a.encode(e,t,n),t},decode(e,t){return t||=0,t+=2,a.decode(e,t)},bytes:6}),be=T({encode(e,t,n){return t||=new Uint8Array(be.encodingLength(e)),n||=0,C(t,16,n),n+=2,o.encode(e,t,n),be.encode.bytes=18,t},decode(e,t){t||=0,t+=2;let n=o.decode(e,t);return be.decode.bytes=18,n},bytes:18}),xe=e=>new Uint8Array(e),R=T({encode(e,t,n){t||=new Uint8Array(R.encodingLength(e)),n||=0;let r=n,i=re(e.code);if(C(t,i,n),n+=2,e.data)C(t,e.data.length,n),n+=2,w(e.data,t,n),n+=e.data.length;else switch(i){case 8:{let r=e.sourcePrefixLength||0,i=e.family||c(e.ip,xe),a=l(e.ip,xe),o=Math.ceil(r/8);C(t,o+4,n),n+=2,C(t,i,n),n+=2,t[n++]=r,t[n++]=e.scopePrefixLength||0,w(a,t,n,0,o),n+=o}break;case 11:e.timeout?(C(t,2,n),n+=2,C(t,e.timeout,n),n+=2):(C(t,0,n),n+=2);break;case 12:{let r=e.length||0;C(t,r,n),n+=2,t.fill(0,n,n+r),n+=r}break;case 14:{let r=e.tags.length*2;C(t,r,n),n+=2;for(let r of e.tags)C(t,r,n),n+=2}break;default:throw Error(`Unknown roption code: ${e.code}`)}return R.encode.bytes=n-r,t},decode(e,t){t||=0;let n={};n.code=x(e,t),n.type=ne(n.code),t+=2;let r=x(e,t);switch(t+=2,n.data=e.slice(t,t+r),n.code){case 8:n.family=x(e,t),t+=2,n.sourcePrefixLength=e[t++],n.scopePrefixLength=e[t++];{let i=new Uint8Array(n.family===1?4:16);w(e,i,0,t,t+r-4),n.ip=u(i)}break;case 11:r>0&&(n.timeout=x(e,t),t+=2);break;case 14:n.tags=[];for(let i=0;i<r;i+=2)n.tags.push(x(e,t)),t+=2}return R.decode.bytes=r+4,n},encodingLength(e){if(e.data)return e.data.length+4;switch(re(e.code)){case 8:{let t=e.sourcePrefixLength||0;return Math.ceil(t/8)+8}case 11:return typeof e.timeout==`number`?6:4;case 12:return e.length+4;case 14:return 4+e.tags.length*2}throw Error(`Unknown roption code: ${e.code}`)}}),z=T({encode(e,t,n){t||=new Uint8Array(z.encodingLength(e)),n||=0;let r=n,i=X(e,R);return C(t,i,n),n=Z(e,R,t,n+2),z.encode.bytes=n-r,t},decode(e,t){t||=0;let n=t,r=[],i=x(e,t);t+=2;let a=0;for(;i>0;)r[a++]=R.decode(e,t),t+=R.decode.bytes,i-=R.decode.bytes;return z.decode.bytes=t-n,r},encodingLength(e){return 2+X(e||[],R)}}),B=T({encode(e,t,n){t||=new Uint8Array(B.encodingLength(e)),n||=0;let r=n,i=e.key;if(!v(i))throw Error(`Key must be a Buffer`);return n+=2,C(t,e.flags,n),n+=2,t[n]=B.PROTOCOL_DNSSEC,n+=1,t[n]=e.algorithm,n+=1,w(i,t,n,0,i.length),n+=i.length,B.encode.bytes=n-r,C(t,B.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=x(e,t);if(t+=2,r.flags=x(e,t),t+=2,e[t]!==B.PROTOCOL_DNSSEC)throw Error(`Protocol must be 3`);return t+=1,r.algorithm=e[t],t+=1,r.key=e.slice(t,n+i+2),t+=r.key.length,B.decode.bytes=t-n,r},encodingLength(e){return 6+y(e.key)}});B.PROTOCOL_DNSSEC=3,B.ZONE_KEY=128,B.SECURE_ENTRYPOINT=32768;var V=T({encode(e,t,n){t||=new Uint8Array(V.encodingLength(e)),n||=0;let r=n,i=e.signature;if(!v(i))throw Error(`Signature must be a Buffer`);return n+=2,C(t,f(e.typeCovered),n),n+=2,t[n]=e.algorithm,n+=1,t[n]=e.labels,n+=1,S(t,e.originalTTL,n),n+=4,S(t,e.expiration,n),n+=4,S(t,e.inception,n),n+=4,C(t,e.keyTag,n),n+=2,E.encode(e.signersName,t,n),n+=E.encode.bytes,w(i,t,n,0,i.length),n+=i.length,V.encode.bytes=n-r,C(t,V.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=x(e,t);return t+=2,r.typeCovered=d(x(e,t)),t+=2,r.algorithm=e[t],t+=1,r.labels=e[t],t+=1,r.originalTTL=b(e,t),t+=4,r.expiration=b(e,t),t+=4,r.inception=b(e,t),t+=4,r.keyTag=x(e,t),t+=2,r.signersName=E.decode(e,t),t+=E.decode.bytes,r.signature=e.slice(t,n+i+2),t+=r.signature.length,V.decode.bytes=t-n,r},encodingLength(e){return 20+E.encodingLength(e.signersName)+y(e.signature)}}),H=T({encode(e,t,n){t||=new Uint8Array(H.encodingLength(e)),n||=0;let r=n;return n+=2,E.encode(e.mbox||`.`,t,n),n+=E.encode.bytes,E.encode(e.txt||`.`,t,n),n+=E.encode.bytes,H.encode.bytes=n-r,C(t,H.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={};return t+=2,r.mbox=E.decode(e,t)||`.`,t+=E.decode.bytes,r.txt=E.decode(e,t)||`.`,t+=E.decode.bytes,H.decode.bytes=t-n,r},encodingLength(e){return 2+E.encodingLength(e.mbox||`.`)+E.encodingLength(e.txt||`.`)}}),U=T({encode(e,t,n){t||=new Uint8Array(U.encodingLength(e)),n||=0;let r=n,i=[];for(let t=0;t<e.length;t++){let n=f(e[t]);i[n>>8]===void 0&&(i[n>>8]=[]),i[n>>8][n>>3&31]|=1<<7-(n&7)}for(let e=0;e<i.length;e++)if(i[e]!==void 0){let r=oe(i[e]);t[n]=e,n+=1,t[n]=r.length,n+=1,w(r,t,n,0,r.length),n+=r.length}return U.encode.bytes=n-r,t},decode(e,t,n){t||=0;let r=t,i=[];for(;t-r<n;){let n=e[t];t+=1;let r=e[t];t+=1;for(let a=0;a<r;a++){let r=e[t+a];for(let e=0;e<8;e++)if(r&1<<7-e){let t=d(n<<8|a<<3|e);i.push(t)}}t+=r}return U.decode.bytes=t-r,i},encodingLength(e){let t=[];for(let n=0;n<e.length;n++){let r=f(e[n]);t[r>>8]=Math.max(t[r>>8]||0,r&255)}let n=0;for(let e=0;e<t.length;e++)t[e]!==void 0&&(n+=2+Math.ceil((t[e]+1)/8));return n}}),W=T({encode(e,t,n){t||=new Uint8Array(W.encodingLength(e)),n||=0;let r=n;return n+=2,E.encode(e.nextDomain,t,n),n+=E.encode.bytes,U.encode(e.rrtypes,t,n),n+=U.encode.bytes,W.encode.bytes=n-r,C(t,W.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=x(e,t);return t+=2,r.nextDomain=E.decode(e,t),t+=E.decode.bytes,r.rrtypes=U.decode(e,t,i-(t-n)),t+=U.decode.bytes,W.decode.bytes=t-n,r},encodingLength(e){return 2+E.encodingLength(e.nextDomain)+U.encodingLength(e.rrtypes)}}),G=T({encode(e,t,n){t||=new Uint8Array(G.encodingLength(e)),n||=0;let r=n,i=e.salt;if(!v(i))throw Error(`salt must be a Buffer`);let a=e.nextDomain;if(!v(a))throw Error(`nextDomain must be a Buffer`);return n+=2,t[n]=e.algorithm,n+=1,t[n]=e.flags,n+=1,C(t,e.iterations,n),n+=2,t[n]=i.length,n+=1,w(i,t,n,0,i.length),n+=i.length,t[n]=a.length,n+=1,w(a,t,n,0,a.length),n+=a.length,U.encode(e.rrtypes,t,n),n+=U.encode.bytes,G.encode.bytes=n-r,C(t,G.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=x(e,t);t+=2,r.algorithm=e[t],t+=1,r.flags=e[t],t+=1,r.iterations=x(e,t),t+=2;let a=e[t];t+=1,r.salt=e.slice(t,t+a),t+=a;let o=e[t];return t+=1,r.nextDomain=e.slice(t,t+o),t+=o,r.rrtypes=U.decode(e,t,i-(t-n)),t+=U.decode.bytes,G.decode.bytes=t-n,r},encodingLength(e){return 8+e.salt.length+e.nextDomain.length+U.encodingLength(e.rrtypes)}}),K=T({encode(e,t,n){t||=new Uint8Array(K.encodingLength(e)),n||=0;let r=n,i=e.digest;if(!v(i))throw Error(`Digest must be a Buffer`);return n+=2,C(t,e.keyTag,n),n+=2,t[n]=e.algorithm,n+=1,t[n]=e.digestType,n+=1,w(i,t,n,0,i.length),n+=i.length,K.encode.bytes=n-r,C(t,K.encode.bytes-2,r),t},decode(e,t){t||=0;let n=t,r={},i=x(e,t);return t+=2,r.keyTag=x(e,t),t+=2,r.algorithm=e[t],t+=1,r.digestType=e[t],t+=1,r.digest=e.slice(t,n+i+2),t+=r.digest.length,K.decode.bytes=t-n,r},encodingLength(e){return 6+y(e.digest)}});function Se(e){switch(e.toUpperCase()){case`A`:return ye;case`PTR`:return F;case`CNAME`:return F;case`DNAME`:return F;case`TXT`:return M;case`NULL`:return N;case`AAAA`:return be;case`SRV`:return I;case`HINFO`:return P;case`CAA`:return L;case`NS`:return A;case`SOA`:return j;case`MX`:return ve;case`OPT`:return z;case`DNSKEY`:return B;case`RRSIG`:return V;case`RP`:return H;case`NSEC`:return W;case`NSEC3`:return G;case`DS`:return K}return k}var q=T({encode(e,t,n){t||=new Uint8Array(q.encodingLength(e)),n||=0;let r=n;if(E.encode(e.name,t,n),n+=E.encode.bytes,C(t,f(e.type),n),e.type.toUpperCase()===`OPT`){if(e.name!==`.`)throw Error(`OPT name must be root.`);C(t,e.udpPayloadSize||4096,n+2),t[n+4]=e.extendedRcode||0,t[n+5]=e.ednsVersion||0,C(t,e.flags||0,n+6),n+=8,z.encode(e.options||[],t,n),n+=z.encode.bytes}else{let r=te(e.class===void 0?`IN`:e.class);e.flush&&(r|=me),C(t,r,n+2),S(t,e.ttl||0,n+4),n+=8;let i=Se(e.type);i.encode(e.data,t,n),n+=i.encode.bytes}return q.encode.bytes=n-r,t},decode(e,t){t||=0;let n={},r=t;if(n.name=E.decode(e,t),t+=E.decode.bytes,n.type=d(x(e,t)),n.type===`OPT`)n.udpPayloadSize=x(e,t+2),n.extendedRcode=e[t+4],n.ednsVersion=e[t+5],n.flags=x(e,t+6),n.flag_do=(n.flags>>15&1)==1,n.options=z.decode(e,t+8),t+=8+z.decode.bytes;else{let r=x(e,t+2);n.ttl=b(e,t+4),n.class=m(r&he),n.flush=!!(r&me);let i=Se(n.type);n.data=i.decode(e,t+8),t+=8+i.decode.bytes}return q.decode.bytes=t-r,n},encodingLength(e){let t=e.data!==null&&e.data!==void 0?e.data:e.options;return E.encodingLength(e.name)+8+Se(e.type).encodingLength(t)}}),J=T({encode(e,t,n){t||=new Uint8Array(J.encodingLength(e)),n||=0;let r=n;return E.encode(e.name,t,n),n+=E.encode.bytes,C(t,f(e.type),n),n+=2,C(t,te(e.class===void 0?`IN`:e.class),n),n+=2,J.encode.bytes=n-r,e},decode(e,t){t||=0;let n=t,r={};return r.name=E.decode(e,t),t+=E.decode.bytes,r.type=d(x(e,t)),t+=2,r.class=m(x(e,t)),t+=2,r.class&ge&&(r.class&=_e),J.decode.bytes=t-n,r},encodingLength(e){return E.encodingLength(e.name)+4}}),Y={encode:function(e,t,n){let r=!t;r&&(t=new Uint8Array(De(e))),n||=0;let i=n;return e.questions||=[],e.answers||=[],e.authorities||=[],e.additionals||=[],O.encode(e,t,n),n+=O.encode.bytes,n=Z(e.questions,J,t,n),n=Z(e.answers,q,t,n),n=Z(e.authorities,q,t,n),n=Z(e.additionals,q,t,n),Y.encode.bytes=n-i,r&&Ee.bytes!==t.length?t.slice(0,Ee.bytes):t},decode:function(e,t){t||=0;let n=t,r=O.decode(e,t);return t+=O.decode.bytes,t=Oe(r.questions,J,e,t),t=Oe(r.answers,q,e,t),t=Oe(r.authorities,q,e,t),t=Oe(r.additionals,q,e,t),Y.decode.bytes=t-n,r},encodingLength:function(e){return O.encodingLength(e)+X(e.questions||[],J)+X(e.answers||[],q)+X(e.authorities||[],q)+X(e.additionals||[],q)}};Y.encode.bytes=0,Y.decode.bytes=0;function Ce(e,t){if(e.questions)throw Error(`Only one .question object expected instead of a .questions array!`);let n=Object.assign({type:t},e);return n.question&&(n.questions=[n.question],delete n.question),n}var we={encode:function(e,t,n){return t=Y.encode(Ce(e,`query`),t,n),we.encode.bytes=Y.encode.bytes,t},decode:function(e,t){let n=Y.decode(e,t);return we.decode.bytes=Y.decode.bytes,n.questions&&(n.question=n.questions[0],delete n.questions),n},encodingLength:function(e){return Y.encodingLength(Ce(e,`query`))}};we.encode.bytes=0,we.decode.bytes=0;var Te={encode:function(e,t,n){return t=Y.encode(Ce(e,`response`),t,n),Te.encode.bytes=Y.encode.bytes,t},decode:function(e,t){let n=Y.decode(e,t);return Te.decode.bytes=Y.decode.bytes,n.questions&&(n.question=n.questions[0],delete n.questions),n},encodingLength:function(e){return Y.encodingLength(Ce(e,`response`))}};Te.encode.bytes=0,Te.decode.bytes=0;var Ee=Y.encode;Y.decode;var De=Y.encodingLength;function X(e,t){let n=0;for(let r=0;r<e.length;r++)n+=t.encodingLength(e[r]);return n}function Z(e,t,n,r){for(let i=0;i<e.length;i++)t.encode(e[i],n,r),r+=t.encode.bytes;return r}function Oe(e,t,n,r){for(let i=0;i<e.length;i++)e[i]=t.decode(n,r),r+=t.decode.bytes;return r}function ke(e,t,n,r){if(t.length!==64)throw Error(`Charset needs to be 64 characters long! (${t.length})`);let i=new Uint8Array(256),a=new Uint8Array(64);for(let e=0;e<64;e+=1){let n=t.charCodeAt(e);if(n>255)throw Error(`Character #${e} in charset [code=${n}, char=${t.charAt(e)}] is too high! (max=255)`);if(i[n]!==0)throw Error(`Character [code=${n}, char=${t.charAt(e)}] is more than once in the charset!`);i[n]=e,a[e]=n}let o=n.charCodeAt(0),s={name:e,encodingLength(e){let t=e.length,n=t*.75|0;return e.charCodeAt(t-1)===o?e.charCodeAt(t-2)===o?n-2:n-1:n},encode(e,t,n){t??=new Uint8Array(s.encodingLength(e)),n??=0;let r=e.length;e.charCodeAt(r-1)===o&&(e.charCodeAt(r-2)===o?r-=2:--r);let a=r%4,c=r-a,l=n,u=0;for(;u<c;){let n=i[e.charCodeAt(u)]<<18|i[e.charCodeAt(u+1)]<<12|i[e.charCodeAt(u+2)]<<6|i[e.charCodeAt(u+3)];t[l++]=n>>16,t[l++]=n>>8,t[l++]=n,u+=4}if(a===3){let n=i[e.charCodeAt(u)]<<10|i[e.charCodeAt(u+1)]<<4|i[e.charCodeAt(u+2)]>>2;t[l++]=n>>8,t[l++]=n}else a===2&&(t[l++]=i[e.charCodeAt(u)]<<2|i[e.charCodeAt(u+1)]>>4);return s.encode.bytes=l-n,t},decode(e,t,n){t??=0,n??=e.length;let i=n-t,c=i%3,l=t+i-c,u=[];for(let n=t;n<l;n+=3){let t=e[n]<<16|e[n+1]<<8|e[n+2];u.push(a[t>>18&63],a[t>>12&63],a[t>>6&63],a[t&63])}if(c===2){let t=(e[n-2]<<8)+e[n-1];u.push(a[t>>10],a[t>>4&63],a[t<<2&63]),r===1&&u.push(o)}else if(c===1){let t=e[n-1];u.push(a[t>>2],a[t<<4&63]),r===1&&u.push(o,o)}return s.decode.bytes=i,String.fromCharCode.apply(String,u)}};return s}ke(`base64`,`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,`=`,1);var Ae=ke(`base64-url`,`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,`=`,2),je=e(((e,t)=>{t.exports={}})),Me=typeof global<`u`?global.AbortError:typeof window<`u`?window.AbortError:null;Me||=class extends Error{constructor(e=`Request aborted.`){super(e)}},Me.prototype.name=`AbortError`,Me.prototype.code=`ABORT_ERR`;var Ne=typeof globalThis<`u`&&globalThis.URL||je().URL,Q=class extends Error{constructor(e,t,n){super(`status=`+t+` while requesting `+e+` [`+n+`]`),this.uri=e,this.status=t,this.method=n}toJSON(){return{code:this.code,uri:this.uri,status:this.status,method:this.method,endpoint:this.endpoint}}};Q.prototype.name=`HTTPStatusError`,Q.prototype.code=`HTTP_STATUS`;var Pe=class extends Error{constructor(e,t){super(e),this.cause=t}toJSON(){return{message:this.message,endpoint:this.endpoint,code:this.code,cause:Re(this.cause)}}};Pe.prototype.name=`ResponseError`,Pe.prototype.code=`RESPONSE_ERR`;var Fe=class extends Error{constructor(e){super(`Timeout (t=`+e+`).`),this.timeout=e}toJSON(){return{code:this.code,endpoint:this.endpoint,timeout:this.timeout}}};Fe.prototype.name=`TimeoutError`,Fe.prototype.code=`ETIMEOUT`;var Ie=/^((\d{1,3}\.){3,3}\d{1,3})(:(\d{2,5}))?$/,Le=/^((::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?)(:(\d{2,5}))?$/i;function Re(e){if(typeof e==`string`)return{message:e};try{let t=JSON.stringify(e);if(t!==`{}`)return JSON.parse(t)}catch{}let t={message:String(e.message||e)};return e.code!==void 0&&(t.code=String(e.code)),t}var ze=/^(([a-z0-9]+:)\/\/)?([^/[\s:]+|\[[^\]]+\])?(:([^/\s]+))?(\/[^\s]*)?(.*)$/,Be=/\[(post|get|((ipv4|ipv6|name)=([^\]]+)))\]/gi,Ve=/\[(((pk|name)=([^\]]+)))\]/gi;function He(e){let t=ze.exec(e),n=t[2]||`https:`,r=t[3],i=t[5],a=t[6],o=t[7];if(n===`https:`||n===`http:`){let e=Ue(o,Be);return{name:e.name,protocol:n,ipv4:e.ipv4,ipv6:e.ipv6,host:r,port:i,path:a,method:e.post?`POST`:`GET`}}if(n===`udp:`||n===`udp4:`||n===`udp6:`){let t=Ue(o,Ve),a=/^\[(.*)\]$/.exec(r);if(a&&n===`udp4:`)throw Error(`Endpoint parsing error: Cannot use ipv6 host with udp4: (endpoint=${e})`);if(!a&&n===`udp6:`)throw Error(`Endpoint parsing error: Incorrectly formatted host for udp6: (endpoint=${e})`);return a?new Ye({protocol:`udp6:`,ipv6:a[1],port:i,pk:t.pk,name:t.name}):new Je({protocol:`udp4:`,ipv4:r,port:i,pk:t.pk,name:t.name})}throw new We(n,e)}function Ue(e,t){t.lastIndex=0;let n={};for(;;){let r=t.exec(e);if(!r)break;r[2]?n[r[3].toLowerCase()]=r[4]:n[r[1].toLowerCase()]=!0}return n}var We=class extends Error{constructor(e,t){super(`Invalid Endpoint: unsupported protocol "${e}" for endpoint: ${t}, supported protocols: ${Ge.join(`, `)}`),this.protocol=e,this.endpoint=t}toJSON(){return{code:this.code,endpoint:this.endpoint,timeout:this.timeout}}};We.prototype.name=`InvalidProtocolError`,We.prototype.code=`EPROTOCOL`;var Ge=[`http:`,`https:`,`udp4:`,`udp6:`],Ke=class{constructor(e,t){this.name=e.name||null,this.protocol=e.protocol;let n=typeof e.port==`string`?e.port=parseInt(e.port,10):e.port;if(n==null)this.port=t?this.protocol===`https:`?443:80:e.pk?443:53;else if(typeof n!=`number`&&!isNaN(n))throw Error(`Invalid Endpoint: port "${e.port}" needs to be a number: ${JSON.stringify(e)}`);else this.port=n}toJSON(){return this.toString()}},qe=class extends Ke{constructor(e){super(e,!1),this.pk=e.pk||null}toString(){let e=this.port===(this.pk?443:53)?``:`:${this.port}`,t=this.pk?` [pk=${this.pk}]`:``,n=this.name?` [name=${this.name}]`:``;return`udp://${this.ipv4||`[${this.ipv6}]`}${e}${t}${n}`}},Je=class extends qe{constructor(e){if(super(Object.assign({protocol:`udp4:`},e)),!e.ipv4||typeof e.ipv4!=`string`)throw Error(`Invalid Endpoint: .ipv4 "${e.ipv4}" needs to be set: ${JSON.stringify(e)}`);this.ipv4=e.ipv4}},Ye=class extends qe{constructor(e){if(super(Object.assign({protocol:`udp6:`},e)),!e.ipv6||typeof e.ipv6!=`string`)throw Error(`Invalid Endpoint: .ipv6 "${e.ipv6}" needs to be set: ${JSON.stringify(e)}`);this.ipv6=e.ipv6}};function Xe(e){return Le.test(e)&&!Ie.test(e)?`[${e}]`:e}var Ze=class extends Ke{constructor(e){if(super(Object.assign({protocol:`https:`},e),!0),e.host||(e.ipv4&&(e.host=e.ipv4),e.ipv6&&(e.host=`[${e.ipv6}]`)),!e.host||typeof e.host!=`string`)throw Error(`Invalid Endpoint: host "${e.path}" needs to be set: ${JSON.stringify(e)}`);if(this.host=e.host,this.path=e.path||`/dns-query`,this.method=/^post$/i.test(e.method)?`POST`:`GET`,this.ipv4=e.ipv4,this.ipv6=e.ipv6,!this.ipv6){let e=Le.exec(this.host);e&&(this.ipv6=e[1])}this.ipv4||Ie.test(this.host)&&(this.ipv4=this.host);let t=`${this.protocol}//${Xe(this.host)}:${this.port}${this.path}`;try{this.url=new Ne(t)}catch(e){throw Error(e.message+` [${t}]`)}}toString(){let e=this.protocol===`https:`?``:`http://`,t=this.port===(this.protocol===`https:`?443:80)?``:`:${this.port}`,n=this.method===`GET`?``:` [post]`,r=this.path===`/dns-query`?``:this.path,i=this.name?` [name=${this.name}]`:``,a=this.ipv4&&this.ipv4!==this.host?` [ipv4=${this.ipv4}]`:``,o=this.ipv6&&this.ipv6!==this.host?` [ipv6=${this.ipv6}]`:``;return`${e}${Xe(this.host)}${t}${r}${n}${a}${o}${i}`}};function Qe(e){let t;if(typeof e==`string`)t=He(e);else{if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Can not convert ${e} to an endpoint`);if(e instanceof Ke)return e;t=e}(t.protocol===null||t.protocol===void 0)&&(t.protocol=`https:`);let n=t.protocol;if(n===`udp4:`)return new Je(t);if(n===`udp6:`)return new Ye(t);if(n===`https:`||n===`http:`)return new Ze(t);throw new We(n,JSON.stringify(t))}var $e=`application/dns-message`;function et(){}async function tt(e,t,n,r){let i=t?t.localStoragePrefix+t.name:null;if(i)try{let e=JSON.parse(localStorage.getItem(i));if(e&&e.time>t.maxTime)return e}catch{}let{data:a}=await nt(e,`GET`,null,n,r),o={time:Date.now(),data:JSON.parse(_(a))};if(i)try{localStorage.setItem(i,JSON.stringify(o))}catch{o.time=null}return o}function nt(e,t,n,r,i){return new Promise((a,o)=>{let s=new Ne(e);t===`GET`&&n&&(s.search=`?dns=`+Ae.decode(n));let c=s.toString(),l=new XMLHttpRequest;l.open(t,c,!0),l.setRequestHeader(`Accept`,$e),t===`POST`&&l.setRequestHeader(`Content-Type`,$e),l.responseType=`arraybuffer`,l.timeout=r,l.ontimeout=u,l.onreadystatechange=f,l.onerror=ee,l.onload=d,t===`POST`?l.send(n):l.send(),i&&i.addEventListener(`abort`,m);function u(){p(new Fe(r));try{l.abort()}catch{}}function d(){if(l.status!==200)p(new Q(c,l.status,t));else{let e;if(typeof l.response==`string`)e=g(l.response);else if(l.response instanceof Uint8Array)e=l.response;else if(Array.isArray(l.response)||l.response instanceof ArrayBuffer)e=new Uint8Array(l.response);else throw Error(`Unprocessable response `+l.response);p(null,e)}}function f(){if(l.readyState>1&&l.status!==200&&l.status!==0){p(new Q(c,l.status,t));try{l.abort()}catch{}}}let p=function(e,t){p=et,i&&i.removeEventListener(`abort`,m),a(e?{error:e,response:l}:{data:t,response:l})};function ee(){p(l.status===200?Error(`Inexplicable XHR Error`):new Q(c,l.status,t))}function m(){p(new Me);try{l.abort()}catch{}}})}function rt(e){return e.filter(e=>e.cors||e.endpoint.cors)}var it={data:[{name:`adfree.usableprivacy.net`,endpoint:{protocol:`https:`,host:`adfree.usableprivacy.net`},description:`Public updns DoH service with advertising, tracker and malware filters.
|
|
2
2
|
Hosted in Europe by @usableprivacy, details see: https://docs.usableprivacy.com`,country:`Germany`,location:{lat:51.2993,long:9.491},filter:!0},{name:`adguard-dns-doh`,endpoint:{protocol:`https:`,host:`dns.adguard.com`,ipv4:`94.140.15.15`},description:`Remove ads and protect your computer from malware (over DoH)`,country:`France`,location:{lat:48.8582,long:2.3387},filter:!0},{name:`adguard-dns-family-doh`,endpoint:{protocol:`https:`,host:`dns-family.adguard.com`,ipv4:`94.140.15.16`},description:`Adguard DNS with safesearch and adult content blocking (over DoH)`,country:`France`,location:{lat:48.8582,long:2.3387},filter:!0},{name:`adguard-dns-unfiltered-doh`,endpoint:{protocol:`https:`,host:`dns-unfiltered.adguard.com`,ipv4:`94.140.14.140`},description:`AdGuard public DNS servers without filters (over DoH)`,country:`France`,location:{lat:48.8582,long:2.3387}},{name:`ahadns-doh-chi`,endpoint:{protocol:`https:`,host:`doh.chi.ahadns.net`,cors:!0},description:`A zero logging DNS with support for DNS-over-HTTPS (DoH) & DNS-over-TLS (DoT). Blocks ads, malware, trackers, viruses, ransomware, telemetry and more. No persistent logs. DNSSEC. Hosted in Chicago, USA. By https://ahadns.com/
|
|
3
3
|
Server statistics can be seen at: https://statistics.ahadns.com/?server=chi`,country:`United States`,location:{lat:41.8483,long:-87.6517},filter:!0,cors:!0},{name:`ahadns-doh-in`,endpoint:{protocol:`https:`,host:`doh.in.ahadns.net`,cors:!0},description:`A zero logging DNS with support for DNS-over-HTTPS (DoH) & DNS-over-TLS (DoT). Blocks ads, malware, trackers, viruses, ransomware, telemetry and more. No persistent logs. DNSSEC. Hosted in Mumbai, India. By https://ahadns.com/
|
|
4
4
|
Server statistics can be seen at: https://statistics.ahadns.com/?server=in`,country:`India`,location:{lat:19.0748,long:72.8856},filter:!0,cors:!0},{name:`ahadns-doh-la`,endpoint:{protocol:`https:`,host:`doh.la.ahadns.net`,cors:!0},description:`A zero logging DNS with support for DNS-over-HTTPS (DoH) & DNS-over-TLS (DoT). Blocks ads, malware, trackers, viruses, ransomware, telemetry and more. No persistent logs. DNSSEC. Hosted in Los Angeles, USA. By https://ahadns.com/
|
|
@@ -84,4 +84,4 @@ https://www.switch.ch
|
|
|
84
84
|
Provides protection against malware, but does not block ads.`,filter:!0},{name:`uncensoreddns-dk-ipv4`,endpoint:{protocol:`https:`,host:`unicast.uncensoreddns.org`},description:`Also known as censurfridns.
|
|
85
85
|
DoH, no logs, no filter, DNSSEC, unicast hosted in Denmark - https://blog.uncensoreddns.org`,country:`Denmark`,location:{lat:55.7123,long:12.0564}},{name:`uncensoreddns-ipv4`,endpoint:{protocol:`https:`,host:`anycast.uncensoreddns.org`},description:`Also known as censurfridns.
|
|
86
86
|
DoH, no logs, no filter, DNSSEC, anycast - https://blog.uncensoreddns.org`,country:`Denmark`,location:{lat:55.7123,long:12.0564}},{name:`v.dnscrypt.uk-doh-ipv4`,endpoint:{protocol:`https:`,host:`v.dnscrypt.uk`},description:`DoH, no logs, uncensored, DNSSEC. Hosted in London UK on Digital Ocean
|
|
87
|
-
https://www.dnscrypt.uk`,country:`United Kingdom`,location:{lat:51.4964,long:-.1224}}],time:1654187067783};function
|
|
87
|
+
https://www.dnscrypt.uk`,country:`United Kingdom`,location:{lat:51.4964,long:-.1224}}],time:1654187067783};function at(e){let t=e.time===null||e.time===void 0?Date.now():e.time,n=rt(e.data.map(e=>(e.endpoint=Qe(Object.assign({name:e.name},e.endpoint)),e))),r=n.map(e=>e.endpoint);return{data:{resolvers:n,resolverByName:n.reduce((e,t)=>(e[t.name]=t,e),{}),endpoints:r,endpointByName:r.reduce((e,t)=>(e[t.name]=t,e),{})},time:t}}var ot=at(it),st=new Ne(`https://martinheidegger.github.io/dns-query/resolvers.json`);function ct(e){return/^@/.test(e)}new class{constructor(e){this.opts=Object.assign({timeout:5e3,update:!0,updateURL:st,persist:!1,localStoragePrefix:`dnsquery_`,maxAge:3e5},e),this._dataP=null}_data(e,t){return!e&&this._dataP!==null?this._dataP.then(e=>e.time<Date.now()-this.opts.maxAge?this._data(!0,e):e):(this._dataP=this.opts.update?tt(this.opts.updateURL,this.opts.persist?{name:`resolvers.json`,localStoragePrefix:this.opts.localStoragePrefix,maxTime:Date.now()-this.opts.maxAge}:null,this.opts.timeout).then(e=>at({data:e.data.resolvers,time:e.time})).catch(()=>t||ot):Promise.resolve(ot),this._dataP)}data(){return this._data(!1).then(e=>e.data)}endpoints(e){if(e==null)return this.data().then(e=>e.endpoints);if(e===`doh`&&(e=lt),e===`dns`&&(e=ut),typeof e==`function`)return this.data().then(t=>t.endpoints.filter(e));if(typeof e==`string`||typeof e[Symbol.iterator]!=`function`)return Promise.reject(Error(`Endpoints (${e}) needs to be iterable (array).`));if(e=Array.from(e).filter(Boolean),e.findIndex(ct)===-1)try{return Promise.resolve(e.map(Qe))}catch(e){return Promise.reject(e)}return this.data().then(t=>e.map(e=>{if(ct(e)){let n=t.endpointByName[e.substring(1)];if(!n)throw Error(`Endpoint ${e} is not known.`);return n}return Qe(e)}))}};function lt(e){return e.protocol===`https:`||e.protocol===`http:`}function ut(e){return e.protocol===`udp4:`||e.protocol===`udp6:`}var $={name:`AES-GCM`,length:256,tagLength:128,ivLength:12,key:`Hello, World!`},dt=new TextEncoder,ft=new TextDecoder,pt;function mt(){return pt||=crypto.subtle.digest(`SHA-256`,dt.encode($.key)).then(e=>crypto.subtle.importKey(`raw`,e,{name:$.name},!1,[`encrypt`,`decrypt`])),pt}function ht(e){return Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``)}function gt(e){if(e.length%2!=0)throw Error(`Invalid ciphertext`);let t=new Uint8Array(e.length/2);for(let n=0;n<t.length;n++){let r=Number.parseInt(e.slice(n*2,n*2+2),16);if(Number.isNaN(r))throw Error(`Invalid ciphertext`);t[n]=r}return t}async function _t(e){let t=crypto.getRandomValues(new Uint8Array($.ivLength)),n=await crypto.subtle.encrypt({name:$.name,iv:t,tagLength:$.tagLength},await mt(),dt.encode(e)),r=new Uint8Array($.ivLength+n.byteLength);return r.set(t),r.set(new Uint8Array(n),$.ivLength),ht(r)}async function vt(e){let t=gt(e);if(t.length<=$.ivLength)throw Error(`Invalid ciphertext`);let n=await crypto.subtle.decrypt({name:$.name,iv:t.slice(0,$.ivLength),tagLength:$.tagLength},await mt(),t.slice($.ivLength));return ft.decode(n)}(async()=>{let e=await _t(`Fizz Buzz`);console.log(`Encrypted:`,e);let t=await vt(e);console.log(`Decrypted:`,t)})()});
|