better-hosts 0.2.0 → 0.2.2

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/lib/cli.js CHANGED
@@ -27,7 +27,7 @@ program
27
27
  transport: new TerminalTransport({})
28
28
  });
29
29
  const hosts = new Hosts({ filename, logger });
30
- startServer({
30
+ await startServer({
31
31
  logger,
32
32
  hosts,
33
33
  fallbackServer,
package/lib/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAe,eAAe,EAAE,qCAAmC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,2BAAyB;AAS9D,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;AAEpB,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,WAAW,CAAC;KACxB,cAAc,CAAC,4BAA4B,CAAC;KAC5C,MAAM,CAAC,qBAAqB,EAAE,EAAE,EAAE,IAAI,CAAC;KACvC,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,IAAI,CAAC;KACjC,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,OAAO,CAAC,IAAI,EAAY,CAAA;IACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACnC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAEjD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,IAAI,iBAAiB,CAAC,EAAE,CAAC;KACrC,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAE7C,WAAW,CAAC;QACV,MAAM;QACN,KAAK;QACL,cAAc;QACd,OAAO;QACP,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAC;KACD,KAAK,EAAE,CAAA;AAEV,SAAS,OAAO,CAAC,OAAiB;IAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,oCAAoC,CAAC,CAAA;IAExE,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AAC1C,CAAC;AAED,SAAS,UAAU,CAAC,OAAiB;IACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,uCAAuC,CAAC,CAAA;IAE9E,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAA;AACjD,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAiB;IAC1C,OAAO,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;AAChD,CAAC;AAED,SAAS,WAAW,CAAC,OAAiB;IACpC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;AAC/C,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAe,eAAe,EAAE,qCAAmC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,2BAAyB;AAS9D,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;AAEpB,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,WAAW,CAAC;KACxB,cAAc,CAAC,4BAA4B,CAAC;KAC5C,MAAM,CAAC,qBAAqB,EAAE,EAAE,EAAE,IAAI,CAAC;KACvC,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,IAAI,CAAC;KACjC,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,OAAO,CAAC,IAAI,EAAY,CAAA;IACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACnC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAEjD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,IAAI,iBAAiB,CAAC,EAAE,CAAC;KACrC,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAE7C,MAAM,WAAW,CAAC;QAChB,MAAM;QACN,KAAK;QACL,cAAc;QACd,OAAO;QACP,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAC;KACD,KAAK,EAAE,CAAA;AAEV,SAAS,OAAO,CAAC,OAAiB;IAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,oCAAoC,CAAC,CAAA;IAExE,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AAC1C,CAAC;AAED,SAAS,UAAU,CAAC,OAAiB;IACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,uCAAuC,CAAC,CAAA;IAE9E,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAA;AACjD,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAiB;IAC1C,OAAO,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;AAChD,CAAC;AAED,SAAS,WAAW,CAAC,OAAiB;IACpC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;AAC/C,CAAC"}
package/lib/hosts.js CHANGED
@@ -92,7 +92,7 @@ export function parseHosts(lines) {
92
92
  if (/^\s*#/.test(line))
93
93
  return null;
94
94
  {
95
- const result = line.match(/^\s*(?<address>\S+)\s+(?<hostname>[\S^-]\S*)\s*(?:#.*)?$/);
95
+ const result = line.match(/^\s*(?<address>\S+)\s+(?<hostname>\S+)\s*(?:#.*)?$/);
96
96
  if (result) {
97
97
  const { address, hostname } = result.groups;
98
98
  const pattern = new HostnamePattern(hostname);
package/lib/hosts.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hosts.js","sourceRoot":"","sources":["../src/hosts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hosts.js","sourceRoot":"","sources":["../src/hosts.ts"],"names":[],"mappings":"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"}
package/lib/server.js CHANGED
@@ -1,89 +1,82 @@
1
- import * as dns from 'native-node-dns';
2
- import { getErrorResultAsync } from 'return-style';
3
1
  import chalk from 'chalk';
4
- import { go } from '@blackglory/prelude';
5
- import { RecordType } from './record-types.js';
6
- export function startServer({ logger, timeout, port, hosts, fallbackServer }) {
7
- const server = dns.createServer();
8
- server.on('error', console.error);
9
- server.on('socketError', console.error);
10
- server.on('request', async (req, res) => {
11
- logger.trace(`request: ${JSON.stringify(req)}`);
12
- res.header.rcode = dns.consts.NAME_TO_RCODE.SERVFAIL;
13
- const question = req.question[0];
14
- logger.trace(`${formatHostname(question.name)} ${RecordType[question.type]}`);
15
- const result = go(() => {
16
- switch (question.type) {
17
- case dns.consts.NAME_TO_QTYPE.A: return hosts.resolveA(question.name);
18
- case dns.consts.NAME_TO_QTYPE.AAAA: return hosts.resolveAAAA(question.name);
19
- }
20
- });
21
- if (result === null || result === void 0 ? void 0 : result.hasRecords) {
22
- if (result.address) {
23
- logger.info(`${formatHostname(question.name)} ${result.address}`);
24
- res.header.rcode = dns.consts.NAME_TO_RCODE.NOERROR;
25
- res.answer.push({
26
- name: question.name,
27
- type: question.type,
28
- class: question.class,
29
- ttl: 0,
30
- address: result.address
31
- });
32
- }
33
- else {
34
- logger.info(`${formatHostname(question.name)} No records for ${RecordType[question.type]}`);
35
- res.header.rcode = dns.consts.NAME_TO_RCODE.NOERROR;
36
- }
37
- }
38
- else {
39
- const startTime = Date.now();
40
- const [err, response] = await getErrorResultAsync(() => resolve(fallbackServer, question, timeout));
41
- if (err) {
42
- logger.error(`${formatHostname(question.name)} ${err}`, getElapsed(startTime));
43
- }
44
- else {
45
- logger.info(`${formatHostname(question.name)} ${RecordType[question.type]}`, getElapsed(startTime));
46
- res.header.rcode = response.header.rcode;
47
- res.answer = response.answer;
48
- res.authority = response.authority;
49
- }
50
- }
51
- logger.trace(`response: ${JSON.stringify(res)}`);
52
- res.send();
53
- });
54
- return server.serve(port);
55
- }
56
- function resolve(server, question, timeout) {
57
- return new Promise((resolve, reject) => {
58
- let response;
59
- const request = dns.Request({
60
- question,
61
- server: {
62
- address: server.host,
63
- port: server.port,
64
- type: 'udp'
2
+ import { assert, go } from '@blackglory/prelude';
3
+ import { DNSClient, DNSServer, QR, RCODE, TYPE } from 'extra-dns';
4
+ import { timeoutSignal } from 'extra-abort';
5
+ import { createRDATAForA, createRDATAForAAAA } from "./utils/dns.js";
6
+ export async function startServer({ logger, timeout, port, hosts, fallbackServer }) {
7
+ var _a;
8
+ const server = new DNSServer('0.0.0.0', port);
9
+ const client = new DNSClient(fallbackServer.host, (_a = fallbackServer.port) !== null && _a !== void 0 ? _a : 53);
10
+ server.on('query', async (query, respond) => {
11
+ logger.trace(`request: ${JSON.stringify(query)}`);
12
+ let response = {
13
+ header: {
14
+ ID: query.header.ID,
15
+ flags: {
16
+ QR: QR.Response,
17
+ OPCODE: query.header.flags.OPCODE,
18
+ AA: 0,
19
+ TC: 0,
20
+ RD: 0,
21
+ RA: 0,
22
+ Z: 0,
23
+ RCODE: RCODE.ServFail
24
+ }
65
25
  },
66
- timeout,
67
- cache: false,
68
- try_edns: true
69
- });
70
- request.on('timeout', () => reject(new Error('timeout')));
71
- request.on('cancelled', () => reject(new Error('cancelled')));
72
- request.on('end', () => {
73
- if (response) {
74
- resolve(response);
26
+ questions: query.questions,
27
+ answers: [],
28
+ authorityRecords: [],
29
+ additionalRecords: []
30
+ };
31
+ const question = query.questions[0];
32
+ if (question) {
33
+ logger.trace(`${formatHostname(question.QNAME)} ${TYPE[question.QTYPE]}`);
34
+ const resolveResult = go(() => {
35
+ switch (question.QTYPE) {
36
+ case TYPE.A: return hosts.resolveA(question.QNAME);
37
+ case TYPE.AAAA: return hosts.resolveAAAA(question.QNAME);
38
+ }
39
+ });
40
+ if (resolveResult === null || resolveResult === void 0 ? void 0 : resolveResult.hasRecords) {
41
+ response.header.flags.RCODE = RCODE.NoError;
42
+ if (resolveResult.address) {
43
+ logger.info(`${formatHostname(question.QNAME)} ${resolveResult.address}`);
44
+ const address = resolveResult.address;
45
+ assert(address);
46
+ const answer = {
47
+ NAME: question.QNAME,
48
+ TYPE: question.QTYPE,
49
+ CLASS: question.QCLASS,
50
+ TTL: 0,
51
+ RDATA: go(() => {
52
+ switch (question.QTYPE) {
53
+ case TYPE.A: return createRDATAForA(address);
54
+ case TYPE.AAAA: return createRDATAForAAAA(address);
55
+ default: throw new Error('Impossible route');
56
+ }
57
+ })
58
+ };
59
+ response.answers.push(answer);
60
+ }
61
+ else {
62
+ logger.info(`${formatHostname(question.QNAME)} No records for ${TYPE[question.QTYPE]}`);
63
+ }
75
64
  }
76
65
  else {
77
- reject(new Error('No response'));
66
+ const startTime = Date.now();
67
+ try {
68
+ response = await client.resolve(query, timeoutSignal(timeout));
69
+ logger.info(`${formatHostname(question.QNAME)} ${TYPE[question.QTYPE]}`, getElapsed(startTime));
70
+ }
71
+ catch (e) {
72
+ logger.error(`${formatHostname(question.QNAME)} ${e}`, getElapsed(startTime));
73
+ }
78
74
  }
79
- });
80
- request.on('message', (err, msg) => {
81
- if (err)
82
- return reject(err);
83
- response = msg;
84
- });
85
- request.send();
75
+ }
76
+ logger.trace(`response: ${JSON.stringify(response)}`);
77
+ await respond(response);
86
78
  });
79
+ return await server.listen();
87
80
  }
88
81
  function formatHostname(hostname) {
89
82
  return chalk.cyan(hostname);
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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"}
@@ -0,0 +1,16 @@
1
+ import { Address6 } from 'ip-address';
2
+ import { uint16ArrayBigEndian } from "./typed-array.js";
3
+ export function createRDATAForA(ipv4Address) {
4
+ const data = new Uint8Array(ipv4Address
5
+ .split('.')
6
+ .map(x => Number.parseInt(x, 10)));
7
+ return data.buffer;
8
+ }
9
+ export function createRDATAForAAAA(ipv6Address) {
10
+ const canonicalAddress = new Address6(ipv6Address).canonicalForm();
11
+ const data = uint16ArrayBigEndian(canonicalAddress
12
+ .split(':')
13
+ .map(x => Number.parseInt(x, 16)));
14
+ return data.buffer;
15
+ }
16
+ //# sourceMappingURL=dns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns.js","sourceRoot":"","sources":["../../src/utils/dns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,oBAAoB,EAAE,yBAA6B;AAE5D,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,MAAM,IAAI,GAAG,IAAI,UAAU,CACzB,WAAW;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACpC,CAAA;IAED,OAAO,IAAI,CAAC,MAAM,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,MAAM,gBAAgB,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAA;IAElE,MAAM,IAAI,GAAG,oBAAoB,CAC/B,gBAAgB;SACb,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACpC,CAAA;IAED,OAAO,IAAI,CAAC,MAAM,CAAA;AACpB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export function uint16ArrayBigEndian(array) {
2
+ const data = new Uint16Array(array.length);
3
+ const view = new DataView(data.buffer);
4
+ for (let i = 0, byteOffset = 0; i < array.length; i++, byteOffset += Uint16Array.BYTES_PER_ELEMENT) {
5
+ view.setUint16(byteOffset, array[i], false);
6
+ }
7
+ return data;
8
+ }
9
+ //# sourceMappingURL=typed-array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed-array.js","sourceRoot":"","sources":["../../src/utils/typed-array.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAClC,KAAwB;IAExB,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAE1C,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtC,KACE,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,EACzB,CAAC,GAAG,KAAK,CAAC,MAAM,EAChB,CAAC,EAAE,EAAE,UAAU,IAAI,WAAW,CAAC,iBAAiB,EAChD,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "better-hosts",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "dns"
@@ -19,8 +19,7 @@
19
19
  "scripts": {
20
20
  "prepare": "ts-patch install -s",
21
21
  "deduplicate": "yarn-deduplicate",
22
- "prepublishOnly": "run-s postinstall prepare clean build",
23
- "postinstall": "patch-package",
22
+ "prepublishOnly": "run-s prepare clean build",
24
23
  "lint": "eslint --ext .js,.jsx,.ts,.tsx --quiet src",
25
24
  "test": "vitest --run",
26
25
  "clean": "rimraf lib dist",
@@ -30,7 +29,7 @@
30
29
  },
31
30
  "husky": {
32
31
  "hooks": {
33
- "pre-commit": "run-s postinstall prepare clean lint build test smoke",
32
+ "pre-commit": "run-s prepare clean lint build test smoke",
34
33
  "commit-msg": "commitlint --env HUSKY_GIT_PARAMS"
35
34
  }
36
35
  },
@@ -43,6 +42,7 @@
43
42
  "eslint": "^8.56.0",
44
43
  "husky": "4",
45
44
  "npm-run-all": "^4.1.5",
45
+ "return-style": "^3.0.1",
46
46
  "rimraf": "^5.0.5",
47
47
  "standard-version": "^9.5.0",
48
48
  "ts-patch": "^3.1.1",
@@ -57,15 +57,14 @@
57
57
  "@blackglory/prelude": "^0.3.4",
58
58
  "chalk": "^5.3.0",
59
59
  "commander": "^11.1.0",
60
+ "extra-abort": "^0.4.0",
61
+ "extra-dns": "^0.1.2",
60
62
  "extra-filesystem": "^0.5.1",
61
63
  "extra-logger": "^0.7.2",
62
64
  "extra-promise": "^6.0.8",
63
65
  "extra-utils": "^5.6.0",
64
66
  "extra-watcher": "^0.2.2",
65
- "iterable-operator": "^4.0.6",
66
- "native-node-dns": "0.7.6",
67
- "native-node-dns-packet": "0.1.5",
68
- "patch-package": "^8.0.0",
69
- "return-style": "^3.0.1"
67
+ "ip-address": "^10.0.1",
68
+ "iterable-operator": "^4.0.6"
70
69
  }
71
70
  }
@@ -1,77 +0,0 @@
1
- export var RecordType;
2
- (function (RecordType) {
3
- RecordType[RecordType["A"] = 1] = "A";
4
- RecordType[RecordType["NS"] = 2] = "NS";
5
- RecordType[RecordType["MD"] = 3] = "MD";
6
- RecordType[RecordType["MF"] = 4] = "MF";
7
- RecordType[RecordType["CNAME"] = 5] = "CNAME";
8
- RecordType[RecordType["SOA"] = 6] = "SOA";
9
- RecordType[RecordType["MB"] = 7] = "MB";
10
- RecordType[RecordType["MG"] = 8] = "MG";
11
- RecordType[RecordType["MR"] = 9] = "MR";
12
- RecordType[RecordType["NULL"] = 10] = "NULL";
13
- RecordType[RecordType["WKS"] = 11] = "WKS";
14
- RecordType[RecordType["PTR"] = 12] = "PTR";
15
- RecordType[RecordType["HINFO"] = 13] = "HINFO";
16
- RecordType[RecordType["MINFO"] = 14] = "MINFO";
17
- RecordType[RecordType["MX"] = 15] = "MX";
18
- RecordType[RecordType["TXT"] = 16] = "TXT";
19
- RecordType[RecordType["RP"] = 17] = "RP";
20
- RecordType[RecordType["AFSDB"] = 18] = "AFSDB";
21
- RecordType[RecordType["X25"] = 19] = "X25";
22
- RecordType[RecordType["ISDN"] = 20] = "ISDN";
23
- RecordType[RecordType["RT"] = 21] = "RT";
24
- RecordType[RecordType["NSAP"] = 22] = "NSAP";
25
- RecordType[RecordType["NSAP-PTR"] = 23] = "NSAP-PTR";
26
- RecordType[RecordType["SIG"] = 24] = "SIG";
27
- RecordType[RecordType["KEY"] = 25] = "KEY";
28
- RecordType[RecordType["PX"] = 26] = "PX";
29
- RecordType[RecordType["GPOS"] = 27] = "GPOS";
30
- RecordType[RecordType["AAAA"] = 28] = "AAAA";
31
- RecordType[RecordType["LOC"] = 29] = "LOC";
32
- RecordType[RecordType["NXT"] = 30] = "NXT";
33
- RecordType[RecordType["EID"] = 31] = "EID";
34
- RecordType[RecordType["NIMLOC"] = 32] = "NIMLOC";
35
- RecordType[RecordType["SRV"] = 33] = "SRV";
36
- RecordType[RecordType["ATMA"] = 34] = "ATMA";
37
- RecordType[RecordType["NAPTR"] = 35] = "NAPTR";
38
- RecordType[RecordType["KX"] = 36] = "KX";
39
- RecordType[RecordType["CERT"] = 37] = "CERT";
40
- RecordType[RecordType["A6"] = 38] = "A6";
41
- RecordType[RecordType["DNAME"] = 39] = "DNAME";
42
- RecordType[RecordType["SINK"] = 40] = "SINK";
43
- RecordType[RecordType["OPT"] = 41] = "OPT";
44
- RecordType[RecordType["APL"] = 42] = "APL";
45
- RecordType[RecordType["DS"] = 43] = "DS";
46
- RecordType[RecordType["SSHFP"] = 44] = "SSHFP";
47
- RecordType[RecordType["IPSECKEY"] = 45] = "IPSECKEY";
48
- RecordType[RecordType["RRSIG"] = 46] = "RRSIG";
49
- RecordType[RecordType["NSEC"] = 47] = "NSEC";
50
- RecordType[RecordType["DNSKEY"] = 48] = "DNSKEY";
51
- RecordType[RecordType["DHCID"] = 49] = "DHCID";
52
- RecordType[RecordType["NSEC3"] = 50] = "NSEC3";
53
- RecordType[RecordType["NSEC3PARAM"] = 51] = "NSEC3PARAM";
54
- RecordType[RecordType["TLSA"] = 52] = "TLSA";
55
- RecordType[RecordType["HIP"] = 55] = "HIP";
56
- RecordType[RecordType["NINFO"] = 56] = "NINFO";
57
- RecordType[RecordType["RKEY"] = 57] = "RKEY";
58
- RecordType[RecordType["TALINK"] = 58] = "TALINK";
59
- RecordType[RecordType["CDS"] = 59] = "CDS";
60
- RecordType[RecordType["SPF"] = 99] = "SPF";
61
- RecordType[RecordType["UINFO"] = 100] = "UINFO";
62
- RecordType[RecordType["UID"] = 101] = "UID";
63
- RecordType[RecordType["GID"] = 102] = "GID";
64
- RecordType[RecordType["UNSPEC"] = 103] = "UNSPEC";
65
- RecordType[RecordType["TKEY"] = 249] = "TKEY";
66
- RecordType[RecordType["TSIG"] = 250] = "TSIG";
67
- RecordType[RecordType["IXFR"] = 251] = "IXFR";
68
- RecordType[RecordType["AXFR"] = 252] = "AXFR";
69
- RecordType[RecordType["MAILB"] = 253] = "MAILB";
70
- RecordType[RecordType["MAILA"] = 254] = "MAILA";
71
- RecordType[RecordType["ANY"] = 255] = "ANY";
72
- RecordType[RecordType["URI"] = 256] = "URI";
73
- RecordType[RecordType["CAA"] = 257] = "CAA";
74
- RecordType[RecordType["TA"] = 32768] = "TA";
75
- RecordType[RecordType["DLV"] = 32769] = "DLV";
76
- })(RecordType || (RecordType = {}));
77
- //# sourceMappingURL=record-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"record-types.js","sourceRoot":"","sources":["../src/record-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,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,KAAV,UAAU,QA0ErB"}