helia 3.0.1 → 4.0.0-e554493

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.
Files changed (62) hide show
  1. package/dist/index.min.js +39 -61
  2. package/dist/src/helia-p2p.d.ts +18 -0
  3. package/dist/src/helia-p2p.d.ts.map +1 -0
  4. package/dist/src/helia-p2p.js +22 -0
  5. package/dist/src/helia-p2p.js.map +1 -0
  6. package/dist/src/index.d.ts +9 -5
  7. package/dist/src/index.d.ts.map +1 -1
  8. package/dist/src/index.js +18 -6
  9. package/dist/src/index.js.map +1 -1
  10. package/dist/src/utils/libp2p-defaults.browser.d.ts +0 -2
  11. package/dist/src/utils/libp2p-defaults.browser.d.ts.map +1 -1
  12. package/dist/src/utils/libp2p-defaults.browser.js +1 -3
  13. package/dist/src/utils/libp2p-defaults.browser.js.map +1 -1
  14. package/dist/src/utils/libp2p-defaults.d.ts +0 -2
  15. package/dist/src/utils/libp2p-defaults.d.ts.map +1 -1
  16. package/dist/src/utils/libp2p-defaults.js +0 -2
  17. package/dist/src/utils/libp2p-defaults.js.map +1 -1
  18. package/dist/src/utils/libp2p.d.ts.map +1 -1
  19. package/dist/src/utils/libp2p.js +14 -6
  20. package/dist/src/utils/libp2p.js.map +1 -1
  21. package/dist/src/version.d.ts +1 -1
  22. package/dist/src/version.d.ts.map +1 -1
  23. package/dist/src/version.js +1 -1
  24. package/dist/src/version.js.map +1 -1
  25. package/package.json +17 -27
  26. package/src/helia-p2p.ts +37 -0
  27. package/src/index.ts +30 -10
  28. package/src/utils/libp2p-defaults.browser.ts +1 -5
  29. package/src/utils/libp2p-defaults.ts +0 -4
  30. package/src/utils/libp2p.ts +17 -8
  31. package/src/version.ts +1 -1
  32. package/dist/src/helia.d.ts +0 -26
  33. package/dist/src/helia.d.ts.map +0 -1
  34. package/dist/src/helia.js +0 -81
  35. package/dist/src/helia.js.map +0 -1
  36. package/dist/src/pins.d.ts +0 -17
  37. package/dist/src/pins.d.ts.map +0 -1
  38. package/dist/src/pins.js +0 -166
  39. package/dist/src/pins.js.map +0 -1
  40. package/dist/src/storage.d.ts +0 -63
  41. package/dist/src/storage.d.ts.map +0 -1
  42. package/dist/src/storage.js +0 -140
  43. package/dist/src/storage.js.map +0 -1
  44. package/dist/src/utils/dag-walkers.d.ts +0 -27
  45. package/dist/src/utils/dag-walkers.d.ts.map +0 -1
  46. package/dist/src/utils/dag-walkers.js +0 -157
  47. package/dist/src/utils/dag-walkers.js.map +0 -1
  48. package/dist/src/utils/datastore-version.d.ts +0 -3
  49. package/dist/src/utils/datastore-version.d.ts.map +0 -1
  50. package/dist/src/utils/datastore-version.js +0 -19
  51. package/dist/src/utils/datastore-version.js.map +0 -1
  52. package/dist/src/utils/default-hashers.d.ts +0 -3
  53. package/dist/src/utils/default-hashers.d.ts.map +0 -1
  54. package/dist/src/utils/default-hashers.js +0 -11
  55. package/dist/src/utils/default-hashers.js.map +0 -1
  56. package/dist/typedoc-urls.json +0 -10
  57. package/src/helia.ts +0 -107
  58. package/src/pins.ts +0 -239
  59. package/src/storage.ts +0 -172
  60. package/src/utils/dag-walkers.ts +0 -181
  61. package/src/utils/datastore-version.ts +0 -23
  62. package/src/utils/default-hashers.ts +0 -12
