@helia/ipns 7.2.2 → 7.2.3-2f88fc8
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 +86 -58
- package/dist/index.min.js +4 -5
- package/dist/src/dnslink.d.ts +1 -1
- package/dist/src/dnslink.d.ts.map +1 -1
- package/dist/src/dnslink.js +7 -6
- package/dist/src/dnslink.js.map +1 -1
- package/dist/src/errors.d.ts +25 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +43 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/index.d.ts +90 -61
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +131 -72
- package/dist/src/index.js.map +1 -1
- package/dist/src/routing/index.d.ts +4 -0
- package/dist/src/routing/index.d.ts.map +1 -1
- package/dist/src/routing/index.js.map +1 -1
- package/dist/src/routing/local-store.js +1 -1
- package/dist/src/routing/pubsub.d.ts.map +1 -1
- package/dist/src/routing/pubsub.js +6 -4
- package/dist/src/routing/pubsub.js.map +1 -1
- package/dist/src/utils.d.ts +5 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +6 -0
- package/dist/src/utils.js.map +1 -0
- package/package.json +12 -11
- package/src/dnslink.ts +8 -6
- package/src/errors.ts +53 -0
- package/src/index.ts +141 -78
- package/src/routing/index.ts +5 -0
- package/src/routing/local-store.ts +1 -1
- package/src/routing/pubsub.ts +9 -6
- package/src/utils.ts +8 -0
- package/dist/typedoc-urls.json +0 -42
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
|
|
19
|
-
* const
|
|
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.
|
|
24
|
+
* const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
|
|
25
25
|
*
|
|
26
26
|
* // publish the name
|
|
27
|
-
* await name.publish(
|
|
27
|
+
* await name.publish(privateKey, cid)
|
|
28
28
|
*
|
|
29
29
|
* // resolve the name
|
|
30
|
-
* const result = name.resolve(
|
|
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
|
|
49
|
-
* const
|
|
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.
|
|
54
|
+
* const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
|
|
55
55
|
*
|
|
56
56
|
* // publish the name
|
|
57
|
-
* await name.publish(
|
|
57
|
+
* await name.publish(privateKey, cid)
|
|
58
58
|
*
|
|
59
|
-
* // create another
|
|
60
|
-
* const
|
|
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(
|
|
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(
|
|
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
|
|
84
|
-
* const
|
|
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.
|
|
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.
|
|
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(
|
|
95
|
+
* await name.publish(privateKey, `/ipfs/${finalDirCid}/foo.txt`)
|
|
97
96
|
*
|
|
98
97
|
* // resolve the name
|
|
99
|
-
* const result = name.resolve(
|
|
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
|
|
140
|
-
* const
|
|
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.
|
|
146
|
+
* const cid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3, 4]))
|
|
146
147
|
*
|
|
147
148
|
* // publish the name
|
|
148
|
-
* await name.publish(
|
|
149
|
+
* await name.publish(privateKey, cid)
|
|
149
150
|
*
|
|
150
151
|
* // resolve the name
|
|
151
|
-
* const
|
|
152
|
+
* const result = await name.resolve(privateKey.publicKey)
|
|
152
153
|
* ```
|
|
153
154
|
*
|
|
154
155
|
* @example Using custom DNS over HTTPS resolvers
|
|
155
156
|
*
|
|
156
|
-
*
|
|
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 {
|
|
162
|
-
* import { dnsOverHttps } from '@
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
* const
|
|
166
|
-
*
|
|
167
|
-
*
|
|
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
|
|
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 `
|
|
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
|
-
*
|
|
196
|
+
* import { createHelia } from 'helia'
|
|
197
|
+
* import { ipns } from '@helia/ipns'
|
|
198
|
+
*
|
|
199
|
+
* const node = await createHelia()
|
|
200
|
+
* const name = ipns(node)
|
|
201
|
+
*
|
|
202
|
+
* const { answer } = await name.resolveDNSLink('ipfs.io')
|
|
189
203
|
*
|
|
190
|
-
* console.info(
|
|
191
|
-
* // QmWebsite
|
|
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
|
-
*
|
|
204
|
-
* import {
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
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,33 +237,48 @@
|
|
|
216
237
|
* result in a smaller browser bundle due to the response being plain JSON.
|
|
217
238
|
*
|
|
218
239
|
* ```TypeScript
|
|
219
|
-
*
|
|
220
|
-
* import {
|
|
221
|
-
*
|
|
222
|
-
*
|
|
223
|
-
*
|
|
224
|
-
*
|
|
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
|
-
import {
|
|
257
|
+
import { NotFoundError, isPublicKey } from '@libp2p/interface';
|
|
230
258
|
import { logger } from '@libp2p/logger';
|
|
231
|
-
import {
|
|
232
|
-
import { create, marshal, peerIdToRoutingKey, unmarshal } from 'ipns';
|
|
259
|
+
import { createIPNSRecord, marshalIPNSRecord, multihashToIPNSRoutingKey, unmarshalIPNSRecord } from 'ipns';
|
|
233
260
|
import { ipnsSelector } from 'ipns/selector';
|
|
234
261
|
import { ipnsValidator } from 'ipns/validator';
|
|
262
|
+
import { base36 } from 'multiformats/bases/base36';
|
|
263
|
+
import { base58btc } from 'multiformats/bases/base58';
|
|
235
264
|
import { CID } from 'multiformats/cid';
|
|
265
|
+
import * as Digest from 'multiformats/hashes/digest';
|
|
236
266
|
import { CustomProgressEvent } from 'progress-events';
|
|
237
267
|
import { resolveDNSLink } from './dnslink.js';
|
|
268
|
+
import { InvalidValueError, RecordsFailedValidationError, UnsupportedMultibasePrefixError, UnsupportedMultihashCodecError } from './errors.js';
|
|
238
269
|
import { helia } from './routing/helia.js';
|
|
239
270
|
import { localStore } from './routing/local-store.js';
|
|
271
|
+
import { isCodec, IDENTITY_CODEC, SHA2_256_CODEC } from './utils.js';
|
|
240
272
|
const log = logger('helia:ipns');
|
|
241
273
|
const MINUTE = 60 * 1000;
|
|
242
274
|
const HOUR = 60 * MINUTE;
|
|
243
275
|
const DEFAULT_LIFETIME_MS = 24 * HOUR;
|
|
244
276
|
const DEFAULT_REPUBLISH_INTERVAL_MS = 23 * HOUR;
|
|
245
277
|
const DEFAULT_TTL_NS = BigInt(HOUR) * 1000000n;
|
|
278
|
+
const bases = {
|
|
279
|
+
[base36.prefix]: base36,
|
|
280
|
+
[base58btc.prefix]: base58btc
|
|
281
|
+
};
|
|
246
282
|
class DefaultIPNS {
|
|
247
283
|
routers;
|
|
248
284
|
localStore;
|
|
@@ -261,16 +297,16 @@ class DefaultIPNS {
|
|
|
261
297
|
async publish(key, value, options = {}) {
|
|
262
298
|
try {
|
|
263
299
|
let sequenceNumber = 1n;
|
|
264
|
-
const routingKey =
|
|
300
|
+
const routingKey = multihashToIPNSRoutingKey(key.publicKey.toMultihash());
|
|
265
301
|
if (await this.localStore.has(routingKey, options)) {
|
|
266
302
|
// if we have published under this key before, increment the sequence number
|
|
267
303
|
const { record } = await this.localStore.get(routingKey, options);
|
|
268
|
-
const existingRecord =
|
|
304
|
+
const existingRecord = unmarshalIPNSRecord(record);
|
|
269
305
|
sequenceNumber = existingRecord.sequence + 1n;
|
|
270
306
|
}
|
|
271
307
|
// create record
|
|
272
|
-
const record = await
|
|
273
|
-
const marshaledRecord =
|
|
308
|
+
const record = await createIPNSRecord(key, value, sequenceNumber, options.lifetime ?? DEFAULT_LIFETIME_MS, options);
|
|
309
|
+
const marshaledRecord = marshalIPNSRecord(record);
|
|
274
310
|
await this.localStore.put(routingKey, marshaledRecord, options);
|
|
275
311
|
if (options.offline !== true) {
|
|
276
312
|
// publish record to routing
|
|
@@ -284,7 +320,8 @@ class DefaultIPNS {
|
|
|
284
320
|
}
|
|
285
321
|
}
|
|
286
322
|
async resolve(key, options = {}) {
|
|
287
|
-
const
|
|
323
|
+
const digest = isPublicKey(key) ? key.toMultihash() : key;
|
|
324
|
+
const routingKey = multihashToIPNSRoutingKey(digest);
|
|
288
325
|
const record = await this.#findIpnsRecord(routingKey, options);
|
|
289
326
|
return {
|
|
290
327
|
...(await this.#resolve(record.value, options)),
|
|
@@ -331,7 +368,29 @@ class DefaultIPNS {
|
|
|
331
368
|
try {
|
|
332
369
|
const scheme = parts[1];
|
|
333
370
|
if (scheme === 'ipns') {
|
|
334
|
-
const
|
|
371
|
+
const str = parts[2];
|
|
372
|
+
const prefix = str.substring(0, 1);
|
|
373
|
+
let buf;
|
|
374
|
+
if (prefix === '1' || prefix === 'Q') {
|
|
375
|
+
buf = base58btc.decode(`z${str}`);
|
|
376
|
+
}
|
|
377
|
+
else if (bases[prefix] != null) {
|
|
378
|
+
buf = bases[prefix].decode(str);
|
|
379
|
+
}
|
|
380
|
+
else {
|
|
381
|
+
throw new UnsupportedMultibasePrefixError(`Unsupported multibase prefix "${prefix}"`);
|
|
382
|
+
}
|
|
383
|
+
let digest;
|
|
384
|
+
try {
|
|
385
|
+
digest = Digest.decode(buf);
|
|
386
|
+
}
|
|
387
|
+
catch {
|
|
388
|
+
digest = CID.decode(buf).multihash;
|
|
389
|
+
}
|
|
390
|
+
if (!isCodec(digest, IDENTITY_CODEC) && !isCodec(digest, SHA2_256_CODEC)) {
|
|
391
|
+
throw new UnsupportedMultihashCodecError(`Unsupported multihash codec "${digest.code}"`);
|
|
392
|
+
}
|
|
393
|
+
const { cid } = await this.resolve(digest, options);
|
|
335
394
|
const path = parts.slice(3).join('/');
|
|
336
395
|
return {
|
|
337
396
|
cid,
|
|
@@ -351,7 +410,7 @@ class DefaultIPNS {
|
|
|
351
410
|
log.error('error parsing ipfs path', err);
|
|
352
411
|
}
|
|
353
412
|
log.error('invalid ipfs path %s', ipfsPath);
|
|
354
|
-
throw new
|
|
413
|
+
throw new InvalidValueError('Invalid value');
|
|
355
414
|
}
|
|
356
415
|
async #findIpnsRecord(routingKey, options = {}) {
|
|
357
416
|
const records = [];
|
|
@@ -367,7 +426,7 @@ class DefaultIPNS {
|
|
|
367
426
|
await ipnsValidator(routingKey, record);
|
|
368
427
|
this.log('record was valid');
|
|
369
428
|
// check the TTL
|
|
370
|
-
const ipnsRecord =
|
|
429
|
+
const ipnsRecord = unmarshalIPNSRecord(record);
|
|
371
430
|
// IPNS TTL is in nanoseconds, convert to milliseconds, default to one
|
|
372
431
|
// hour
|
|
373
432
|
const ttlMs = Number((ipnsRecord.ttl ?? DEFAULT_TTL_NS) / 1000000n);
|
|
@@ -398,7 +457,7 @@ class DefaultIPNS {
|
|
|
398
457
|
}
|
|
399
458
|
}
|
|
400
459
|
if (options.offline === true) {
|
|
401
|
-
throw new
|
|
460
|
+
throw new NotFoundError('Record was not present in the cache or has expired');
|
|
402
461
|
}
|
|
403
462
|
log('did not have record locally');
|
|
404
463
|
let foundInvalid = 0;
|
|
@@ -426,13 +485,13 @@ class DefaultIPNS {
|
|
|
426
485
|
}));
|
|
427
486
|
if (records.length === 0) {
|
|
428
487
|
if (foundInvalid > 0) {
|
|
429
|
-
throw new
|
|
488
|
+
throw new RecordsFailedValidationError(`${foundInvalid > 1 ? `${foundInvalid} records` : 'Record'} found for routing key ${foundInvalid > 1 ? 'were' : 'was'} invalid`);
|
|
430
489
|
}
|
|
431
|
-
throw new
|
|
490
|
+
throw new NotFoundError('Could not find record for routing key');
|
|
432
491
|
}
|
|
433
492
|
const record = records[ipnsSelector(routingKey, records)];
|
|
434
493
|
await this.localStore.put(routingKey, record, options);
|
|
435
|
-
return
|
|
494
|
+
return unmarshalIPNSRecord(record);
|
|
436
495
|
}
|
|
437
496
|
}
|
|
438
497
|
export function ipns(components, { routers = [] } = {}) {
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
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":"
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubsub.d.ts","sourceRoot":"","sources":["../../../src/routing/pubsub.ts"],"names":[],"mappings":"AAKA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"pubsub.d.ts","sourceRoot":"","sources":["../../../src/routing/pubsub.ts"],"names":[],"mappings":"AAKA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAMzE,OAAO,KAAK,EAAc,WAAW,EAAc,MAAM,YAAY,CAAA;AACrE,OAAO,KAAK,EAAE,MAAM,EAAW,aAAa,EAAE,MAAM,EAAa,MAAM,mBAAmB,CAAA;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAKpD,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE;YACR,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;KACF,CAAA;CACF;AAED,MAAM,MAAM,oBAAoB,GAC9B,aAAa,CAAC,qBAAqB,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC,GAC9E,aAAa,CAAC,uBAAuB,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GACzD,aAAa,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;AA+J3C;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAE,UAAU,EAAE,uBAAuB,GAAG,WAAW,CAExE"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isPublicKey } from '@libp2p/interface';
|
|
2
2
|
import { logger } from '@libp2p/logger';
|
|
3
|
-
import {
|
|
3
|
+
import { multihashToIPNSRoutingKey } from 'ipns';
|
|
4
4
|
import { ipnsSelector } from 'ipns/selector';
|
|
5
5
|
import { ipnsValidator } from 'ipns/validator';
|
|
6
6
|
import { CustomProgressEvent } from 'progress-events';
|
|
7
7
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
|
|
8
8
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
9
9
|
import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
|
|
10
|
+
import { InvalidTopicError } from '../errors.js';
|
|
10
11
|
import { localStore } from './local-store.js';
|
|
11
12
|
const log = logger('helia:ipns:routing:pubsub');
|
|
12
13
|
class PubSubRouting {
|
|
@@ -106,7 +107,8 @@ class PubSubRouting {
|
|
|
106
107
|
* Cancel pubsub subscriptions related to ipns
|
|
107
108
|
*/
|
|
108
109
|
cancel(key) {
|
|
109
|
-
const
|
|
110
|
+
const digest = isPublicKey(key) ? key.toMultihash() : key;
|
|
111
|
+
const routingKey = multihashToIPNSRoutingKey(digest);
|
|
110
112
|
const topic = keyToTopic(routingKey);
|
|
111
113
|
// Not found topic
|
|
112
114
|
if (!this.subscriptions.includes(topic)) {
|
|
@@ -129,7 +131,7 @@ function keyToTopic(key) {
|
|
|
129
131
|
*/
|
|
130
132
|
function topicToKey(topic) {
|
|
131
133
|
if (topic.substring(0, PUBSUB_NAMESPACE.length) !== PUBSUB_NAMESPACE) {
|
|
132
|
-
throw new
|
|
134
|
+
throw new InvalidTopicError('Topic received is not from a record');
|
|
133
135
|
}
|
|
134
136
|
const key = topic.substring(PUBSUB_NAMESPACE.length);
|
|
135
137
|
return uint8ArrayFromString(key, 'base64url');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../../src/routing/pubsub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../../src/routing/pubsub.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MultihashDigest } from 'multiformats/hashes/interface';
|
|
2
|
+
export declare const IDENTITY_CODEC = 0;
|
|
3
|
+
export declare const SHA2_256_CODEC = 18;
|
|
4
|
+
export declare function isCodec<T extends number>(digest: MultihashDigest, codec: T): digest is MultihashDigest<T>;
|
|
5
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,eAAO,MAAM,cAAc,IAAM,CAAA;AACjC,eAAO,MAAM,cAAc,KAAO,CAAA;AAElC,wBAAgB,OAAO,CAAE,CAAC,SAAS,MAAM,EAAG,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAE3G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;AACjC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAA;AAElC,MAAM,UAAU,OAAO,CAAqB,MAAuB,EAAE,KAAQ;IAC3E,OAAO,MAAM,CAAC,IAAI,KAAK,KAAK,CAAA;AAC9B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helia/ipns",
|
|
3
|
-
"version": "7.2.
|
|
3
|
+
"version": "7.2.3-2f88fc8",
|
|
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,25 +165,25 @@
|
|
|
164
165
|
"release": "aegir release"
|
|
165
166
|
},
|
|
166
167
|
"dependencies": {
|
|
167
|
-
"@helia/interface": "
|
|
168
|
-
"@libp2p/interface": "^
|
|
169
|
-
"@libp2p/kad-dht": "^
|
|
170
|
-
"@libp2p/logger": "^
|
|
171
|
-
"@libp2p/peer-id": "^
|
|
168
|
+
"@helia/interface": "4.3.1-2f88fc8",
|
|
169
|
+
"@libp2p/interface": "^2.0.0",
|
|
170
|
+
"@libp2p/kad-dht": "^13.0.0",
|
|
171
|
+
"@libp2p/logger": "^5.0.0",
|
|
172
|
+
"@libp2p/peer-id": "^5.0.0",
|
|
172
173
|
"@multiformats/dns": "^1.0.1",
|
|
173
174
|
"interface-datastore": "^8.2.11",
|
|
174
|
-
"ipns": "^
|
|
175
|
+
"ipns": "^10.0.0",
|
|
175
176
|
"multiformats": "^13.1.0",
|
|
176
177
|
"progress-events": "^1.0.0",
|
|
177
178
|
"uint8arrays": "^5.0.2"
|
|
178
179
|
},
|
|
179
180
|
"devDependencies": {
|
|
180
|
-
"@libp2p/
|
|
181
|
+
"@libp2p/crypto": "^5.0.0",
|
|
181
182
|
"@types/dns-packet": "^5.6.5",
|
|
182
|
-
"aegir": "^
|
|
183
|
-
"datastore-core": "^
|
|
183
|
+
"aegir": "^44.0.1",
|
|
184
|
+
"datastore-core": "^10.0.0",
|
|
184
185
|
"it-drain": "^3.0.5",
|
|
185
|
-
"sinon": "^
|
|
186
|
+
"sinon": "^19.0.2",
|
|
186
187
|
"sinon-ts": "^2.0.0"
|
|
187
188
|
},
|
|
188
189
|
"browser": {
|