@libp2p/interop 5.0.0 → 6.0.0

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.
@@ -43,10 +43,10 @@ function runConnectTests(name, factory, optionsA, optionsB) {
43
43
  await new Promise(resolve => setTimeout(resolve, 1000));
44
44
  // verify connected peers
45
45
  const knownPeersAfterConnect1 = await daemons[0].client.listPeers();
46
- expect(knownPeersAfterConnect1).to.have.lengthOf(1);
46
+ expect(knownPeersAfterConnect1).to.have.length.greaterThanOrEqual(1);
47
47
  expect(knownPeersAfterConnect1[0].toString()).to.equal(identify2.peerId.toString());
48
48
  const knownPeersAfterConnect2 = await daemons[1].client.listPeers();
49
- expect(knownPeersAfterConnect2).to.have.lengthOf(1);
49
+ expect(knownPeersAfterConnect2).to.have.length.greaterThanOrEqual(1);
50
50
  expect(knownPeersAfterConnect2[0].toString()).to.equal(identify1.peerId.toString());
51
51
  });
52
52
  });
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAEhD,MAAM,UAAU,YAAY,CAAE,OAAsB;IAClD,MAAM,QAAQ,GAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;IAC9D,MAAM,KAAK,GAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAEtC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACzB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;gBACzB,eAAe,CACb,SAAS,OAAO,EAAE,EAClB,OAAO,EACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EACnD,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CACpD,CAAA;aACF;SACF;KACF;AACH,CAAC;AAED,SAAS,eAAe,CAAE,IAAY,EAAE,OAAsB,EAAE,QAAsB,EAAE,QAAsB;IAC5G,QAAQ,CAAC,iBAAiB,IAAI,EAAE,EAAE,GAAG,EAAE;QACrC,IAAI,OAAiB,CAAA;QAErB,gBAAgB;QAChB,MAAM,CAAC,KAAK;YACV,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;YAEvB,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;aACxB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,eAAe;QACf,KAAK,CAAC,KAAK;YACT,IAAI,OAAO,IAAI,IAAI,EAAE;gBACnB,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA,CAAC,CAAC,CAAC,CACvD,CAAA;aACF;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,YAAY,QAAQ,CAAC,IAAI,OAAO,EAAE,KAAK;YACxD,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;YAEvB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;YACpD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;YAEpD,yBAAyB;YACzB,MAAM,wBAAwB,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;YACpE,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YAEpD,MAAM,wBAAwB,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;YACpE,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YAEpD,gBAAgB;YAChB,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;YAElE,kDAAkD;YAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;YAEvD,yBAAyB;YACzB,MAAM,uBAAuB,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;YACnE,MAAM,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACnD,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;YAEnF,MAAM,uBAAuB,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;YACnE,MAAM,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACnD,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;QACrF,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/connect.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { connectTests } from './connect.js';
2
2
  import { dhtTests } from './dht/index.js';
3
3
  import { pubsubTests } from './pubsub/index.js';
4
4
  import { streamTests } from './streams/index.js';
5
+ import { relayTests } from './relay/index.js';
5
6
  import type { DaemonClient } from '@libp2p/daemon-client';
