@helia/dnslink 0.0.0 → 1.0.0-d9051cdc
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/README.md +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +3 -3
- package/dist/src/dnslink.d.ts +3 -3
- package/dist/src/dnslink.d.ts.map +1 -1
- package/dist/src/dnslink.js +5 -1
- package/dist/src/dnslink.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/package.json +5 -20
- package/src/dnslink.ts +10 -4
- package/src/index.ts +2 -2
- package/dist/typedoc-urls.json +0 -22
package/dist/src/dnslink.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ export declare class DNSLink implements DNSLinkInterface {
|
|
|
4
4
|
private readonly log;
|
|
5
5
|
private readonly namespaces;
|
|
6
6
|
constructor(components: DNSLinkComponents, init?: DNSLinkOptions);
|
|
7
|
-
resolve(domain: string, options?: ResolveDNSLinkOptions): Promise<DNSLinkResult>;
|
|
8
|
-
recursiveResolveDomain(domain: string, depth: number, options?: ResolveDNSLinkOptions): Promise<DNSLinkResult>;
|
|
9
|
-
recursiveResolveDnslink(domain: string, depth: number, options?: ResolveDNSLinkOptions): Promise<DNSLinkResult>;
|
|
7
|
+
resolve(domain: string, options?: ResolveDNSLinkOptions): Promise<DNSLinkResult[]>;
|
|
8
|
+
recursiveResolveDomain(domain: string, depth: number, options?: ResolveDNSLinkOptions): Promise<DNSLinkResult[]>;
|
|
9
|
+
recursiveResolveDnslink(domain: string, depth: number, options?: ResolveDNSLinkOptions): Promise<DNSLinkResult[]>;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=dnslink.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dnslink.d.ts","sourceRoot":"","sources":["../../src/dnslink.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAoB,MAAM,YAAY,CAAA;AAIxJ,qBAAa,OAAQ,YAAW,gBAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;gBAEhD,UAAU,EAAE,iBAAiB,EAAE,IAAI,GAAE,cAAmB;IAU/D,OAAO,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"dnslink.d.ts","sourceRoot":"","sources":["../../src/dnslink.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAoB,MAAM,YAAY,CAAA;AAIxJ,qBAAa,OAAQ,YAAW,gBAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;gBAEhD,UAAU,EAAE,iBAAiB,EAAE,IAAI,GAAE,cAAmB;IAU/D,OAAO,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIvF,sBAAsB,CAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAkCrH,uBAAuB,CAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CA0F7H"}
|
package/dist/src/dnslink.js
CHANGED
|
@@ -64,6 +64,7 @@ export class DNSLink {
|
|
|
64
64
|
const txtRecords = (txtRecordsResponse?.Answer ?? [])
|
|
65
65
|
.sort((a, b) => a.data.localeCompare(b.data));
|
|
66
66
|
this.log('found %d TXT records for %s', txtRecords.length, domain);
|
|
67
|
+
const output = [];
|
|
67
68
|
for (const answer of txtRecords) {
|
|
68
69
|
try {
|
|
69
70
|
let result = answer.data;
|
|
@@ -88,12 +89,15 @@ export class DNSLink {
|
|
|
88
89
|
this.log('unknown protocol "%s" in DNSLink record for domain: %s', protocol, domain);
|
|
89
90
|
continue;
|
|
90
91
|
}
|
|
91
|
-
|
|
92
|
+
output.push(parser.parse(result, answer));
|
|
92
93
|
}
|
|
93
94
|
catch (err) {
|
|
94
95
|
this.log.error('could not parse DNS link record for domain %s, %s', domain, answer.data, err);
|
|
95
96
|
}
|
|
96
97
|
}
|
|
98
|
+
if (output.length > 0) {
|
|
99
|
+
return output;
|
|
100
|
+
}
|
|
97
101
|
// no dnslink records found, try CNAMEs
|
|
98
102
|
this.log('no DNSLink records found for %s, falling back to CNAME', domain);
|
|
99
103
|
const cnameRecordsResponse = await this.dns.query(domain, {
|
package/dist/src/dnslink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dnslink.js","sourceRoot":"","sources":["../../src/dnslink.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dnslink.js","sourceRoot":"","sources":["../../src/dnslink.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
* const node = await createHelia()
|
|
46
46
|
* const name = dnsLink(node)
|
|
47
47
|
*
|
|
48
|
-
* const { answer } = await name.resolve('blog.ipfs.tech')
|
|
48
|
+
* const [{ answer }] = await name.resolve('blog.ipfs.tech')
|
|
49
49
|
*
|
|
50
50
|
* console.info(answer)
|
|
51
51
|
* // { data: '/ipfs/bafybe...' }
|
|
@@ -202,7 +202,7 @@ export interface DNSLink {
|
|
|
202
202
|
* console.info(result) // { answer: ..., value: ... }
|
|
203
203
|
* ```
|
|
204
204
|
*/
|
|
205
|
-
resolve(domain: string, options?: ResolveDNSLinkOptions): Promise<DNSLinkResult>;
|
|
205
|
+
resolve(domain: string, options?: ResolveDNSLinkOptions): Promise<DNSLinkResult[]>;
|
|
206
206
|
}
|
|
207
207
|
export interface DNSLinkComponents {
|
|
208
208
|
dns: DNS;
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,WAAW,qBAAsB,SAAQ,YAAY,EAAE,eAAe,CAAC,wBAAwB,CAAC;IACpG;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,GAAG,EAAE,GAAG,CAAA;IAER;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,kBAAkB,CAAA;AAEtF,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAA;CACpD;AAED,MAAM,WAAW,OAAO;IACtB;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,WAAW,qBAAsB,SAAQ,YAAY,EAAE,eAAe,CAAC,wBAAwB,CAAC;IACpG;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,GAAG,EAAE,GAAG,CAAA;IAER;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,kBAAkB,CAAA;AAEtF,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAA;CACpD;AAED,MAAM,WAAW,OAAO;IACtB;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;CACnF;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAC9C;AAED,wBAAgB,OAAO,CAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAE7F"}
|
package/dist/src/index.js
CHANGED
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
* const node = await createHelia()
|
|
46
46
|
* const name = dnsLink(node)
|
|
47
47
|
*
|
|
48
|
-
* const { answer } = await name.resolve('blog.ipfs.tech')
|
|
48
|
+
* const [{ answer }] = await name.resolve('blog.ipfs.tech')
|
|
49
49
|
*
|
|
50
50
|
* console.info(answer)
|
|
51
51
|
* // { data: '/ipfs/bafybe...' }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helia/dnslink",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.0-d9051cdc",
|
|
4
4
|
"description": "DNSLink operations using Helia",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/helia/tree/main/packages/dnslink#readme",
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
"url": "https://github.com/ipfs/helia/issues"
|
|
13
13
|
},
|
|
14
14
|
"publishConfig": {
|
|
15
|
-
"access": "public"
|
|
15
|
+
"access": "public",
|
|
16
|
+
"provenance": true
|
|
16
17
|
},
|
|
17
18
|
"keywords": [
|
|
18
19
|
"IPFS"
|
|
@@ -54,7 +55,6 @@
|
|
|
54
55
|
"doc-check": "aegir doc-check",
|
|
55
56
|
"build": "aegir build",
|
|
56
57
|
"docs": "aegir docs",
|
|
57
|
-
"generate": "protons ./src/pb/metadata.proto",
|
|
58
58
|
"test": "aegir test",
|
|
59
59
|
"test:chrome": "aegir test -t browser --cov",
|
|
60
60
|
"test:chrome-webworker": "aegir test -t webworker",
|
|
@@ -64,31 +64,16 @@
|
|
|
64
64
|
"test:electron-main": "aegir test -t electron-main"
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@libp2p/crypto": "^5.1.7",
|
|
68
|
-
"@helia/interface": "^5.4.0",
|
|
69
67
|
"@libp2p/interface": "^3.0.2",
|
|
70
|
-
"@libp2p/kad-dht": "^16.0.5",
|
|
71
|
-
"@libp2p/keychain": "^6.0.5",
|
|
72
|
-
"@libp2p/logger": "^6.0.5",
|
|
73
68
|
"@libp2p/peer-id": "^6.0.3",
|
|
74
|
-
"@libp2p/utils": "^7.0.5",
|
|
75
69
|
"@multiformats/dns": "^1.0.9",
|
|
76
|
-
"interface-datastore": "^9.0.2",
|
|
77
|
-
"ipns": "^10.1.2",
|
|
78
70
|
"multiformats": "^13.4.1",
|
|
79
|
-
"progress-events": "^1.0.1"
|
|
80
|
-
"protons-runtime": "^5.5.0",
|
|
81
|
-
"uint8arraylist": "^2.4.8",
|
|
82
|
-
"uint8arrays": "^5.1.0"
|
|
71
|
+
"progress-events": "^1.0.1"
|
|
83
72
|
},
|
|
84
73
|
"devDependencies": {
|
|
85
|
-
"@libp2p/
|
|
74
|
+
"@libp2p/logger": "^6.0.5",
|
|
86
75
|
"@types/dns-packet": "^5.6.5",
|
|
87
76
|
"aegir": "^47.0.22",
|
|
88
|
-
"datastore-core": "^11.0.2",
|
|
89
|
-
"it-drain": "^3.0.10",
|
|
90
|
-
"protons": "^7.6.1",
|
|
91
|
-
"sinon": "^21.0.0",
|
|
92
77
|
"sinon-ts": "^2.0.0"
|
|
93
78
|
},
|
|
94
79
|
"browser": {
|
package/src/dnslink.ts
CHANGED
|
@@ -21,11 +21,11 @@ export class DNSLink implements DNSLinkInterface {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
async resolve (domain: string, options: ResolveDNSLinkOptions = {}): Promise<DNSLinkResult> {
|
|
24
|
+
async resolve (domain: string, options: ResolveDNSLinkOptions = {}): Promise<DNSLinkResult[]> {
|
|
25
25
|
return this.recursiveResolveDomain(domain, options.maxRecursiveDepth ?? MAX_RECURSIVE_DEPTH, options)
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
async recursiveResolveDomain (domain: string, depth: number, options: ResolveDNSLinkOptions = {}): Promise<DNSLinkResult> {
|
|
28
|
+
async recursiveResolveDomain (domain: string, depth: number, options: ResolveDNSLinkOptions = {}): Promise<DNSLinkResult[]> {
|
|
29
29
|
if (depth === 0) {
|
|
30
30
|
throw new Error('recursion limit exceeded')
|
|
31
31
|
}
|
|
@@ -59,7 +59,7 @@ export class DNSLink implements DNSLinkInterface {
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
async recursiveResolveDnslink (domain: string, depth: number, options: ResolveDNSLinkOptions = {}): Promise<DNSLinkResult> {
|
|
62
|
+
async recursiveResolveDnslink (domain: string, depth: number, options: ResolveDNSLinkOptions = {}): Promise<DNSLinkResult[]> {
|
|
63
63
|
if (depth === 0) {
|
|
64
64
|
throw new Error('recursion limit exceeded')
|
|
65
65
|
}
|
|
@@ -78,6 +78,8 @@ export class DNSLink implements DNSLinkInterface {
|
|
|
78
78
|
|
|
79
79
|
this.log('found %d TXT records for %s', txtRecords.length, domain)
|
|
80
80
|
|
|
81
|
+
const output: DNSLinkResult[] = []
|
|
82
|
+
|
|
81
83
|
for (const answer of txtRecords) {
|
|
82
84
|
try {
|
|
83
85
|
let result = answer.data
|
|
@@ -111,12 +113,16 @@ export class DNSLink implements DNSLinkInterface {
|
|
|
111
113
|
continue
|
|
112
114
|
}
|
|
113
115
|
|
|
114
|
-
|
|
116
|
+
output.push(parser.parse(result, answer))
|
|
115
117
|
} catch (err: any) {
|
|
116
118
|
this.log.error('could not parse DNS link record for domain %s, %s', domain, answer.data, err)
|
|
117
119
|
}
|
|
118
120
|
}
|
|
119
121
|
|
|
122
|
+
if (output.length > 0) {
|
|
123
|
+
return output
|
|
124
|
+
}
|
|
125
|
+
|
|
120
126
|
// no dnslink records found, try CNAMEs
|
|
121
127
|
this.log('no DNSLink records found for %s, falling back to CNAME', domain)
|
|
122
128
|
|
package/src/index.ts
CHANGED
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
* const node = await createHelia()
|
|
46
46
|
* const name = dnsLink(node)
|
|
47
47
|
*
|
|
48
|
-
* const { answer } = await name.resolve('blog.ipfs.tech')
|
|
48
|
+
* const [{ answer }] = await name.resolve('blog.ipfs.tech')
|
|
49
49
|
*
|
|
50
50
|
* console.info(answer)
|
|
51
51
|
* // { data: '/ipfs/bafybe...' }
|
|
@@ -220,7 +220,7 @@ export interface DNSLink {
|
|
|
220
220
|
* console.info(result) // { answer: ..., value: ... }
|
|
221
221
|
* ```
|
|
222
222
|
*/
|
|
223
|
-
resolve(domain: string, options?: ResolveDNSLinkOptions): Promise<DNSLinkResult>
|
|
223
|
+
resolve(domain: string, options?: ResolveDNSLinkOptions): Promise<DNSLinkResult[]>
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
export interface DNSLinkComponents {
|
package/dist/typedoc-urls.json
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"DNSLink": "https://ipfs.github.io/helia/interfaces/DNSLink.html",
|
|
3
|
-
".:DNSLink": "https://ipfs.github.io/helia/interfaces/DNSLink.html",
|
|
4
|
-
"DNSLinkComponents": "https://ipfs.github.io/helia/interfaces/DNSLinkComponents.html",
|
|
5
|
-
".:DNSLinkComponents": "https://ipfs.github.io/helia/interfaces/DNSLinkComponents.html",
|
|
6
|
-
"DNSLinkIPFSResult": "https://ipfs.github.io/helia/interfaces/DNSLinkIPFSResult.html",
|
|
7
|
-
".:DNSLinkIPFSResult": "https://ipfs.github.io/helia/interfaces/DNSLinkIPFSResult.html",
|
|
8
|
-
"DNSLinkIPNSResult": "https://ipfs.github.io/helia/interfaces/DNSLinkIPNSResult.html",
|
|
9
|
-
".:DNSLinkIPNSResult": "https://ipfs.github.io/helia/interfaces/DNSLinkIPNSResult.html",
|
|
10
|
-
"DNSLinkNamespace": "https://ipfs.github.io/helia/interfaces/DNSLinkNamespace.html",
|
|
11
|
-
".:DNSLinkNamespace": "https://ipfs.github.io/helia/interfaces/DNSLinkNamespace.html",
|
|
12
|
-
"DNSLinkOptions": "https://ipfs.github.io/helia/interfaces/DNSLinkOptions.html",
|
|
13
|
-
".:DNSLinkOptions": "https://ipfs.github.io/helia/interfaces/DNSLinkOptions.html",
|
|
14
|
-
"DNSLinkOtherResult": "https://ipfs.github.io/helia/interfaces/DNSLinkOtherResult.html",
|
|
15
|
-
".:DNSLinkOtherResult": "https://ipfs.github.io/helia/interfaces/DNSLinkOtherResult.html",
|
|
16
|
-
"ResolveDNSLinkOptions": "https://ipfs.github.io/helia/interfaces/ResolveDNSLinkOptions.html",
|
|
17
|
-
".:ResolveDNSLinkOptions": "https://ipfs.github.io/helia/interfaces/ResolveDNSLinkOptions.html",
|
|
18
|
-
"DNSLinkResult": "https://ipfs.github.io/helia/types/DNSLinkResult.html",
|
|
19
|
-
".:DNSLinkResult": "https://ipfs.github.io/helia/types/DNSLinkResult.html",
|
|
20
|
-
"dnsLink": "https://ipfs.github.io/helia/functions/dnsLink.html",
|
|
21
|
-
".:dnsLink": "https://ipfs.github.io/helia/functions/dnsLink.html"
|
|
22
|
-
}
|