@helia/delegated-routing-v1-http-api-client 6.0.0 → 7.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.
@@ -1,8 +1,6 @@
1
- import { contentRoutingSymbol, peerRoutingSymbol } from '@libp2p/interface';
2
1
  import { CID } from 'multiformats/cid';
3
- import type { DelegatedRoutingV1HttpApiClient as DelegatedRoutingV1HttpApiClientInterface, DelegatedRoutingV1HttpApiClientInit, GetProvidersOptions, GetPeersOptions, GetIPNSOptions, PeerRecord, DelegatedRoutingV1HttpApiClientComponents, GetClosestPeersOptions } from './index.js';
4
- import type { ContentRouting, PeerRouting, AbortOptions, PeerId } from '@libp2p/interface';
5
- import type { IPNSRecord } from 'ipns';
2
+ import type { DelegatedRoutingV1HttpApiClient as DelegatedRoutingV1HttpApiClientInterface, DelegatedRoutingV1HttpApiClientInit, GetProvidersOptions, GetPeersOptions, GetIPNSOptions, PeerRecord, DelegatedRoutingV1HttpApiClientComponents, GetClosestPeersOptions } from './index.ts';
3
+ import type { AbortOptions } from '@libp2p/interface';
6
4
  export declare class DelegatedRoutingV1HttpApiClient implements DelegatedRoutingV1HttpApiClientInterface {
7
5
  #private;
8
6
  readonly url: URL;
@@ -10,8 +8,6 @@ export declare class DelegatedRoutingV1HttpApiClient implements DelegatedRouting
10
8
  private readonly httpQueue;
11
9
  private readonly shutDownController;
12
10
  private readonly timeout;
13
- private readonly contentRouting;
14
- private readonly peerRouting;
15
11
  private readonly filterAddrs?;
16
12
  private readonly filterProtocols?;
17
13
  private readonly inFlightRequests;
@@ -25,16 +21,14 @@ export declare class DelegatedRoutingV1HttpApiClient implements DelegatedRouting
25
21
  constructor(components: DelegatedRoutingV1HttpApiClientComponents, init: DelegatedRoutingV1HttpApiClientInit & {
26
22
  url: string | URL;
27
23
  });
28
- get [contentRoutingSymbol](): ContentRouting;
29
- get [peerRoutingSymbol](): PeerRouting;
30
24
  isStarted(): boolean;
31
25
  start(): Promise<void>;
32
26
  stop(): Promise<void>;
33
27
  getProviders(cid: CID, options?: GetProvidersOptions): AsyncGenerator<PeerRecord>;
34
- getPeers(peerId: PeerId, options?: GetPeersOptions): AsyncGenerator<PeerRecord>;
35
- getClosestPeers(key: CID | PeerId, options?: GetClosestPeersOptions): AsyncGenerator<PeerRecord>;
36
- getIPNS(libp2pKey: CID<unknown, 0x72, 0x00 | 0x12, 1>, options?: GetIPNSOptions): Promise<IPNSRecord>;
37
- putIPNS(libp2pKey: CID<unknown, 0x72, 0x00 | 0x12, 1>, record: IPNSRecord, options?: AbortOptions): Promise<void>;
28
+ getPeers(cid: CID, options?: GetPeersOptions): AsyncGenerator<PeerRecord>;
29
+ getClosestPeers(key: CID, options?: GetClosestPeersOptions): AsyncGenerator<PeerRecord>;
30
+ getIPNS(cid: CID, options?: GetIPNSOptions): Promise<Uint8Array<ArrayBuffer>>;
31
+ putIPNS(libp2pKey: CID, record: Uint8Array, options?: AbortOptions): Promise<void>;
38
32
  toString(): string;
39
33
  private logRequest;
40
34
  private logResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,oBAAoB,EAAY,iBAAiB,EAAmB,MAAM,mBAAmB,CAAA;AAQ7I,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAKtC,OAAO,KAAK,EAAE,+BAA+B,IAAI,wCAAwC,EAAE,mCAAmC,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,yCAAyC,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACvR,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAU,MAAM,mBAAmB,CAAA;AAElG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAStC,qBAAa,+BAAgC,YAAW,wCAAwC;;IAC9F,SAAgB,GAAG,EAAE,GAAG,CAAA;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,KAAK,CAAC,CAAO;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,GAAG,CAAQ;IAEnB;;OAEG;gBACU,UAAU,EAAE,yCAAyC,EAAE,IAAI,EAAE,mCAAmC,GAAG;QAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;IAoBrI,IAAI,CAAC,oBAAoB,CAAC,IAAK,cAAc,CAE5C;IAED,IAAI,CAAC,iBAAiB,CAAC,IAAK,WAAW,CAEtC;IAED,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAgBvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAUpB,YAAY,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,mBAAwB,GAAG,cAAc,CAAC,UAAU,CAAC;IA8FtF,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,cAAc,CAAC,UAAU,CAAC;IAsEpF,eAAe,CAAE,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,cAAc,CAAC,UAAU,CAAC;IAgFvG,OAAO,CAAE,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAwE1G,OAAO,CAAE,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4J5H,QAAQ,IAAK,MAAM;IAInB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,WAAW;CAOpB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAKtC,OAAO,KAAK,EAAE,+BAA+B,IAAI,wCAAwC,EAAE,mCAAmC,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,yCAAyC,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACvR,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,mBAAmB,CAAA;AAU7D,qBAAa,+BAAgC,YAAW,wCAAwC;;IAC9F,SAAgB,GAAG,EAAE,GAAG,CAAA;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,KAAK,CAAC,CAAO;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,GAAG,CAAQ;IAEnB;;OAEG;gBACU,UAAU,EAAE,yCAAyC,EAAE,IAAI,EAAE,mCAAmC,GAAG;QAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;IAkBrI,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAgBvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAUpB,YAAY,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,mBAAwB,GAAG,cAAc,CAAC,UAAU,CAAC;IA6FtF,QAAQ,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,eAAoB,GAAG,cAAc,CAAC,UAAU,CAAC;IA0E9E,eAAe,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,sBAA2B,GAAG,cAAc,CAAC,UAAU,CAAC;IAkF9F,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAuElF,OAAO,CAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgK7F,QAAQ,IAAK,MAAM;IAInB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,WAAW;CAOpB"}
@@ -1,16 +1,14 @@
1
- import { InvalidParametersError, NotFoundError, contentRoutingSymbol, isPeerId, peerRoutingSymbol, setMaxListeners } from '@libp2p/interface';
1
+ import { InvalidParametersError, NotFoundError, setMaxListeners } from '@libp2p/interface';
2
2
  import { peerIdFromString } from '@libp2p/peer-id';
3
3
  import { multiaddr } from '@multiformats/multiaddr';
4
4
  import { anySignal } from 'any-signal';
5
5
  import toIt from 'browser-readablestream-to-it';
6
- import { unmarshalIPNSRecord, marshalIPNSRecord, multihashToIPNSRoutingKey } from 'ipns';
7
- import { ipnsValidator } from 'ipns/validator';
8
6
  import { parse as ndjson } from 'it-ndjson';
9
7
  import { CID } from 'multiformats/cid';
10
8
  import defer from 'p-defer';
11
9
  import PQueue from 'p-queue';
12
- import { BadResponseError, InvalidRequestError } from './errors.js';
13
- import { DelegatedRoutingV1HttpApiClientContentRouting, DelegatedRoutingV1HttpApiClientPeerRouting } from './routings.js';
10
+ import { withArrayBuffer } from 'uint8arrays/with-array-buffer';
11
+ import { BadResponseError, InvalidRequestError } from "./errors.js";
14
12
  const defaultValues = {
15
13
  concurrentRequests: 4,
16
14
  timeout: 30e3,
@@ -23,8 +21,6 @@ export class DelegatedRoutingV1HttpApiClient {
23
21
  httpQueue;
24
22
  shutDownController;
25
23
  timeout;
26
- contentRouting;
27
- peerRouting;
28
24
  filterAddrs;
29
25
  filterProtocols;
30
26
  inFlightRequests;
@@ -48,17 +44,9 @@ export class DelegatedRoutingV1HttpApiClient {
48
44
  this.timeout = init.timeout ?? defaultValues.timeout;
49
45
  this.filterAddrs = init.filterAddrs;
50
46
  this.filterProtocols = init.filterProtocols;
51
- this.contentRouting = new DelegatedRoutingV1HttpApiClientContentRouting(this);
52
- this.peerRouting = new DelegatedRoutingV1HttpApiClientPeerRouting(this);
53
47
  this.cacheName = init.cacheName ?? defaultValues.cacheName;
54
48
  this.cacheTTL = init.cacheTTL ?? defaultValues.cacheTTL;
55
49
  }
56
- get [contentRoutingSymbol]() {
57
- return this.contentRouting;
58
- }
59
- get [peerRoutingSymbol]() {
60
- return this.peerRouting;
61
- }
62
50
  isStarted() {
63
51
  return this.started;
64
52
  }
@@ -98,13 +86,12 @@ export class DelegatedRoutingV1HttpApiClient {
98
86
  // https://specs.ipfs.tech/routing/http-routing-v1/
99
87
  const url = new URL(`${this.url}routing/v1/providers/${cid}`);
100
88
  this.#addFilterParams(url, options.filterAddrs, options.filterProtocols);
101
- const getOptions = {
89
+ const res = await this.#makeRequest(url.toString(), {
102
90
  headers: {
103
91
  accept: 'application/x-ndjson, application/json;q=0.8'
104
92
  },
105
93
  signal
106
- };
107
- const res = await this.#makeRequest(url.toString(), getOptions);
94
+ });
108
95
  if (!res.ok) {
109
96
  // Per IPIP-0513: Handle 404 as empty results (not an error)
110
97
  // Old servers return 404, new servers return 200 with empty array
@@ -163,8 +150,8 @@ export class DelegatedRoutingV1HttpApiClient {
163
150
  this.log('getProviders finished found %d providers for %c', found, cid);
164
151
  }
165
152
  }
166
- async *getPeers(peerId, options = {}) {
167
- this.log('getPeers starts: %c', peerId);
153
+ async *getPeers(cid, options = {}) {
154
+ this.log('getPeers starts: %c', cid);
168
155
  const timeoutSignal = AbortSignal.timeout(this.timeout);
169
156
  const signal = anySignal([this.shutDownController.signal, timeoutSignal, options.signal]);
170
157
  setMaxListeners(Infinity, timeoutSignal, signal);
@@ -177,10 +164,14 @@ export class DelegatedRoutingV1HttpApiClient {
177
164
  try {
178
165
  await onStart.promise;
179
166
  // https://specs.ipfs.tech/routing/http-routing-v1/
180
- const url = new URL(`${this.url}routing/v1/peers/${peerId.toCID().toString()}`);
167
+ const url = new URL(`${this.url}routing/v1/peers/${cid}`);
181
168
  this.#addFilterParams(url, options.filterAddrs, options.filterProtocols);
182
- const getOptions = { headers: { Accept: 'application/x-ndjson' }, signal };
183
- const res = await this.#makeRequest(url.toString(), getOptions);
169
+ const res = await this.#makeRequest(url.toString(), {
170
+ headers: {
171
+ Accept: 'application/x-ndjson'
172
+ },
173
+ signal
174
+ });
184
175
  // Per IPIP-0513: Handle 404 as empty results (not an error)
185
176
  // Old servers return 404, new servers return 200 with empty array
186
177
  // Both should result in an empty iterator, not an error
@@ -222,19 +213,16 @@ export class DelegatedRoutingV1HttpApiClient {
222
213
  finally {
223
214
  signal.clear();
224
215
  onFinish.resolve();
225
- this.log('getPeers finished: %c', peerId);
216
+ this.log('getPeers finished: %c', cid);
226
217
  }
227
218
  }
228
219
  async *getClosestPeers(key, options = {}) {
229
220
  let target;
230
- if (isPeerId(key)) {
231
- target = key.toCID().toString();
232
- }
233
- else if (CID.asCID(key) === key || key instanceof CID) {
221
+ if (CID.asCID(key) === key || key instanceof CID) {
234
222
  target = key.toV1().toString();
235
223
  }
236
224
  else {
237
- throw new InvalidParametersError('Key must be CID or PeerId');
225
+ throw new InvalidParametersError('Key must be CID');
238
226
  }
239
227
  this.log('getClosestPeers starts: %s', target);
240
228
  const timeoutSignal = AbortSignal.timeout(this.timeout);
@@ -251,8 +239,12 @@ export class DelegatedRoutingV1HttpApiClient {
251
239
  // https://specs.ipfs.tech/routing/http-routing-v1/
252
240
  const url = new URL(`${this.url}routing/v1/dht/closest/peers/${target}`);
253
241
  this.#addFilterParams(url, options.filterAddrs, options.filterProtocols);
254
- const getOptions = { headers: { Accept: 'application/x-ndjson' }, signal };
255
- const res = await this.#makeRequest(url.toString(), getOptions);
242
+ const res = await this.#makeRequest(url.toString(), {
243
+ headers: {
244
+ Accept: 'application/x-ndjson'
245
+ },
246
+ signal
247
+ });
256
248
  // Per IPIP-0513: Handle 404 as empty results (not an error)
257
249
  // Old servers return 404, new servers return 200 with empty array
258
250
  // Both should result in an empty iterator, not an error
@@ -297,8 +289,8 @@ export class DelegatedRoutingV1HttpApiClient {
297
289
  this.log('getClosestPeers finished: %s', target);
298
290
  }
299
291
  }
300
- async getIPNS(libp2pKey, options = {}) {
301
- this.log('getIPNS starts: %s', libp2pKey);
292
+ async getIPNS(cid, options = {}) {
293
+ this.log('getIPNS starts: %c', cid);
302
294
  const timeoutSignal = AbortSignal.timeout(this.timeout);
303
295
  const signal = anySignal([this.shutDownController.signal, timeoutSignal, options.signal]);
304
296
  setMaxListeners(Infinity, timeoutSignal, signal);
@@ -309,11 +301,15 @@ export class DelegatedRoutingV1HttpApiClient {
309
301
  return onFinish.promise;
310
302
  });
311
303
  // https://specs.ipfs.tech/routing/http-routing-v1/
312
- const resource = `${this.url}routing/v1/ipns/${libp2pKey}`;
304
+ const resource = `${this.url}routing/v1/ipns/${cid}`;
313
305
  try {
314
306
  await onStart.promise;
315
- const getOptions = { headers: { Accept: 'application/vnd.ipfs.ipns-record' }, signal };
316
- const res = await this.#makeRequest(resource, getOptions);
307
+ const res = await this.#makeRequest(resource, {
308
+ headers: {
309
+ Accept: 'application/vnd.ipfs.ipns-record'
310
+ },
311
+ signal
312
+ });
317
313
  this.log('getIPNS GET %s %d', resource, res.status);
318
314
  // Per IPIP-0513: Handle 404 as "no record found" for backward compatibility
319
315
  // IPNS is different - we still throw NotFoundError for 404 (backward compat)
@@ -339,11 +335,7 @@ export class DelegatedRoutingV1HttpApiClient {
339
335
  throw new BadResponseError('GET ipns response had no body');
340
336
  }
341
337
  const buf = await res.arrayBuffer();
342
- const body = new Uint8Array(buf, 0, buf.byteLength);
343
- if (options.validate !== false) {
344
- await ipnsValidator(multihashToIPNSRoutingKey(libp2pKey.multihash), body);
345
- }
346
- return unmarshalIPNSRecord(body);
338
+ return new Uint8Array(buf, 0, buf.byteLength);
347
339
  }
348
340
  catch (err) {
349
341
  this.log.error('getIPNS GET %s error - %e', resource, err);
@@ -352,7 +344,7 @@ export class DelegatedRoutingV1HttpApiClient {
352
344
  finally {
353
345
  signal.clear();
354
346
  onFinish.resolve();
355
- this.log('getIPNS finished: %s', libp2pKey);
347
+ this.log('getIPNS finished: %c', cid);
356
348
  }
357
349
  }
358
350
  async putIPNS(libp2pKey, record, options = {}) {
@@ -370,9 +362,14 @@ export class DelegatedRoutingV1HttpApiClient {
370
362
  const resource = `${this.url}routing/v1/ipns/${libp2pKey}`;
371
363
  try {
372
364
  await onStart.promise;
373
- const body = marshalIPNSRecord(record);
374
- const getOptions = { method: 'PUT', headers: { 'Content-Type': 'application/vnd.ipfs.ipns-record' }, body, signal };
375
- const res = await this.#makeRequest(resource, getOptions);
365
+ const res = await this.#makeRequest(resource, {
366
+ method: 'PUT',
367
+ headers: {
368
+ 'Content-Type': 'application/vnd.ipfs.ipns-record'
369
+ },
370
+ body: withArrayBuffer(record),
371
+ signal
372
+ });
376
373
  this.log('putIPNS PUT %s %d', resource, res.status);
377
374
  if (res.status !== 200) {
378
375
  throw new BadResponseError('PUT ipns response had status other than 200');
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const CODE_LIBP2P_KEY = 114;
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,MAAO,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const CODE_LIBP2P_KEY = 0x72;
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAA"}
@@ -97,9 +97,8 @@
97
97
  * }
98
98
  * ```
99
99
  */
100
- import type { AbortOptions, ComponentLogger, PeerId } from '@libp2p/interface';
100
+ import type { AbortOptions, ComponentLogger, ContentRouting, PeerId, PeerRouting } from '@libp2p/interface';
101
101
  import type { Multiaddr } from '@multiformats/multiaddr';
102
- import type { IPNSRecord } from 'ipns';
103
102
  import type { CID } from 'multiformats/cid';
104
103
  /**
105
104
  * A peer that conforms to the [Peer Schema](https://specs.ipfs.tech/routing/http-routing-v1/#peer-schema).
@@ -168,15 +167,7 @@ export interface DelegatedRoutingV1HttpApiClientInit extends FilterOptions {
168
167
  export interface DelegatedRoutingV1HttpApiClientComponents {
169
168
  logger: ComponentLogger;
170
169
  }
171
- export interface GetIPNSOptions extends AbortOptions {
172
- /**
173
- * By default incoming IPNS records are validated, pass false here to skip
174
- * validation and just return the record.
175
- *
176
- * @default true
177
- */
178
- validate?: boolean;
179
- }
170
+ export type GetIPNSOptions = AbortOptions;
180
171
  export type GetProvidersOptions = FilterOptions & AbortOptions;
181
172
  export type GetPeersOptions = FilterOptions & AbortOptions;
182
173
  export type GetClosestPeersOptions = FilterOptions & AbortOptions;
@@ -192,22 +183,22 @@ export interface DelegatedRoutingV1HttpApiClient {
192
183
  getProviders(cid: CID, options?: GetProvidersOptions): AsyncGenerator<PeerRecord>;
193
184
  /**
194
185
  * Returns an async generator of {@link PeerRecord}s for the provided
195
- * {@link PeerId}
186
+ * {@link CID}
196
187
  */
197
- getPeers(peerId: PeerId, options?: GetPeersOptions): AsyncGenerator<PeerRecord>;
188
+ getPeers(cid: CID, options?: GetPeersOptions): AsyncGenerator<PeerRecord>;
198
189
  /**
199
190
  * Returns an async generator of {@link PeerRecord}s of the closest peers to
200
191
  * the supplied key
201
192
  */
202
- getClosestPeers(key: CID | PeerId, options?: GetClosestPeersOptions): AsyncGenerator<PeerRecord>;
193
+ getClosestPeers(cid: CID, options?: GetClosestPeersOptions): AsyncGenerator<PeerRecord>;
203
194
  /**
204
- * Returns a promise of a {@link IPNSRecord} for the given {@link MultihashDigest}
195
+ * Returns a promise of a serialized IPNS record for passed CID
205
196
  */
206
- getIPNS(libp2pKey: CID<unknown, 0x72, 0x00 | 0x12, 1>, options?: GetIPNSOptions): Promise<IPNSRecord>;
197
+ getIPNS(cid: CID, options?: GetIPNSOptions): Promise<Uint8Array<ArrayBuffer>>;
207
198
  /**
208
- * Publishes the given {@link IPNSRecord} for the provided {@link MultihashDigest}
199
+ * Publishes a serialized IPNS record for the passed CID
209
200
  */
210
- putIPNS(libp2pKey: CID<unknown, 0x72, 0x00 | 0x12, 1>, record: IPNSRecord, options?: AbortOptions): Promise<void>;
201
+ putIPNS(cid: CID, record: Uint8Array, options?: AbortOptions): Promise<void>;
211
202
  /**
212
203
  * Create the request/response cache used to ensure duplicate requests aren't
213
204
  * made for the same data
@@ -223,4 +214,6 @@ export interface DelegatedRoutingV1HttpApiClient {
223
214
  * Create and return a client to use with a Routing V1 HTTP API server
224
215
  */
225
216
  export declare function delegatedRoutingV1HttpApiClient(init: DelegatedRoutingV1HttpApiClientInit): (components: DelegatedRoutingV1HttpApiClientComponents) => DelegatedRoutingV1HttpApiClient;
217
+ export declare function delegatedRoutingV1HttpApiClientContentRouting(init: DelegatedRoutingV1HttpApiClientInit): (components: DelegatedRoutingV1HttpApiClientComponents) => ContentRouting;
218
+ export declare function delegatedRoutingV1HttpApiClientPeerRouting(init: DelegatedRoutingV1HttpApiClientInit): (components: DelegatedRoutingV1HttpApiClientComponents) => PeerRouting;
226
219
  //# sourceMappingURL=index.d.ts.map
@@ -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
@@ -97,11 +97,18 @@
97
97
  * }
98
98
  * ```
99
99
  */
100
- import { DelegatedRoutingV1HttpApiClient as DelegatedRoutingV1HttpApiClientClass } from './client.js';
100
+ import { DelegatedRoutingV1HttpApiClient as DelegatedRoutingV1HttpApiClientClass } from "./client.js";
101
+ import { DelegatedRoutingV1HttpApiClientContentRouting, DelegatedRoutingV1HttpApiClientPeerRouting } from "./routings.js";
101
102
  /**
102
103
  * Create and return a client to use with a Routing V1 HTTP API server
103
104
  */
104
105
  export function delegatedRoutingV1HttpApiClient(init) {
105
106
  return (components) => new DelegatedRoutingV1HttpApiClientClass(components, init);
106
107
  }
108
+ export function delegatedRoutingV1HttpApiClientContentRouting(init) {
109
+ return (components) => new DelegatedRoutingV1HttpApiClientContentRouting(delegatedRoutingV1HttpApiClient(init)(components));
110
+ }
111
+ export function delegatedRoutingV1HttpApiClientPeerRouting(init) {
112
+ return (components) => new DelegatedRoutingV1HttpApiClientPeerRouting(delegatedRoutingV1HttpApiClient(init)(components));
113
+ }
107
114
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkGG;AAEH,OAAO,EAAE,+BAA+B,IAAI,oCAAoC,EAAE,MAAM,aAAa,CAAA;AA8IrG;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAAE,IAAyC;IACxF,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,oCAAoC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AACnF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkGG;AAEH,OAAO,EAAE,+BAA+B,IAAI,oCAAoC,EAAE,MAAM,aAAa,CAAA;AACrG,OAAO,EAAE,6CAA6C,EAAE,0CAA0C,EAAE,MAAM,eAAe,CAAA;AAoIzH;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAAE,IAAyC;IACxF,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,oCAAoC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AACnF,CAAC;AAED,MAAM,UAAU,6CAA6C,CAAE,IAAyC;IACtG,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,6CAA6C,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;AAC7H,CAAC;AAED,MAAM,UAAU,0CAA0C,CAAE,IAAyC;IACnG,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,0CAA0C,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1H,CAAC"}
@@ -1,12 +1,16 @@
1
+ import { contentRoutingSymbol, peerRoutingSymbol } from '@libp2p/interface';
1
2
  import { CID } from 'multiformats/cid';
2
- import type { DelegatedRoutingV1HttpApiClient } from './index.js';
3
- import type { ContentRouting, PeerRouting, AbortOptions, PeerId, PeerInfo, Provider } from '@libp2p/interface';
3
+ import type { DelegatedRoutingV1HttpApiClient } from './index.ts';
4
+ import type { ContentRouting, PeerRouting, AbortOptions, PeerId, PeerInfo, Provider, Startable } from '@libp2p/interface';
4
5
  /**
5
6
  * Wrapper class to convert [http-routing-v1 content events](https://specs.ipfs.tech/routing/http-routing-v1/#response-body) into returned values
6
7
  */
7
- export declare class DelegatedRoutingV1HttpApiClientContentRouting implements ContentRouting {
8
+ export declare class DelegatedRoutingV1HttpApiClientContentRouting implements ContentRouting, Startable {
8
9
  private readonly client;
9
10
  constructor(client: DelegatedRoutingV1HttpApiClient);
11
+ get [contentRoutingSymbol](): ContentRouting;
12
+ start(): Promise<void>;
13
+ stop(): Promise<void>;
10
14
  findProviders(cid: CID, options?: AbortOptions): AsyncIterable<Provider>;
11
15
  provide(): Promise<void>;
12
16
  cancelReprovide(): Promise<void>;
@@ -17,9 +21,12 @@ export declare class DelegatedRoutingV1HttpApiClientContentRouting implements Co
17
21
  /**
18
22
  * Wrapper class to convert [http-routing-v1](https://specs.ipfs.tech/routing/http-routing-v1/#response-body-0) events into expected libp2p values
19
23
  */
20
- export declare class DelegatedRoutingV1HttpApiClientPeerRouting implements PeerRouting {
24
+ export declare class DelegatedRoutingV1HttpApiClientPeerRouting implements PeerRouting, Startable {
21
25
  private readonly client;
22
26
  constructor(client: DelegatedRoutingV1HttpApiClient);
27
+ get [peerRoutingSymbol](): PeerRouting;
28
+ start(): Promise<void>;
29
+ stop(): Promise<void>;
23
30
  findPeer(peerId: PeerId, options?: AbortOptions): Promise<PeerInfo>;
24
31
  getClosestPeers(key: Uint8Array, options?: AbortOptions): AsyncIterable<PeerInfo>;
25
32
  toString(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"routings.d.ts","sourceRoot":"","sources":["../../src/routings.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAGtC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAQ9G;;GAEG;AACH,qBAAa,6CAA8C,YAAW,cAAc;IAClF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAE3C,MAAM,EAAE,+BAA+B;IAI5C,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC;IAoB/E,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC;IAIzB,eAAe,IAAK,OAAO,CAAC,IAAI,CAAC;IAIjC,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/E,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAuBxE,QAAQ,IAAK,MAAM;CAGpB;AAED;;GAEG;AACH,qBAAa,0CAA2C,YAAW,WAAW;IAC5E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAE3C,MAAM,EAAE,+BAA+B;IAI9C,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAatE,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC;IAiB9F,QAAQ,IAAK,MAAM;CAGpB"}
1
+ {"version":3,"file":"routings.d.ts","sourceRoot":"","sources":["../../src/routings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAiB,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAI1F,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAMtC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAQzH;;GAEG;AACH,qBAAa,6CAA8C,YAAW,cAAc,EAAE,SAAS;IAC7F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAE3C,MAAM,EAAE,+BAA+B;IAIpD,IAAI,CAAC,oBAAoB,CAAC,IAAK,cAAc,CAE5C;IAEK,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAIvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAIpB,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC;IAoB/E,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC;IAIzB,eAAe,IAAK,OAAO,CAAC,IAAI,CAAC;IAIjC,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/E,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBxE,QAAQ,IAAK,MAAM;CAGpB;AAED;;GAEG;AACH,qBAAa,0CAA2C,YAAW,WAAW,EAAE,SAAS;IACvF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAE3C,MAAM,EAAE,+BAA+B;IAIpD,IAAI,CAAC,iBAAiB,CAAC,IAAK,WAAW,CAEtC;IAEK,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAIvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAItB,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAatE,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC;IAqB9F,QAAQ,IAAK,MAAM;CAGpB"}
@@ -1,10 +1,11 @@
1
- import { NotFoundError } from '@libp2p/interface';
2
- import { peerIdFromMultihash } from '@libp2p/peer-id';
3
- import { marshalIPNSRecord, multihashFromIPNSRoutingKey, unmarshalIPNSRecord } from 'ipns';
1
+ import { contentRoutingSymbol, NotFoundError, peerRoutingSymbol } from '@libp2p/interface';
4
2
  import first from 'it-first';
5
3
  import map from 'it-map';
6
4
  import { digest } from 'multiformats';
7
5
  import { CID } from 'multiformats/cid';
6
+ import * as raw from 'multiformats/codecs/raw';
7
+ import * as Digest from 'multiformats/hashes/digest';
8
+ import { identity } from 'multiformats/hashes/identity';
8
9
  import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
9
10
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
10
11
  const IPNS_PREFIX = uint8ArrayFromString('/ipns/');
@@ -19,6 +20,15 @@ export class DelegatedRoutingV1HttpApiClientContentRouting {
19
20
  constructor(client) {
20
21
  this.client = client;
21
22
  }
23
+ get [contentRoutingSymbol]() {
24
+ return this;
25
+ }
26
+ async start() {
27
+ await this.client.start();
28
+ }
29
+ async stop() {
30
+ await this.client.stop();
31
+ }
22
32
  async *findProviders(cid, options = {}) {
23
33
  try {
24
34
  yield* map(this.client.getProviders(cid, options), (record) => {
@@ -48,20 +58,18 @@ export class DelegatedRoutingV1HttpApiClientContentRouting {
48
58
  if (!isIPNSKey(key)) {
49
59
  return;
50
60
  }
51
- const digest = multihashFromIPNSRoutingKey(key);
61
+ const digest = Digest.decode(key.slice(IPNS_PREFIX.length));
52
62
  const cid = CID.createV1(0x72, digest);
53
- const record = unmarshalIPNSRecord(value);
54
- await this.client.putIPNS(cid, record, options);
63
+ await this.client.putIPNS(cid, value, options);
55
64
  }
56
65
  async get(key, options) {
57
66
  if (!isIPNSKey(key)) {
58
67
  throw new NotFoundError('Not found');
59
68
  }
60
- const digest = multihashFromIPNSRoutingKey(key);
69
+ const digest = Digest.decode(key.slice(IPNS_PREFIX.length));
61
70
  const cid = CID.createV1(0x72, digest);
62
71
  try {
63
- const record = await this.client.getIPNS(cid, options);
64
- return marshalIPNSRecord(record);
72
+ return await this.client.getIPNS(cid, options);
65
73
  }
66
74
  catch (err) {
67
75
  // BadResponseError is thrown when the response had no body, which means
@@ -84,8 +92,17 @@ export class DelegatedRoutingV1HttpApiClientPeerRouting {
84
92
  constructor(client) {
85
93
  this.client = client;
86
94
  }
95
+ get [peerRoutingSymbol]() {
96
+ return this;
97
+ }
98
+ async start() {
99
+ await this.client.start();
100
+ }
101
+ async stop() {
102
+ await this.client.stop();
103
+ }
87
104
  async findPeer(peerId, options = {}) {
88
- const peer = await first(this.client.getPeers(peerId, options));
105
+ const peer = await first(this.client.getPeers(peerId.toCID(), options));
89
106
  if (peer != null) {
90
107
  return {
91
108
  id: peer.ID,
@@ -95,14 +112,19 @@ export class DelegatedRoutingV1HttpApiClientPeerRouting {
95
112
  throw new NotFoundError('Not found');
96
113
  }
97
114
  async *getClosestPeers(key, options = {}) {
98
- let cidOrPeer;
115
+ let cid;
99
116
  try {
100
- cidOrPeer = CID.decode(key);
117
+ cid = CID.decode(key);
101
118
  }
102
119
  catch {
103
- cidOrPeer = peerIdFromMultihash(digest.decode(key));
120
+ try {
121
+ cid = CID.createV1(0x72, digest.decode(key));
122
+ }
123
+ catch {
124
+ cid = CID.createV1(raw.code, identity.digest(key));
125
+ }
104
126
  }
105
- for await (const peer of this.client.getClosestPeers(cidOrPeer, options)) {
127
+ for await (const peer of this.client.getClosestPeers(cid, options)) {
106
128
  yield {
107
129
  id: peer.ID,
108
130
  multiaddrs: peer.Addrs ?? []
@@ -1 +1 @@
1
- {"version":3,"file":"routings.js","sourceRoot":"","sources":["../../src/routings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routings.js","sourceRoot":"","sources":["../../src/routings.ts"],"names":[],"mappings":"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"}