peerbit 4.0.7 → 4.0.8-2bc15a6

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 (43) hide show
  1. package/dist/benchmark/start-stop.d.ts +2 -0
  2. package/dist/benchmark/start-stop.d.ts.map +1 -0
  3. package/dist/benchmark/start-stop.js +20 -0
  4. package/dist/benchmark/start-stop.js.map +1 -0
  5. package/{lib/esm → dist/src}/bootstrap.d.ts +1 -0
  6. package/dist/src/bootstrap.d.ts.map +1 -0
  7. package/{lib/esm → dist/src}/index.d.ts +2 -1
  8. package/dist/src/index.d.ts.map +1 -0
  9. package/dist/src/index.js +3 -0
  10. package/{lib/esm → dist/src}/index.js.map +1 -1
  11. package/dist/src/libp2p.d.ts +27 -0
  12. package/dist/src/libp2p.d.ts.map +1 -0
  13. package/{lib/esm → dist/src}/libp2p.js +23 -22
  14. package/dist/src/libp2p.js.map +1 -0
  15. package/{lib/esm → dist/src}/peer.d.ts +12 -8
  16. package/dist/src/peer.d.ts.map +1 -0
  17. package/{lib/esm → dist/src}/peer.js +38 -23
  18. package/dist/src/peer.js.map +1 -0
  19. package/{lib/esm/transports-browser.d.ts → dist/src/transports.browser.d.ts} +2 -1
  20. package/dist/src/transports.browser.d.ts.map +1 -0
  21. package/{lib/esm/transports-browser.js → dist/src/transports.browser.js} +5 -4
  22. package/dist/src/transports.browser.js.map +1 -0
  23. package/{lib/esm → dist/src}/transports.d.ts +1 -0
  24. package/dist/src/transports.d.ts.map +1 -0
  25. package/dist/src/transports.js +21 -0
  26. package/dist/src/transports.js.map +1 -0
  27. package/package.json +108 -77
  28. package/src/bootstrap.ts +2 -2
  29. package/src/index.ts +1 -1
  30. package/src/libp2p.ts +39 -29
  31. package/src/peer.ts +72 -48
  32. package/src/{transports-browser.ts → transports.browser.ts} +5 -4
  33. package/src/transports.ts +15 -7
  34. package/LICENSE +0 -202
  35. package/lib/esm/index.js +0 -3
  36. package/lib/esm/libp2p.d.ts +0 -22
  37. package/lib/esm/libp2p.js.map +0 -1
  38. package/lib/esm/peer.js.map +0 -1
  39. package/lib/esm/transports-browser.js.map +0 -1
  40. package/lib/esm/transports.js +0 -16
  41. package/lib/esm/transports.js.map +0 -1
  42. /package/{lib/esm → dist/src}/bootstrap.js +0 -0
  43. /package/{lib/esm → dist/src}/bootstrap.js.map +0 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=start-stop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-stop.d.ts","sourceRoot":"","sources":["../../benchmark/start-stop.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import B from "benchmark";
2
+ import { Peerbit } from "../src/peer.js";
3
+ // Run with "node --loader ts-node/esm ./benchmark/start-stop.ts"
4
+ // start and stop x 91.15 ops/sec ±0.95% (87 runs sampled)
5
+ const suite = new B.Suite();
6
+ suite
7
+ .add("start and stop", {
8
+ fn: async (deferred) => {
9
+ const node = await Peerbit.create();
10
+ await node.start();
11
+ await node.stop();
12
+ deferred.resolve();
13
+ },
14
+ defer: true,
15
+ })
16
+ .on("cycle", (event) => {
17
+ console.log(String(event.target));
18
+ })
19
+ .run({ async: true });
20
+ //# sourceMappingURL=start-stop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-stop.js","sourceRoot":"","sources":["../../benchmark/start-stop.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,WAAW,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,iEAAiE;AAEjE,0DAA0D;AAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AAC5B,KAAK;KACH,GAAG,CAAC,gBAAgB,EAAE;IACtB,EAAE,EAAE,KAAK,EAAE,QAAa,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,QAAQ,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;IACD,KAAK,EAAE,IAAI;CACX,CAAC;KACD,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;IAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC;KACD,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC"}
@@ -1 +1,2 @@
1
1
  export declare const resolveBootstrapAddresses: (v?: string) => Promise<string[]>;
