@peerbit/libp2p-test-utils 2.1.3-aa577a5 → 2.1.3-cccc078

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
- import { type Libp2p, type Libp2pOptions } from "libp2p";
2
1
  import { type CircuitRelayService } from "@libp2p/circuit-relay-v2";
3
2
  import type { Multiaddr } from "@multiformats/multiaddr";
3
+ import { type Libp2p, type Libp2pOptions } from "libp2p";
4
4
  type DefaultServices = {
5
5
  relay: CircuitRelayService;
6
6
  identify: any;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAKvE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,KAAK,eAAe,GAAG;IAAE,KAAK,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,CAAC;AACrE,KAAK,kBAAkB,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;AACzD,qBAAa,WAAW,CAAC,CAAC;IACzB,KAAK,EAAE,kBAAkB,CAAC,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC;gBAErC,KAAK,EAAE,kBAAkB,CAAC,CAAC,GAAG,eAAe,CAAC,EAAE;IAItD,OAAO,CACZ,MAAM,CAAC,EAAE;QACR,aAAa,EAAE,MAAM,SAAS,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;KAC5C,EAAE,EAAE;IAsBA,WAAW,CAChB,MAAM,CAAC,EAAE;QACR,aAAa,EAAE,MAAM,SAAS,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;KAC5C,EAAE,EAAE;WAmBO,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,CAAC,EAAE,MAAM,EACT,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE;WAMnC,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1D,CAAC,EAAE,MAAM,EACT,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE;IAyChD,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;CAOpB"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAgB,MAAM,QAAQ,CAAC;AAGvE,KAAK,eAAe,GAAG;IAAE,KAAK,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,CAAC;AACrE,KAAK,kBAAkB,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;AAEzD,qBAAa,WAAW,CAAC,CAAC;IACzB,KAAK,EAAE,kBAAkB,CAAC,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC;gBAErC,KAAK,EAAE,kBAAkB,CAAC,CAAC,GAAG,eAAe,CAAC,EAAE;IAItD,OAAO,CACZ,MAAM,CAAC,EAAE;QACR,aAAa,EAAE,MAAM,SAAS,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;KAC5C,EAAE,EAAE;IAsBA,WAAW,CAChB,MAAM,CAAC,EAAE;QACR,aAAa,EAAE,MAAM,SAAS,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;KAC5C,EAAE,EAAE;WAmBO,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,CAAC,EAAE,MAAM,EACT,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE;WAMnC,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1D,CAAC,EAAE,MAAM,EACT,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE;IAwChD,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;CAOpB"}
@@ -1,10 +1,11 @@
1
- import { createLibp2p } from "libp2p";
1
+ import { yamux } from "@chainsafe/libp2p-yamux";
2
2
  import { noise } from "@dao-xyz/libp2p-noise";
3
+ import {} from "@libp2p/circuit-relay-v2";
4
+ import { identify } from "@libp2p/identify";
5
+ import { waitFor } from "@peerbit/time";
3
6
  import { setMaxListeners } from "events";
7
+ import { createLibp2p } from "libp2p";
4
8
  import { relay, transports } from "./transports.js";
