@helia/interface 3.0.1 → 4.0.0-94b0cd1

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
@@ -11,6 +11,20 @@
11
11
 
12
12
  > The Helia API
13
13
 
14
+ # About
15
+
16
+ The API defined by a Helia node
17
+
18
+ ## Example
19
+
20
+ ```typescript
21
+ import type { Helia } from '@helia/interface'
22
+
23
+ export function doSomething(helia: Helia) {
24
+ // use helia node functions here
25
+ }
26
+ ```
27
+
14
28
  # Install
15
29
 
16
30
  ```console
package/dist/index.min.js CHANGED
@@ -1,3 +1,3 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.HeliaInterface = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var HeliaInterface=(()=>{var t=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var d=(o,e,x,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let p of b(e))!c.call(o,p)&&p!==x&&t(o,p,{get:()=>e[p],enumerable:!(r=a(e,p))||r.enumerable});return o};var f=o=>d(t({},"__esModule",{value:!0}),o);var g={};return f(g);})();
2
+ "use strict";var HeliaInterface=(()=>{var t=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var b=(r,o,x,p)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of m(o))!a.call(r,e)&&e!==x&&t(r,e,{get:()=>o[e],enumerable:!(p=f(o,e))||p.enumerable});return r};var c=r=>b(t({},"__esModule",{value:!0}),r);var d={};return c(d);})();
3
3
  return HeliaInterface}));
@@ -1,17 +1,16 @@
1
1
  import type { Blockstore } from 'interface-blockstore';
2
2
  import type { AbortOptions } from 'interface-store';
3
- import type { BitswapNotifyProgressEvents, BitswapWantProgressEvents } from 'ipfs-bitswap';
4
3
  import type { CID } from 'multiformats/cid';
5
4
  import type { ProgressEvent, ProgressOptions } from 'progress-events';
6
5
  export interface Pair {
7
6
  cid: CID;
8
7
  block: Uint8Array;
9
8
  }
10
- export type HasBlockProgressEvents = ProgressEvent<'blocks:put:duplicate', CID> | ProgressEvent<'blocks:put:providers:notify', CID> | ProgressEvent<'blocks:put:blockstore:put', CID> | BitswapNotifyProgressEvents;
11
- export type PutBlockProgressEvents = ProgressEvent<'blocks:put:duplicate', CID> | ProgressEvent<'blocks:put:providers:notify', CID> | ProgressEvent<'blocks:put:blockstore:put', CID> | BitswapNotifyProgressEvents;
12
- export type PutManyBlocksProgressEvents = ProgressEvent<'blocks:put-many:duplicate', CID> | ProgressEvent<'blocks:put-many:providers:notify', CID> | ProgressEvent<'blocks:put-many:blockstore:put-many'> | BitswapNotifyProgressEvents;
13
- export type GetBlockProgressEvents = ProgressEvent<'blocks:get:providers:want', CID> | ProgressEvent<'blocks:get:blockstore:get', CID> | ProgressEvent<'blocks:get:blockstore:put', CID> | BitswapWantProgressEvents;
14
- export type GetManyBlocksProgressEvents = ProgressEvent<'blocks:get-many:blockstore:get-many'> | ProgressEvent<'blocks:get-many:providers:want', CID> | ProgressEvent<'blocks:get-many:blockstore:put', CID> | BitswapWantProgressEvents;
9
+ export type HasBlockProgressEvents = ProgressEvent<'blocks:put:duplicate', CID> | ProgressEvent<'blocks:put:providers:notify', CID> | ProgressEvent<'blocks:put:blockstore:put', CID>;
10
+ export type PutBlockProgressEvents = ProgressEvent<'blocks:put:duplicate', CID> | ProgressEvent<'blocks:put:providers:notify', CID> | ProgressEvent<'blocks:put:blockstore:put', CID>;
11
+ export type PutManyBlocksProgressEvents = ProgressEvent<'blocks:put-many:duplicate', CID> | ProgressEvent<'blocks:put-many:providers:notify', CID> | ProgressEvent<'blocks:put-many:blockstore:put-many'>;
12
+ export type GetBlockProgressEvents = ProgressEvent<'blocks:get:providers:want', CID> | ProgressEvent<'blocks:get:blockstore:get', CID> | ProgressEvent<'blocks:get:blockstore:put', CID>;
13
+ export type GetManyBlocksProgressEvents = ProgressEvent<'blocks:get-many:blockstore:get-many'> | ProgressEvent<'blocks:get-many:providers:want', CID> | ProgressEvent<'blocks:get-many:blockstore:put', CID>;
15
14
  export type GetAllBlocksProgressEvents = ProgressEvent<'blocks:get-all:blockstore:get-many'>;
16
15
  export type DeleteBlockProgressEvents = ProgressEvent<'blocks:delete:blockstore:delete', CID>;
17
16
  export type DeleteManyBlocksProgressEvents = ProgressEvent<'blocks:delete-many:blockstore:delete-many'>;
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/blocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/blocks.ts"],"names":[],"mappings":"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"}
@@ -15,19 +15,17 @@
15
15
  */
16
16
  import type { Blocks } from './blocks.js';
17
17
  import type { Pins } from './pins.js';
18
- import type { Libp2p, AbortOptions, ComponentLogger } from '@libp2p/interface';
18
+ import type { Routing } from './routing.js';
19
+ import type { AbortOptions, ComponentLogger } from '@libp2p/interface';
19
20
  import type { Datastore } from 'interface-datastore';
21
+ import type { MultihashHasher } from 'multiformats';
20
22
  import type { CID } from 'multiformats/cid';
21
23
  import type { ProgressEvent, ProgressOptions } from 'progress-events';
22
24
  export type { Await, AwaitIterable } from 'interface-store';
23
25
  /**
24
- * The API presented by a Helia node.
26
+ * The API presented by a Helia node
25
27
  */
26
- export interface Helia<T = Libp2p> {
27
- /**
28
- * The underlying libp2p node
29
- */
30
- libp2p: T;
28
+ export interface Helia {
31
29
  /**
32
30
  * Where the blocks are stored
33
31
  */
@@ -44,6 +42,21 @@ export interface Helia<T = Libp2p> {
44
42
  * A logging component that can be reused by consumers
45
43
  */
46
44
  logger: ComponentLogger;
45
+ /**
46
+ * The routing component allows performing operations such as looking up
47
+ * content providers, information about peers, etc.
48
+ */
49
+ routing: Routing;
50
+ /**
51
+ * DAGWalkers are codec-specific implementations that know how to yield all
52
+ * CIDs contained within a block that corresponds to that codec.
53
+ */
54
+ dagWalkers: Record<number, DAGWalker>;
55
+ /**
56
+ * Hashers can be used to hash a piece of data with the specified hashing
57
+ * algorithm.
58
+ */
59
+ hashers: Record<number, MultihashHasher>;
47
60
  /**
48
61
  * Starts the Helia node
49
62
  */
@@ -60,4 +73,14 @@ export interface Helia<T = Libp2p> {
60
73
  export type GcEvents = ProgressEvent<'helia:gc:deleted', CID> | ProgressEvent<'helia:gc:error', Error>;
61
74
  export interface GCOptions extends AbortOptions, ProgressOptions<GcEvents> {
62
75
  }
76
+ /**
77
+ * DAGWalkers take a block and yield CIDs encoded in that block
78
+ */
79
+ export interface DAGWalker {
80
+ codec: number;
81
+ walk(block: Uint8Array): Generator<CID, void, undefined>;
82
+ }
83
+ export * from './blocks.js';
84
+ export * from './pins.js';
85
+ export * from './routing.js';
63
86
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAErE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE3D;;GAEG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,GAAG,MAAM;IAC/B;;OAEG;IACH,MAAM,EAAE,CAAC,CAAA;IAET;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAA;IAEpB;;OAEG;IACH,IAAI,EAAE,IAAI,CAAA;IAEV;;OAEG;IACH,MAAM,EAAE,eAAe,CAAA;IAEvB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtB;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAErB;;OAEG;IACH,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvC;AAED,MAAM,MAAM,QAAQ,GAClB,aAAa,CAAC,kBAAkB,EAAE,GAAG,CAAC,GACtC,aAAa,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;AAExC,MAAM,WAAW,SAAU,SAAQ,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC;CAEzE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAErE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE3D;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAA;IAEpB;;OAEG;IACH,IAAI,EAAE,IAAI,CAAA;IAEV;;OAEG;IACH,MAAM,EAAE,eAAe,CAAA;IAEvB;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAErC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAExC;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtB;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAErB;;OAEG;IACH,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvC;AAED,MAAM,MAAM,QAAQ,GAClB,aAAa,CAAC,kBAAkB,EAAE,GAAG,CAAC,GACtC,aAAa,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;AAExC,MAAM,WAAW,SAAU,SAAQ,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC;CAEzE;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;CACzD;AAED,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA"}
package/dist/src/index.js CHANGED
@@ -13,5 +13,7 @@
13
13
  * }
14
14
  * ```
