@dxos/network-manager 0.1.13 → 0.1.16

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 (256) hide show
  1. package/dist/lib/browser/index.mjs +2127 -0
  2. package/dist/lib/browser/index.mjs.map +7 -0
  3. package/dist/lib/browser/meta.json +1 -0
  4. package/dist/lib/browser/testing/index.mjs +2197 -0
  5. package/dist/lib/browser/testing/index.mjs.map +7 -0
  6. package/dist/lib/node/index.cjs +2173 -0
  7. package/dist/lib/node/index.cjs.map +7 -0
  8. package/dist/lib/node/meta.json +1 -0
  9. package/dist/lib/node/testing/index.cjs +2225 -0
  10. package/dist/lib/node/testing/index.cjs.map +7 -0
  11. package/dist/{src → types/src}/connection-log.d.ts +0 -0
  12. package/dist/types/src/connection-log.d.ts.map +1 -0
  13. package/dist/{src → types/src}/index.d.ts +1 -0
  14. package/dist/types/src/index.d.ts.map +1 -0
  15. package/dist/{src → types/src}/network-manager.d.ts +9 -11
  16. package/dist/types/src/network-manager.d.ts.map +1 -0
  17. package/dist/{src → types/src}/protocol-factory.d.ts +11 -5
  18. package/dist/types/src/protocol-factory.d.ts.map +1 -0
  19. package/dist/{src → types/src}/signal/index.d.ts +0 -0
  20. package/dist/types/src/signal/index.d.ts.map +1 -0
  21. package/dist/{src → types/src}/signal/integration.test.d.ts +0 -0
  22. package/dist/types/src/signal/integration.test.d.ts.map +1 -0
  23. package/dist/{src → types/src}/signal/message-router.d.ts +0 -0
  24. package/dist/types/src/signal/message-router.d.ts.map +1 -0
  25. package/dist/{src → types/src}/signal/message-router.test.d.ts +0 -0
  26. package/dist/types/src/signal/message-router.test.d.ts.map +1 -0
  27. package/dist/{src → types/src}/signal/signal-connection.d.ts +0 -0
  28. package/dist/types/src/signal/signal-connection.d.ts.map +1 -0
  29. package/dist/{src → types/src}/signal/signal-messenger.d.ts +0 -0
  30. package/dist/types/src/signal/signal-messenger.d.ts.map +1 -0
  31. package/dist/{src → types/src}/swarm/connection.d.ts +5 -17
  32. package/dist/types/src/swarm/connection.d.ts.map +1 -0
  33. package/dist/{src → types/src}/swarm/index.d.ts +0 -0
  34. package/dist/types/src/swarm/index.d.ts.map +1 -0
  35. package/dist/types/src/swarm/peer.d.ts +70 -0
  36. package/dist/types/src/swarm/peer.d.ts.map +1 -0
  37. package/dist/{src → types/src}/swarm/swarm-mapper.d.ts +1 -1
  38. package/dist/types/src/swarm/swarm-mapper.d.ts.map +1 -0
  39. package/dist/{src → types/src}/swarm/swarm.d.ts +4 -8
  40. package/dist/types/src/swarm/swarm.d.ts.map +1 -0
  41. package/dist/{src → types/src}/swarm/swarm.test.d.ts +0 -0
  42. package/dist/types/src/swarm/swarm.test.d.ts.map +1 -0
  43. package/dist/{src → types/src}/testing/index.d.ts +0 -0
  44. package/dist/types/src/testing/index.d.ts.map +1 -0
  45. package/dist/{src → types/src}/testing/test-builder.d.ts +1 -1
  46. package/dist/types/src/testing/test-builder.d.ts.map +1 -0
  47. package/dist/{src → types/src}/testing/test-protocol.d.ts +2 -2
  48. package/dist/types/src/testing/test-protocol.d.ts.map +1 -0
  49. package/dist/{src → types/src}/tests/basic-test-suite.d.ts +0 -0
  50. package/dist/types/src/tests/basic-test-suite.d.ts.map +1 -0
  51. package/dist/{src → types/src}/tests/memory-transport.test.d.ts +0 -0
  52. package/dist/types/src/tests/memory-transport.test.d.ts.map +1 -0
  53. package/dist/{src → types/src}/tests/presence.test.d.ts +0 -0
  54. package/dist/types/src/tests/presence.test.d.ts.map +1 -0
  55. package/dist/{src → types/src}/tests/property-test-suite.d.ts +0 -0
  56. package/dist/types/src/tests/property-test-suite.d.ts.map +1 -0
  57. package/dist/{src → types/src}/tests/utils.d.ts +0 -0
  58. package/dist/types/src/tests/utils.d.ts.map +1 -0
  59. package/dist/{src → types/src}/tests/webrtc-transport.test.d.ts +0 -0
  60. package/dist/types/src/tests/webrtc-transport.test.d.ts.map +1 -0
  61. package/dist/{src → types/src}/topology/fully-connected-topology.d.ts +0 -0
  62. package/dist/types/src/topology/fully-connected-topology.d.ts.map +1 -0
  63. package/dist/{src → types/src}/topology/index.d.ts +0 -0
  64. package/dist/types/src/topology/index.d.ts.map +1 -0
  65. package/dist/{src → types/src}/topology/mmst-topology.d.ts +0 -0
  66. package/dist/types/src/topology/mmst-topology.d.ts.map +1 -0
  67. package/dist/{src → types/src}/topology/star-topology.d.ts +0 -0
  68. package/dist/types/src/topology/star-topology.d.ts.map +1 -0
  69. package/dist/{src → types/src}/topology/topology.d.ts +0 -0
  70. package/dist/types/src/topology/topology.d.ts.map +1 -0
  71. package/dist/{src → types/src}/transport/index.d.ts +0 -0
  72. package/dist/types/src/transport/index.d.ts.map +1 -0
  73. package/dist/{src → types/src}/transport/memory-transport.d.ts +0 -0
  74. package/dist/types/src/transport/memory-transport.d.ts.map +1 -0
  75. package/dist/{src → types/src}/transport/memory-transport.test.d.ts +0 -0
  76. package/dist/types/src/transport/memory-transport.test.d.ts.map +1 -0
  77. package/dist/{src → types/src}/transport/transport.d.ts +1 -1
  78. package/dist/types/src/transport/transport.d.ts.map +1 -0
  79. package/dist/{src → types/src}/transport/webrtc-simple-peer.test.d.ts +0 -0
  80. package/dist/types/src/transport/webrtc-simple-peer.test.d.ts.map +1 -0
  81. package/dist/{src → types/src}/transport/webrtc-transport-proxy.d.ts +1 -1
  82. package/dist/types/src/transport/webrtc-transport-proxy.d.ts.map +1 -0
  83. package/dist/{src → types/src}/transport/webrtc-transport-proxy.test.d.ts +0 -0
  84. package/dist/types/src/transport/webrtc-transport-proxy.test.d.ts.map +1 -0
  85. package/dist/{src → types/src}/transport/webrtc-transport-service.d.ts +0 -0
  86. package/dist/types/src/transport/webrtc-transport-service.d.ts.map +1 -0
  87. package/dist/{src → types/src}/transport/webrtc-transport.d.ts +1 -1
  88. package/dist/types/src/transport/webrtc-transport.d.ts.map +1 -0
  89. package/dist/{src → types/src}/transport/webrtc-transport.test.d.ts +0 -0
  90. package/dist/types/src/transport/webrtc-transport.test.d.ts.map +1 -0
  91. package/dist/{src → types/src}/transport/webrtc.d.ts +0 -0
  92. package/dist/types/src/transport/webrtc.d.ts.map +1 -0
  93. package/dist/types/src/types.d.ts +6 -0
  94. package/dist/types/src/types.d.ts.map +1 -0
  95. package/dist/types/src/wire-protocol.d.ts +37 -0
  96. package/dist/types/src/wire-protocol.d.ts.map +1 -0
  97. package/package.json +24 -22
  98. package/src/connection-log.ts +8 -8
  99. package/src/globals.d.ts +1 -1
  100. package/src/index.ts +1 -0
  101. package/src/network-manager.ts +14 -5
  102. package/src/protocol-factory.ts +7 -4
  103. package/src/signal/integration.test.ts +8 -7
  104. package/src/signal/message-router.test.ts +14 -15
  105. package/src/signal/message-router.ts +1 -1
  106. package/src/swarm/connection.ts +11 -55
  107. package/src/swarm/peer.ts +119 -30
  108. package/src/swarm/swarm.test.ts +9 -8
  109. package/src/swarm/swarm.ts +97 -116
  110. package/src/testing/test-builder.ts +4 -1
  111. package/src/testing/test-protocol.ts +1 -1
  112. package/src/tests/basic-test-suite.ts +7 -6
  113. package/src/tests/memory-transport.test.ts +1 -1
  114. package/src/tests/presence.test.ts +5 -4
  115. package/src/tests/property-test-suite.ts +4 -3
  116. package/src/tests/utils.ts +1 -1
  117. package/src/tests/webrtc-transport.test.ts +2 -2
  118. package/src/transport/memory-transport.test.ts +4 -4
  119. package/src/transport/memory-transport.ts +5 -5
  120. package/src/transport/webrtc-simple-peer.test.ts +13 -10
  121. package/src/transport/webrtc-transport-proxy.test.ts +9 -13
  122. package/src/transport/webrtc-transport-proxy.ts +1 -1
  123. package/src/transport/webrtc-transport-service.ts +2 -2
  124. package/src/transport/webrtc-transport.test.ts +4 -4
  125. package/src/transport/webrtc-transport.ts +3 -3
  126. package/src/wire-protocol.ts +75 -0
  127. package/testing.d.ts +1 -1
  128. package/testing.js +1 -1
  129. package/dist/src/connection-log.d.ts.map +0 -1
  130. package/dist/src/connection-log.js +0 -98
  131. package/dist/src/connection-log.js.map +0 -1
  132. package/dist/src/index.d.ts.map +0 -1
  133. package/dist/src/index.js +0 -28
  134. package/dist/src/index.js.map +0 -1
  135. package/dist/src/network-manager.d.ts.map +0 -1
  136. package/dist/src/network-manager.js +0 -118
  137. package/dist/src/network-manager.js.map +0 -1
  138. package/dist/src/protocol-factory.d.ts.map +0 -1
  139. package/dist/src/protocol-factory.js +0 -66
  140. package/dist/src/protocol-factory.js.map +0 -1
  141. package/dist/src/signal/index.d.ts.map +0 -1
  142. package/dist/src/signal/index.js +0 -23
  143. package/dist/src/signal/index.js.map +0 -1
  144. package/dist/src/signal/integration.test.d.ts.map +0 -1
  145. package/dist/src/signal/integration.test.js +0 -105
  146. package/dist/src/signal/integration.test.js.map +0 -1
  147. package/dist/src/signal/message-router.d.ts.map +0 -1
  148. package/dist/src/signal/message-router.js +0 -135
  149. package/dist/src/signal/message-router.js.map +0 -1
  150. package/dist/src/signal/message-router.test.d.ts.map +0 -1
  151. package/dist/src/signal/message-router.test.js +0 -211
  152. package/dist/src/signal/message-router.test.js.map +0 -1
  153. package/dist/src/signal/signal-connection.d.ts.map +0 -1
  154. package/dist/src/signal/signal-connection.js +0 -6
  155. package/dist/src/signal/signal-connection.js.map +0 -1
  156. package/dist/src/signal/signal-messenger.d.ts.map +0 -1
  157. package/dist/src/signal/signal-messenger.js +0 -6
  158. package/dist/src/signal/signal-messenger.js.map +0 -1
  159. package/dist/src/swarm/connection.d.ts.map +0 -1
  160. package/dist/src/swarm/connection.js +0 -204
  161. package/dist/src/swarm/connection.js.map +0 -1
  162. package/dist/src/swarm/index.d.ts.map +0 -1
  163. package/dist/src/swarm/index.js +0 -23
  164. package/dist/src/swarm/index.js.map +0 -1
  165. package/dist/src/swarm/peer.d.ts +0 -45
  166. package/dist/src/swarm/peer.d.ts.map +0 -1
  167. package/dist/src/swarm/peer.js +0 -113
  168. package/dist/src/swarm/peer.js.map +0 -1
  169. package/dist/src/swarm/swarm-mapper.d.ts.map +0 -1
  170. package/dist/src/swarm/swarm-mapper.js +0 -92
  171. package/dist/src/swarm/swarm-mapper.js.map +0 -1
  172. package/dist/src/swarm/swarm.d.ts.map +0 -1
  173. package/dist/src/swarm/swarm.js +0 -305
  174. package/dist/src/swarm/swarm.js.map +0 -1
  175. package/dist/src/swarm/swarm.test.d.ts.map +0 -1
  176. package/dist/src/swarm/swarm.test.js +0 -135
  177. package/dist/src/swarm/swarm.test.js.map +0 -1
  178. package/dist/src/testing/index.d.ts.map +0 -1
  179. package/dist/src/testing/index.js +0 -22
  180. package/dist/src/testing/index.js.map +0 -1
  181. package/dist/src/testing/test-builder.d.ts.map +0 -1
  182. package/dist/src/testing/test-builder.js +0 -145
  183. package/dist/src/testing/test-builder.js.map +0 -1
  184. package/dist/src/testing/test-protocol.d.ts.map +0 -1
  185. package/dist/src/testing/test-protocol.js +0 -143
  186. package/dist/src/testing/test-protocol.js.map +0 -1
  187. package/dist/src/tests/basic-test-suite.d.ts.map +0 -1
  188. package/dist/src/tests/basic-test-suite.js +0 -142
  189. package/dist/src/tests/basic-test-suite.js.map +0 -1
  190. package/dist/src/tests/memory-transport.test.d.ts.map +0 -1
  191. package/dist/src/tests/memory-transport.test.js +0 -12
  192. package/dist/src/tests/memory-transport.test.js.map +0 -1
  193. package/dist/src/tests/presence.test.d.ts.map +0 -1
  194. package/dist/src/tests/presence.test.js +0 -61
  195. package/dist/src/tests/presence.test.js.map +0 -1
  196. package/dist/src/tests/property-test-suite.d.ts.map +0 -1
  197. package/dist/src/tests/property-test-suite.js +0 -203
  198. package/dist/src/tests/property-test-suite.js.map +0 -1
  199. package/dist/src/tests/utils.d.ts.map +0 -1
  200. package/dist/src/tests/utils.js +0 -76
  201. package/dist/src/tests/utils.js.map +0 -1
  202. package/dist/src/tests/webrtc-transport.test.d.ts.map +0 -1
  203. package/dist/src/tests/webrtc-transport.test.js +0 -16
  204. package/dist/src/tests/webrtc-transport.test.js.map +0 -1
  205. package/dist/src/topology/fully-connected-topology.d.ts.map +0 -1
  206. package/dist/src/topology/fully-connected-topology.js +0 -35
  207. package/dist/src/topology/fully-connected-topology.js.map +0 -1
  208. package/dist/src/topology/index.d.ts.map +0 -1
  209. package/dist/src/topology/index.js +0 -24
  210. package/dist/src/topology/index.js.map +0 -1
  211. package/dist/src/topology/mmst-topology.d.ts.map +0 -1
  212. package/dist/src/topology/mmst-topology.js +0 -73
  213. package/dist/src/topology/mmst-topology.js.map +0 -1
  214. package/dist/src/topology/star-topology.d.ts.map +0 -1
  215. package/dist/src/topology/star-topology.js +0 -60
  216. package/dist/src/topology/star-topology.js.map +0 -1
  217. package/dist/src/topology/topology.d.ts.map +0 -1
  218. package/dist/src/topology/topology.js +0 -6
  219. package/dist/src/topology/topology.js.map +0 -1
  220. package/dist/src/transport/index.d.ts.map +0 -1
  221. package/dist/src/transport/index.js +0 -25
  222. package/dist/src/transport/index.js.map +0 -1
  223. package/dist/src/transport/memory-transport.d.ts.map +0 -1
  224. package/dist/src/transport/memory-transport.js +0 -138
  225. package/dist/src/transport/memory-transport.js.map +0 -1
  226. package/dist/src/transport/memory-transport.test.d.ts.map +0 -1
  227. package/dist/src/transport/memory-transport.test.js +0 -96
  228. package/dist/src/transport/memory-transport.test.js.map +0 -1
  229. package/dist/src/transport/transport.d.ts.map +0 -1
  230. package/dist/src/transport/transport.js +0 -6
  231. package/dist/src/transport/transport.js.map +0 -1
  232. package/dist/src/transport/webrtc-simple-peer.test.d.ts.map +0 -1
  233. package/dist/src/transport/webrtc-simple-peer.test.js +0 -24
  234. package/dist/src/transport/webrtc-simple-peer.test.js.map +0 -1
  235. package/dist/src/transport/webrtc-transport-proxy.d.ts.map +0 -1
  236. package/dist/src/transport/webrtc-transport-proxy.js +0 -139
  237. package/dist/src/transport/webrtc-transport-proxy.js.map +0 -1
  238. package/dist/src/transport/webrtc-transport-proxy.test.d.ts.map +0 -1
  239. package/dist/src/transport/webrtc-transport-proxy.test.js +0 -219
  240. package/dist/src/transport/webrtc-transport-proxy.test.js.map +0 -1
  241. package/dist/src/transport/webrtc-transport-service.d.ts.map +0 -1
  242. package/dist/src/transport/webrtc-transport-service.js +0 -93
  243. package/dist/src/transport/webrtc-transport-service.js.map +0 -1
  244. package/dist/src/transport/webrtc-transport.d.ts.map +0 -1
  245. package/dist/src/transport/webrtc-transport.js +0 -77
  246. package/dist/src/transport/webrtc-transport.js.map +0 -1
  247. package/dist/src/transport/webrtc-transport.test.d.ts.map +0 -1
  248. package/dist/src/transport/webrtc-transport.test.js +0 -91
  249. package/dist/src/transport/webrtc-transport.test.js.map +0 -1
  250. package/dist/src/transport/webrtc.d.ts.map +0 -1
  251. package/dist/src/transport/webrtc.js +0 -17
  252. package/dist/src/transport/webrtc.js.map +0 -1
  253. package/dist/src/types.d.ts +0 -6
  254. package/dist/src/types.d.ts.map +0 -1
  255. package/dist/src/types.js +0 -6
  256. package/dist/src/types.js.map +0 -1
