@libp2p/interop 7.0.0 → 7.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/connect.js +15 -16
- package/dist/src/connect.js.map +1 -1
- package/dist/src/dht/content-fetching.js +11 -12
- package/dist/src/dht/content-fetching.js.map +1 -1
- package/dist/src/dht/content-routing.js +17 -13
- package/dist/src/dht/content-routing.js.map +1 -1
- package/dist/src/dht/peer-routing.js +14 -14
- package/dist/src/dht/peer-routing.js.map +1 -1
- package/dist/src/pubsub/floodsub.js +13 -16
- package/dist/src/pubsub/floodsub.js.map +1 -1
- package/dist/src/pubsub/gossipsub.js +13 -16
- package/dist/src/pubsub/gossipsub.js.map +1 -1
- package/dist/src/pubsub/hybrid.js +13 -16
- package/dist/src/pubsub/hybrid.js.map +1 -1
- package/dist/src/pubsub/utils.d.ts +6 -2
- package/dist/src/pubsub/utils.d.ts.map +1 -1
- package/dist/src/pubsub/utils.js +15 -18
- package/dist/src/pubsub/utils.js.map +1 -1
- package/dist/src/relay/index.js +8 -2
- package/dist/src/relay/index.js.map +1 -1
- package/dist/src/streams/echo.js +12 -13
- package/dist/src/streams/echo.js.map +1 -1
- package/package.json +3 -2
- package/src/connect.ts +17 -18
- package/src/dht/content-fetching.ts +13 -14
- package/src/dht/content-routing.ts +20 -18
- package/src/dht/peer-routing.ts +16 -16
- package/src/pubsub/floodsub.ts +15 -18
- package/src/pubsub/gossipsub.ts +15 -18
- package/src/pubsub/hybrid.ts +15 -18
- package/src/pubsub/utils.ts +17 -20
- package/src/relay/index.ts +9 -2
- package/src/streams/echo.ts +14 -15
- package/dist/index.min.js +0 -569
package/dist/src/connect.js
CHANGED
|
@@ -13,39 +13,38 @@ export function connectTests(factory) {
|
|
|
13
13
|
}
|
|
14
14
|
function runConnectTests(name, factory, optionsA, optionsB) {
|
|
15
15
|
describe(`connect using ${name}`, () => {
|
|
16
|
-
let
|
|
16
|
+
let daemonA;
|
|
17
|
+
let daemonB;
|
|
17
18
|
// Start Daemons
|
|
18
19
|
before(async function () {
|
|
19
20
|
this.timeout(20 * 1000);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
factory.spawn(optionsB)
|
|
23
|
-
]);
|
|
21
|
+
daemonA = await factory.spawn(optionsA);
|
|
22
|
+
daemonB = await factory.spawn(optionsB);
|
|
24
23
|
});
|
|
25
24
|
// Stop daemons
|
|
26
25
|
after(async function () {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
await Promise.all([daemonA, daemonB]
|
|
27
|
+
.filter(Boolean)
|
|
28
|
+
.map(async (d) => { await d.stop(); }));
|
|
30
29
|
});
|
|
31
30
|
it(`${optionsA.type} peer to ${optionsB.type} peer`, async function () {
|
|
32
31
|
this.timeout(10 * 1000);
|
|
33
|
-
const identify1 = await
|
|
34
|
-
const identify2 = await
|
|
32
|
+
const identify1 = await daemonA.client.identify();
|
|
33
|
+
const identify2 = await daemonB.client.identify();
|
|
35
34
|
// verify connected peers
|
|
36
|
-
const knownPeersBeforeConnect1 = await
|
|
35
|
+
const knownPeersBeforeConnect1 = await daemonA.client.listPeers();
|
|
37
36
|
expect(knownPeersBeforeConnect1).to.have.lengthOf(0);
|
|
38
|
-
const knownPeersBeforeConnect2 = await
|
|
37
|
+
const knownPeersBeforeConnect2 = await daemonB.client.listPeers();
|
|
39
38
|
expect(knownPeersBeforeConnect2).to.have.lengthOf(0);
|
|
40
39
|
// connect peers
|
|
41
|
-
await
|
|
42
|
-
//
|
|
40
|
+
await daemonA.client.connect(identify2.peerId, identify2.addrs);
|
|
41
|
+
// daemonA will take some time to get the peers
|
|
43
42
|
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
44
43
|
// verify connected peers
|
|
45
|
-
const knownPeersAfterConnect1 = await
|
|
44
|
+
const knownPeersAfterConnect1 = await daemonA.client.listPeers();
|
|
46
45
|
expect(knownPeersAfterConnect1).to.have.length.greaterThanOrEqual(1);
|
|
47
46
|
expect(knownPeersAfterConnect1[0].toString()).to.equal(identify2.peerId.toString());
|
|
48
|
-
const knownPeersAfterConnect2 = await
|
|
47
|
+
const knownPeersAfterConnect2 = await daemonB.client.listPeers();
|
|
49
48
|
expect(knownPeersAfterConnect2).to.have.length.greaterThanOrEqual(1);
|
|
50
49
|
expect(knownPeersAfterConnect2[0].toString()).to.equal(identify1.peerId.toString());
|
|
51
50
|
});
|
package/dist/src/connect.js.map
CHANGED
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,30 +19,29 @@ export function contentFetchingTests(factory) {
|
|
|
19
19
|
}
|
|
20
20
|
function runContentFetchingTests(factory, optionsA, optionsB) {
|
|
21
21
|
describe('dht.contentFetching', () => {
|
|
22
|
-
let
|
|
22
|
+
let daemonA;
|
|
23
|
+
let daemonB;
|
|
23
24
|
// Start Daemons
|
|
24
25
|
before(async function () {
|
|
25
26
|
this.timeout(20 * 1000);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
factory.spawn(optionsB)
|
|
29
|
-
]);
|
|
27
|
+
daemonA = await factory.spawn(optionsA);
|
|
28
|
+
daemonB = await factory.spawn(optionsB);
|
|
30
29
|
// connect them
|
|
31
|
-
const identify0 = await
|
|
32
|
-
await
|
|
30
|
+
const identify0 = await daemonA.client.identify();
|
|
31
|
+
await daemonB.client.connect(identify0.peerId, identify0.addrs);
|
|
33
32
|
// jsDaemon1 will take some time to get the peers
|
|
34
33
|
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
35
34
|
});
|
|
36
35
|
// Stop daemons
|
|
37
36
|
after(async function () {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
await Promise.all([daemonA, daemonB]
|
|
38
|
+
.filter(Boolean)
|
|
39
|
+
.map(async (d) => { await d.stop(); }));
|
|
41
40
|
});
|
|
42
41
|
it(`${optionsA.type} peer to ${optionsB.type} peer`, async function () {
|
|
43
42
|
this.timeout(10 * 1000);
|
|
44
|
-
await
|
|
45
|
-
const data = await
|
|
43
|
+
await daemonA.client.dht.put(record.key, record.value);
|
|
44
|
+
const data = await daemonB.client.dht.get(record.key);
|
|
46
45
|
expect(data).to.equalBytes(record.value);
|
|
47
46
|
});
|
|
48
47
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-fetching.js","sourceRoot":"","sources":["../../../src/dht/content-fetching.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE/D,MAAM,MAAM,GAAG;IACb,GAAG,EAAE,gBAAgB,CAAC;QACpB,oBAAoB,CAAC,MAAM,CAAC;QAC5B,oBAAoB,CAAC,sDAAsD,EAAE,QAAQ,CAAC;KACvF,CAAC;IACF,KAAK,EAAE,oBAAoB,CAAC,wlBAAwlB,EAAE,KAAK,CAAC;CAC7nB,CAAA;AAED,MAAM,UAAU,oBAAoB,CAAE,OAAsB;IAC1D,MAAM,SAAS,GAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAE1C,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;QAC7B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;YAC7B,uBAAuB,CACrB,OAAO,EACP,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAC1B,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAC3B,CAAA;SACF;KACF;AACH,CAAC;AAED,SAAS,uBAAuB,CAAE,OAAsB,EAAE,QAAsB,EAAE,QAAsB;IACtG,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,IAAI,
|
|
1
|
+
{"version":3,"file":"content-fetching.js","sourceRoot":"","sources":["../../../src/dht/content-fetching.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE/D,MAAM,MAAM,GAAG;IACb,GAAG,EAAE,gBAAgB,CAAC;QACpB,oBAAoB,CAAC,MAAM,CAAC;QAC5B,oBAAoB,CAAC,sDAAsD,EAAE,QAAQ,CAAC;KACvF,CAAC;IACF,KAAK,EAAE,oBAAoB,CAAC,wlBAAwlB,EAAE,KAAK,CAAC;CAC7nB,CAAA;AAED,MAAM,UAAU,oBAAoB,CAAE,OAAsB;IAC1D,MAAM,SAAS,GAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAE1C,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;QAC7B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;YAC7B,uBAAuB,CACrB,OAAO,EACP,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAC1B,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAC3B,CAAA;SACF;KACF;AACH,CAAC;AAED,SAAS,uBAAuB,CAAE,OAAsB,EAAE,QAAsB,EAAE,QAAsB;IACtG,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,IAAI,OAAe,CAAA;QACnB,IAAI,OAAe,CAAA;QAEnB,gBAAgB;QAChB,MAAM,CAAC,KAAK;YACV,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;YAEvB,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACvC,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YAEvC,eAAe;YACf,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;YAEjD,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;YAE/D,iDAAiD;YACjD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;QAEF,eAAe;QACf,KAAK,CAAC,KAAK;YACT,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,OAAO,EAAE,OAAO,CAAC;iBACf,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA,CAAC,CAAC,CAAC,CACtC,CAAA;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,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YAEtD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACrD,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -16,32 +16,36 @@ export function contentRoutingTests(factory) {
|
|
|
16
16
|
}
|
|
17
17
|
function runContentRoutingTests(factory, optionsA, optionsB) {
|
|
18
18
|
describe('dht.contentRouting', () => {
|
|
19
|
-
let
|
|
19
|
+
let daemonA;
|
|
20
|
+
let daemonB;
|
|
21
|
+
let daemonC;
|
|
20
22
|
let identify;
|
|
21
23
|
// Start Daemons
|
|
22
24
|
before(async function () {
|
|
23
25
|
this.timeout(20 * 1000);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
daemonA = await factory.spawn(optionsA);
|
|
27
|
+
daemonB = await factory.spawn(optionsB);
|
|
28
|
+
daemonC = await factory.spawn(optionsB);
|
|
29
|
+
identify = await Promise.all([
|
|
30
|
+
daemonA.client.identify(),
|
|
31
|
+
daemonB.client.identify(),
|
|
32
|
+
daemonC.client.identify()
|
|
28
33
|
]);
|
|
29
|
-
|
|
30
|
-
await
|
|
31
|
-
await daemons[0].client.connect(identify[2].peerId, identify[2].addrs);
|
|
34
|
+
await daemonA.client.connect(identify[1].peerId, identify[1].addrs);
|
|
35
|
+
await daemonA.client.connect(identify[2].peerId, identify[2].addrs);
|
|
32
36
|
// get the peers in the table
|
|
33
37
|
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
34
38
|
});
|
|
35
39
|
// Stop daemons
|
|
36
40
|
after(async function () {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
await Promise.all([daemonA, daemonB]
|
|
42
|
+
.filter(Boolean)
|
|
43
|
+
.map(async (d) => { await d.stop(); }));
|
|
40
44
|
});
|
|
41
45
|
it(`${optionsA.type} peer to ${optionsB.type} peer`, async function () {
|
|
42
46
|
const cid = CID.parse('QmVzw6MPsF96TyXBSRs1ptLoVMWRv5FCYJZZGJSVB2Hp39');
|
|
43
|
-
await
|
|
44
|
-
const providers = await all(
|
|
47
|
+
await daemonA.client.dht.provide(cid);
|
|
48
|
+
const providers = await all(daemonB.client.dht.findProviders(cid, 1));
|
|
45
49
|
expect(providers).to.exist();
|
|
46
50
|
expect(providers.length).to.be.greaterThan(0);
|
|
47
51
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-routing.js","sourceRoot":"","sources":["../../../src/dht/content-routing.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,GAAG,MAAM,QAAQ,CAAA;AAIxB,MAAM,UAAU,mBAAmB,CAAE,OAAsB;IACzD,MAAM,SAAS,GAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAE1C,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;QAC7B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;YAC7B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE;gBACpC,gEAAgE;gBAChE,SAAQ;aACT;YAED,sBAAsB,CACpB,OAAO,EACP,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAC1B,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAC3B,CAAA;SACF;KACF;AACH,CAAC;AAED,SAAS,sBAAsB,CAAE,OAAsB,EAAE,QAAsB,EAAE,QAAsB;IACrG,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,IAAI,
|
|
1
|
+
{"version":3,"file":"content-routing.js","sourceRoot":"","sources":["../../../src/dht/content-routing.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,32 +11,32 @@ export function peerRoutingTests(factory) {
|
|
|
11
11
|
}
|
|
12
12
|
function runPeerRoutingTests(factory, optionsA, optionsB) {
|
|
13
13
|
describe('dht.peerRouting', () => {
|
|
14
|
-
let
|
|
14
|
+
let daemonA;
|
|
15
|
+
let daemonB;
|
|
16
|
+
let daemonC;
|
|
15
17
|
// Start Daemons
|
|
16
18
|
before(async function () {
|
|
17
19
|
this.timeout(20 * 1000);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
factory.spawn(optionsB)
|
|
22
|
-
]);
|
|
20
|
+
daemonA = await factory.spawn(optionsA);
|
|
21
|
+
daemonB = await factory.spawn(optionsB);
|
|
22
|
+
daemonC = await factory.spawn(optionsB);
|
|
23
23
|
});
|
|
24
24
|
// Stop daemons
|
|
25
25
|
after(async function () {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
await Promise.all([daemonA, daemonB, daemonC]
|
|
27
|
+
.filter(Boolean)
|
|
28
|
+
.map(async (d) => { await d.stop(); }));
|
|
29
29
|
});
|
|
30
30
|
it(`${optionsA.type} peer to ${optionsB.type} peer`, async function () {
|
|
31
|
-
const identify1 = await
|
|
32
|
-
const identify2 = await
|
|
31
|
+
const identify1 = await daemonB.client.identify();
|
|
32
|
+
const identify2 = await daemonC.client.identify();
|
|
33
33
|
// peers need at least one peer in their routing table or they fail with:
|
|
34
34
|
// connect 0 => 1
|
|
35
|
-
await
|
|
35
|
+
await daemonA.client.connect(identify1.peerId, identify1.addrs);
|
|
36
36
|
// connect 0 => 2
|
|
37
|
-
await
|
|
37
|
+
await daemonA.client.connect(identify2.peerId, identify2.addrs);
|
|
38
38
|
// peer 1 find peer 2, retry up to 10 times to allow the routing table to refresh
|
|
39
|
-
const peerData = await pRetry(async () => await
|
|
39
|
+
const peerData = await pRetry(async () => await daemonB.client.dht.findPeer(identify2.peerId), { retries: 10 });
|
|
40
40
|
expect(identify2.addrs.map(ma => ma.toString())).to.include.deep.members(peerData.multiaddrs.map(ma => ma.toString()));
|
|
41
41
|
});
|
|
42
42
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-routing.js","sourceRoot":"","sources":["../../../src/dht/peer-routing.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,MAAM,MAAM,SAAS,CAAA;AAG5B,MAAM,UAAU,gBAAgB,CAAE,OAAsB;IACtD,MAAM,SAAS,GAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAE1C,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;QAC7B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;YAC7B,mBAAmB,CACjB,OAAO,EACP,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAC1B,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAC3B,CAAA;SACF;KACF;AACH,CAAC;AAED,SAAS,mBAAmB,CAAE,OAAsB,EAAE,QAAsB,EAAE,QAAsB;IAClG,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAI,
|
|
1
|
+
{"version":3,"file":"peer-routing.js","sourceRoot":"","sources":["../../../src/dht/peer-routing.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,MAAM,MAAM,SAAS,CAAA;AAG5B,MAAM,UAAU,gBAAgB,CAAE,OAAsB;IACtD,MAAM,SAAS,GAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAE1C,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;QAC7B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;YAC7B,mBAAmB,CACjB,OAAO,EACP,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAC1B,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAC3B,CAAA;SACF;KACF;AACH,CAAC;AAED,SAAS,mBAAmB,CAAE,OAAsB,EAAE,QAAsB,EAAE,QAAsB;IAClG,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAI,OAAe,CAAA;QACnB,IAAI,OAAe,CAAA;QACnB,IAAI,OAAe,CAAA;QAEnB,gBAAgB;QAChB,MAAM,CAAC,KAAK;YACV,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;YAEvB,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACvC,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACvC,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,eAAe;QACf,KAAK,CAAC,KAAK;YACT,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;iBACxB,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA,CAAC,CAAC,CAAC,CACtC,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,YAAY,QAAQ,CAAC,IAAI,OAAO,EAAE,KAAK;YACxD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;YACjD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;YAEjD,yEAAyE;YACzE,iBAAiB;YACjB,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;YAE/D,iBAAiB;YACjB,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;YAE/D,iFAAiF;YACjF,MAAM,QAAQ,GAAa,MAAM,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;YAEzH,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QACxH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { expect } from 'aegir/chai';
|
|
3
3
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
4
4
|
import first from 'it-first';
|
|
5
|
-
import {
|
|
5
|
+
import { waitForSubscribed } from './utils.js';
|
|
6
6
|
export function floodsubTests(factory) {
|
|
7
7
|
const nodeTypes = ['js', 'go'];
|
|
8
8
|
for (const typeA of nodeTypes) {
|
|
@@ -13,37 +13,34 @@ export function floodsubTests(factory) {
|
|
|
13
13
|
}
|
|
14
14
|
function runFloodsubTests(factory, optionsA, optionsB) {
|
|
15
15
|
describe('pubsub.floodSub', () => {
|
|
16
|
-
let
|
|
16
|
+
let daemonA;
|
|
17
|
+
let daemonB;
|
|
17
18
|
// Start Daemons
|
|
18
19
|
before(async function () {
|
|
19
20
|
this.timeout(20 * 1000);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const [peerA, peerB] = daemons;
|
|
25
|
-
const identifyB = await peerB.client.identify();
|
|
26
|
-
await peerA.client.connect(identifyB.peerId, identifyB.addrs);
|
|
21
|
+
daemonA = await factory.spawn(optionsA);
|
|
22
|
+
daemonB = await factory.spawn(optionsB);
|
|
23
|
+
const identifyB = await daemonB.client.identify();
|
|
24
|
+
await daemonA.client.connect(identifyB.peerId, identifyB.addrs);
|
|
27
25
|
});
|
|
28
26
|
// Stop daemons
|
|
29
27
|
after(async function () {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
await Promise.all([daemonA, daemonB]
|
|
29
|
+
.filter(Boolean)
|
|
30
|
+
.map(async (d) => { await d.stop(); }));
|
|
33
31
|
});
|
|
34
32
|
it(`${optionsA.type} peer to ${optionsB.type} peer`, async function () {
|
|
35
33
|
const topic = 'test-topic';
|
|
36
34
|
const data = uint8ArrayFromString('test-data');
|
|
37
|
-
const
|
|
38
|
-
const subscription = await peerB.client.pubsub.subscribe(topic);
|
|
35
|
+
const subscription = await daemonB.client.pubsub.subscribe(topic);
|
|
39
36
|
const subscriber = async () => {
|
|
40
37
|
const message = await first(subscription.messages());
|
|
41
38
|
expect(message).to.exist();
|
|
42
39
|
expect(message).to.have.property('data').that.equalBytes(data);
|
|
43
40
|
};
|
|
44
41
|
const publisher = async () => {
|
|
45
|
-
await
|
|
46
|
-
await
|
|
42
|
+
await waitForSubscribed(topic, daemonA, daemonB);
|
|
43
|
+
await daemonA.client.pubsub.publish(topic, data);
|
|
47
44
|
};
|
|
48
45
|
return await Promise.all([
|
|
49
46
|
subscriber(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floodsub.js","sourceRoot":"","sources":["../../../src/pubsub/floodsub.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"floodsub.js","sourceRoot":"","sources":["../../../src/pubsub/floodsub.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { expect } from 'aegir/chai';
|
|
3
3
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
4
4
|
import first from 'it-first';
|
|
5
|
-
import {
|
|
5
|
+
import { waitForSubscribed } from './utils.js';
|
|
6
6
|
export function gossipsubTests(factory) {
|
|
7
7
|
const nodeTypes = ['js', 'go'];
|
|
8
8
|
for (const typeA of nodeTypes) {
|
|
@@ -13,37 +13,34 @@ export function gossipsubTests(factory) {
|
|
|
13
13
|
}
|
|
14
14
|
function runGossipsubTests(factory, optionsA, optionsB) {
|
|
15
15
|
describe('pubsub.gossipsub', () => {
|
|
16
|
-
let
|
|
16
|
+
let daemonA;
|
|
17
|
+
let daemonB;
|
|
17
18
|
// Start Daemons
|
|
18
19
|
before(async function () {
|
|
19
20
|
this.timeout(20 * 1000);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const [peerA, peerB] = daemons;
|
|
25
|
-
const identifyB = await peerB.client.identify();
|
|
26
|
-
await peerA.client.connect(identifyB.peerId, identifyB.addrs);
|
|
21
|
+
daemonA = await factory.spawn(optionsA);
|
|
22
|
+
daemonB = await factory.spawn(optionsB);
|
|
23
|
+
const identifyB = await daemonB.client.identify();
|
|
24
|
+
await daemonA.client.connect(identifyB.peerId, identifyB.addrs);
|
|
27
25
|
});
|
|
28
26
|
// Stop daemons
|
|
29
27
|
after(async function () {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
await Promise.all([daemonA, daemonB]
|
|
29
|
+
.filter(Boolean)
|
|
30
|
+
.map(async (d) => { await d.stop(); }));
|
|
33
31
|
});
|
|
34
32
|
it(`${optionsA.type} peer to ${optionsB.type} peer`, async function () {
|
|
35
33
|
const topic = 'test-topic';
|
|
36
34
|
const data = uint8ArrayFromString('test-data');
|
|
37
|
-
const
|
|
38
|
-
const subscription = await peerB.client.pubsub.subscribe(topic);
|
|
35
|
+
const subscription = await daemonB.client.pubsub.subscribe(topic);
|
|
39
36
|
const subscriber = async () => {
|
|
40
37
|
const message = await first(subscription.messages());
|
|
41
38
|
expect(message).to.exist();
|
|
42
39
|
expect(message).to.have.property('data').that.equalBytes(data);
|
|
43
40
|
};
|
|
44
41
|
const publisher = async () => {
|
|
45
|
-
await
|
|
46
|
-
await
|
|
42
|
+
await waitForSubscribed(topic, daemonA, daemonB);
|
|
43
|
+
await daemonA.client.pubsub.publish(topic, data);
|
|
47
44
|
};
|
|
48
45
|
return await Promise.all([
|
|
49
46
|
subscriber(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gossipsub.js","sourceRoot":"","sources":["../../../src/pubsub/gossipsub.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"gossipsub.js","sourceRoot":"","sources":["../../../src/pubsub/gossipsub.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { expect } from 'aegir/chai';
|
|
3
3
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
4
4
|
import first from 'it-first';
|
|
5
|
-
import {
|
|
5
|
+
import { waitForSubscribed } from './utils.js';
|
|
6
6
|
export function hybridTests(factory) {
|
|
7
7
|
const nodeTypes = ['js', 'go'];
|
|
8
8
|
for (const typeA of nodeTypes) {
|
|
@@ -13,37 +13,34 @@ export function hybridTests(factory) {
|
|
|
13
13
|
}
|
|
14
14
|
function runHybridTests(factory, optionsA, optionsB) {
|
|
15
15
|
describe('pubsub.hybrid', () => {
|
|
16
|
-
let
|
|
16
|
+
let daemonA;
|
|
17
|
+
let daemonB;
|
|
17
18
|
// Start Daemons
|
|
18
19
|
before(async function () {
|
|
19
20
|
this.timeout(20 * 1000);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const [peerA, peerB] = daemons;
|
|
25
|
-
const identifyB = await peerB.client.identify();
|
|
26
|
-
await peerA.client.connect(identifyB.peerId, identifyB.addrs);
|
|
21
|
+
daemonA = await factory.spawn(optionsA);
|
|
22
|
+
daemonB = await factory.spawn(optionsB);
|
|
23
|
+
const identifyB = await daemonB.client.identify();
|
|
24
|
+
await daemonA.client.connect(identifyB.peerId, identifyB.addrs);
|
|
27
25
|
});
|
|
28
26
|
// Stop daemons
|
|
29
27
|
after(async function () {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
await Promise.all([daemonA, daemonB]
|
|
29
|
+
.filter(Boolean)
|
|
30
|
+
.map(async (d) => { await d.stop(); }));
|
|
33
31
|
});
|
|
34
32
|
it(`${optionsA.type} peer to ${optionsB.type} peer`, async function () {
|
|
35
33
|
const topic = 'test-topic';
|
|
36
34
|
const data = uint8ArrayFromString('test-data');
|
|
37
|
-
const
|
|
38
|
-
const subscription = await peerB.client.pubsub.subscribe(topic);
|
|
35
|
+
const subscription = await daemonB.client.pubsub.subscribe(topic);
|
|
39
36
|
const subscriber = async () => {
|
|
40
37
|
const message = await first(subscription.messages());
|
|
41
38
|
expect(message).to.exist();
|
|
42
39
|
expect(message).to.have.property('data').that.equalBytes(data);
|
|
43
40
|
};
|
|
44
41
|
const publisher = async () => {
|
|
45
|
-
await
|
|
46
|
-
await
|
|
42
|
+
await waitForSubscribed(topic, daemonA, daemonB);
|
|
43
|
+
await daemonA.client.pubsub.publish(topic, data);
|
|
47
44
|
};
|
|
48
45
|
return await Promise.all([
|
|
49
46
|
subscriber(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybrid.js","sourceRoot":"","sources":["../../../src/pubsub/hybrid.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"hybrid.js","sourceRoot":"","sources":["../../../src/pubsub/hybrid.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import type { Daemon } from '
|
|
2
|
-
|
|
1
|
+
import type { Daemon } from '../index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Wait for daemon a to see daemon b in it's subscriber list
|
|
4
|
+
* for the passed topic
|
|
5
|
+
*/
|
|
6
|
+
export declare function waitForSubscribed(topic: string, a: Daemon, b: Daemon): Promise<void>;
|
|
3
7
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/pubsub/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/pubsub/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC;;;GAGG;AACH,wBAAsB,iBAAiB,CAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc3F"}
|
package/dist/src/pubsub/utils.js
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
import pWaitFor from 'p-wait-for';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import delay from 'delay';
|
|
3
|
+
/**
|
|
4
|
+
* Wait for daemon a to see daemon b in it's subscriber list
|
|
5
|
+
* for the passed topic
|
|
6
|
+
*/
|
|
7
|
+
export async function waitForSubscribed(topic, a, b) {
|
|
6
8
|
const idB = await b.client.identify();
|
|
7
9
|
// wait for subscription stream
|
|
8
|
-
await
|
|
9
|
-
await
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return peers.map(p => p.toString()).includes(idA.peerId.toString());
|
|
18
|
-
}, {
|
|
19
|
-
interval: 500
|
|
20
|
-
})
|
|
21
|
-
]);
|
|
10
|
+
await pWaitFor(async () => {
|
|
11
|
+
const peers = await a.client.pubsub.getSubscribers(topic);
|
|
12
|
+
return peers.map(p => p.toString()).includes(idB.peerId.toString());
|
|
13
|
+
}, {
|
|
14
|
+
interval: 500
|
|
15
|
+
});
|
|
16
|
+
// just having a peer in the subscriber list is not a guarentee they will recieve the
|
|
17
|
+
// message - we have to also wait for the gossipsub heartbeat to rebalance the mesh
|
|
18
|
+
await delay(2000);
|
|
22
19
|
}
|
|
23
20
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/pubsub/utils.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/pubsub/utils.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAE,KAAa,EAAE,CAAS,EAAE,CAAS;IAC1E,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;IAErC,+BAA+B;IAC/B,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACzD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IACrE,CAAC,EAAE;QACD,QAAQ,EAAE,GAAG;KACd,CAAC,CAAA;IAEF,qFAAqF;IACrF,mFAAmF;IACnF,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;AACnB,CAAC"}
|
package/dist/src/relay/index.js
CHANGED
|
@@ -23,7 +23,9 @@ function relayTest(factory, aType, bType, relayType) {
|
|
|
23
23
|
let bAddrViaRelay;
|
|
24
24
|
beforeEach(async function () {
|
|
25
25
|
this.timeout(20 * 1000);
|
|
26
|
-
|
|
26
|
+
aNode = await factory.spawn(opts[0]);
|
|
27
|
+
bNode = await factory.spawn(opts[1]);
|
|
28
|
+
relay = await factory.spawn(opts[2]);
|
|
27
29
|
[bId, relayId] = await Promise.all([bNode, relay].map(async (d) => await d.client.identify()));
|
|
28
30
|
// construct a relay address
|
|
29
31
|
bAddrViaRelay = multiaddr(`${relayId.addrs[0].toString()}/p2p/${relayId.peerId.toString()}/p2p-circuit/p2p/${bId.peerId.toString()}`);
|
|
@@ -31,7 +33,11 @@ function relayTest(factory, aType, bType, relayType) {
|
|
|
31
33
|
await bNode.client.connect(relayId.peerId, relayId.addrs);
|
|
32
34
|
});
|
|
33
35
|
afterEach(async function () {
|
|
34
|
-
await Promise.all([aNode, bNode, relay].map(async (d) => {
|
|
36
|
+
await Promise.all([aNode, bNode, relay].map(async (d) => {
|
|
37
|
+
if (d != null) {
|
|
38
|
+
await d.stop();
|
|
39
|
+
}
|
|
40
|
+
}));
|
|
35
41
|
});
|
|
36
42
|
it('connects', async () => {
|
|
37
43
|
// b makes reservation on relay
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE5E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,MAAM,UAAU,UAAU,CAAE,OAAsB;IAChD,MAAM,CAAC,GAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAClC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;AACzF,CAAC;AAED,SAAS,SAAS,CAAE,OAAsB,EAAE,KAAe,EAAE,KAAe,EAAE,SAAmB;IAC/F,QAAQ,CAAC,GAAG,KAAK,OAAO,KAAK,eAAe,SAAS,EAAE,EAAE,GAAG,EAAE;QAC5D,MAAM,IAAI,GAAmB;YAC3B,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;SAC9C,CAAA;QAED,IAAI,KAAa,CAAA;QACjB,IAAI,KAAa,CAAA;QACjB,IAAI,KAAa,CAAA;QACjB,IAAI,GAAmB,CAAA;QACvB,IAAI,OAAuB,CAAA;QAC3B,IAAI,aAAwB,CAAA;QAE5B,UAAU,CAAC,KAAK;YACd,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relay/index.ts"],"names":[],"mappings":"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"}
|