2
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,OAClC,MAAM,KACP,OAAO,CAAC,MAAM,EAAE,CAWlB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from "./peer.js";
2
- export { createLibp2pExtended, type Libp2pExtendServices, type Libp2pExtended, type Libp2pCreateOptions, type Libp2pCreateOptionsWithServices } from "./libp2p.js";
2
+ export { createLibp2pExtended, type Libp2pExtendServices, type Libp2pExtended, type Libp2pCreateOptions, type Libp2pCreateOptionsWithServices, } from "./libp2p.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EACN,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,GACpC,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./peer.js";
2
+ export { createLibp2pExtended, } from "./libp2p.js";
3
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EACN,oBAAoB,EAKpB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EACN,oBAAoB,GAKpB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { CircuitRelayService } from "@libp2p/circuit-relay-v2";
2
+ import { DirectBlock } from "@peerbit/blocks";
3
+ import { type Keychain } from "@peerbit/keychain";
4
+ import { DirectSub } from "@peerbit/pubsub";
5
+ import { type Libp2p, type Libp2pOptions, type ServiceFactoryMap } from "libp2p";
6
+ export type Libp2pExtendServices = {
7
+ pubsub: DirectSub;
8
+ blocks: DirectBlock;
9
+ keychain: Keychain;
10
+ };
11
+ export type Libp2pExtended = Libp2p<{
12
+ relay: CircuitRelayService;
13
+ identify: any;
14
+ } & Libp2pExtendServices>;
15
+ export type Libp2pCreateOptions = Libp2pOptions<Partial<Libp2pExtendServices & {
16
+ relay: CircuitRelayService;
17
+ identify: any;
18
+ }>>;
19
+ export type PartialLibp2pCreateOptions = Libp2pOptions<Partial<Libp2pExtendServices & {
20
+ relay: CircuitRelayService;
21
+ identify: any;
22
+ }>>;
23
+ export type Libp2pCreateOptionsWithServices = Libp2pCreateOptions & {
24
+ services: ServiceFactoryMap<Libp2pExtendServices>;
25
+ };
26
+ export declare const createLibp2pExtended: (opts?: PartialLibp2pCreateOptions) => Promise<Libp2pExtended>;
27
+ //# sourceMappingURL=libp2p.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libp2p.d.ts","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACN,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEtB,MAAM,QAAQ,CAAC;AAGhB,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,MAAM,CAClC;IAAE,KAAK,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,GAAG,oBAAoB,CACpE,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAC9C,OAAO,CAAC,oBAAoB,GAAG;IAAE,KAAK,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,CAAC,CAC7E,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,aAAa,CACrD,OAAO,CAAC,oBAAoB,GAAG;IAAE,KAAK,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,CAAC,CAC7E,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,mBAAmB,GAAG;IACnE,QAAQ,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;CAClD,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAC1B,0BAA0B,KAO9B,OAAO,CAAC,cAAc,CA0CxB,CAAC"}
@@ -1,53 +1,54 @@
1
- import { createLibp2p } from "libp2p";
2
- import { DirectSub } from "@peerbit/pubsub";
3
- import { DirectBlock } from "@peerbit/blocks";
1
+ import { yamux } from "@chainsafe/libp2p-yamux";
4
2
  import { noise } from "@dao-xyz/libp2p-noise";
5
- import { transports, relay, listen } from "./transports.js";
6
3
  import { identify } from "@libp2p/identify";
7
- import { yamux } from "@chainsafe/libp2p-yamux";
4
+ import { DirectBlock } from "@peerbit/blocks";
8
5
  import { DefaultKeychain } from "@peerbit/keychain";