@@ -0,0 +1,18 @@
1
+ import { Helia, type HeliaInit } from '@helia/utils';
2
+ import type { BlockBroker } from './index.js';
3
+ import type { Libp2p } from '@libp2p/interface';
4
+ import type { Blockstore } from 'interface-blockstore';
5
+ import type { Datastore } from 'interface-datastore';
6
+ export interface HeliaP2PInit<T extends Libp2p = Libp2p> extends HeliaInit {
7
+ libp2p: T;
8
+ blockstore: Blockstore;
9
+ datastore: Datastore;
10
+ blockBrokers: Array<(components: any) => BlockBroker>;
11
+ }
12
+ export declare class HeliaP2P<T extends Libp2p> extends Helia {
13
+ libp2p: T;
14
+ constructor(init: HeliaP2PInit<T>);
15
+ start(): Promise<void>;
16
+ stop(): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=helia-p2p.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helia-p2p.d.ts","sourceRoot":"","sources":["../../src/helia-p2p.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,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;AAEpD,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,SAAS;IACxE,MAAM,EAAE,CAAC,CAAA;IACT,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,GAAG,KAAK,WAAW,CAAC,CAAA;CACtD;AAED,qBAAa,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,KAAK;IAC5C,MAAM,EAAE,CAAC,CAAA;gBAEH,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAW5B,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAKvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;CAI7B"}
@@ -0,0 +1,22 @@
1
+ import { Helia } from '@helia/utils';
2
+ export class HeliaP2P extends Helia {
3
+ libp2p;
4
+ constructor(init) {
5
+ super({
6
+ ...init,
7
+ components: {
8
+ libp2p: init.libp2p
9
+ }
10
+ });
11
+ this.libp2p = init.libp2p;
12
+ }
13
+ async start() {
14
+ await super.start();
15
+ await this.libp2p.start();
16
+ }
17
+ async stop() {
18
+ await super.stop();
19
+ await this.libp2p.stop();
20
+ }
21
+ }
22
+ //# sourceMappingURL=helia-p2p.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helia-p2p.js","sourceRoot":"","sources":["../../src/helia-p2p.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,cAAc,CAAA;AAapD,MAAM,OAAO,QAA2B,SAAQ,KAAK;IAC5C,MAAM,CAAG;IAEhB,YAAa,IAAqB;QAChC,KAAK,CAAC;YACJ,GAAG,IAAI;YACP,UAAU,EAAE;gBACV,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;QACnB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;QAClB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF"}
@@ -30,8 +30,6 @@ import type { Libp2pOptions } from 'libp2p';
30
30
  import type { CID } from 'multiformats/cid';
31
31
  import type { MultihashHasher } from 'multiformats/hashes/interface';
32
32
  export * from '@helia/interface';
33
- export * from '@helia/interface/blocks';
34
- export * from '@helia/interface/pins';
35
33
  export type { DefaultLibp2pServices };
36
34
  export { libp2pDefaults };
37
35
  /**
@@ -53,8 +51,11 @@ export interface HeliaInit<T extends Libp2p = Libp2p> {
53
51
  * If node options are passed, they will be merged with the default
54
52
  * config for the current platform. In this case all passed config
55
53
  * keys will replace those from the default config.
54
+ *
55
+ * The libp2p `start` option is not supported, instead please pass `start` in
56
+ * the root of the HeliaInit object.
56
57
  */
57
- libp2p?: T | Libp2pOptions;
58
+ libp2p?: T | Omit<Libp2pOptions, 'start'>;
58
59
  /**
59
60
  * The blockstore is where blocks are stored
60
61
  */
@@ -111,9 +112,12 @@ export interface HeliaInit<T extends Libp2p = Libp2p> {
111
112
  */
112
113
  keychain?: KeychainInit;
113
114
  }
115
+ export interface HeliaLibp2p<T extends Libp2p = Libp2p<DefaultLibp2pServices>> extends Helia {
116
+ libp2p: T;
117
+ }
114
118
  /**
115
119
  * Create and return a Helia node
116
120
  */
117
- export declare function createHelia<T extends Libp2p>(init: HeliaInit<T>): Promise<Helia<T>>;
118
- export declare function createHelia(init?: HeliaInit<Libp2p<DefaultLibp2pServices>>): Promise<Helia<Libp2p<DefaultLibp2pServices>>>;
121
+ export declare function createHelia<T extends Libp2p>(init: HeliaInit<T>): Promise<HeliaLibp2p<T>>;
122
+ export declare function createHelia(init?: HeliaInit<Libp2p<DefaultLibp2pServices>>): Promise<HeliaLibp2p<Libp2p<DefaultLibp2pServices>>>;
119
123
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,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,eAAe,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,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;AAErC,YAAY,EAAE,qBAAqB,EAAE,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB;;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;;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,KAAK,CAAC,CAAC,UAAU,EAAE,GAAG,KAAK,WAAW,CAAC,CAAA;IAEtD;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IAEf;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,CAAA;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AAED;;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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,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,eAAe,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,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;AAEhC,YAAY,EAAE,qBAAqB,EAAE,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB;;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;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAClD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IAEzC;;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,KAAK,CAAC,CAAC,UAAU,EAAE,GAAG,KAAK,WAAW,CAAC,CAAA;IAEtD;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IAEf;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,CAAA;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAE,SAAQ,KAAK;IAC1F,MAAM,EAAE,CAAC,CAAA;CACV;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAE,CAAC,SAAS,MAAM,EAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;AAClG,wBAAsB,WAAW,CAAE,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA"}
package/dist/src/index.js CHANGED
@@ -18,16 +18,16 @@
18
18
  * fs.cat(CID.parse('bafyFoo'))
19
19
  * ```
20
20
  */
21
+ import { bitswap, trustlessGateway } from '@helia/block-brokers';
22
+ import { libp2pRouting } from '@helia/routers';
21
23
  import { MemoryBlockstore } from 'blockstore-core';
22
24
  import { MemoryDatastore } from 'datastore-core';
23
- import { HeliaImpl } from './helia.js';
25
+ import { HeliaP2P } from './helia-p2p.js';
24
26
  import { libp2pDefaults } from './utils/libp2p-defaults.js';
25
27
  import { createLibp2p } from './utils/libp2p.js';
26
28
  // re-export interface types so people don't have to depend on @helia/interface
27
29
  // if they don't want to
28
30
  export * from '@helia/interface';
29
- export * from '@helia/interface/blocks';
30
- export * from '@helia/interface/pins';
31
31
  export { libp2pDefaults };
32
32
  export async function createHelia(init = {}) {
33
33
  const datastore = init.datastore ?? new MemoryDatastore();
@@ -39,15 +39,27 @@ export async function createHelia(init = {}) {
39
39
  else {
40
40
  libp2p = await createLibp2p({
41
41
  ...init,
42
- libp2p: init.libp2p,
42
+ libp2p: {
43
+ ...init.libp2p,
44
+ // ignore the libp2p start parameter as it should be on the main init
45
+ // object instead
46
+ start: undefined
47
+ },
43
48
  datastore
44
49
  });
45
50
  }
46
- const helia = new HeliaImpl({
51
+ const helia = new HeliaP2P({
47
52
  ...init,
48
53
  libp2p,
49
54
  datastore,
50
- blockstore
55
+ blockstore,
56
+ blockBrokers: init.blockBrokers ?? [
57
+ trustlessGateway(),
58
+ bitswap()
59
+ ],
60
+ routers: [
61
+ libp2pRouting(libp2p)
62
+ ]
51
63
  });
52
64
  if (init.start !== false) {
53
65
  await helia.start();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,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,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAYhD,+EAA+E;AAC/E,wBAAwB;AACxB,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AAGrC,OAAO,EAAE,cAAc,EAAE,CAAA;AA+FzB,MAAM,CAAC,KAAK,UAAU,WAAW,CAAE,OAAkB,EAAE;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,eAAe,EAAE,CAAA;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,gBAAgB,EAAE,CAAA;IAE5D,IAAI,MAAqC,CAAA;IAEzC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,IAAI,CAAC,MAAa,CAAA;IAC7B,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,MAAM,YAAY,CAAwB;YACjD,GAAG,IAAI;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS;SACV,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC;QAC1B,GAAG,IAAI;QACP,MAAM;QACN,SAAS;QACT,UAAU;KACX,CAAC,CAAA;IAEF,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,QAAQ,CAAE,GAAQ;IACzB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,8DAA8D;IAC9D,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,CAAC,CAAA;IAEvG,2DAA2D;IAC3D,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAA;AACvD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAYhD,+EAA+E;AAC/E,wBAAwB;AACxB,cAAc,kBAAkB,CAAA;AAGhC,OAAO,EAAE,cAAc,EAAE,CAAA;AAsGzB,MAAM,CAAC,KAAK,UAAU,WAAW,CAAE,OAAkB,EAAE;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,eAAe,EAAE,CAAA;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,gBAAgB,EAAE,CAAA;IAE5D,IAAI,MAAqC,CAAA;IAEzC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,IAAI,CAAC,MAAa,CAAA;IAC7B,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,MAAM,YAAY,CAAwB;YACjD,GAAG,IAAI;YACP,MAAM,EAAE;gBACN,GAAG,IAAI,CAAC,MAAM;gBAEd,qEAAqE;gBACrE,iBAAiB;gBACjB,KAAK,EAAE,SAAS;aACjB;YACD,SAAS;SACV,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC;QACzB,GAAG,IAAI;QACP,MAAM;QACN,SAAS;QACT,UAAU;QACV,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI;YACjC,gBAAgB,EAAE;YAClB,OAAO,EAAE;SACV;QACD,OAAO,EAAE;YACP,aAAa,CAAC,MAAM,CAAC;SACtB;KACF,CAAC,CAAA;IAEF,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,QAAQ,CAAE,GAAQ;IACzB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,8DAA8D;IAC9D,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,CAAC,CAAA;IAEvG,2DAA2D;IAC3D,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAA;AACvD,CAAC"}
@@ -3,7 +3,6 @@ import { type KadDHT } from '@libp2p/kad-dht';
3
3
  import { type Keychain } from '@libp2p/keychain';
4
4
  import { type PingService } from '@libp2p/ping';
5
5
  import type { Libp2pDefaultsOptions } from './libp2p.js';
6
- import type { PubSub } from '@libp2p/interface';
7
6
  import type { Libp2pOptions } from 'libp2p';
8
7
  export interface DefaultLibp2pServices extends Record<string, unknown> {
9
8
  autoNAT: unknown;
@@ -13,7 +12,6 @@ export interface DefaultLibp2pServices extends Record<string, unknown> {
13
12
  identify: Identify;
14
13
  keychain: Keychain;
15
14
  ping: PingService;
16
- pubsub: PubSub;
17
15
  }
18
16
  export declare function libp2pDefaults(options?: Libp2pDefaultsOptions): Libp2pOptions<DefaultLibp2pServices>;
19
17
  //# 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":"AAQA,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,KAAK,MAAM,EAAU,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE1D,OAAO,EAAQ,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AASrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAE3C,MAAM,WAAW,qBAAsB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,gBAAgB,EAAE,OAAO,CAAA;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,IAAI,EAAE,WAAW,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,cAAc,CAAE,OAAO,GAAE,qBAA0B,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAgDzG"}
1
+ {"version":3,"file":"libp2p-defaults.browser.d.ts","sourceRoot":"","sources":["../../../src/utils/libp2p-defaults.browser.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,KAAK,MAAM,EAAU,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE1D,OAAO,EAAQ,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AASrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAE3C,MAAM,WAAW,qBAAsB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,gBAAgB,EAAE,OAAO,CAAA;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,wBAAgB,cAAc,CAAE,OAAO,GAAE,qBAA0B,GAAG,aAAa,CAAC,qBAAqB,CAAC,CA+CzG"}
@@ -1,4 +1,3 @@
1
- import { gossipsub } from '@chainsafe/libp2p-gossipsub';
2
1
  import { noise } from '@chainsafe/libp2p-noise';
3
2
  import { yamux } from '@chainsafe/libp2p-yamux';
4
3
  import { createDelegatedRoutingV1HttpApiClient } from '@helia/delegated-routing-v1-http-api-client';
@@ -63,8 +62,7 @@ export function libp2pDefaults(options = {}) {
63
62
  agentVersion: `${name}/${version} ${libp2pInfo.name}/${libp2pInfo.version} UserAgent=${globalThis.navigator.userAgent}`
64
63
  }),
65
64
  keychain: keychain(options.keychain),
66
- ping: ping(),
67
- pubsub: gossipsub()
65
+ ping: ping()
68
66
  }
69
67
  };
70
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p-defaults.browser.js","sourceRoot":"","sources":["../../../src/utils/libp2p-defaults.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,qCAAqC,EAAE,MAAM,6CAA6C,CAAA;AACnG,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAiB,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAe,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAiB,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,IAAI,EAAoB,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,UAAU,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAgBpD,MAAM,UAAU,cAAc,CAAE,UAAiC,EAAE;IACjE,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE;YACT,MAAM,EAAE;gBACN,SAAS;aACV;SACF;QACD,UAAU,EAAE;YACV,qBAAqB,CAAC;gBACpB,cAAc,EAAE,CAAC;aAClB,CAAC;YACF,MAAM,EAAE;YACR,YAAY,EAAE;YACd,YAAY,EAAE;YACd,UAAU,EAAE;SACb;QACD,oBAAoB,EAAE;YACpB,KAAK,EAAE;SACR;QACD,YAAY,EAAE;YACZ,KAAK,EAAE;YACP,KAAK,EAAE;SACR;QACD,aAAa,EAAE;YACb,SAAS,CAAC,eAAe,CAAC;SAC3B;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,OAAO,EAAE;YAClB,KAAK,EAAE,KAAK,EAAE;YACd,gBAAgB,EAAE,GAAG,EAAE,CAAC,qCAAqC,CAAC,4BAA4B,CAAC;YAC3F,GAAG,EAAE,MAAM,CAAC;gBACV,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE;oBACV,IAAI,EAAE,aAAa;iBACpB;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,YAAY;iBACnB;aACF,CAAC;YACF,QAAQ,EAAE,QAAQ,CAAC;gBACjB,YAAY,EAAE,GAAG,IAAI,IAAI,OAAO,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,cAAc,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE;aACxH,CAAC;YACF,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;YACpC,IAAI,EAAE,IAAI,EAAE;YACZ,MAAM,EAAE,SAAS,EAAE;SACpB;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"libp2p-defaults.browser.js","sourceRoot":"","sources":["../../../src/utils/libp2p-defaults.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,qCAAqC,EAAE,MAAM,6CAA6C,CAAA;AACnG,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAiB,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAe,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAiB,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,IAAI,EAAoB,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,UAAU,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAcpD,MAAM,UAAU,cAAc,CAAE,UAAiC,EAAE;IACjE,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE;YACT,MAAM,EAAE;gBACN,SAAS;aACV;SACF;QACD,UAAU,EAAE;YACV,qBAAqB,CAAC;gBACpB,cAAc,EAAE,CAAC;aAClB,CAAC;YACF,MAAM,EAAE;YACR,YAAY,EAAE;YACd,YAAY,EAAE;YACd,UAAU,EAAE;SACb;QACD,oBAAoB,EAAE;YACpB,KAAK,EAAE;SACR;QACD,YAAY,EAAE;YACZ,KAAK,EAAE;YACP,KAAK,EAAE;SACR;QACD,aAAa,EAAE;YACb,SAAS,CAAC,eAAe,CAAC;SAC3B;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,OAAO,EAAE;YAClB,KAAK,EAAE,KAAK,EAAE;YACd,gBAAgB,EAAE,GAAG,EAAE,CAAC,qCAAqC,CAAC,4BAA4B,CAAC;YAC3F,GAAG,EAAE,MAAM,CAAC;gBACV,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE;oBACV,IAAI,EAAE,aAAa;iBACpB;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,YAAY;iBACnB;aACF,CAAC;YACF,QAAQ,EAAE,QAAQ,CAAC;gBACjB,YAAY,EAAE,GAAG,IAAI,IAAI,OAAO,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,cAAc,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE;aACxH,CAAC;YACF,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;YACpC,IAAI,EAAE,IAAI,EAAE;SACb;KACF,CAAA;AACH,CAAC"}
@@ -4,7 +4,6 @@ import { type KadDHT } from '@libp2p/kad-dht';
4
4
  import { type Keychain } from '@libp2p/keychain';
5
5
  import { type PingService } from '@libp2p/ping';
6
6
  import type { Libp2pDefaultsOptions } from './libp2p.js';
7
- import type { PubSub } from '@libp2p/interface';
8
7
  import type { Libp2pOptions } from 'libp2p';
9
8
  export interface DefaultLibp2pServices extends Record<string, unknown> {
10
9
  autoNAT: unknown;
@@ -14,7 +13,6 @@ export interface DefaultLibp2pServices extends Record<string, unknown> {
14
13
  identify: Identify;
15
14
  keychain: Keychain;
16
15
  ping: PingService;
17
- pubsub: PubSub;
18
16
  relay: CircuitRelayService;
19
17
  upnp: unknown;
20
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p-defaults.d.ts","sourceRoot":"","sources":["../../../src/utils/libp2p-defaults.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6C,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9G,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,KAAK,MAAM,EAAU,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAG1D,OAAO,EAAQ,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAUrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAE3C,MAAM,WAAW,qBAAsB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,gBAAgB,EAAE,OAAO,CAAA;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,IAAI,EAAE,WAAW,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,mBAAmB,CAAA;IAC1B,IAAI,EAAE,OAAO,CAAA;CACd;AAED,wBAAgB,cAAc,CAAE,OAAO,GAAE,qBAA0B,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAsDzG"}
1
+ {"version":3,"file":"libp2p-defaults.d.ts","sourceRoot":"","sources":["../../../src/utils/libp2p-defaults.ts"],"names":[],"mappings":"AAKA,OAAO,EAA6C,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9G,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,KAAK,MAAM,EAAU,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAG1D,OAAO,EAAQ,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAUrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAE3C,MAAM,WAAW,qBAAsB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,gBAAgB,EAAE,OAAO,CAAA;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,mBAAmB,CAAA;IAC1B,IAAI,EAAE,OAAO,CAAA;CACd;AAED,wBAAgB,cAAc,CAAE,OAAO,GAAE,qBAA0B,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAqDzG"}
@@ -1,4 +1,3 @@
1
- import { gossipsub } from '@chainsafe/libp2p-gossipsub';
2
1
  import { noise } from '@chainsafe/libp2p-noise';
3
2
  import { yamux } from '@chainsafe/libp2p-yamux';
4
3
  import { createDelegatedRoutingV1HttpApiClient } from '@helia/delegated-routing-v1-http-api-client';
@@ -68,7 +67,6 @@ export function libp2pDefaults(options = {}) {
68
67
  }),
69
68
  keychain: keychain(options.keychain),
70
69
  ping: ping(),
71
- pubsub: gossipsub(),
72
70
  relay: circuitRelayServer({
73
71
  advertise: true
74
72
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p-defaults.js","sourceRoot":"","sources":["../../../src/utils/libp2p-defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libp2p-defaults.js","sourceRoot":"","sources":["../../../src/utils/libp2p-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,qCAAqC,EAAE,MAAM,6CAA6C,CAAA;AACnG,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAA4B,MAAM,0BAA0B,CAAA;AAC9G,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAiB,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAe,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAiB,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,IAAI,EAAoB,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,UAAU,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAgBpD,MAAM,UAAU,cAAc,CAAE,UAAiC,EAAE;IACjE,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE;YACT,MAAM,EAAE;gBACN,oBAAoB;gBACpB,eAAe;gBACf,SAAS;aACV;SACF;QACD,UAAU,EAAE;YACV,qBAAqB,CAAC;gBACpB,cAAc,EAAE,CAAC;aAClB,CAAC;YACF,GAAG,EAAE;YACL,MAAM,EAAE;YACR,YAAY,EAAE;YACd,UAAU,EAAE;SACb;QACD,oBAAoB,EAAE;YACpB,KAAK,EAAE;SACR;QACD,YAAY,EAAE;YACZ,KAAK,EAAE;YACP,KAAK,EAAE;SACR;QACD,aAAa,EAAE;YACb,IAAI,EAAE;YACN,SAAS,CAAC,eAAe,CAAC;SAC3B;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,OAAO,EAAE;YAClB,KAAK,EAAE,KAAK,EAAE;YACd,gBAAgB,EAAE,GAAG,EAAE,CAAC,qCAAqC,CAAC,4BAA4B,CAAC;YAC3F,GAAG,EAAE,MAAM,CAAC;gBACV,UAAU,EAAE;oBACV,IAAI,EAAE,aAAa;iBACpB;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,YAAY;iBACnB;aACF,CAAC;YACF,QAAQ,EAAE,QAAQ,CAAC;gBACjB,YAAY,EAAE,GAAG,IAAI,IAAI,OAAO,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,cAAc,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE;aACpH,CAAC;YACF,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;YACpC,IAAI,EAAE,IAAI,EAAE;YACZ,KAAK,EAAE,kBAAkB,CAAC;gBACxB,SAAS,EAAE,IAAI;aAChB,CAAC;YACF,IAAI,EAAE,OAAO,EAAE;SAChB;KACF,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p.d.ts","sourceRoot":"","sources":["../../../src/utils/libp2p.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAE3C,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IACzB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AAED,wBAAsB,YAAY,CAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,qBAAqB,EAAG,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CA4BnJ"}
1
+ {"version":3,"file":"libp2p.d.ts","sourceRoot":"","sources":["../../../src/utils/libp2p.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAY,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAE3C,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IACzB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AAED,wBAAsB,YAAY,CAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,qBAAqB,EAAG,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAqCnJ"}
@@ -4,27 +4,35 @@ import { Key } from 'interface-datastore';
4
4
  import { createLibp2p as create } from 'libp2p';
5
5
  import { libp2pDefaults } from './libp2p-defaults.js';
6
6
  export async function createLibp2p(options) {
7
- let peerId = options.libp2p?.peerId;
7
+ const peerId = options.libp2p?.peerId;
8
8
  const logger = options.logger ?? defaultLogger();
9
+ const selfKey = new Key('/pkcs8/self');
10
+ let chain;
9
11
  // if no peer id was passed, try to load it from the keychain
10
- if (peerId == null) {
11
- const chain = keychain(options.keychain)({
12
+ if (peerId == null && options.datastore != null) {
13
+ chain = keychain(options.keychain)({
12
14
  datastore: options.datastore,
13
15
  logger
14
16
  });
15
- const selfKey = new Key('/pkcs8/self');
16
17
  if (await options.datastore.has(selfKey)) {
17
18
  // load the peer id from the keychain
18
- peerId = await chain.exportPeerId('self');
19
+ options.libp2p = options.libp2p ?? {};
20
+ options.libp2p.peerId = await chain.exportPeerId('self');
19
21
  }
20
22
  }
21
23
  const defaults = libp2pDefaults(options);
24
+ defaults.datastore = defaults.datastore ?? options.datastore;
22
25
  options = options ?? {};
23
26
  // @ts-expect-error derived ServiceMap is not compatible with ServiceFactoryMap
24
- return create({
27
+ const node = await create({
25
28
  ...defaults,
26
29
  ...options.libp2p,
27
30
  start: false
28
31
  });
32
+ if (peerId == null && chain != null && !await options.datastore.has(selfKey)) {
33
+ // persist the peer id in the keychain for next time
34
+ await chain.importPeer('self', node.peerId);
35
+ }
36
+ return node;
29
37
  }
30
38
  //# sourceMappingURL=libp2p.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p.js","sourceRoot":"","sources":["../../../src/utils/libp2p.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzC,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAoBrD,MAAM,CAAC,KAAK,UAAU,YAAY,CAA8D,OAA+B;IAC7H,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,CAAA;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,EAAE,CAAA;IAEhD,6DAA6D;IAC7D,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM;SACP,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAA;QAEtC,IAAI,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,qCAAqC;YACrC,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACxC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;IAEvB,+EAA+E;IAC/E,OAAO,MAAM,CAAC;QACZ,GAAG,QAAQ;QACX,GAAG,OAAO,CAAC,MAAM;QACjB,KAAK,EAAE,KAAK;KACb,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"libp2p.js","sourceRoot":"","sources":["../../../src/utils/libp2p.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzC,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAoBrD,MAAM,CAAC,KAAK,UAAU,YAAY,CAA8D,OAA+B;IAC7H,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,CAAA;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,EAAE,CAAA;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAA;IACtC,IAAI,KAA2B,CAAA;IAE/B,6DAA6D;IAC7D,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QAChD,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM;SACP,CAAC,CAAA;QAEF,IAAI,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,qCAAqC;YACrC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;YACrC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACxC,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAA;IAC5D,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;IAEvB,+EAA+E;IAC/E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC;QACxB,GAAG,QAAQ;QACX,GAAG,OAAO,CAAC,MAAM;QACjB,KAAK,EAAE,KAAK;KACb,CAAC,CAAA;IAEF,IAAI,MAAM,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7E,oDAAoD;QACpD,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,3 +1,3 @@
1
- export declare const version = "3.0.1";
1
+ export declare const version = "4.0.0-e554493";
2
2
  export declare const name = "helia";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAA;AAC9B,eAAO,MAAM,IAAI,UAAU,CAAA"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,kBAAkB,CAAA;AACtC,eAAO,MAAM,IAAI,UAAU,CAAA"}
@@ -1,3 +1,3 @@
1
- export const version = '3.0.1';
1
+ export const version = '4.0.0-e554493';
2
2
  export const name = 'helia';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA;AAC9B,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAA;AACtC,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "helia",
3
- "version": "3.0.1",
3
+ "version": "4.0.0-e554493",
4
4
  "description": "An implementation of IPFS in JavaScript",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/ipfs/helia/tree/main/packages/helia#readme",
@@ -54,15 +54,13 @@
54
54
  "prepublishOnly": "node scripts/update-version.js && npm run build"
55
55
  },
56
56
  "dependencies": {
57
- "@chainsafe/libp2p-gossipsub": "^11.0.0",
58
- "@chainsafe/libp2p-noise": "^14.0.0",
57
+ "@chainsafe/libp2p-noise": "^15.0.0",
59
58
  "@chainsafe/libp2p-yamux": "^6.0.1",
60
- "@helia/block-brokers": "~1.0.0",
61
- "@helia/delegated-routing-v1-http-api-client": "^1.1.0",
62
- "@helia/interface": "^3.0.1",
63
- "@ipld/dag-cbor": "^9.0.0",
64
- "@ipld/dag-json": "^10.0.1",
65
- "@ipld/dag-pb": "^4.0.3",
59
+ "@helia/block-brokers": "2.0.0-e554493",
60
+ "@helia/delegated-routing-v1-http-api-client": "^3.0.0",
61
+ "@helia/interface": "4.0.0-e554493",
62
+ "@helia/routers": "1.0.0-e554493",
63
+ "@helia/utils": "0.0.1-e554493",
66
64
  "@libp2p/autonat": "^1.0.1",
67
65
  "@libp2p/bootstrap": "^10.0.2",
68
66
  "@libp2p/circuit-relay-v2": "^1.0.2",
@@ -77,31 +75,23 @@
77
75
  "@libp2p/ping": "^1.0.1",
78
76
  "@libp2p/tcp": "^9.0.2",
79
77
  "@libp2p/upnp-nat": "^1.0.1",
80
- "@libp2p/utils": "^5.2.0",
81
78
  "@libp2p/webrtc": "^4.0.3",
82
- "@libp2p/websockets": "^8.0.2",
79
+ "@libp2p/websockets": "^8.0.10",
83
80
  "@libp2p/webtransport": "^4.0.3",
84
- "blockstore-core": "^4.0.0",
85
- "cborg": "^4.0.3",
86
- "datastore-core": "^9.0.0",
81
+ "blockstore-core": "^4.3.8",
82
+ "datastore-core": "^9.2.6",
87
83
  "interface-blockstore": "^5.2.7",
88
- "interface-datastore": "^8.2.2",
89
- "interface-store": "^5.1.5",
90
- "ipns": "^8.0.0",
91
- "it-drain": "^3.0.5",
92
- "libp2p": "^1.0.3",
93
- "mortice": "^3.0.1",
94
- "multiformats": "^13.0.0",
95
- "progress-events": "^1.0.0",
96
- "uint8arrays": "^5.0.1"
84
+ "interface-datastore": "^8.2.9",
85
+ "ipns": "^9.0.0",
86
+ "libp2p": "^1.1.1",
87
+ "multiformats": "^13.0.0"
97
88
  },
98
89
  "devDependencies": {
99
90
  "@multiformats/mafmt": "^12.1.5",
100
- "@multiformats/multiaddr": "^12.1.7",
101
- "@types/sinon": "^17.0.2",
91
+ "@multiformats/multiaddr": "^12.1.12",
102
92
  "aegir": "^42.1.0",
103
- "delay": "^6.0.0",
104
- "it-all": "^3.0.4"
93
+ "it-all": "^3.0.4",
94
+ "it-drain": "^3.0.5"
105
95
  },
106
96
  "browser": {
107
97
  "./dist/src/utils/libp2p-defaults.js": "./dist/src/utils/libp2p-defaults.browser.js"
@@ -0,0 +1,37 @@
1
+ import { Helia, type HeliaInit } from '@helia/utils'
2
+ import type { BlockBroker } from './index.js'
3
+ import type { Libp2p } from '@libp2p/interface'
4
+ import type { Blockstore } from 'interface-blockstore'
5
+ import type { Datastore } from 'interface-datastore'
6
+
7
+ export interface HeliaP2PInit<T extends Libp2p = Libp2p> extends HeliaInit {
8
+ libp2p: T
9
+ blockstore: Blockstore
10
+ datastore: Datastore
11
+ blockBrokers: Array<(components: any) => BlockBroker>
12
+ }
13
+
14
+ export class HeliaP2P<T extends Libp2p> extends Helia {
15
+ public libp2p: T
16
+
17
+ constructor (init: HeliaP2PInit<T>) {
18
+ super({
19
+ ...init,
20
+ components: {
21
+ libp2p: init.libp2p
22
+ }
23
+ })
24
+
25
+ this.libp2p = init.libp2p
26
+ }
27
+
28
+ async start (): Promise<void> {
29
+ await super.start()
30
+ await this.libp2p.start()
31
+ }
32
+
33
+ async stop (): Promise<void> {
34
+ await super.stop()
35
+ await this.libp2p.stop()
36
+ }
37
+ }
package/src/index.ts CHANGED
@@ -19,9 +19,11 @@
19
19
  * ```
20
20
  */
21
21
 
22
+ import { bitswap, trustlessGateway } from '@helia/block-brokers'
23
+ import { libp2pRouting } from '@helia/routers'
22
24
  import { MemoryBlockstore } from 'blockstore-core'
23
25
  import { MemoryDatastore } from 'datastore-core'
24
- import { HeliaImpl } from './helia.js'
26
+ import { HeliaP2P } from './helia-p2p.js'
25
27
  import { libp2pDefaults } from './utils/libp2p-defaults.js'
26
28
  import { createLibp2p } from './utils/libp2p.js'
27
29
  import type { DefaultLibp2pServices } from './utils/libp2p-defaults.js'
@@ -38,8 +40,6 @@ import type { MultihashHasher } from 'multiformats/hashes/interface'
38
40
  // re-export interface types so people don't have to depend on @helia/interface
39
41
  // if they don't want to
40
42
  export * from '@helia/interface'
41
- export * from '@helia/interface/blocks'
42
- export * from '@helia/interface/pins'
43
43
 
44
44
  export type { DefaultLibp2pServices }
45
45
  export { libp2pDefaults }
@@ -64,8 +64,11 @@ export interface HeliaInit<T extends Libp2p = Libp2p> {
64
64
  * If node options are passed, they will be merged with the default
65
65
  * config for the current platform. In this case all passed config
66
66
  * keys will replace those from the default config.
67
+ *
68
+ * The libp2p `start` option is not supported, instead please pass `start` in
69
+ * the root of the HeliaInit object.
67
70
  */
68
- libp2p?: T | Libp2pOptions
71
+ libp2p?: T | Omit<Libp2pOptions, 'start'>
69
72
 
70
73
  /**
71
74
  * The blockstore is where blocks are stored
@@ -132,12 +135,16 @@ export interface HeliaInit<T extends Libp2p = Libp2p> {
132
135
  keychain?: KeychainInit
133
136
  }
134
137
 
138
+ export interface HeliaLibp2p<T extends Libp2p = Libp2p<DefaultLibp2pServices>> extends Helia {
139
+ libp2p: T
140
+ }
141
+
135
142
  /**
136
143
  * Create and return a Helia node
137
144
  */
138
- export async function createHelia <T extends Libp2p> (init: HeliaInit<T>): Promise<Helia<T>>
139
- export async function createHelia (init?: HeliaInit<Libp2p<DefaultLibp2pServices>>): Promise<Helia<Libp2p<DefaultLibp2pServices>>>
140
- export async function createHelia (init: HeliaInit = {}): Promise<Helia<unknown>> {
145
+ export async function createHelia <T extends Libp2p> (init: HeliaInit<T>): Promise<HeliaLibp2p<T>>
146
+ export async function createHelia (init?: HeliaInit<Libp2p<DefaultLibp2pServices>>): Promise<HeliaLibp2p<Libp2p<DefaultLibp2pServices>>>
147
+ export async function createHelia (init: HeliaInit = {}): Promise<HeliaLibp2p> {
141
148
  const datastore = init.datastore ?? new MemoryDatastore()
142
149
  const blockstore = init.blockstore ?? new MemoryBlockstore()
143
150
 
@@ -148,16 +155,29 @@ export async function createHelia (init: HeliaInit = {}): Promise<Helia<unknown>
148
155
  } else {
149
156
  libp2p = await createLibp2p<DefaultLibp2pServices>({
150
157
  ...init,
151
- libp2p: init.libp2p,
158
+ libp2p: {
159
+ ...init.libp2p,
160
+
161
+ // ignore the libp2p start parameter as it should be on the main init
162
+ // object instead
163
+ start: undefined
164
+ },
152
165
  datastore
153
166
  })
154
167
  }
155
168
 
156
- const helia = new HeliaImpl({
169
+ const helia = new HeliaP2P({
157
170
  ...init,
158
171
  libp2p,
159
172
  datastore,
160
- blockstore
173
+ blockstore,
174
+ blockBrokers: init.blockBrokers ?? [
175
+ trustlessGateway(),
176
+ bitswap()
177
+ ],
178
+ routers: [
179
+ libp2pRouting(libp2p)
180
+ ]
161
181
  })
162
182
 
163
183
  if (init.start !== false) {
@@ -1,4 +1,3 @@
1
- import { gossipsub } from '@chainsafe/libp2p-gossipsub'
2
1
  import { noise } from '@chainsafe/libp2p-noise'
3
2
  import { yamux } from '@chainsafe/libp2p-yamux'
4
3
  import { createDelegatedRoutingV1HttpApiClient } from '@helia/delegated-routing-v1-http-api-client'
@@ -20,7 +19,6 @@ import * as libp2pInfo from 'libp2p/version'
20
19
  import { name, version } from '../version.js'
21
20
  import { bootstrapConfig } from './bootstrappers.js'
22
21
  import type { Libp2pDefaultsOptions } from './libp2p.js'
23
- import type { PubSub } from '@libp2p/interface'
24
22
  import type { Libp2pOptions } from 'libp2p'
25
23
 
26
24
  export interface DefaultLibp2pServices extends Record<string, unknown> {
@@ -31,7 +29,6 @@ export interface DefaultLibp2pServices extends Record<string, unknown> {
31
29
  identify: Identify
32
30
  keychain: Keychain
33
31
  ping: PingService
34
- pubsub: PubSub
35
32
  }
36
33
 
37
34
  export function libp2pDefaults (options: Libp2pDefaultsOptions = {}): Libp2pOptions<DefaultLibp2pServices> {
@@ -78,8 +75,7 @@ export function libp2pDefaults (options: Libp2pDefaultsOptions = {}): Libp2pOpti
78
75
  agentVersion: `${name}/${version} ${libp2pInfo.name}/${libp2pInfo.version} UserAgent=${globalThis.navigator.userAgent}`
79
76
  }),
80
77
  keychain: keychain(options.keychain),
81
- ping: ping(),
82
- pubsub: gossipsub()
78
+ ping: ping()
83
79
  }
84
80
  }
85
81
  }
@@ -1,4 +1,3 @@
1
- import { gossipsub } from '@chainsafe/libp2p-gossipsub'
2
1
  import { noise } from '@chainsafe/libp2p-noise'
3
2
  import { yamux } from '@chainsafe/libp2p-yamux'
4
3
  import { createDelegatedRoutingV1HttpApiClient } from '@helia/delegated-routing-v1-http-api-client'
@@ -22,7 +21,6 @@ import * as libp2pInfo from 'libp2p/version'
22
21
  import { name, version } from '../version.js'
23
22
  import { bootstrapConfig } from './bootstrappers.js'
24
23
  import type { Libp2pDefaultsOptions } from './libp2p.js'
25
- import type { PubSub } from '@libp2p/interface'
26
24
  import type { Libp2pOptions } from 'libp2p'
27
25
 
28
26
  export interface DefaultLibp2pServices extends Record<string, unknown> {
@@ -33,7 +31,6 @@ export interface DefaultLibp2pServices extends Record<string, unknown> {
33
31
  identify: Identify
34
32
  keychain: Keychain
35
33
  ping: PingService
36
- pubsub: PubSub
37
34
  relay: CircuitRelayService
38
35
  upnp: unknown
39
36
  }
@@ -85,7 +82,6 @@ export function libp2pDefaults (options: Libp2pDefaultsOptions = {}): Libp2pOpti
85
82
  }),
86
83
  keychain: keychain(options.keychain),
87
84
  ping: ping(),
88
- pubsub: gossipsub(),
89
85
  relay: circuitRelayServer({
90
86
  advertise: true
91
87
  }),