@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,138 +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.MemoryTransport = exports.MemoryTransportFactory = void 0;
10
- const node_assert_1 = __importDefault(require("node:assert"));
11
- const stream_1 = require("stream");
12
- const async_1 = require("@dxos/async");
13
- const debug_1 = require("@dxos/debug");
14
- const keys_1 = require("@dxos/keys");
15
- const log_1 = require("@dxos/log");
16
- const util_1 = require("@dxos/util");
17
- // TODO(burdon): Make configurable.
18
- // Delay (in milliseconds) for data being sent through in-memory connections to simulate network latency.
19
- const MEMORY_TRANSPORT_DELAY = 1;
20
- /**
21
- * Creates a binary stream that delays data being sent through the stream by the specified amount of time.
22
- */
23
- const createStreamDelay = (delay) => {
24
- return new stream_1.Transform({
25
- objectMode: true,
26
- transform: (chunk, _, cb) => {
27
- setTimeout(() => cb(null, chunk), delay); // TODO(burdon): Randomize.
28
- }
29
- });
30
- };
31
- exports.MemoryTransportFactory = {
32
- createTransport: (params) => new MemoryTransport(params)
33
- };
34
- /**
35
- * Fake transport.
36
- */
37
- class MemoryTransport {
38
- constructor(options) {
39
- var _a;
40
- this.options = options;
41
- this.closed = new async_1.Event();
42
- this.connected = new async_1.Event();
43
- this.errors = new debug_1.ErrorStream();
44
- this._id = keys_1.PublicKey.random(); // TODO(burdon): Rename peerId? (Use local/remote labels in logs).
45
- this._remote = new async_1.Trigger();
46
- this._outgoingDelay = createStreamDelay(MEMORY_TRANSPORT_DELAY);
47
- this._incomingDelay = createStreamDelay(MEMORY_TRANSPORT_DELAY);
48
- this._destroyed = false;
49
- (0, log_1.log)('creating', { id: this._id }, { file: "packages/core/mesh/network-manager/src/transport/memory-transport.ts", line: 59, 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) });
50
- (0, node_assert_1.default)(!MemoryTransport._connections.has(this._id), 'Duplicate memory connection');
51
- MemoryTransport._connections.set(this._id, this);
52
- // Initiator will send a signal, the receiver will receive the unique ID and connect the streams.
53
- if (this.options.initiator) {
54
- // prettier-ignore
55
- setTimeout(async () => {
56
- (0, log_1.log)('sending signal', { transportId: this._id }, { file: "packages/core/mesh/network-manager/src/transport/memory-transport.ts", line: 68, 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) });
57
- void this.options.sendSignal({
58
- json: JSON.stringify({ transportId: this._id.toHex() })
59
- });
60
- });
61
- }
62
- else {
63
- this._remote
64
- .wait({ timeout: (_a = this.options.timeout) !== null && _a !== void 0 ? _a : 1000 })
65
- .then((remoteId) => {
66
- if (this._destroyed) {
67
- return;
68
- }
69
- this._remoteId = remoteId;
70
- this._remoteConnection = MemoryTransport._connections.get(this._remoteId);
71
- if (!this._remoteConnection) {
72
- // Remote connection was destroyed before we could connect.
73
- this._destroyed = true;
74
- this.closed.emit();
75
- return;
76
- }
77
- (0, node_assert_1.default)(!this._remoteConnection._remoteConnection, new Error(`Remote already connected: ${this._remoteId}`));
78
- this._remoteConnection._remoteConnection = this;
79
- this._remoteConnection._remoteId = this._id;
80
- (0, log_1.log)('connected', { id: this._id, remote: this._remoteId }, { file: "packages/core/mesh/network-manager/src/transport/memory-transport.ts", line: 94, 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) });
81
- this.options.stream
82
- .pipe(this._outgoingDelay)
83
- .pipe(this._remoteConnection.options.stream)
84
- .pipe(this._incomingDelay)
85
- .pipe(this.options.stream);
86
- this.connected.emit();
87
- this._remoteConnection.connected.emit();
88
- })
89
- .catch((err) => {
90
- if (this._destroyed) {
91
- return;
92
- }
93
- this.errors.raise(err);
94
- });
95
- }
96
- }
97
- async destroy() {
98
- (0, log_1.log)('closing', { id: this._id }, { file: "packages/core/mesh/network-manager/src/transport/memory-transport.ts", line: 115, 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) });
99
- this._destroyed = true;
100
- MemoryTransport._connections.delete(this._id);
101
- if (this._remoteConnection) {
102
- (0, log_1.log)('closing', { id: this._remoteId }, { file: "packages/core/mesh/network-manager/src/transport/memory-transport.ts", line: 120, 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) });
103
- this._remoteConnection._destroyed = true;
104
- MemoryTransport._connections.delete(this._remoteId);
105
- // TODO(dmaretskyi): Hypercore streams do not seem to have the unpipe method.
106
- // NOTE(burdon): Using readable-stream.wrap() might help (see feed-store).
107
- // code this._stream
108
- // code .unpipe(this._outgoingDelay)
109
- // code .unpipe(this._remoteConnection._stream)
110
- // code .unpipe(this._incomingDelay)
111
- // code .unpipe(this._stream);
112
- this._outgoingDelay.unpipe();
113
- this._incomingDelay.unpipe();
114
- this._remoteConnection.closed.emit();
115
- this._remoteConnection._remoteConnection = undefined;
116
- this._remoteConnection = undefined;
117
- (0, log_1.log)('closed', { id: this._remoteId }, { file: "packages/core/mesh/network-manager/src/transport/memory-transport.ts", line: 138, 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) });
118
- }
119
- this.closed.emit();
120
- (0, log_1.log)('closed', { id: this._id }, { file: "packages/core/mesh/network-manager/src/transport/memory-transport.ts", line: 142, 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
- }
122
- signal(signal) {
123
- const { json } = signal;
124
- if (json) {
125
- // TODO(burdon): Check open?
126
- const { transportId } = JSON.parse(json);
127
- if (transportId) {
128
- const remoteId = keys_1.PublicKey.fromHex(transportId);
129
- (0, log_1.log)('received signal', { id: this._id, remoteId }, { file: "packages/core/mesh/network-manager/src/transport/memory-transport.ts", line: 152, 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) });
130
- this._remote.wake(remoteId);
131
- }
132
- }
133
- }
134
- }
135
- exports.MemoryTransport = MemoryTransport;
136
- // TODO(burdon): Remove static properties (inject context into constructor).
137
- MemoryTransport._connections = new util_1.ComplexMap(keys_1.PublicKey.hash);
138
- //# sourceMappingURL=memory-transport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-transport.js","sourceRoot":"","sources":["../../../src/transport/memory-transport.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-transport.test.d.ts","sourceRoot":"","sources":["../../../src/transport/memory-transport.test.ts"],"names":[],"mappings":""}
@@ -1,96 +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 expect_1 = __importDefault(require("expect"));
10
- const wait_for_expect_1 = __importDefault(require("wait-for-expect"));
11
- const crypto_1 = require("@dxos/crypto");
12
- const keys_1 = require("@dxos/keys");
13
- const mesh_protocol_1 = require("@dxos/mesh-protocol");
14
- const testutils_1 = require("@dxos/testutils");
15
- const util_1 = require("@dxos/util");
16
- const testing_1 = require("../testing");
17
- const memory_transport_1 = require("./memory-transport");
18
- // TODO(burdon): Flaky test.
19
- // Cannot log after tests are done. Did you forget to wait for something async in your test?
20
- // Attempted to log "Ignoring unsupported ICE candidate.".
21
- // TODO(burdon): Move to TestBuilder.
22
- const createPair = () => {
23
- const topic = keys_1.PublicKey.random();
24
- const peer1Id = keys_1.PublicKey.random();
25
- const peer2Id = keys_1.PublicKey.random();
26
- const plugin1 = new testing_1.TestProtocolPlugin(peer1Id.asBuffer());
27
- const protocolProvider1 = (0, testing_1.testProtocolProvider)(topic.asBuffer(), peer1Id, plugin1);
28
- const connection1 = new memory_transport_1.MemoryTransport({
29
- stream: protocolProvider1({ channel: (0, crypto_1.discoveryKey)(topic), initiator: true }).stream,
30
- sendSignal: async (signal) => {
31
- await connection2.signal(signal);
32
- },
33
- initiator: true
34
- });
35
- (0, testutils_1.afterTest)(() => connection1.destroy());
36
- (0, testutils_1.afterTest)(() => connection1.errors.assertNoUnhandledErrors());
37
- const plugin2 = new testing_1.TestProtocolPlugin(peer2Id.asBuffer());
38
- const protocolProvider2 = (0, testing_1.testProtocolProvider)(topic.asBuffer(), peer2Id, plugin2);
39
- const connection2 = new memory_transport_1.MemoryTransport({
40
- stream: protocolProvider2({ channel: (0, crypto_1.discoveryKey)(topic), initiator: false }).stream,
41
- sendSignal: async (signal) => {
42
- await connection1.signal(signal);
43
- },
44
- initiator: false
45
- });
46
- (0, testutils_1.afterTest)(() => connection2.destroy());
47
- (0, testutils_1.afterTest)(() => connection2.errors.assertNoUnhandledErrors());
48
- return {
49
- connection1,
50
- connection2,
51
- plugin1,
52
- plugin2,
53
- peer1Id,
54
- peer2Id,
55
- topic
56
- };
57
- };
58
- describe('MemoryTransport', function () {
59
- it('establish connection and send data through with protocol', async function () {
60
- const { plugin1, plugin2, peer1Id } = createPair();
61
- const received = [];
62
- const mockReceive = (p, s) => {
63
- received.push(p, s);
64
- return undefined;
65
- };
66
- plugin1.on('receive', mockReceive);
67
- plugin2.on('connect', async (protocol) => {
68
- await plugin2.send(peer1Id.asBuffer(), '{"message": "Hello"}');
69
- });
70
- await (0, wait_for_expect_1.default)(() => {
71
- (0, expect_1.default)(received.length).toBe(2);
72
- (0, expect_1.default)(received[0]).toBeInstanceOf(mesh_protocol_1.Protocol);
73
- (0, expect_1.default)(received[1]).toBe('{"message": "Hello"}');
74
- });
75
- });
76
- it.skip('10 pairs of peers connecting at the same time', async function () {
77
- await Promise.all((0, util_1.range)(10).map(async () => {
78
- const { plugin1, plugin2, peer1Id } = createPair();
79
- const received = [];
80
- const mockReceive = (p, s) => {
81
- received.push(p, s);
82
- return undefined;
83
- };
84
- plugin1.on('receive', mockReceive);
85
- plugin2.on('connect', async (protocol) => {
86
- await plugin2.send(peer1Id.asBuffer(), '{"message": "Hello"}');
87
- });
88
- await (0, wait_for_expect_1.default)(() => {
89
- (0, expect_1.default)(received.length).toBe(2);
90
- (0, expect_1.default)(received[0]).toBeInstanceOf(mesh_protocol_1.Protocol);
91
- (0, expect_1.default)(received[1]).toBe('{"message": "Hello"}');
92
- });
93
- }));
94
- });
95
- });
96
- //# sourceMappingURL=memory-transport.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-transport.test.js","sourceRoot":"","sources":["../../../src/transport/memory-transport.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/transport/transport.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,KAAK,CAAC;IACd,SAAS,EAAE,KAAK,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IAEpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC;IAE/B;;OAEG;IACH,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACvD"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2020 DXOS.org
4
- //
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- //# sourceMappingURL=transport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/transport/transport.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc-simple-peer.test.d.ts","sourceRoot":"","sources":["../../../src/transport/webrtc-simple-peer.test.ts"],"names":[],"mappings":""}
@@ -1,24 +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 wrtc_1 = __importDefault(require("@koush/wrtc"));
11
- const simple_peer_1 = __importDefault(require("simple-peer"));
12
- const async_1 = require("@dxos/async");
13
- describe('Node WebRTC and simple-peer', function () {
14
- // Simplest test that reproduces SIGABRT (mac) and SIGSEGV (linux) in wrtc.
15
- it.skip('open and close', async function () {
16
- const peer = new simple_peer_1.default({
17
- initiator: true,
18
- wrtc: wrtc_1.default
19
- });
20
- await (0, async_1.sleep)(1);
21
- await peer.destroy();
22
- }).timeout(3000);
23
- });
24
- //# sourceMappingURL=webrtc-simple-peer.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc-simple-peer.test.js","sourceRoot":"","sources":["../../../src/transport/webrtc-simple-peer.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,8BAA8B;AAE9B,uDAA+B;AAC/B,8DAAgD;AAEhD,uCAAoC;AAEpC,QAAQ,CAAC,6BAA6B,EAAE;IACtC,2EAA2E;IAC3E,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK;QAC7B,MAAM,IAAI,GAAG,IAAI,qBAAqB,CAAC;YACrC,SAAS,EAAE,IAAI;YACf,IAAI,EAAJ,cAAI;SACL,CAAC,CAAC;QAEH,MAAM,IAAA,aAAK,EAAC,CAAC,CAAC,CAAC;QAEf,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAK,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc-transport-proxy.d.ts","sourceRoot":"","sources":["../../../src/transport/webrtc-transport-proxy.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAgC,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACrG,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE5E,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC;AAEF,qBAAa,oBAAqB,YAAW,SAAS;IAYlD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAX1B,QAAQ,CAAC,MAAM,cAAe;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,QAAQ,CAAC,SAAS,cAAe;IAEjC,QAAQ,CAAC,MAAM,cAAqB;IAEpC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;gBAI5B,OAAO,EAAE,0BAA0B;YAmCxC,iBAAiB;IAiB/B,OAAO,CAAC,WAAW;YAKL,aAAa;IAI3B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB9B;;OAEG;IAEH,UAAU;CAKX;AAGD,qBAAa,2BAA4B,YAAW,gBAAgB;IAClE,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,YAAY,CAAmC;IAEvD;;;OAGG;IACH,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI;IAShE,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS;CAatD"}
@@ -1,139 +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.WebRTCTransportProxyFactory = exports.WebRTCTransportProxy = void 0;
10
- const assert_1 = __importDefault(require("assert"));
11
- const async_1 = require("@dxos/async");
12
- const debug_1 = require("@dxos/debug");
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
- class WebRTCTransportProxy {
17
- // prettier-ignore
18
- constructor(_params) {
19
- this._params = _params;
20
- this.closed = new async_1.Event();
21
- this._closed = false;
22
- this.connected = new async_1.Event();
23
- this.errors = new debug_1.ErrorStream();
24
- this._proxyId = keys_1.PublicKey.random();
25
- this._serviceStream = this._params.bridgeService.open({
26
- proxyId: this._proxyId,
27
- initiator: this._params.initiator
28
- });
29
- this._serviceStream.waitUntilReady().then(() => {
30
- this._serviceStream.subscribe(async (event) => {
31
- (0, log_1.log)('WebRTCTransportProxy: event', event, { file: "packages/core/mesh/network-manager/src/transport/webrtc-transport-proxy.ts", line: 46, 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) });
32
- if (event.connection) {
33
- await this._handleConnection(event.connection);
34
- }
35
- else if (event.data) {
36
- this._handleData(event.data);
37
- }
38
- else if (event.signal) {
39
- await this._handleSignal(event.signal);
40
- }
41
- });
42
- this._params.stream.on('data', async (data) => {
43
- try {
44
- await this._params.bridgeService.sendData({
45
- proxyId: this._proxyId,
46
- payload: data
47
- });
48
- }
49
- catch (err) {
50
- log_1.log.catch(err, {}, { file: "packages/core/mesh/network-manager/src/transport/webrtc-transport-proxy.ts", line: 63, 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) });
51
- }
52
- });
53
- }, (error) => log_1.log.catch(error, {}, { file: "packages/core/mesh/network-manager/src/transport/webrtc-transport-proxy.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) }));
54
- }
55
- async _handleConnection(connectionEvent) {
56
- if (connectionEvent.error) {
57
- this.errors.raise(new Error(connectionEvent.error));
58
- }
59
- switch (connectionEvent.state) {
60
- case bridge_1.ConnectionState.CONNECTED: {
61
- this.connected.emit();
62
- break;
63
- }
64
- case bridge_1.ConnectionState.CLOSED: {
65
- await this.destroy();
66
- break;
67
- }
68
- }
69
- }
70
- _handleData(dataEvent) {
71
- // NOTE: This must be a Buffer otherwise hypercore-protocol breaks.
72
- this._params.stream.write(Buffer.from(dataEvent.payload));
73
- }
74
- async _handleSignal(signalEvent) {
75
- await this._params.sendSignal(signalEvent.payload);
76
- }
77
- signal(signal) {
78
- this._params.bridgeService
79
- .sendSignal({
80
- proxyId: this._proxyId,
81
- signal
82
- })
83
- .catch((err) => this.errors.raise(err));
84
- }
85
- // TODO(burdon): Move open from constructor.
86
- async destroy() {
87
- if (this._closed) {
88
- return;
89
- }
90
- this._serviceStream.close();
91
- try {
92
- await this._params.bridgeService.close({ proxyId: this._proxyId });
93
- }
94
- catch (err) {
95
- log_1.log.catch(err, {}, { file: "packages/core/mesh/network-manager/src/transport/webrtc-transport-proxy.ts", line: 117, 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) });
96
- }
97
- this.closed.emit();
98
- this._closed = true;
99
- }
100
- /**
101
- * Called when underlying proxy service becomes unavailable.
102
- */
103
- // TODO(burdon): Option on close method.
104
- forceClose() {
105
- this._serviceStream.close();
106
- this.closed.emit();
107
- this._closed = true;
108
- }
109
- }
110
- exports.WebRTCTransportProxy = WebRTCTransportProxy;
111
- // TODO(burdon): Why is this named Proxy?
112
- class WebRTCTransportProxyFactory {
113
- constructor() {
114
- this._connections = new Set();
115
- }
116
- /**
117
- * Sets the current BridgeService to be used to open connections.
118
- * Calling this method will close any existing connections.
119
- */
120
- setBridgeService(bridgeService) {
121
- this._bridgeService = bridgeService;
122
- for (const connection of this._connections) {
123
- connection.forceClose();
124
- }
125
- return this;
126
- }
127
- createTransport(options) {
128
- (0, assert_1.default)(this._bridgeService, 'WebRTCTransportProxyFactory is not ready to open connections');
129
- const transport = new WebRTCTransportProxy({
130
- ...options,
131
- bridgeService: this._bridgeService
132
- });
133
- this._connections.add(transport);
134
- transport.closed.on(() => this._connections.delete(transport));
135
- return transport;
136
- }
137
- }
138
- exports.WebRTCTransportProxyFactory = WebRTCTransportProxyFactory;
139
- //# sourceMappingURL=webrtc-transport-proxy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc-transport-proxy.js","sourceRoot":"","sources":["../../../src/transport/webrtc-transport-proxy.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webrtc-transport-proxy.test.d.ts","sourceRoot":"","sources":["../../../src/transport/webrtc-transport-proxy.test.ts"],"names":[],"mappings":""}