@helia/dnslink 1.1.2 → 1.1.3-c3d41c1f

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.
@@ -1 +1 @@
1
- {"version":3,"file":"dnslink.d.ts","sourceRoot":"","sources":["../../src/dnslink.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAI5J,qBAAa,OAAO,CAAE,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC;IACjK,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8E;IACpG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;gBAE3B,UAAU,EAAE,iBAAiB,EAAE,IAAI,GAAE,cAAc,CAAC,UAAU,CAAM;IAe3E,OAAO,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;IAmDvH,sBAAsB,CAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;IAkCrJ,uBAAuB,CAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;CA0F7J"}
1
+ {"version":3,"file":"dnslink.d.ts","sourceRoot":"","sources":["../../src/dnslink.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAI5J,qBAAa,OAAO,CAAE,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC;IACjK,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8E;IACpG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;gBAE3B,UAAU,EAAE,iBAAiB,EAAE,IAAI,GAAE,cAAc,CAAC,UAAU,CAAM;IAe3E,OAAO,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;IAmDvH,sBAAsB,CAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;IAkCrJ,uBAAuB,CAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;CAmG7J"}
@@ -127,13 +127,20 @@ export class DNSLink {
127
127
  const [, protocol, domainOrCID] = result.split('/'); // e.g. ["", "ipfs", "<cid>"]
128
128
  if (protocol === 'dnslink') {
129
129
  // if the result was another DNSLink domain, try to follow it
130
- return await this.recursiveResolveDomain(domainOrCID, depth - 1, options);
130
+ output.push(...await this.recursiveResolveDomain(domainOrCID, depth - 1, options));
131
+ continue;
131
132
  }
132
133
  const parser = this.namespaces[protocol];
133
134
  if (parser == null) {
134
135
  this.log('unknown protocol "%s" in DNSLink record for domain: %s', protocol, domain);
135
136
  continue;
136
137
  }
138
+ const record = parser(result, answer);
139
+ if (record.namespace === 'dnslink') {
140
+ // if the result was another DNSLink domain, try to follow it
141
+ output.push(...await this.recursiveResolveDomain(record.value, depth - 1, options));
142
+ continue;
143
+ }
137
144
  output.push(parser(result, answer));
138
145
  }
139
146
  catch (err) {
@@ -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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"}
@@ -166,6 +166,24 @@ export interface DNSLinkIPNSResult {
166
166
  */
167
167
  path: string;
168
168
  }
169
+ export interface DNSLinkDNSLinkResult {
170
+ /**
171
+ * The resolved record
172
+ */
173
+ answer: Answer;
174
+ /**
175
+ * The IPNS namespace
176
+ */
177
+ namespace: 'dnslink';
178
+ /**
179
+ * The resolved value
180
+ */
181
+ value: string;
182
+ /**
183
+ * If the resolved value is an IPFS path, it will be present here
184
+ */
185
+ path: string;
186
+ }
169
187
  export interface DNSLinkResolveResult {
170
188
  /**
171
189
  * The resolved record
@@ -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,IAAI,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACvG,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,YAAY,EAAE,qBAAqB,EAAE,CAAA;AAErC,MAAM,WAAW,qBAAsB,SAAQ,YAAY,EAAE,eAAe,CAAC,qBAAqB,CAAC;IACjG;;;;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,oBAAoB;IACnC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,oBAAoB;IAC3D;;OAEG;IACH,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,OAAO,CAAC,qBAAqB,SAAS,oBAAoB,GAAG,iBAAiB,GAAG,iBAAiB;IACjH;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC,CAAC,CAAA;CACxI;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,cAAc,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IACxH;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;IAEvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,OAAO,CAAE,CAAC,SAAS,oBAAoB,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,EAAG,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACjM,wBAAgB,OAAO,CAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG;AAEH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AA4JtD,MAAM,UAAU,OAAO,CAAE,UAA6B,EAAE,UAA0B,EAAE;IAClF,OAAO,IAAI,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;AAC9C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG;AAEH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAkLtD,MAAM,UAAU,OAAO,CAAE,UAA6B,EAAE,UAA0B,EAAE;IAClF,OAAO,IAAI,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;AAC9C,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { DNSLinkParser, DNSLinkIPNSResult } from '../index.js';
2
- export declare const ipns: DNSLinkParser<DNSLinkIPNSResult>;
1
+ import type { DNSLinkParser, DNSLinkIPNSResult, DNSLinkDNSLinkResult } from '../index.js';
2
+ export declare const ipns: DNSLinkParser<DNSLinkIPNSResult | DNSLinkDNSLinkResult>;
3
3
  //# sourceMappingURL=ipns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ipns.d.ts","sourceRoot":"","sources":["../../../src/namespaces/ipns.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGnE,eAAO,MAAM,IAAI,EAAE,aAAa,CAAC,iBAAiB,CAcjD,CAAA"}
1
+ {"version":3,"file":"ipns.d.ts","sourceRoot":"","sources":["../../../src/namespaces/ipns.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAGzF,eAAO,MAAM,IAAI,EAAE,aAAa,CAAC,iBAAiB,GAAG,oBAAoB,CAwBxE,CAAA"}
@@ -5,12 +5,23 @@ export const ipns = (value, answer) => {
5
5
  if (protocol !== 'ipns') {
6
6
  throw new InvalidNamespaceError(`Namespace ${protocol} was not "ipns"`);
7
7
  }
8
- // if the result is a CID, we've reached the end of the recursion
9
- return {
10
- namespace: 'ipns',
11
- peerId: peerIdFromString(peerId),
12
- path: rest.length > 0 ? `/${rest.join('/')}` : '',
13
- answer
14
- };
8
+ try {
9
+ // if the result parses as a PeerId, we've reached the end of the recursion
10
+ return {
11
+ namespace: 'ipns',
12
+ peerId: peerIdFromString(peerId),
13
+ path: rest.length > 0 ? `/${rest.join('/')}` : '',
14
+ answer
15
+ };
16
+ }
17
+ catch {
18
+ // if the value did not parse as a PeerId, it's probably another DNSLink
19
+ return {
20
+ namespace: 'dnslink',
21
+ value: peerId,
22
+ path: rest.length > 0 ? `/${rest.join('/')}` : '',
23
+ answer
24
+ };
25
+ }
15
26
  };
16
27
  //# sourceMappingURL=ipns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ipns.js","sourceRoot":"","sources":["../../../src/namespaces/ipns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAIpD,MAAM,CAAC,MAAM,IAAI,GAAqC,CAAC,KAAa,EAAE,MAAc,EAAqB,EAAE;IACzG,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEtD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,qBAAqB,CAAC,aAAa,QAAQ,iBAAiB,CAAC,CAAA;IACzE,CAAC;IAED,iEAAiE;IACjE,OAAO;QACL,SAAS,EAAE,MAAM;QACjB,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACjD,MAAM;KACP,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"ipns.js","sourceRoot":"","sources":["../../../src/namespaces/ipns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAIpD,MAAM,CAAC,MAAM,IAAI,GAA4D,CAAC,KAAa,EAAE,MAAc,EAA4C,EAAE;IACvJ,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEtD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,qBAAqB,CAAC,aAAa,QAAQ,iBAAiB,CAAC,CAAA;IACzE,CAAC;IAED,IAAI,CAAC;QACH,2EAA2E;QAC3E,OAAO;YACL,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;YAChC,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACjD,MAAM;SACP,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;QACxE,OAAO;YACL,SAAS,EAAE,SAAS;YACpB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACjD,MAAM;SACP,CAAA;IACH,CAAC;AACH,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helia/dnslink",
3
- "version": "1.1.2",
3
+ "version": "1.1.3-c3d41c1f",
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",
@@ -75,7 +75,7 @@
75
75
  "@libp2p/logger": "^6.0.5",
76
76
  "@types/dns-packet": "^5.6.5",
77
77
  "aegir": "^47.0.22",
78
- "delay": "^6.0.0",
78
+ "delay": "^7.0.0",
79
79
  "sinon-ts": "^2.0.0"
80
80
  },
81
81
  "browser": {
package/src/dnslink.ts CHANGED
@@ -159,7 +159,8 @@ export class DNSLink <Namespaces extends Record<string, DNSLinkParser<DNSLinkRes
159
159
 
160
160
  if (protocol === 'dnslink') {
161
161
  // if the result was another DNSLink domain, try to follow it
162
- return await this.recursiveResolveDomain(domainOrCID, depth - 1, options)
162
+ output.push(...await this.recursiveResolveDomain(domainOrCID, depth - 1, options))
163
+ continue
163
164
  }
164
165
 
165
166
  const parser = this.namespaces[protocol]
@@ -169,6 +170,14 @@ export class DNSLink <Namespaces extends Record<string, DNSLinkParser<DNSLinkRes
169
170
  continue
170
171
  }
171
172
 
173
+ const record = parser(result, answer)
174
+
175
+ if (record.namespace === 'dnslink') {
176
+ // if the result was another DNSLink domain, try to follow it
177
+ output.push(...await this.recursiveResolveDomain(record.value, depth - 1, options))
178
+ continue
179
+ }
180
+
172
181
  output.push(parser(result, answer))
173
182
  } catch (err: any) {
174
183
  this.log.error('could not parse DNS link record for domain %s, %s - %e', domain, answer.data, err)
package/src/index.ts CHANGED
@@ -181,6 +181,28 @@ export interface DNSLinkIPNSResult {
181
181
  path: string
182
182
  }
183
183
 
184
+ export interface DNSLinkDNSLinkResult {
185
+ /**
186
+ * The resolved record
187
+ */
188
+ answer: Answer
189
+
190
+ /**
191
+ * The IPNS namespace
192
+ */
193
+ namespace: 'dnslink'
194
+
195
+ /**
196
+ * The resolved value
197
+ */
198
+ value: string
199
+
200
+ /**
201
+ * If the resolved value is an IPFS path, it will be present here
202
+ */
203
+ path: string
204
+ }
205
+
184
206
  export interface DNSLinkResolveResult {
185
207
  /**
186
208
  * The resolved record
@@ -1,20 +1,30 @@
1
1
  import { peerIdFromString } from '@libp2p/peer-id'
2
2
  import { InvalidNamespaceError } from '../errors.ts'
3
- import type { DNSLinkParser, DNSLinkIPNSResult } from '../index.js'
3
+ import type { DNSLinkParser, DNSLinkIPNSResult, DNSLinkDNSLinkResult } from '../index.js'
4
4
  import type { Answer } from '@multiformats/dns'
5
5
 
6
- export const ipns: DNSLinkParser<DNSLinkIPNSResult> = (value: string, answer: Answer): DNSLinkIPNSResult => {
6
+ export const ipns: DNSLinkParser<DNSLinkIPNSResult | DNSLinkDNSLinkResult> = (value: string, answer: Answer): DNSLinkIPNSResult | DNSLinkDNSLinkResult => {
7
7
  const [, protocol, peerId, ...rest] = value.split('/')
8
8
 
9
9
  if (protocol !== 'ipns') {
10
10
  throw new InvalidNamespaceError(`Namespace ${protocol} was not "ipns"`)
11
11
  }
12
12
 
13
- // if the result is a CID, we've reached the end of the recursion
14
- return {
15
- namespace: 'ipns',
16
- peerId: peerIdFromString(peerId),
17
- path: rest.length > 0 ? `/${rest.join('/')}` : '',
18
- answer
13
+ try {
14
+ // if the result parses as a PeerId, we've reached the end of the recursion
15
+ return {
16
+ namespace: 'ipns',
17
+ peerId: peerIdFromString(peerId),
18
+ path: rest.length > 0 ? `/${rest.join('/')}` : '',
19
+ answer
20
+ }
21
+ } catch {
22
+ // if the value did not parse as a PeerId, it's probably another DNSLink
23
+ return {
24
+ namespace: 'dnslink',
25
+ value: peerId,
26
+ path: rest.length > 0 ? `/${rest.join('/')}` : '',
27
+ answer
28
+ }
19
29
  }
20
30
  }
@@ -1,20 +0,0 @@
1
- {
2
- "DNSLink": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.DNSLink.html",
3
- ".:DNSLink": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.DNSLink.html",
4
- "DNSLinkComponents": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.DNSLinkComponents.html",
5
- ".:DNSLinkComponents": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.DNSLinkComponents.html",
6
- "DNSLinkIPFSResult": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.DNSLinkIPFSResult.html",
7
- ".:DNSLinkIPFSResult": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.DNSLinkIPFSResult.html",
8
- "DNSLinkIPNSResult": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.DNSLinkIPNSResult.html",
9
- ".:DNSLinkIPNSResult": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.DNSLinkIPNSResult.html",
10
- "DNSLinkOptions": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.DNSLinkOptions.html",
11
- ".:DNSLinkOptions": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.DNSLinkOptions.html",
12
- "DNSLinkParser": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.DNSLinkParser.html",
13
- ".:DNSLinkParser": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.DNSLinkParser.html",
14
- "DNSLinkResolveResult": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.DNSLinkResolveResult.html",
15
- ".:DNSLinkResolveResult": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.DNSLinkResolveResult.html",
16
- "ResolveDNSLinkOptions": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.ResolveDNSLinkOptions.html",
17
- ".:ResolveDNSLinkOptions": "https://ipfs.github.io/helia/interfaces/_helia_dnslink.ResolveDNSLinkOptions.html",
18
- "dnsLink": "https://ipfs.github.io/helia/functions/_helia_dnslink.dnsLink.html",
19
- ".:dnsLink": "https://ipfs.github.io/helia/functions/_helia_dnslink.dnsLink.html"
20
- }