6
+ import { DirectSub } from "@peerbit/pubsub";
7
+ import { createLibp2p, } from "libp2p";
8
+ import { listen, relay, transports } from "./transports.js";
9
9
  export const createLibp2pExtended = (opts = {
10
10
  services: {
11
11
  blocks: (c) => new DirectBlock(c),
12
12
  pubsub: (c) => new DirectSub(c),
13
- keychain: (c) => new DefaultKeychain()
14
- }
13
+ keychain: () => new DefaultKeychain(),
14
+ },
15
15
  }) => {
16
- const relayIdentify = {
17
- relay: relay(),
18
- identify: identify()
19
- };
20
- // https://github.com/libp2p/js-libp2p/issues/1757
21
- Object.keys(relayIdentify).forEach((key) => {
22
- if (relayIdentify[key] === undefined) {
23
- delete relayIdentify[key];
16
+ let extraServices = {};
17
+ if (!opts.services?.["relay"]) {
18
+ const relayComponent = relay();
19
+ if (relayComponent) {
20
+ // will be null in browser
21
+ extraServices["relay"] = relayComponent;
24
22
  }
25
- });
23
+ }
24
+ if (!opts.services?.["identify"]) {
25
+ extraServices["identify"] = identify();
26
+ }
26
27
  return createLibp2p({
27
28
  ...opts,
28
29
  connectionManager: {
29
30
  minConnections: 0,
30
- ...opts.connectionManager
31
+ ...opts.connectionManager,
31
32
  },
32
33
  addresses: {
33
34
  listen: listen(),
34
- ...opts.addresses
35
+ ...opts.addresses,
35
36
  },
36
37
  transports: opts.transports || transports(),
37
38
  connectionEncryption: opts.connectionEncryption || [noise()],
38
39
  streamMuxers: opts.streamMuxers || [yamux()],
39
40
  services: {
40
- ...relayIdentify,
41
41
  pubsub: opts.services?.pubsub ||
42
42
  ((c) => new DirectSub(c, {
43
- canRelayMessage: true
43
+ canRelayMessage: true,
44
44
  // auto dial true
45
45
  // auto prune true
46
46
  })),
47
47
  blocks: opts.services?.blocks || ((c) => new DirectBlock(c)),
48
48
  keychain: opts.services?.keychain || ((c) => new DefaultKeychain()),
49
- ...opts.services
50
- }
49
+ ...opts.services,
50
+ ...extraServices,
51
+ },
51
52
  });
52
53
  };
53
54
  //# sourceMappingURL=libp2p.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libp2p.js","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAIN,YAAY,GACZ,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAuB5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,OAAmC;IAClC,QAAQ,EAAE;QACT,MAAM,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC;QACtC,MAAM,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;QACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,eAAe,EAAE;KACrC;CACD,EACyB,EAAE;IAC5B,IAAI,aAAa,GAAQ,EAAE,CAAC;IAE5B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,KAAK,EAAE,CAAC;QAC/B,IAAI,cAAc,EAAE,CAAC;YACpB,0BAA0B;YAC1B,aAAa,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC;QACzC,CAAC;IACF,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,aAAa,CAAC,UAAU,CAAC,GAAG,QAAQ,EAAE,CAAC;IACxC,CAAC;IAED,OAAO,YAAY,CAAC;QACnB,GAAG,IAAI;QACP,iBAAiB,EAAE;YAClB,cAAc,EAAE,CAAC;YACjB,GAAG,IAAI,CAAC,iBAAiB;SACzB;QACD,SAAS,EAAE;YACV,MAAM,EAAE,MAAM,EAAE;YAChB,GAAG,IAAI,CAAC,SAAS;SACjB;QACD,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,UAAU,EAAE;QAC3C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5D,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5C,QAAQ,EAAE;YACT,MAAM,EACL,IAAI,CAAC,QAAQ,EAAE,MAAM;gBACrB,CAAC,CAAC,CAAC,EAAE,EAAE,CACN,IAAI,SAAS,CAAC,CAAC,EAAE;oBAChB,eAAe,EAAE,IAAI;oBACrB,iBAAiB;oBACjB,kBAAkB;iBAClB,CAAC,CAAC;YACL,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5D,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC;YACnE,GAAG,IAAI,CAAC,QAAQ;YAChB,GAAG,aAAa;SAChB;KACD,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -1,11 +1,10 @@
1
- import { AnyStore } from "../../../utils/any-store/lib/esm/index.js";
2
- import { Multiaddr } from "@multiformats/multiaddr";
3
- import { Ed25519Keypair } from "@peerbit/crypto";
4
- import { Program, Address, ProgramClient, ProgramHandler } from "@peerbit/program";
5
1
  import "@libp2p/peer-id";