15
15
  */
16
- export {};
16
+ export * from './blocks.js';
17
+ export * from './pins.js';
18
+ export * from './routing.js';
17
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAuFH,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA"}
@@ -0,0 +1,128 @@
1
+ import type { AbortOptions, PeerId, PeerInfo } from '@libp2p/interface';
2
+ import type { CID } from 'multiformats/cid';
3
+ import type { ProgressOptions } from 'progress-events';
4
+ /**
5
+ * When a routing operation involves reading values, these options allow
6
+ * controlling where the values are read from. Some implementations support a
7
+ * local cache that may be used in preference over network calls, for example
8
+ * when a record has a TTL.
9
+ */
10
+ export interface RoutingOptions extends AbortOptions, ProgressOptions {
11
+ /**
12
+ * Pass `false` to not use the network
13
+ *
14
+ * @default true
15
+ */
16
+ useNetwork?: boolean;
17
+ /**
18
+ * Pass `false` to not use cached values
19
+ *
20
+ * @default true
21
+ */
22
+ useCache?: boolean;
23
+ /**
24
+ * Pass `false` to not perform validation
25
+ *
26
+ * @default true
27
+ */
28
+ validate?: boolean;
29
+ }
30
+ /**
31
+ * A provider can supply the content for a CID
32
+ */
33
+ export interface Provider extends PeerInfo {
34
+ /**
35
+ * If present these are the methods that the peer can supply the content via.
36
+ *
37
+ * If not present the caller should attempt to dial the remote peer and run
38
+ * the identify protocol to discover how to retrieve the content.
39
+ *
40
+ * Example values are (but not limited to):
41
+ *
42
+ * - transport-graphsync-filecoinv1
43
+ * - transport-ipfs-gateway-http
44
+ * - transport-bitswap
45
+ */
46
+ protocols?: string[];
47
+ }
48
+ export interface Routing {
49
+ /**
50
+ * The implementation of this method should ensure that network peers know the
51
+ * caller can provide content that corresponds to the passed CID.
52
+ *
53
+ * @example
54
+ *
55
+ * ```js
56
+ * // ...
57
+ * await contentRouting.provide(cid)
58
+ * ```
59
+ */
60
+ provide(cid: CID, options?: RoutingOptions): Promise<void>;
61
+ /**
62
+ * Find the providers of the passed CID.
63
+ *
64
+ * @example
65
+ *
66
+ * ```js
67
+ * // Iterate over the providers found for the given cid
68
+ * for await (const provider of contentRouting.findProviders(cid)) {
69
+ * console.log(provider.id, provider.multiaddrs)
70
+ * }
71
+ * ```
72
+ */
73
+ findProviders(cid: CID, options?: RoutingOptions): AsyncIterable<Provider>;
74
+ /**
75
+ * Puts a value corresponding to the passed key in a way that can later be
76
+ * retrieved by another network peer using the get method.
77
+ *
78
+ * @example
79
+ *
80
+ * ```js
81
+ * // ...
82
+ * const key = '/key'
83
+ * const value = uint8ArrayFromString('oh hello there')
84
+ *
85
+ * await contentRouting.put(key, value)
86
+ * ```
87
+ */
88
+ put(key: Uint8Array, value: Uint8Array, options?: RoutingOptions): Promise<void>;
89
+ /**
90
+ * Retrieves a value from the network corresponding to the passed key.
91
+ *
92
+ * @example
93
+ *
94
+ * ```js
95
+ * // ...
96
+ *
97
+ * const key = '/key'
98
+ * const value = await contentRouting.get(key)
99
+ * ```
100
+ */
101
+ get(key: Uint8Array, options?: RoutingOptions): Promise<Uint8Array>;
102
+ /**
103
+ * Searches the network for peer info corresponding to the passed peer id.
104
+ *
105
+ * @example
106
+ *
107
+ * ```js
108
+ * // ...
109
+ * const peer = await peerRouting.findPeer(peerId, options)
110
+ * ```
111
+ */
112
+ findPeer(peerId: PeerId, options?: RoutingOptions): Promise<PeerInfo>;
113
+ /**
114
+ * Search the network for peers that are closer to the passed key. Peer
115
+ * info should be yielded in ever-increasing closeness to the key.
116
+ *
117
+ * @example
118
+ *
119
+ * ```js
120
+ * // Iterate over the closest peers found for the given key
121
+ * for await (const peer of peerRouting.getClosestPeers(key)) {
122
+ * console.log(peer.id, peer.multiaddrs)
123
+ * }
124
+ * ```
125
+ */
126
+ getClosestPeers(key: Uint8Array, options?: RoutingOptions): AsyncIterable<PeerInfo>;
127
+ }
128
+ //# sourceMappingURL=routing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,YAAY,EAAE,eAAe;IACnE;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,QAAQ;IACxC;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,OAAO;IACtB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE1D;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IAE1E;;;;;;;;;;;;;OAaG;IACH,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhF;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAEnE;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAErE;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;CACpF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.js","sourceRoot":"","sources":["../../src/routing.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helia/interface",
3
- "version": "3.0.1",
3
+ "version": "4.0.0-94b0cd1",
4
4
  "description": "The Helia API",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/ipfs/helia/tree/main/packages/interface#readme",