6
7
  export interface Daemon {
7
8
  stop: () => Promise<void>;
@@ -19,10 +20,12 @@ export interface SpawnOptions {
19
20
  pubsub?: boolean;
20
21
  pubsubRouter?: PubSubRouter;
21
22
  muxer?: Muxer;
23
+ relay?: boolean;
24
+ noListen?: boolean;
22
25
  }
23
26
  export interface DaemonFactory {
24
27
  spawn: (options: SpawnOptions) => Promise<Daemon>;
25
28
  }
26
29
  export declare function interopTests(factory: DaemonFactory): Promise<void>;
27
- export { connectTests as connectInteropTests, dhtTests as dhtInteropTests, pubsubTests as pubsubInteropTests, streamTests as streamInteropTests };
30
+ export { connectTests as connectInteropTests, dhtTests as dhtInteropTests, pubsubTests as pubsubInteropTests, streamTests as streamInteropTests, relayTests as relayInteropTests };
28
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,MAAM,EAAE,YAAY,CAAA;CACrB;AAED,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAA;AAClC,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,CAAA;AACxD,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,UAAU,CAAA;AACnD,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,OAAO,CAAA;AAErC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAClD;AAED,wBAAsB,YAAY,CAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzE;AAED,OAAO,EACL,YAAY,IAAI,mBAAmB,EACnC,QAAQ,IAAI,eAAe,EAC3B,WAAW,IAAI,kBAAkB,EACjC,WAAW,IAAI,kBAAkB,EAClC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,MAAM,EAAE,YAAY,CAAA;CACrB;AAED,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAA;AAClC,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,CAAA;AACxD,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,UAAU,CAAA;AACnD,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,OAAO,CAAA;AAErC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IAGf,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAClD;AAED,wBAAsB,YAAY,CAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzE;AAED,OAAO,EACL,YAAY,IAAI,mBAAmB,EACnC,QAAQ,IAAI,eAAe,EAC3B,WAAW,IAAI,kBAAkB,EACjC,WAAW,IAAI,kBAAkB,EACjC,UAAU,IAAI,iBAAiB,EAChC,CAAA"}
package/dist/src/index.js CHANGED
@@ -2,11 +2,13 @@ import { connectTests } from './connect.js';
2
2
  import { dhtTests } from './dht/index.js';
3
3
  import { pubsubTests } from './pubsub/index.js';
4
4
  import { streamTests } from './streams/index.js';
5
+ import { relayTests } from './relay/index.js';
5
6
  export async function interopTests(factory) {
6
7
  connectTests(factory);
8
+ relayTests(factory);
7
9
  await dhtTests(factory);
8
10
  await pubsubTests(factory);
9
11
  await streamTests(factory);
10
12
  }
11
- export { connectTests as connectInteropTests, dhtTests as dhtInteropTests, pubsubTests as pubsubInteropTests, streamTests as streamInteropTests };
13
+ export { connectTests as connectInteropTests, dhtTests as dhtInteropTests, pubsubTests as pubsubInteropTests, streamTests as streamInteropTests, relayTests as relayInteropTests };
12
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AA2BhD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,OAAsB;IACxD,YAAY,CAAC,OAAO,CAAC,CAAA;IACrB,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAA;IACvB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;AAC5B,CAAC;AAED,OAAO,EACL,YAAY,IAAI,mBAAmB,EACnC,QAAQ,IAAI,eAAe,EAC3B,WAAW,IAAI,kBAAkB,EACjC,WAAW,IAAI,kBAAkB,EAClC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AA+B7C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,OAAsB;IACxD,YAAY,CAAC,OAAO,CAAC,CAAA;IACrB,UAAU,CAAC,OAAO,CAAC,CAAA;IACnB,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAA;IACvB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;AAC5B,CAAC;AAED,OAAO,EACL,YAAY,IAAI,mBAAmB,EACnC,QAAQ,IAAI,eAAe,EAC3B,WAAW,IAAI,kBAAkB,EACjC,WAAW,IAAI,kBAAkB,EACjC,UAAU,IAAI,iBAAiB,EAChC,CAAA"}
@@ -20,8 +20,9 @@ function runFloodsubTests(factory, optionsA, optionsB) {
20
20
  factory.spawn(optionsA),
21
21
  factory.spawn(optionsB)
22
22
  ]);
23
- const identify1 = await daemons[1].client.identify();
24
- await daemons[0].client.connect(identify1.peerId, identify1.addrs);
23
+ const [peerA, peerB] = daemons;
24
+ const identifyB = await peerB.client.identify();
25
+ await peerA.client.connect(identifyB.peerId, identifyB.addrs);
25
26
  });
26
27
  // Stop daemons