5
- import { identify } from "@libp2p/identify";
6
- import {} from "@libp2p/circuit-relay-v2";
7
- import { yamux } from "@chainsafe/libp2p-yamux";
8
9
  export class TestSession {
9
10
  peers;
10
11
  constructor(peers) {
@@ -21,7 +22,7 @@ export class TestSession {
21
22
  for (let j = i + 1; j < group.length; j++) {
22
23
  const toDial = group[j]
23
24
  .getMultiaddrs()
24
- .filter((x) => x.protoCodes().includes(290) === false);
25
+ .filter((x) => !x.protoCodes().includes(290));
25
26
  connectPromises.push(group[i].dial(toDial)); // By default don't connect to relayed (p2p-circuit) peers
26
27
  }
27
28
  }
@@ -38,7 +39,7 @@ export class TestSession {
38
39
  for (let i = 0; i < group.length - 1; i++) {
39
40
  const toDial = group[i + 1]
40
41
  .getMultiaddrs()
41
- .filter((x) => x.protoCodes().includes(290) === false);
42
+ .filter((x) => !x.protoCodes().includes(290));
42
43
  connectPromises.push(group[i].dial(toDial)); // By default don't connect to relayed (p2p-circuit) peers
43
44
  }
44
45
  }
@@ -59,24 +60,24 @@ export class TestSession {
59
60
  const definedOptions = options?.[i] || options;
60
61
  const node = await createLibp2p({
61
62
  addresses: {
62
- listen: ["/ip4/127.0.0.1/tcp/0", "/ip4/127.0.0.1/tcp/0/ws"]
63
+ listen: ["/ip4/127.0.0.1/tcp/0", "/ip4/127.0.0.1/tcp/0/ws"],
63
64
  },
64
65
  connectionManager: definedOptions?.connectionManager ?? {
65
- minConnections: 0
66
+ minConnections: 0,
66
67
  },
67
68
  peerId: definedOptions?.peerId,
68
69
  datastore: definedOptions?.datastore,
69
- transports: definedOptions?.transports ??
70
- transports(definedOptions?.["browser"]),
70
+ transports: definedOptions?.transports ?? transports(),
71
71
  services: {
72
- relay: definedOptions?.["browser"] ? undefined : relay(),
72
+ relay: relay(),
73
73
  identify: identify(),
74
- ...definedOptions?.services
74
+ ...definedOptions?.services,
75
75
  },
76
76
  connectionEncryption: [noise()],
77
77
  streamMuxers: definedOptions?.streamMuxers || [yamux()],
78
- start: definedOptions?.start
78
+ start: definedOptions?.start,
79
79
  });
80
+ await waitFor(() => node.status === "started");
80
81
  return node;
81
82
  };
82
83
  promises.push(result());
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { Components } from "libp2p/components";
2
1
  import type { Transport } from "@libp2p/interface";
3
- export declare const transports: (browser: boolean) => Array<(components: Components) => Transport>;
2
+ import type { Components } from "libp2p/components";
3
+ export declare const transports: () => Array<(components: Components) => Transport>;
4
4
  export declare const relay: () => (components: import("@libp2p/circuit-relay-v2/dist/src/server").CircuitRelayServerComponents) => import("@libp2p/circuit-relay-v2").CircuitRelayService;
5
5
  //# sourceMappingURL=transports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transports.d.ts","sourceRoot":"","sources":["../../src/transports.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,eAAO,MAAM,UAAU,YACb,OAAO,KACd,MAAM,CAAC,UAAU,EAAE,UAAU,KAAK,SAAS,CAS1B,CAAC;AAErB,eAAO,MAAM,KAAK,+JAA+B,CAAC"}
1
+ {"version":3,"file":"transports.d.ts","sourceRoot":"","sources":["../../src/transports.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,eAAO,MAAM,UAAU,QAAO,KAAK,CAAC,CAAC,UAAU,EAAE,UAAU,KAAK,SAAS,CAOxE,CAAC;AAGF,eAAO,MAAM,KAAK,+JACiD,CAAC"}
@@ -1,16 +1,15 @@
1
- import { circuitRelayTransport, circuitRelayServer } from "@libp2p/circuit-relay-v2";
1
+ import { circuitRelayServer, circuitRelayTransport, } from "@libp2p/circuit-relay-v2";
2
2
  import { webRTC } from "@libp2p/webrtc";
3
3
  import { webSockets } from "@libp2p/websockets";
4
4
  import * as filters from "@libp2p/websockets/filters";
5
- import { tcp } from "@libp2p/tcp";
6
- export const transports = (browser) => browser
7
- ? [
8
- circuitRelayTransport({
9
- discoverRelays: 1
10
- }),
11
- webRTC({}),
12
- webSockets({ filter: filters.all })
13
- ]
14
- : [tcp()];
15
- export const relay = () => circuitRelayServer({});
5
+ export const transports = () => [
6
+ circuitRelayTransport({
7
+ discoverRelays: 1,
8
+ reservationCompletionTimeout: 5000,
9
+ }),
10
+ webRTC({}),
11
+ webSockets({ filter: filters.all }),
12
+ ];
13
+ // applyDefaultLimit: false because of https://github.com/libp2p/js-libp2p/issues/2622
14
+ export const relay = () => circuitRelayServer({ reservations: { applyDefaultLimit: false } });
16
15
  //# sourceMappingURL=transports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transports.js","sourceRoot":"","sources":["../../src/transports.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,qBAAqB,EACrB,kBAAkB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAIlC,MAAM,CAAC,MAAM,UAAU,GAAG,CACzB,OAAgB,EAC+B,EAAE,CACjD,OAAO;IACN,CAAC,CAAC;QACD,qBAAqB,CAAC;YACrB,cAAc,EAAE,CAAC;SACjB,CAAC;QACF,MAAM,CAAC,EAAE,CAAC;QACV,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KACnC;IACD,CAAC,CAAE,CAAC,GAAG,EAAE,CAAS,CAAC;AAErB,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"transports.js","sourceRoot":"","sources":["../../src/transports.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAClB,qBAAqB,GACrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAC;AAGtD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAiD,EAAE,CAAC;IAC7E,qBAAqB,CAAC;QACrB,cAAc,EAAE,CAAC;QACjB,4BAA4B,EAAE,IAAI;KAClC,CAAC;IACF,MAAM,CAAC,EAAE,CAAC;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;CACnC,CAAC;AAEF,sFAAsF;AACtF,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,EAAE,CACzB,kBAAkB,CAAC,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/libp2p-test-utils",
3
- "version": "2.1.3-aa577a5",
3
+ "version": "2.1.3-cccc078",
4
4
  "description": "Test utils for Peerbit",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -34,7 +34,7 @@
34
34
  }
35
35
  },
36
36
  "eslintConfig": {
37
- "extends": "ipfs",
37
+ "extends": "peerbit",
38
38
  "parserOptions": {
39
39
  "project": true,
40
40
  "sourceType": "module"
@@ -59,20 +59,21 @@
59
59
  "license": "MIT",
60
60
  "dependencies": {
61
61
  "@dao-xyz/libp2p-noise": "^14.1.2",
62
- "@libp2p/tcp": "^9.0.15",
63
- "@libp2p/webrtc": "^4.0.13",
64
- "@libp2p/websockets": "^8.0.15",
65
- "@libp2p/identify": "^1.0.12",
66
- "@libp2p/circuit-relay-v2": "^1.0.13",
67
- "libp2p": "^1.2.3"
62
+ "@libp2p/tcp": "^9.1.1",
63
+ "@libp2p/webrtc": "^4.1.1",
64
+ "@libp2p/websockets": "^8.1.2",
65
+ "@libp2p/identify": "^2.1.2",
66
+ "@libp2p/circuit-relay-v2": "^1.1.2",
67
+ "libp2p": "^1.8.1"
68
68
  },
69
69
  "scripts": {
70
70
  "clean": "aegir clean",
71
71
  "build": "aegir build --no-bundle",
72
- "test": "aegir test -t node"
72
+ "test": "aegir test -t node",
73
+ "lint": "aegir lint"
73
74
  },
74
75
  "devDependencies": {
75
- "@peerbit/time": "2.0.6-aa577a5"
76
+ "@peerbit/time": "2.0.6-cccc078"
76
77
  },
77
78
  "localMaintainers": [
78
79
  "dao.xyz"
package/src/index.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  import { TestSession } from "./session.js";
2
+
2
3
  export { TestSession };
package/src/session.ts CHANGED
@@ -1,14 +1,16 @@
1
- import { createLibp2p, type Libp2p, type Libp2pOptions } from "libp2p";
1
+ import { yamux } from "@chainsafe/libp2p-yamux";
2
2
  import { noise } from "@dao-xyz/libp2p-noise";
3
- import { setMaxListeners } from "events";
4
- import { relay, transports } from "./transports.js";
5
- import { identify } from "@libp2p/identify";
6
3
  import { type CircuitRelayService } from "@libp2p/circuit-relay-v2";
4
+ import { identify } from "@libp2p/identify";
7
5
  import type { Multiaddr } from "@multiformats/multiaddr";
8
- import { yamux } from "@chainsafe/libp2p-yamux";
6
+ import { waitFor } from "@peerbit/time";
7
+ import { setMaxListeners } from "events";
8
+ import { type Libp2p, type Libp2pOptions, createLibp2p } from "libp2p";
9
+ import { relay, transports } from "./transports.js";
9
10
 
10
11
  type DefaultServices = { relay: CircuitRelayService; identify: any };
11
12
  type Libp2pWithServices<T> = Libp2p<T & DefaultServices>;
13
+
12
14
  export class TestSession<T> {
13
15
  peers: Libp2pWithServices<T & DefaultServices>[];
14
16
 
@@ -20,7 +22,7 @@ export class TestSession<T> {
20
22
  groups?: {
21
23
  getMultiaddrs: () => Multiaddr[];
22
24
  dial: (addres: Multiaddr[]) => Promise<any>;
23
- }[][]
25
+ }[][],
24
26
  ) {
25
27
  // Connect the nodes
26
28
  const connectPromises: Promise<any>[] = [];
@@ -32,7 +34,7 @@ export class TestSession<T> {
32
34
  for (let j = i + 1; j < group.length; j++) {
33
35
  const toDial = group[j]
34
36
  .getMultiaddrs()
35
- .filter((x) => x.protoCodes().includes(290) === false);
37
+ .filter((x) => !x.protoCodes().includes(290));
36
38
  connectPromises.push(group[i].dial(toDial)); // By default don't connect to relayed (p2p-circuit) peers
37
39
  }
38
40
  }
@@ -46,7 +48,7 @@ export class TestSession<T> {
46
48
  groups?: {
47
49
  getMultiaddrs: () => Multiaddr[];
48
50
  dial: (addres: Multiaddr[]) => Promise<any>;
49
- }[][]
51
+ }[][],
50
52
  ) {
51
53
  const connectPromises: Promise<any>[] = [];
52
54
  if (!groups) {
@@ -56,7 +58,7 @@ export class TestSession<T> {
56
58
  for (let i = 0; i < group.length - 1; i++) {
57
59
  const toDial = group[i + 1]
58
60
  .getMultiaddrs()
59
- .filter((x) => x.protoCodes().includes(290) === false);
61
+ .filter((x) => !x.protoCodes().includes(290));
60
62
  connectPromises.push(group[i].dial(toDial)); // By default don't connect to relayed (p2p-circuit) peers
61
63
  }
62
64
  }
@@ -67,15 +69,15 @@ export class TestSession<T> {
67
69
 
68
70
  static async connected<T extends Record<string, unknown>>(
69
71
  n: number,
70
- options?: Libp2pOptions<T> | Libp2pOptions<T>[]
72
+ options?: Libp2pOptions<T> | Libp2pOptions<T>[],
71
73
  ) {
72
74
  const libs = (await TestSession.disconnected<T>(n, options)).peers;
73
- return new TestSession(libs).connect();
75
+ return new TestSession<T>(libs).connect();
74
76
  }
75
77
 
76
78
  static async disconnected<T extends Record<string, unknown>>(
77
79
  n: number,
78
- options?: Libp2pOptions<T> | Libp2pOptions<T>[]
80
+ options?: Libp2pOptions<T> | Libp2pOptions<T>[],
79
81
  ) {
80
82
  // Allow more than 11 listneers
81
83
  setMaxListeners(Infinity);
@@ -88,39 +90,38 @@ export class TestSession<T> {
88
90
  (options as any)?.[i] || options;
89
91
  const node = await createLibp2p<T>({
90
92
  addresses: {
91
- listen: ["/ip4/127.0.0.1/tcp/0", "/ip4/127.0.0.1/tcp/0/ws"]
93
+ listen: ["/ip4/127.0.0.1/tcp/0", "/ip4/127.0.0.1/tcp/0/ws"],
92
94
  },
93
95
  connectionManager: definedOptions?.connectionManager ?? {
94
- minConnections: 0
96
+ minConnections: 0,
95
97
  },
96
98
  peerId: definedOptions?.peerId,
97
99
  datastore: definedOptions?.datastore,
98
- transports:
99
- definedOptions?.transports ??
100
- transports((definedOptions as any)?.["browser"]),
100
+ transports: definedOptions?.transports ?? transports(),
101
101
  services: {
102
- relay: (definedOptions as any)?.["browser"] ? undefined : relay(),
102
+ relay: relay(),
103
103
  identify: identify(),
104
- ...definedOptions?.services
104
+ ...definedOptions?.services,
105
105
  } as any,
106
106
  connectionEncryption: [noise()],
107
107
  streamMuxers: definedOptions?.streamMuxers || [yamux()],
108
- start: definedOptions?.start
108
+ start: definedOptions?.start,
109
109
  });
110
+ await waitFor(() => node.status === "started");
110
111
  return node;
111
112
  };
112
113
  promises.push(result());
113
114
  }
114
115
 
115
116
  const libs = (await Promise.all(promises)) as Libp2p<T & DefaultServices>[];
116
- return new TestSession(libs);
117
+ return new TestSession<T>(libs);
117
118
  }
118
119
 
119
120
  stop(): Promise<any> {
120
121
  return Promise.all(
121
122
  this.peers.map(async (p) => {
122
123
  return p.stop();
123
- })
124
+ }),
124
125
  );
125
126
  }
126
127
  }
package/src/transports.ts CHANGED
@@ -1,25 +1,22 @@
1
1
  import {
2
+ circuitRelayServer,
2
3
  circuitRelayTransport,
3
- circuitRelayServer
4
4
  } from "@libp2p/circuit-relay-v2";
5
+ import type { Transport } from "@libp2p/interface";
5
6
  import { webRTC } from "@libp2p/webrtc";
6
7
  import { webSockets } from "@libp2p/websockets";
7
8
  import * as filters from "@libp2p/websockets/filters";
8
- import { tcp } from "@libp2p/tcp";
9
9
  import type { Components } from "libp2p/components";
10
- import type { Transport } from "@libp2p/interface";
11
10
 
12
- export const transports = (
13
- browser: boolean
14
- ): Array<(components: Components) => Transport> =>
15
- browser
16
- ? [
17
- circuitRelayTransport({
18
- discoverRelays: 1
19
- }),
20
- webRTC({}),
21
- webSockets({ filter: filters.all })
22
- ]
23
- : ([tcp()] as any);
11
+ export const transports = (): Array<(components: Components) => Transport> => [
12
+ circuitRelayTransport({
13
+ discoverRelays: 1,
14
+ reservationCompletionTimeout: 5000,
15
+ }),
16
+ webRTC({}),
17
+ webSockets({ filter: filters.all }),
18
+ ];
24
19
 
25
- export const relay = () => circuitRelayServer({});
20
+ // applyDefaultLimit: false because of https://github.com/libp2p/js-libp2p/issues/2622
21
+ export const relay = () =>
22
+ circuitRelayServer({ reservations: { applyDefaultLimit: false } });