@tradetrust-tt/dnsprove 2.12.4 → 2.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +6 -3
- package/package.json +2 -2
- package/src/index.test.ts +37 -9
- package/src/index.ts +5 -1
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ Object.defineProperty(exports, "OpenAttestationDnsDidRecord", {
|
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
exports.queryDns = exports.parseOpenAttestationRecord = exports.parseDocumentStoreResults = exports.parseDnsDidResults = exports.getDocumentStoreRecords = exports.getDnsDidRecords = exports.defaultDnsResolvers = void 0;
|
|
19
|
-
var
|
|
19
|
+
var _index = _interopRequireDefault(require("../node_modules/axios/index"));
|
|
20
20
|
var _dnsTxt = require("./records/dnsTxt");
|
|
21
21
|
var _dnsDid = require("./records/dnsDid");
|
|
22
22
|
var _logger = require("./util/logger");
|
|
@@ -39,7 +39,7 @@ const _getLogger = (0, _logger.getLogger)("index"),
|
|
|
39
39
|
trace = _getLogger.trace;
|
|
40
40
|
const defaultDnsResolvers = exports.defaultDnsResolvers = [( /*#__PURE__*/function () {
|
|
41
41
|
var _ref = _asyncToGenerator(function* (domain) {
|
|
42
|
-
const _yield$axios = yield (0,
|
|
42
|
+
const _yield$axios = yield (0, _index.default)({
|
|
43
43
|
method: "GET",
|
|
44
44
|
url: `https://dns.google/resolve?name=${domain}&type=TXT`
|
|
45
45
|
}),
|
|
@@ -51,7 +51,7 @@ const defaultDnsResolvers = exports.defaultDnsResolvers = [( /*#__PURE__*/functi
|
|
|
51
51
|
};
|
|
52
52
|
}()), ( /*#__PURE__*/function () {
|
|
53
53
|
var _ref2 = _asyncToGenerator(function* (domain) {
|
|
54
|
-
const _yield$axios2 = yield (0,
|
|
54
|
+
const _yield$axios2 = yield (0, _index.default)({
|
|
55
55
|
method: "GET",
|
|
56
56
|
url: `https://cloudflare-dns.com/dns-query?name=${domain}&type=TXT`,
|
|
57
57
|
headers: {
|
|
@@ -113,6 +113,9 @@ const queryDns = exports.queryDns = /*#__PURE__*/function () {
|
|
|
113
113
|
var _ref3 = _asyncToGenerator(function* (domain, customDnsResolvers) {
|
|
114
114
|
let data;
|
|
115
115
|
let i = 0;
|
|
116
|
+
if (domain.includes("://")) {
|
|
117
|
+
domain = domain.replace(/(^\w+:|^)\/\//, "");
|
|
118
|
+
}
|
|
116
119
|
while (!data && i < customDnsResolvers.length) {
|
|
117
120
|
try {
|
|
118
121
|
const customDnsResolver = customDnsResolvers[i];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tradetrust-tt/dnsprove",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.13.0",
|
|
4
4
|
"description": "Helper utility for retrieving OpenAttestations document store address records from DNS",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"generator-nod"
|
|
46
46
|
],
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"axios": "
|
|
48
|
+
"axios": "1.7.2",
|
|
49
49
|
"debug": "^4.3.1",
|
|
50
50
|
"runtypes": "^6.3.0"
|
|
51
51
|
},
|
package/src/index.test.ts
CHANGED
|
@@ -172,15 +172,41 @@ describe("queryDns", () => {
|
|
|
172
172
|
let server: SetupServerApi;
|
|
173
173
|
|
|
174
174
|
const sampleResponse = {
|
|
175
|
-
|
|
175
|
+
Status: 0,
|
|
176
|
+
TC: false,
|
|
177
|
+
RD: true,
|
|
178
|
+
RA: true,
|
|
179
|
+
AD: true,
|
|
180
|
+
CD: false,
|
|
181
|
+
Question: [{ name: "donotuse.openattestation.com.", type: 16 }],
|
|
176
182
|
Answer: [
|
|
177
183
|
{
|
|
178
|
-
name: "
|
|
184
|
+
name: "donotuse.openattestation.com.",
|
|
179
185
|
type: 16,
|
|
180
|
-
TTL:
|
|
181
|
-
data:
|
|
186
|
+
TTL: 300,
|
|
187
|
+
data: "openatts a=dns-did; p=did:ethr:0xE712878f6E8d5d4F9e87E10DA604F9cB564C9a89#controller; v=1.0;",
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
name: "donotuse.openattestation.com.",
|
|
191
|
+
type: 16,
|
|
192
|
+
TTL: 300,
|
|
193
|
+
data:
|
|
194
|
+
"openatts DO NOT ADD ANY RECORDS BEYOND THIS AS THIS DOMAIN IS USED FOR DNSPROVE NPM LIBRARY INTEGRATION TESTS",
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
name: "donotuse.openattestation.com.",
|
|
198
|
+
type: 16,
|
|
199
|
+
TTL: 300,
|
|
200
|
+
data: "openatts fooooooobarrrrrrrrr this entry exists to ensure validation works",
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
name: "donotuse.openattestation.com.",
|
|
204
|
+
type: 16,
|
|
205
|
+
TTL: 300,
|
|
206
|
+
data: "openatts net=ethereum netId=3 addr=0x2f60375e8144e16Adf1979936301D8341D58C36C",
|
|
182
207
|
},
|
|
183
208
|
],
|
|
209
|
+
Comment: "Response from 205.251.199.177.",
|
|
184
210
|
};
|
|
185
211
|
|
|
186
212
|
const testDnsResolvers: CustomDnsResolver[] = [
|
|
@@ -216,8 +242,9 @@ describe("queryDns", () => {
|
|
|
216
242
|
server = setupServer(...handlers);
|
|
217
243
|
server.listen();
|
|
218
244
|
|
|
219
|
-
const records = await queryDns("https://
|
|
220
|
-
|
|
245
|
+
const records = await queryDns("https://donotuse.openattestation.com", testDnsResolvers);
|
|
246
|
+
const sortedAnswer = records?.Answer.sort((a, b) => a.data.localeCompare(b.data));
|
|
247
|
+
expect(sortedAnswer).toStrictEqual(sampleResponse.Answer);
|
|
221
248
|
});
|
|
222
249
|
|
|
223
250
|
test("Should fallback to second dns when first dns is down", async () => {
|
|
@@ -232,9 +259,10 @@ describe("queryDns", () => {
|
|
|
232
259
|
server = setupServer(...handlers);
|
|
233
260
|
server.listen();
|
|
234
261
|
|
|
235
|
-
const records = await queryDns("https://
|
|
262
|
+
const records = await queryDns("https://donotuse.openattestation.com", testDnsResolvers);
|
|
236
263
|
|
|
237
|
-
|
|
264
|
+
const sortedAnswer = records?.Answer.sort((a, b) => a.data.localeCompare(b.data));
|
|
265
|
+
expect(sortedAnswer).toStrictEqual(sampleResponse.Answer);
|
|
238
266
|
});
|
|
239
267
|
|
|
240
268
|
test("Should throw error when all dns provided are down", async () => {
|
|
@@ -249,7 +277,7 @@ describe("queryDns", () => {
|
|
|
249
277
|
server = setupServer(...handlers);
|
|
250
278
|
server.listen();
|
|
251
279
|
try {
|
|
252
|
-
await queryDns("https://
|
|
280
|
+
await queryDns("https://donotuse.openattestation.com", testDnsResolvers);
|
|
253
281
|
} catch (e: any) {
|
|
254
282
|
expect(e.code).toStrictEqual(DnsproveStatusCode.IDNS_QUERY_ERROR_GENERAL);
|
|
255
283
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import axios from "axios";
|
|
1
|
+
import axios from "../node_modules/axios/index";
|
|
2
2
|
import { OpenAttestationDNSTextRecord, OpenAttestationDNSTextRecordT } from "./records/dnsTxt";
|
|
3
3
|
import { OpenAttestationDnsDidRecord, OpenAttestationDnsDidRecordT } from "./records/dnsDid";
|
|
4
4
|
import { getLogger } from "./util/logger";
|
|
@@ -85,6 +85,10 @@ export const queryDns = async (domain: string, customDnsResolvers: CustomDnsReso
|
|
|
85
85
|
|
|
86
86
|
let i = 0;
|
|
87
87
|
|
|
88
|
+
if (domain.includes("://")) {
|
|
89
|
+
domain = domain.replace(/(^\w+:|^)\/\//, "");
|
|
90
|
+
}
|
|
91
|
+
|
|
88
92
|
while (!data && i < customDnsResolvers.length) {
|
|
89
93
|
try {
|
|
90
94
|
const customDnsResolver = customDnsResolvers[i];
|