@helia/ipns 1.1.7 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,30 +6,11 @@
6
6
  * @example
7
7
  *
8
8
  * ```typescript
9
- * import { gossipsub } from '@chainsafe/libp2p-gossipsub'
10
- * import { kadDHT } from '@libp2p/kad-dht'
11
- * import { createLibp2p } from 'libp2p'
12
9
  * import { createHelia } from 'helia'
13
- * import { ipns, ipnsValidator, ipnsSelector } from '@helia/ipns'
14
10
  * import { dht, pubsub } from '@helia/ipns/routing'
15
11
  * import { unixfs } from '@helia/unixfs'
16
12
  *
17
- * const libp2p = await createLibp2p({
18
- * dht: kadDHT({
19
- * validators: {
20
- * ipns: ipnsValidator
21
- * },
22
- * selectors: {
23
- * ipns: ipnsSelector
24
- * }
25
- * }),
26
- * pubsub: gossipsub()
27
- * })
28
- *
29
- * const helia = await createHelia({
30
- * libp2p,
31
- * //.. other options
32
- * })
13
+ * const helia = await createHelia()
33
14
  * const name = ipns(helia, [
34
15
  * dht(helia),
35
16
  * pubsub(helia)
@@ -61,18 +42,18 @@
61
42
  * const cid = name.resolveDns('ipfs.io')
62
43
  * ```
63
44
  */
64
- import { type PeerId } from '@libp2p/interface/peer-id';
65
45
  import { ipnsValidator } from 'ipns/validator';
66
46
  import { CID } from 'multiformats/cid';
67
47
  import type { IPNSRouting, IPNSRoutingEvents } from './routing/index.js';
68
48
  import type { AbortOptions } from '@libp2p/interface';
49
+ import type { PeerId } from '@libp2p/interface/peer-id';
69
50
  import type { Datastore } from 'interface-datastore';
70
- import type { IPNSEntry } from 'ipns';
51
+ import type { IPNSRecord } from 'ipns';
71
52
  import type { ProgressEvent, ProgressOptions } from 'progress-events';