6
- import { Libp2pExtended, Libp2pCreateOptions as ClientCreateOptions } from "./libp2p.js";
7
- import { OpenOptions } from "@peerbit/program";
8
- import { ExtractArgs } from "@peerbit/program";
2
+ import { type Multiaddr } from "@multiformats/multiaddr";
3
+ import { type AnyStore } from "@peerbit/any-store";
4
+ import { Ed25519Keypair } from "@peerbit/crypto";
5
+ import type { Indices } from "@peerbit/indexer-interface";
6
+ import { type Address, type ExtractArgs, type OpenOptions, type Program, type ProgramClient, ProgramHandler } from "@peerbit/program";
7
+ import { type Libp2pExtended, type PartialLibp2pCreateOptions } from "./libp2p.js";
9
8
  export declare const logger: import("pino").Logger<never>;
10
9
  export type OptionalCreateOptions = {
11
10
  libp2pExternal?: boolean;
@@ -13,21 +12,24 @@ export type OptionalCreateOptions = {
13
12
  export type CreateOptions = {
14
13
  directory?: string;
15
14
  storage: AnyStore;
15
+ indexer: Indices;
16
16
  identity: Ed25519Keypair;
17
17
  } & OptionalCreateOptions;
18
18
  type Libp2pOptions = {
19
- libp2p?: Libp2pExtended | ClientCreateOptions;
19
+ libp2p?: Libp2pExtended | PartialLibp2pCreateOptions;
20
20
  };
21
21
  type SimpleLibp2pOptions = {
22
22
  relay?: boolean;
23
23
  };
24
24
  export type CreateInstanceOptions = (SimpleLibp2pOptions | Libp2pOptions) & {
25
25
  directory?: string;
26
+ indexer?: (directory?: string) => Promise<Indices> | Indices;
26
27
  } & OptionalCreateOptions;
27
28
  export declare class Peerbit implements ProgramClient {
28
29
  _libp2p: Libp2pExtended;
29
30
  directory?: string;
30
31
  private _storage;
32
+ private _indexer;
31
33
  private _libp2pExternal?;
32
34
  private _identity;
33
35
  private _handler;
@@ -58,5 +60,7 @@ export declare class Peerbit implements ProgramClient {
58
60
  */
59
61
  open<S extends Program<ExtractArgs<S>>>(storeOrAddress: S | Address | string, options?: OpenOptions<S>): Promise<S>;
60
62
  get storage(): AnyStore;
63
+ get indexer(): Indices;
61
64
  }
62
65
  export {};
66
+ //# sourceMappingURL=peer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../src/peer.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AACzB,OAAO,EACN,KAAK,SAAS,EAGd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,QAAQ,EAAe,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAoB,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAI1D,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,cAAc,EACd,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAEN,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAE/B,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,MAAM,8BAAiC,CAAC;AAErD,MAAM,MAAM,qBAAqB,GAAG;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,QAAQ,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;CACzB,GAAG,qBAAqB,CAAC;AAC1B,KAAK,aAAa,GAAG;IAAE,MAAM,CAAC,EAAE,cAAc,GAAG,0BAA0B,CAAA;CAAE,CAAC;AAC9E,KAAK,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAC/C,MAAM,MAAM,qBAAqB,GAAG,CAAC,mBAAmB,GAAG,aAAa,CAAC,GAAG;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAC7D,GAAG,qBAAqB,CAAC;AAqB1B,qBAAa,OAAQ,YAAW,aAAa;IAC5C,OAAO,EAAE,cAAc,CAAC;IAExB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,eAAe,CAAC,CAAkB;IAG1C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAiB;gBAErB,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa;WAuB7C,MAAM,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,OAAO,CAAC;IAiH1E,IAAI,MAAM,IAAI,cAAc,CAE3B;IAED,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED,IAAI,MAAM,uCAET;IAED,IAAI,QAAQ;;;mDAEX;IAED,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED,aAAa,IAAI,SAAS,EAAE;IAG5B;;OAEG;IACG,IAAI,CACT,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,aAAa,GACvD,OAAO,CAAC,OAAO,CAAC;IAoBb,KAAK;IASL,IAAI;IAYJ,SAAS;IA0Bf;;;;;;OAMG;IAEG,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAC3C,cAAc,EAAE,CAAC,GAAG,OAAO,GAAG,MAAM,EACpC,OAAO,GAAE,WAAW,CAAC,CAAC,CAAM,GAC1B,OAAO,CAAC,CAAC,CAAC;IAMb,IAAI,OAAO,aAEV;IAED,IAAI,OAAO,YAEV;CACD"}
@@ -1,18 +1,19 @@
1
- import { multiaddr, isMultiaddr } from "@multiformats/multiaddr";
1
+ import "@libp2p/peer-id";
2
+ import { isMultiaddr, multiaddr, } from "@multiformats/multiaddr";
3
+ import { createStore } from "@peerbit/any-store";
4
+ import { DirectBlock } from "@peerbit/blocks";
2
5
  import { Ed25519Keypair, Ed25519PublicKey } from "@peerbit/crypto";
3
- import { ProgramHandler } from "@peerbit/program";
6
+ import { create as createSQLiteIndexer } from "@peerbit/indexer-sqlite3";
7
+ import { DefaultKeychain } from "@peerbit/keychain";
8
+ import { logger as loggerFn } from "@peerbit/logger";
9
+ import { ProgramHandler, } from "@peerbit/program";
4
10
  import { DirectSub } from "@peerbit/pubsub";
5
- import sodium from "libsodium-wrappers";
6
- import path from "path-browserify";
7
11
  import { waitFor } from "@peerbit/time";
8
- import "@libp2p/peer-id";
9
- import { createLibp2pExtended } from "./libp2p.js";
10
- import { DirectBlock } from "@peerbit/blocks";
11
12
  import { LevelDatastore } from "datastore-level";
12
- import { logger as loggerFn } from "@peerbit/logger";
13
+ import sodium from "libsodium-wrappers";
14
+ import path from "path-browserify";
13
15
  import { resolveBootstrapAddresses } from "./bootstrap.js";
14
- import { createStore } from "@peerbit/any-store";
15
- import { DefaultKeychain } from "@peerbit/keychain";
16
+ import { createLibp2pExtended, } from "./libp2p.js";
16
17
  export const logger = loggerFn({ module: "client" });
17
18
  const isLibp2pInstance = (libp2p) => !!libp2p.getMultiaddrs;
18
19
  const createCache = async (directory, options) => {
@@ -30,6 +31,7 @@ export class Peerbit {
30
31
  _libp2p;
31
32
  directory;
32
33
  _storage;
34
+ _indexer;
33
35
  _libp2pExternal = false;
34
36
  // Libp2p peerid in Identity form
35
37
  _identity;
@@ -50,6 +52,7 @@ export class Peerbit {
50
52
  this.directory = options.directory;
51
53
  this._storage = options.storage;
52
54
  this._libp2pExternal = options.libp2pExternal;
55
+ this._indexer = options.indexer;
53
56
  }
54
57
  static async create(options = {}) {
55
58
  await sodium.ready; // Some of the modules depends on sodium to be readyy
@@ -59,14 +62,18 @@ export class Peerbit {
59
62
  const directory = options.directory;
60
63
  const hasDir = directory != null;
61
64
  const storage = await createCache(directory != null ? path.join(directory, "/cache") : undefined);
65
+ const indexerFn = options.indexer || createSQLiteIndexer;
66
+ const indexer = directory != null
67
+ ? await indexerFn(path.join(directory, "/index"))
68
+ : await indexerFn();
62
69
  const blocksDirectory = hasDir
63
- ? path.join(options["directory"], "/blocks").toString()
70
+ ? path.join(directory, "/blocks").toString()
64
71
  : undefined;
65
72
  const keychainDirectory = hasDir
66
- ? path.join(options["directory"], "/keychain").toString()
73
+ ? path.join(directory, "/keychain").toString()
67
74
  : undefined;
68
75
  const datastore = hasDir
69
- ? new LevelDatastore(path.join(options["directory"], "/libp2p").toString())
76
+ ? new LevelDatastore(path.join(directory, "/libp2p").toString())
70
77
  : undefined;
71
78
  if (datastore) {
72
79
  await datastore.open();
@@ -74,8 +81,10 @@ export class Peerbit {
74
81
  const libp2pExternal = libp2pExtended && isLibp2pInstance(libp2pExtended);
75
82
  if (!libp2pExternal) {
76
83
  const extendedOptions = libp2pExtended;
84
+ const store = createStore(keychainDirectory);
85
+ await store.open();
77
86
  const keychain = new DefaultKeychain({
78
- store: createStore(keychainDirectory)
87
+ store,
79
88
  });
80
89
  const peerId = extendedOptions?.peerId ||
81
90
  (await (await keychain.exportById(SELF_IDENTITY_KEY_ID, Ed25519Keypair))?.toPeerId());
@@ -86,12 +95,12 @@ export class Peerbit {
86
95
  keychain: (c) => keychain,
87
96
  blocks: (c) => new DirectBlock(c, {
88
97
  canRelayMessage: asRelay,
89
- directory: blocksDirectory
98
+ directory: blocksDirectory,
90
99
  }),
91
100
  pubsub: (c) => new DirectSub(c, { canRelayMessage: asRelay }),
92
- ...extendedOptions?.services
93
- },
94
- datastore
101
+ ...extendedOptions?.services,
102
+ }, // TODO types are funky
103
+ datastore,
95
104
  });
96
105
  }
97
106
  if (datastore) {
@@ -113,11 +122,11 @@ export class Peerbit {
113
122
  try {
114
123
  await libp2pExtended.services.keychain.import({
115
124
  keypair: identity,
116
- id: SELF_IDENTITY_KEY_ID
125
+ id: SELF_IDENTITY_KEY_ID,
117
126
  });
118
127
  }
119
128
  catch (error) {
120
- if (error.code == "ERR_KEY_ALREADY_EXISTS") {
129
+ if (error.code === "ERR_KEY_ALREADY_EXISTS") {
121
130
  // Do nothing
122
131
  }
123
132
  else {
@@ -126,9 +135,10 @@ export class Peerbit {
126
135
  }
127
136
  const peer = new Peerbit(libp2pExtended, {
128
137
  directory,
129
- storage: storage,
138
+ storage,
130
139
  libp2pExternal,
131
- identity
140
+ identity,
141
+ indexer,
132
142
  });
133
143
  return peer;
134
144
  }
@@ -154,7 +164,7 @@ export class Peerbit {
154
164
  * Dial a peer with an Ed25519 peerId
155
165
  */
156
166
  async dial(address) {
157
- const maddress = typeof address == "string"
167
+ const maddress = typeof address === "string"
158
168
  ? multiaddr(address)
159
169
  : isMultiaddr(address) || Array.isArray(address)
160
170
  ? address
@@ -167,6 +177,7 @@ export class Peerbit {
167
177
  }
168
178
  async start() {
169
179
  await this._storage.open();
180
+ await this.indexer.start();
170
181
  if (this.libp2p.status === "stopped" || this.libp2p.status === "stopping") {
171
182
  this._libp2pExternal = false; // this means we will also close libp2p client on close
172
183
  return this.libp2p.start();
@@ -175,6 +186,7 @@ export class Peerbit {
175
186
  async stop() {
176
187
  await this._handler?.stop();
177
188
  await this._storage.close();
189
+ await this.indexer.stop();
178
190
  // Close libp2p (after above)
179
191
  if (!this._libp2pExternal) {
180
192
  // only close it if we created it
@@ -216,5 +228,8 @@ export class Peerbit {
216
228
  get storage() {
217
229
  return this._storage;
218
230
  }
231
+ get indexer() {
232
+ return this._indexer;
233
+ }
219
234
  }
220
235
  //# sourceMappingURL=peer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer.js","sourceRoot":"","sources":["../../src/peer.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export declare const transports: () => (((components: import("@libp2p/circuit-relay-v2/dist/src/transport").CircuitRelayTransportComponents) => import("@libp2p/interface").Transport) | ((components: import("@libp2p/webrtc/dist/src/private-to-private/transport").WebRTCTransportComponents) => import("@libp2p/interface").Transport))[];
2
- export declare const relay: () => undefined;
2
+ export declare const relay: () => any;
3
3
  export declare const listen: () => string[] | undefined;
4
+ //# sourceMappingURL=transports.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transports.browser.d.ts","sourceRoot":"","sources":["../../src/transports.browser.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU,8SAOtB,CAAC;AAEF,eAAO,MAAM,KAAK,QAAsB,GAAG,CAAC;AAE5C,eAAO,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,GAAG,SAA6B,CAAC"}
@@ -1,14 +1,15 @@
1
- import { webSockets } from "@libp2p/websockets";
2
1
  import { circuitRelayTransport } from "@libp2p/circuit-relay-v2";
3
2
  import { webRTC } from "@libp2p/webrtc";
3
+ import { webSockets } from "@libp2p/websockets";
4
4
  import { all } from "@libp2p/websockets/filters";
5
5
  export const transports = () => [
6
6
  webSockets({ filter: all }),
7
7
  circuitRelayTransport({
8
- discoverRelays: 1
8
+ discoverRelays: 1,
9
+ reservationCompletionTimeout: 5000,
9
10
  }),
10
- webRTC({})
11
+ webRTC({}),
11
12
  ];
12
13
  export const relay = () => undefined;
13
14
  export const listen = () => ["/webrtc"];
14
- //# sourceMappingURL=transports-browser.js.map
15
+ //# sourceMappingURL=transports.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transports.browser.js","sourceRoot":"","sources":["../../src/transports.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAEjD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAC3B,qBAAqB,CAAC;QACrB,cAAc,EAAE,CAAC;QACjB,4BAA4B,EAAE,IAAI;KAClC,CAAC;IACF,MAAM,CAAC,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,SAAgB,CAAC;AAE5C,MAAM,CAAC,MAAM,MAAM,GAA+B,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export declare const transports: () => (((components: import("@libp2p/circuit-relay-v2/dist/src/transport").CircuitRelayTransportComponents) => import("@libp2p/interface").Transport) | ((components: import("@libp2p/tcp").TCPComponents) => import("@libp2p/interface").Transport))[];
2
2
  export declare const relay: () => (components: import("@libp2p/circuit-relay-v2/dist/src/server").CircuitRelayServerComponents) => import("@libp2p/circuit-relay-v2").CircuitRelayService;
3
3
  export declare const listen: () => string[] | undefined;
4
+ //# sourceMappingURL=transports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transports.d.ts","sourceRoot":"","sources":["../../src/transports.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,yPAMtB,CAAC;AACF,eAAO,MAAM,KAAK,+JAIf,CAAC;AAEJ,eAAO,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,GAAG,SAGrC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { circuitRelayServer, circuitRelayTransport, } from "@libp2p/circuit-relay-v2";
2
+ import { tcp } from "@libp2p/tcp";
3
+ import { webSockets } from "@libp2p/websockets";
4
+ import { all } from "@libp2p/websockets/filters";
5
+ export const transports = () => [
6
+ webSockets({ filter: all }),
7
+ circuitRelayTransport({
8
+ reservationCompletionTimeout: 5000,
9
+ }),
10
+ tcp(),
11
+ ];
12
+ export const relay = () =>
13
+ // applyDefaultLimit: false because of https://github.com/libp2p/js-libp2p/issues/2622
14
+ circuitRelayServer({
15
+ reservations: { applyDefaultLimit: false, maxReservations: 1000 },
16
+ });
17
+ export const listen = () => [
18
+ "/ip4/127.0.0.1/tcp/0",
19
+ "/ip4/127.0.0.1/tcp/0/ws",
20
+ ];
21
+ //# sourceMappingURL=transports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transports.js","sourceRoot":"","sources":["../../src/transports.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAClB,qBAAqB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAEjD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAC3B,qBAAqB,CAAC;QACrB,4BAA4B,EAAE,IAAI;KAClC,CAAC;IACF,GAAG,EAAE;CACL,CAAC;AACF,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,EAAE;AACzB,sFAAsF;AACtF,kBAAkB,CAAC;IAClB,YAAY,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;CACjE,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,MAAM,GAA+B,GAAG,EAAE,CAAC;IACvD,sBAAsB;IACtB,yBAAyB;CACzB,CAAC"}