27
28
  after(async function () {
@@ -32,7 +33,8 @@ function runFloodsubTests(factory, optionsA, optionsB) {
32
33
  it(`${optionsA.type} peer to ${optionsB.type} peer`, async function () {
33
34
  const topic = 'test-topic';
34
35
  const data = uint8ArrayFromString('test-data');
35
- const subscribeIterator = daemons[1].client.pubsub.subscribe(topic);
36
+ const [peerA, peerB] = daemons;
37
+ const subscribeIterator = peerB.client.pubsub.subscribe(topic);
36
38
  const subscriber = async () => {
37
39
  const message = await first(subscribeIterator);
38
40
  expect(message).to.exist();
@@ -41,7 +43,7 @@ function runFloodsubTests(factory, optionsA, optionsB) {
41
43
  const publisher = async () => {
42
44
  // wait for subscription stream
43
45
  await new Promise(resolve => setTimeout(resolve, 800));
44
- await daemons[0].client.pubsub.publish(topic, data);
46
+ await peerA.client.pubsub.publish(topic, data);
45
47
  };
46
48
  return await Promise.all([
47
49
  subscriber(),
@@ -1 +1 @@
1
- {"version":3,"file":"floodsub.js","sourceRoot":"","sources":["../../../src/pubsub/floodsub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"floodsub.js","sourceRoot":"","sources":["../../../src/pubsub/floodsub.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gossipsub.js","sourceRoot":"","sources":["../../../src/pubsub/gossipsub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gossipsub.js","sourceRoot":"","sources":["../../../src/pubsub/gossipsub.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { DaemonFactory } from '../index.js';
2
+ export declare function relayTests(factory: DaemonFactory): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/relay/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAU,aAAa,EAA0B,MAAM,aAAa,CAAA;AAOhF,wBAAgB,UAAU,CAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAGxD"}
@@ -0,0 +1,62 @@
1
+ import { multiaddr } from '@multiformats/multiaddr';
2
+ import { expect } from 'aegir/chai';
3
+ import { Status } from './pb/index.js';
4
+ import { echoHandler, reserve } from './util.js';
5
+ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
6
+ import { handshake } from 'it-handshake';
7
+ export function relayTests(factory) {
8
+ const t = ['go', 'js'];
9
+ t.forEach(a => { t.forEach(b => { t.forEach(r => { relayTest(factory, a, b, r); }); }); });
10
+ }
11
+ function relayTest(factory, aType, bType, relayType) {
12
+ describe(`${aType} to ${bType} over relay ${relayType}`, () => {
13
+ const opts = [
14
+ { type: aType, noise: true, noListen: true },
15
+ { type: bType, noise: true, noListen: true },
16
+ { type: relayType, noise: true, relay: true }
17
+ ];
18
+ let aNode;
19
+ let bNode;
20
+ let relay;
21
+ let bId;
22
+ let relayId;
23
+ let bAddrViaRelay;
24
+ beforeEach(async function () {
25
+ this.timeout(20 * 1000);
26
+ [aNode, bNode, relay] = await Promise.all(opts.map(async (o) => await factory.spawn(o)));
27
+ [bId, relayId] = await Promise.all([bNode, relay].map(async (d) => await d.client.identify()));
28
+ // construct a relay address
29
+ bAddrViaRelay = multiaddr(`${relayId.addrs[0].toString()}/p2p/${relayId.peerId.toString()}/p2p-circuit/p2p/${bId.peerId.toString()}`);
30
+ // connect b to the relay
31
+ await bNode.client.connect(relayId.peerId, relayId.addrs);
32
+ });
33
+ afterEach(async function () {
34
+ await Promise.all([aNode, bNode, relay].map(async (d) => { await d.stop(); }));
35
+ });
36
+ it('connects', async () => {
37
+ // b makes reservation on relay
38
+ const reserveResponse = await reserve(bNode, relayId.peerId);
39
+ expect(reserveResponse.status).to.eq(Status.OK);
40
+ // a dials b through relay
41
+ await aNode.client.connect(bId.peerId, [bAddrViaRelay]);
42
+ await new Promise(resolve => setTimeout(resolve, 500));
43
+ const connectedPeers = await aNode.client.listPeers();
44
+ expect(connectedPeers.filter(p => p.equals(bId.peerId))).to.have.length(1);
45
+ // run an echo test
46
+ await bNode.client.registerStreamHandler(echoHandler.protocol, echoHandler.handler);
47
+ const stream = await aNode.client.openStream(bId.peerId, echoHandler.protocol);
48
+ // send some data, read the response
49
+ const input = uint8ArrayFromString('test');
50
+ const shake = handshake(stream);
51
+ shake.write(input);
52
+ const output = await shake.read();
53
+ expect(output?.subarray()).to.deep.equal(input);
54
+ });
55
+ it('fails to connect without a reservation', async () => {
56
+ // a dials b through relay
57
+ await expect(aNode.client.connect(bId.peerId, [bAddrViaRelay])).to.eventually.be.rejected
58
+ .with.property('message').that.matches(/NO_RESERVATION/);
59
+ });
60
+ });
61
+ }
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relay/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import type { Uint8ArrayList } from 'uint8arraylist';
2
+ import type { Codec } from 'protons-runtime';
3
+ export interface HopMessage {
4
+ type?: HopMessage.Type;
5
+ peer?: Peer;
6
+ reservation?: Reservation;
7
+ limit?: Limit;
8
+ status?: Status;
9
+ }
10
+ export declare namespace HopMessage {
11
+ enum Type {
12
+ RESERVE = "RESERVE",
13
+ CONNECT = "CONNECT",
14
+ STATUS = "STATUS"
15
+ }
16
+ namespace Type {
17
+ const codec: () => Codec<Type>;
18
+ }
19
+ const codec: () => Codec<HopMessage>;
20
+ const encode: (obj: HopMessage) => Uint8Array;
21
+ const decode: (buf: Uint8Array | Uint8ArrayList) => HopMessage;
22
+ }
23
+ export interface StopMessage {
24
+ type?: StopMessage.Type;
25
+ peer?: Peer;
26
+ limit?: Limit;
27
+ status?: Status;
28
+ }
29
+ export declare namespace StopMessage {
30
+ enum Type {
31
+ CONNECT = "CONNECT",
32
+ STATUS = "STATUS"
33
+ }
34
+ namespace Type {
35
+ const codec: () => Codec<Type>;
36
+ }
37
+ const codec: () => Codec<StopMessage>;
38
+ const encode: (obj: StopMessage) => Uint8Array;
39
+ const decode: (buf: Uint8Array | Uint8ArrayList) => StopMessage;
40
+ }
41
+ export interface Peer {
42
+ id: Uint8Array;
43
+ addrs: Uint8Array[];
44
+ }
45
+ export declare namespace Peer {
46
+ const codec: () => Codec<Peer>;
47
+ const encode: (obj: Peer) => Uint8Array;
48
+ const decode: (buf: Uint8Array | Uint8ArrayList) => Peer;
49
+ }
50
+ export interface Reservation {
51
+ expire: bigint;
52
+ addrs: Uint8Array[];
53
+ voucher?: Uint8Array;
54
+ }
55
+ export declare namespace Reservation {
56
+ const codec: () => Codec<Reservation>;
57
+ const encode: (obj: Reservation) => Uint8Array;
58
+ const decode: (buf: Uint8Array | Uint8ArrayList) => Reservation;
59
+ }
60
+ export interface Limit {
61
+ duration?: number;
62
+ data?: bigint;
63
+ }
64
+ export declare namespace Limit {
65
+ const codec: () => Codec<Limit>;
66
+ const encode: (obj: Limit) => Uint8Array;
67
+ const decode: (buf: Uint8Array | Uint8ArrayList) => Limit;
68
+ }
69
+ export declare enum Status {
70
+ UNUSED = "UNUSED",
71
+ OK = "OK",
72
+ RESERVATION_REFUSED = "RESERVATION_REFUSED",
73
+ RESOURCE_LIMIT_EXCEEDED = "RESOURCE_LIMIT_EXCEEDED",
74
+ PERMISSION_DENIED = "PERMISSION_DENIED",
75
+ CONNECTION_FAILED = "CONNECTION_FAILED",
76
+ NO_RESERVATION = "NO_RESERVATION",
77
+ MALFORMED_MESSAGE = "MALFORMED_MESSAGE",
78
+ UNEXPECTED_MESSAGE = "UNEXPECTED_MESSAGE"
79
+ }
80
+ export declare namespace Status {
81
+ const codec: () => Codec<Status>;
82
+ }
83
+ export interface ReservationVoucher {
84
+ relay: Uint8Array;
85
+ peer: Uint8Array;
86
+ expiration: bigint;
87
+ }
88
+ export declare namespace ReservationVoucher {
89
+ const codec: () => Codec<ReservationVoucher>;
90
+ const encode: (obj: ReservationVoucher) => Uint8Array;
91
+ const decode: (buf: Uint8Array | Uint8ArrayList) => ReservationVoucher;
92
+ }
93
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/relay/pb/index.ts"],"names":[],"mappings":"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"}