@helia/interface 0.0.0-5330188 → 0.0.0-7460719

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.
@@ -0,0 +1,104 @@
1
+ import type { AbortOptions } from '@libp2p/interfaces';
2
+ import type { ProgressEvent, ProgressOptions } from 'progress-events';
3
+ import type { CID } from 'multiformats/cid';
4
+ import type { BitswapNotifyProgressEvents, BitswapWantProgressEvents } from 'ipfs-bitswap';
5
+ import type { AwaitIterable } from './index.js';
6
+ export interface Pair {
7
+ cid: CID;
8
+ block: Uint8Array;
9
+ }
10
+ export type PutBlockProgressEvents = ProgressEvent<'blocks:put:duplicate', CID> | ProgressEvent<'blocks:put:bitswap:notify', CID> | ProgressEvent<'blocks:put:blockstore:put', CID> | BitswapNotifyProgressEvents;
11
+ export type PutManyBlocksProgressEvents = ProgressEvent<'blocks:put-many:duplicate', CID> | ProgressEvent<'blocks:put-many:bitswap:notify', CID> | ProgressEvent<'blocks:put-many:blockstore:put-many'> | BitswapNotifyProgressEvents;
12
+ export type GetBlockProgressEvents = ProgressEvent<'blocks:get:bitswap:want', CID> | ProgressEvent<'blocks:get:blockstore:get', CID> | ProgressEvent<'blocks:get:blockstore:put', CID> | BitswapWantProgressEvents;
13
+ export type GetManyBlocksProgressEvents = ProgressEvent<'blocks:get-many:blockstore:get-many'> | ProgressEvent<'blocks:get-many:bitswap:want', CID> | ProgressEvent<'blocks:get-many:blockstore:put', CID> | BitswapWantProgressEvents;
14
+ export type DeleteBlockProgressEvents = ProgressEvent<'blocks:delete:blockstore:delete', CID>;
15
+ export type DeleteManyBlocksProgressEvents = ProgressEvent<'blocks:delete-many:blockstore:delete-many'>;
16
+ export interface Blocks {
17
+ /**
18
+ * Store the passed block under the passed CID
19
+ *
20
+ * @example
21
+ *
22
+ * ```js
23
+ * await store.put([{ key: new Key('awesome'), value: new Uint8Array([0, 1, 2, 3]) }])
24
+ * ```
25
+ */
26
+ put: (key: CID, val: Uint8Array, options?: AbortOptions & ProgressOptions<PutBlockProgressEvents>) => Promise<void>;
27
+ /**
28
+ * Retrieve the value stored under the given key
29
+ *
30
+ * @example
31
+ * ```js
32
+ * const value = await store.get(new Key('awesome'))
33
+ * console.log('got content: %s', value.toString('utf8'))
34
+ * // => got content: datastore
35
+ * ```
36
+ */
37
+ get: (key: CID, options?: AbortOptions & ProgressOptions<GetBlockProgressEvents>) => Promise<Uint8Array>;
38
+ /**
39
+ * Check for the existence of a value for the passed key
40
+ *
41
+ * @example
42
+ * ```js
43
+ *const exists = await store.has(new Key('awesome'))
44
+ *
45
+ *if (exists) {
46
+ * console.log('it is there')
47
+ *} else {
48
+ * console.log('it is not there')
49
+ *}
50
+ *```
51
+ */
52
+ has: (key: CID, options?: AbortOptions) => Promise<boolean>;
53
+ /**
54
+ * Remove the record for the passed key
55
+ *
56
+ * @example
57
+ *
58
+ * ```js
59
+ * await store.delete(new Key('awesome'))
60
+ * console.log('deleted awesome content :(')
61
+ * ```
62
+ */
63
+ delete: (key: CID, options?: AbortOptions & ProgressOptions<DeleteBlockProgressEvents>) => Promise<void>;
64
+ /**
65
+ * Store the given key/value pairs
66
+ *
67
+ * @example
68
+ * ```js
69
+ * const source = [{ key: new Key('awesome'), value: new Uint8Array([0, 1, 2, 3]) }]
70
+ *
71
+ * for await (const { key, value } of store.putMany(source)) {
72
+ * console.info(`put content for key ${key}`)
73
+ * }
74
+ * ```
75
+ */
76
+ putMany: (source: AwaitIterable<Pair>, options?: AbortOptions & ProgressOptions<PutManyBlocksProgressEvents>) => AsyncIterable<Pair>;
77
+ /**
78
+ * Retrieve values for the passed keys
79
+ *
80
+ * @example
81
+ * ```js
82
+ * for await (const value of store.getMany([new Key('awesome')])) {
83
+ * console.log('got content:', new TextDecoder('utf8').decode(value))
84
+ * // => got content: datastore
85
+ * }
86
+ * ```
87
+ */
88
+ getMany: (source: AwaitIterable<CID>, options?: AbortOptions & ProgressOptions<GetManyBlocksProgressEvents>) => AsyncIterable<Uint8Array>;
89
+ /**
90
+ * Remove values for the passed keys
91
+ *
92
+ * @example
93
+ *
94
+ * ```js
95
+ * const source = [new Key('awesome')]
96
+ *
97
+ * for await (const key of store.deleteMany(source)) {
98
+ * console.log(`deleted content with key ${key}`)
99
+ * }
100
+ * ```
101
+ */
102
+ deleteMany: (source: AwaitIterable<CID>, options?: AbortOptions & ProgressOptions<DeleteManyBlocksProgressEvents>) => AsyncIterable<CID>;
103
+ }
104
+ //# sourceMappingURL=blocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/blocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=blocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/blocks.ts"],"names":[],"mappings":""}
@@ -14,13 +14,14 @@
14
14
  * ```
15
15
  */
16
16
  import type { Libp2p } from '@libp2p/interface-libp2p';
17
- import type { Blockstore } from 'interface-blockstore';
18
17
  import type { AbortOptions } from '@libp2p/interfaces';
19
18
  import type { PeerId } from '@libp2p/interface-peer-id';
20
19
  import type { Datastore } from 'interface-datastore';
21
20
  import type { Pins } from './pins.js';
22
21
  import type { ProgressEvent, ProgressOptions } from 'progress-events';
23
22
  import type { CID } from 'multiformats/cid';
23
+ import type { Blocks } from './blocks.js';
24
+ export type AwaitIterable<T> = Iterable<T> | AsyncIterable<T>;
24
25
  /**
25
26
  * The API presented by a Helia node.
26
27
  */
@@ -32,7 +33,7 @@ export interface Helia {
32
33
  /**
33
34
  * Where the blocks are stored
34
35
  */
35
- blockstore: Blockstore;
36
+ blockstore: Blocks;
36
37
  /**
37
38
  * A key/value store
38
39
  */
@@ -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,0BAA0B,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;IAEtB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAA;IAEpB;;OAEG;IACH,IAAI,EAAE,IAAI,CAAA;IAEV;;OAEG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAE1B;;OAEG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzB;;OAEG;IACH,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3C;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,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;AAE7D;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAA;IAEpB;;OAEG;IACH,IAAI,EAAE,IAAI,CAAA;IAEV;;OAEG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAE1B;;OAEG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzB;;OAEG;IACH,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3C;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,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helia/interface",
3
- "version": "0.0.0-5330188",
3
+ "version": "0.0.0-7460719",
4
4
  "description": "The Helia API",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/ipfs/helia/tree/master/packages/interface#readme",
@@ -47,6 +47,10 @@
47
47
  "types": "./dist/src/index.d.ts",
48
48
  "import": "./dist/src/index.js"
49
49
  },
50
+ "./blocks": {
51
+ "types": "./dist/src/blocks.d.ts",
52
+ "import": "./dist/src/blocks.js"
53
+ },
50
54
  "./pins": {
51
55
  "types": "./dist/src/pins.d.ts",
52
56
  "import": "./dist/src/pins.js"
@@ -154,9 +158,8 @@
154
158
  "@libp2p/interface-libp2p": "^1.1.0",
155
159
  "@libp2p/interface-peer-id": "^2.0.1",
156
160
  "@libp2p/interfaces": "^3.3.1",
157
- "@multiformats/multiaddr": "^11.1.5",
158
- "interface-blockstore": "^4.0.1",
159
- "interface-datastore": "^7.0.3",
161
+ "interface-datastore": "^8.0.0",
162
+ "ipfs-bitswap": "^17.0.0",
160
163
  "multiformats": "^11.0.1",
161
164
  "progress-events": "^1.0.0"
162
165
  },
package/src/blocks.ts ADDED
@@ -0,0 +1,144 @@
1
+ import type { AbortOptions } from '@libp2p/interfaces'
2
+ import type { ProgressEvent, ProgressOptions } from 'progress-events'
3
+ import type { CID } from 'multiformats/cid'
4
+ import type { BitswapNotifyProgressEvents, BitswapWantProgressEvents } from 'ipfs-bitswap'
5
+ import type { AwaitIterable } from './index.js'
6
+
7
+ export interface Pair {
8
+ cid: CID
9
+ block: Uint8Array
10
+ }
11
+
12
+ export type PutBlockProgressEvents =
13
+ ProgressEvent<'blocks:put:duplicate', CID> |
14
+ ProgressEvent<'blocks:put:bitswap:notify', CID> |
15
+ ProgressEvent<'blocks:put:blockstore:put', CID> |
16
+ BitswapNotifyProgressEvents
17
+
18
+ export type PutManyBlocksProgressEvents =
19
+ ProgressEvent<'blocks:put-many:duplicate', CID> |
20
+ ProgressEvent<'blocks:put-many:bitswap:notify', CID> |
21
+ ProgressEvent<'blocks:put-many:blockstore:put-many'> |
22
+ BitswapNotifyProgressEvents
23
+
24
+ export type GetBlockProgressEvents =
25
+ ProgressEvent<'blocks:get:bitswap:want', CID> |
26
+ ProgressEvent<'blocks:get:blockstore:get', CID> |
27
+ ProgressEvent<'blocks:get:blockstore:put', CID> |
28
+ BitswapWantProgressEvents
29
+
30
+ export type GetManyBlocksProgressEvents =
31
+ ProgressEvent<'blocks:get-many:blockstore:get-many'> |
32
+ ProgressEvent<'blocks:get-many:bitswap:want', CID> |
33
+ ProgressEvent<'blocks:get-many:blockstore:put', CID> |
34
+ BitswapWantProgressEvents
35
+
36
+ export type DeleteBlockProgressEvents =
37
+ ProgressEvent<'blocks:delete:blockstore:delete', CID>
38
+
39
+ export type DeleteManyBlocksProgressEvents =
40
+ ProgressEvent<'blocks:delete-many:blockstore:delete-many'>
41
+
42
+ export interface Blocks {
43
+ /**
44
+ * Store the passed block under the passed CID
45
+ *
46
+ * @example
47
+ *
48
+ * ```js
49
+ * await store.put([{ key: new Key('awesome'), value: new Uint8Array([0, 1, 2, 3]) }])
50
+ * ```
51
+ */
52
+ put: (key: CID, val: Uint8Array, options?: AbortOptions & ProgressOptions<PutBlockProgressEvents>) => Promise<void>
53
+
54
+ /**
55
+ * Retrieve the value stored under the given key
56
+ *
57
+ * @example
58
+ * ```js
59
+ * const value = await store.get(new Key('awesome'))
60
+ * console.log('got content: %s', value.toString('utf8'))
61
+ * // => got content: datastore
62
+ * ```
63
+ */
64
+ get: (key: CID, options?: AbortOptions & ProgressOptions<GetBlockProgressEvents>) => Promise<Uint8Array>
65
+
66
+ /**
67
+ * Check for the existence of a value for the passed key
68
+ *
69
+ * @example
70
+ * ```js
71
+ *const exists = await store.has(new Key('awesome'))
72
+ *
73
+ *if (exists) {
74
+ * console.log('it is there')
75
+ *} else {
76
+ * console.log('it is not there')
77
+ *}
78
+ *```
79
+ */
80
+ has: (key: CID, options?: AbortOptions) => Promise<boolean>
81
+
82
+ /**
83
+ * Remove the record for the passed key
84
+ *
85
+ * @example
86
+ *
87
+ * ```js
88
+ * await store.delete(new Key('awesome'))
89
+ * console.log('deleted awesome content :(')
90
+ * ```
91
+ */
92
+ delete: (key: CID, options?: AbortOptions & ProgressOptions<DeleteBlockProgressEvents>) => Promise<void>
93
+
94
+ /**
95
+ * Store the given key/value pairs
96
+ *
97
+ * @example
98
+ * ```js
99
+ * const source = [{ key: new Key('awesome'), value: new Uint8Array([0, 1, 2, 3]) }]
100
+ *
101
+ * for await (const { key, value } of store.putMany(source)) {
102
+ * console.info(`put content for key ${key}`)
103
+ * }
104
+ * ```
105
+ */
106
+ putMany: (
107
+ source: AwaitIterable<Pair>,
108
+ options?: AbortOptions & ProgressOptions<PutManyBlocksProgressEvents>
109
+ ) => AsyncIterable<Pair>
110
+
111
+ /**
112
+ * Retrieve values for the passed keys
113
+ *
114
+ * @example
115
+ * ```js
116
+ * for await (const value of store.getMany([new Key('awesome')])) {
117
+ * console.log('got content:', new TextDecoder('utf8').decode(value))
118
+ * // => got content: datastore
119
+ * }
120
+ * ```
121
+ */
122
+ getMany: (
123
+ source: AwaitIterable<CID>,
124
+ options?: AbortOptions & ProgressOptions<GetManyBlocksProgressEvents>
125
+ ) => AsyncIterable<Uint8Array>
126
+
127
+ /**
128
+ * Remove values for the passed keys
129
+ *
130
+ * @example
131
+ *
132
+ * ```js
133
+ * const source = [new Key('awesome')]
134
+ *
135
+ * for await (const key of store.deleteMany(source)) {
136
+ * console.log(`deleted content with key ${key}`)
137
+ * }
138
+ * ```
139
+ */
140
+ deleteMany: (
141
+ source: AwaitIterable<CID>,
142
+ options?: AbortOptions & ProgressOptions<DeleteManyBlocksProgressEvents>
143
+ ) => AsyncIterable<CID>
144
+ }
package/src/index.ts CHANGED
@@ -15,13 +15,15 @@
15
15
  */
16
16
 
17
17
  import type { Libp2p } from '@libp2p/interface-libp2p'
18
- import type { Blockstore } from 'interface-blockstore'
19
18
  import type { AbortOptions } from '@libp2p/interfaces'
20
19
  import type { PeerId } from '@libp2p/interface-peer-id'
21
20
  import type { Datastore } from 'interface-datastore'
22
21
  import type { Pins } from './pins.js'
23
22
  import type { ProgressEvent, ProgressOptions } from 'progress-events'
24
23
  import type { CID } from 'multiformats/cid'
24
+ import type { Blocks } from './blocks.js'
25
+
26
+ export type AwaitIterable<T> = Iterable<T> | AsyncIterable<T>
25
27
 
26
28
  /**
27
29
  * The API presented by a Helia node.
@@ -35,7 +37,7 @@ export interface Helia {
35
37
  /**
36
38
  * Where the blocks are stored
37
39
  */
38
- blockstore: Blockstore
40
+ blockstore: Blocks
39
41
 
40
42
  /**
41
43
  * A key/value store