@helia/dag-json 4.0.7 → 4.1.0-172345df
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/index.min.js +1 -1
- package/dist/index.min.js.map +4 -4
- package/dist/src/dag-json.d.ts +9 -0
- package/dist/src/dag-json.d.ts.map +1 -0
- package/dist/src/dag-json.js +26 -0
- package/dist/src/dag-json.js.map +1 -0
- package/dist/src/index.d.ts +4 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -21
- package/dist/src/index.js.map +1 -1
- package/package.json +9 -15
- package/src/dag-json.ts +34 -0
- package/src/index.ts +7 -33
- package/dist/typedoc-urls.json +0 -12
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CID } from 'multiformats/cid';
|
|
2
|
+
import type { AddOptions, DAGJSONComponents, DAGJSON as DAGJSONInterface, GetOptions } from './index.js';
|
|
3
|
+
export declare class DAGJSON implements DAGJSONInterface {
|
|
4
|
+
private readonly components;
|
|
5
|
+
constructor(components: DAGJSONComponents);
|
|
6
|
+
add(obj: any, options?: AddOptions): Promise<CID>;
|
|
7
|
+
get<T>(cid: CID, options?: GetOptions): Promise<T>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=dag-json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dag-json.d.ts","sourceRoot":"","sources":["../../src/dag-json.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,IAAI,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAExG,qBAAa,OAAQ,YAAW,gBAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;gBAEjC,UAAU,EAAE,iBAAiB;IAIpC,GAAG,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAUtD,GAAG,CAAE,CAAC,EAAG,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,CAAC,CAAC;CAS/D"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { InvalidCodecError } from '@helia/interface';
|
|
2
|
+
import * as codec from '@ipld/dag-json';
|
|
3
|
+
import toBuffer from 'it-to-buffer';
|
|
4
|
+
import { CID } from 'multiformats/cid';
|
|
5
|
+
import { sha256 } from 'multiformats/hashes/sha2';
|
|
6
|
+
export class DAGJSON {
|
|
7
|
+
components;
|
|
8
|
+
constructor(components) {
|
|
9
|
+
this.components = components;
|
|
10
|
+
}
|
|
11
|
+
async add(obj, options = {}) {
|
|
12
|
+
const buf = codec.encode(obj);
|
|
13
|
+
const hash = await (options.hasher ?? sha256).digest(buf);
|
|
14
|
+
const cid = CID.createV1(codec.code, hash);
|
|
15
|
+
await this.components.blockstore.put(cid, buf, options);
|
|
16
|
+
return cid;
|
|
17
|
+
}
|
|
18
|
+
async get(cid, options = {}) {
|
|
19
|
+
if (cid.code !== codec.code) {
|
|
20
|
+
throw new InvalidCodecError('The passed CID had an incorrect codec, it may correspond to a non-DAG-JSON block');
|
|
21
|
+
}
|
|
22
|
+
const buf = await toBuffer(this.components.blockstore.get(cid, options));
|
|
23
|
+
return codec.decode(buf);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=dag-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dag-json.js","sourceRoot":"","sources":["../../src/dag-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,QAAQ,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAGjD,MAAM,OAAO,OAAO;IACD,UAAU,CAAmB;IAE9C,YAAa,UAA6B;QACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAQ,EAAE,UAAsB,EAAE;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACzD,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAE1C,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QAEvD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,GAAG,CAAM,GAAQ,EAAE,UAAsB,EAAE;QAC/C,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,iBAAiB,CAAC,kFAAkF,CAAC,CAAA;QACjH,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;QAExE,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;CACF"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -24,21 +24,19 @@
|
|
|
24
24
|
* // { hello: 'world' }
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
|
-
import {
|
|
28
|
-
import type { GetBlockProgressEvents, PutBlockProgressEvents } from '@helia/interface/blocks';
|
|
27
|
+
import type { GetBlockProgressEvents, ProviderOptions, PutBlockProgressEvents } from '@helia/interface/blocks';
|
|
29
28
|
import type { AbortOptions } from '@libp2p/interface';
|
|
30
29
|
import type { Blockstore } from 'interface-blockstore';
|
|
31
|
-
import type {
|
|
30
|
+
import type { CID } from 'multiformats/cid';
|
|
32
31
|
import type { MultihashHasher } from 'multiformats/hashes/interface';
|
|
33
32
|
import type { ProgressOptions } from 'progress-events';
|
|
34
33
|
export interface DAGJSONComponents {
|
|
35
34
|
blockstore: Blockstore;
|
|
36
35
|
}
|
|
37
36
|
export interface AddOptions extends AbortOptions, ProgressOptions<PutBlockProgressEvents> {
|
|
38
|
-
hasher
|
|
37
|
+
hasher?: MultihashHasher;
|
|
39
38
|
}
|
|
40
|
-
export interface GetOptions extends AbortOptions, ProgressOptions<GetBlockProgressEvents
|
|
41
|
-
codec: BlockCodec<any, unknown>;
|
|
39
|
+
export interface GetOptions extends AbortOptions, ProgressOptions<GetBlockProgressEvents>, ProviderOptions {
|
|
42
40
|
}
|
|
43
41
|
/**
|
|
44
42
|
* The JSON interface provides a simple and intuitive way to add/get objects
|
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;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAC9G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAA;CACvB;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY,EAAE,eAAe,CAAC,sBAAsB,CAAC;IACvF,MAAM,CAAC,EAAE,eAAe,CAAA;CACzB;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY,EAAE,eAAe,CAAC,sBAAsB,CAAC,EAAE,eAAe;CAEzG;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB;;;;;;;;;;;;;;;;;;OAkBG;IACH,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAE9D;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CAC5D;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAE,KAAK,EAAE;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,GAAG,OAAO,CAEnE"}
|
package/dist/src/index.js
CHANGED
|
@@ -24,30 +24,11 @@
|
|
|
24
24
|
* // { hello: 'world' }
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
|
-
import
|
|
28
|
-
import { CID } from 'multiformats/cid';
|
|
29
|
-
import { sha256 } from 'multiformats/hashes/sha2';
|
|
30
|
-
class DefaultDAGJSON {
|
|
31
|
-
components;
|
|
32
|
-
constructor(components) {
|
|
33
|
-
this.components = components;
|
|
34
|
-
}
|
|
35
|
-
async add(obj, options = {}) {
|
|
36
|
-
const buf = codec.encode(obj);
|
|
37
|
-
const hash = await (options.hasher ?? sha256).digest(buf);
|
|
38
|
-
const cid = CID.createV1(codec.code, hash);
|
|
39
|
-
await this.components.blockstore.put(cid, buf, options);
|
|
40
|
-
return cid;
|
|
41
|
-
}
|
|
42
|
-
async get(cid, options = {}) {
|
|
43
|
-
const buf = await this.components.blockstore.get(cid, options);
|
|
44
|
-
return codec.decode(buf);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
27
|
+
import { DAGJSON as DAGJSONClass } from "./dag-json.js";
|
|
47
28
|
/**
|
|
48
29
|
* Create a {@link DAGJSON} instance for use with {@link https://github.com/ipfs/helia Helia}
|
|
49
30
|
*/
|
|
50
31
|
export function dagJson(helia) {
|
|
51
|
-
return new
|
|
32
|
+
return new DAGJSONClass(helia);
|
|
52
33
|
}
|
|
53
34
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA;AAsEvD;;GAEG;AACH,MAAM,UAAU,OAAO,CAAE,KAAiC;IACxD,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAA;AAChC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helia/dag-json",
|
|
3
|
-
"version": "4.0
|
|
3
|
+
"version": "4.1.0-172345df",
|
|
4
4
|
"description": "Add/get IPLD blocks containing dag-json with your Helia node",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/helia/tree/main/packages/dag-json#readme",
|
|
@@ -32,13 +32,6 @@
|
|
|
32
32
|
"import": "./dist/src/index.js"
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
|
-
"eslintConfig": {
|
|
36
|
-
"extends": "ipfs",
|
|
37
|
-
"parserOptions": {
|
|
38
|
-
"project": true,
|
|
39
|
-
"sourceType": "module"
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
35
|
"scripts": {
|
|
43
36
|
"clean": "aegir clean",
|
|
44
37
|
"lint": "aegir lint",
|
|
@@ -54,16 +47,17 @@
|
|
|
54
47
|
"test:electron-main": "aegir test -t electron-main"
|
|
55
48
|
},
|
|
56
49
|
"dependencies": {
|
|
57
|
-
"@helia/interface": "
|
|
58
|
-
"@ipld/dag-json": "^10.2.
|
|
59
|
-
"@libp2p/interface": "^
|
|
60
|
-
"interface-blockstore": "^
|
|
61
|
-
"
|
|
50
|
+
"@helia/interface": "5.4.0-172345df",
|
|
51
|
+
"@ipld/dag-json": "^10.2.5",
|
|
52
|
+
"@libp2p/interface": "^3.0.2",
|
|
53
|
+
"interface-blockstore": "^6.0.1",
|
|
54
|
+
"it-to-buffer": "^4.0.10",
|
|
55
|
+
"multiformats": "^13.4.1",
|
|
62
56
|
"progress-events": "^1.0.1"
|
|
63
57
|
},
|
|
64
58
|
"devDependencies": {
|
|
65
|
-
"aegir": "^47.0.
|
|
66
|
-
"blockstore-core": "^
|
|
59
|
+
"aegir": "^47.0.22",
|
|
60
|
+
"blockstore-core": "^6.0.2"
|
|
67
61
|
},
|
|
68
62
|
"sideEffects": false
|
|
69
63
|
}
|
package/src/dag-json.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { InvalidCodecError } from '@helia/interface'
|
|
2
|
+
import * as codec from '@ipld/dag-json'
|
|
3
|
+
import toBuffer from 'it-to-buffer'
|
|
4
|
+
import { CID } from 'multiformats/cid'
|
|
5
|
+
import { sha256 } from 'multiformats/hashes/sha2'
|
|
6
|
+
import type { AddOptions, DAGJSONComponents, DAGJSON as DAGJSONInterface, GetOptions } from './index.js'
|
|
7
|
+
|
|
8
|
+
export class DAGJSON implements DAGJSONInterface {
|
|
9
|
+
private readonly components: DAGJSONComponents
|
|
10
|
+
|
|
11
|
+
constructor (components: DAGJSONComponents) {
|
|
12
|
+
this.components = components
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async add (obj: any, options: AddOptions = {}): Promise<CID> {
|
|
16
|
+
const buf = codec.encode(obj)
|
|
17
|
+
const hash = await (options.hasher ?? sha256).digest(buf)
|
|
18
|
+
const cid = CID.createV1(codec.code, hash)
|
|
19
|
+
|
|
20
|
+
await this.components.blockstore.put(cid, buf, options)
|
|
21
|
+
|
|
22
|
+
return cid
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async get <T> (cid: CID, options: GetOptions = {}): Promise<T> {
|
|
26
|
+
if (cid.code !== codec.code) {
|
|
27
|
+
throw new InvalidCodecError('The passed CID had an incorrect codec, it may correspond to a non-DAG-JSON block')
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const buf = await toBuffer(this.components.blockstore.get(cid, options))
|
|
31
|
+
|
|
32
|
+
return codec.decode(buf)
|
|
33
|
+
}
|
|
34
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -25,13 +25,11 @@
|
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
|
-
import
|
|
29
|
-
import {
|
|
30
|
-
import { sha256 } from 'multiformats/hashes/sha2'
|
|
31
|
-
import type { GetBlockProgressEvents, PutBlockProgressEvents } from '@helia/interface/blocks'
|
|
28
|
+
import { DAGJSON as DAGJSONClass } from './dag-json.ts'
|
|
29
|
+
import type { GetBlockProgressEvents, ProviderOptions, PutBlockProgressEvents } from '@helia/interface/blocks'
|
|
32
30
|
import type { AbortOptions } from '@libp2p/interface'
|
|
33
31
|
import type { Blockstore } from 'interface-blockstore'
|
|
34
|
-
import type {
|
|
32
|
+
import type { CID } from 'multiformats/cid'
|
|
35
33
|
import type { MultihashHasher } from 'multiformats/hashes/interface'
|
|
36
34
|
import type { ProgressOptions } from 'progress-events'
|
|
37
35
|
|
|
@@ -40,11 +38,11 @@ export interface DAGJSONComponents {
|
|
|
40
38
|
}
|
|
41
39
|
|
|
42
40
|
export interface AddOptions extends AbortOptions, ProgressOptions<PutBlockProgressEvents> {
|
|
43
|
-
hasher
|
|
41
|
+
hasher?: MultihashHasher
|
|
44
42
|
}
|
|
45
43
|
|
|
46
|
-
export interface GetOptions extends AbortOptions, ProgressOptions<GetBlockProgressEvents
|
|
47
|
-
|
|
44
|
+
export interface GetOptions extends AbortOptions, ProgressOptions<GetBlockProgressEvents>, ProviderOptions {
|
|
45
|
+
|
|
48
46
|
}
|
|
49
47
|
|
|
50
48
|
/**
|
|
@@ -97,33 +95,9 @@ export interface DAGJSON {
|
|
|
97
95
|
get<T>(cid: CID, options?: Partial<GetOptions>): Promise<T>
|
|
98
96
|
}
|
|
99
97
|
|
|
100
|
-
class DefaultDAGJSON implements DAGJSON {
|
|
101
|
-
private readonly components: DAGJSONComponents
|
|
102
|
-
|
|
103
|
-
constructor (components: DAGJSONComponents) {
|
|
104
|
-
this.components = components
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
async add (obj: any, options: Partial<AddOptions> = {}): Promise<CID> {
|
|
108
|
-
const buf = codec.encode(obj)
|
|
109
|
-
const hash = await (options.hasher ?? sha256).digest(buf)
|
|
110
|
-
const cid = CID.createV1(codec.code, hash)
|
|
111
|
-
|
|
112
|
-
await this.components.blockstore.put(cid, buf, options)
|
|
113
|
-
|
|
114
|
-
return cid
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
async get <T> (cid: CID, options: Partial<GetOptions> = {}): Promise<T> {
|
|
118
|
-
const buf = await this.components.blockstore.get(cid, options)
|
|
119
|
-
|
|
120
|
-
return codec.decode(buf)
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
98
|
/**
|
|
125
99
|
* Create a {@link DAGJSON} instance for use with {@link https://github.com/ipfs/helia Helia}
|
|
126
100
|
*/
|
|
127
101
|
export function dagJson (helia: { blockstore: Blockstore }): DAGJSON {
|
|
128
|
-
return new
|
|
102
|
+
return new DAGJSONClass(helia)
|
|
129
103
|
}
|
package/dist/typedoc-urls.json
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"AddOptions": "https://ipfs.github.io/helia/interfaces/_helia_dag-json.AddOptions.html",
|
|
3
|
-
".:AddOptions": "https://ipfs.github.io/helia/interfaces/_helia_dag-json.AddOptions.html",
|
|
4
|
-
"DAGJSON": "https://ipfs.github.io/helia/interfaces/_helia_dag-json.DAGJSON.html",
|
|
5
|
-
".:DAGJSON": "https://ipfs.github.io/helia/interfaces/_helia_dag-json.DAGJSON.html",
|
|
6
|
-
"DAGJSONComponents": "https://ipfs.github.io/helia/interfaces/_helia_dag-json.DAGJSONComponents.html",
|
|
7
|
-
".:DAGJSONComponents": "https://ipfs.github.io/helia/interfaces/_helia_dag-json.DAGJSONComponents.html",
|
|
8
|
-
"GetOptions": "https://ipfs.github.io/helia/interfaces/_helia_dag-json.GetOptions.html",
|
|
9
|
-
".:GetOptions": "https://ipfs.github.io/helia/interfaces/_helia_dag-json.GetOptions.html",
|
|
10
|
-
"dagJson": "https://ipfs.github.io/helia/functions/_helia_dag-json.dagJson.html",
|
|
11
|
-
".:dagJson": "https://ipfs.github.io/helia/functions/_helia_dag-json.dagJson.html"
|
|
12
|
-
}
|