better-hosts 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,18 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
+
5
+ ### [0.1.1](https://github.com/BlackGlory/better-hosts/compare/v0.1.0...v0.1.1) (2022-03-20)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * forward entire response instead of answers ([ea23916](https://github.com/BlackGlory/better-hosts/commit/ea239165b13d87bf2708568954d2996a73584688))
11
+ * logging ([59b296f](https://github.com/BlackGlory/better-hosts/commit/59b296f032db38e04f4d87ac571bbd0d3c983370))
12
+
13
+ ## 0.1.0 (2022-03-03)
14
+
15
+
16
+ ### Features
17
+
18
+ * init ([e201dfb](https://github.com/BlackGlory/better-hosts/commit/e201dfbb4365df41d15e32e5287eec112b035ef2))
package/lib/cli.js CHANGED
@@ -39,7 +39,7 @@ function getOptions() {
39
39
  (0, errors_1.assert)(/^\d+$/.test(opts.port), 'The parameter port must be integer');
40
40
  const port = Number.parseInt(opts.port, 10);
41
41
  const fallbackServer = opts.fallbackServer;
42
- const logLevel = (0, extra_logger_1.stringToLevel)(opts.log, 3);
42
+ const logLevel = (0, extra_logger_1.stringToLevel)(opts.log, extra_logger_1.Level.Info);
43
43
  return {
44
44
  port,
45
45
  fallbackServer,
package/lib/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AACA,yCAAmC;AACnC,qCAAsC;AACtC,+CAA2C;AAC3C,+CAA8E;AAC9E,gEAA0D;AAC1D,mCAA+B;AAE/B,mBAAO;KACJ,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC;KACrC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;KAC3C,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC;KACnD,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,IAAI,CAAC;KACjC,MAAM,CAAC,4BAA4B,EAAE,EAAE,CAAC;KACxC,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,MAAM,CAAC;KACnC,QAAQ,CAAC,YAAY,CAAC;KACtB,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;IACjC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAG,IAAI,qBAAM,CAAC;QACxB,KAAK,EAAE,OAAO,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,gCAAiB,CAAC,EAAE,CAAC;KACrC,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC;QACtB,QAAQ;QACR,MAAM;KACP,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,IAAA,mCAAe,EAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAE9D,IAAA,oBAAW,EAAC;QACV,MAAM;QACN,KAAK;QACL,cAAc;QACd,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAA;AACJ,CAAC,CAAC;KACD,KAAK,EAAE,CAAA;AAEV,SAAS,UAAU;IACjB,MAAM,IAAI,GAAG,mBAAO,CAAC,IAAI,EAAE,CAAA;IAE3B,IAAA,eAAM,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,oCAAoC,CAAC,CAAA;IACrE,MAAM,IAAI,GAAW,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAEnD,MAAM,cAAc,GAAW,IAAI,CAAC,cAAc,CAAA;IAClD,MAAM,QAAQ,GAAU,IAAA,4BAAa,EAAC,IAAI,CAAC,GAAG,IAAa,CAAA;IAE3D,OAAO;QACL,IAAI;QACJ,cAAc;QACd,QAAQ;KACT,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AACA,yCAAmC;AACnC,qCAAsC;AACtC,+CAA2C;AAC3C,+CAA8E;AAC9E,gEAA0D;AAC1D,mCAA+B;AAE/B,mBAAO;KACJ,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC;KACrC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;KAC3C,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC;KACnD,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,IAAI,CAAC;KACjC,MAAM,CAAC,4BAA4B,EAAE,EAAE,CAAC;KACxC,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,MAAM,CAAC;KACnC,QAAQ,CAAC,YAAY,CAAC;KACtB,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;IACjC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAG,IAAI,qBAAM,CAAC;QACxB,KAAK,EAAE,OAAO,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,gCAAiB,CAAC,EAAE,CAAC;KACrC,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC;QACtB,QAAQ;QACR,MAAM;KACP,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,IAAA,mCAAe,EAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAE9D,IAAA,oBAAW,EAAC;QACV,MAAM;QACN,KAAK;QACL,cAAc;QACd,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAA;AACJ,CAAC,CAAC;KACD,KAAK,EAAE,CAAA;AAEV,SAAS,UAAU;IACjB,MAAM,IAAI,GAAG,mBAAO,CAAC,IAAI,EAAE,CAAA;IAE3B,IAAA,eAAM,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,oCAAoC,CAAC,CAAA;IACrE,MAAM,IAAI,GAAW,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAEnD,MAAM,cAAc,GAAW,IAAI,CAAC,cAAc,CAAA;IAClD,MAAM,QAAQ,GAAU,IAAA,4BAAa,EAAC,IAAI,CAAC,GAAG,EAAE,oBAAK,CAAC,IAAI,CAAC,CAAA;IAE3D,OAAO;QACL,IAAI;QACJ,cAAc;QACd,QAAQ;KACT,CAAA;AACH,CAAC"}
package/lib/hosts.js CHANGED
@@ -25,18 +25,20 @@ class Hosts {
25
25
  }));
26
26
  }
27
27
  resolveA(hostname) {
28
- const record = this.records.find(record => {
29
- return record.pattern.match(hostname)
30
- && (0, is_ipv4_address_1.isIPv4Address)(record.address);
31
- });
32
- return record === null || record === void 0 ? void 0 : record.address;
28
+ const records = this.records.filter(record => record.pattern.match(hostname));
29
+ const record = records.find(record => (0, is_ipv4_address_1.isIPv4Address)(record.address));
30
+ return {
31
+ address: record === null || record === void 0 ? void 0 : record.address,
32
+ hasRecords: !!records.length
33
+ };
33
34
  }
34
35
  resolveAAAA(hostname) {
35
- const record = this.records.find(record => {
36
- return record.pattern.match(hostname)
37
- && (0, is_ipv6_address_1.isIPv6Address)(record.address);
38
- });
39
- return record === null || record === void 0 ? void 0 : record.address;
36
+ const records = this.records.filter(record => record.pattern.match(hostname));
37
+ const record = records.find(record => (0, is_ipv6_address_1.isIPv6Address)(record.address));
38
+ return {
39
+ address: record === null || record === void 0 ? void 0 : record.address,
40
+ hasRecords: !!records.length
41
+ };
40
42
  }
41
43
  }
42
44
  exports.Hosts = Hosts;
package/lib/hosts.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hosts.js","sourceRoot":"","sources":["../src/hosts.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAsD;AACtD,4DAAsD;AACtD,8DAAyD;AACzD,kDAA6C;AAE7C,wDAA+B;AAO/B,MAAa,KAAK;IAGhB,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAwC;QAF9D,YAAO,GAAc,EAAE,CAAA;QAG7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAErB,kBAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YAClE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACrB,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,QAAgB;QACrB,IAAI,CAAC,OAAO,GAAG,IAAA,sBAAS,EAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAChD,OAAO,EAAE,IAAI,kCAAe,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC7C,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC,CAAA;IACL,CAAC;IAED,QAAQ,CAAC,QAAgB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACxC,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;mBAC9B,IAAA,+BAAa,EAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAA;IACxB,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACxC,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;mBAC9B,IAAA,+BAAa,EAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAA;IACxB,CAAC;CACF;AAlCD,sBAkCC"}
1
+ {"version":3,"file":"hosts.js","sourceRoot":"","sources":["../src/hosts.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAsD;AACtD,4DAAsD;AACtD,8DAAyD;AACzD,kDAA6C;AAE7C,wDAA+B;AAY/B,MAAa,KAAK;IAGhB,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAwC;QAF9D,YAAO,GAAc,EAAE,CAAA;QAG7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAErB,kBAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YAClE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACrB,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,QAAgB;QACrB,IAAI,CAAC,OAAO,GAAG,IAAA,sBAAS,EAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAChD,OAAO,EAAE,IAAI,kCAAe,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC7C,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC,CAAA;IACL,CAAC;IAED,QAAQ,CAAC,QAAgB;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAA,+BAAa,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACpE,OAAO;YACL,OAAO,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO;YACxB,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM;SAC7B,CAAA;IACH,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAA,+BAAa,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACpE,OAAO;YACL,OAAO,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO;YACxB,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM;SAC7B,CAAA;IACH,CAAC;CACF;AApCD,sBAoCC"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RecordType = void 0;
4
+ var RecordType;
5
+ (function (RecordType) {
6
+ RecordType[RecordType["A"] = 1] = "A";
7
+ RecordType[RecordType["NS"] = 2] = "NS";
8
+ RecordType[RecordType["MD"] = 3] = "MD";
9
+ RecordType[RecordType["MF"] = 4] = "MF";
10
+ RecordType[RecordType["CNAME"] = 5] = "CNAME";
11
+ RecordType[RecordType["SOA"] = 6] = "SOA";
12
+ RecordType[RecordType["MB"] = 7] = "MB";
13
+ RecordType[RecordType["MG"] = 8] = "MG";
14
+ RecordType[RecordType["MR"] = 9] = "MR";
15
+ RecordType[RecordType["NULL"] = 10] = "NULL";
16
+ RecordType[RecordType["WKS"] = 11] = "WKS";
17
+ RecordType[RecordType["PTR"] = 12] = "PTR";
18
+ RecordType[RecordType["HINFO"] = 13] = "HINFO";
19
+ RecordType[RecordType["MINFO"] = 14] = "MINFO";
20
+ RecordType[RecordType["MX"] = 15] = "MX";
21
+ RecordType[RecordType["TXT"] = 16] = "TXT";
22
+ RecordType[RecordType["RP"] = 17] = "RP";
23
+ RecordType[RecordType["AFSDB"] = 18] = "AFSDB";
24
+ RecordType[RecordType["X25"] = 19] = "X25";
25
+ RecordType[RecordType["ISDN"] = 20] = "ISDN";
26
+ RecordType[RecordType["RT"] = 21] = "RT";
27
+ RecordType[RecordType["NSAP"] = 22] = "NSAP";
28
+ RecordType[RecordType["NSAP-PTR"] = 23] = "NSAP-PTR";
29
+ RecordType[RecordType["SIG"] = 24] = "SIG";
30
+ RecordType[RecordType["KEY"] = 25] = "KEY";
31
+ RecordType[RecordType["PX"] = 26] = "PX";
32
+ RecordType[RecordType["GPOS"] = 27] = "GPOS";
33
+ RecordType[RecordType["AAAA"] = 28] = "AAAA";
34
+ RecordType[RecordType["LOC"] = 29] = "LOC";
35
+ RecordType[RecordType["NXT"] = 30] = "NXT";
36
+ RecordType[RecordType["EID"] = 31] = "EID";
37
+ RecordType[RecordType["NIMLOC"] = 32] = "NIMLOC";
38
+ RecordType[RecordType["SRV"] = 33] = "SRV";
39
+ RecordType[RecordType["ATMA"] = 34] = "ATMA";
40
+ RecordType[RecordType["NAPTR"] = 35] = "NAPTR";
41
+ RecordType[RecordType["KX"] = 36] = "KX";
42
+ RecordType[RecordType["CERT"] = 37] = "CERT";
43
+ RecordType[RecordType["A6"] = 38] = "A6";
44
+ RecordType[RecordType["DNAME"] = 39] = "DNAME";
45
+ RecordType[RecordType["SINK"] = 40] = "SINK";
46
+ RecordType[RecordType["OPT"] = 41] = "OPT";
47
+ RecordType[RecordType["APL"] = 42] = "APL";
48
+ RecordType[RecordType["DS"] = 43] = "DS";
49
+ RecordType[RecordType["SSHFP"] = 44] = "SSHFP";
50
+ RecordType[RecordType["IPSECKEY"] = 45] = "IPSECKEY";
51
+ RecordType[RecordType["RRSIG"] = 46] = "RRSIG";
52
+ RecordType[RecordType["NSEC"] = 47] = "NSEC";
53
+ RecordType[RecordType["DNSKEY"] = 48] = "DNSKEY";
54
+ RecordType[RecordType["DHCID"] = 49] = "DHCID";
55
+ RecordType[RecordType["NSEC3"] = 50] = "NSEC3";
56
+ RecordType[RecordType["NSEC3PARAM"] = 51] = "NSEC3PARAM";
57
+ RecordType[RecordType["TLSA"] = 52] = "TLSA";
58
+ RecordType[RecordType["HIP"] = 55] = "HIP";
59
+ RecordType[RecordType["NINFO"] = 56] = "NINFO";
60
+ RecordType[RecordType["RKEY"] = 57] = "RKEY";
61
+ RecordType[RecordType["TALINK"] = 58] = "TALINK";
62
+ RecordType[RecordType["CDS"] = 59] = "CDS";
63
+ RecordType[RecordType["SPF"] = 99] = "SPF";
64
+ RecordType[RecordType["UINFO"] = 100] = "UINFO";
65
+ RecordType[RecordType["UID"] = 101] = "UID";
66
+ RecordType[RecordType["GID"] = 102] = "GID";
67
+ RecordType[RecordType["UNSPEC"] = 103] = "UNSPEC";
68
+ RecordType[RecordType["TKEY"] = 249] = "TKEY";
69
+ RecordType[RecordType["TSIG"] = 250] = "TSIG";
70
+ RecordType[RecordType["IXFR"] = 251] = "IXFR";
71
+ RecordType[RecordType["AXFR"] = 252] = "AXFR";
72
+ RecordType[RecordType["MAILB"] = 253] = "MAILB";
73
+ RecordType[RecordType["MAILA"] = 254] = "MAILA";
74
+ RecordType[RecordType["ANY"] = 255] = "ANY";
75
+ RecordType[RecordType["URI"] = 256] = "URI";
76
+ RecordType[RecordType["CAA"] = 257] = "CAA";
77
+ RecordType[RecordType["TA"] = 32768] = "TA";
78
+ RecordType[RecordType["DLV"] = 32769] = "DLV";
79
+ })(RecordType = exports.RecordType || (exports.RecordType = {}));
80
+ //# sourceMappingURL=record-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-types.js","sourceRoot":"","sources":["../src/record-types.ts"],"names":[],"mappings":";;;AAAA,IAAY,UA0EX;AA1ED,WAAY,UAAU;IACpB,qCAAK,CAAA;IACL,uCAAM,CAAA;IACN,uCAAM,CAAA;IACN,uCAAM,CAAA;IACN,6CAAS,CAAA;IACT,yCAAO,CAAA;IACP,uCAAM,CAAA;IACN,uCAAM,CAAA;IACN,uCAAM,CAAA;IACN,4CAAS,CAAA;IACT,0CAAQ,CAAA;IACR,0CAAQ,CAAA;IACR,8CAAU,CAAA;IACV,8CAAU,CAAA;IACV,wCAAO,CAAA;IACP,0CAAQ,CAAA;IACR,wCAAO,CAAA;IACP,8CAAU,CAAA;IACV,0CAAQ,CAAA;IACR,4CAAS,CAAA;IACT,wCAAO,CAAA;IACP,4CAAS,CAAA;IACT,oDAAe,CAAA;IACf,0CAAQ,CAAA;IACR,0CAAQ,CAAA;IACR,wCAAO,CAAA;IACP,4CAAS,CAAA;IACT,4CAAS,CAAA;IACT,0CAAQ,CAAA;IACR,0CAAQ,CAAA;IACR,0CAAQ,CAAA;IACR,gDAAW,CAAA;IACX,0CAAQ,CAAA;IACR,4CAAS,CAAA;IACT,8CAAU,CAAA;IACV,wCAAO,CAAA;IACP,4CAAS,CAAA;IACT,wCAAO,CAAA;IACP,8CAAU,CAAA;IACV,4CAAS,CAAA;IACT,0CAAQ,CAAA;IACR,0CAAQ,CAAA;IACR,wCAAO,CAAA;IACP,8CAAU,CAAA;IACV,oDAAa,CAAA;IACb,8CAAU,CAAA;IACV,4CAAS,CAAA;IACT,gDAAW,CAAA;IACX,8CAAU,CAAA;IACV,8CAAU,CAAA;IACV,wDAAe,CAAA;IACf,4CAAS,CAAA;IACT,0CAAQ,CAAA;IACR,8CAAU,CAAA;IACV,4CAAS,CAAA;IACT,gDAAW,CAAA;IACX,0CAAQ,CAAA;IACR,0CAAQ,CAAA;IACR,+CAAW,CAAA;IACX,2CAAS,CAAA;IACT,2CAAS,CAAA;IACT,iDAAY,CAAA;IACZ,6CAAU,CAAA;IACV,6CAAU,CAAA;IACV,6CAAU,CAAA;IACV,6CAAU,CAAA;IACV,+CAAW,CAAA;IACX,+CAAW,CAAA;IACX,2CAAS,CAAA;IACT,2CAAS,CAAA;IACT,2CAAS,CAAA;IACT,2CAAU,CAAA;IACV,6CAAW,CAAA;AACb,CAAC,EA1EW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QA0ErB"}
package/lib/server.js CHANGED
@@ -28,58 +28,67 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.startServer = void 0;
30
30
  const dns = __importStar(require("native-node-dns"));
31
- const extra_promise_1 = require("extra-promise");
32
- const resource_record_type_1 = require("./resource-record-type");
33
31
  const return_style_1 = require("return-style");
34
32
  const chalk_1 = __importDefault(require("chalk"));
35
33
  const ms_1 = __importDefault(require("ms"));
36
- const types_1 = require("@blackglory/types");
37
34
  const go_1 = require("@blackglory/go");
35
+ const record_types_1 = require("./record-types");
38
36
  function startServer({ logger, port, hosts, fallbackServer }) {
39
37
  const server = dns.createServer();
40
38
  server.on('error', console.error);
41
39
  server.on('socketError', console.error);
42
40
  server.on('request', async (req, res) => {
43
- const answers = await (0, extra_promise_1.map)(req.question, async (question) => {
44
- logger.trace(`${formatHostname(question.name)} ${resource_record_type_1.ResourceRecordType[question.type]}`);
45
- const address = (0, go_1.go)(() => {
46
- switch (question.type) {
47
- case resource_record_type_1.ResourceRecordType.A: return hosts.resolveA(question.name);
48
- case resource_record_type_1.ResourceRecordType.AAAA: return hosts.resolveAAAA(question.name);
49
- }
50
- });
51
- if ((0, types_1.isntUndefined)(address)) {
52
- logger.info(`${formatHostname(question.name)} ${address}`);
53
- return [
54
- {
55
- name: question.name,
56
- type: question.type,
57
- class: question.class,
58
- address,
59
- ttl: 0
60
- }
61
- ];
41
+ logger.trace(`request: ${JSON.stringify(req)}`);
42
+ res.header.rcode = dns.consts.NAME_TO_RCODE.SERVFAIL;
43
+ const question = req.question[0];
44
+ logger.trace(`${formatHostname(question.name)} ${record_types_1.RecordType[question.type]}`);
45
+ const result = (0, go_1.go)(() => {
46
+ switch (question.type) {
47
+ case dns.consts.NAME_TO_QTYPE.A: return hosts.resolveA(question.name);
48
+ case dns.consts.NAME_TO_QTYPE.AAAA: return hosts.resolveAAAA(question.name);
62
49
  }
63
- const startTime = Date.now();
64
- const [err, answers] = await (0, return_style_1.getErrorResultAsync)(() => resolve(fallbackServer, question));
65
- if (err) {
66
- logger.error(`${formatHostname(question.name)} ${err}`, getElapsed(startTime));
67
- return [];
68
- }
69
- logger.info(`${formatHostname(question.name)} ${resource_record_type_1.ResourceRecordType[question.type]}`, getElapsed(startTime));
70
- return answers;
71
50
  });
72
- answers
73
- .flat()
74
- .forEach(answer => res.answer.push(answer));
75
- res.send();
51
+ if (result === null || result === void 0 ? void 0 : result.hasRecords) {
52
+ if (result.address) {
53
+ logger.info(`${formatHostname(question.name)} ${result.address}`);
54
+ res.header.rcode = dns.consts.NAME_TO_RCODE.NOERROR;
55
+ res.answer.push({
56
+ name: question.name,
57
+ type: question.type,
58
+ class: question.class,
59
+ ttl: 0,
60
+ address: result.address
61
+ });
62
+ return sendRes();
63
+ }
64
+ else {
65
+ logger.info(`${formatHostname(question.name)} No records for ${record_types_1.RecordType[question.type]}`);
66
+ res.header.rcode = dns.consts.NAME_TO_RCODE.NOERROR;
67
+ return sendRes();
68
+ }
69
+ }
70
+ const startTime = Date.now();
71
+ const [err, response] = await (0, return_style_1.getErrorResultAsync)(() => resolve(fallbackServer, question));
72
+ if (err) {
73
+ logger.error(`${formatHostname(question.name)} ${err}`, getElapsed(startTime));
74
+ return sendRes();
75
+ }
76
+ logger.info(`${formatHostname(question.name)} ${record_types_1.RecordType[question.type]}`, getElapsed(startTime));
77
+ res.header.rcode = response.header.rcode;
78
+ res.answer = response.answer;
79
+ res.authority = response.authority;
80
+ sendRes();
81
+ function sendRes() {
82
+ logger.trace(`response: ${JSON.stringify(res)}`);
83
+ res.send();
84
+ }
76
85
  });
77
86
  return server.serve(port);
78
87
  }
79
88
  exports.startServer = startServer;
80
89
  function resolve(server, question) {
81
90
  return new Promise((resolve, reject) => {
82
- const answers = [];
91
+ let response;
83
92
  const request = dns.Request({
84
93
  question,
85
94
  server: {
@@ -93,11 +102,11 @@ function resolve(server, question) {
93
102
  });
94
103
  request.on('timeout', () => reject());
95
104
  request.on('cancelled', () => reject());
96
- request.on('end', () => resolve(answers));
105
+ request.on('end', () => resolve(response));
97
106
  request.on('message', (err, msg) => {
98
107
  if (err)
99
108
  return reject(err);
100
- msg.answer.forEach(answer => answers.push(answer));
109
+ response = msg;
101
110
  });
102
111
  request.send();
103
112
  });
package/lib/server.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "better-hosts",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "dns"
@@ -30,37 +30,37 @@
30
30
  }
31
31
  },
32
32
  "devDependencies": {
33
- "@commitlint/cli": "^16.2.1",
33
+ "@commitlint/cli": "^16.2.3",
34
34
  "@commitlint/config-conventional": "^16.2.1",
35
35
  "@types/hostile": "^1.3.0",
36
36
  "@types/jest": "^27.4.1",
37
37
  "@types/ms": "^0.7.31",
38
38
  "@types/node": "14",
39
- "@typescript-eslint/eslint-plugin": "^5.13.0",
40
- "@typescript-eslint/parser": "^5.13.0",
41
- "eslint": "^8.10.0",
39
+ "@typescript-eslint/eslint-plugin": "^5.15.0",
40
+ "@typescript-eslint/parser": "^5.15.0",
41
+ "eslint": "^8.11.0",
42
42
  "husky": "4",
43
43
  "jest": "^27.5.1",
44
44
  "npm-run-all": "^4.1.5",
45
45
  "rimraf": "^3.0.2",
46
46
  "standard-version": "^9.3.2",
47
47
  "ts-jest": "^27.1.3",
48
- "tsconfig-paths": "^3.12.0",
48
+ "tsconfig-paths": "^3.14.0",
49
49
  "tscpaths": "^0.0.9",
50
50
  "typescript": "^4.6.2"
51
51
  },
52
52
  "dependencies": {
53
- "@blackglory/errors": "^2.2.0",
54
- "@blackglory/go": "^0.1.1",
55
- "@blackglory/types": "^0.6.5",
53
+ "@blackglory/errors": "^2.2.1",
54
+ "@blackglory/go": "^1.0.0",
55
+ "@blackglory/types": "^1.0.0",
56
56
  "chalk": "^4.1.2",
57
57
  "chokidar": "^3.5.3",
58
- "commander": "^9.0.0",
59
- "extra-logger": "^0.6.4",
60
- "extra-promise": "^0.21.2",
58
+ "commander": "^9.1.0",
59
+ "extra-logger": "^0.6.5",
60
+ "extra-promise": "^1.0.1",
61
61
  "hostile": "^1.3.3",
62
62
  "ms": "^2.1.3",
63
63
  "native-node-dns": "^0.7.6",
64
- "return-style": "^0.12.6"
64
+ "return-style": "^1.0.0"
65
65
  }
66
66
  }