@@ -1,219 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2020 DXOS.org
4
- //
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- // @dxos/mocha platform=nodejs
10
- const expect_1 = __importDefault(require("expect"));
11
- const stream_1 = require("stream");
12
- const wait_for_expect_1 = __importDefault(require("wait-for-expect"));
13
- const async_1 = require("@dxos/async");
14
- const crypto_1 = require("@dxos/crypto");
15
- const keys_1 = require("@dxos/keys");
16
- const mesh_protocol_1 = require("@dxos/mesh-protocol");
17
- const protocols_1 = require("@dxos/protocols");
18
- const rpc_1 = require("@dxos/rpc");
19
- const testutils_1 = require("@dxos/testutils");
20
- const testing_1 = require("../testing");
21
- const webrtc_transport_proxy_1 = require("./webrtc-transport-proxy");
22
- const webrtc_transport_service_1 = require("./webrtc-transport-service");
23
- describe('WebRTCTransportProxy', function () {
24
- const setupProxy = async ({ initiator = true, stream = new stream_1.Duplex({ write: () => { }, read: () => { } }), sendSignal = async () => { } } = {}) => {
25
- const [port1, port2] = (0, rpc_1.createLinkedPorts)();
26
- // Starting BridgeService
27
- const webRTCTransportService = new webrtc_transport_service_1.WebRTCTransportService();
28
- // Starting BridgeService
29
- const rpcService = (0, rpc_1.createProtoRpcPeer)({
30
- requested: {},
31
- exposed: {
32
- BridgeService: protocols_1.schema.getService('dxos.mesh.bridge.BridgeService')
33
- },
34
- handlers: { BridgeService: webRTCTransportService },
35
- port: port1,
36
- noHandshake: true,
37
- encodingOptions: {
38
- preserveAny: true
39
- }
40
- });
41
- await rpcService.open();
42
- (0, testutils_1.afterTest)(() => rpcService.close());
43
- // Starting RPC client
44
- const rpcClient = (0, rpc_1.createProtoRpcPeer)({
45
- requested: {
46
- BridgeService: protocols_1.schema.getService('dxos.mesh.bridge.BridgeService')
47
- },
48
- port: port2,
49
- noHandshake: true,
50
- encodingOptions: {
51
- preserveAny: true
52
- }
53
- });
54
- await rpcClient.open();
55
- (0, testutils_1.afterTest)(() => rpcClient.close());
56
- const webRTCTransportProxy = new webrtc_transport_proxy_1.WebRTCTransportProxy({
57
- initiator,
58
- stream,
59
- sendSignal,
60
- bridgeService: rpcClient.rpc.BridgeService
61
- });
62
- (0, testutils_1.afterTest)(async () => await webRTCTransportProxy.destroy());
63
- return { webRTCService: rpcService, webRTCTransportProxy };
64
- };
65
- // This doesn't clean up correctly and crashes with SIGSEGV / SIGABRT at the end. Probably an issue with wrtc package.
66
- it('open and close', async function () {
67
- const { webRTCTransportProxy: connection } = await setupProxy();
68
- let callsCounter = 0;
69
- const closedCb = () => {
70
- callsCounter++;
71
- };
72
- connection.closed.once(closedCb);
73
- await (0, async_1.sleep)(10); // Let simple-peer process events.
74
- await connection.destroy();
75
- await (0, async_1.sleep)(1); // Process events.
76
- (0, expect_1.default)(callsCounter).toEqual(1);
77
- })
78
- .timeout(1000)
79
- .retries(3);
80
- it('establish connection and send data through with protocol', async function () {
81
- if (mochaExecutor.environment !== 'nodejs') {
82
- this.skip();
83
- }
84
- const topic = keys_1.PublicKey.random();
85
- const peer1Id = keys_1.PublicKey.random();
86
- const peer2Id = keys_1.PublicKey.random();
87
- const plugin1 = new testing_1.TestProtocolPlugin(peer1Id.asBuffer());
88
- const protocolProvider1 = (0, testing_1.testProtocolProvider)(topic.asBuffer(), peer1Id, plugin1);
89
- const { webRTCTransportProxy: connection1 } = await setupProxy({
90
- initiator: true,
91
- stream: protocolProvider1({
92
- channel: (0, crypto_1.discoveryKey)(topic),
93
- initiator: true
94
- }).stream,
95
- sendSignal: async (signal) => {
96
- await (0, async_1.sleep)(10);
97
- await connection2.signal(signal);
98
- }
99
- });
100
- (0, testutils_1.afterTest)(() => connection1.errors.assertNoUnhandledErrors());
101
- const plugin2 = new testing_1.TestProtocolPlugin(peer2Id.asBuffer());
102
- const protocolProvider2 = (0, testing_1.testProtocolProvider)(topic.asBuffer(), peer2Id, plugin2);
103
- const { webRTCTransportProxy: connection2 } = await setupProxy({
104
- initiator: false,
105
- stream: protocolProvider2({
106
- channel: (0, crypto_1.discoveryKey)(topic),
107
- initiator: false
108
- }).stream,
109
- sendSignal: async (signal) => {
110
- await (0, async_1.sleep)(10);
111
- await connection1.signal(signal);
112
- }
113
- });
114
- (0, testutils_1.afterTest)(() => connection2.errors.assertNoUnhandledErrors());
115
- const received = [];
116
- const mockReceive = (p, s) => {
117
- received.push(p, s);
118
- return undefined;
119
- };
120
- plugin1.on('receive', mockReceive);
121
- plugin2.on('connect', async (protocol) => {
122
- await plugin2.send(peer1Id.asBuffer(), '{"message": "Hello"}');
123
- });
124
- await (0, wait_for_expect_1.default)(() => {
125
- (0, expect_1.default)(received.length).toBe(2);
126
- (0, expect_1.default)(received[0]).toBeInstanceOf(mesh_protocol_1.Protocol);
127
- (0, expect_1.default)(received[1]).toBe('{"message": "Hello"}');
128
- });
129
- })
130
- .timeout(2000)
131
- .retries(3);
132
- describe('Multiplexing', function () {
133
- let service;
134
- let rpcClient;
135
- before(async function () {
136
- const [port1, port2] = (0, rpc_1.createLinkedPorts)();
137
- const webRTCTransportService = new webrtc_transport_service_1.WebRTCTransportService();
138
- service = (0, rpc_1.createProtoRpcPeer)({
139
- exposed: {
140
- BridgeService: protocols_1.schema.getService('dxos.mesh.bridge.BridgeService')
141
- },
142
- handlers: { BridgeService: webRTCTransportService },
143
- port: port1,
144
- noHandshake: true,
145
- encodingOptions: {
146
- preserveAny: true
147
- }
148
- });
149
- await service.open();
150
- rpcClient = (0, rpc_1.createProtoRpcPeer)({
151
- requested: {
152
- BridgeService: protocols_1.schema.getService('dxos.mesh.bridge.BridgeService')
153
- },
154
- port: port2,
155
- noHandshake: true,
156
- encodingOptions: {
157
- preserveAny: true
158
- }
159
- });
160
- await rpcClient.open();
161
- });
162
- after(async function () {
163
- await (service === null || service === void 0 ? void 0 : service.close());
164
- await (rpcClient === null || rpcClient === void 0 ? void 0 : rpcClient.close());
165
- });
166
- it('establish connection and send data through with protocol', async function () {
167
- const topic = keys_1.PublicKey.random();
168
- const peer1Id = keys_1.PublicKey.random();
169
- const peer2Id = keys_1.PublicKey.random();
170
- const plugin1 = new testing_1.TestProtocolPlugin(peer1Id.asBuffer());
171
- const protocolProvider1 = (0, testing_1.testProtocolProvider)(topic.asBuffer(), peer1Id, plugin1);
172
- const proxy1 = new webrtc_transport_proxy_1.WebRTCTransportProxy({
173
- initiator: true,
174
- stream: protocolProvider1({
175
- channel: (0, crypto_1.discoveryKey)(topic),
176
- initiator: true
177
- }).stream,
178
- sendSignal: async (signal) => {
179
- await (0, async_1.sleep)(10);
180
- await proxy2.signal(signal);
181
- },
182
- bridgeService: rpcClient.rpc.BridgeService
183
- });
184
- (0, testutils_1.afterTest)(() => proxy1.errors.assertNoUnhandledErrors());
185
- const plugin2 = new testing_1.TestProtocolPlugin(peer2Id.asBuffer());
186
- const protocolProvider2 = (0, testing_1.testProtocolProvider)(topic.asBuffer(), peer2Id, plugin2);
187
- const proxy2 = new webrtc_transport_proxy_1.WebRTCTransportProxy({
188
- initiator: false,
189
- stream: protocolProvider2({
190
- channel: (0, crypto_1.discoveryKey)(topic),
191
- initiator: false
192
- }).stream,
193
- sendSignal: async (signal) => {
194
- await (0, async_1.sleep)(10);
195
- await proxy1.signal(signal);
196
- },
197
- bridgeService: rpcClient.rpc.BridgeService
198
- });
199
- (0, testutils_1.afterTest)(() => proxy2.errors.assertNoUnhandledErrors());
200
- const received = [];
201
- const mockReceive = (p, s) => {
202
- received.push(p, s);
203
- return undefined;
204
- };
205
- plugin1.on('receive', mockReceive);
206
- plugin2.on('connect', async (protocol) => {
207
- await plugin2.send(peer1Id.asBuffer(), '{"message": "Hello"}');
208
- });
209
- await (0, wait_for_expect_1.default)(() => {
210
- (0, expect_1.default)(received.length).toBe(2);
211
- (0, expect_1.default)(received[0]).toBeInstanceOf(mesh_protocol_1.Protocol);
212
- (0, expect_1.default)(received[1]).toBe('{"message": "Hello"}');
213
- });
214
- })
215
- .timeout(5000)
216
- .retries(3);
217
- });
218
- });
219
- //# sourceMappingURL=webrtc-transport-proxy.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc-transport-proxy.test.js","sourceRoot":"","sources":["../../../src/transport/webrtc-transport-proxy.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc-transport-service.d.ts","sourceRoot":"","sources":["../../../src/transport/webrtc-transport-service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,WAAW,EAEX,YAAY,EACb,MAAM,wCAAwC,CAAC;AAKhD,qBAAa,sBAAuB,YAAW,aAAa;IAOxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IANjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAEzB;gBAIiB,aAAa,CAAC,KAAK;IAGtC,IAAI,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC;IA4D/C,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1D,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,YAAY;CAMtC"}
@@ -1,93 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2022 DXOS.org
4
- //
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.WebRTCTransportService = void 0;
10
- const assert_1 = __importDefault(require("assert"));
11
- const stream_1 = require("stream");
12
- const codec_protobuf_1 = require("@dxos/codec-protobuf");
13
- const keys_1 = require("@dxos/keys");
14
- const log_1 = require("@dxos/log");
15
- const bridge_1 = require("@dxos/protocols/proto/dxos/mesh/bridge");
16
- const util_1 = require("@dxos/util");
17
- const webrtc_transport_1 = require("./webrtc-transport");
18
- class WebRTCTransportService {
19
- // prettier-ignore
20
- constructor(_webrtcConfig) {
21
- this._webrtcConfig = _webrtcConfig;
22
- this.transports = new util_1.ComplexMap(keys_1.PublicKey.hash);
23
- }
24
- open(request) {
25
- const rpcStream = new codec_protobuf_1.Stream(({ ready, next, close }) => {
26
- const duplex = new stream_1.Duplex({
27
- read: () => { },
28
- write: function (chunk, _, callback) {
29
- next({ data: { payload: chunk } });
30
- callback();
31
- }
32
- });
33
- const transport = new webrtc_transport_1.WebRTCTransport({
34
- initiator: request.initiator,
35
- stream: duplex,
36
- sendSignal: async (signal) => {
37
- next({
38
- signal: { payload: signal }
39
- });
40
- }
41
- });
42
- next({
43
- connection: {
44
- state: bridge_1.ConnectionState.CONNECTING
45
- }
46
- });
47
- transport.connected.on(() => {
48
- next({
49
- connection: {
50
- state: bridge_1.ConnectionState.CONNECTED
51
- }
52
- });
53
- });
54
- transport.errors.handle((err) => {
55
- next({
56
- connection: {
57
- state: bridge_1.ConnectionState.CLOSED,
58
- error: err.toString()
59
- }
60
- });
61
- close(err);
62
- });
63
- transport.closed.on(() => {
64
- next({
65
- connection: {
66
- state: bridge_1.ConnectionState.CLOSED
67
- }
68
- });
69
- close();
70
- });
71
- ready();
72
- this.transports.set(request.proxyId, { transport, stream: duplex });
73
- });
74
- return rpcStream;
75
- }
76
- async sendSignal({ proxyId, signal }) {
77
- (0, assert_1.default)(this.transports.has(proxyId));
78
- await this.transports.get(proxyId).transport.signal(signal);
79
- }
80
- async sendData({ proxyId, payload }) {
81
- (0, assert_1.default)(this.transports.has(proxyId));
82
- await this.transports.get(proxyId).stream.push(payload);
83
- }
84
- async close({ proxyId }) {
85
- var _a, _b;
86
- await ((_a = this.transports.get(proxyId)) === null || _a === void 0 ? void 0 : _a.transport.destroy());
87
- await ((_b = this.transports.get(proxyId)) === null || _b === void 0 ? void 0 : _b.stream.end());
88
- this.transports.delete(proxyId);
89
- (0, log_1.log)('Closed.', {}, { file: "packages/core/mesh/network-manager/src/transport/webrtc-transport-service.ts", line: 108, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
90
- }
91
- }
92
- exports.WebRTCTransportService = WebRTCTransportService;
93
- //# sourceMappingURL=webrtc-transport-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc-transport-service.js","sourceRoot":"","sources":["../../../src/transport/webrtc-transport-service.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc-transport.d.ts","sourceRoot":"","sources":["../../../src/transport/webrtc-transport.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAS,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC;IAC/B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC;AAEF;;GAEG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAOnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IAEnC,QAAQ,CAAC,MAAM,cAAe;IAC9B,QAAQ,CAAC,SAAS,cAAe;IACjC,QAAQ,CAAC,MAAM,cAAqB;gBAEP,MAAM,EAAE,qBAAqB;IA+BpD,OAAO;IAQb,MAAM,CAAC,MAAM,EAAE,MAAM;YAMP,kBAAkB;CAIjC;AAGD,eAAO,MAAM,4BAA4B,kBAAmB,GAAG,KAAG,gBAMhE,CAAC"}
@@ -1,77 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2020 DXOS.org
4
- //
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.createWebRTCTransportFactory = exports.WebRTCTransport = void 0;
10
- const node_assert_1 = __importDefault(require("node:assert"));
11
- const simple_peer_1 = __importDefault(require("simple-peer"));
12
- const async_1 = require("@dxos/async");
13
- const debug_1 = require("@dxos/debug");
14
- const log_1 = require("@dxos/log");
15
- const webrtc_1 = require("./webrtc");
16
- /**
17
- * Implements Transport for WebRTC. Uses simple-peer under the hood.
18
- */
19
- class WebRTCTransport {
20
- constructor(params) {
21
- this.params = params;
22
- this.closed = new async_1.Event();
23
- this.connected = new async_1.Event();
24
- this.errors = new debug_1.ErrorStream();
25
- (0, log_1.log)('created connection', params, { file: "packages/core/mesh/network-manager/src/transport/webrtc-transport.ts", line: 34, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
26
- this._peer = new simple_peer_1.default({
27
- initiator: this.params.initiator,
28
- wrtc: simple_peer_1.default.WEBRTC_SUPPORT ? undefined : webrtc_1.wrtc !== null && webrtc_1.wrtc !== void 0 ? webrtc_1.wrtc : (0, debug_1.raise)(new Error('wrtc not available')),
29
- config: this.params.webrtcConfig
30
- });
31
- this._peer.on('signal', async (data) => {
32
- (0, log_1.log)('signal', data, { file: "packages/core/mesh/network-manager/src/transport/webrtc-transport.ts", line: 42, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
33
- await this.params.sendSignal({ json: JSON.stringify(data) });
34
- });
35
- this._peer.on('connect', () => {
36
- (0, log_1.log)('connected', {}, { file: "packages/core/mesh/network-manager/src/transport/webrtc-transport.ts", line: 47, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
37
- this.params.stream.pipe(this._peer).pipe(this.params.stream);
38
- this.connected.emit();
39
- });
40
- this._peer.on('close', async () => {
41
- (0, log_1.log)('closed', {}, { file: "packages/core/mesh/network-manager/src/transport/webrtc-transport.ts", line: 53, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
42
- await this._disconnectStreams();
43
- this.closed.emit();
44
- });
45
- this._peer.on('error', async (err) => {
46
- this.errors.raise(err);
47
- await this.destroy();
48
- });
49
- }
50
- async destroy() {
51
- (0, log_1.log)('closing...', {}, { file: "packages/core/mesh/network-manager/src/transport/webrtc-transport.ts", line: 65, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
52
- await this._disconnectStreams();
53
- this._peer.destroy();
54
- this.closed.emit();
55
- (0, log_1.log)('closed', {}, { file: "packages/core/mesh/network-manager/src/transport/webrtc-transport.ts", line: 69, scope: this, bugcheck: "If you see this message then it means that the source code preprocessor for @dxos/log is broken. It probably has misinterpreted an unrelated call for a logger invocation.", callSite: (fn, args) => fn(...args) });
56
- }
57
- signal(signal) {
58
- (0, node_assert_1.default)(this._peer, 'Connection not ready to accept signals.');
59
- (0, node_assert_1.default)(signal.json, 'Signal message must contain signal data.');
60
- this._peer.signal(JSON.parse(signal.json));
61
- }
62
- async _disconnectStreams() {
63
- var _a, _b, _c, _d;
64
- // TODO(rzadp): Find a way of unpiping this?
65
- (_d = (_c = (_b = (_a = this.params.stream).unpipe) === null || _b === void 0 ? void 0 : _b.call(_a, this._peer)) === null || _c === void 0 ? void 0 : _c.unpipe) === null || _d === void 0 ? void 0 : _d.call(_c, this.params.stream);
66
- }
67
- }
68
- exports.WebRTCTransport = WebRTCTransport;
69
- // TODO(dmaretskyi): Convert to class.
70
- const createWebRTCTransportFactory = (webrtcConfig) => ({
71
- createTransport: (params) => new WebRTCTransport({
72
- ...params,
73
- webrtcConfig
74
- })
75
- });
76
- exports.createWebRTCTransportFactory = createWebRTCTransportFactory;
77
- //# sourceMappingURL=webrtc-transport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc-transport.js","sourceRoot":"","sources":["../../../src/transport/webrtc-transport.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,8DAAiC;AACjC,8DAA4E;AAE5E,uCAAoC;AACpC,uCAAiD;AACjD,mCAAgC;AAIhC,qCAAgC;AAShC;;GAEG;AACH,MAAa,eAAe;IAO1B,YAA6B,MAA6B;QAA7B,WAAM,GAAN,MAAM,CAAuB;QAJjD,WAAM,GAAG,IAAI,aAAK,EAAE,CAAC;QACrB,cAAS,GAAG,IAAI,aAAK,EAAE,CAAC;QACxB,WAAM,GAAG,IAAI,mBAAW,EAAE,CAAC;QAGlC,IAAA,SAAG,EAAC,oBAAoB,EAAE,MAAM,uUAAC,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAqB,CAAC;YACrC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,IAAI,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAI,aAAJ,aAAI,cAAJ,aAAI,GAAI,IAAA,aAAK,EAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACvG,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SACjC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrC,IAAA,SAAG,EAAC,QAAQ,EAAE,IAAI,uUAAC,CAAC;YACpB,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YAC5B,IAAA,SAAG,EAAC,WAAW,2UAAC,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YAChC,IAAA,SAAG,EAAC,QAAQ,2UAAC,CAAC;YACd,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAA,SAAG,EAAC,YAAY,2UAAC,CAAC;QAClB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChC,IAAI,CAAC,KAAM,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnB,IAAA,SAAG,EAAC,QAAQ,2UAAC,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAA,qBAAM,EAAC,IAAI,CAAC,KAAK,EAAE,yCAAyC,CAAC,CAAC;QAC9D,IAAA,qBAAM,EAAC,MAAM,CAAC,IAAI,EAAE,0CAA0C,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,kBAAkB;;QAC9B,4CAA4C;QAC5C,MAAA,MAAA,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAC,MAAM,mDAAG,IAAI,CAAC,KAAK,CAAC,0CAAE,MAAM,mDAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;CACF;AAxDD,0CAwDC;AAED,sCAAsC;AAC/B,MAAM,4BAA4B,GAAG,CAAC,YAAkB,EAAoB,EAAE,CAAC,CAAC;IACrF,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAC1B,IAAI,eAAe,CAAC;QAClB,GAAG,MAAM;QACT,YAAY;KACb,CAAC;CACL,CAAC,CAAC;AANU,QAAA,4BAA4B,gCAMtC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc-transport.test.d.ts","sourceRoot":"","sources":["../../../src/transport/webrtc-transport.test.ts"],"names":[],"mappings":""}
@@ -1,91 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2020 DXOS.org
4
- //
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- const expect_1 = __importDefault(require("expect"));
10
- const stream_1 = require("stream");
11
- const wait_for_expect_1 = __importDefault(require("wait-for-expect"));
12
- const async_1 = require("@dxos/async");
13
- const crypto_1 = require("@dxos/crypto");
14
- const keys_1 = require("@dxos/keys");
15
- const mesh_protocol_1 = require("@dxos/mesh-protocol");
16
- const testutils_1 = require("@dxos/testutils");
17
- const testing_1 = require("../testing");
18
- const webrtc_transport_1 = require("./webrtc-transport");
19
- describe('WebRTCTransport', function () {
20
- // This doesn't clean up correctly and crashes with SIGSEGV / SIGABRT at the end. Probably an issue with wrtc package.
21
- it('open and close', async function () {
22
- const connection = new webrtc_transport_1.WebRTCTransport({
23
- initiator: true,
24
- stream: new stream_1.Duplex(),
25
- sendSignal: async () => { }
26
- });
27
- let callsCounter = 0;
28
- const closedCb = () => {
29
- callsCounter++;
30
- };
31
- connection.closed.once(closedCb);
32
- await (0, async_1.sleep)(10); // Let simple-peer process events.
33
- await connection.destroy();
34
- await (0, async_1.sleep)(10); // Process events.
35
- (0, expect_1.default)(callsCounter).toEqual(1);
36
- })
37
- .timeout(1000)
38
- .retries(3);
39
- it('establish connection and send data through with protocol', async function () {
40
- const topic = keys_1.PublicKey.random();
41
- const peer1Id = keys_1.PublicKey.random();
42
- const peer2Id = keys_1.PublicKey.random();
43
- const plugin1 = new testing_1.TestProtocolPlugin(peer1Id.asBuffer());
44
- const protocolProvider1 = (0, testing_1.testProtocolProvider)(topic.asBuffer(), peer1Id, plugin1);
45
- const connection1 = new webrtc_transport_1.WebRTCTransport({
46
- initiator: true,
47
- stream: protocolProvider1({
48
- channel: (0, crypto_1.discoveryKey)(topic),
49
- initiator: true
50
- }).stream,
51
- sendSignal: async (signal) => {
52
- await (0, async_1.sleep)(10);
53
- await connection2.signal(signal);
54
- }
55
- });
56
- (0, testutils_1.afterTest)(() => connection1.destroy());
57
- (0, testutils_1.afterTest)(() => connection1.errors.assertNoUnhandledErrors());
58
- const plugin2 = new testing_1.TestProtocolPlugin(peer2Id.asBuffer());
59
- const protocolProvider2 = (0, testing_1.testProtocolProvider)(topic.asBuffer(), peer2Id, plugin2);
60
- const connection2 = new webrtc_transport_1.WebRTCTransport({
61
- initiator: false,
62
- stream: protocolProvider2({
63
- channel: (0, crypto_1.discoveryKey)(topic),
64
- initiator: false
65
- }).stream,
66
- sendSignal: async (signal) => {
67
- await (0, async_1.sleep)(10);
68
- await connection1.signal(signal);
69
- }
70
- });
71
- (0, testutils_1.afterTest)(() => connection2.destroy());
72
- (0, testutils_1.afterTest)(() => connection2.errors.assertNoUnhandledErrors());
73
- const received = [];
74
- const mockReceive = (p, s) => {
75
- received.push(p, s);
76
- return undefined;
77
- };
78
- plugin1.on('receive', mockReceive);
79
- plugin2.on('connect', async (protocol) => {
80
- await plugin2.send(peer1Id.asBuffer(), '{"message": "Hello"}');
81
- });
82
- await (0, wait_for_expect_1.default)(() => {
83
- (0, expect_1.default)(received.length).toBe(2);
84
- (0, expect_1.default)(received[0]).toBeInstanceOf(mesh_protocol_1.Protocol);
85
- (0, expect_1.default)(received[1]).toBe('{"message": "Hello"}');
86
- });
87
- })
88
- .timeout(2000)
89
- .retries(3);
90
- });
91
- //# sourceMappingURL=webrtc-transport.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc-transport.test.js","sourceRoot":"","sources":["../../../src/transport/webrtc-transport.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc.d.ts","sourceRoot":"","sources":["../../../src/transport/webrtc.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,QAAA,IAAI,IAAI,EAAE,GAAU,CAAC;AAOrB,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2022 DXOS.org
4
- //
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.wrtc = void 0;
7
- /**
8
- * Will be null if WebRTC is not available in this environment.
9
- */
10
- let wrtc = null;
11
- exports.wrtc = wrtc;
12
- // Try to load WebRTC if available. This will fail in the shared-worker context.
13
- try {
14
- exports.wrtc = wrtc = require('@koush/wrtc');
15
- }
16
- catch (_a) { }
17
- //# sourceMappingURL=webrtc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc.js","sourceRoot":"","sources":["../../../src/transport/webrtc.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF;;GAEG;AACH,IAAI,IAAI,GAAQ,IAAI,CAAC;AAOZ,oBAAI;AALb,gFAAgF;AAChF,IAAI;IACF,eAAA,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC/B;AAAC,WAAM,GAAE"}
@@ -1,6 +0,0 @@
1
- import { PublicKey } from '@dxos/keys';
2
- /**
3
- * Swarm topic.
4
- */
5
- export type Topic = PublicKey;
6
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC"}
package/dist/src/types.js DELETED
@@ -1,6 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2021 DXOS.org
4
- //
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE"}