@@ -72,9 +72,8 @@
72
72
  "dependencies": {
73
73
  "@libp2p/interface": "^1.1.1",
74
74
  "interface-blockstore": "^5.2.7",
75
- "interface-datastore": "^8.2.2",
75
+ "interface-datastore": "^8.2.9",
76
76
  "interface-store": "^5.1.5",
77
- "ipfs-bitswap": "^20.0.0",
78
77
  "multiformats": "^13.0.0",
79
78
  "progress-events": "^1.0.0"
80
79
  },
package/src/blocks.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import type { Blockstore } from 'interface-blockstore'
2
2
  import type { AbortOptions } from 'interface-store'
3
- import type { BitswapNotifyProgressEvents, BitswapWantProgressEvents } from 'ipfs-bitswap'
4
3
  import type { CID } from 'multiformats/cid'
5
4
  import type { ProgressEvent, ProgressOptions } from 'progress-events'
6
5
 
@@ -12,32 +11,27 @@ export interface Pair {
12
11
  export type HasBlockProgressEvents =
13
12
  ProgressEvent<'blocks:put:duplicate', CID> |
14
13
  ProgressEvent<'blocks:put:providers:notify', CID> |
15
- ProgressEvent<'blocks:put:blockstore:put', CID> |
16
- BitswapNotifyProgressEvents
14
+ ProgressEvent<'blocks:put:blockstore:put', CID>
17
15
 
18
16
  export type PutBlockProgressEvents =
19
17
  ProgressEvent<'blocks:put:duplicate', CID> |
20
18
  ProgressEvent<'blocks:put:providers:notify', CID> |
21
- ProgressEvent<'blocks:put:blockstore:put', CID> |
22
- BitswapNotifyProgressEvents
19
+ ProgressEvent<'blocks:put:blockstore:put', CID>
23
20
 
24
21
  export type PutManyBlocksProgressEvents =
25
22
  ProgressEvent<'blocks:put-many:duplicate', CID> |
26
23
  ProgressEvent<'blocks:put-many:providers:notify', CID> |
27
- ProgressEvent<'blocks:put-many:blockstore:put-many'> |
28
- BitswapNotifyProgressEvents
24
+ ProgressEvent<'blocks:put-many:blockstore:put-many'>
29
25
 
30
26
  export type GetBlockProgressEvents =
31
27
  ProgressEvent<'blocks:get:providers:want', CID> |
32
28
  ProgressEvent<'blocks:get:blockstore:get', CID> |
33
- ProgressEvent<'blocks:get:blockstore:put', CID> |
34
- BitswapWantProgressEvents
29
+ ProgressEvent<'blocks:get:blockstore:put', CID>
35
30
 
36
31
  export type GetManyBlocksProgressEvents =
37
32
  ProgressEvent<'blocks:get-many:blockstore:get-many'> |
38
33
  ProgressEvent<'blocks:get-many:providers:want', CID> |
39
- ProgressEvent<'blocks:get-many:blockstore:put', CID> |
40
- BitswapWantProgressEvents
34
+ ProgressEvent<'blocks:get-many:blockstore:put', CID>
41
35
 
42
36
  export type GetAllBlocksProgressEvents =
43
37
  ProgressEvent<'blocks:get-all:blockstore:get-many'>
package/src/index.ts CHANGED
@@ -16,22 +16,19 @@
16
16
 
17
17
  import type { Blocks } from './blocks.js'
18
18
  import type { Pins } from './pins.js'
19
- import type { Libp2p, AbortOptions, ComponentLogger } from '@libp2p/interface'
19
+ import type { Routing } from './routing.js'
20
+ import type { AbortOptions, ComponentLogger } from '@libp2p/interface'
20
21
  import type { Datastore } from 'interface-datastore'
22
+ import type { MultihashHasher } from 'multiformats'
21
23
  import type { CID } from 'multiformats/cid'
22
24
  import type { ProgressEvent, ProgressOptions } from 'progress-events'
23
25
 
24
26
  export type { Await, AwaitIterable } from 'interface-store'
25
27
 
26
28
  /**
27
- * The API presented by a Helia node.
29
+ * The API presented by a Helia node
28
30
  */
29
- export interface Helia<T = Libp2p> {
30
- /**
31
- * The underlying libp2p node
32
- */
33
- libp2p: T
34
-
31
+ export interface Helia {
35
32
  /**
36
33
  * Where the blocks are stored
37
34
  */
@@ -52,6 +49,24 @@ export interface Helia<T = Libp2p> {
52
49
  */
53
50
  logger: ComponentLogger
54
51
 
52
+ /**
53
+ * The routing component allows performing operations such as looking up
54
+ * content providers, information about peers, etc.
55
+ */
56
+ routing: Routing
57
+
58
+ /**
59
+ * DAGWalkers are codec-specific implementations that know how to yield all
60
+ * CIDs contained within a block that corresponds to that codec.
61
+ */
62
+ dagWalkers: Record<number, DAGWalker>
63
+
64
+ /**
65
+ * Hashers can be used to hash a piece of data with the specified hashing
66
+ * algorithm.
67
+ */
68
+ hashers: Record<number, MultihashHasher>
69
+
55
70
  /**
56
71
  * Starts the Helia node
57
72
  */
@@ -75,3 +90,15 @@ export type GcEvents =
75
90
  export interface GCOptions extends AbortOptions, ProgressOptions<GcEvents> {
76
91
 
77
92
  }
93
+
94
+ /**
95
+ * DAGWalkers take a block and yield CIDs encoded in that block
96
+ */
97
+ export interface DAGWalker {
98
+ codec: number
99
+ walk(block: Uint8Array): Generator<CID, void, undefined>
100
+ }
101
+
102
+ export * from './blocks.js'
103
+ export * from './pins.js'
104
+ export * from './routing.js'
package/src/routing.ts ADDED
@@ -0,0 +1,137 @@
1
+ import type { AbortOptions, PeerId, PeerInfo } from '@libp2p/interface'
2
+ import type { CID } from 'multiformats/cid'
3
+ import type { ProgressOptions } from 'progress-events'
4
+
5
+ /**
6
+ * When a routing operation involves reading values, these options allow
7
+ * controlling where the values are read from. Some implementations support a
8
+ * local cache that may be used in preference over network calls, for example
9
+ * when a record has a TTL.
10
+ */
11
+ export interface RoutingOptions extends AbortOptions, ProgressOptions {
12
+ /**
13
+ * Pass `false` to not use the network
14
+ *
15
+ * @default true
16
+ */
17
+ useNetwork?: boolean
18
+
19
+ /**
20
+ * Pass `false` to not use cached values
21
+ *
22
+ * @default true
23
+ */
24
+ useCache?: boolean
25
+
26
+ /**
27
+ * Pass `false` to not perform validation
28
+ *
29
+ * @default true
30
+ */
31
+ validate?: boolean
32
+ }
33
+
34
+ /**
35
+ * A provider can supply the content for a CID
36
+ */
37
+ export interface Provider extends PeerInfo {
38
+ /**
39
+ * If present these are the methods that the peer can supply the content via.
40
+ *
41
+ * If not present the caller should attempt to dial the remote peer and run
42
+ * the identify protocol to discover how to retrieve the content.
43
+ *
44
+ * Example values are (but not limited to):
45
+ *
46
+ * - transport-graphsync-filecoinv1
47
+ * - transport-ipfs-gateway-http
48
+ * - transport-bitswap
49
+ */
50
+ protocols?: string[]
51
+ }
52
+
53
+ export interface Routing {
54
+ /**
55
+ * The implementation of this method should ensure that network peers know the
56
+ * caller can provide content that corresponds to the passed CID.
57
+ *
58
+ * @example
59
+ *
60
+ * ```js
61
+ * // ...
62
+ * await contentRouting.provide(cid)
63
+ * ```
64
+ */
65
+ provide(cid: CID, options?: RoutingOptions): Promise<void>
66
+
67
+ /**
68
+ * Find the providers of the passed CID.
69
+ *
70
+ * @example
71
+ *
72
+ * ```js
73
+ * // Iterate over the providers found for the given cid
74
+ * for await (const provider of contentRouting.findProviders(cid)) {
75
+ * console.log(provider.id, provider.multiaddrs)
76
+ * }
77
+ * ```
78
+ */
79
+ findProviders(cid: CID, options?: RoutingOptions): AsyncIterable<Provider>
80
+
81
+ /**
82
+ * Puts a value corresponding to the passed key in a way that can later be
83
+ * retrieved by another network peer using the get method.
84
+ *
85
+ * @example
86
+ *
87
+ * ```js
88
+ * // ...
89
+ * const key = '/key'
90
+ * const value = uint8ArrayFromString('oh hello there')
91
+ *
92
+ * await contentRouting.put(key, value)
93
+ * ```
94
+ */
95
+ put(key: Uint8Array, value: Uint8Array, options?: RoutingOptions): Promise<void>
96
+
97
+ /**
98
+ * Retrieves a value from the network corresponding to the passed key.
99
+ *
100
+ * @example
101
+ *
102
+ * ```js
103
+ * // ...
104
+ *
105
+ * const key = '/key'
106
+ * const value = await contentRouting.get(key)
107
+ * ```
108
+ */
109
+ get(key: Uint8Array, options?: RoutingOptions): Promise<Uint8Array>
110
+
111
+ /**
112
+ * Searches the network for peer info corresponding to the passed peer id.
113
+ *
114
+ * @example
115
+ *
116
+ * ```js
117
+ * // ...
118
+ * const peer = await peerRouting.findPeer(peerId, options)
119
+ * ```
120
+ */
121
+ findPeer(peerId: PeerId, options?: RoutingOptions): Promise<PeerInfo>
122
+
123
+ /**
124
+ * Search the network for peers that are closer to the passed key. Peer
125
+ * info should be yielded in ever-increasing closeness to the key.
126
+ *
127
+ * @example
128
+ *
129
+ * ```js
130
+ * // Iterate over the closest peers found for the given key
131
+ * for await (const peer of peerRouting.getClosestPeers(key)) {
132
+ * console.log(peer.id, peer.multiaddrs)
133
+ * }
134
+ * ```
135
+ */
136
+ getClosestPeers(key: Uint8Array, options?: RoutingOptions): AsyncIterable<PeerInfo>
137
+ }
@@ -1,54 +0,0 @@
1
- {
2
- "AddOptions": "https://ipfs.github.io/helia/interfaces/helia.AddOptions.html",
3
- "./pins:AddOptions": "https://ipfs.github.io/helia/interfaces/_helia_interface.pins.AddOptions.html",
4
- "BlockAnnouncer": "https://ipfs.github.io/helia/interfaces/helia.BlockAnnouncer.html",
5
- "./blocks:BlockAnnouncer": "https://ipfs.github.io/helia/interfaces/_helia_interface.blocks.BlockAnnouncer.html",
6
- "BlockRetriever": "https://ipfs.github.io/helia/interfaces/helia.BlockRetriever.html",
7
- "./blocks:BlockRetriever": "https://ipfs.github.io/helia/interfaces/_helia_interface.blocks.BlockRetriever.html",
8
- "Blocks": "https://ipfs.github.io/helia/interfaces/helia.Blocks.html",
9
- "./blocks:Blocks": "https://ipfs.github.io/helia/interfaces/_helia_interface.blocks.Blocks.html",
10
- "GCOptions": "https://ipfs.github.io/helia/interfaces/helia.GCOptions.html",
11
- ".:GCOptions": "https://ipfs.github.io/helia/interfaces/_helia_interface.index.GCOptions.html",
12
- "GetOfflineOptions": "https://ipfs.github.io/helia/interfaces/helia.GetOfflineOptions.html",
13
- "./blocks:GetOfflineOptions": "https://ipfs.github.io/helia/interfaces/_helia_interface.blocks.GetOfflineOptions.html",
14
- "Helia": "https://ipfs.github.io/helia/interfaces/helia.Helia.html",
15
- ".:Helia": "https://ipfs.github.io/helia/interfaces/_helia_interface.index.Helia.html",
16
- "IsPinnedOptions": "https://ipfs.github.io/helia/interfaces/helia.IsPinnedOptions.html",
17
- "./pins:IsPinnedOptions": "https://ipfs.github.io/helia/interfaces/_helia_interface.pins.IsPinnedOptions.html",
18
- "LsOptions": "https://ipfs.github.io/helia/interfaces/helia.LsOptions.html",
19
- "./pins:LsOptions": "https://ipfs.github.io/helia/interfaces/_helia_interface.pins.LsOptions.html",
20
- "Pair": "https://ipfs.github.io/helia/interfaces/helia.Pair.html",
21
- "./blocks:Pair": "https://ipfs.github.io/helia/interfaces/_helia_interface.blocks.Pair.html",
22
- "Pin": "https://ipfs.github.io/helia/interfaces/helia.Pin.html",
23
- "./pins:Pin": "https://ipfs.github.io/helia/interfaces/_helia_interface.pins.Pin.html",
24
- "Pins": "https://ipfs.github.io/helia/interfaces/helia.Pins.html",
25
- "./pins:Pins": "https://ipfs.github.io/helia/interfaces/_helia_interface.pins.Pins.html",
26
- "RmOptions": "https://ipfs.github.io/helia/interfaces/helia.RmOptions.html",
27
- "./pins:RmOptions": "https://ipfs.github.io/helia/interfaces/_helia_interface.pins.RmOptions.html",
28
- "AddPinEvents": "https://ipfs.github.io/helia/types/helia.AddPinEvents.html",
29
- "./pins:AddPinEvents": "https://ipfs.github.io/helia/types/_helia_interface.pins.AddPinEvents.html",
30
- "BlockBroker": "https://ipfs.github.io/helia/types/helia.BlockBroker.html",
31
- "./blocks:BlockBroker": "https://ipfs.github.io/helia/types/_helia_interface.blocks.BlockBroker.html",
32
- "BlockRetrievalOptions": "https://ipfs.github.io/helia/types/helia.BlockRetrievalOptions.html",
33
- "./blocks:BlockRetrievalOptions": "https://ipfs.github.io/helia/types/_helia_interface.blocks.BlockRetrievalOptions.html",
34
- "DeleteBlockProgressEvents": "https://ipfs.github.io/helia/types/helia.DeleteBlockProgressEvents.html",
35
- "./blocks:DeleteBlockProgressEvents": "https://ipfs.github.io/helia/types/_helia_interface.blocks.DeleteBlockProgressEvents.html",
36
- "DeleteManyBlocksProgressEvents": "https://ipfs.github.io/helia/types/helia.DeleteManyBlocksProgressEvents.html",
37
- "./blocks:DeleteManyBlocksProgressEvents": "https://ipfs.github.io/helia/types/_helia_interface.blocks.DeleteManyBlocksProgressEvents.html",
38
- "GcEvents": "https://ipfs.github.io/helia/types/helia.GcEvents.html",
39
- ".:GcEvents": "https://ipfs.github.io/helia/types/_helia_interface.index.GcEvents.html",
40
- "GetAllBlocksProgressEvents": "https://ipfs.github.io/helia/types/helia.GetAllBlocksProgressEvents.html",
41
- "./blocks:GetAllBlocksProgressEvents": "https://ipfs.github.io/helia/types/_helia_interface.blocks.GetAllBlocksProgressEvents.html",
42
- "GetBlockProgressEvents": "https://ipfs.github.io/helia/types/helia.GetBlockProgressEvents.html",
43
- "./blocks:GetBlockProgressEvents": "https://ipfs.github.io/helia/types/_helia_interface.blocks.GetBlockProgressEvents.html",
44
- "GetManyBlocksProgressEvents": "https://ipfs.github.io/helia/types/helia.GetManyBlocksProgressEvents.html",
45
- "./blocks:GetManyBlocksProgressEvents": "https://ipfs.github.io/helia/types/_helia_interface.blocks.GetManyBlocksProgressEvents.html",
46
- "HasBlockProgressEvents": "https://ipfs.github.io/helia/types/helia.HasBlockProgressEvents.html",
47
- "./blocks:HasBlockProgressEvents": "https://ipfs.github.io/helia/types/_helia_interface.blocks.HasBlockProgressEvents.html",
48
- "PinType": "https://ipfs.github.io/helia/types/helia.PinType.html",
49
- "./pins:PinType": "https://ipfs.github.io/helia/types/_helia_interface.pins.PinType.html",
50
- "PutBlockProgressEvents": "https://ipfs.github.io/helia/types/helia.PutBlockProgressEvents.html",
51
- "./blocks:PutBlockProgressEvents": "https://ipfs.github.io/helia/types/_helia_interface.blocks.PutBlockProgressEvents.html",
52
- "PutManyBlocksProgressEvents": "https://ipfs.github.io/helia/types/helia.PutManyBlocksProgressEvents.html",
53
- "./blocks:PutManyBlocksProgressEvents": "https://ipfs.github.io/helia/types/_helia_interface.blocks.PutManyBlocksProgressEvents.html"
54
- }