@helia/ipns 7.2.3-23e62e1 → 7.2.3-4f14996

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 CHANGED
@@ -40,23 +40,23 @@ With IPNSRouting routers:
40
40
  import { createHelia } from 'helia'
41
41
  import { ipns } from '@helia/ipns'
42
42
  import { unixfs } from '@helia/unixfs'
43
+ import { generateKeyPair } from '@libp2p/crypto/keys'
43
44
 
44
45
  const helia = await createHelia()
45
46
  const name = ipns(helia)
46
47
 
47
- // create a public key to publish as an IPNS name
48
- const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
49
- const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
48
+ // create a keypair to publish an IPNS name
49
+ const privateKey = await generateKeyPair('Ed25519')
50
50
 
51
51
  // store some data to publish
52
52
  const fs = unixfs(helia)
53
- const cid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
53
+ const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
54
54
 
55
55
  // publish the name
56
- await name.publish(peerId, cid)
56
+ await name.publish(privateKey, cid)
57
57
 
58
58
  // resolve the name
59
- const result = name.resolve(peerId)
59
+ const result = await name.resolve(privateKey.publicKey)
60
60
 
61
61
  console.info(result.cid, result.path)
62
62
  ```
@@ -70,30 +70,29 @@ value.
70
70
  import { createHelia } from 'helia'
71
71
  import { ipns } from '@helia/ipns'
72
72
  import { unixfs } from '@helia/unixfs'
73
+ import { generateKeyPair } from '@libp2p/crypto/keys'
73
74
 
74
75
  const helia = await createHelia()
75
76
  const name = ipns(helia)
76
77
 
77
- // create a public key to publish as an IPNS name
78
- const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
79
- const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
78
+ // create a keypair to publish an IPNS name
79
+ const privateKey = await generateKeyPair('Ed25519')
80
80
 
81
81
  // store some data to publish
82
82
  const fs = unixfs(helia)
83
- const cid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
83
+ const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
84
84
 
85
85
  // publish the name
86
- await name.publish(peerId, cid)
86
+ await name.publish(privateKey, cid)
87
87
 
88
- // create another public key to re-publish the original record
89
- const recursiveKeyInfo = await helia.libp2p.services.keychain.createKey('my-recursive-key')
90
- const recursivePeerId = await helia.libp2p.services.keychain.exportPeerId(recursiveKeyInfo.name)
88
+ // create another keypair to re-publish the original record
89
+ const recursivePrivateKey = await generateKeyPair('Ed25519')
91
90
 
92
91
  // publish the recursive name
93
- await name.publish(recursivePeerId, peerId)
92
+ await name.publish(recursivePrivateKey, privateKey.publicKey)
94
93
 
95
94
  // resolve the name recursively - it resolves until a CID is found
96
- const result = name.resolve(recursivePeerId)
95
+ const result = await name.resolve(recursivePrivateKey.publicKey)
97
96
  console.info(result.cid.toString() === cid.toString()) // true
98
97
  ```
99
98
 
@@ -105,27 +104,27 @@ It is possible to publish CIDs with an associated path.
105
104
  import { createHelia } from 'helia'
106
105
  import { ipns } from '@helia/ipns'
107
106
  import { unixfs } from '@helia/unixfs'
107
+ import { generateKeyPair } from '@libp2p/crypto/keys'
108
108
 
109
109
  const helia = await createHelia()
110
110
  const name = ipns(helia)
111
111
 
112
- // create a public key to publish as an IPNS name
113
- const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
114
- const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
112
+ // create a keypair to publish an IPNS name
113
+ const privateKey = await generateKeyPair('Ed25519')
115
114
 
116
115
  // store some data to publish
117
116
  const fs = unixfs(helia)
118
- const fileCid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
117
+ const fileCid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
119
118
 
120
119
  // store the file in a directory
121
- const dirCid = await fs.mkdir()
120
+ const dirCid = await fs.addDirectory()
122
121
  const finalDirCid = await fs.cp(fileCid, dirCid, '/foo.txt')
123
122
 
124
123
  // publish the name
