@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,145 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2022 DXOS.org
4
- //
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TestSwarmConnection = exports.TestPeer = exports.TestBuilder = exports.TEST_SIGNAL_URL = void 0;
7
- const keys_1 = require("@dxos/keys");
8
- const messaging_1 = require("@dxos/messaging");
9
- const protocols_1 = require("@dxos/protocols");
10
- const rpc_1 = require("@dxos/rpc");
11
- const util_1 = require("@dxos/util");
12
- const network_manager_1 = require("../network-manager");
13
- const topology_1 = require("../topology");
14
- const transport_1 = require("../transport");
15
- const test_protocol_1 = require("./test-protocol");
16
- // Signal server will be started by the setup script.
17
- exports.TEST_SIGNAL_URL = 'ws://localhost:4000/.well-known/dx/signal';
18
- /**
19
- * Builder used to construct networks and peers.
20
- */
21
- class TestBuilder {
22
- constructor(options = {}) {
23
- this.options = options;
24
- this._signalContext = new messaging_1.MemorySignalManagerContext();
25
- }
26
- createSignalManager() {
27
- if (this.options.signalHosts) {
28
- return new messaging_1.WebsocketSignalManager(this.options.signalHosts);
29
- }
30
- return new messaging_1.MemorySignalManager(this._signalContext);
31
- }
32
- createPeer() {
33
- return new TestPeer(this);
34
- }
35
- }
36
- exports.TestBuilder = TestBuilder;
37
- /**
38
- * Testing network peer.
39
- */
40
- class TestPeer {
41
- constructor(testBuilder) {
42
- this.testBuilder = testBuilder;
43
- this.peerId = keys_1.PublicKey.random();
44
- this._swarms = new util_1.ComplexMap(keys_1.PublicKey.hash);
45
- this._networkManager = this.createNetworkManager();
46
- }
47
- // TODO(burdon): Move to TestBuilder.
48
- createNetworkManager() {
49
- let transportFactory = transport_1.MemoryTransportFactory;
50
- if (this.testBuilder.options.signalHosts) {
51
- if (this.testBuilder.options.bridge) {
52
- // Simulates bridge to shared worker.
53
- const [proxyPort, servicePort] = (0, rpc_1.createLinkedPorts)();
54
- this._proxy = (0, rpc_1.createProtoRpcPeer)({
55
- port: proxyPort,
56
- requested: {
57
- BridgeService: protocols_1.schema.getService('dxos.mesh.bridge.BridgeService')
58
- },
59
- noHandshake: true,
60
- encodingOptions: {
61
- preserveAny: true
62
- }
63
- });
64
- this._service = (0, rpc_1.createProtoRpcPeer)({
65
- port: servicePort,
66
- exposed: {
67
- BridgeService: protocols_1.schema.getService('dxos.mesh.bridge.BridgeService')
68
- },
69
- handlers: { BridgeService: new transport_1.WebRTCTransportService() },
70
- noHandshake: true,
71
- encodingOptions: {
72
- preserveAny: true
73
- }
74
- });
75
- transportFactory = new transport_1.WebRTCTransportProxyFactory().setBridgeService(this._proxy.rpc.BridgeService);
76
- }
77
- else {
78
- transportFactory = {
79
- createTransport: (params) => new transport_1.WebRTCTransport(params)
80
- };
81
- }
82
- }
83
- return new network_manager_1.NetworkManager({
84
- signalManager: this.testBuilder.createSignalManager(),
85
- transportFactory
86
- });
87
- }
88
- async open() {
89
- var _a, _b;
90
- await ((_a = this._proxy) === null || _a === void 0 ? void 0 : _a.open());
91
- await ((_b = this._service) === null || _b === void 0 ? void 0 : _b.open());
92
- }
93
- async close() {
94
- var _a, _b;
95
- await Promise.all(Array.from(this._swarms.values()).map((swarm) => swarm.leave()));
96
- this._swarms.clear();
97
- await ((_a = this._proxy) === null || _a === void 0 ? void 0 : _a.close());
98
- await ((_b = this._service) === null || _b === void 0 ? void 0 : _b.close());
99
- await this._networkManager.close();
100
- }
101
- getSwarm(topic) {
102
- const swarm = this._swarms.get(topic);
103
- if (!swarm) {
104
- throw new Error(`Swarm not found for topic: ${topic}`);
105
- }
106
- return swarm;
107
- }
108
- createSwarm(topic) {
109
- // TODO(burdon): Multiple.
110
- // if (this._swarms.get(topic)) {
111
- // throw new Error(`Swarm already exists for topic: ${topic.truncate()}`);
112
- // }
113
- const swarm = new TestSwarmConnection(this, topic);
114
- this._swarms.set(topic, swarm);
115
- return swarm;
116
- }
117
- }
118
- exports.TestPeer = TestPeer;
119
- // TODO(burdon): Reconcile with new Swarm concept.
120
- class TestSwarmConnection {
121
- constructor(peer, topic) {
122
- this.peer = peer;
123
- this.topic = topic;
124
- // TODO(burdon): Configure plugins.
125
- // TODO(burdon): Prevent reuse?
126
- this.plugin = new test_protocol_1.TestProtocolPlugin(this.peer.peerId.asBuffer()); // TODO(burdon): PublicKey.
127
- }
128
- // TODO(burdon): Need to create new plugin instance per swarm?
129
- // If so, then perhaps joinSwarm should return swarm object with access to plugins.
130
- async join(topology = new topology_1.FullyConnectedTopology()) {
131
- await this.peer._networkManager.joinSwarm({
132
- topic: this.topic,
133
- peerId: this.peer.peerId,
134
- protocol: (0, test_protocol_1.testProtocolProvider)(this.topic.asBuffer(), this.peer.peerId, this.plugin),
135
- topology
136
- });
137
- return this;
138
- }
139
- async leave() {
140
- await this.peer._networkManager.leaveSwarm(this.topic);
141
- return this;
142
- }
143
- }
144
- exports.TestSwarmConnection = TestSwarmConnection;
145
- //# sourceMappingURL=test-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-builder.js","sourceRoot":"","sources":["../../../src/testing/test-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-protocol.d.ts","sourceRoot":"","sources":["../../../src/testing/test-protocol.ts"],"names":[],"mappings":";;AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAQ1D,eAAO,MAAM,SAAS,aAAc,QAAQ,uBAO3C,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,oBAAoB,UAAW,MAAM,UAAU,SAAS,kBAAkB,GAAG,kCAQzF,CAAC;AAEF;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,qBAAqB;IACrB,OAAO,SAAC;IAER,sBAAsB;IACtB,UAAU,UAAC;IAEX,UAAU,UAAS;IAEnB;;;;;;OAMG;gBACS,MAAM,EAAE,MAAM,EAAE,SAAS,UAAQ;IAU7C,IAAI,MAAM,WAET;IAGD,IAAI,KAAK,UAER;IAED;;;;OAIG;IACH,eAAe;YAYD,KAAK;IAInB;;;;;OAKG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAetD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG;IAYtC,cAAc,CAAC,QAAQ,EAAE,QAAQ;IAgBjC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;CAU3C"}
@@ -1,143 +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.TestProtocolPlugin = exports.testProtocolProvider = exports.getPeerId = void 0;
10
- // Test/mock Protocol implementation used in network-manager tests.
11
- const events_1 = require("events");
12
- const node_assert_1 = __importDefault(require("node:assert"));
13
- const keys_1 = require("@dxos/keys");
14
- const log_1 = require("@dxos/log");
15
- const mesh_protocol_1 = require("@dxos/mesh-protocol");
16
- const protocol_factory_1 = require("../protocol-factory");
17
- const EXTENSION_NAME = 'test';
18
- // TODO(burdon): PublicKey.
19
- // TODO(dboreham): This method should be added to Protocol (and one for "my ID"?).
20
- const getPeerId = (protocol) => {
21
- var _a;
22
- const { peerId } = (_a = protocol.getSession()) !== null && _a !== void 0 ? _a : {};
23
- if (!peerId) {
24
- return undefined;
25
- }
26
- return keys_1.PublicKey.bufferize(peerId);
27
- };
28
- exports.getPeerId = getPeerId;
29
- /**
30
- * @deprecated
31
- */
32
- // TODO(burdon): Reconcile with transportProtocolProvider.
33
- const testProtocolProvider = (topic, peerId, protocolPlugin) => {
34
- (0, log_1.log)('creating protocol-factory', { topic: keys_1.PublicKey.from(topic), peerId }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.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) });
35
- return (0, protocol_factory_1.protocolFactory)({
36
- getTopics: () => [topic],
37
- session: { peerId: peerId.toHex() },
38
- plugins: [protocolPlugin]
39
- });
40
- };
41
- exports.testProtocolProvider = testProtocolProvider;
42
- /**
43
- * Object Implementing a p2p protocol (interaction across a set of peers using a common protocol)
44
- * and an associated transport connection protocol (interaction with each individual peer over a single network
45
- * transport connection).
46
- */
47
- class TestProtocolPlugin extends events_1.EventEmitter {
48
- /**
49
- * Test Protocol. Passes through messages unchanged, or folds to upper case.
50
- * Provides a way to test that two protocols with different behavior are
51
- * indeed being used with two different swarm keys.
52
- * @param {Buffer} peerId
53
- * @param {Boolean} uppercase Fold payload case to upper if set.
54
- */
55
- constructor(peerId, uppercase = false) {
56
- super();
57
- /** @type {Map<string, {Protocol}>} */
58
- this._peers = new Map(); // TODO(burdon): Complex map.
59
- this.initCalled = false;
60
- (0, node_assert_1.default)(Buffer.isBuffer(peerId));
61
- // TODO(dboreham): Mis-named because this is OUR node ID, not the id of any peer.
62
- this._peerId = peerId;
63
- this._uppercase = uppercase;
64
- }
65
- // TODO(burdon): Expose key directly.
66
- get peerId() {
67
- return this._peerId;
68
- }
69
- // TODO(burdon): Map of keys.
70
- get peers() {
71
- return Array.from(this._peers.values());
72
- }
73
- /**
74
- * Factory function for Extensions (per-connection object).
75
- * Called when a new peer transport connection is established.
76
- * @return {Extension}
77
- */
78
- createExtension() {
79
- (0, log_1.log)('creating extension', { peerId: keys_1.PublicKey.from(this.peerId) }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 92, 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) }); // TODO(burdon): Just key.
80
- return new mesh_protocol_1.Extension(EXTENSION_NAME, { binary: true })
81
- .setInitHandler(this._init.bind(this))
82
- .setMessageHandler(this._receive.bind(this))
83
- .setHandshakeHandler(this._onPeerConnect.bind(this))
84
- .setCloseHandler(this._onPeerDisconnect.bind(this));
85
- }
86
- // Methods below are per-peer connection.
87
- // TODO(dboreham): Why are these here and not on Protocol?
88
- async _init(protocol) {
89
- this.initCalled = true;
90
- }
91
- /**
92
- * Send/Receive messages with peer when initiating a request/response interaction.
93
- * @param peerId Must be the value passed to the constructor on the responding node.
94
- * @param payload Message to send
95
- * @return Message received from peer in response to our request.
96
- */
97
- async send(peerId, payload) {
98
- (0, node_assert_1.default)(Buffer.isBuffer(peerId));
99
- const peerIdStr = keys_1.PublicKey.stringify(peerId); // TODO(burdon): PublicKey.
100
- const peer = this._peers.get(peerIdStr);
101
- if (!peer) {
102
- throw new Error(`peer not found: ${keys_1.PublicKey.from(peerId).truncate()}`);
103
- }
104
- const extension = peer.getExtension(EXTENSION_NAME);
105
- const encoded = Buffer.from(payload);
106
- (0, log_1.log)('sending', { peerId: keys_1.PublicKey.from(peerId), payload }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 124, 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) });
107
- return await extension.send(encoded, { oneway: true });
108
- }
109
- async _receive(protocol, data) {
110
- const peerId = (0, exports.getPeerId)(protocol);
111
- (0, node_assert_1.default)(peerId !== undefined);
112
- let payload = data.data.toString();
113
- if (this._uppercase) {
114
- payload = payload.toUpperCase();
115
- }
116
- (0, log_1.log)('received', { peerId: keys_1.PublicKey.from(peerId), payload }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 136, 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) });
117
- this.emit('receive', protocol, payload);
118
- }
119
- async _onPeerConnect(protocol) {
120
- (0, log_1.log)('connecting', { id: keys_1.PublicKey.from(protocol.id) }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 141, 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) });
121
- const peerId = (0, exports.getPeerId)(protocol);
122
- if (peerId === undefined) {
123
- return;
124
- }
125
- const peerIdStr = keys_1.PublicKey.stringify(peerId);
126
- if (this._peers.has(peerIdStr)) {
127
- return;
128
- }
129
- this._peers.set(peerIdStr, protocol);
130
- this.emit('connect', protocol);
131
- }
132
- async _onPeerDisconnect(protocol) {
133
- (0, log_1.log)('disconnecting', { id: keys_1.PublicKey.from(protocol.id) }, { file: "packages/core/mesh/network-manager/src/testing/test-protocol.ts", line: 157, 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) });
134
- const peerId = (0, exports.getPeerId)(protocol);
135
- if (peerId === undefined) {
136
- return;
137
- }
138
- this._peers.delete(keys_1.PublicKey.stringify(peerId));
139
- this.emit('disconnect', peerId);
140
- }
141
- }
142
- exports.TestProtocolPlugin = TestProtocolPlugin;
143
- //# sourceMappingURL=test-protocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-protocol.js","sourceRoot":"","sources":["../../../src/testing/test-protocol.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"basic-test-suite.d.ts","sourceRoot":"","sources":["../../../src/tests/basic-test-suite.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMzC;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAiB,WAAW,6BAiJtD,CAAC"}
@@ -1,142 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2021 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.basicTestSuite = void 0;
10
- const chai_1 = require("chai");
11
- const wait_for_expect_1 = __importDefault(require("wait-for-expect"));
12
- const async_1 = require("@dxos/async");
13
- const keys_1 = require("@dxos/keys");
14
- const log_1 = require("@dxos/log");
15
- const util_1 = require("@dxos/util");
16
- const topology_1 = require("../topology");
17
- const utils_1 = require("./utils");
18
- // TODO(burdon): Use PublicKey throughout (remove conversion to strings, from buffers, etc.)
19
- /**
20
- * Basic swarm tests.
21
- */
22
- const basicTestSuite = (testBuilder, runTests = true) => {
23
- if (runTests) {
24
- return;
25
- }
26
- it('joins swarm, sends messages, and cleanly exits', async () => {
27
- const peer1 = testBuilder.createPeer();
28
- const peer2 = testBuilder.createPeer();
29
- await (0, utils_1.openAndCloseAfterTest)([peer1, peer2]);
30
- const topic = keys_1.PublicKey.random();
31
- const [swarm1, swarm2] = await (0, utils_1.joinSwarm)([peer1, peer2], topic, () => new topology_1.FullyConnectedTopology());
32
- await (0, utils_1.exchangeMessages)(swarm1, swarm2);
33
- await (0, utils_1.leaveSwarm)([peer1, peer2], topic);
34
- });
35
- // TODO(burdon): Test with more peers (configure and test messaging).
36
- it('joins swarm with star topology', async () => {
37
- const peer1 = testBuilder.createPeer();
38
- const peer2 = testBuilder.createPeer();
39
- await (0, utils_1.openAndCloseAfterTest)([peer1, peer2]);
40
- const topic = keys_1.PublicKey.random();
41
- const [swarm1, swarm2] = await (0, utils_1.joinSwarm)([peer1, peer2], topic, () => new topology_1.StarTopology(peer1.peerId)); // NOTE: Same peer.
42
- await (0, utils_1.exchangeMessages)(swarm1, swarm2);
43
- await (0, utils_1.leaveSwarm)([peer1, peer2], topic);
44
- });
45
- // TODO(burdon): Fails when trying to reconnect to same topic.
46
- it('joins swarm multiple times', async () => {
47
- const peer1 = testBuilder.createPeer();
48
- const peer2 = testBuilder.createPeer();
49
- await (0, utils_1.openAndCloseAfterTest)([peer1, peer2]);
50
- const topic1 = keys_1.PublicKey.random();
51
- {
52
- const [swarm1, swarm2] = await (0, utils_1.joinSwarm)([peer1, peer2], topic1);
53
- await (0, utils_1.exchangeMessages)(swarm1, swarm2);
54
- await (0, utils_1.leaveSwarm)([peer1, peer2], topic1);
55
- }
56
- // TODO(burdon): Add log marker like this to logging lib. Auto add between tests?
57
- // TODO(burdon): Enable new Error to take second context obj: new Error('msg', {}).
58
- (0, log_1.log)('————————————————————————————————————————', {}, { file: "packages/core/mesh/network-manager/src/tests/basic-test-suite.ts", line: 67, 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) });
59
- const topic2 = keys_1.PublicKey.random();
60
- {
61
- const [swarm1, swarm2] = await (0, utils_1.joinSwarm)([peer1, peer2], topic2);
62
- await (0, utils_1.exchangeMessages)(swarm1, swarm2);
63
- await (0, utils_1.leaveSwarm)([peer1, peer2], topic2);
64
- }
65
- });
66
- it.skip('joins multiple swarms', async () => {
67
- // TODO(burdon): N peers.
68
- // TODO(burdon): Merge with test below.
69
- const peer1 = testBuilder.createPeer();
70
- const peer2 = testBuilder.createPeer();
71
- await (0, utils_1.openAndCloseAfterTest)([peer1, peer2]);
72
- const numSwarms = 5;
73
- const topics = Array.from(Array(numSwarms)).map(() => keys_1.PublicKey.random());
74
- (0, chai_1.expect)(topics).to.have.length(numSwarms);
75
- });
76
- // TODO(burdon): Fails with WebRTC.
77
- // TODO(burdon): This just tests multiple swarms (not peers in the same swarm)?
78
- // Generalize for n swarms and factor into other tests; configure message activity.
79
- it.skip('joins multiple swarms concurrently', async () => {
80
- const createSwarm = async (messages, label) => {
81
- const topicA = keys_1.PublicKey.random();
82
- const peer1a = testBuilder.createPeer();
83
- const peer2a = testBuilder.createPeer();
84
- const swarm1a = await peer1a.createSwarm(topicA).join();
85
- const swarm2a = await peer2a.createSwarm(topicA).join();
86
- swarm1a.plugin.on('receive', (_, msg) => {
87
- messages.push(msg);
88
- });
89
- swarm2a.plugin.on('connect', async () => {
90
- await swarm2a.plugin.send(peer1a.peerId.asBuffer(), label);
91
- });
92
- };
93
- const receivedA = [];
94
- const receivedB = [];
95
- void createSwarm(receivedA, 'Swarm A');
96
- void createSwarm(receivedB, 'Swarm B');
97
- // TODO(burdon): Replace with triggers.
98
- await (0, wait_for_expect_1.default)(() => {
99
- (0, chai_1.expect)(receivedA).to.have.length(1);
100
- (0, chai_1.expect)(receivedB).to.have.length(1);
101
- (0, chai_1.expect)(receivedA[0]).to.eq('Swarm A');
102
- (0, chai_1.expect)(receivedB[0]).to.eq('Swarm B');
103
- });
104
- });
105
- // TODO(burdon): Fails with WebRTC.
106
- // TODO(burdon): Factor out components of test.
107
- it.skip('many peers and connections', async () => {
108
- const numTopics = 5;
109
- const peersPerTopic = 5;
110
- await Promise.all((0, util_1.range)(numTopics).map(async () => {
111
- const topic = keys_1.PublicKey.random();
112
- await Promise.all((0, util_1.range)(peersPerTopic).map(async () => {
113
- const peer = testBuilder.createPeer();
114
- const swarm = await peer.createSwarm(topic).join();
115
- const [done, pongReceived] = (0, async_1.latch)({ count: peersPerTopic - 1 });
116
- swarm.plugin.on('connect', async (protocol) => {
117
- var _a;
118
- const { peerId } = (_a = protocol.getSession()) !== null && _a !== void 0 ? _a : {};
119
- const remoteId = keys_1.PublicKey.from(peerId);
120
- await swarm.plugin.send(remoteId.asBuffer(), 'ping');
121
- });
122
- swarm.plugin.on('receive', async (protocol, data) => {
123
- var _a;
124
- const { peerId } = (_a = protocol.getSession()) !== null && _a !== void 0 ? _a : {};
125
- const remoteId = keys_1.PublicKey.from(peerId);
126
- if (data === 'ping') {
127
- await swarm.plugin.send(remoteId.asBuffer(), 'pong');
128
- }
129
- else if (data === 'pong') {
130
- pongReceived();
131
- }
132
- else {
133
- throw new Error(`Invalid message: ${data}`);
134
- }
135
- });
136
- await done();
137
- }));
138
- }));
139
- });
140
- };
141
- exports.basicTestSuite = basicTestSuite;
142
- //# sourceMappingURL=basic-test-suite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"basic-test-suite.js","sourceRoot":"","sources":["../../../src/tests/basic-test-suite.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-transport.test.d.ts","sourceRoot":"","sources":["../../../src/tests/memory-transport.test.ts"],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2021 DXOS.org
4
- //
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const testing_1 = require("../testing");
7
- const basic_test_suite_1 = require("./basic-test-suite");
8
- describe('Memory transport', function () {
9
- const testBuilder = new testing_1.TestBuilder();
10
- (0, basic_test_suite_1.basicTestSuite)(testBuilder);
11
- });
12
- //# sourceMappingURL=memory-transport.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-transport.test.js","sourceRoot":"","sources":["../../../src/tests/memory-transport.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;AAEF,wCAAyC;AACzC,yDAAoD;AAEpD,QAAQ,CAAC,kBAAkB,EAAE;IAC3B,MAAM,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC;IACtC,IAAA,iCAAc,EAAC,WAAW,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"presence.test.d.ts","sourceRoot":"","sources":["../../../src/tests/presence.test.ts"],"names":[],"mappings":""}
@@ -1,61 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2021 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 chai_1 = require("chai");
10
- const wait_for_expect_1 = __importDefault(require("wait-for-expect"));
11
- const keys_1 = require("@dxos/keys");
12
- const messaging_1 = require("@dxos/messaging");
13
- const protocol_plugin_presence_1 = require("@dxos/protocol-plugin-presence");
14
- const testutils_1 = require("@dxos/testutils");
15
- const network_manager_1 = require("../network-manager");
16
- const protocol_factory_1 = require("../protocol-factory");
17
- const topology_1 = require("../topology");
18
- const transport_1 = require("../transport");
19
- const signalContext = new messaging_1.MemorySignalManagerContext();
20
- // TODO(burdon): Move to TestBuilder (configure plugins).
21
- const createPeer = async (topic) => {
22
- const peerId = keys_1.PublicKey.random();
23
- const networkManager = new network_manager_1.NetworkManager({
24
- signalManager: new messaging_1.MemorySignalManager(signalContext),
25
- transportFactory: transport_1.MemoryTransportFactory
26
- });
27
- (0, testutils_1.afterTest)(() => networkManager.close());
28
- const presencePlugin = new protocol_plugin_presence_1.PresencePlugin(peerId.asBuffer());
29
- (0, testutils_1.afterTest)(() => presencePlugin.stop());
30
- await networkManager.joinSwarm({
31
- peerId,
32
- protocol: (0, protocol_factory_1.createProtocolFactory)(topic, peerId, [presencePlugin]),
33
- topic,
34
- topology: new topology_1.FullyConnectedTopology()
35
- });
36
- return { peerId, presence: presencePlugin, networkManager };
37
- };
38
- describe('Presence', function () {
39
- it('detects connected peers', async function () {
40
- // TODO(burdon): Configure plugins.
41
- // const testBuilder = new TestBuilder();
42
- // const peer1 = testBuilder.createPeer();
43
- // const peer2 = testBuilder.createPeer();
44
- const topic = keys_1.PublicKey.random();
45
- const peer1 = await createPeer(topic);
46
- const peer2 = await createPeer(topic);
47
- // await peer1.joinSwarm(topic);
48
- // await peer2.joinSwarm(topic);
49
- // TODO(burdon): Use triggers instead of waitForExpect.
50
- await (0, wait_for_expect_1.default)(() => {
51
- (0, chai_1.expect)(peer1.presence.peers.map((key) => key.toString('hex')).sort()).to.deep.eq([peer1, peer2].map((key) => key.peerId.toHex()).sort());
52
- (0, chai_1.expect)(peer2.presence.peers.map((key) => key.toString('hex')).sort()).to.deep.eq([peer1, peer2].map((key) => key.peerId.toHex()).sort());
53
- });
54
- await peer2.networkManager.leaveSwarm(topic);
55
- await (0, wait_for_expect_1.default)(() => {
56
- (0, chai_1.expect)(peer1.presence.peers.map((key) => key.toString('hex')).sort()).to.deep.eq([peer1].map((key) => key.peerId.toHex()).sort());
57
- (0, chai_1.expect)(peer2.presence.peers.map((key) => key.toString('hex')).sort()).to.deep.eq([peer2].map((key) => key.peerId.toHex()).sort());
58
- });
59
- });
60
- });
61
- //# sourceMappingURL=presence.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"presence.test.js","sourceRoot":"","sources":["../../../src/tests/presence.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"property-test-suite.d.ts","sourceRoot":"","sources":["../../../src/tests/property-test-suite.ts"],"names":[],"mappings":"AAiBA;;GAEG;AAEH,eAAO,MAAM,iBAAiB,YAuM7B,CAAC"}