@dxos/teleport 0.8.3 → 0.8.4-main.1068cf700f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/{browser/chunk-PKY5UWGF.mjs → neutral/chunk-ITQR2ADK.mjs} +216 -192
- package/dist/lib/neutral/chunk-ITQR2ADK.mjs.map +7 -0
- package/dist/lib/{browser → neutral}/index.mjs +11 -7
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/{browser → neutral}/testing/index.mjs +1 -1
- package/dist/types/src/muxing/balancer.d.ts +1 -1
- package/dist/types/src/muxing/balancer.d.ts.map +1 -1
- package/dist/types/src/muxing/index.d.ts +1 -1
- package/dist/types/src/muxing/index.d.ts.map +1 -1
- package/dist/types/src/muxing/muxer.d.ts.map +1 -1
- package/dist/types/src/rpc-extension.d.ts +2 -2
- package/dist/types/src/rpc-extension.d.ts.map +1 -1
- package/dist/types/src/teleport.d.ts +2 -2
- package/dist/types/src/teleport.d.ts.map +1 -1
- package/dist/types/src/testing/test-extension.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +21 -17
- package/src/control-extension.ts +2 -2
- package/src/muxing/balancer.test.ts +3 -2
- package/src/muxing/balancer.ts +1 -1
- package/src/muxing/framer.test.ts +2 -1
- package/src/muxing/index.ts +1 -1
- package/src/muxing/muxer.test.ts +4 -3
- package/src/muxing/muxer.ts +8 -4
- package/src/rpc-extension.ts +3 -3
- package/src/teleport.test.ts +1 -1
- package/src/teleport.ts +4 -4
- package/src/testing/test-extension-with-streams.ts +1 -1
- package/src/testing/test-extension.ts +2 -2
- package/dist/lib/browser/chunk-PKY5UWGF.mjs.map +0 -7
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/node/chunk-IL4CNIZ3.cjs +0 -2093
- package/dist/lib/node/chunk-IL4CNIZ3.cjs.map +0 -7
- package/dist/lib/node/index.cjs +0 -106
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/lib/node/testing/index.cjs +0 -37
- package/dist/lib/node/testing/index.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-Z23CICUY.mjs +0 -2094
- package/dist/lib/node-esm/chunk-Z23CICUY.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -86
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/testing/index.mjs +0 -16
- package/dist/lib/node-esm/testing/index.mjs.map +0 -7
- /package/dist/lib/{browser → neutral}/testing/index.mjs.map +0 -0
|
@@ -25,9 +25,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
25
25
|
mod
|
|
26
26
|
));
|
|
27
27
|
|
|
28
|
-
// node_modules/.pnpm/varint@6.0.0/node_modules/varint/encode.js
|
|
28
|
+
// ../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/encode.js
|
|
29
29
|
var require_encode = __commonJS({
|
|
30
|
-
"node_modules/.pnpm/varint@6.0.0/node_modules/varint/encode.js"(exports, module) {
|
|
30
|
+
"../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/encode.js"(exports, module) {
|
|
31
31
|
module.exports = encode;
|
|
32
32
|
var MSB = 128;
|
|
33
33
|
var REST = 127;
|
|
@@ -56,9 +56,9 @@ var require_encode = __commonJS({
|
|
|
56
56
|
}
|
|
57
57
|
});
|
|
58
58
|
|
|
59
|
-
// node_modules/.pnpm/varint@6.0.0/node_modules/varint/decode.js
|
|
59
|
+
// ../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/decode.js
|
|
60
60
|
var require_decode = __commonJS({
|
|
61
|
-
"node_modules/.pnpm/varint@6.0.0/node_modules/varint/decode.js"(exports, module) {
|
|
61
|
+
"../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/decode.js"(exports, module) {
|
|
62
62
|
module.exports = read;
|
|
63
63
|
var MSB = 128;
|
|
64
64
|
var REST = 127;
|
|
@@ -79,9 +79,9 @@ var require_decode = __commonJS({
|
|
|
79
79
|
}
|
|
80
80
|
});
|
|
81
81
|
|
|
82
|
-
// node_modules/.pnpm/varint@6.0.0/node_modules/varint/length.js
|
|
82
|
+
// ../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/length.js
|
|
83
83
|
var require_length = __commonJS({
|
|
84
|
-
"node_modules/.pnpm/varint@6.0.0/node_modules/varint/length.js"(exports, module) {
|
|
84
|
+
"../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/length.js"(exports, module) {
|
|
85
85
|
var N1 = Math.pow(2, 7);
|
|
86
86
|
var N2 = Math.pow(2, 14);
|
|
87
87
|
var N3 = Math.pow(2, 21);
|
|
@@ -97,9 +97,9 @@ var require_length = __commonJS({
|
|
|
97
97
|
}
|
|
98
98
|
});
|
|
99
99
|
|
|
100
|
-
// node_modules/.pnpm/varint@6.0.0/node_modules/varint/index.js
|
|
100
|
+
// ../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/index.js
|
|
101
101
|
var require_varint = __commonJS({
|
|
102
|
-
"node_modules/.pnpm/varint@6.0.0/node_modules/varint/index.js"(exports, module) {
|
|
102
|
+
"../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/index.js"(exports, module) {
|
|
103
103
|
module.exports = {
|
|
104
104
|
encode: require_encode(),
|
|
105
105
|
decode: require_decode(),
|
|
@@ -108,15 +108,15 @@ var require_varint = __commonJS({
|
|
|
108
108
|
}
|
|
109
109
|
});
|
|
110
110
|
|
|
111
|
-
//
|
|
111
|
+
// src/testing/test-builder.ts
|
|
112
112
|
import { pipeline } from "@dxos/node-std/stream";
|
|
113
113
|
import { waitForCondition } from "@dxos/async";
|
|
114
114
|
import { invariant as invariant5 } from "@dxos/invariant";
|
|
115
115
|
import { PublicKey as PublicKey2 } from "@dxos/keys";
|
|
116
116
|
import { log as log6 } from "@dxos/log";
|
|
117
117
|
|
|
118
|
-
//
|
|
119
|
-
import { runInContextAsync,
|
|
118
|
+
// src/teleport.ts
|
|
119
|
+
import { runInContextAsync, scheduleTask, synchronized } from "@dxos/async";
|
|
120
120
|
import { Context as Context3 } from "@dxos/context";
|
|
121
121
|
import { failUndefined as failUndefined2 } from "@dxos/debug";
|
|
122
122
|
import { invariant as invariant4 } from "@dxos/invariant";
|
|
@@ -124,31 +124,36 @@ import { PublicKey } from "@dxos/keys";
|
|
|
124
124
|
import { log as log5, logInfo as logInfo2 } from "@dxos/log";
|
|
125
125
|
import { RpcClosedError as RpcClosedError2, TimeoutError as TimeoutError2 } from "@dxos/protocols";
|
|
126
126
|
|
|
127
|
-
//
|
|
128
|
-
import {
|
|
127
|
+
// src/control-extension.ts
|
|
128
|
+
import { TimeoutError as AsyncTimeoutError, asyncTimeout, scheduleTaskInterval } from "@dxos/async";
|
|
129
129
|
import { Context } from "@dxos/context";
|
|
130
130
|
import { log } from "@dxos/log";
|
|
131
131
|
import { RpcClosedError } from "@dxos/protocols";
|
|
132
132
|
import { schema } from "@dxos/protocols/proto";
|
|
133
133
|
import { createProtoRpcPeer } from "@dxos/rpc";
|
|
134
134
|
import { Callback } from "@dxos/util";
|
|
135
|
-
var __dxlog_file = "/
|
|
135
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/mesh/teleport/src/control-extension.ts";
|
|
136
136
|
var HEARTBEAT_RTT_WARN_THRESH = 1e4;
|
|
137
137
|
var DEBUG_PRINT_HEARTBEAT = false;
|
|
138
138
|
var ControlExtension = class {
|
|
139
|
+
opts;
|
|
140
|
+
localPeerId;
|
|
141
|
+
remotePeerId;
|
|
142
|
+
_ctx = new Context({
|
|
143
|
+
onError: (err) => {
|
|
144
|
+
this._extensionContext.close(err);
|
|
145
|
+
}
|
|
146
|
+
}, {
|
|
147
|
+
F: __dxlog_file,
|
|
148
|
+
L: 31
|
|
149
|
+
});
|
|
150
|
+
onExtensionRegistered = new Callback();
|
|
151
|
+
_extensionContext;
|
|
152
|
+
_rpc;
|
|
139
153
|
constructor(opts, localPeerId, remotePeerId) {
|
|
140
154
|
this.opts = opts;
|
|
141
155
|
this.localPeerId = localPeerId;
|
|
142
156
|
this.remotePeerId = remotePeerId;
|
|
143
|
-
this._ctx = new Context({
|
|
144
|
-
onError: (err) => {
|
|
145
|
-
this._extensionContext.close(err);
|
|
146
|
-
}
|
|
147
|
-
}, {
|
|
148
|
-
F: __dxlog_file,
|
|
149
|
-
L: 31
|
|
150
|
-
});
|
|
151
|
-
this.onExtensionRegistered = new Callback();
|
|
152
157
|
}
|
|
153
158
|
async registerExtension(name) {
|
|
154
159
|
await this._rpc.rpc.Control.registerExtension({
|
|
@@ -276,92 +281,90 @@ var ControlExtension = class {
|
|
|
276
281
|
}
|
|
277
282
|
};
|
|
278
283
|
|
|
279
|
-
//
|
|
284
|
+
// src/muxing/framer.ts
|
|
280
285
|
import { Duplex } from "@dxos/node-std/stream";
|
|
281
286
|
import { Event } from "@dxos/async";
|
|
282
287
|
import { invariant } from "@dxos/invariant";
|
|
283
288
|
import { log as log2 } from "@dxos/log";
|
|
284
|
-
var __dxlog_file2 = "/
|
|
289
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/muxing/framer.ts";
|
|
285
290
|
var FRAME_LENGTH_SIZE = 2;
|
|
286
291
|
var Framer = class {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
this._buffer
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
292
|
+
// private readonly _tagBuffer = Buffer.alloc(4)
|
|
293
|
+
_messageCb = void 0;
|
|
294
|
+
_subscribeCb = void 0;
|
|
295
|
+
_buffer = void 0;
|
|
296
|
+
_sendCallbacks = [];
|
|
297
|
+
_bytesSent = 0;
|
|
298
|
+
_bytesReceived = 0;
|
|
299
|
+
_writable = true;
|
|
300
|
+
drain = new Event();
|
|
301
|
+
// TODO(egorgripasov): Consider using a Transform stream if it provides better backpressure handling.
|
|
302
|
+
_stream = new Duplex({
|
|
303
|
+
objectMode: false,
|
|
304
|
+
read: () => {
|
|
305
|
+
this._processResponseQueue();
|
|
306
|
+
},
|
|
307
|
+
write: (chunk, encoding, callback) => {
|
|
308
|
+
invariant(!this._subscribeCb, "Internal Framer bug. Concurrent writes detected.", {
|
|
309
|
+
F: __dxlog_file2,
|
|
310
|
+
L: 40,
|
|
311
|
+
S: this,
|
|
312
|
+
A: [
|
|
313
|
+
"!this._subscribeCb",
|
|
314
|
+
"'Internal Framer bug. Concurrent writes detected.'"
|
|
315
|
+
]
|
|
316
|
+
});
|
|
317
|
+
this._bytesReceived += chunk.length;
|
|
318
|
+
if (this._buffer && this._buffer.length > 0) {
|
|
319
|
+
this._buffer = Buffer.concat([
|
|
320
|
+
this._buffer,
|
|
321
|
+
chunk
|
|
322
|
+
]);
|
|
323
|
+
} else {
|
|
324
|
+
this._buffer = chunk;
|
|
325
|
+
}
|
|
326
|
+
if (this._messageCb) {
|
|
327
|
+
this._popFrames();
|
|
328
|
+
callback();
|
|
329
|
+
} else {
|
|
330
|
+
this._subscribeCb = () => {
|
|
323
331
|
this._popFrames();
|
|
332
|
+
this._subscribeCb = void 0;
|
|
324
333
|
callback();
|
|
325
|
-
} else {
|
|
326
|
-
this._subscribeCb = () => {
|
|
327
|
-
this._popFrames();
|
|
328
|
-
this._subscribeCb = void 0;
|
|
329
|
-
callback();
|
|
330
|
-
};
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
});
|
|
334
|
-
this.port = {
|
|
335
|
-
send: (message) => {
|
|
336
|
-
return new Promise((resolve) => {
|
|
337
|
-
const frame = encodeFrame(message);
|
|
338
|
-
this._bytesSent += frame.length;
|
|
339
|
-
this._writable = this._stream.push(frame);
|
|
340
|
-
if (!this._writable) {
|
|
341
|
-
this._sendCallbacks.push(resolve);
|
|
342
|
-
} else {
|
|
343
|
-
resolve();
|
|
344
|
-
}
|
|
345
|
-
});
|
|
346
|
-
},
|
|
347
|
-
subscribe: (callback) => {
|
|
348
|
-
invariant(!this._messageCb, "Rpc port already has a message listener.", {
|
|
349
|
-
F: __dxlog_file2,
|
|
350
|
-
L: 79,
|
|
351
|
-
S: this,
|
|
352
|
-
A: [
|
|
353
|
-
"!this._messageCb",
|
|
354
|
-
"'Rpc port already has a message listener.'"
|
|
355
|
-
]
|
|
356
|
-
});
|
|
357
|
-
this._messageCb = callback;
|
|
358
|
-
this._subscribeCb?.();
|
|
359
|
-
return () => {
|
|
360
|
-
this._messageCb = void 0;
|
|
361
334
|
};
|
|
362
335
|
}
|
|
363
|
-
}
|
|
364
|
-
}
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
port = {
|
|
339
|
+
send: (message) => {
|
|
340
|
+
return new Promise((resolve) => {
|
|
341
|
+
const frame = encodeFrame(message);
|
|
342
|
+
this._bytesSent += frame.length;
|
|
343
|
+
this._writable = this._stream.push(frame);
|
|
344
|
+
if (!this._writable) {
|
|
345
|
+
this._sendCallbacks.push(resolve);
|
|
346
|
+
} else {
|
|
347
|
+
resolve();
|
|
348
|
+
}
|
|
349
|
+
});
|
|
350
|
+
},
|
|
351
|
+
subscribe: (callback) => {
|
|
352
|
+
invariant(!this._messageCb, "Rpc port already has a message listener.", {
|
|
353
|
+
F: __dxlog_file2,
|
|
354
|
+
L: 79,
|
|
355
|
+
S: this,
|
|
356
|
+
A: [
|
|
357
|
+
"!this._messageCb",
|
|
358
|
+
"'Rpc port already has a message listener.'"
|
|
359
|
+
]
|
|
360
|
+
});
|
|
361
|
+
this._messageCb = callback;
|
|
362
|
+
this._subscribeCb?.();
|
|
363
|
+
return () => {
|
|
364
|
+
this._messageCb = void 0;
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
};
|
|
365
368
|
get stream() {
|
|
366
369
|
return this._stream;
|
|
367
370
|
}
|
|
@@ -442,9 +445,9 @@ var encodeFrame = (payload) => {
|
|
|
442
445
|
return frame;
|
|
443
446
|
};
|
|
444
447
|
|
|
445
|
-
//
|
|
448
|
+
// src/muxing/muxer.ts
|
|
446
449
|
import { Duplex as Duplex2 } from "@dxos/node-std/stream";
|
|
447
|
-
import {
|
|
450
|
+
import { Event as Event3, Trigger, asyncTimeout as asyncTimeout2, scheduleTaskInterval as scheduleTaskInterval2 } from "@dxos/async";
|
|
448
451
|
import { Context as Context2 } from "@dxos/context";
|
|
449
452
|
import { failUndefined } from "@dxos/debug";
|
|
450
453
|
import { invariant as invariant3 } from "@dxos/invariant";
|
|
@@ -452,24 +455,26 @@ import { log as log4, logInfo } from "@dxos/log";
|
|
|
452
455
|
import { TimeoutError } from "@dxos/protocols";
|
|
453
456
|
import { schema as schema2 } from "@dxos/protocols/proto";
|
|
454
457
|
|
|
455
|
-
//
|
|
458
|
+
// src/muxing/balancer.ts
|
|
456
459
|
var import_varint = __toESM(require_varint(), 1);
|
|
457
460
|
import { Event as Event2 } from "@dxos/async";
|
|
458
461
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
459
462
|
import { log as log3 } from "@dxos/log";
|
|
460
|
-
var __dxlog_file3 = "/
|
|
463
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/muxing/balancer.ts";
|
|
461
464
|
var MAX_CHUNK_SIZE = 8192;
|
|
462
465
|
var Balancer = class {
|
|
466
|
+
_sysChannelId;
|
|
467
|
+
_lastCallerIndex = 0;
|
|
468
|
+
_channels = [];
|
|
469
|
+
_framer = new Framer();
|
|
470
|
+
// TODO(egorgripasov): Will cause a memory leak if channels do not appreciate the backpressure.
|
|
471
|
+
_sendBuffers = /* @__PURE__ */ new Map();
|
|
472
|
+
_receiveBuffers = /* @__PURE__ */ new Map();
|
|
473
|
+
_sending = false;
|
|
474
|
+
incomingData = new Event2();
|
|
475
|
+
stream = this._framer.stream;
|
|
463
476
|
constructor(_sysChannelId) {
|
|
464
477
|
this._sysChannelId = _sysChannelId;
|
|
465
|
-
this._lastCallerIndex = 0;
|
|
466
|
-
this._channels = [];
|
|
467
|
-
this._framer = new Framer();
|
|
468
|
-
this._sendBuffers = /* @__PURE__ */ new Map();
|
|
469
|
-
this._receiveBuffers = /* @__PURE__ */ new Map();
|
|
470
|
-
this._sending = false;
|
|
471
|
-
this.incomingData = new Event2();
|
|
472
|
-
this.stream = this._framer.stream;
|
|
473
478
|
this._channels.push(_sysChannelId);
|
|
474
479
|
this._framer.port.subscribe(this._processIncomingMessage.bind(this));
|
|
475
480
|
}
|
|
@@ -661,14 +666,14 @@ var decodeChunk = (data, withLength) => {
|
|
|
661
666
|
};
|
|
662
667
|
};
|
|
663
668
|
|
|
664
|
-
//
|
|
669
|
+
// src/muxing/muxer.ts
|
|
665
670
|
function _ts_decorate(decorators, target, key, desc) {
|
|
666
671
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
667
672
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
668
673
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
669
674
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
670
675
|
}
|
|
671
|
-
var __dxlog_file4 = "/
|
|
676
|
+
var __dxlog_file4 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/muxing/muxer.ts";
|
|
672
677
|
var Command = schema2.getCodecForType("dxos.mesh.muxer.Command");
|
|
673
678
|
var DEFAULT_SEND_COMMAND_TIMEOUT = 6e4;
|
|
674
679
|
var DESTROY_COMMAND_SEND_TIMEOUT = 5e3;
|
|
@@ -677,23 +682,24 @@ var MAX_SAFE_FRAME_SIZE = 1e6;
|
|
|
677
682
|
var SYSTEM_CHANNEL_ID = 0;
|
|
678
683
|
var GRACEFUL_CLOSE_TIMEOUT = 3e3;
|
|
679
684
|
var Muxer = class {
|
|
685
|
+
_balancer = new Balancer(SYSTEM_CHANNEL_ID);
|
|
686
|
+
_channelsByLocalId = /* @__PURE__ */ new Map();
|
|
687
|
+
_channelsByTag = /* @__PURE__ */ new Map();
|
|
688
|
+
_ctx = new Context2(void 0, {
|
|
689
|
+
F: __dxlog_file4,
|
|
690
|
+
L: 108
|
|
691
|
+
});
|
|
692
|
+
_sessionId;
|
|
693
|
+
_nextId = 1;
|
|
694
|
+
_closing = false;
|
|
695
|
+
_destroying = false;
|
|
696
|
+
_disposed = false;
|
|
697
|
+
_lastStats = void 0;
|
|
698
|
+
_lastChannelStats = /* @__PURE__ */ new Map();
|
|
699
|
+
afterClosed = new Event3();
|
|
700
|
+
statsUpdated = new Event3();
|
|
701
|
+
stream = this._balancer.stream;
|
|
680
702
|
constructor() {
|
|
681
|
-
this._balancer = new Balancer(SYSTEM_CHANNEL_ID);
|
|
682
|
-
this._channelsByLocalId = /* @__PURE__ */ new Map();
|
|
683
|
-
this._channelsByTag = /* @__PURE__ */ new Map();
|
|
684
|
-
this._ctx = new Context2(void 0, {
|
|
685
|
-
F: __dxlog_file4,
|
|
686
|
-
L: 108
|
|
687
|
-
});
|
|
688
|
-
this._nextId = 1;
|
|
689
|
-
this._closing = false;
|
|
690
|
-
this._destroying = false;
|
|
691
|
-
this._disposed = false;
|
|
692
|
-
this._lastStats = void 0;
|
|
693
|
-
this._lastChannelStats = /* @__PURE__ */ new Map();
|
|
694
|
-
this.afterClosed = new Event3();
|
|
695
|
-
this.statsUpdated = new Event3();
|
|
696
|
-
this.stream = this._balancer.stream;
|
|
697
703
|
this._balancer.incomingData.on(async (msg) => {
|
|
698
704
|
await this._handleCommand(Command.decode(msg));
|
|
699
705
|
});
|
|
@@ -861,14 +867,16 @@ var Muxer = class {
|
|
|
861
867
|
});
|
|
862
868
|
await this._dispose(err2);
|
|
863
869
|
});
|
|
864
|
-
await asyncTimeout2(this._dispose(err), GRACEFUL_CLOSE_TIMEOUT, new TimeoutError(
|
|
870
|
+
await asyncTimeout2(this._dispose(err), GRACEFUL_CLOSE_TIMEOUT, new TimeoutError({
|
|
871
|
+
message: "gracefully closing muxer"
|
|
872
|
+
}));
|
|
865
873
|
}
|
|
866
874
|
// force close without confirmation
|
|
867
875
|
async destroy(err) {
|
|
868
876
|
if (this._destroying) {
|
|
869
877
|
log4("already destroying, ignoring destroy request", void 0, {
|
|
870
878
|
F: __dxlog_file4,
|
|
871
|
-
L:
|
|
879
|
+
L: 303,
|
|
872
880
|
S: this,
|
|
873
881
|
C: (f, a) => f(...a)
|
|
874
882
|
});
|
|
@@ -879,7 +887,7 @@ var Muxer = class {
|
|
|
879
887
|
if (this._closing) {
|
|
880
888
|
log4("destroy cancelling graceful close", void 0, {
|
|
881
889
|
F: __dxlog_file4,
|
|
882
|
-
L:
|
|
890
|
+
L: 309,
|
|
883
891
|
S: this,
|
|
884
892
|
C: (f, a) => f(...a)
|
|
885
893
|
});
|
|
@@ -894,7 +902,7 @@ var Muxer = class {
|
|
|
894
902
|
err: err2
|
|
895
903
|
}, {
|
|
896
904
|
F: __dxlog_file4,
|
|
897
|
-
L:
|
|
905
|
+
L: 322,
|
|
898
906
|
S: this,
|
|
899
907
|
C: (f, a) => f(...a)
|
|
900
908
|
});
|
|
@@ -905,7 +913,7 @@ var Muxer = class {
|
|
|
905
913
|
err: err2
|
|
906
914
|
}, {
|
|
907
915
|
F: __dxlog_file4,
|
|
908
|
-
L:
|
|
916
|
+
L: 327,
|
|
909
917
|
S: this,
|
|
910
918
|
C: (f, a) => f(...a)
|
|
911
919
|
});
|
|
@@ -916,7 +924,7 @@ var Muxer = class {
|
|
|
916
924
|
if (this._disposed) {
|
|
917
925
|
log4("already destroyed, ignoring dispose request", void 0, {
|
|
918
926
|
F: __dxlog_file4,
|
|
919
|
-
L:
|
|
927
|
+
L: 335,
|
|
920
928
|
S: this,
|
|
921
929
|
C: (f, a) => f(...a)
|
|
922
930
|
});
|
|
@@ -939,7 +947,7 @@ var Muxer = class {
|
|
|
939
947
|
cmd
|
|
940
948
|
}, {
|
|
941
949
|
F: __dxlog_file4,
|
|
942
|
-
L:
|
|
950
|
+
L: 358,
|
|
943
951
|
S: this,
|
|
944
952
|
C: (f, a) => f(...a)
|
|
945
953
|
});
|
|
@@ -949,7 +957,7 @@ var Muxer = class {
|
|
|
949
957
|
if (!this._closing) {
|
|
950
958
|
log4("received peer close, initiating my own graceful close", void 0, {
|
|
951
959
|
F: __dxlog_file4,
|
|
952
|
-
L:
|
|
960
|
+
L: 364,
|
|
953
961
|
S: this,
|
|
954
962
|
C: (f, a) => f(...a)
|
|
955
963
|
});
|
|
@@ -957,7 +965,7 @@ var Muxer = class {
|
|
|
957
965
|
} else {
|
|
958
966
|
log4("received close from peer, already closing", void 0, {
|
|
959
967
|
F: __dxlog_file4,
|
|
960
|
-
L:
|
|
968
|
+
L: 367,
|
|
961
969
|
S: this,
|
|
962
970
|
C: (f, a) => f(...a)
|
|
963
971
|
});
|
|
@@ -986,7 +994,7 @@ var Muxer = class {
|
|
|
986
994
|
tag: stream.tag
|
|
987
995
|
}, {
|
|
988
996
|
F: __dxlog_file4,
|
|
989
|
-
L:
|
|
997
|
+
L: 396,
|
|
990
998
|
S: this,
|
|
991
999
|
C: (f, a) => f(...a)
|
|
992
1000
|
});
|
|
@@ -1041,7 +1049,7 @@ var Muxer = class {
|
|
|
1041
1049
|
threshold: MAX_SAFE_FRAME_SIZE
|
|
1042
1050
|
}, {
|
|
1043
1051
|
F: __dxlog_file4,
|
|
1044
|
-
L:
|
|
1052
|
+
L: 446,
|
|
1045
1053
|
S: this,
|
|
1046
1054
|
C: (f, a) => f(...a)
|
|
1047
1055
|
});
|
|
@@ -1064,7 +1072,7 @@ var Muxer = class {
|
|
|
1064
1072
|
err
|
|
1065
1073
|
}, {
|
|
1066
1074
|
F: __dxlog_file4,
|
|
1067
|
-
L:
|
|
1075
|
+
L: 469,
|
|
1068
1076
|
S: this,
|
|
1069
1077
|
C: (f, a) => f(...a)
|
|
1070
1078
|
});
|
|
@@ -1130,47 +1138,55 @@ _ts_decorate([
|
|
|
1130
1138
|
logInfo
|
|
1131
1139
|
], Muxer.prototype, "sessionIdString", null);
|
|
1132
1140
|
|
|
1133
|
-
//
|
|
1141
|
+
// src/teleport.ts
|
|
1134
1142
|
function _ts_decorate2(decorators, target, key, desc) {
|
|
1135
1143
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1136
1144
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1137
1145
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1138
1146
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1139
1147
|
}
|
|
1140
|
-
var __dxlog_file5 = "/
|
|
1148
|
+
var __dxlog_file5 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/teleport.ts";
|
|
1141
1149
|
var CONTROL_HEARTBEAT_INTERVAL = 1e4;
|
|
1142
1150
|
var CONTROL_HEARTBEAT_TIMEOUT = 6e4;
|
|
1143
1151
|
var Teleport = class {
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1152
|
+
initiator;
|
|
1153
|
+
localPeerId;
|
|
1154
|
+
remotePeerId;
|
|
1155
|
+
_sessionId;
|
|
1156
|
+
_ctx = new Context3({
|
|
1157
|
+
onError: (err) => {
|
|
1158
|
+
log5.info("error in teleport context", {
|
|
1159
|
+
err
|
|
1160
|
+
}, {
|
|
1161
|
+
F: __dxlog_file5,
|
|
1162
|
+
L: 40,
|
|
1163
|
+
S: this,
|
|
1164
|
+
C: (f, a) => f(...a)
|
|
1165
|
+
});
|
|
1166
|
+
void this.destroy(err).catch(() => {
|
|
1167
|
+
log5.error("Error during destroy", err, {
|
|
1150
1168
|
F: __dxlog_file5,
|
|
1151
|
-
L:
|
|
1169
|
+
L: 42,
|
|
1152
1170
|
S: this,
|
|
1153
1171
|
C: (f, a) => f(...a)
|
|
1154
1172
|
});
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
this.
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
this._destroying = false;
|
|
1173
|
-
this._aborting = false;
|
|
1173
|
+
});
|
|
1174
|
+
}
|
|
1175
|
+
}, {
|
|
1176
|
+
F: __dxlog_file5,
|
|
1177
|
+
L: 38
|
|
1178
|
+
});
|
|
1179
|
+
_muxer = new Muxer();
|
|
1180
|
+
_control;
|
|
1181
|
+
_extensions = /* @__PURE__ */ new Map();
|
|
1182
|
+
_remoteExtensions = /* @__PURE__ */ new Set();
|
|
1183
|
+
_open = false;
|
|
1184
|
+
_destroying = false;
|
|
1185
|
+
_aborting = false;
|
|
1186
|
+
get isOpen() {
|
|
1187
|
+
return this._open;
|
|
1188
|
+
}
|
|
1189
|
+
constructor({ initiator, localPeerId, remotePeerId, ...rest }) {
|
|
1174
1190
|
invariant4(typeof initiator === "boolean", void 0, {
|
|
1175
1191
|
F: __dxlog_file5,
|
|
1176
1192
|
L: 63,
|
|
@@ -1214,7 +1230,9 @@ var Teleport = class {
|
|
|
1214
1230
|
S: this,
|
|
1215
1231
|
C: (f, a) => f(...a)
|
|
1216
1232
|
});
|
|
1217
|
-
this.abort(new TimeoutError2(
|
|
1233
|
+
this.abort(new TimeoutError2({
|
|
1234
|
+
message: "control extension"
|
|
1235
|
+
})).catch((err) => log5.catch(err, void 0, {
|
|
1218
1236
|
F: __dxlog_file5,
|
|
1219
1237
|
L: 79,
|
|
1220
1238
|
S: this,
|
|
@@ -1283,9 +1301,6 @@ var Teleport = class {
|
|
|
1283
1301
|
});
|
|
1284
1302
|
});
|
|
1285
1303
|
}
|
|
1286
|
-
get isOpen() {
|
|
1287
|
-
return this._open;
|
|
1288
|
-
}
|
|
1289
1304
|
get sessionIdString() {
|
|
1290
1305
|
return this._sessionId ? this._sessionId.truncate() : "none";
|
|
1291
1306
|
}
|
|
@@ -1507,12 +1522,10 @@ _ts_decorate2([
|
|
|
1507
1522
|
synchronized
|
|
1508
1523
|
], Teleport.prototype, "destroy", null);
|
|
1509
1524
|
|
|
1510
|
-
//
|
|
1511
|
-
var __dxlog_file6 = "/
|
|
1525
|
+
// src/testing/test-builder.ts
|
|
1526
|
+
var __dxlog_file6 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/testing/test-builder.ts";
|
|
1512
1527
|
var TestBuilder = class {
|
|
1513
|
-
|
|
1514
|
-
this._peers = /* @__PURE__ */ new Set();
|
|
1515
|
-
}
|
|
1528
|
+
_peers = /* @__PURE__ */ new Set();
|
|
1516
1529
|
createPeer(opts) {
|
|
1517
1530
|
const peer = opts.factory();
|
|
1518
1531
|
this._peers.add(peer);
|
|
@@ -1627,9 +1640,10 @@ var TestBuilder = class {
|
|
|
1627
1640
|
}
|
|
1628
1641
|
};
|
|
1629
1642
|
var TestPeer = class {
|
|
1643
|
+
peerId;
|
|
1644
|
+
connections = /* @__PURE__ */ new Set();
|
|
1630
1645
|
constructor(peerId = PublicKey2.random()) {
|
|
1631
1646
|
this.peerId = peerId;
|
|
1632
|
-
this.connections = /* @__PURE__ */ new Set();
|
|
1633
1647
|
}
|
|
1634
1648
|
async onOpen(connection) {
|
|
1635
1649
|
}
|
|
@@ -1696,6 +1710,10 @@ var pipeStreams = (stream1, stream2) => {
|
|
|
1696
1710
|
});
|
|
1697
1711
|
};
|
|
1698
1712
|
var TestConnection = class {
|
|
1713
|
+
localPeerId;
|
|
1714
|
+
remotePeerId;
|
|
1715
|
+
initiator;
|
|
1716
|
+
teleport;
|
|
1699
1717
|
constructor(localPeerId, remotePeerId, initiator) {
|
|
1700
1718
|
this.localPeerId = localPeerId;
|
|
1701
1719
|
this.remotePeerId = remotePeerId;
|
|
@@ -1713,19 +1731,22 @@ var TestConnection = class {
|
|
|
1713
1731
|
}
|
|
1714
1732
|
};
|
|
1715
1733
|
|
|
1716
|
-
//
|
|
1717
|
-
import {
|
|
1734
|
+
// src/testing/test-extension.ts
|
|
1735
|
+
import { Trigger as Trigger2, asyncTimeout as asyncTimeout3 } from "@dxos/async";
|
|
1718
1736
|
import { invariant as invariant6 } from "@dxos/invariant";
|
|
1719
1737
|
import { log as log7 } from "@dxos/log";
|
|
1720
1738
|
import { schema as schema3 } from "@dxos/protocols/proto";
|
|
1721
1739
|
import { createProtoRpcPeer as createProtoRpcPeer2 } from "@dxos/rpc";
|
|
1722
|
-
var __dxlog_file7 = "/
|
|
1740
|
+
var __dxlog_file7 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/testing/test-extension.ts";
|
|
1723
1741
|
var TestExtension = class {
|
|
1742
|
+
callbacks;
|
|
1743
|
+
open = new Trigger2();
|
|
1744
|
+
closed = new Trigger2();
|
|
1745
|
+
aborted = new Trigger2();
|
|
1746
|
+
extensionContext;
|
|
1747
|
+
_rpc;
|
|
1724
1748
|
constructor(callbacks = {}) {
|
|
1725
1749
|
this.callbacks = callbacks;
|
|
1726
|
-
this.open = new Trigger2();
|
|
1727
|
-
this.closed = new Trigger2();
|
|
1728
|
-
this.aborted = new Trigger2();
|
|
1729
1750
|
}
|
|
1730
1751
|
get remotePeerId() {
|
|
1731
1752
|
return this.extensionContext?.remotePeerId;
|
|
@@ -1819,21 +1840,24 @@ var TestExtension = class {
|
|
|
1819
1840
|
}
|
|
1820
1841
|
};
|
|
1821
1842
|
|
|
1822
|
-
//
|
|
1843
|
+
// src/testing/test-extension-with-streams.ts
|
|
1823
1844
|
import { randomBytes } from "@dxos/node-std/crypto";
|
|
1824
1845
|
import { Trigger as Trigger3 } from "@dxos/async";
|
|
1825
1846
|
import { invariant as invariant7 } from "@dxos/invariant";
|
|
1826
1847
|
import { log as log8 } from "@dxos/log";
|
|
1827
1848
|
import { schema as schema4 } from "@dxos/protocols/proto";
|
|
1828
1849
|
import { createProtoRpcPeer as createProtoRpcPeer3 } from "@dxos/rpc";
|
|
1829
|
-
var __dxlog_file8 = "/
|
|
1850
|
+
var __dxlog_file8 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/testing/test-extension-with-streams.ts";
|
|
1830
1851
|
var TestExtensionWithStreams = class {
|
|
1852
|
+
callbacks;
|
|
1853
|
+
open = new Trigger3();
|
|
1854
|
+
closed = new Trigger3();
|
|
1855
|
+
aborted = new Trigger3();
|
|
1856
|
+
_streams = /* @__PURE__ */ new Map();
|
|
1857
|
+
extensionContext;
|
|
1858
|
+
_rpc;
|
|
1831
1859
|
constructor(callbacks = {}) {
|
|
1832
1860
|
this.callbacks = callbacks;
|
|
1833
|
-
this.open = new Trigger3();
|
|
1834
|
-
this.closed = new Trigger3();
|
|
1835
|
-
this.aborted = new Trigger3();
|
|
1836
|
-
this._streams = /* @__PURE__ */ new Map();
|
|
1837
1861
|
}
|
|
1838
1862
|
get remotePeerId() {
|
|
1839
1863
|
return this.extensionContext?.remotePeerId;
|
|
@@ -2091,4 +2115,4 @@ export {
|
|
|
2091
2115
|
TestExtension,
|
|
2092
2116
|
TestExtensionWithStreams
|
|
2093
2117
|
};
|
|
2094
|
-
//# sourceMappingURL=chunk-
|
|
2118
|
+
//# sourceMappingURL=chunk-ITQR2ADK.mjs.map
|