125
- await name.publish(peerId, `/ipfs/${finalDirCid}/foo.txt)
124
+ await name.publish(privateKey, `/ipfs/${finalDirCid}/foo.txt`)
126
125
 
127
126
  // resolve the name
128
- const result = name.resolve(peerId)
127
+ const result = await name.resolve(privateKey.publicKey)
129
128
 
130
129
  console.info(result.cid, result.path) // QmFoo.. 'foo.txt'
131
130
  ```
@@ -152,11 +151,14 @@ import { ipns } from '@helia/ipns'
152
151
  import { pubsub } from '@helia/ipns/routing'
153
152
  import { unixfs } from '@helia/unixfs'
154
153
  import { gossipsub } from '@chainsafe/libp2p-gossipsub'
154
+ import { generateKeyPair } from '@libp2p/crypto/keys'
155
+ import type { Libp2p, PubSub } from '@libp2p/interface'
156
+ import type { DefaultLibp2pServices } from 'helia'
155
157
 
156
158
  const libp2pOptions = libp2pDefaults()
157
159
  libp2pOptions.services.pubsub = gossipsub()
158
160
 
159
- const helia = await createHelia({
161
+ const helia = await createHelia<Libp2p<DefaultLibp2pServices & { pubsub: PubSub }>>({
160
162
  libp2p: libp2pOptions
161
163
  })
162
164
  const name = ipns(helia, {
@@ -165,44 +167,50 @@ const name = ipns(helia, {
165
167
  ]
166
168
  })
167
169
 
168
- // create a public key to publish as an IPNS name
169
- const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
170
- const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
170
+ // create a keypair to publish an IPNS name
171
+ const privateKey = await generateKeyPair('Ed25519')
171
172
 
172
173
  // store some data to publish
173
174
  const fs = unixfs(helia)
174
- const cid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
175
+ const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
175
176
 
176
177
  // publish the name
177
- await name.publish(peerId, cid)
178
+ await name.publish(privateKey, cid)
178
179
 
179
180
  // resolve the name
180
- const { cid, path } = name.resolve(peerId)
181
+ const result = await name.resolve(privateKey.publicKey)
181
182
  ```
182
183
 
183
184
  ## Example - Using custom DNS over HTTPS resolvers
184
185
 
185
- With default DNSResolver resolvers:
186
+ To use custom resolvers, configure Helia's `dns` option:
186
187
 
187
188
  ```TypeScript
188
189
  import { createHelia } from 'helia'
189
190
  import { ipns } from '@helia/ipns'
190
- import { unixfs } from '@helia/unixfs'
191
- import { dnsOverHttps } from '@helia/ipns/dns-resolvers'
192
-
193
- const helia = await createHelia()
194
- const name = ipns(helia, {
195
- resolvers: [
196
- dnsOverHttps('https://private-dns-server.me/dns-query'),
191
+ import { dns } from '@multiformats/dns'
192
+ import { dnsOverHttps } from '@multiformats/dns/resolvers'
193
+ import { helia } from '@helia/ipns/routing'
194
+
195
+ const node = await createHelia({
196
+ dns: dns({
197
+ resolvers: {
198
+ '.': dnsOverHttps('https://private-dns-server.me/dns-query')
199
+ }
200
+ })
201
+ })
202
+ const name = ipns(node, {
203
+ routers: [
204
+ helia(node.routing)
197
205
  ]
198
206
  })
199
207
 
200
- const { cid, path } = name.resolveDns('some-domain-with-dnslink-entry.com')
208
+ const result = name.resolveDNSLink('some-domain-with-dnslink-entry.com')
201
209
  ```
202
210
 
203
211
  ## Example - Resolving a domain with a dnslink entry
204
212
 
205
- Calling `resolveDns` with the `@helia/ipns` instance:
213
+ Calling `resolveDNSLink` with the `@helia/ipns` instance:
206
214
 
207
215
  ```TypeScript
208
216
  // resolve a CID from a TXT record in a DNS zone file, using the default
@@ -214,10 +222,16 @@ Calling `resolveDns` with the `@helia/ipns` instance:
214
222
  // ;; ANSWER SECTION:
215
223
  // _dnslink.website.ipfs.io. 60 IN TXT "dnslink=/ipfs/QmWebsite"
216
224
 
217
- const { cid, path } = name.resolveDns('ipfs.io')
225
+ import { createHelia } from 'helia'
226
+ import { ipns } from '@helia/ipns'
227
+
228
+ const node = await createHelia()
229
+ const name = ipns(node)
218
230
 
219
- console.info(cid)
220
- // QmWebsite
231
+ const { answer } = await name.resolveDNSLink('ipfs.io')
232
+
233
+ console.info(answer)
234
+ // { data: '/ipfs/QmWebsite' }
221
235
  ```
222
236
 
223
237
  ## Example - Using DNS-Over-HTTPS
@@ -229,14 +243,21 @@ response which can increase browser bundle sizes.
229
243
  If this is a concern, use the DNS-JSON-Over-HTTPS resolver instead.
230
244
 
231
245
  ```TypeScript
232
- // use DNS-Over-HTTPS
233
- import { dnsOverHttps } from '@helia/ipns/dns-resolvers'
234
-
235
- const { cid, path } = name.resolveDns('ipfs.io', {
236
- resolvers: [
237
- dnsOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
238
- ]
246
+ import { createHelia } from 'helia'
247
+ import { ipns } from '@helia/ipns'
248
+ import { dns } from '@multiformats/dns'
249
+ import { dnsOverHttps } from '@multiformats/dns/resolvers'
250
+
251
+ const node = await createHelia({
252
+ dns: dns({
253
+ resolvers: {
254
+ '.': dnsOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
255
+ }
256
+ })
239
257
  })
258
+ const name = ipns(node)
259
+
260
+ const result = await name.resolveDNSLink('ipfs.io')
240
261
  ```
241
262
 
242
263
  ## Example - Using DNS-JSON-Over-HTTPS
@@ -245,14 +266,21 @@ DNS-JSON-Over-HTTPS resolvers use the RFC 8427 `application/dns-json` and can
245
266
  result in a smaller browser bundle due to the response being plain JSON.
246
267
 
247
268
  ```TypeScript
248
- // use DNS-JSON-Over-HTTPS
249
- import { dnsJsonOverHttps } from '@helia/ipns/dns-resolvers'
250
-
251
- const { cid, path } = name.resolveDns('ipfs.io', {
252
- resolvers: [
253
- dnsJsonOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
254
- ]
269
+ import { createHelia } from 'helia'
270
+ import { ipns } from '@helia/ipns'
271
+ import { dns } from '@multiformats/dns'
272
+ import { dnsJsonOverHttps } from '@multiformats/dns/resolvers'
273
+
274
+ const node = await createHelia({
275
+ dns: dns({
276
+ resolvers: {
277
+ '.': dnsJsonOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
278
+ }
279
+ })
255
280
  })
281
+ const name = ipns(node)
282
+
283
+ const result = await name.resolveDNSLink('ipfs.io')
256
284
  ```
257
285
 
258
286
  # Install
@@ -11,23 +11,23 @@
11
11
  * import { createHelia } from 'helia'
12
12
  * import { ipns } from '@helia/ipns'
13
13
  * import { unixfs } from '@helia/unixfs'
14
+ * import { generateKeyPair } from '@libp2p/crypto/keys'
14
15
  *
15
16
  * const helia = await createHelia()
16
17
  * const name = ipns(helia)
17
18
  *
18
- * // create a public key to publish as an IPNS name
19
- * const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
20
- * const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
19
+ * // create a keypair to publish an IPNS name
20
+ * const privateKey = await generateKeyPair('Ed25519')
21
21
  *
22
22
  * // store some data to publish
23
23
  * const fs = unixfs(helia)
24
- * const cid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
24
+ * const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
25
25
  *
26
26
  * // publish the name
27
- * await name.publish(peerId, cid)
27
+ * await name.publish(privateKey, cid)
28
28
  *
29
29
  * // resolve the name
30
- * const result = name.resolve(peerId)
30
+ * const result = await name.resolve(privateKey.publicKey)
31
31
  *
32
32
  * console.info(result.cid, result.path)
33
33
  * ```
@@ -41,30 +41,29 @@
41
41
  * import { createHelia } from 'helia'
42
42
  * import { ipns } from '@helia/ipns'
43
43
  * import { unixfs } from '@helia/unixfs'
44
+ * import { generateKeyPair } from '@libp2p/crypto/keys'
44
45
  *
45
46
  * const helia = await createHelia()
46
47
  * const name = ipns(helia)
47
48
  *
48
- * // create a public key to publish as an IPNS name
49
- * const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
50
- * const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
49
+ * // create a keypair to publish an IPNS name
50
+ * const privateKey = await generateKeyPair('Ed25519')
51
51
  *
52
52
  * // store some data to publish
53
53
  * const fs = unixfs(helia)
54
- * const cid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
54
+ * const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
55
55
  *
56
56
  * // publish the name
57
- * await name.publish(peerId, cid)
57
+ * await name.publish(privateKey, cid)
58
58
  *
59
- * // create another public key to re-publish the original record
60
- * const recursiveKeyInfo = await helia.libp2p.services.keychain.createKey('my-recursive-key')
61
- * const recursivePeerId = await helia.libp2p.services.keychain.exportPeerId(recursiveKeyInfo.name)
59
+ * // create another keypair to re-publish the original record
60
+ * const recursivePrivateKey = await generateKeyPair('Ed25519')
62
61
  *
63
62
  * // publish the recursive name
64
- * await name.publish(recursivePeerId, peerId)
63
+ * await name.publish(recursivePrivateKey, privateKey.publicKey)
65
64
  *
66
65
  * // resolve the name recursively - it resolves until a CID is found
67
- * const result = name.resolve(recursivePeerId)
66
+ * const result = await name.resolve(recursivePrivateKey.publicKey)
68
67
  * console.info(result.cid.toString() === cid.toString()) // true
69
68
  * ```
70
69
  *
@@ -76,27 +75,27 @@
76
75
  * import { createHelia } from 'helia'
77
76
  * import { ipns } from '@helia/ipns'
78
77
  * import { unixfs } from '@helia/unixfs'
78
+ * import { generateKeyPair } from '@libp2p/crypto/keys'
79
79
  *
80
80
  * const helia = await createHelia()
81
81
  * const name = ipns(helia)
82
82
  *
83
- * // create a public key to publish as an IPNS name
84
- * const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
85
- * const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
83
+ * // create a keypair to publish an IPNS name
84
+ * const privateKey = await generateKeyPair('Ed25519')
86
85
  *
87
86
  * // store some data to publish
88
87
  * const fs = unixfs(helia)
89
- * const fileCid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
88
+ * const fileCid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
90
89
  *
91
90
  * // store the file in a directory
92
- * const dirCid = await fs.mkdir()
91
+ * const dirCid = await fs.addDirectory()
93
92
  * const finalDirCid = await fs.cp(fileCid, dirCid, '/foo.txt')
94
93
  *
95
94
  * // publish the name
96
- * await name.publish(peerId, `/ipfs/${finalDirCid}/foo.txt)
95
+ * await name.publish(privateKey, `/ipfs/${finalDirCid}/foo.txt`)
97
96
  *
98
97
  * // resolve the name
99
- * const result = name.resolve(peerId)
98
+ * const result = await name.resolve(privateKey.publicKey)
100
99
  *
101
100
  * console.info(result.cid, result.path) // QmFoo.. 'foo.txt'
102
101
  * ```
@@ -123,11 +122,14 @@
123
122
  * import { pubsub } from '@helia/ipns/routing'
124
123
  * import { unixfs } from '@helia/unixfs'
125
124
  * import { gossipsub } from '@chainsafe/libp2p-gossipsub'
125
+ * import { generateKeyPair } from '@libp2p/crypto/keys'
126
+ * import type { Libp2p, PubSub } from '@libp2p/interface'
127
+ * import type { DefaultLibp2pServices } from 'helia'
126
128
  *
127
129
  * const libp2pOptions = libp2pDefaults()
128
130
  * libp2pOptions.services.pubsub = gossipsub()
129
131
  *
130
- * const helia = await createHelia({
132
+ * const helia = await createHelia<Libp2p<DefaultLibp2pServices & { pubsub: PubSub }>>({
131
133
  * libp2p: libp2pOptions
132
134
  * })
133
135
  * const name = ipns(helia, {
@@ -136,44 +138,50 @@
136
138
  * ]
137
139
  * })
138
140
  *
139
- * // create a public key to publish as an IPNS name
140
- * const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
141
- * const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
141
+ * // create a keypair to publish an IPNS name
142
+ * const privateKey = await generateKeyPair('Ed25519')
142
143
  *
143
144
  * // store some data to publish
144
145
  * const fs = unixfs(helia)
145
- * const cid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
146
+ * const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
146
147
  *
147
148
  * // publish the name
148
- * await name.publish(peerId, cid)
149
+ * await name.publish(privateKey, cid)
149
150
  *
150
151
  * // resolve the name
151
- * const { cid, path } = name.resolve(peerId)
152
+ * const result = await name.resolve(privateKey.publicKey)
152
153
  * ```
153
154
  *
154
155
  * @example Using custom DNS over HTTPS resolvers
155
156
  *
156
- * With default {@link DNSResolver} resolvers:
157
+ * To use custom resolvers, configure Helia's `dns` option:
157
158
  *
158
159
  * ```TypeScript
159
160
  * import { createHelia } from 'helia'
160
161
  * import { ipns } from '@helia/ipns'
161
- * import { unixfs } from '@helia/unixfs'
162
- * import { dnsOverHttps } from '@helia/ipns/dns-resolvers'
163
- *
164
- * const helia = await createHelia()
165
- * const name = ipns(helia, {
166
- * resolvers: [
167
- * dnsOverHttps('https://private-dns-server.me/dns-query'),
162
+ * import { dns } from '@multiformats/dns'
163
+ * import { dnsOverHttps } from '@multiformats/dns/resolvers'
164
+ * import { helia } from '@helia/ipns/routing'
165
+ *
166
+ * const node = await createHelia({
167
+ * dns: dns({
168
+ * resolvers: {
169
+ * '.': dnsOverHttps('https://private-dns-server.me/dns-query')
170
+ * }
171
+ * })
172
+ * })
173
+ * const name = ipns(node, {
174
+ * routers: [
175
+ * helia(node.routing)
168
176
  * ]
169
177
  * })
170
178
  *
171
- * const { cid, path } = name.resolveDns('some-domain-with-dnslink-entry.com')
179
+ * const result = name.resolveDNSLink('some-domain-with-dnslink-entry.com')
172
180
  * ```
173
181
  *
174
182
  * @example Resolving a domain with a dnslink entry
175
183
  *
176
- * Calling `resolveDns` with the `@helia/ipns` instance:
184
+ * Calling `resolveDNSLink` with the `@helia/ipns` instance:
177
185
  *
178
186
  * ```TypeScript
179
187
  * // resolve a CID from a TXT record in a DNS zone file, using the default
@@ -185,10 +193,16 @@
185
193
  * // ;; ANSWER SECTION:
186
194
  * // _dnslink.website.ipfs.io. 60 IN TXT "dnslink=/ipfs/QmWebsite"
187
195
  *
188
- * const { cid, path } = name.resolveDns('ipfs.io')
196
+ * import { createHelia } from 'helia'
197
+ * import { ipns } from '@helia/ipns'
198
+ *
199
+ * const node = await createHelia()
200
+ * const name = ipns(node)
189
201
  *
190
- * console.info(cid)
191
- * // QmWebsite
202
+ * const { answer } = await name.resolveDNSLink('ipfs.io')
203
+ *
204
+ * console.info(answer)
205
+ * // { data: '/ipfs/QmWebsite' }
192
206
  * ```
193
207
  *
194
208
  * @example Using DNS-Over-HTTPS
@@ -200,14 +214,21 @@
200
214
  * If this is a concern, use the DNS-JSON-Over-HTTPS resolver instead.
201
215
  *
202
216
  * ```TypeScript
203
- * // use DNS-Over-HTTPS
204
- * import { dnsOverHttps } from '@helia/ipns/dns-resolvers'
205
- *
206
- * const { cid, path } = name.resolveDns('ipfs.io', {
207
- * resolvers: [
208
- * dnsOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
209
- * ]
217
+ * import { createHelia } from 'helia'
218
+ * import { ipns } from '@helia/ipns'
219
+ * import { dns } from '@multiformats/dns'
220
+ * import { dnsOverHttps } from '@multiformats/dns/resolvers'
221
+ *
222
+ * const node = await createHelia({
223
+ * dns: dns({
224
+ * resolvers: {
225
+ * '.': dnsOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
226
+ * }
227
+ * })
210
228
  * })
229
+ * const name = ipns(node)
230
+ *
231
+ * const result = await name.resolveDNSLink('ipfs.io')
211
232
  * ```
212
233
  *
213
234
  * @example Using DNS-JSON-Over-HTTPS
@@ -216,14 +237,21 @@
216
237
  * result in a smaller browser bundle due to the response being plain JSON.
217
238
  *
218
239
  * ```TypeScript
219
- * // use DNS-JSON-Over-HTTPS
220
- * import { dnsJsonOverHttps } from '@helia/ipns/dns-resolvers'
221
- *
222
- * const { cid, path } = name.resolveDns('ipfs.io', {
223
- * resolvers: [
224
- * dnsJsonOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
225
- * ]
240
+ * import { createHelia } from 'helia'
241
+ * import { ipns } from '@helia/ipns'
242
+ * import { dns } from '@multiformats/dns'
243
+ * import { dnsJsonOverHttps } from '@multiformats/dns/resolvers'
244
+ *
245
+ * const node = await createHelia({
246
+ * dns: dns({
247
+ * resolvers: {
248
+ * '.': dnsJsonOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
249
+ * }
250
+ * })
226
251
  * })
252
+ * const name = ipns(node)
253
+ *
254
+ * const result = await name.resolveDNSLink('ipfs.io')
227
255
  * ```
228
256
  */
229
257
  import { type IPNSRecord } from 'ipns';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -11,23 +11,23 @@
11
11
  * import { createHelia } from 'helia'
12
12
  * import { ipns } from '@helia/ipns'
13
13
  * import { unixfs } from '@helia/unixfs'
14
+ * import { generateKeyPair } from '@libp2p/crypto/keys'
14
15
  *
15
16
  * const helia = await createHelia()
16
17
  * const name = ipns(helia)
17
18
  *
18
- * // create a public key to publish as an IPNS name
19
- * const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
20
- * const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
19
+ * // create a keypair to publish an IPNS name
20
+ * const privateKey = await generateKeyPair('Ed25519')
21
21
  *
22
22
  * // store some data to publish
23
23
  * const fs = unixfs(helia)
24
- * const cid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
24
+ * const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
25
25
  *
26
26
  * // publish the name
27
- * await name.publish(peerId, cid)
27
+ * await name.publish(privateKey, cid)
28
28
  *
29
29
  * // resolve the name
30
- * const result = name.resolve(peerId)
30
+ * const result = await name.resolve(privateKey.publicKey)
31
31
  *
32
32
  * console.info(result.cid, result.path)
33
33
  * ```
@@ -41,30 +41,29 @@
41
41
  * import { createHelia } from 'helia'
42
42
  * import { ipns } from '@helia/ipns'
43
43
  * import { unixfs } from '@helia/unixfs'
44
+ * import { generateKeyPair } from '@libp2p/crypto/keys'
44
45
  *
45
46
  * const helia = await createHelia()
46
47
  * const name = ipns(helia)
47
48
  *
48
- * // create a public key to publish as an IPNS name
49
- * const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
50
- * const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
49
+ * // create a keypair to publish an IPNS name
50
+ * const privateKey = await generateKeyPair('Ed25519')
51
51
  *
52
52
  * // store some data to publish
53
53
  * const fs = unixfs(helia)
54
- * const cid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
54
+ * const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
55
55
  *
56
56
  * // publish the name
57
- * await name.publish(peerId, cid)
57
+ * await name.publish(privateKey, cid)
58
58
  *
59
- * // create another public key to re-publish the original record
60
- * const recursiveKeyInfo = await helia.libp2p.services.keychain.createKey('my-recursive-key')
61
- * const recursivePeerId = await helia.libp2p.services.keychain.exportPeerId(recursiveKeyInfo.name)
59
+ * // create another keypair to re-publish the original record
60
+ * const recursivePrivateKey = await generateKeyPair('Ed25519')
62
61
  *
63
62
  * // publish the recursive name
64
- * await name.publish(recursivePeerId, peerId)
63
+ * await name.publish(recursivePrivateKey, privateKey.publicKey)
65
64
  *
66
65
  * // resolve the name recursively - it resolves until a CID is found
67
- * const result = name.resolve(recursivePeerId)
66
+ * const result = await name.resolve(recursivePrivateKey.publicKey)
68
67
  * console.info(result.cid.toString() === cid.toString()) // true
69
68
  * ```
70
69
  *
@@ -76,27 +75,27 @@
76
75
  * import { createHelia } from 'helia'
77
76
  * import { ipns } from '@helia/ipns'
78
77
  * import { unixfs } from '@helia/unixfs'
78
+ * import { generateKeyPair } from '@libp2p/crypto/keys'
79
79
  *
80
80
  * const helia = await createHelia()
81
81
  * const name = ipns(helia)
82
82
  *
83
- * // create a public key to publish as an IPNS name
84
- * const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
85
- * const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
83
+ * // create a keypair to publish an IPNS name
84
+ * const privateKey = await generateKeyPair('Ed25519')
86
85
  *
87
86
  * // store some data to publish
88
87
  * const fs = unixfs(helia)
89
- * const fileCid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
88
+ * const fileCid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
90
89
  *
91
90
  * // store the file in a directory
92
- * const dirCid = await fs.mkdir()
91
+ * const dirCid = await fs.addDirectory()
93
92
  * const finalDirCid = await fs.cp(fileCid, dirCid, '/foo.txt')
94
93
  *
95
94
  * // publish the name
96
- * await name.publish(peerId, `/ipfs/${finalDirCid}/foo.txt)
95
+ * await name.publish(privateKey, `/ipfs/${finalDirCid}/foo.txt`)
97
96
  *
98
97
  * // resolve the name
99
- * const result = name.resolve(peerId)
98
+ * const result = await name.resolve(privateKey.publicKey)
100
99
  *
101
100
  * console.info(result.cid, result.path) // QmFoo.. 'foo.txt'
102
101
  * ```
@@ -123,11 +122,14 @@
123
122
  * import { pubsub } from '@helia/ipns/routing'
124
123
  * import { unixfs } from '@helia/unixfs'
125
124
  * import { gossipsub } from '@chainsafe/libp2p-gossipsub'
125
+ * import { generateKeyPair } from '@libp2p/crypto/keys'
126
+ * import type { Libp2p, PubSub } from '@libp2p/interface'
127
+ * import type { DefaultLibp2pServices } from 'helia'
126
128
  *
127
129
  * const libp2pOptions = libp2pDefaults()
128
130
  * libp2pOptions.services.pubsub = gossipsub()
129
131
  *
130
- * const helia = await createHelia({
132
+ * const helia = await createHelia<Libp2p<DefaultLibp2pServices & { pubsub: PubSub }>>({
131
133
  * libp2p: libp2pOptions
132
134
  * })
133
135
  * const name = ipns(helia, {
@@ -136,44 +138,50 @@
136
138
  * ]
137
139
  * })
138
140
  *
139
- * // create a public key to publish as an IPNS name
140
- * const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
141
- * const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
141
+ * // create a keypair to publish an IPNS name
142
+ * const privateKey = await generateKeyPair('Ed25519')
142
143
  *
143
144
  * // store some data to publish
144
145
  * const fs = unixfs(helia)
145
- * const cid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
146
+ * const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
146
147
  *
147
148
  * // publish the name
148
- * await name.publish(peerId, cid)
149
+ * await name.publish(privateKey, cid)
149
150
  *
150
151
  * // resolve the name
151
- * const { cid, path } = name.resolve(peerId)
152
+ * const result = await name.resolve(privateKey.publicKey)
152
153
  * ```
153
154
  *
154
155
  * @example Using custom DNS over HTTPS resolvers
155
156
  *
156
- * With default {@link DNSResolver} resolvers:
157
+ * To use custom resolvers, configure Helia's `dns` option:
157
158
  *
158
159
  * ```TypeScript
159
160
  * import { createHelia } from 'helia'
160
161
  * import { ipns } from '@helia/ipns'
161
- * import { unixfs } from '@helia/unixfs'
162
- * import { dnsOverHttps } from '@helia/ipns/dns-resolvers'
163
- *
164
- * const helia = await createHelia()
165
- * const name = ipns(helia, {
166
- * resolvers: [
167
- * dnsOverHttps('https://private-dns-server.me/dns-query'),
162
+ * import { dns } from '@multiformats/dns'
163
+ * import { dnsOverHttps } from '@multiformats/dns/resolvers'
164
+ * import { helia } from '@helia/ipns/routing'
165
+ *
166
+ * const node = await createHelia({
167
+ * dns: dns({
168
+ * resolvers: {
169
+ * '.': dnsOverHttps('https://private-dns-server.me/dns-query')
170
+ * }
171
+ * })
172
+ * })
173
+ * const name = ipns(node, {
174
+ * routers: [
175
+ * helia(node.routing)
168
176
  * ]
169
177
  * })
170
178
  *
171
- * const { cid, path } = name.resolveDns('some-domain-with-dnslink-entry.com')
179
+ * const result = name.resolveDNSLink('some-domain-with-dnslink-entry.com')
172
180
  * ```
173
181
  *
174
182
  * @example Resolving a domain with a dnslink entry
175
183
  *
176
- * Calling `resolveDns` with the `@helia/ipns` instance:
184
+ * Calling `resolveDNSLink` with the `@helia/ipns` instance:
177
185
  *
178
186
  * ```TypeScript
179
187
  * // resolve a CID from a TXT record in a DNS zone file, using the default
@@ -185,10 +193,16 @@
185
193
  * // ;; ANSWER SECTION:
186
194
  * // _dnslink.website.ipfs.io. 60 IN TXT "dnslink=/ipfs/QmWebsite"
187
195
  *
188
- * const { cid, path } = name.resolveDns('ipfs.io')
196
+ * import { createHelia } from 'helia'
197
+ * import { ipns } from '@helia/ipns'
198
+ *
199
+ * const node = await createHelia()
200
+ * const name = ipns(node)
189
201
  *
190
- * console.info(cid)
191
- * // QmWebsite
202
+ * const { answer } = await name.resolveDNSLink('ipfs.io')
203
+ *
204
+ * console.info(answer)
205
+ * // { data: '/ipfs/QmWebsite' }
192
206
  * ```
193
207
  *
194
208
  * @example Using DNS-Over-HTTPS
@@ -200,14 +214,21 @@
200
214
  * If this is a concern, use the DNS-JSON-Over-HTTPS resolver instead.
201
215
  *
202
216
  * ```TypeScript
203
- * // use DNS-Over-HTTPS
204
- * import { dnsOverHttps } from '@helia/ipns/dns-resolvers'
205
- *
206
- * const { cid, path } = name.resolveDns('ipfs.io', {
207
- * resolvers: [
208
- * dnsOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
209
- * ]
217
+ * import { createHelia } from 'helia'
218
+ * import { ipns } from '@helia/ipns'
219
+ * import { dns } from '@multiformats/dns'
220
+ * import { dnsOverHttps } from '@multiformats/dns/resolvers'
221
+ *
222
+ * const node = await createHelia({
223
+ * dns: dns({
224
+ * resolvers: {
225
+ * '.': dnsOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
226
+ * }
227
+ * })
210
228
  * })
229
+ * const name = ipns(node)
230
+ *
231
+ * const result = await name.resolveDNSLink('ipfs.io')
211
232
  * ```
212
233
  *
213
234
  * @example Using DNS-JSON-Over-HTTPS
@@ -216,14 +237,21 @@
216
237
  * result in a smaller browser bundle due to the response being plain JSON.
217
238
  *
218
239
  * ```TypeScript
219
- * // use DNS-JSON-Over-HTTPS
220
- * import { dnsJsonOverHttps } from '@helia/ipns/dns-resolvers'
221
- *
222
- * const { cid, path } = name.resolveDns('ipfs.io', {
223
- * resolvers: [
224
- * dnsJsonOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
225
- * ]
240
+ * import { createHelia } from 'helia'
241
+ * import { ipns } from '@helia/ipns'
242
+ * import { dns } from '@multiformats/dns'
243
+ * import { dnsJsonOverHttps } from '@multiformats/dns/resolvers'
244
+ *
245
+ * const node = await createHelia({
246
+ * dns: dns({
247
+ * resolvers: {
248
+ * '.': dnsJsonOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
249
+ * }
250
+ * })
226
251
  * })
252
+ * const name = ipns(node)
253
+ *
254
+ * const result = await name.resolveDNSLink('ipfs.io')
227
255
  * ```
228
256
  */
229
257
  import { NotFoundError, isPublicKey } from '@libp2p/interface';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmOG;AAEH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,mBAAmB,EAAmB,MAAM,MAAM,CAAA;AAC3H,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAA;AAC9I,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAmB,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAUpE,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;AAEhC,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAA;AACxB,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAA;AAExB,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAA;AACrC,MAAM,6BAA6B,GAAG,EAAE,GAAG,IAAI,CAAA;AAE/C,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAU,CAAA;AAqJhD,MAAM,KAAK,GAA6C;IACtD,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM;IACvB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS;CAC9B,CAAA;AAED,MAAM,WAAW;IACE,OAAO,CAAe;IACtB,UAAU,CAAY;IAC/B,OAAO,CAAgC;IAC9B,GAAG,CAAK;IACR,GAAG,CAAQ;IAE5B,YAAa,UAA0B,EAAE,UAAyB,EAAE;QAClE,IAAI,CAAC,OAAO,GAAG;YACb,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;YACzB,GAAG,OAAO;SACX,CAAA;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAA;QACzB,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,GAAe,EAAE,KAA8D,EAAE,UAA0B,EAAE;QAC1H,IAAI,CAAC;YACH,IAAI,cAAc,GAAG,EAAE,CAAA;YACvB,MAAM,UAAU,GAAG,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;YAEzE,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;gBACnD,4EAA4E;gBAC5E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;gBACjE,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;gBAClD,cAAc,GAAG,cAAc,CAAC,QAAQ,GAAG,EAAE,CAAA;YAC/C,CAAC;YAED,gBAAgB;YAChB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,QAAQ,IAAI,mBAAmB,EAAE,OAAO,CAAC,CAAA;YACnH,MAAM,eAAe,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;YAEjD,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;YAE/D,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC7B,4BAA4B;gBAC5B,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA;YACvG,CAAC;YAED,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAQ,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAA;YAC/E,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,GAA6C,EAAE,UAA0B,EAAE;QACxF,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;QACzD,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAA;QACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAE9D,OAAO;YACL,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM;SACP,CAAA;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAE,MAAc,EAAE,UAAiC,EAAE;QACvE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAEzE,OAAO;YACL,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAA;IACH,CAAC;IAED,SAAS,CAAE,UAA4B,EAAE;QACvC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjD,CAAC;QAED,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC7C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;QAEF,KAAK,UAAU,SAAS;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAE5B,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAC,sBAAsB,CAAC,CAAC,CAAA;YAErE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC7B,MAAM,SAAS,GAAG,UAAU,GAAG,SAAS,CAAA;YACxC,IAAI,YAAY,GAAG,6BAA6B,GAAG,SAAS,CAAA;YAE5D,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,YAAY,GAAG,OAAO,CAAC,QAAQ,IAAI,6BAA6B,CAAA;YAClE,CAAC;YAED,UAAU,CAAC,GAAG,EAAE;gBACd,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACtB,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAA;gBACtC,CAAC,CAAC,CAAA;YACJ,CAAC,EAAE,YAAY,CAAC,CAAA;QAClB,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACtB,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAA;YACtC,CAAC,CAAC,CAAA;QACJ,CAAC,EAAE,OAAO,CAAC,QAAQ,IAAI,6BAA6B,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAE,QAAgB,EAAE,UAA0B,EAAE;QAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAEvB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBACpB,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAClC,IAAI,GAA2B,CAAA;gBAE/B,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACrC,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;gBACnC,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBACjC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACjC,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,+BAA+B,CAAC,iCAAiC,MAAM,GAAG,CAAC,CAAA;gBACvF,CAAC;gBAED,IAAI,MAA+B,CAAA;gBAEnC,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC7B,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAA;gBACpC,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;oBACzE,MAAM,IAAI,8BAA8B,CAAC,gCAAgC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAA;gBAC1F,CAAC;gBAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBACnD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACrC,OAAO;oBACL,GAAG;oBACH,IAAI;iBACL,CAAA;YACH,CAAC;iBAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACrC,OAAO;oBACL,GAAG;oBACH,IAAI;iBACL,CAAA;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAA;QAC3C,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAA;QAC3C,MAAM,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,eAAe,CAAE,UAAsB,EAAE,UAA0B,EAAE;QACzE,MAAM,OAAO,GAAiB,EAAE,CAAA;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAE7D,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,CAAC,gCAAgC,CAAC,CAAA;YAErC,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,8BAA8B;oBAC9B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;oBAE1E,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;oBAEvC,sBAAsB;oBACtB,MAAM,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;oBAEvC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;oBAE5B,gBAAgB;oBAChB,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;oBAE9C,sEAAsE;oBACtE,OAAO;oBACP,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,cAAc,CAAC,GAAG,QAAU,CAAC,CAAA;oBACrE,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,CAAA;oBAE5C,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;wBAC5B,wDAAwD;wBACxD,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;wBAChC,OAAO,UAAU,CAAA;oBACnB,CAAC;oBAED,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;wBAC7B,6DAA6D;wBAC7D,IAAI,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAA;wBAC3F,OAAO,UAAU,CAAA;oBACnB,CAAC;oBAED,IAAI,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;oBAEtE,gEAAgE;oBAChE,sEAAsE;oBACtE,WAAW;oBACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACtB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;oBAC1C,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;gBACnD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,iDAAiD,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,aAAa,CAAC,oDAAoD,CAAC,CAAA;QAC/E,CAAC;QAED,GAAG,CAAC,6BAA6B,CAAC,CAAA;QAElC,IAAI,YAAY,GAAG,CAAC,CAAA;QAEpB,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAChC,IAAI,MAAkB,CAAA;YAEtB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE;oBACpC,GAAG,OAAO;oBACV,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;gBAE3C,OAAM;YACR,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;gBAEvC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACtB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,mDAAmD;gBACnD,YAAY,EAAE,CAAA;gBACd,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;YAC7C,CAAC;QACH,CAAC,CAAC,CACH,CAAA;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,4BAA4B,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,QAAQ,0BAA0B,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAA;YACzK,CAAC;YAED,MAAM,IAAI,aAAa,CAAC,uCAAuC,CAAC,CAAA;QAClE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;QAEzD,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEtD,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;CACF;AAMD,MAAM,UAAU,IAAI,CAAE,UAA0B,EAAE,EAAE,OAAO,GAAG,EAAE,KAAkB,EAAE;IAClF,OAAO,IAAI,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;AAC7C,CAAC;AAED,OAAO,EAAE,aAAa,EAA0B,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,11 @@ export interface IPNSRouting {
17
17
  put(routingKey: Uint8Array, marshaledRecord: Uint8Array, options?: PutOptions): Promise<void>;
18
18
  get(routingKey: Uint8Array, options?: GetOptions): Promise<Uint8Array>;
19
19
  }
20
+ export type { DatastoreProgressEvents };
21
+ export type { HeliaRoutingProgressEvents };
22
+ export type { PubSubProgressEvents };
20
23
  export type IPNSRoutingEvents = DatastoreProgressEvents | HeliaRoutingProgressEvents | PubSubProgressEvents;
21
24
  export { helia } from './helia.js';
22
25
  export { pubsub } from './pubsub.js';
26
+ export type { PubsubRoutingComponents } from './pubsub.js';
23
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,WAAW,UAAW,SAAQ,YAAY,EAAE,eAAe;CAEhE;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY,EAAE,eAAe;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7F,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CACvE;AAED,MAAM,MAAM,iBAAiB,GAC3B,uBAAuB,GACvB,0BAA0B,GAC1B,oBAAoB,CAAA;AAEtB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,WAAW,UAAW,SAAQ,YAAY,EAAE,eAAe;CAEhE;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY,EAAE,eAAe;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7F,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CACvE;AAED,YAAY,EAAE,uBAAuB,EAAE,CAAA;AACvC,YAAY,EAAE,0BAA0B,EAAE,CAAA;AAC1C,YAAY,EAAE,oBAAoB,EAAE,CAAA;AAEpC,MAAM,MAAM,iBAAiB,GAC3B,uBAAuB,GACvB,0BAA0B,GAC1B,oBAAoB,CAAA;AAEtB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routing/index.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routing/index.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helia/ipns",
3
- "version": "7.2.3-23e62e1",
3
+ "version": "7.2.3-4f14996",
4
4
  "description": "An implementation of IPNS for Helia",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/ipfs/helia/tree/main/packages/ipns#readme",
@@ -152,6 +152,7 @@
152
152
  "clean": "aegir clean",
153
153
  "lint": "aegir lint",
154
154
  "dep-check": "aegir dep-check",
155
+ "doc-check": "aegir doc-check",
155
156
  "build": "aegir build",
156
157
  "docs": "aegir docs",
157
158
  "test": "aegir test",
@@ -164,7 +165,7 @@
164
165
  "release": "aegir release"
165
166
  },
166
167
  "dependencies": {
167
- "@helia/interface": "4.3.1-23e62e1",
168
+ "@helia/interface": "4.3.1-4f14996",
168
169
  "@libp2p/interface": "^2.0.0",
169
170
  "@libp2p/kad-dht": "^13.0.0",
170
171
  "@libp2p/logger": "^5.0.0",
package/src/index.ts CHANGED
@@ -11,23 +11,23 @@
11
11
  * import { createHelia } from 'helia'
12
12
  * import { ipns } from '@helia/ipns'
13
13
  * import { unixfs } from '@helia/unixfs'
14
+ * import { generateKeyPair } from '@libp2p/crypto/keys'
14
15
  *
15
16
  * const helia = await createHelia()
16
17
  * const name = ipns(helia)
17
18
  *
18
- * // create a public key to publish as an IPNS name
19
- * const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
20
- * const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
19
+ * // create a keypair to publish an IPNS name
20
+ * const privateKey = await generateKeyPair('Ed25519')
21
21
  *
22
22
  * // store some data to publish
23
23
  * const fs = unixfs(helia)
24
- * const cid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
24
+ * const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
25
25
  *
26
26
  * // publish the name
27
- * await name.publish(peerId, cid)
27
+ * await name.publish(privateKey, cid)
28
28
  *
29
29
  * // resolve the name
30
- * const result = name.resolve(peerId)
30
+ * const result = await name.resolve(privateKey.publicKey)
31
31
  *
32
32
  * console.info(result.cid, result.path)
33
33
  * ```
@@ -41,30 +41,29 @@
41
41
  * import { createHelia } from 'helia'
42
42
  * import { ipns } from '@helia/ipns'
43
43
  * import { unixfs } from '@helia/unixfs'
44
+ * import { generateKeyPair } from '@libp2p/crypto/keys'
44
45
  *
45
46
  * const helia = await createHelia()
46
47
  * const name = ipns(helia)
47
48
  *
48
- * // create a public key to publish as an IPNS name
49
- * const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
50
- * const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
49
+ * // create a keypair to publish an IPNS name
50
+ * const privateKey = await generateKeyPair('Ed25519')
51
51
  *
52
52
  * // store some data to publish
53
53
  * const fs = unixfs(helia)
54
- * const cid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
54
+ * const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
55
55
  *
56
56
  * // publish the name
57
- * await name.publish(peerId, cid)
57
+ * await name.publish(privateKey, cid)
58
58
  *
59
- * // create another public key to re-publish the original record
60
- * const recursiveKeyInfo = await helia.libp2p.services.keychain.createKey('my-recursive-key')
61
- * const recursivePeerId = await helia.libp2p.services.keychain.exportPeerId(recursiveKeyInfo.name)
59
+ * // create another keypair to re-publish the original record
60
+ * const recursivePrivateKey = await generateKeyPair('Ed25519')
62
61
  *
63
62
  * // publish the recursive name
64
- * await name.publish(recursivePeerId, peerId)
63
+ * await name.publish(recursivePrivateKey, privateKey.publicKey)
65
64
  *
66
65
  * // resolve the name recursively - it resolves until a CID is found
67
- * const result = name.resolve(recursivePeerId)
66
+ * const result = await name.resolve(recursivePrivateKey.publicKey)
68
67
  * console.info(result.cid.toString() === cid.toString()) // true
69
68
  * ```
70
69
  *
@@ -76,27 +75,27 @@
76
75
  * import { createHelia } from 'helia'
77
76
  * import { ipns } from '@helia/ipns'
78
77
  * import { unixfs } from '@helia/unixfs'
78
+ * import { generateKeyPair } from '@libp2p/crypto/keys'
79
79
  *
80
80
  * const helia = await createHelia()
81
81
  * const name = ipns(helia)
82
82
  *
83
- * // create a public key to publish as an IPNS name
84
- * const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
85
- * const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
83
+ * // create a keypair to publish an IPNS name
84
+ * const privateKey = await generateKeyPair('Ed25519')
86
85
  *
87
86
  * // store some data to publish
88
87
  * const fs = unixfs(helia)
89
- * const fileCid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
88
+ * const fileCid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
90
89
  *
91
90
  * // store the file in a directory
92
- * const dirCid = await fs.mkdir()
91
+ * const dirCid = await fs.addDirectory()
93
92
  * const finalDirCid = await fs.cp(fileCid, dirCid, '/foo.txt')
94
93
  *
95
94
  * // publish the name
96
- * await name.publish(peerId, `/ipfs/${finalDirCid}/foo.txt)
95
+ * await name.publish(privateKey, `/ipfs/${finalDirCid}/foo.txt`)
97
96
  *
98
97
  * // resolve the name
99
- * const result = name.resolve(peerId)
98
+ * const result = await name.resolve(privateKey.publicKey)
100
99
  *
101
100
  * console.info(result.cid, result.path) // QmFoo.. 'foo.txt'
102
101
  * ```
@@ -123,11 +122,14 @@
123
122
  * import { pubsub } from '@helia/ipns/routing'
124
123
  * import { unixfs } from '@helia/unixfs'
125
124
  * import { gossipsub } from '@chainsafe/libp2p-gossipsub'
125
+ * import { generateKeyPair } from '@libp2p/crypto/keys'
126
+ * import type { Libp2p, PubSub } from '@libp2p/interface'
127
+ * import type { DefaultLibp2pServices } from 'helia'
126
128
  *
127
129
  * const libp2pOptions = libp2pDefaults()
128
130
  * libp2pOptions.services.pubsub = gossipsub()
129
131
  *
130
- * const helia = await createHelia({
132
+ * const helia = await createHelia<Libp2p<DefaultLibp2pServices & { pubsub: PubSub }>>({
131
133
  * libp2p: libp2pOptions
132
134
  * })
133
135
  * const name = ipns(helia, {
@@ -136,44 +138,50 @@
136
138
  * ]
137
139
  * })
138
140
  *
139
- * // create a public key to publish as an IPNS name
140
- * const keyInfo = await helia.libp2p.services.keychain.createKey('my-key')
141
- * const peerId = await helia.libp2p.services.keychain.exportPeerId(keyInfo.name)
141
+ * // create a keypair to publish an IPNS name
142
+ * const privateKey = await generateKeyPair('Ed25519')
142
143
  *
143
144
  * // store some data to publish
144
145
  * const fs = unixfs(helia)
145
- * const cid = await fs.add(Uint8Array.from([0, 1, 2, 3, 4]))
146
+ * const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
146
147
  *
147
148
  * // publish the name
148
- * await name.publish(peerId, cid)
149
+ * await name.publish(privateKey, cid)
149
150
  *
150
151
  * // resolve the name
151
- * const { cid, path } = name.resolve(peerId)
152
+ * const result = await name.resolve(privateKey.publicKey)
152
153
  * ```
153
154
  *
154
155
  * @example Using custom DNS over HTTPS resolvers
155
156
  *
156
- * With default {@link DNSResolver} resolvers:
157
+ * To use custom resolvers, configure Helia's `dns` option:
157
158
  *
158
159
  * ```TypeScript
159
160
  * import { createHelia } from 'helia'
160
161
  * import { ipns } from '@helia/ipns'
161
- * import { unixfs } from '@helia/unixfs'
162
- * import { dnsOverHttps } from '@helia/ipns/dns-resolvers'
163
- *
164
- * const helia = await createHelia()
165
- * const name = ipns(helia, {
166
- * resolvers: [
167
- * dnsOverHttps('https://private-dns-server.me/dns-query'),
162
+ * import { dns } from '@multiformats/dns'
163
+ * import { dnsOverHttps } from '@multiformats/dns/resolvers'
164
+ * import { helia } from '@helia/ipns/routing'
165
+ *
166
+ * const node = await createHelia({
167
+ * dns: dns({
168
+ * resolvers: {
169
+ * '.': dnsOverHttps('https://private-dns-server.me/dns-query')
170
+ * }
171
+ * })
172
+ * })
173
+ * const name = ipns(node, {
174
+ * routers: [
175
+ * helia(node.routing)
168
176
  * ]
169
177
  * })
170
178
  *
171
- * const { cid, path } = name.resolveDns('some-domain-with-dnslink-entry.com')
179
+ * const result = name.resolveDNSLink('some-domain-with-dnslink-entry.com')
172
180
  * ```
173
181
  *
174
182
  * @example Resolving a domain with a dnslink entry
175
183
  *
176
- * Calling `resolveDns` with the `@helia/ipns` instance:
184
+ * Calling `resolveDNSLink` with the `@helia/ipns` instance:
177
185
  *
178
186
  * ```TypeScript
179
187
  * // resolve a CID from a TXT record in a DNS zone file, using the default
@@ -185,10 +193,16 @@
185
193
  * // ;; ANSWER SECTION:
186
194
  * // _dnslink.website.ipfs.io. 60 IN TXT "dnslink=/ipfs/QmWebsite"
187
195
  *
188
- * const { cid, path } = name.resolveDns('ipfs.io')
196
+ * import { createHelia } from 'helia'
197
+ * import { ipns } from '@helia/ipns'
198
+ *
199
+ * const node = await createHelia()
200
+ * const name = ipns(node)
189
201
  *
190
- * console.info(cid)
191
- * // QmWebsite
202
+ * const { answer } = await name.resolveDNSLink('ipfs.io')
203
+ *
204
+ * console.info(answer)
205
+ * // { data: '/ipfs/QmWebsite' }
192
206
  * ```
193
207
  *
194
208
  * @example Using DNS-Over-HTTPS
@@ -200,14 +214,21 @@
200
214
  * If this is a concern, use the DNS-JSON-Over-HTTPS resolver instead.
201
215
  *
202
216
  * ```TypeScript
203
- * // use DNS-Over-HTTPS
204
- * import { dnsOverHttps } from '@helia/ipns/dns-resolvers'
205
- *
206
- * const { cid, path } = name.resolveDns('ipfs.io', {
207
- * resolvers: [
208
- * dnsOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
209
- * ]
217
+ * import { createHelia } from 'helia'
218
+ * import { ipns } from '@helia/ipns'
219
+ * import { dns } from '@multiformats/dns'
220
+ * import { dnsOverHttps } from '@multiformats/dns/resolvers'
221
+ *
222
+ * const node = await createHelia({
223
+ * dns: dns({
224
+ * resolvers: {
225
+ * '.': dnsOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
226
+ * }
227
+ * })
210
228
  * })
229
+ * const name = ipns(node)
230
+ *
231
+ * const result = await name.resolveDNSLink('ipfs.io')
211
232
  * ```
212
233
  *
213
234
  * @example Using DNS-JSON-Over-HTTPS
@@ -216,14 +237,21 @@
216
237
  * result in a smaller browser bundle due to the response being plain JSON.
217
238
  *
218
239
  * ```TypeScript
219
- * // use DNS-JSON-Over-HTTPS
220
- * import { dnsJsonOverHttps } from '@helia/ipns/dns-resolvers'
221
- *
222
- * const { cid, path } = name.resolveDns('ipfs.io', {
223
- * resolvers: [
224
- * dnsJsonOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
225
- * ]
240
+ * import { createHelia } from 'helia'
241
+ * import { ipns } from '@helia/ipns'
242
+ * import { dns } from '@multiformats/dns'
243
+ * import { dnsJsonOverHttps } from '@multiformats/dns/resolvers'
244
+ *
245
+ * const node = await createHelia({
246
+ * dns: dns({
247
+ * resolvers: {
248
+ * '.': dnsJsonOverHttps('https://mozilla.cloudflare-dns.com/dns-query')
249
+ * }
250
+ * })
226
251
  * })
252
+ * const name = ipns(node)
253
+ *
254
+ * const result = await name.resolveDNSLink('ipfs.io')
227
255
  * ```
228
256
  */
229
257
 
@@ -22,6 +22,10 @@ export interface IPNSRouting {
22
22
  get(routingKey: Uint8Array, options?: GetOptions): Promise<Uint8Array>
23
23
  }
24
24
 
25
+ export type { DatastoreProgressEvents }
26
+ export type { HeliaRoutingProgressEvents }
27
+ export type { PubSubProgressEvents }
28
+
25
29
  export type IPNSRoutingEvents =
26
30
  DatastoreProgressEvents |
27
31
  HeliaRoutingProgressEvents |
@@ -29,3 +33,4 @@ export type IPNSRoutingEvents =
29
33
 
30
34
  export { helia } from './helia.js'
31
35
  export { pubsub } from './pubsub.js'
36
+ export type { PubsubRoutingComponents } from './pubsub.js'