dns-message 1.0.0 → 1.0.1-canary-5358558d51748ee8060d5894158491696423b95e
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/CHANGELOG.md +15 -0
- package/dist/dns-message.d.ts +3 -3
- package/dist/dns-message.js +529 -505
- package/dist/dns-message.js.map +1 -1
- package/dist/dns-message.mjs +107 -83
- package/dist/dns-message.mjs.map +1 -1
- package/package.json +1 -1
package/dist/dns-message.mjs
CHANGED
|
@@ -141,62 +141,69 @@ const c = {
|
|
|
141
141
|
if ("." === t[t.length - 1]) {
|
|
142
142
|
e--;
|
|
143
143
|
}
|
|
144
|
-
|
|
144
|
+
e += t.replace(/\\\./g, ".").length;
|
|
145
|
+
if (e > 255) {
|
|
146
|
+
throw new RangeError(`Name "${t}" is above 255 byte limit.`);
|
|
147
|
+
}
|
|
148
|
+
return e;
|
|
145
149
|
}
|
|
146
150
|
},
|
|
147
151
|
write(t, e, n) {
|
|
148
152
|
const r = a.encode(n);
|
|
149
|
-
for (let
|
|
150
|
-
|
|
151
|
-
while (
|
|
152
|
-
|
|
153
|
+
for (let s = 46 === r[0] ? 1 : 0, a = 0; s < r.byteLength; s = a + 1) {
|
|
154
|
+
a = r.indexOf(46, s);
|
|
155
|
+
while (a > -1 && 92 === r[a - 1]) {
|
|
156
|
+
a = r.indexOf(46, a + 1);
|
|
153
157
|
}
|
|
154
|
-
if (-1 ===
|
|
155
|
-
|
|
158
|
+
if (-1 === a) {
|
|
159
|
+
a = r.byteLength;
|
|
156
160
|
}
|
|
157
|
-
if (
|
|
161
|
+
if (a === s) {
|
|
158
162
|
continue;
|
|
163
|
+
} else if (a - s > 63) {
|
|
164
|
+
throw new RangeError(`Label in "${n}" is above 63 byte limit.`);
|
|
159
165
|
}
|
|
160
|
-
let
|
|
161
|
-
for (let e =
|
|
166
|
+
let i = e + 1;
|
|
167
|
+
for (let e = s; e < a; e++) {
|
|
162
168
|
if (92 === r[e] && 46 === r[e + 1]) {
|
|
163
169
|
e++;
|
|
164
170
|
}
|
|
165
|
-
t.setUint8(
|
|
171
|
+
t.setUint8(i++, r[e]);
|
|
166
172
|
}
|
|
167
|
-
t.setUint8(e,
|
|
168
|
-
e =
|
|
169
|
-
|
|
173
|
+
t.setUint8(e, i - e - 1);
|
|
174
|
+
e = i;
|
|
175
|
+
s = a + 1;
|
|
170
176
|
}
|
|
171
177
|
return e + 1;
|
|
172
178
|
},
|
|
173
179
|
read(t, e) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
if (0 ===
|
|
180
|
+
const n = [];
|
|
181
|
+
let r = e.offset;
|
|
182
|
+
let s = e;
|
|
183
|
+
while (1) {
|
|
184
|
+
const e = t.getUint8(s.offset);
|
|
185
|
+
if (0 === e) {
|
|
186
|
+
advance(s, 1);
|
|
180
187
|
break;
|
|
181
|
-
} else if (!(192 &
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
188
|
+
} else if (!(192 & e)) {
|
|
189
|
+
advance(s, 1);
|
|
190
|
+
const r = sliceView(t, s, e);
|
|
191
|
+
n.push(i.decode(r).replace(/\./g, "\\."));
|
|
192
|
+
} else {
|
|
193
|
+
const e = t.getUint16(s.offset) - 49152;
|
|
194
|
+
advance(s, 2);
|
|
195
|
+
if (e < r) {
|
|
196
|
+
s = {
|
|
197
|
+
offset: r = e,
|
|
198
|
+
length: 0
|
|
199
|
+
};
|
|
200
|
+
} else {
|
|
201
|
+
advance(s, 2);
|
|
202
|
+
break;
|
|
193
203
|
}
|
|
194
|
-
e.offset = n;
|
|
195
|
-
e.length = r;
|
|
196
|
-
break;
|
|
197
204
|
}
|
|
198
205
|
}
|
|
199
|
-
return
|
|
206
|
+
return n.join(".") || ".";
|
|
200
207
|
}
|
|
201
208
|
};
|
|
202
209
|
|
|
@@ -390,8 +397,9 @@ const array = t => ({
|
|
|
390
397
|
});
|
|
391
398
|
|
|
392
399
|
const advance = (t, e) => {
|
|
393
|
-
t.offset += e;
|
|
394
|
-
t.length -= e;
|
|
400
|
+
t.offset += 0 | e;
|
|
401
|
+
t.length -= 0 | e;
|
|
402
|
+
t.length &= ~(t.length >> 31);
|
|
395
403
|
};
|
|
396
404
|
|
|
397
405
|
const sliceView = (t, e, n = e.length) => {
|
|
@@ -439,7 +447,7 @@ let w = function(t) {
|
|
|
439
447
|
return t;
|
|
440
448
|
}({});
|
|
441
449
|
|
|
442
|
-
const
|
|
450
|
+
const E = withRDLength({
|
|
443
451
|
bytes: t => f.bytes(t.data),
|
|
444
452
|
write: (t, e, n) => f.write(t, e, n.data),
|
|
445
453
|
read: (t, e) => ({
|
|
@@ -448,16 +456,16 @@ const b = withRDLength({
|
|
|
448
456
|
})
|
|
449
457
|
});
|
|
450
458
|
|
|
451
|
-
const
|
|
459
|
+
const b = "(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])";
|
|
452
460
|
|
|
453
|
-
const
|
|
461
|
+
const A = new RegExp(`^${`(?:${b}\\.){3}${b}`}$`);
|
|
454
462
|
|
|
455
|
-
const
|
|
463
|
+
const p = withRDLength({
|
|
456
464
|
bytes: t => Math.ceil((t.sourcePrefixLength || 0) / 8) + 4,
|
|
457
465
|
write(t, e, n) {
|
|
458
466
|
const r = n.sourcePrefixLength || 0;
|
|
459
467
|
const s = n.scopePrefixLength || 0;
|
|
460
|
-
const a = n.family || (
|
|
468
|
+
const a = n.family || (A.test(n.ip) ? w.v4 : w.v6);
|
|
461
469
|
const i = Math.ceil(r / 8);
|
|
462
470
|
t.setUint16(e, a);
|
|
463
471
|
t.setUint8(e + 2, r);
|
|
@@ -488,7 +496,7 @@ const A = withRDLength({
|
|
|
488
496
|
}
|
|
489
497
|
});
|
|
490
498
|
|
|
491
|
-
const
|
|
499
|
+
const N = withRDLength({
|
|
492
500
|
bytes: t => t.timeout ? 2 : 0,
|
|
493
501
|
write(t, e, n) {
|
|
494
502
|
if (n.timeout) {
|
|
@@ -514,7 +522,7 @@ const S = withRDLength({
|
|
|
514
522
|
}
|
|
515
523
|
});
|
|
516
524
|
|
|
517
|
-
const
|
|
525
|
+
const S = withRDLength({
|
|
518
526
|
bytes: t => t.length || 0,
|
|
519
527
|
write: (t, e, n) => e + (n.length || 0),
|
|
520
528
|
read(t, e) {
|
|
@@ -555,17 +563,17 @@ const isUnknownOpt = t => !!t.data;
|
|
|
555
563
|
const I = {
|
|
556
564
|
bytes(t) {
|
|
557
565
|
if (isUnknownOpt(t)) {
|
|
558
|
-
return
|
|
566
|
+
return E.bytes(t) + 2;
|
|
559
567
|
}
|
|
560
568
|
switch (t.code) {
|
|
561
569
|
case s.CLIENT_SUBNET:
|
|
562
|
-
return
|
|
570
|
+
return p.bytes(t) + 2;
|
|
563
571
|
|
|
564
572
|
case s.TCP_KEEPALIVE:
|
|
565
|
-
return
|
|
573
|
+
return N.bytes(t) + 2;
|
|
566
574
|
|
|
567
575
|
case s.PADDING:
|
|
568
|
-
return
|
|
576
|
+
return S.bytes(t) + 2;
|
|
569
577
|
|
|
570
578
|
case s.KEY_TAG:
|
|
571
579
|
return T.bytes(t) + 2;
|
|
@@ -575,17 +583,17 @@ const I = {
|
|
|
575
583
|
t.setUint16(e, n.code);
|
|
576
584
|
e += 2;
|
|
577
585
|
if (isUnknownOpt(n)) {
|
|
578
|
-
return
|
|
586
|
+
return E.write(t, e, n);
|
|
579
587
|
}
|
|
580
588
|
switch (n.code) {
|
|
581
589
|
case s.CLIENT_SUBNET:
|
|
582
|
-
return
|
|
590
|
+
return p.write(t, e, n);
|
|
583
591
|
|
|
584
592
|
case s.TCP_KEEPALIVE:
|
|
585
|
-
return
|
|
593
|
+
return N.write(t, e, n);
|
|
586
594
|
|
|
587
595
|
case s.PADDING:
|
|
588
|
-
return
|
|
596
|
+
return S.write(t, e, n);
|
|
589
597
|
|
|
590
598
|
case s.KEY_TAG:
|
|
591
599
|
return T.write(t, e, n);
|
|
@@ -596,19 +604,19 @@ const I = {
|
|
|
596
604
|
advance(e, 2);
|
|
597
605
|
switch (n) {
|
|
598
606
|
case s.CLIENT_SUBNET:
|
|
599
|
-
return
|
|
607
|
+
return p.read(t, e);
|
|
600
608
|
|
|
601
609
|
case s.TCP_KEEPALIVE:
|
|
602
|
-
return
|
|
610
|
+
return N.read(t, e);
|
|
603
611
|
|
|
604
612
|
case s.PADDING:
|
|
605
|
-
return
|
|
613
|
+
return S.read(t, e);
|
|
606
614
|
|
|
607
615
|
case s.KEY_TAG:
|
|
608
616
|
return T.read(t, e);
|
|
609
617
|
|
|
610
618
|
default:
|
|
611
|
-
const r =
|
|
619
|
+
const r = E.read(t, e);
|
|
612
620
|
r.code = n;
|
|
613
621
|
return r;
|
|
614
622
|
}
|
|
@@ -628,9 +636,9 @@ let P = function(t) {
|
|
|
628
636
|
return t;
|
|
629
637
|
}({});
|
|
630
638
|
|
|
631
|
-
const
|
|
639
|
+
const R = withRDLength(array(g));
|
|
632
640
|
|
|
633
|
-
const
|
|
641
|
+
const D = withRDLength(array(d));
|
|
634
642
|
|
|
635
643
|
const C = withRDLength(g);
|
|
636
644
|
|
|
@@ -644,10 +652,10 @@ const v = {
|
|
|
644
652
|
bytes(t) {
|
|
645
653
|
let e = 0;
|
|
646
654
|
if (null != t.mandatory) {
|
|
647
|
-
e +=
|
|
655
|
+
e += R.bytes(t.mandatory) + 2;
|
|
648
656
|
}
|
|
649
657
|
if (null != t.alpn) {
|
|
650
|
-
e +=
|
|
658
|
+
e += D.bytes(t.alpn) + 2;
|
|
651
659
|
}
|
|
652
660
|
if (t["no-default-alpn"]) {
|
|
653
661
|
e += 4;
|
|
@@ -675,11 +683,11 @@ const v = {
|
|
|
675
683
|
write(t, e, n) {
|
|
676
684
|
if (null != n.mandatory) {
|
|
677
685
|
t.setUint16(e, P.Mandatory);
|
|
678
|
-
e =
|
|
686
|
+
e = R.write(t, e + 2, n.mandatory);
|
|
679
687
|
}
|
|
680
688
|
if (null != n.alpn) {
|
|
681
689
|
t.setUint16(e, P.Alpn);
|
|
682
|
-
e =
|
|
690
|
+
e = D.write(t, e + 2, n.alpn);
|
|
683
691
|
}
|
|
684
692
|
if (n["no-default-alpn"]) {
|
|
685
693
|
t.setUint16(e, P.NoDefaultAlpn);
|
|
@@ -729,11 +737,11 @@ const v = {
|
|
|
729
737
|
advance(e, 2);
|
|
730
738
|
switch (n) {
|
|
731
739
|
case P.Mandatory:
|
|
732
|
-
s.mandatory =
|
|
740
|
+
s.mandatory = R.read(t, e);
|
|
733
741
|
break;
|
|
734
742
|
|
|
735
743
|
case P.Alpn:
|
|
736
|
-
s.alpn =
|
|
744
|
+
s.alpn = D.read(t, e);
|
|
737
745
|
break;
|
|
738
746
|
|
|
739
747
|
case P.NoDefaultAlpn:
|
|
@@ -779,11 +787,11 @@ const x = withRDLength(c);
|
|
|
779
787
|
|
|
780
788
|
const _ = withRDLength(l);
|
|
781
789
|
|
|
782
|
-
const
|
|
790
|
+
const M = withRDLength(y);
|
|
783
791
|
|
|
784
|
-
const
|
|
792
|
+
const V = withRDLength(array(d));
|
|
785
793
|
|
|
786
|
-
const
|
|
794
|
+
const Y = withRDLength({
|
|
787
795
|
bytes: t => c.bytes(t.target) + 6,
|
|
788
796
|
write(t, e, n) {
|
|
789
797
|
t.setUint16(e, n.priority || 0);
|
|
@@ -807,7 +815,7 @@ const K = withRDLength({
|
|
|
807
815
|
}
|
|
808
816
|
});
|
|
809
817
|
|
|
810
|
-
const
|
|
818
|
+
const K = withRDLength({
|
|
811
819
|
bytes: t => d.bytes(t.cpu) + d.bytes(t.os),
|
|
812
820
|
write(t, e, n) {
|
|
813
821
|
e = d.write(t, e, n.cpu);
|
|
@@ -1129,22 +1137,22 @@ const nt = {
|
|
|
1129
1137
|
return n + F.bytes(t.data);
|
|
1130
1138
|
|
|
1131
1139
|
case e.HINFO:
|
|
1132
|
-
return n +
|
|
1140
|
+
return n + K.bytes(t.data);
|
|
1133
1141
|
|
|
1134
1142
|
case e.MX:
|
|
1135
1143
|
return n + G.bytes(t.data);
|
|
1136
1144
|
|
|
1137
1145
|
case e.TXT:
|
|
1138
|
-
return n +
|
|
1146
|
+
return n + V.bytes(t.data);
|
|
1139
1147
|
|
|
1140
1148
|
case e.RP:
|
|
1141
1149
|
return n + $.bytes(t.data);
|
|
1142
1150
|
|
|
1143
1151
|
case e.AAAA:
|
|
1144
|
-
return n +
|
|
1152
|
+
return n + M.bytes(t.data);
|
|
1145
1153
|
|
|
1146
1154
|
case e.SRV:
|
|
1147
|
-
return n +
|
|
1155
|
+
return n + Y.bytes(t.data);
|
|
1148
1156
|
|
|
1149
1157
|
case e.NAPTR:
|
|
1150
1158
|
return n + W.bytes(t.data);
|
|
@@ -1180,6 +1188,11 @@ const nt = {
|
|
|
1180
1188
|
case e.CAA:
|
|
1181
1189
|
return n + X.bytes(t.data);
|
|
1182
1190
|
|
|
1191
|
+
case e.PTR:
|
|
1192
|
+
case e.CNAME:
|
|
1193
|
+
case e.DNAME:
|
|
1194
|
+
return n + x.bytes(t.data);
|
|
1195
|
+
|
|
1183
1196
|
default:
|
|
1184
1197
|
return n + H.bytes(t.data);
|
|
1185
1198
|
}
|
|
@@ -1210,22 +1223,22 @@ const nt = {
|
|
|
1210
1223
|
return F.write(t, n, r.data);
|
|
1211
1224
|
|
|
1212
1225
|
case e.HINFO:
|
|
1213
|
-
return
|
|
1226
|
+
return K.write(t, n, r.data);
|
|
1214
1227
|
|
|
1215
1228
|
case e.MX:
|
|
1216
1229
|
return G.write(t, n, r.data);
|
|
1217
1230
|
|
|
1218
1231
|
case e.TXT:
|
|
1219
|
-
return
|
|
1232
|
+
return V.write(t, n, r.data);
|
|
1220
1233
|
|
|
1221
1234
|
case e.RP:
|
|
1222
1235
|
return $.write(t, n, r.data);
|
|
1223
1236
|
|
|
1224
1237
|
case e.AAAA:
|
|
1225
|
-
return
|
|
1238
|
+
return M.write(t, n, r.data);
|
|
1226
1239
|
|
|
1227
1240
|
case e.SRV:
|
|
1228
|
-
return
|
|
1241
|
+
return Y.write(t, n, r.data);
|
|
1229
1242
|
|
|
1230
1243
|
case e.NAPTR:
|
|
1231
1244
|
return W.write(t, n, r.data);
|
|
@@ -1258,6 +1271,11 @@ const nt = {
|
|
|
1258
1271
|
case e.CAA:
|
|
1259
1272
|
return X.write(t, n, r.data);
|
|
1260
1273
|
|
|
1274
|
+
case e.PTR:
|
|
1275
|
+
case e.CNAME:
|
|
1276
|
+
case e.DNAME:
|
|
1277
|
+
return x.write(t, n, r.data);
|
|
1278
|
+
|
|
1261
1279
|
default:
|
|
1262
1280
|
return H.write(t, n, r.data);
|
|
1263
1281
|
}
|
|
@@ -1305,7 +1323,7 @@ const nt = {
|
|
|
1305
1323
|
return o;
|
|
1306
1324
|
|
|
1307
1325
|
case e.HINFO:
|
|
1308
|
-
o.data =
|
|
1326
|
+
o.data = K.read(t, n);
|
|
1309
1327
|
return o;
|
|
1310
1328
|
|
|
1311
1329
|
case e.MX:
|
|
@@ -1313,7 +1331,7 @@ const nt = {
|
|
|
1313
1331
|
return o;
|
|
1314
1332
|
|
|
1315
1333
|
case e.TXT:
|
|
1316
|
-
o.data =
|
|
1334
|
+
o.data = V.read(t, n);
|
|
1317
1335
|
return o;
|
|
1318
1336
|
|
|
1319
1337
|
case e.RP:
|
|
@@ -1321,11 +1339,11 @@ const nt = {
|
|
|
1321
1339
|
return o;
|
|
1322
1340
|
|
|
1323
1341
|
case e.AAAA:
|
|
1324
|
-
o.data =
|
|
1342
|
+
o.data = M.read(t, n);
|
|
1325
1343
|
return o;
|
|
1326
1344
|
|
|
1327
1345
|
case e.SRV:
|
|
1328
|
-
o.data =
|
|
1346
|
+
o.data = Y.read(t, n);
|
|
1329
1347
|
return o;
|
|
1330
1348
|
|
|
1331
1349
|
case e.NAPTR:
|
|
@@ -1369,6 +1387,12 @@ const nt = {
|
|
|
1369
1387
|
o.data = X.read(t, n);
|
|
1370
1388
|
return o;
|
|
1371
1389
|
|
|
1390
|
+
case e.PTR:
|
|
1391
|
+
case e.CNAME:
|
|
1392
|
+
case e.DNAME:
|
|
1393
|
+
o.data = x.read(t, n);
|
|
1394
|
+
return o;
|
|
1395
|
+
|
|
1372
1396
|
default:
|
|
1373
1397
|
o.data = H.read(t, n);
|
|
1374
1398
|
return o;
|
|
@@ -1463,7 +1487,7 @@ function decode(t) {
|
|
|
1463
1487
|
|
|
1464
1488
|
function streamDecode(t) {
|
|
1465
1489
|
const e = "buffer" in t ? new DataView(t.buffer, t.byteOffset, t.byteLength) : new DataView(t);
|
|
1466
|
-
const n = Math.min(e.byteLength, e.getUint16(0))
|
|
1490
|
+
const n = Math.min(e.byteLength - 2, e.getUint16(0));
|
|
1467
1491
|
return rt.read(e, {
|
|
1468
1492
|
offset: 2,
|
|
1469
1493
|
length: n
|
|
@@ -1484,7 +1508,7 @@ function streamEncode(t) {
|
|
|
1484
1508
|
const e = new ArrayBuffer(rt.bytes(t) + 2);
|
|
1485
1509
|
const n = new DataView(e);
|
|
1486
1510
|
const r = rt.write(n, 2, t);
|
|
1487
|
-
n.setUint16(0, r);
|
|
1511
|
+
n.setUint16(0, r - 2);
|
|
1488
1512
|
return new Uint8Array(e, 0, r);
|
|
1489
1513
|
}
|
|
1490
1514
|
|