@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.
- package/dist/src/blocks.d.ts +104 -0
- package/dist/src/blocks.d.ts.map +1 -0
- package/dist/src/blocks.js +2 -0
- package/dist/src/blocks.js.map +1 -0
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.d.ts.map +1 -1
- package/package.json +7 -4
- package/src/blocks.ts +144 -0
- package/src/index.ts +4 -2
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/blocks.ts"],"names":[],"mappings":""}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -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:
|
|
36
|
+
blockstore: Blocks;
|
|
36
37
|
/**
|
|
37
38
|
* A key/value store
|
|
38
39
|
*/
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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-
|
|
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
|
-
"
|
|
158
|
-
"
|
|
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:
|
|
40
|
+
blockstore: Blocks
|
|
39
41
|
|
|
40
42
|
/**
|
|
41
43
|
* A key/value store
|