helia 2.0.2 → 2.0.3-0749cbf
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 +38 -59
- package/dist/src/block-brokers/bitswap-block-broker.d.ts +20 -0
- package/dist/src/block-brokers/bitswap-block-broker.d.ts.map +1 -0
- package/dist/src/block-brokers/bitswap-block-broker.js +39 -0
- package/dist/src/block-brokers/bitswap-block-broker.js.map +1 -0
- package/dist/src/block-brokers/index.d.ts +3 -0
- package/dist/src/block-brokers/index.d.ts.map +1 -0
- package/dist/src/block-brokers/index.js +3 -0
- package/dist/src/block-brokers/index.js.map +1 -0
- package/dist/src/block-brokers/trustless-gateway-block-broker.d.ts +15 -0
- package/dist/src/block-brokers/trustless-gateway-block-broker.d.ts.map +1 -0
- package/dist/src/block-brokers/trustless-gateway-block-broker.js +60 -0
- package/dist/src/block-brokers/trustless-gateway-block-broker.js.map +1 -0
- package/dist/src/helia.d.ts +0 -1
- package/dist/src/helia.d.ts.map +1 -1
- package/dist/src/helia.js +5 -26
- package/dist/src/helia.js.map +1 -1
- package/dist/src/index.d.ts +9 -10
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +33 -35
- package/dist/src/index.js.map +1 -1
- package/dist/src/storage.d.ts +7 -2
- package/dist/src/storage.d.ts.map +1 -1
- package/dist/src/storage.js +14 -0
- package/dist/src/storage.js.map +1 -1
- package/dist/src/utils/default-hashers.d.ts +3 -0
- package/dist/src/utils/default-hashers.d.ts.map +1 -0
- package/dist/src/utils/default-hashers.js +11 -0
- package/dist/src/utils/default-hashers.js.map +1 -0
- package/dist/src/utils/libp2p-defaults.browser.d.ts +7 -3
- package/dist/src/utils/libp2p-defaults.browser.d.ts.map +1 -1
- package/dist/src/utils/libp2p-defaults.browser.js +7 -5
- package/dist/src/utils/libp2p-defaults.browser.js.map +1 -1
- package/dist/src/utils/libp2p-defaults.d.ts +7 -3
- package/dist/src/utils/libp2p-defaults.d.ts.map +1 -1
- package/dist/src/utils/libp2p-defaults.js +11 -5
- package/dist/src/utils/libp2p-defaults.js.map +1 -1
- package/dist/src/utils/libp2p.d.ts +2 -8
- package/dist/src/utils/libp2p.d.ts.map +1 -1
- package/dist/src/utils/libp2p.js.map +1 -1
- package/dist/src/utils/networked-storage.d.ts +16 -9
- package/dist/src/utils/networked-storage.d.ts.map +1 -1
- package/dist/src/utils/networked-storage.js +93 -15
- package/dist/src/utils/networked-storage.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/package.json +30 -4
- package/src/block-brokers/bitswap-block-broker.ts +58 -0
- package/src/block-brokers/index.ts +2 -0
- package/src/block-brokers/trustless-gateway-block-broker.ts +78 -0
- package/src/helia.ts +5 -33
- package/src/index.ts +50 -41
- package/src/storage.ts +19 -2
- package/src/utils/default-hashers.ts +12 -0
- package/src/utils/libp2p-defaults.browser.ts +18 -7
- package/src/utils/libp2p-defaults.ts +24 -7
- package/src/utils/libp2p.ts +2 -5
- package/src/utils/networked-storage.ts +116 -23
- package/src/version.ts +1 -1
- package/dist/typedoc-urls.json +0 -8
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { BlockAnnouncer, BlockRetriever } from '@helia/interface/blocks';
|
|
2
|
+
import type { Libp2p } from '@libp2p/interface';
|
|
3
|
+
import type { Startable } from '@libp2p/interface/startable';
|
|
4
|
+
import type { Blockstore } from 'interface-blockstore';
|
|
5
|
+
import type { AbortOptions } from 'interface-store';
|
|
6
|
+
import type { BitswapNotifyProgressEvents, BitswapWantBlockProgressEvents } from 'ipfs-bitswap';
|
|
7
|
+
import type { CID } from 'multiformats/cid';
|
|
8
|
+
import type { MultihashHasher } from 'multiformats/hashes/interface';
|
|
9
|
+
import type { ProgressOptions } from 'progress-events';
|
|
10
|
+
export declare class BitswapBlockBroker implements BlockAnnouncer<ProgressOptions<BitswapNotifyProgressEvents>>, BlockRetriever<ProgressOptions<BitswapWantBlockProgressEvents>>, Startable {
|
|
11
|
+
private readonly bitswap;
|
|
12
|
+
private started;
|
|
13
|
+
constructor(libp2p: Libp2p, blockstore: Blockstore, hashers: MultihashHasher[]);
|
|
14
|
+
isStarted(): boolean;
|
|
15
|
+
start(): Promise<void>;
|
|
16
|
+
stop(): Promise<void>;
|
|
17
|
+
announce(cid: CID, block: Uint8Array, options?: ProgressOptions<BitswapNotifyProgressEvents>): void;
|
|
18
|
+
retrieve(cid: CID, options?: AbortOptions & ProgressOptions<BitswapWantBlockProgressEvents>): Promise<Uint8Array>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=bitswap-block-broker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bitswap-block-broker.d.ts","sourceRoot":"","sources":["../../../src/block-brokers/bitswap-block-broker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAW,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAA;AACxG,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,qBAAa,kBAAmB,YAAW,cAAc,CAAC,eAAe,CAAC,2BAA2B,CAAC,CAAC,EAAE,cAAc,CACvH,eAAe,CAAC,8BAA8B,CAAC,CAC9C,EAAE,SAAS;IACV,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,OAAO,CAAS;gBAEX,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE;IAmB/E,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAKvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAK5B,QAAQ,CAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,2BAA2B,CAAC,GAAG,IAAI;IAI9F,QAAQ,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,eAAe,CAAC,8BAA8B,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;CAGzH"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createBitswap } from 'ipfs-bitswap';
|
|
2
|
+
export class BitswapBlockBroker {
|
|
3
|
+
bitswap;
|
|
4
|
+
started;
|
|
5
|
+
constructor(libp2p, blockstore, hashers) {
|
|
6
|
+
this.bitswap = createBitswap(libp2p, blockstore, {
|
|
7
|
+
hashLoader: {
|
|
8
|
+
getHasher: async (codecOrName) => {
|
|
9
|
+
const hasher = hashers.find(hasher => {
|
|
10
|
+
return hasher.code === codecOrName || hasher.name === codecOrName;
|
|
11
|
+
});
|
|
12
|
+
if (hasher != null) {
|
|
13
|
+
return hasher;
|
|
14
|
+
}
|
|
15
|
+
throw new Error(`Could not load hasher for code/name "${codecOrName}"`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
this.started = false;
|
|
20
|
+
}
|
|
21
|
+
isStarted() {
|
|
22
|
+
return this.started;
|
|
23
|
+
}
|
|
24
|
+
async start() {
|
|
25
|
+
await this.bitswap.start();
|
|
26
|
+
this.started = true;
|
|
27
|
+
}
|
|
28
|
+
async stop() {
|
|
29
|
+
await this.bitswap.stop();
|
|
30
|
+
this.started = false;
|
|
31
|
+
}
|
|
32
|
+
announce(cid, block, options) {
|
|
33
|
+
this.bitswap.notify(cid, block, options);
|
|
34
|
+
}
|
|
35
|
+
async retrieve(cid, options) {
|
|
36
|
+
return this.bitswap.want(cid, options);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=bitswap-block-broker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bitswap-block-broker.js","sourceRoot":"","sources":["../../../src/block-brokers/bitswap-block-broker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAW5C,MAAM,OAAO,kBAAkB;IAGZ,OAAO,CAAS;IACzB,OAAO,CAAS;IAExB,YAAa,MAAc,EAAE,UAAsB,EAAE,OAA0B;QAC7E,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE;YAC/C,UAAU,EAAE;gBACV,SAAS,EAAE,KAAK,EAAE,WAA4B,EAAoC,EAAE;oBAClF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;wBACnC,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAA;oBACnE,CAAC,CAAC,CAAA;oBAEF,IAAI,MAAM,IAAI,IAAI,EAAE;wBAClB,OAAO,MAAM,CAAA;qBACd;oBAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,WAAW,GAAG,CAAC,CAAA;gBACzE,CAAC;aACF;SACF,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,QAAQ,CAAE,GAAQ,EAAE,KAAiB,EAAE,OAAsD;QAC3F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAE,GAAQ,EAAE,OAAwE;QAChG,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACxC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/block-brokers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/block-brokers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { BlockRetriever } from '@helia/interface/blocks';
|
|
2
|
+
import type { AbortOptions } from 'interface-store';
|
|
3
|
+
import type { CID } from 'multiformats/cid';
|
|
4
|
+
import type { ProgressEvent, ProgressOptions } from 'progress-events';
|
|
5
|
+
export type TrustlessGatewayGetBlockProgressEvents = ProgressEvent<'trustless-gateway:get-block:fetch', URL>;
|
|
6
|
+
/**
|
|
7
|
+
* A class that accepts a list of trustless gateways that are queried
|
|
8
|
+
* for blocks.
|
|
9
|
+
*/
|
|
10
|
+
export declare class TrustedGatewayBlockBroker implements BlockRetriever<ProgressOptions<TrustlessGatewayGetBlockProgressEvents>> {
|
|
11
|
+
private readonly gateways;
|
|
12
|
+
constructor(urls: Array<string | URL>);
|
|
13
|
+
retrieve(cid: CID, options?: AbortOptions & ProgressOptions<TrustlessGatewayGetBlockProgressEvents>): Promise<Uint8Array>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=trustless-gateway-block-broker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustless-gateway-block-broker.d.ts","sourceRoot":"","sources":["../../../src/block-brokers/trustless-gateway-block-broker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAIrE,MAAM,MAAM,sCAAsC,GAChD,aAAa,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;AAEzD;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAChE,eAAe,CAAC,sCAAsC,CAAC,CACtD;IACC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAO;gBAEnB,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IAIhC,QAAQ,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAY,GAAG,eAAe,CAAC,sCAAsC,CAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAiBrI"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { logger } from '@libp2p/logger';
|
|
2
|
+
const log = logger('helia:trustless-gateway-block-provider');
|
|
3
|
+
/**
|
|
4
|
+
* A class that accepts a list of trustless gateways that are queried
|
|
5
|
+
* for blocks.
|
|
6
|
+
*/
|
|
7
|
+
export class TrustedGatewayBlockBroker {
|
|
8
|
+
gateways;
|
|
9
|
+
constructor(urls) {
|
|
10
|
+
this.gateways = urls.map(url => new URL(url.toString()));
|
|
11
|
+
}
|
|
12
|
+
async retrieve(cid, options = {}) {
|
|
13
|
+
// choose a gateway
|
|
14
|
+
const url = this.gateways[Math.floor(Math.random() * this.gateways.length)];
|
|
15
|
+
log('getting block for %c from %s', cid, url);
|
|
16
|
+
try {
|
|
17
|
+
const block = await getRawBlockFromGateway(url, cid, options.signal);
|
|
18
|
+
log('got block for %c from %s', cid, url);
|
|
19
|
+
return block;
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
log.error('failed to get block for %c from %s', cid, url, err);
|
|
23
|
+
throw err;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async function getRawBlockFromGateway(url, cid, signal) {
|
|
28
|
+
const gwUrl = new URL(url);
|
|
29
|
+
gwUrl.pathname = `/ipfs/${cid.toString()}`;
|
|
30
|
+
// necessary as not every gateway supports dag-cbor, but every should support
|
|
31
|
+
// sending raw block as-is
|
|
32
|
+
gwUrl.search = '?format=raw';
|
|
33
|
+
if (signal?.aborted === true) {
|
|
34
|
+
throw new Error(`Signal to fetch raw block for CID ${cid} from gateway ${gwUrl.toString()} was aborted prior to fetch`);
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const res = await fetch(gwUrl.toString(), {
|
|
38
|
+
signal,
|
|
39
|
+
headers: {
|
|
40
|
+
// also set header, just in case ?format= is filtered out by some
|
|
41
|
+
// reverse proxy
|
|
42
|
+
Accept: 'application/vnd.ipld.raw'
|
|
43
|
+
},
|
|
44
|
+
cache: 'force-cache'
|
|
45
|
+
});
|
|
46
|
+
if (!res.ok) {
|
|
47
|
+
throw new Error(`unable to fetch raw block for CID ${cid} from gateway ${gwUrl.toString()}`);
|
|
48
|
+
}
|
|
49
|
+
return new Uint8Array(await res.arrayBuffer());
|
|
50
|
+
}
|
|
51
|
+
catch (cause) {
|
|
52
|
+
// @ts-expect-error - TS thinks signal?.aborted can only be false now
|
|
53
|
+
// because it was checked for true above.
|
|
54
|
+
if (signal?.aborted === true) {
|
|
55
|
+
throw new Error(`fetching raw block for CID ${cid} from gateway ${gwUrl.toString()} was aborted`);
|
|
56
|
+
}
|
|
57
|
+
throw new Error(`unable to fetch raw block for CID ${cid}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=trustless-gateway-block-broker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustless-gateway-block-broker.js","sourceRoot":"","sources":["../../../src/block-brokers/trustless-gateway-block-broker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAMvC,MAAM,GAAG,GAAG,MAAM,CAAC,wCAAwC,CAAC,CAAA;AAK5D;;;GAGG;AACH,MAAM,OAAO,yBAAyB;IAGnB,QAAQ,CAAO;IAEhC,YAAa,IAAyB;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAE,GAAQ,EAAE,UAAkF,EAAE;QAC5G,mBAAmB;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QAE3E,GAAG,CAAC,8BAA8B,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAE7C,IAAI;YACF,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YACpE,GAAG,CAAC,0BAA0B,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;YAEzC,OAAO,KAAK,CAAA;SACb;QAAC,OAAO,GAAQ,EAAE;YACjB,GAAG,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;YAE9D,MAAM,GAAG,CAAA;SACV;IACH,CAAC;CACF;AAED,KAAK,UAAU,sBAAsB,CAAE,GAAQ,EAAE,GAAQ,EAAE,MAAoB;IAC7E,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAC1B,KAAK,CAAC,QAAQ,GAAG,SAAS,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAA;IAE1C,6EAA6E;IAC7E,0BAA0B;IAC1B,KAAK,CAAC,MAAM,GAAG,aAAa,CAAA;IAE5B,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,iBAAiB,KAAK,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAA;KACxH;IAED,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;YACxC,MAAM;YACN,OAAO,EAAE;gBACP,iEAAiE;gBACjE,gBAAgB;gBAChB,MAAM,EAAE,0BAA0B;aACnC;YACD,KAAK,EAAE,aAAa;SACrB,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,iBAAiB,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;SAC7F;QACD,OAAO,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;KAC/C;IAAC,OAAO,KAAK,EAAE;QACd,qEAAqE;QACrE,yCAAyC;QACzC,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,iBAAiB,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;SAClG;QACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAA;KAC5D;AACH,CAAC"}
|
package/dist/src/helia.d.ts
CHANGED
package/dist/src/helia.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helia.d.ts","sourceRoot":"","sources":["../../src/helia.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helia.d.ts","sourceRoot":"","sources":["../../src/helia.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,CAAA;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAKpD,UAAU,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IACrE,MAAM,EAAE,CAAC,CAAA;IACT,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,qBAAa,SAAU,YAAW,KAAK;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,YAAY,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,IAAI,CAAA;gBAEJ,IAAI,EAAE,aAAa;IAe1B,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAMvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAKtB,EAAE,CAAE,OAAO,GAAE,SAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CA+BlD"}
|
package/dist/src/helia.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
+
import { start, stop } from '@libp2p/interface/startable';
|
|
1
2
|
import { logger } from '@libp2p/logger';
|
|
2
|
-
import { createBitswap } from 'ipfs-bitswap';
|
|
3
3
|
import drain from 'it-drain';
|
|
4
|
-
import { identity } from 'multiformats/hashes/identity';
|
|
5
|
-
import { sha256, sha512 } from 'multiformats/hashes/sha2';
|
|
6
4
|
import { CustomProgressEvent } from 'progress-events';
|
|
7
5
|
import { PinsImpl } from './pins.js';
|
|
8
6
|
import { BlockStorage } from './storage.js';
|
|
@@ -14,29 +12,10 @@ export class HeliaImpl {
|
|
|
14
12
|
blockstore;
|
|
15
13
|
datastore;
|
|
16
14
|
pins;
|
|
17
|
-
#bitswap;
|
|
18
15
|
constructor(init) {
|
|
19
|
-
const hashers = [
|
|
20
|
-
sha256,
|
|
21
|
-
sha512,
|
|
22
|
-
identity,
|
|
23
|
-
...(init.hashers ?? [])
|
|
24
|
-
];
|
|
25
|
-
this.#bitswap = createBitswap(init.libp2p, init.blockstore, {
|
|
26
|
-
hashLoader: {
|
|
27
|
-
getHasher: async (codecOrName) => {
|
|
28
|
-
const hasher = hashers.find(hasher => {
|
|
29
|
-
return hasher.code === codecOrName || hasher.name === codecOrName;
|
|
30
|
-
});
|
|
31
|
-
if (hasher != null) {
|
|
32
|
-
return hasher;
|
|
33
|
-
}
|
|
34
|
-
throw new Error(`Could not load hasher for code/name "${codecOrName}"`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
16
|
const networkedStorage = new NetworkedStorage(init.blockstore, {
|
|
39
|
-
|
|
17
|
+
blockBrokers: init.blockBrokers,
|
|
18
|
+
hashers: init.hashers
|
|
40
19
|
});
|
|
41
20
|
this.pins = new PinsImpl(init.datastore, networkedStorage, init.dagWalkers ?? []);
|
|
42
21
|
this.libp2p = init.libp2p;
|
|
@@ -47,12 +26,12 @@ export class HeliaImpl {
|
|
|
47
26
|
}
|
|
48
27
|
async start() {
|
|
49
28
|
await assertDatastoreVersionIsCurrent(this.datastore);
|
|
50
|
-
await
|
|
29
|
+
await start(this.blockstore);
|
|
51
30
|
await this.libp2p.start();
|
|
52
31
|
}
|
|
53
32
|
async stop() {
|
|
54
33
|
await this.libp2p.stop();
|
|
55
|
-
await
|
|
34
|
+
await stop(this.blockstore);
|
|
56
35
|
}
|
|
57
36
|
async gc(options = {}) {
|
|
58
37
|
const releaseLock = await this.blockstore.lock.writeLock();
|
package/dist/src/helia.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helia.js","sourceRoot":"","sources":["../../src/helia.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"helia.js","sourceRoot":"","sources":["../../src/helia.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
* fs.cat(CID.parse('bafyFoo'))
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
|
+
import type { DefaultLibp2pServices } from './utils/libp2p-defaults.js';
|
|
23
24
|
import type { Helia } from '@helia/interface';
|
|
25
|
+
import type { BlockBroker } from '@helia/interface/blocks';
|
|
24
26
|
import type { Libp2p } from '@libp2p/interface';
|
|
25
|
-
import type { PubSub } from '@libp2p/interface/pubsub';
|
|
26
|
-
import type { DualKadDHT } from '@libp2p/kad-dht';
|
|
27
27
|
import type { Blockstore } from 'interface-blockstore';
|
|
28
28
|
import type { Datastore } from 'interface-datastore';
|
|
29
29
|
import type { Libp2pOptions } from 'libp2p';
|
|
@@ -37,7 +37,7 @@ export * from '@helia/interface/pins';
|
|
|
37
37
|
*/
|
|
38
38
|
export interface DAGWalker {
|
|
39
39
|
codec: number;
|
|
40
|
-
walk
|
|
40
|
+
walk(block: Uint8Array): AsyncGenerator<CID, void, undefined>;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* Options used to create a Helia node.
|
|
@@ -73,6 +73,11 @@ export interface HeliaInit<T extends Libp2p = Libp2p> {
|
|
|
73
73
|
* encoded within that block.
|
|
74
74
|
*/
|
|
75
75
|
dagWalkers?: DAGWalker[];
|
|
76
|
+
/**
|
|
77
|
+
* A list of strategies used to fetch blocks when they are not present in
|
|
78
|
+
* the local blockstore
|
|
79
|
+
*/
|
|
80
|
+
blockBrokers?: BlockBroker[];
|
|
76
81
|
/**
|
|
77
82
|
* Pass `false` to not start the Helia node
|
|
78
83
|
*/
|
|
@@ -98,11 +103,5 @@ export interface HeliaInit<T extends Libp2p = Libp2p> {
|
|
|
98
103
|
* Create and return a Helia node
|
|
99
104
|
*/
|
|
100
105
|
export declare function createHelia<T extends Libp2p>(init: HeliaInit<T>): Promise<Helia<T>>;
|
|
101
|
-
export declare function createHelia(init?: HeliaInit<Libp2p<
|
|
102
|
-
dht: DualKadDHT;
|
|
103
|
-
pubsub: PubSub;
|
|
104
|
-
}>>): Promise<Helia<Libp2p<{
|
|
105
|
-
dht: DualKadDHT;
|
|
106
|
-
pubsub: PubSub;
|
|
107
|
-
}>>>;
|
|
106
|
+
export declare function createHelia(init?: HeliaInit<Libp2p<DefaultLibp2pServices>>): Promise<Helia<Libp2p<DefaultLibp2pServices>>>;
|
|
108
107
|
//# sourceMappingURL=index.d.ts.map
|
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;;;;;;;;;;;;;;;;;;;;;GAqBG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAUH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAIpE,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AAIrC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAClD;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,CAAC,GAAG,aAAa,CAAA;IAE1B;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAE3B;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;IAExB;;;OAGG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAE5B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IAEf;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAmBD;;GAEG;AACH,wBAAsB,WAAW,CAAE,CAAC,SAAS,MAAM,EAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5F,wBAAsB,WAAW,CAAE,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA"}
|
package/dist/src/index.js
CHANGED
|
@@ -23,7 +23,9 @@
|
|
|
23
23
|
import { logger } from '@libp2p/logger';
|
|
24
24
|
import { MemoryBlockstore } from 'blockstore-core';
|
|
25
25
|
import { MemoryDatastore } from 'datastore-core';
|
|
26
|
+
import { BitswapBlockBroker, TrustedGatewayBlockBroker } from './block-brokers/index.js';
|
|
26
27
|
import { HeliaImpl } from './helia.js';
|
|
28
|
+
import { defaultHashers } from './utils/default-hashers.js';
|
|
27
29
|
import { createLibp2p } from './utils/libp2p.js';
|
|
28
30
|
import { name, version } from './version.js';
|
|
29
31
|
// re-export interface types so people don't have to depend on @helia/interface
|
|
@@ -32,6 +34,18 @@ export * from '@helia/interface';
|
|
|
32
34
|
export * from '@helia/interface/blocks';
|
|
33
35
|
export * from '@helia/interface/pins';
|
|
34
36
|
const log = logger('helia');
|
|
37
|
+
const DEFAULT_TRUSTLESS_GATEWAYS = [
|
|
38
|
+
// 2023-10-03: IPNS, Origin, and Block/CAR support from https://ipfs-public-gateway-checker.on.fleek.co/
|
|
39
|
+
'https://dweb.link',
|
|
40
|
+
// 2023-10-03: IPNS, Origin, and Block/CAR support from https://ipfs-public-gateway-checker.on.fleek.co/
|
|
41
|
+
'https://cf-ipfs.com',
|
|
42
|
+
// 2023-10-03: IPNS, Origin, and Block/CAR support from https://ipfs-public-gateway-checker.on.fleek.co/
|
|
43
|
+
'https://4everland.io',
|
|
44
|
+
// 2023-10-03: IPNS, Origin, and Block/CAR support from https://ipfs-public-gateway-checker.on.fleek.co/
|
|
45
|
+
'https://w3s.link',
|
|
46
|
+
// 2023-10-03: IPNS, and Block/CAR support from https://ipfs-public-gateway-checker.on.fleek.co/
|
|
47
|
+
'https://cloudflare-ipfs.com'
|
|
48
|
+
];
|
|
35
49
|
export async function createHelia(init = {}) {
|
|
36
50
|
const datastore = init.datastore ?? new MemoryDatastore();
|
|
37
51
|
const blockstore = init.blockstore ?? new MemoryBlockstore();
|
|
@@ -42,27 +56,24 @@ export async function createHelia(init = {}) {
|
|
|
42
56
|
else {
|
|
43
57
|
libp2p = await createLibp2p(datastore, init.libp2p);
|
|
44
58
|
}
|
|
59
|
+
const hashers = defaultHashers(init.hashers);
|
|
60
|
+
const blockBrokers = init.blockBrokers ?? [
|
|
61
|
+
new BitswapBlockBroker(libp2p, blockstore, hashers),
|
|
62
|
+
new TrustedGatewayBlockBroker(DEFAULT_TRUSTLESS_GATEWAYS)
|
|
63
|
+
];
|
|
45
64
|
const helia = new HeliaImpl({
|
|
46
65
|
...init,
|
|
47
66
|
datastore,
|
|
48
67
|
blockstore,
|
|
49
|
-
libp2p
|
|
68
|
+
libp2p,
|
|
69
|
+
blockBrokers,
|
|
70
|
+
hashers
|
|
50
71
|
});
|
|
51
72
|
if (init.start !== false) {
|
|
52
73
|
await helia.start();
|
|
53
74
|
}
|
|
54
75
|
// add helia to agent version
|
|
55
|
-
|
|
56
|
-
await addHeliaToAgentVersion(helia);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
helia.libp2p.addEventListener('start', () => {
|
|
60
|
-
addHeliaToAgentVersion(helia)
|
|
61
|
-
.catch(err => {
|
|
62
|
-
log.error('could not add Helia to agent version', err);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
}
|
|
76
|
+
addHeliaToAgentVersion(helia);
|
|
66
77
|
return helia;
|
|
67
78
|
}
|
|
68
79
|
function isLibp2p(obj) {
|
|
@@ -74,31 +85,18 @@ function isLibp2p(obj) {
|
|
|
74
85
|
// if these are all functions it's probably a libp2p object
|
|
75
86
|
return funcs.every(m => typeof obj[m] === 'function');
|
|
76
87
|
}
|
|
77
|
-
|
|
88
|
+
function addHeliaToAgentVersion(helia) {
|
|
78
89
|
// add helia to agent version
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
if (versionStr.match(/js-libp2p\/\d+\.\d+\.\d+\sUserAgent=/) == null) {
|
|
87
|
-
// the user changed the agent version
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
if (versionStr.includes(name)) {
|
|
91
|
-
// update version name
|
|
92
|
-
versionStr = `${name}/${version} ${versionStr.split(' ').slice(1).join(' ')}`;
|
|
90
|
+
try {
|
|
91
|
+
const existingAgentVersion = helia.libp2p.services.identify.host.agentVersion;
|
|
92
|
+
if (existingAgentVersion.match(/js-libp2p\/\d+\.\d+\.\d+\sUserAgent=/) == null) {
|
|
93
|
+
// the user changed the agent version
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
helia.libp2p.services.identify.host.agentVersion = `${name}/${version} ${helia.libp2p.services.identify.host.agentVersion}`;
|
|
93
97
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
versionStr = `${name}/${version} ${versionStr}`;
|
|
98
|
+
catch (err) {
|
|
99
|
+
log.error('could not add Helia to agent version', err);
|
|
97
100
|
}
|
|
98
|
-
await helia.libp2p.peerStore.merge(helia.libp2p.peerId, {
|
|
99
|
-
metadata: {
|
|
100
|
-
AgentVersion: new TextEncoder().encode(versionStr)
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
101
|
}
|
|
104
102
|
//# 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;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAW5C,+EAA+E;AAC/E,wBAAwB;AACxB,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AAErC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/storage.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Startable } from '@libp2p/interface/startable';
|
|
1
2
|
import type { Blocks, Pair, DeleteManyBlocksProgressEvents, DeleteBlockProgressEvents, GetBlockProgressEvents, GetManyBlocksProgressEvents, PutManyBlocksProgressEvents, PutBlockProgressEvents, GetAllBlocksProgressEvents, GetOfflineOptions } from '@helia/interface/blocks';
|
|
2
3
|
import type { Pins } from '@helia/interface/pins';
|
|
3
4
|
import type { AbortOptions } from '@libp2p/interface';
|
|
@@ -10,21 +11,25 @@ export interface BlockStorageInit {
|
|
|
10
11
|
holdGcLock?: boolean;
|
|
11
12
|
}
|
|
12
13
|
export interface GetOptions extends AbortOptions {
|
|
13
|
-
progress
|
|
14
|
+
progress?(evt: Event): void;
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
16
17
|
* BlockStorage is a hybrid blockstore that puts/gets blocks from a configured
|
|
17
18
|
* blockstore (that may be on disk, s3, or something else). If the blocks are
|
|
18
19
|
* not present Bitswap will be used to fetch them from network peers.
|
|
19
20
|
*/
|
|
20
|
-
export declare class BlockStorage implements Blocks {
|
|
21
|
+
export declare class BlockStorage implements Blocks, Startable {
|
|
21
22
|
lock: Mortice;
|
|
22
23
|
private readonly child;
|
|
23
24
|
private readonly pins;
|
|
25
|
+
private started;
|
|
24
26
|
/**
|
|
25
27
|
* Create a new BlockStorage
|
|
26
28
|
*/
|
|
27
29
|
constructor(blockstore: Blockstore, pins: Pins, options?: BlockStorageInit);
|
|
30
|
+
isStarted(): boolean;
|
|
31
|
+
start(): Promise<void>;
|
|
32
|
+
stop(): Promise<void>;
|
|
28
33
|
unwrap(): Blockstore;
|
|
29
34
|
/**
|
|
30
35
|
* Put a block to the underlying datastore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"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"}
|
package/dist/src/storage.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { start, stop } from '@libp2p/interface/startable';
|
|
1
2
|
import createMortice from 'mortice';
|
|
2
3
|
/**
|
|
3
4
|
* BlockStorage is a hybrid blockstore that puts/gets blocks from a configured
|
|
@@ -8,6 +9,7 @@ export class BlockStorage {
|
|
|
8
9
|
lock;
|
|
9
10
|
child;
|
|
10
11
|
pins;
|
|
12
|
+
started;
|
|
11
13
|
/**
|
|
12
14
|
* Create a new BlockStorage
|
|
13
15
|
*/
|
|
@@ -17,6 +19,18 @@ export class BlockStorage {
|
|
|
17
19
|
this.lock = createMortice({
|
|
18
20
|
singleProcess: options.holdGcLock
|
|
19
21
|
});
|
|
22
|
+
this.started = false;
|
|
23
|
+
}
|
|
24
|
+
isStarted() {
|
|
25
|
+
return this.started;
|
|
26
|
+
}
|
|
27
|
+
async start() {
|
|
28
|
+
await start(this.child);
|
|
29
|
+
this.started = true;
|
|
30
|
+
}
|
|
31
|
+
async stop() {
|
|
32
|
+
await stop(this.child);
|
|
33
|
+
this.started = false;
|
|
20
34
|
}
|
|
21
35
|
unwrap() {
|
|
22
36
|
return this.child;
|
package/dist/src/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,SAAS,CAAA;AAkBnC;;;;GAIG;AACH,MAAM,OAAO,YAAY;IAChB,IAAI,CAAS;IACH,KAAK,CAAY;IACjB,IAAI,CAAM;
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-hashers.d.ts","sourceRoot":"","sources":["../../../src/utils/default-hashers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,wBAAgB,cAAc,CAAE,OAAO,GAAE,eAAe,EAAO,GAAG,eAAe,EAAE,CAOlF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { identity } from 'multiformats/hashes/identity';
|
|
2
|
+
import { sha256, sha512 } from 'multiformats/hashes/sha2';
|
|
3
|
+
export function defaultHashers(hashers = []) {
|
|
4
|
+
return [
|
|
5
|
+
sha256,
|
|
6
|
+
sha512,
|
|
7
|
+
identity,
|
|
8
|
+
...hashers
|
|
9
|
+
];
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=default-hashers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-hashers.js","sourceRoot":"","sources":["../../../src/utils/default-hashers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAGzD,MAAM,UAAU,cAAc,CAAE,UAA6B,EAAE;IAC7D,OAAO;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAG,OAAO;KACX,CAAA;AACH,CAAC"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { type DualKadDHT } from '@libp2p/kad-dht';
|
|
2
|
+
import { type IdentifyService } from 'libp2p/identify';
|
|
3
|
+
import { type PingService } from 'libp2p/ping';
|
|
2
4
|
import type { PubSub } from '@libp2p/interface/pubsub';
|
|
3
5
|
import type { Libp2pOptions } from 'libp2p';
|
|
4
|
-
export
|
|
6
|
+
export interface DefaultLibp2pServices extends Record<string, unknown> {
|
|
5
7
|
dht: DualKadDHT;
|
|
6
8
|
pubsub: PubSub;
|
|
7
|
-
identify:
|
|
9
|
+
identify: IdentifyService;
|
|
8
10
|
autoNAT: unknown;
|
|
9
11
|
dcutr: unknown;
|
|
10
|
-
|
|
12
|
+
ping: PingService;
|
|
13
|
+
}
|
|
14
|
+
export declare function libp2pDefaults(): Libp2pOptions<DefaultLibp2pServices>;
|
|
11
15
|
//# sourceMappingURL=libp2p-defaults.browser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libp2p-defaults.browser.d.ts","sourceRoot":"","sources":["../../../src/utils/libp2p-defaults.browser.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,UAAU,EAAU,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"libp2p-defaults.browser.d.ts","sourceRoot":"","sources":["../../../src/utils/libp2p-defaults.browser.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,UAAU,EAAU,MAAM,iBAAiB,CAAA;AAUzD,OAAO,EAAE,KAAK,eAAe,EAAmB,MAAM,iBAAiB,CAAA;AACvE,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAE3C,MAAM,WAAW,qBAAsB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,GAAG,EAAE,UAAU,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,eAAe,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,wBAAgB,cAAc,IAAK,aAAa,CAAC,qBAAqB,CAAC,CA8CtE"}
|