72
- export type PublishProgressEvents = ProgressEvent<'ipns:publish:start'> | ProgressEvent<'ipns:publish:success', IPNSEntry> | ProgressEvent<'ipns:publish:error', Error>;
73
- export type ResolveProgressEvents = ProgressEvent<'ipns:resolve:start', unknown> | ProgressEvent<'ipns:resolve:success', IPNSEntry> | ProgressEvent<'ipns:resolve:error', Error>;
74
- export type RepublishProgressEvents = ProgressEvent<'ipns:republish:start', unknown> | ProgressEvent<'ipns:republish:success', IPNSEntry> | ProgressEvent<'ipns:republish:error', {
75
- record: IPNSEntry;
53
+ export type PublishProgressEvents = ProgressEvent<'ipns:publish:start'> | ProgressEvent<'ipns:publish:success', IPNSRecord> | ProgressEvent<'ipns:publish:error', Error>;
54
+ export type ResolveProgressEvents = ProgressEvent<'ipns:resolve:start', unknown> | ProgressEvent<'ipns:resolve:success', IPNSRecord> | ProgressEvent<'ipns:resolve:error', Error>;
55
+ export type RepublishProgressEvents = ProgressEvent<'ipns:republish:start', unknown> | ProgressEvent<'ipns:republish:success', IPNSRecord> | ProgressEvent<'ipns:republish:error', {
56
+ record: IPNSRecord;
76
57
  err: Error;
77
58
  }>;
78
59
  export interface PublishOptions extends AbortOptions, ProgressOptions<PublishProgressEvents | IPNSRoutingEvents> {
@@ -84,6 +65,11 @@ export interface PublishOptions extends AbortOptions, ProgressOptions<PublishPro
84
65
  * Only publish to a local datastore (default: false)
85
66
  */
86
67
  offline?: boolean;
68
+ /**
69
+ * By default a IPNS V1 and a V2 signature is added to every record. Pass
70
+ * false here to only add a V2 signature. (default: true)
71
+ */
72
+ v1Compatible?: boolean;
87
73
  }
88
74
  export interface ResolveOptions extends AbortOptions, ProgressOptions<ResolveProgressEvents | IPNSRoutingEvents> {
89
75
  /**
@@ -109,7 +95,7 @@ export interface IPNS {
109
95
  *
110
96
  * If the valid is a PeerId, a recursive IPNS record will be created.
111
97
  */
112
- publish: (key: PeerId, value: CID | PeerId, options?: PublishOptions) => Promise<IPNSEntry>;
98
+ publish: (key: PeerId, value: CID | PeerId, options?: PublishOptions) => Promise<IPNSRecord>;
113
99
  /**
114
100
  * Accepts a public key formatted as a libp2p PeerID and resolves the IPNS record
115
101
  * corresponding to that public key until a value is found
@@ -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
@@ -6,30 +6,11 @@
6
6
  * @example
7
7
  *
8
8
  * ```typescript
9
- * import { gossipsub } from '@chainsafe/libp2p-gossipsub'
10
- * import { kadDHT } from '@libp2p/kad-dht'
11
- * import { createLibp2p } from 'libp2p'
12
9
  * import { createHelia } from 'helia'
13
- * import { ipns, ipnsValidator, ipnsSelector } from '@helia/ipns'
14
10
  * import { dht, pubsub } from '@helia/ipns/routing'
15
11
  * import { unixfs } from '@helia/unixfs'
16
12
  *
17
- * const libp2p = await createLibp2p({
18
- * dht: kadDHT({
19
- * validators: {
20
- * ipns: ipnsValidator
21
- * },
22
- * selectors: {
23
- * ipns: ipnsSelector
24
- * }
25
- * }),
26
- * pubsub: gossipsub()
27
- * })
28
- *
29
- * const helia = await createHelia({
30
- * libp2p,
31
- * //.. other options
32
- * })
13
+ * const helia = await createHelia()
33
14
  * const name = ipns(helia, [
34
15
  * dht(helia),
35
16
  * pubsub(helia)
@@ -62,7 +43,6 @@
62
43
  * ```
63
44
  */
64
45
  import { CodeError } from '@libp2p/interface/errors';
65
- import { isPeerId } from '@libp2p/interface/peer-id';
66
46
  import { logger } from '@libp2p/logger';
67
47
  import { peerIdFromString } from '@libp2p/peer-id';
68
48
  import { create, marshal, peerIdToRoutingKey, unmarshal } from 'ipns';
@@ -70,8 +50,6 @@ import { ipnsSelector } from 'ipns/selector';
70
50
  import { ipnsValidator } from 'ipns/validator';
71
51
  import { CID } from 'multiformats/cid';
72
52
  import { CustomProgressEvent } from 'progress-events';
73
- import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
74
- import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
75
53
  import { localStore } from './routing/local-store.js';
76
54
  import { resolveDnslink } from './utils/resolve-dns-link.js';
77
55
  const log = logger('helia:ipns');
@@ -97,16 +75,8 @@ class DefaultIPNS {
97
75
  const existingRecord = unmarshal(buf);
98
76
  sequenceNumber = existingRecord.sequence + 1n;
99
77
  }
100
- let str;
101
- if (isPeerId(value)) {
102
- str = `/ipns/${value.toString()}`;
103
- }
104
- else {
105
- str = `/ipfs/${value.toString()}`;
106
- }
107
- const bytes = uint8ArrayFromString(str);
108
78
  // create record
109
- const record = await create(key, bytes, sequenceNumber, options.lifetime ?? DEFAULT_LIFETIME_MS);
79
+ const record = await create(key, value, sequenceNumber, options.lifetime ?? DEFAULT_LIFETIME_MS, options);
110
80
  const marshaledRecord = marshal(record);
111
81
  await this.localStore.put(routingKey, marshaledRecord, options);
112
82
  if (options.offline !== true) {
@@ -123,8 +93,7 @@ class DefaultIPNS {
123
93
  async resolve(key, options = {}) {
124
94
  const routingKey = peerIdToRoutingKey(key);
125
95
  const record = await this.#findIpnsRecord(routingKey, options);
126
- const str = uint8ArrayToString(record.value);
127
- return this.#resolve(str, options);
96
+ return this.#resolve(record.value, options);
128
97
  }
129
98
  async resolveDns(domain, options = {}) {
130
99
  const dnslink = await resolveDnslink(domain, options);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helia/ipns",
3
- "version": "1.1.7",
3
+ "version": "2.0.0",
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-ipns/tree/master/packages/ipns#readme",
@@ -160,7 +160,7 @@
160
160
  "@libp2p/record": "^3.0.0",
161
161
  "hashlru": "^2.3.0",
162
162
  "interface-datastore": "^8.0.0",
163
- "ipns": "^6.0.0",
163
+ "ipns": "^7.0.1",
164
164
  "is-ipfs": "^8.0.1",
165
165
  "multiformats": "^12.0.1",
166
166
  "p-queue": "^7.3.0",
package/src/index.ts CHANGED
@@ -6,30 +6,11 @@
6
6
  * @example
7
7
  *
8
8
  * ```typescript
9
- * import { gossipsub } from '@chainsafe/libp2p-gossipsub'
10
- * import { kadDHT } from '@libp2p/kad-dht'
11
- * import { createLibp2p } from 'libp2p'
12
9
  * import { createHelia } from 'helia'
13
- * import { ipns, ipnsValidator, ipnsSelector } from '@helia/ipns'
14
10
  * import { dht, pubsub } from '@helia/ipns/routing'
15
11
  * import { unixfs } from '@helia/unixfs'
16
12
  *
17
- * const libp2p = await createLibp2p({
18
- * dht: kadDHT({
19
- * validators: {
20
- * ipns: ipnsValidator
21
- * },
22
- * selectors: {
23
- * ipns: ipnsSelector
24
- * }
25
- * }),
26
- * pubsub: gossipsub()
27
- * })
28
- *
29
- * const helia = await createHelia({
30
- * libp2p,
31
- * //.. other options
32
- * })
13
+ * const helia = await createHelia()
33
14
  * const name = ipns(helia, [
34
15
  * dht(helia),
35
16
  * pubsub(helia)
@@ -63,7 +44,6 @@
63
44
  */
64
45
 
65
46
  import { CodeError } from '@libp2p/interface/errors'
66
- import { isPeerId, type PeerId } from '@libp2p/interface/peer-id'
67
47
  import { logger } from '@libp2p/logger'
68
48
  import { peerIdFromString } from '@libp2p/peer-id'
69
49
  import { create, marshal, peerIdToRoutingKey, unmarshal } from 'ipns'
@@ -71,14 +51,13 @@ import { ipnsSelector } from 'ipns/selector'
71
51
  import { ipnsValidator } from 'ipns/validator'
72
52
  import { CID } from 'multiformats/cid'
73
53
  import { CustomProgressEvent } from 'progress-events'
74
- import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
75
- import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
76
54
  import { localStore, type LocalStore } from './routing/local-store.js'
77
55
  import { resolveDnslink } from './utils/resolve-dns-link.js'
78
56
  import type { IPNSRouting, IPNSRoutingEvents } from './routing/index.js'
79
57
  import type { AbortOptions } from '@libp2p/interface'
58
+ import type { PeerId } from '@libp2p/interface/peer-id'
80
59
  import type { Datastore } from 'interface-datastore'
81
- import type { IPNSEntry } from 'ipns'
60
+ import type { IPNSRecord } from 'ipns'
82
61
  import type { ProgressEvent, ProgressOptions } from 'progress-events'
83
62
 
84
63
  const log = logger('helia:ipns')
@@ -91,18 +70,18 @@ const DEFAULT_REPUBLISH_INTERVAL_MS = 23 * HOUR
91
70
 
92
71
  export type PublishProgressEvents =
93
72
  ProgressEvent<'ipns:publish:start'> |
94
- ProgressEvent<'ipns:publish:success', IPNSEntry> |
73
+ ProgressEvent<'ipns:publish:success', IPNSRecord> |
95
74
  ProgressEvent<'ipns:publish:error', Error>
96
75
 
97
76
  export type ResolveProgressEvents =
98
77
  ProgressEvent<'ipns:resolve:start', unknown> |
99
- ProgressEvent<'ipns:resolve:success', IPNSEntry> |
78
+ ProgressEvent<'ipns:resolve:success', IPNSRecord> |
100
79
  ProgressEvent<'ipns:resolve:error', Error>
101
80
 
102
81
  export type RepublishProgressEvents =
103
82
  ProgressEvent<'ipns:republish:start', unknown> |
104
- ProgressEvent<'ipns:republish:success', IPNSEntry> |
105
- ProgressEvent<'ipns:republish:error', { record: IPNSEntry, err: Error }>
83
+ ProgressEvent<'ipns:republish:success', IPNSRecord> |
84
+ ProgressEvent<'ipns:republish:error', { record: IPNSRecord, err: Error }>
106
85
 
107
86
  export interface PublishOptions extends AbortOptions, ProgressOptions<PublishProgressEvents | IPNSRoutingEvents> {
108
87
  /**
@@ -114,6 +93,12 @@ export interface PublishOptions extends AbortOptions, ProgressOptions<PublishPro
114
93
  * Only publish to a local datastore (default: false)
115
94
  */
116
95
  offline?: boolean
96
+
97
+ /**
98
+ * By default a IPNS V1 and a V2 signature is added to every record. Pass
99
+ * false here to only add a V2 signature. (default: true)
100
+ */
101
+ v1Compatible?: boolean
117
102
  }
118
103
 
119
104
  export interface ResolveOptions extends AbortOptions, ProgressOptions<ResolveProgressEvents | IPNSRoutingEvents> {
@@ -143,7 +128,7 @@ export interface IPNS {
143
128
  *
144
129
  * If the valid is a PeerId, a recursive IPNS record will be created.
145
130
  */
146
- publish: (key: PeerId, value: CID | PeerId, options?: PublishOptions) => Promise<IPNSEntry>
131
+ publish: (key: PeerId, value: CID | PeerId, options?: PublishOptions) => Promise<IPNSRecord>
147
132
 
148
133
  /**
149
134
  * Accepts a public key formatted as a libp2p PeerID and resolves the IPNS record
@@ -178,7 +163,7 @@ class DefaultIPNS implements IPNS {
178
163
  this.localStore = localStore(components.datastore)
179
164
  }
180
165
 
181
- async publish (key: PeerId, value: CID | PeerId, options: PublishOptions = {}): Promise<IPNSEntry> {
166
+ async publish (key: PeerId, value: CID | PeerId, options: PublishOptions = {}): Promise<IPNSRecord> {
182
167
  try {
183
168
  let sequenceNumber = 1n
184
169
  const routingKey = peerIdToRoutingKey(key)
@@ -190,18 +175,8 @@ class DefaultIPNS implements IPNS {
190
175
  sequenceNumber = existingRecord.sequence + 1n
191
176
  }
192
177
 
193
- let str
194
-
195
- if (isPeerId(value)) {
196
- str = `/ipns/${value.toString()}`
197
- } else {
198
- str = `/ipfs/${value.toString()}`
199
- }
200
-
201
- const bytes = uint8ArrayFromString(str)
202
-
203
178
  // create record
204
- const record = await create(key, bytes, sequenceNumber, options.lifetime ?? DEFAULT_LIFETIME_MS)
179
+ const record = await create(key, value, sequenceNumber, options.lifetime ?? DEFAULT_LIFETIME_MS, options)
205
180
  const marshaledRecord = marshal(record)
206
181
 
207
182
  await this.localStore.put(routingKey, marshaledRecord, options)
@@ -221,9 +196,8 @@ class DefaultIPNS implements IPNS {
221
196
  async resolve (key: PeerId, options: ResolveOptions = {}): Promise<CID> {
222
197
  const routingKey = peerIdToRoutingKey(key)
223
198
  const record = await this.#findIpnsRecord(routingKey, options)
224
- const str = uint8ArrayToString(record.value)
225
199
 
226
- return this.#resolve(str, options)
200
+ return this.#resolve(record.value, options)
227
201
  }
228
202
 
229
203
  async resolveDns (domain: string, options: ResolveDNSOptions = {}): Promise<CID> {
@@ -285,7 +259,7 @@ class DefaultIPNS implements IPNS {
285
259
  throw new Error('Invalid value')
286
260
  }
287
261
 
288
- async #findIpnsRecord (routingKey: Uint8Array, options: ResolveOptions = {}): Promise<IPNSEntry> {
262
+ async #findIpnsRecord (routingKey: Uint8Array, options: ResolveOptions = {}): Promise<IPNSRecord> {
289
263
  let routers = [
290
264
  this.localStore,
291
265
  ...this.routers