@dxos/messaging 0.8.3 → 0.8.4-main.1da679c

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 (67) hide show
  1. package/dist/lib/browser/{chunk-ISA3S2ZX.mjs → chunk-46VUJLOF.mjs} +451 -334
  2. package/dist/lib/browser/chunk-46VUJLOF.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +1 -1
  4. package/dist/lib/browser/meta.json +1 -1
  5. package/dist/lib/browser/testing/index.mjs +46 -17
  6. package/dist/lib/browser/testing/index.mjs.map +3 -3
  7. package/dist/lib/node-esm/{chunk-SO4RY3ON.mjs → chunk-4SVYY5G5.mjs} +451 -334
  8. package/dist/lib/node-esm/chunk-4SVYY5G5.mjs.map +7 -0
  9. package/dist/lib/node-esm/index.mjs +1 -1
  10. package/dist/lib/node-esm/meta.json +1 -1
  11. package/dist/lib/node-esm/testing/index.mjs +46 -17
  12. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  13. package/dist/types/src/messenger.blueprint-test.d.ts.map +1 -1
  14. package/dist/types/src/messenger.d.ts +1 -1
  15. package/dist/types/src/messenger.d.ts.map +1 -1
  16. package/dist/types/src/signal-client/signal-client.d.ts +2 -2
  17. package/dist/types/src/signal-client/signal-client.d.ts.map +1 -1
  18. package/dist/types/src/signal-client/signal-local-state.d.ts +1 -1
  19. package/dist/types/src/signal-client/signal-local-state.d.ts.map +1 -1
  20. package/dist/types/src/signal-client/signal-rpc-client.d.ts.map +1 -1
  21. package/dist/types/src/signal-manager/edge-signal-manager.d.ts +1 -1
  22. package/dist/types/src/signal-manager/edge-signal-manager.d.ts.map +1 -1
  23. package/dist/types/src/signal-manager/index.d.ts +1 -1
  24. package/dist/types/src/signal-manager/index.d.ts.map +1 -1
  25. package/dist/types/src/signal-manager/memory-signal-manager.d.ts +1 -1
  26. package/dist/types/src/signal-manager/memory-signal-manager.d.ts.map +1 -1
  27. package/dist/types/src/signal-manager/signal-manager.d.ts +1 -1
  28. package/dist/types/src/signal-manager/signal-manager.d.ts.map +1 -1
  29. package/dist/types/src/signal-manager/websocket-signal-manager.d.ts +1 -1
  30. package/dist/types/src/signal-manager/websocket-signal-manager.d.ts.map +1 -1
  31. package/dist/types/src/signal-methods.d.ts +2 -2
  32. package/dist/types/src/signal-methods.d.ts.map +1 -1
  33. package/dist/types/src/testing/test-builder.d.ts +1 -1
  34. package/dist/types/src/testing/test-builder.d.ts.map +1 -1
  35. package/dist/types/src/testing/test-peer.d.ts +1 -1
  36. package/dist/types/src/testing/test-peer.d.ts.map +1 -1
  37. package/dist/types/src/testing/utils.d.ts +1 -1
  38. package/dist/types/src/testing/utils.d.ts.map +1 -1
  39. package/dist/types/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +18 -16
  41. package/src/messenger.blueprint-test.ts +2 -2
  42. package/src/messenger.node.test.ts +2 -2
  43. package/src/messenger.ts +1 -1
  44. package/src/signal-client/signal-client.node.test.ts +4 -3
  45. package/src/signal-client/signal-client.ts +7 -6
  46. package/src/signal-client/signal-local-state.ts +4 -3
  47. package/src/signal-client/signal-rpc-client.node.test.ts +1 -1
  48. package/src/signal-client/signal-rpc-client.ts +4 -4
  49. package/src/signal-manager/edge-signal-manager.ts +6 -5
  50. package/src/signal-manager/index.ts +1 -1
  51. package/src/signal-manager/memory-signal-manager.ts +2 -1
  52. package/src/signal-manager/signal-manager.ts +1 -1
  53. package/src/signal-manager/websocket-signal-manager.node.test.ts +3 -2
  54. package/src/signal-manager/websocket-signal-manager.ts +4 -3
  55. package/src/signal-methods.ts +3 -3
  56. package/src/testing/test-builder.ts +3 -2
  57. package/src/testing/test-peer.ts +3 -2
  58. package/src/testing/utils.ts +3 -2
  59. package/dist/lib/browser/chunk-ISA3S2ZX.mjs.map +0 -7
  60. package/dist/lib/node/chunk-GMND65DN.cjs +0 -2291
  61. package/dist/lib/node/chunk-GMND65DN.cjs.map +0 -7
  62. package/dist/lib/node/index.cjs +0 -43
  63. package/dist/lib/node/index.cjs.map +0 -7
  64. package/dist/lib/node/meta.json +0 -1
  65. package/dist/lib/node/testing/index.cjs +0 -159
  66. package/dist/lib/node/testing/index.cjs.map +0 -7
  67. package/dist/lib/node-esm/chunk-SO4RY3ON.mjs.map +0 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/testing/test-peer.ts", "../../../../src/testing/utils.ts", "../../../../src/testing/test-messages.ts", "../../../../src/testing/test-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { Event } from '@dxos/async';\nimport { Resource } from '@dxos/context';\nimport { PeerSchema } from '@dxos/edge-client';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { buf } from '@dxos/protocols/buf';\n\nimport { type TestBuilder } from './test-builder';\nimport { expectPeerAvailable, expectPeerLeft, expectReceivedMessage } from './utils';\nimport { Messenger } from '../messenger';\nimport { type SignalManager } from '../signal-manager';\nimport { type Message, type PeerInfo } from '../signal-methods';\n\nexport class TestPeer extends Resource {\n public peerId = PublicKey.random();\n public signalManager!: SignalManager;\n public messenger!: Messenger;\n public defaultReceived = new Event<Message>();\n\n constructor(private readonly testBuilder: TestBuilder) {\n super();\n }\n\n get peerInfo(): PeerInfo {\n return buf.create(PeerSchema, { peerKey: this.peerId.toHex(), identityKey: this.peerId.toHex() });\n }\n\n async waitTillReceive(message: Message): Promise<Message> {\n return expectReceivedMessage(this.defaultReceived, message);\n }\n\n async waitForPeerAvailable(topic: PublicKey, peer: PeerInfo) {\n return expectPeerAvailable(this.signalManager, topic, peer);\n }\n\n async waitForPeerLeft(topic: PublicKey, peer: PeerInfo) {\n return expectPeerLeft(this.signalManager, topic, peer);\n }\n\n protected override async _open(): Promise<void> {\n this.signalManager = await this.testBuilder.createSignalManager(this);\n this.messenger = new Messenger({ signalManager: this.signalManager, retryDelay: 300 });\n\n await this.signalManager.open();\n this.messenger.open();\n await this.messenger\n .listen({\n peer: this.peerInfo,\n onMessage: async (msg) => {\n this.defaultReceived.emit(msg);\n },\n })\n .catch((err) => log.catch(err));\n }\n\n protected override async _close(): Promise<void> {\n await this.messenger.close();\n await this.signalManager.close();\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { asyncTimeout, type Event } from '@dxos/async';\nimport { type Any } from '@dxos/codec-protobuf';\nimport { PublicKey } from '@dxos/keys';\n\nimport { PAYLOAD_1 } from './test-messages';\nimport { type SignalMethods, type Message, type PeerInfo } from '../signal-methods';\n\nexport const expectPeerAvailable = (client: SignalMethods, expectedTopic: PublicKey, peer: PeerInfo) =>\n asyncTimeout(\n client.swarmEvent.waitFor(\n ({ peerAvailable, topic }) =>\n !!peerAvailable && peer.peerKey === peerAvailable.peer.peerKey && expectedTopic.equals(topic),\n ),\n 6000,\n );\n\nexport const expectPeerLeft = (client: SignalMethods, expectedTopic: PublicKey, peer: PeerInfo) =>\n asyncTimeout(\n client.swarmEvent.waitFor(\n ({ peerLeft, topic }) => !!peerLeft && peer.peerKey === peerLeft.peer.peerKey && expectedTopic.equals(topic),\n ),\n 6000,\n );\n\nexport const expectReceivedMessage = (event: Event<Message>, expectedMessage: Message) => {\n return asyncTimeout(\n event.waitFor(\n (msg) =>\n msg.author.peerKey === expectedMessage.author.peerKey &&\n msg.recipient.peerKey === expectedMessage.recipient.peerKey &&\n PublicKey.from(msg.payload.value).equals(expectedMessage.payload.value),\n ),\n 5000,\n );\n};\n\nexport const createMessage = (author: PeerInfo, recipient: PeerInfo, payload: Any = PAYLOAD_1): Message => ({\n author,\n recipient,\n payload,\n});\n\nexport const messageEqual = (msg1: Message, msg2: Message) =>\n msg1.author.peerKey === msg2.author.peerKey &&\n msg1.recipient.peerKey === msg2.recipient.peerKey &&\n PublicKey.from(msg1.payload.value).equals(msg2.payload.value);\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type TaggedType } from '@dxos/codec-protobuf';\nimport { type TYPES } from '@dxos/protocols/proto';\n\nexport const PAYLOAD_1: TaggedType<TYPES, 'google.protobuf.Any'> = {\n '@type': 'google.protobuf.Any',\n type_url: 'dxos.Example1',\n value: Buffer.from('1'),\n};\n\nexport const PAYLOAD_2: TaggedType<TYPES, 'google.protobuf.Any'> = {\n '@type': 'google.protobuf.Any',\n type_url: 'dxos.Example2',\n value: Buffer.from('2'),\n};\n\nexport const PAYLOAD_3: TaggedType<TYPES, 'google.protobuf.Any'> = {\n '@type': 'google.protobuf.Any',\n type_url: 'dxos.Example3',\n value: Buffer.from('3'),\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { TestPeer } from './test-peer';\nimport { type SignalManager, MemorySignalManager, MemorySignalManagerContext } from '../signal-manager';\nimport { type Message } from '../signal-methods';\n\nexport type TestBuilderOptions = {\n signalManagerFactory?: (peer: TestPeer) => Promise<SignalManager>;\n messageDisruption?: (msg: Message) => Message[];\n};\n\nexport class TestBuilder {\n private _signalContext = new MemorySignalManagerContext();\n private readonly _peers: TestPeer[] = [];\n\n constructor(public options: TestBuilderOptions) {}\n\n async createSignalManager(peer: TestPeer): Promise<SignalManager> {\n const signalManager =\n (await this.options.signalManagerFactory?.(peer)) ?? new MemorySignalManager(this._signalContext);\n\n if (this.options.messageDisruption) {\n // Imitates signal network disruptions (e. g. message doubling, ).\n const trueSend = signalManager.sendMessage.bind(signalManager);\n signalManager.sendMessage = async (message: Message) => {\n for (const msg of this.options.messageDisruption!(message)) {\n await trueSend(msg);\n }\n };\n }\n\n return signalManager;\n }\n\n async createPeer(): Promise<TestPeer> {\n const peer = new TestPeer(this);\n await peer.open();\n this._peers.push(peer);\n return peer;\n }\n\n async createPeers(count: number): Promise<TestPeer[]> {\n return Promise.all(Array.from({ length: count }, () => this.createPeer()));\n }\n\n async close(): Promise<void> {\n await Promise.all(this._peers.map((peer) => peer.close()));\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["Event", "Resource", "PeerSchema", "PublicKey", "log", "buf", "asyncTimeout", "PublicKey", "PAYLOAD_1", "type_url", "value", "Buffer", "from", "PAYLOAD_2", "PAYLOAD_3", "expectPeerAvailable", "client", "expectedTopic", "peer", "asyncTimeout", "swarmEvent", "waitFor", "peerAvailable", "topic", "peerKey", "equals", "expectPeerLeft", "peerLeft", "expectReceivedMessage", "event", "expectedMessage", "msg", "author", "recipient", "PublicKey", "from", "payload", "value", "createMessage", "PAYLOAD_1", "messageEqual", "msg1", "msg2", "TestPeer", "Resource", "testBuilder", "peerId", "PublicKey", "random", "defaultReceived", "Event", "peerInfo", "buf", "create", "PeerSchema", "peerKey", "toHex", "identityKey", "waitTillReceive", "message", "expectReceivedMessage", "waitForPeerAvailable", "topic", "peer", "expectPeerAvailable", "signalManager", "waitForPeerLeft", "expectPeerLeft", "_open", "createSignalManager", "messenger", "Messenger", "retryDelay", "open", "listen", "onMessage", "msg", "emit", "catch", "err", "log", "_close", "close", "TestBuilder", "options", "_signalContext", "MemorySignalManagerContext", "_peers", "createSignalManager", "peer", "signalManager", "signalManagerFactory", "MemorySignalManager", "messageDisruption", "trueSend", "sendMessage", "bind", "message", "msg", "createPeer", "TestPeer", "open", "push", "createPeers", "count", "Promise", "all", "Array", "from", "length", "close", "map"]
4
+ "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { Event } from '@dxos/async';\nimport { Resource } from '@dxos/context';\nimport { PeerSchema } from '@dxos/edge-client';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { buf } from '@dxos/protocols/buf';\n\nimport { Messenger } from '../messenger';\nimport { type SignalManager } from '../signal-manager';\nimport { type Message, type PeerInfo } from '../signal-methods';\n\nimport { type TestBuilder } from './test-builder';\nimport { expectPeerAvailable, expectPeerLeft, expectReceivedMessage } from './utils';\n\nexport class TestPeer extends Resource {\n public peerId = PublicKey.random();\n public signalManager!: SignalManager;\n public messenger!: Messenger;\n public defaultReceived = new Event<Message>();\n\n constructor(private readonly testBuilder: TestBuilder) {\n super();\n }\n\n get peerInfo(): PeerInfo {\n return buf.create(PeerSchema, { peerKey: this.peerId.toHex(), identityKey: this.peerId.toHex() });\n }\n\n async waitTillReceive(message: Message): Promise<Message> {\n return expectReceivedMessage(this.defaultReceived, message);\n }\n\n async waitForPeerAvailable(topic: PublicKey, peer: PeerInfo) {\n return expectPeerAvailable(this.signalManager, topic, peer);\n }\n\n async waitForPeerLeft(topic: PublicKey, peer: PeerInfo) {\n return expectPeerLeft(this.signalManager, topic, peer);\n }\n\n protected override async _open(): Promise<void> {\n this.signalManager = await this.testBuilder.createSignalManager(this);\n this.messenger = new Messenger({ signalManager: this.signalManager, retryDelay: 300 });\n\n await this.signalManager.open();\n this.messenger.open();\n await this.messenger\n .listen({\n peer: this.peerInfo,\n onMessage: async (msg) => {\n this.defaultReceived.emit(msg);\n },\n })\n .catch((err) => log.catch(err));\n }\n\n protected override async _close(): Promise<void> {\n await this.messenger.close();\n await this.signalManager.close();\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type Event, asyncTimeout } from '@dxos/async';\nimport { type Any } from '@dxos/codec-protobuf';\nimport { PublicKey } from '@dxos/keys';\n\nimport { type Message, type PeerInfo, type SignalMethods } from '../signal-methods';\n\nimport { PAYLOAD_1 } from './test-messages';\n\nexport const expectPeerAvailable = (client: SignalMethods, expectedTopic: PublicKey, peer: PeerInfo) =>\n asyncTimeout(\n client.swarmEvent.waitFor(\n ({ peerAvailable, topic }) =>\n !!peerAvailable && peer.peerKey === peerAvailable.peer.peerKey && expectedTopic.equals(topic),\n ),\n 6000,\n );\n\nexport const expectPeerLeft = (client: SignalMethods, expectedTopic: PublicKey, peer: PeerInfo) =>\n asyncTimeout(\n client.swarmEvent.waitFor(\n ({ peerLeft, topic }) => !!peerLeft && peer.peerKey === peerLeft.peer.peerKey && expectedTopic.equals(topic),\n ),\n 6000,\n );\n\nexport const expectReceivedMessage = (event: Event<Message>, expectedMessage: Message) => {\n return asyncTimeout(\n event.waitFor(\n (msg) =>\n msg.author.peerKey === expectedMessage.author.peerKey &&\n msg.recipient.peerKey === expectedMessage.recipient.peerKey &&\n PublicKey.from(msg.payload.value).equals(expectedMessage.payload.value),\n ),\n 5000,\n );\n};\n\nexport const createMessage = (author: PeerInfo, recipient: PeerInfo, payload: Any = PAYLOAD_1): Message => ({\n author,\n recipient,\n payload,\n});\n\nexport const messageEqual = (msg1: Message, msg2: Message) =>\n msg1.author.peerKey === msg2.author.peerKey &&\n msg1.recipient.peerKey === msg2.recipient.peerKey &&\n PublicKey.from(msg1.payload.value).equals(msg2.payload.value);\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type TaggedType } from '@dxos/codec-protobuf';\nimport { type TYPES } from '@dxos/protocols/proto';\n\nexport const PAYLOAD_1: TaggedType<TYPES, 'google.protobuf.Any'> = {\n '@type': 'google.protobuf.Any',\n type_url: 'dxos.Example1',\n value: Buffer.from('1'),\n};\n\nexport const PAYLOAD_2: TaggedType<TYPES, 'google.protobuf.Any'> = {\n '@type': 'google.protobuf.Any',\n type_url: 'dxos.Example2',\n value: Buffer.from('2'),\n};\n\nexport const PAYLOAD_3: TaggedType<TYPES, 'google.protobuf.Any'> = {\n '@type': 'google.protobuf.Any',\n type_url: 'dxos.Example3',\n value: Buffer.from('3'),\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { MemorySignalManager, MemorySignalManagerContext, type SignalManager } from '../signal-manager';\nimport { type Message } from '../signal-methods';\n\nimport { TestPeer } from './test-peer';\n\nexport type TestBuilderOptions = {\n signalManagerFactory?: (peer: TestPeer) => Promise<SignalManager>;\n messageDisruption?: (msg: Message) => Message[];\n};\n\nexport class TestBuilder {\n private _signalContext = new MemorySignalManagerContext();\n private readonly _peers: TestPeer[] = [];\n\n constructor(public options: TestBuilderOptions) {}\n\n async createSignalManager(peer: TestPeer): Promise<SignalManager> {\n const signalManager =\n (await this.options.signalManagerFactory?.(peer)) ?? new MemorySignalManager(this._signalContext);\n\n if (this.options.messageDisruption) {\n // Imitates signal network disruptions (e. g. message doubling, ).\n const trueSend = signalManager.sendMessage.bind(signalManager);\n signalManager.sendMessage = async (message: Message) => {\n for (const msg of this.options.messageDisruption!(message)) {\n await trueSend(msg);\n }\n };\n }\n\n return signalManager;\n }\n\n async createPeer(): Promise<TestPeer> {\n const peer = new TestPeer(this);\n await peer.open();\n this._peers.push(peer);\n return peer;\n }\n\n async createPeers(count: number): Promise<TestPeer[]> {\n return Promise.all(Array.from({ length: count }, () => this.createPeer()));\n }\n\n async close(): Promise<void> {\n await Promise.all(this._peers.map((peer) => peer.close()));\n }\n}\n"],
5
+ "mappings": ";;;;;;;;AAIA,SAASA,aAAa;AACtB,SAASC,gBAAgB;AACzB,SAASC,kBAAkB;AAC3B,SAASC,aAAAA,kBAAiB;AAC1B,SAASC,WAAW;AACpB,SAASC,WAAW;;;ACLpB,SAAqBC,oBAAoB;AAEzC,SAASC,iBAAiB;;;ACCnB,IAAMC,YAAsD;EACjE,SAAS;EACTC,UAAU;EACVC,OAAOC,OAAOC,KAAK,GAAA;AACrB;AAEO,IAAMC,YAAsD;EACjE,SAAS;EACTJ,UAAU;EACVC,OAAOC,OAAOC,KAAK,GAAA;AACrB;AAEO,IAAME,YAAsD;EACjE,SAAS;EACTL,UAAU;EACVC,OAAOC,OAAOC,KAAK,GAAA;AACrB;;;ADXO,IAAMG,sBAAsB,CAACC,QAAuBC,eAA0BC,SACnFC,aACEH,OAAOI,WAAWC,QAChB,CAAC,EAAEC,eAAeC,MAAK,MACrB,CAAC,CAACD,iBAAiBJ,KAAKM,YAAYF,cAAcJ,KAAKM,WAAWP,cAAcQ,OAAOF,KAAAA,CAAAA,GAE3F,GAAA;AAGG,IAAMG,iBAAiB,CAACV,QAAuBC,eAA0BC,SAC9EC,aACEH,OAAOI,WAAWC,QAChB,CAAC,EAAEM,UAAUJ,MAAK,MAAO,CAAC,CAACI,YAAYT,KAAKM,YAAYG,SAAST,KAAKM,WAAWP,cAAcQ,OAAOF,KAAAA,CAAAA,GAExG,GAAA;AAGG,IAAMK,wBAAwB,CAACC,OAAuBC,oBAAAA;AAC3D,SAAOX,aACLU,MAAMR,QACJ,CAACU,QACCA,IAAIC,OAAOR,YAAYM,gBAAgBE,OAAOR,WAC9CO,IAAIE,UAAUT,YAAYM,gBAAgBG,UAAUT,WACpDU,UAAUC,KAAKJ,IAAIK,QAAQC,KAAK,EAAEZ,OAAOK,gBAAgBM,QAAQC,KAAK,CAAA,GAE1E,GAAA;AAEJ;AAEO,IAAMC,gBAAgB,CAACN,QAAkBC,WAAqBG,UAAeG,eAAwB;EAC1GP;EACAC;EACAG;AACF;AAEO,IAAMI,eAAe,CAACC,MAAeC,SAC1CD,KAAKT,OAAOR,YAAYkB,KAAKV,OAAOR,WACpCiB,KAAKR,UAAUT,YAAYkB,KAAKT,UAAUT,WAC1CU,UAAUC,KAAKM,KAAKL,QAAQC,KAAK,EAAEZ,OAAOiB,KAAKN,QAAQC,KAAK;;;;;;;;;;;;;;;;;ADhCvD,IAAMM,WAAN,cAAuBC,SAAAA;EAU5B,IAAIC,WAAqB;AACvB,WAAOC,IAAIC,OAAOC,YAAY;MAAEC,SAAS,KAAKC,OAAOC,MAAK;MAAIC,aAAa,KAAKF,OAAOC,MAAK;IAAG,CAAA;EACjG;EAEA,MAAME,gBAAgBC,SAAoC;AACxD,WAAOC,sBAAsB,KAAKC,iBAAiBF,OAAAA;EACrD;EAEA,MAAMG,qBAAqBC,OAAkBC,MAAgB;AAC3D,WAAOC,oBAAoB,KAAKC,eAAeH,OAAOC,IAAAA;EACxD;EAEA,MAAMG,gBAAgBJ,OAAkBC,MAAgB;AACtD,WAAOI,eAAe,KAAKF,eAAeH,OAAOC,IAAAA;EACnD;EAEA,MAAyBK,QAAuB;AAC9C,SAAKH,gBAAgB,MAAM,KAAKI,YAAYC,oBAAoB,IAAI;AACpE,SAAKC,YAAY,IAAIC,UAAU;MAAEP,eAAe,KAAKA;MAAeQ,YAAY;IAAI,CAAA;AAEpF,UAAM,KAAKR,cAAcS,KAAI;AAC7B,SAAKH,UAAUG,KAAI;AACnB,UAAM,KAAKH,UACRI,OAAO;MACNZ,MAAM,KAAKd;MACX2B,WAAW,OAAOC,QAAAA;AAChB,aAAKjB,gBAAgBkB,KAAKD,GAAAA;MAC5B;IACF,CAAA,EACCE,MAAM,CAACC,QAAQC,IAAIF,MAAMC,KAAAA,QAAAA;;;;;;EAC9B;EAEA,MAAyBE,SAAwB;AAC/C,UAAM,KAAKX,UAAUY,MAAK;AAC1B,UAAM,KAAKlB,cAAckB,MAAK;EAChC;EAvCA,YAA6Bd,aAA0B;AACrD,UAAK,GAAA,iBAAA,MAAA,eAAA,MAAA,GANP,iBAAA,MAAOf,UAAP,MAAA,GACA,iBAAA,MAAOW,iBAAP,MAAA,GACA,iBAAA,MAAOM,aAAP,MAAA,GACA,iBAAA,MAAOX,mBAAP,MAAA,GAAA,KAE6BS,cAAAA,aAAAA,KALtBf,SAAS8B,WAAUC,OAAM,GAAA,KAGzBzB,kBAAkB,IAAI0B,MAAAA;EAI7B;AAsCF;A;;;;;;;;;;;;;;;AGlDO,IAAMC,cAAN,MAAMA;EAMX,MAAMC,oBAAoBC,MAAwC;AAChE,UAAMC,gBACH,MAAM,KAAKC,QAAQC,uBAAuBH,IAAAA,KAAU,IAAII,oBAAoB,KAAKC,cAAc;AAElG,QAAI,KAAKH,QAAQI,mBAAmB;AAElC,YAAMC,WAAWN,cAAcO,YAAYC,KAAKR,aAAAA;AAChDA,oBAAcO,cAAc,OAAOE,YAAAA;AACjC,mBAAWC,OAAO,KAAKT,QAAQI,kBAAmBI,OAAAA,GAAU;AAC1D,gBAAMH,SAASI,GAAAA;QACjB;MACF;IACF;AAEA,WAAOV;EACT;EAEA,MAAMW,aAAgC;AACpC,UAAMZ,OAAO,IAAIa,SAAS,IAAI;AAC9B,UAAMb,KAAKc,KAAI;AACf,SAAKC,OAAOC,KAAKhB,IAAAA;AACjB,WAAOA;EACT;EAEA,MAAMiB,YAAYC,OAAoC;AACpD,WAAOC,QAAQC,IAAIC,MAAMC,KAAK;MAAEC,QAAQL;IAAM,GAAG,MAAM,KAAKN,WAAU,CAAA,CAAA;EACxE;EAEA,MAAMY,QAAuB;AAC3B,UAAML,QAAQC,IAAI,KAAKL,OAAOU,IAAI,CAACzB,SAASA,KAAKwB,MAAK,CAAA,CAAA;EACxD;EAhCA,YAAmBtB,SAA6B;;AAHhD,IAAAwB,kBAAA,MAAQrB,kBAAR,MAAA;AACA,IAAAqB,kBAAA,MAAiBX,UAAjB,MAAA;SAEmBb,UAAAA;SAHXG,iBAAiB,IAAIsB,2BAAAA;SACZZ,SAAqB,CAAA;EAEW;AAiCnD;",
6
+ "names": ["Event", "Resource", "PeerSchema", "PublicKey", "log", "buf", "asyncTimeout", "PublicKey", "PAYLOAD_1", "type_url", "value", "Buffer", "from", "PAYLOAD_2", "PAYLOAD_3", "expectPeerAvailable", "client", "expectedTopic", "peer", "asyncTimeout", "swarmEvent", "waitFor", "peerAvailable", "topic", "peerKey", "equals", "expectPeerLeft", "peerLeft", "expectReceivedMessage", "event", "expectedMessage", "msg", "author", "recipient", "PublicKey", "from", "payload", "value", "createMessage", "PAYLOAD_1", "messageEqual", "msg1", "msg2", "TestPeer", "Resource", "peerInfo", "buf", "create", "PeerSchema", "peerKey", "peerId", "toHex", "identityKey", "waitTillReceive", "message", "expectReceivedMessage", "defaultReceived", "waitForPeerAvailable", "topic", "peer", "expectPeerAvailable", "signalManager", "waitForPeerLeft", "expectPeerLeft", "_open", "testBuilder", "createSignalManager", "messenger", "Messenger", "retryDelay", "open", "listen", "onMessage", "msg", "emit", "catch", "err", "log", "_close", "close", "PublicKey", "random", "Event", "TestBuilder", "createSignalManager", "peer", "signalManager", "options", "signalManagerFactory", "MemorySignalManager", "_signalContext", "messageDisruption", "trueSend", "sendMessage", "bind", "message", "msg", "createPeer", "TestPeer", "open", "_peers", "push", "createPeers", "count", "Promise", "all", "Array", "from", "length", "close", "map", "_define_property", "MemorySignalManagerContext"]
7
7
  }