@yume-chan/adb 0.0.21 → 0.0.22
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/CHANGELOG.json +21 -0
- package/CHANGELOG.md +11 -1
- package/README.md +46 -366
- package/esm/adb.d.ts +5 -4
- package/esm/adb.d.ts.map +1 -1
- package/esm/adb.js.map +1 -1
- package/esm/banner.js.map +1 -1
- package/esm/commands/framebuffer.d.ts +1 -1
- package/esm/commands/framebuffer.d.ts.map +1 -1
- package/esm/commands/framebuffer.js.map +1 -1
- package/esm/commands/reverse.js.map +1 -1
- package/esm/commands/subprocess/command.js.map +1 -1
- package/esm/commands/subprocess/protocols/none.d.ts +2 -1
- package/esm/commands/subprocess/protocols/none.d.ts.map +1 -1
- package/esm/commands/subprocess/protocols/none.js +11 -14
- package/esm/commands/subprocess/protocols/none.js.map +1 -1
- package/esm/commands/subprocess/protocols/shell.d.ts.map +1 -1
- package/esm/commands/subprocess/protocols/shell.js +6 -2
- package/esm/commands/subprocess/protocols/shell.js.map +1 -1
- package/esm/commands/subprocess/utils.js.map +1 -1
- package/esm/commands/sync/list.d.ts +2 -1
- package/esm/commands/sync/list.d.ts.map +1 -1
- package/esm/commands/sync/list.js +2 -2
- package/esm/commands/sync/list.js.map +1 -1
- package/esm/commands/sync/pull.d.ts.map +1 -1
- package/esm/commands/sync/pull.js +4 -0
- package/esm/commands/sync/pull.js.map +1 -1
- package/esm/commands/sync/push.js.map +1 -1
- package/esm/commands/sync/request.js.map +1 -1
- package/esm/commands/sync/response.d.ts +1 -1
- package/esm/commands/sync/response.d.ts.map +1 -1
- package/esm/commands/sync/response.js +1 -1
- package/esm/commands/sync/response.js.map +1 -1
- package/esm/commands/sync/socket.d.ts +1 -0
- package/esm/commands/sync/socket.d.ts.map +1 -1
- package/esm/commands/sync/socket.js +4 -0
- package/esm/commands/sync/socket.js.map +1 -1
- package/esm/commands/sync/stat.js.map +1 -1
- package/esm/commands/sync/sync.js.map +1 -1
- package/esm/commands/tcpip.d.ts +21 -0
- package/esm/commands/tcpip.d.ts.map +1 -1
- package/esm/commands/tcpip.js +18 -0
- package/esm/commands/tcpip.js.map +1 -1
- package/esm/daemon/auth.js.map +1 -1
- package/esm/daemon/crypto.js.map +1 -1
- package/esm/daemon/dispatcher.d.ts +2 -1
- package/esm/daemon/dispatcher.d.ts.map +1 -1
- package/esm/daemon/dispatcher.js +56 -45
- package/esm/daemon/dispatcher.js.map +1 -1
- package/esm/daemon/packet.d.ts +5 -5
- package/esm/daemon/packet.d.ts.map +1 -1
- package/esm/daemon/packet.js +1 -1
- package/esm/daemon/packet.js.map +1 -1
- package/esm/daemon/socket.d.ts +7 -12
- package/esm/daemon/socket.d.ts.map +1 -1
- package/esm/daemon/socket.js +49 -41
- package/esm/daemon/socket.js.map +1 -1
- package/esm/daemon/transport.d.ts +8 -4
- package/esm/daemon/transport.d.ts.map +1 -1
- package/esm/daemon/transport.js +10 -8
- package/esm/daemon/transport.js.map +1 -1
- package/esm/server/client.d.ts +12 -8
- package/esm/server/client.d.ts.map +1 -1
- package/esm/server/client.js +40 -20
- package/esm/server/client.js.map +1 -1
- package/esm/utils/auto-reset-event.js.map +1 -1
- package/esm/utils/base64.js.map +1 -1
- package/esm/utils/conditional-variable.js.map +1 -1
- package/esm/utils/hex.js.map +1 -1
- package/package.json +12 -12
- package/src/adb.ts +7 -5
- package/src/commands/framebuffer.ts +1 -1
- package/src/commands/subprocess/protocols/none.ts +15 -19
- package/src/commands/subprocess/protocols/shell.ts +7 -2
- package/src/commands/sync/list.ts +6 -2
- package/src/commands/sync/pull.ts +3 -0
- package/src/commands/sync/response.ts +2 -2
- package/src/commands/sync/socket.ts +5 -0
- package/src/commands/tcpip.ts +44 -0
- package/src/daemon/dispatcher.ts +73 -58
- package/src/daemon/packet.ts +1 -1
- package/src/daemon/socket.ts +71 -84
- package/src/daemon/transport.ts +22 -14
- package/src/server/client.ts +54 -40
- package/tsconfig.build.tsbuildinfo +1 -1
package/esm/daemon/dispatcher.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AsyncOperationManager, PromiseResolver } from "@yume-chan/async";
|
|
1
|
+
import { AsyncOperationManager, PromiseResolver, delay, } from "@yume-chan/async";
|
|
2
2
|
import { AbortController, ConsumableWritableStream, WritableStream, } from "@yume-chan/stream-extra";
|
|
3
3
|
import { EMPTY_UINT8_ARRAY } from "@yume-chan/struct";
|
|
4
|
-
import { decodeUtf8, encodeUtf8
|
|
4
|
+
import { decodeUtf8, encodeUtf8 } from "../utils/index.js";
|
|
5
5
|
import { AdbCommand, calculateChecksum } from "./packet.js";
|
|
6
6
|
import { AdbDaemonSocketController } from "./socket.js";
|
|
7
7
|
/**
|
|
@@ -37,24 +37,18 @@ export class AdbPacketDispatcher {
|
|
|
37
37
|
.pipeTo(new WritableStream({
|
|
38
38
|
write: async (packet) => {
|
|
39
39
|
switch (packet.command) {
|
|
40
|
-
case AdbCommand.OK:
|
|
41
|
-
this.#handleOk(packet);
|
|
42
|
-
break;
|
|
43
40
|
case AdbCommand.Close:
|
|
44
41
|
await this.#handleClose(packet);
|
|
45
42
|
break;
|
|
46
|
-
case AdbCommand.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
.get(packet.arg1)
|
|
50
|
-
.enqueue(packet.payload);
|
|
51
|
-
await this.sendPacket(AdbCommand.OK, packet.arg1, packet.arg0);
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
throw new Error(`Unknown local socket id: ${packet.arg1}`);
|
|
43
|
+
case AdbCommand.Okay:
|
|
44
|
+
this.#handleOkay(packet);
|
|
45
|
+
break;
|
|
55
46
|
case AdbCommand.Open:
|
|
56
47
|
await this.#handleOpen(packet);
|
|
57
48
|
break;
|
|
49
|
+
case AdbCommand.Write:
|
|
50
|
+
await this.#handleWrite(packet);
|
|
51
|
+
break;
|
|
58
52
|
default:
|
|
59
53
|
// Junk data may only appear in the authentication phase,
|
|
60
54
|
// since the dispatcher only works after authentication,
|
|
@@ -77,21 +71,6 @@ export class AdbPacketDispatcher {
|
|
|
77
71
|
});
|
|
78
72
|
this.#writer = connection.writable.getWriter();
|
|
79
73
|
}
|
|
80
|
-
#handleOk(packet) {
|
|
81
|
-
if (this.#initializers.resolve(packet.arg1, packet.arg0)) {
|
|
82
|
-
// Device successfully created the socket
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
const socket = this.#sockets.get(packet.arg1);
|
|
86
|
-
if (socket) {
|
|
87
|
-
// Device has received last `WRTE` to the socket
|
|
88
|
-
socket.ack();
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
// Maybe the device is responding to a packet of last connection
|
|
92
|
-
// Tell the device to close the socket
|
|
93
|
-
void this.sendPacket(AdbCommand.Close, packet.arg1, packet.arg0);
|
|
94
|
-
}
|
|
95
74
|
async #handleClose(packet) {
|
|
96
75
|
// If the socket is still pending
|
|
97
76
|
if (packet.arg0 === 0 &&
|
|
@@ -112,11 +91,8 @@ export class AdbPacketDispatcher {
|
|
|
112
91
|
// Ignore `arg0` and search for the socket
|
|
113
92
|
const socket = this.#sockets.get(packet.arg1);
|
|
114
93
|
if (socket) {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
await this.sendPacket(AdbCommand.Close, packet.arg1, packet.arg0);
|
|
118
|
-
}
|
|
119
|
-
await socket.dispose();
|
|
94
|
+
await socket.close();
|
|
95
|
+
socket.dispose();
|
|
120
96
|
this.#sockets.delete(packet.arg1);
|
|
121
97
|
return;
|
|
122
98
|
}
|
|
@@ -124,14 +100,20 @@ export class AdbPacketDispatcher {
|
|
|
124
100
|
// If the client sends two `CLSE` packets for one socket,
|
|
125
101
|
// the device may also respond with two `CLSE` packets.
|
|
126
102
|
}
|
|
127
|
-
|
|
128
|
-
this.#
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
103
|
+
#handleOkay(packet) {
|
|
104
|
+
if (this.#initializers.resolve(packet.arg1, packet.arg0)) {
|
|
105
|
+
// Device successfully created the socket
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const socket = this.#sockets.get(packet.arg1);
|
|
109
|
+
if (socket) {
|
|
110
|
+
// Device has received last `WRTE` to the socket
|
|
111
|
+
socket.ack();
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
// Maybe the device is responding to a packet of last connection
|
|
115
|
+
// Tell the device to close the socket
|
|
116
|
+
void this.sendPacket(AdbCommand.Close, packet.arg1, packet.arg0);
|
|
135
117
|
}
|
|
136
118
|
async #handleOpen(packet) {
|
|
137
119
|
// `AsyncOperationManager` doesn't support skipping IDs
|
|
@@ -158,12 +140,32 @@ export class AdbPacketDispatcher {
|
|
|
158
140
|
try {
|
|
159
141
|
await handler(controller.socket);
|
|
160
142
|
this.#sockets.set(localId, controller);
|
|
161
|
-
await this.sendPacket(AdbCommand.
|
|
143
|
+
await this.sendPacket(AdbCommand.Okay, localId, remoteId);
|
|
162
144
|
}
|
|
163
145
|
catch (e) {
|
|
164
146
|
await this.sendPacket(AdbCommand.Close, 0, remoteId);
|
|
165
147
|
}
|
|
166
148
|
}
|
|
149
|
+
async #handleWrite(packet) {
|
|
150
|
+
const socket = this.#sockets.get(packet.arg1);
|
|
151
|
+
if (!socket) {
|
|
152
|
+
throw new Error(`Unknown local socket id: ${packet.arg1}`);
|
|
153
|
+
}
|
|
154
|
+
let handled = false;
|
|
155
|
+
await Promise.race([
|
|
156
|
+
delay(5000).then(() => {
|
|
157
|
+
if (this.options.debugSlowRead && !handled) {
|
|
158
|
+
throw new Error(`packet for \`${socket.service}\` not handled in 5 seconds`);
|
|
159
|
+
}
|
|
160
|
+
}),
|
|
161
|
+
(async () => {
|
|
162
|
+
await socket.enqueue(packet.payload);
|
|
163
|
+
await this.sendPacket(AdbCommand.Okay, packet.arg1, packet.arg0);
|
|
164
|
+
handled = true;
|
|
165
|
+
})(),
|
|
166
|
+
]);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
167
169
|
async createSocket(service) {
|
|
168
170
|
if (this.options.appendNullToServiceString) {
|
|
169
171
|
service += "\0";
|
|
@@ -182,6 +184,15 @@ export class AdbPacketDispatcher {
|
|
|
182
184
|
this.#sockets.set(localId, controller);
|
|
183
185
|
return controller.socket;
|
|
184
186
|
}
|
|
187
|
+
addReverseTunnel(service, handler) {
|
|
188
|
+
this.#incomingSocketHandlers.set(service, handler);
|
|
189
|
+
}
|
|
190
|
+
removeReverseTunnel(address) {
|
|
191
|
+
this.#incomingSocketHandlers.delete(address);
|
|
192
|
+
}
|
|
193
|
+
clearReverseTunnels() {
|
|
194
|
+
this.#incomingSocketHandlers.clear();
|
|
195
|
+
}
|
|
185
196
|
async sendPacket(command, arg0, arg1, payload = EMPTY_UINT8_ARRAY) {
|
|
186
197
|
if (typeof payload === "string") {
|
|
187
198
|
payload = encodeUtf8(payload);
|
|
@@ -208,7 +219,7 @@ export class AdbPacketDispatcher {
|
|
|
208
219
|
// but it doesn't matter, the next connection can cope with them.
|
|
209
220
|
this.#closed = true;
|
|
210
221
|
this.#readAbortController.abort();
|
|
211
|
-
if (this.options.preserveConnection
|
|
222
|
+
if (this.options.preserveConnection) {
|
|
212
223
|
this.#writer.releaseLock();
|
|
213
224
|
}
|
|
214
225
|
else {
|
|
@@ -218,7 +229,7 @@ export class AdbPacketDispatcher {
|
|
|
218
229
|
}
|
|
219
230
|
#dispose() {
|
|
220
231
|
for (const socket of this.#sockets.values()) {
|
|
221
|
-
socket.dispose()
|
|
232
|
+
socket.dispose();
|
|
222
233
|
}
|
|
223
234
|
this.#disconnected.resolve();
|
|
224
235
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/daemon/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/daemon/dispatcher.ts"],"names":[],"mappings":"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"}
|
package/esm/daemon/packet.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ConsumableTransformStream } from "@yume-chan/stream-extra";
|
|
2
2
|
import Struct from "@yume-chan/struct";
|
|
3
3
|
export declare enum AdbCommand {
|
|
4
|
-
Auth = 1213486401
|
|
5
|
-
Close = 1163086915
|
|
6
|
-
Connect = 1314410051
|
|
7
|
-
|
|
8
|
-
Open = 1313165391
|
|
4
|
+
Auth = 1213486401,// 'AUTH'
|
|
5
|
+
Close = 1163086915,// 'CLSE'
|
|
6
|
+
Connect = 1314410051,// 'CNXN'
|
|
7
|
+
Okay = 1497451343,// 'OKAY'
|
|
8
|
+
Open = 1313165391,// 'OPEN'
|
|
9
9
|
Write = 1163154007
|
|
10
10
|
}
|
|
11
11
|
export declare const AdbPacketHeader: Struct<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packet.d.ts","sourceRoot":"","sources":["../../src/daemon/packet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,oBAAY,UAAU;IAClB,IAAI,aAAa;
|
|
1
|
+
{"version":3,"file":"packet.d.ts","sourceRoot":"","sources":["../../src/daemon/packet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,oBAAY,UAAU;IAClB,IAAI,aAAa,CAAE,SAAS;IAC5B,KAAK,aAAa,CAAE,SAAS;IAC7B,OAAO,aAAa,CAAE,SAAS;IAC/B,IAAI,aAAa,CAAE,SAAS;IAC5B,IAAI,aAAa,CAAE,SAAS;IAC5B,KAAK,aAAa;CACrB;AAED,eAAO,MAAM,eAAe;;;;;;;0CAMT,CAAC;AAEpB,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAI7E,eAAO,MAAM,SAAS;;;;;;;;oDAEsC,CAAC;AAE7D,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAEjE;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,CAC5B,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,CAAC,EAC3B,UAAU,GAAG,OAAO,CACvB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;AAExD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAE7D;AAED,qBAAa,wBAAyB,SAAQ,yBAAyB,CACnE,aAAa,EACb,UAAU,CACb;;CAoBA"}
|
package/esm/daemon/packet.js
CHANGED
|
@@ -5,7 +5,7 @@ export var AdbCommand;
|
|
|
5
5
|
AdbCommand[AdbCommand["Auth"] = 1213486401] = "Auth";
|
|
6
6
|
AdbCommand[AdbCommand["Close"] = 1163086915] = "Close";
|
|
7
7
|
AdbCommand[AdbCommand["Connect"] = 1314410051] = "Connect";
|
|
8
|
-
AdbCommand[AdbCommand["
|
|
8
|
+
AdbCommand[AdbCommand["Okay"] = 1497451343] = "Okay";
|
|
9
9
|
AdbCommand[AdbCommand["Open"] = 1313165391] = "Open";
|
|
10
10
|
AdbCommand[AdbCommand["Write"] = 1163154007] = "Write";
|
|
11
11
|
})(AdbCommand || (AdbCommand = {}));
|
package/esm/daemon/packet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packet.js","sourceRoot":"","sources":["../../src/daemon/packet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAN,IAAY,UAOX;AAPD,WAAY,UAAU;IAClB,oDAAiB,CAAA;IACjB,sDAAkB,CAAA;IAClB,0DAAoB,CAAA;IACpB,
|
|
1
|
+
{"version":3,"file":"packet.js","sourceRoot":"","sources":["../../src/daemon/packet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAN,IAAY,UAOX;AAPD,WAAY,UAAU;IAClB,oDAAiB,CAAA;IACjB,sDAAkB,CAAA;IAClB,0DAAoB,CAAA;IACpB,oDAAiB,CAAA;IACjB,oDAAiB,CAAA;IACjB,sDAAkB,CAAA;AACtB,CAAC,EAPW,UAAU,KAAV,UAAU,QAOrB;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAC5D,MAAM,CAAC,SAAS,CAAC;KACjB,MAAM,CAAC,MAAM,CAAC;KACd,MAAM,CAAC,MAAM,CAAC;KACd,MAAM,CAAC,eAAe,CAAC;KACvB,MAAM,CAAC,UAAU,CAAC;KAClB,KAAK,CAAC,OAAO,CAAC,CAAC;AAMpB,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KACtD,MAAM,CAAC,eAAe,CAAC;KACvB,UAAU,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;AAqB7D,MAAM,UAAU,iBAAiB,CAAC,OAAmB;IACjD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,OAAO,wBAAyB,SAAQ,yBAG7C;IACG;QACI,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1D,KAAK,CAAC;YACF,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,KAA4C,CAAC;gBAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;gBAE7C,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAC9C,MAAM,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAEvC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC1B,4CAA4C;oBAC5C,0DAA0D;oBAC1D,oDAAoD;oBACpD,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3C,CAAC;YACL,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
|
package/esm/daemon/socket.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Disposable } from "@yume-chan/event";
|
|
2
|
-
import type { Consumable, ReadableStream,
|
|
3
|
-
import type {
|
|
2
|
+
import type { Consumable, ReadableStream, WritableStream } from "@yume-chan/stream-extra";
|
|
3
|
+
import type { AdbSocket } from "../adb.js";
|
|
4
4
|
import type { AdbPacketDispatcher } from "./dispatcher.js";
|
|
5
5
|
export interface AdbDaemonSocketInfo {
|
|
6
6
|
localId: number;
|
|
@@ -12,7 +12,7 @@ export interface AdbDaemonSocketConstructionOptions extends AdbDaemonSocketInfo
|
|
|
12
12
|
dispatcher: AdbPacketDispatcher;
|
|
13
13
|
highWaterMark?: number | undefined;
|
|
14
14
|
}
|
|
15
|
-
export declare class AdbDaemonSocketController implements AdbDaemonSocketInfo,
|
|
15
|
+
export declare class AdbDaemonSocketController implements AdbDaemonSocketInfo, AdbSocket, Disposable {
|
|
16
16
|
#private;
|
|
17
17
|
readonly localId: number;
|
|
18
18
|
readonly remoteId: number;
|
|
@@ -20,18 +20,13 @@ export declare class AdbDaemonSocketController implements AdbDaemonSocketInfo, R
|
|
|
20
20
|
readonly service: string;
|
|
21
21
|
get readable(): ReadableStream<Uint8Array>;
|
|
22
22
|
readonly writable: WritableStream<Consumable<Uint8Array>>;
|
|
23
|
-
|
|
24
|
-
* Whether the socket is half-closed (i.e. the local side initiated the close).
|
|
25
|
-
*
|
|
26
|
-
* It's only used by dispatcher to avoid sending another `CLSE` packet to remote.
|
|
27
|
-
*/
|
|
28
|
-
get closed(): boolean;
|
|
23
|
+
get closed(): Promise<void>;
|
|
29
24
|
get socket(): AdbDaemonSocket;
|
|
30
25
|
constructor(options: AdbDaemonSocketConstructionOptions);
|
|
31
26
|
enqueue(data: Uint8Array): Promise<void>;
|
|
32
27
|
ack(): void;
|
|
33
28
|
close(): Promise<void>;
|
|
34
|
-
dispose():
|
|
29
|
+
dispose(): void;
|
|
35
30
|
}
|
|
36
31
|
/**
|
|
37
32
|
* A duplex stream representing a socket to ADB daemon.
|
|
@@ -41,7 +36,7 @@ export declare class AdbDaemonSocketController implements AdbDaemonSocketInfo, R
|
|
|
41
36
|
* `socket.writable.abort()`, `socket.writable.getWriter().abort()`,
|
|
42
37
|
* `socket.writable.close()` or `socket.writable.getWriter().close()`.
|
|
43
38
|
*/
|
|
44
|
-
export declare class AdbDaemonSocket implements AdbDaemonSocketInfo,
|
|
39
|
+
export declare class AdbDaemonSocket implements AdbDaemonSocketInfo, AdbSocket {
|
|
45
40
|
#private;
|
|
46
41
|
get localId(): number;
|
|
47
42
|
get remoteId(): number;
|
|
@@ -49,7 +44,7 @@ export declare class AdbDaemonSocket implements AdbDaemonSocketInfo, ReadableWri
|
|
|
49
44
|
get service(): string;
|
|
50
45
|
get readable(): ReadableStream<Uint8Array>;
|
|
51
46
|
get writable(): WritableStream<Consumable<Uint8Array>>;
|
|
52
|
-
get closed():
|
|
47
|
+
get closed(): Promise<void>;
|
|
53
48
|
constructor(controller: AdbDaemonSocketController);
|
|
54
49
|
close(): Promise<void>;
|
|
55
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/daemon/socket.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EACR,UAAU,EAEV,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/daemon/socket.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EACR,UAAU,EAEV,cAAc,EACd,cAAc,EAEjB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IAEjB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kCACb,SAAQ,mBAAmB;IAC3B,UAAU,EAAE,mBAAmB,CAAC;IAEhC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,qBAAa,yBACT,YAAW,mBAAmB,EAAE,SAAS,EAAE,UAAU;;IAIrD,QAAQ,CAAC,OAAO,EAAG,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAG,MAAM,CAAC;IAI1B,IAAI,QAAQ,+BAEX;IAID,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAK1D,IAAI,MAAM,kBAET;IAGD,IAAI,MAAM,oBAET;gBAEW,OAAO,EAAE,kCAAkC;IA0CjD,OAAO,CAAC,IAAI,EAAE,UAAU;IAiB9B,GAAG;IAIG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB5B,OAAO;CASV;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,YAAW,mBAAmB,EAAE,SAAS;;IAGlE,IAAI,OAAO,IAAI,MAAM,CAEpB;IACD,IAAI,QAAQ,IAAI,MAAM,CAErB;IACD,IAAI,YAAY,IAAI,OAAO,CAE1B;IACD,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,QAAQ,IAAI,cAAc,CAAC,UAAU,CAAC,CAEzC;IACD,IAAI,QAAQ,IAAI,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAErD;IAED,IAAI,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1B;gBAEW,UAAU,EAAE,yBAAyB;IAIjD,KAAK;CAGR"}
|
package/esm/daemon/socket.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PromiseResolver } from "@yume-chan/async";
|
|
2
|
-
import { ConsumableWritableStream,
|
|
2
|
+
import { ConsumableWritableStream, PushReadableStream, } from "@yume-chan/stream-extra";
|
|
3
|
+
import { raceSignal } from "../server/index.js";
|
|
3
4
|
import { AdbCommand } from "./packet.js";
|
|
4
5
|
export class AdbDaemonSocketController {
|
|
5
6
|
#dispatcher;
|
|
@@ -7,22 +8,18 @@ export class AdbDaemonSocketController {
|
|
|
7
8
|
remoteId;
|
|
8
9
|
localCreated;
|
|
9
10
|
service;
|
|
10
|
-
#duplex;
|
|
11
11
|
#readable;
|
|
12
12
|
#readableController;
|
|
13
13
|
get readable() {
|
|
14
14
|
return this.#readable;
|
|
15
15
|
}
|
|
16
16
|
#writePromise;
|
|
17
|
+
#writableController;
|
|
17
18
|
writable;
|
|
18
19
|
#closed = false;
|
|
19
|
-
|
|
20
|
-
* Whether the socket is half-closed (i.e. the local side initiated the close).
|
|
21
|
-
*
|
|
22
|
-
* It's only used by dispatcher to avoid sending another `CLSE` packet to remote.
|
|
23
|
-
*/
|
|
20
|
+
#closedPromise = new PromiseResolver();
|
|
24
21
|
get closed() {
|
|
25
|
-
return this.#
|
|
22
|
+
return this.#closedPromise.promise;
|
|
26
23
|
}
|
|
27
24
|
#socket;
|
|
28
25
|
get socket() {
|
|
@@ -34,55 +31,66 @@ export class AdbDaemonSocketController {
|
|
|
34
31
|
this.remoteId = options.remoteId;
|
|
35
32
|
this.localCreated = options.localCreated;
|
|
36
33
|
this.service = options.service;
|
|
37
|
-
|
|
38
|
-
// cspell: disable-next-line
|
|
39
|
-
// https://www.plantuml.com/plantuml/png/TL0zoeGm4ErpYc3l5JxyS0yWM6mX5j4C6p4cxcJ25ejttuGX88ZftizxUKmJI275pGhXl0PP_UkfK_CAz5Z2hcWsW9Ny2fdU4C1f5aSchFVxA8vJjlTPRhqZzDQMRB7AklwJ0xXtX0ZSKH1h24ghoKAdGY23FhxC4nS2pDvxzIvxb-8THU0XlEQJ-ZB7SnXTAvc_LhOckhMdLBnbtndpb-SB7a8q2SRD_W00
|
|
40
|
-
this.#duplex = new DuplexStreamFactory({
|
|
41
|
-
close: async () => {
|
|
42
|
-
this.#closed = true;
|
|
43
|
-
await this.#dispatcher.sendPacket(AdbCommand.Close, this.localId, this.remoteId);
|
|
44
|
-
// Don't `dispose` here, we need to wait for `CLSE` response packet.
|
|
45
|
-
return false;
|
|
46
|
-
},
|
|
47
|
-
dispose: () => {
|
|
48
|
-
// Error out the pending writes
|
|
49
|
-
this.#writePromise?.reject(new Error("Socket closed"));
|
|
50
|
-
},
|
|
51
|
-
});
|
|
52
|
-
this.#readable = this.#duplex.wrapReadable(new PushReadableStream((controller) => {
|
|
34
|
+
this.#readable = new PushReadableStream((controller) => {
|
|
53
35
|
this.#readableController = controller;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
36
|
+
});
|
|
37
|
+
this.writable = new ConsumableWritableStream({
|
|
38
|
+
start: (controller) => {
|
|
39
|
+
this.#writableController = controller;
|
|
58
40
|
},
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
41
|
+
write: async (data, controller) => {
|
|
42
|
+
const size = data.length;
|
|
43
|
+
const chunkSize = this.#dispatcher.options.maxPayloadSize;
|
|
44
|
+
for (let start = 0, end = chunkSize; start < size; start = end, end += chunkSize) {
|
|
45
|
+
this.#writePromise = new PromiseResolver();
|
|
46
|
+
await this.#dispatcher.sendPacket(AdbCommand.Write, this.localId, this.remoteId, data.subarray(start, end));
|
|
47
|
+
// Wait for ack packet
|
|
48
|
+
await raceSignal(() => this.#writePromise.promise, controller.signal);
|
|
49
|
+
}
|
|
66
50
|
},
|
|
67
|
-
})
|
|
51
|
+
});
|
|
68
52
|
this.#socket = new AdbDaemonSocket(this);
|
|
69
53
|
}
|
|
70
54
|
async enqueue(data) {
|
|
71
|
-
//
|
|
72
|
-
//
|
|
55
|
+
// Consumers can `cancel` the `readable` if they are not interested in future data.
|
|
56
|
+
// Throw away the data if that happens.
|
|
73
57
|
if (this.#readableController.abortSignal.aborted) {
|
|
74
58
|
return;
|
|
75
59
|
}
|
|
76
|
-
|
|
60
|
+
try {
|
|
61
|
+
await this.#readableController.enqueue(data);
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
if (this.#readableController.abortSignal.aborted) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
throw e;
|
|
68
|
+
}
|
|
77
69
|
}
|
|
78
70
|
ack() {
|
|
79
71
|
this.#writePromise?.resolve();
|
|
80
72
|
}
|
|
81
73
|
async close() {
|
|
82
|
-
|
|
74
|
+
if (this.#closed) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this.#closed = true;
|
|
78
|
+
try {
|
|
79
|
+
this.#writableController.error(new Error("Socket closed"));
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
// ignore
|
|
83
|
+
}
|
|
84
|
+
await this.#dispatcher.sendPacket(AdbCommand.Close, this.localId, this.remoteId);
|
|
83
85
|
}
|
|
84
86
|
dispose() {
|
|
85
|
-
|
|
87
|
+
try {
|
|
88
|
+
this.#readableController.close();
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// ignore
|
|
92
|
+
}
|
|
93
|
+
this.#closedPromise.resolve();
|
|
86
94
|
}
|
|
87
95
|
}
|
|
88
96
|
/**
|
package/esm/daemon/socket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/daemon/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AASnD,OAAO,EACH,wBAAwB,EACxB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/daemon/socket.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,19 +5,21 @@ import { AdbBanner } from "../banner.js";
|
|
|
5
5
|
import type { AdbAuthenticator, AdbCredentialStore } from "./auth.js";
|
|
6
6
|
import type { AdbPacketData, AdbPacketInit } from "./packet.js";
|
|
7
7
|
export declare const ADB_DAEMON_VERSION_OMIT_CHECKSUM = 16777217;
|
|
8
|
+
export type AdbDaemonConnection = ReadableWritablePair<AdbPacketData, Consumable<AdbPacketInit>>;
|
|
8
9
|
interface AdbDaemonAuthenticationOptions {
|
|
9
10
|
serial: string;
|
|
10
|
-
connection:
|
|
11
|
+
connection: AdbDaemonConnection;
|
|
11
12
|
credentialStore: AdbCredentialStore;
|
|
12
13
|
authenticators?: AdbAuthenticator[];
|
|
13
14
|
/**
|
|
14
15
|
* Whether to preserve the connection open after the `AdbDaemonTransport` is closed.
|
|
15
16
|
*/
|
|
16
17
|
preserveConnection?: boolean | undefined;
|
|
18
|
+
debugSlowRead?: boolean | undefined;
|
|
17
19
|
}
|
|
18
20
|
interface AdbDaemonSocketConnectorConstructionOptions {
|
|
19
21
|
serial: string;
|
|
20
|
-
connection:
|
|
22
|
+
connection: AdbDaemonConnection;
|
|
21
23
|
version: number;
|
|
22
24
|
maxPayloadSize: number;
|
|
23
25
|
banner: string;
|
|
@@ -25,6 +27,7 @@ interface AdbDaemonSocketConnectorConstructionOptions {
|
|
|
25
27
|
* Whether to preserve the connection open after the `AdbDaemonTransport` is closed.
|
|
26
28
|
*/
|
|
27
29
|
preserveConnection?: boolean | undefined;
|
|
30
|
+
debugSlowRead?: boolean | undefined;
|
|
28
31
|
}
|
|
29
32
|
export declare class AdbDaemonTransport implements AdbTransport {
|
|
30
33
|
#private;
|
|
@@ -36,13 +39,14 @@ export declare class AdbDaemonTransport implements AdbTransport {
|
|
|
36
39
|
* on the same connection. Because every time the device receives a `CNXN` packet,
|
|
37
40
|
* it resets all internal state, and starts a new authentication process.
|
|
38
41
|
*/
|
|
39
|
-
static authenticate({ serial, connection, credentialStore, authenticators,
|
|
42
|
+
static authenticate({ serial, connection, credentialStore, authenticators, ...options }: AdbDaemonAuthenticationOptions): Promise<AdbDaemonTransport>;
|
|
43
|
+
get connection(): AdbDaemonConnection;
|
|
40
44
|
get serial(): string;
|
|
41
45
|
get protocolVersion(): number;
|
|
42
46
|
get maxPayloadSize(): number;
|
|
43
47
|
get banner(): AdbBanner;
|
|
44
48
|
get disconnected(): Promise<void>;
|
|
45
|
-
constructor({ serial, connection, version,
|
|
49
|
+
constructor({ serial, connection, version, banner, ...options }: AdbDaemonSocketConnectorConstructionOptions);
|
|
46
50
|
connect(service: string): ValueOrPromise<AdbSocket>;
|
|
47
51
|
addReverseTunnel(handler: AdbIncomingSocketHandler, address?: string): string;
|
|
48
52
|
removeReverseTunnel(address: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/daemon/transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAMhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,EACR,wBAAwB,EACxB,SAAS,EACT,YAAY,EACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAMtE,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGhE,eAAO,MAAM,gCAAgC,WAAa,CAAC;AAE3D,
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/daemon/transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAMhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,EACR,wBAAwB,EACxB,SAAS,EACT,YAAY,EACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAMtE,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGhE,eAAO,MAAM,gCAAgC,WAAa,CAAC;AAE3D,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAClD,aAAa,EACb,UAAU,CAAC,aAAa,CAAC,CAC5B,CAAC;AAEF,UAAU,8BAA8B;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,mBAAmB,CAAC;IAChC,eAAe,EAAE,kBAAkB,CAAC;IACpC,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACpC;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACvC;AAED,UAAU,2CAA2C;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,mBAAmB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACvC;AAED,qBAAa,kBAAmB,YAAW,YAAY;;IACnD;;;;;;;OAOG;WACU,YAAY,CAAC,EACtB,MAAM,EACN,UAAU,EACV,eAAe,EACf,cAA2C,EAC3C,GAAG,OAAO,EACb,EAAE,8BAA8B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgI/D,IAAI,UAAU,wBAEb;IAKD,IAAI,MAAM,WAET;IAGD,IAAI,eAAe,WAElB;IAED,IAAI,cAAc,WAEjB;IAGD,IAAI,MAAM,cAET;IAED,IAAI,YAAY,kBAEf;gBAEW,EACR,MAAM,EACN,UAAU,EACV,OAAO,EACP,MAAM,EACN,GAAG,OAAO,EACb,EAAE,2CAA2C;IAwB9C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC;IAInD,gBAAgB,CACZ,OAAO,EAAE,wBAAwB,EACjC,OAAO,CAAC,EAAE,MAAM,GACjB,MAAM;IAST,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI1C,mBAAmB,IAAI,IAAI;IAI3B,KAAK,IAAI,cAAc,CAAC,IAAI,CAAC;CAGhC"}
|
package/esm/daemon/transport.js
CHANGED
|
@@ -16,7 +16,7 @@ export class AdbDaemonTransport {
|
|
|
16
16
|
* on the same connection. Because every time the device receives a `CNXN` packet,
|
|
17
17
|
* it resets all internal state, and starts a new authentication process.
|
|
18
18
|
*/
|
|
19
|
-
static async authenticate({ serial, connection, credentialStore, authenticators = ADB_DEFAULT_AUTHENTICATORS,
|
|
19
|
+
static async authenticate({ serial, connection, credentialStore, authenticators = ADB_DEFAULT_AUTHENTICATORS, ...options }) {
|
|
20
20
|
// Initially, set to highest-supported version and payload size.
|
|
21
21
|
let version = 0x01000001;
|
|
22
22
|
// Android 4: 4K, Android 7: 256K, Android 9: 1M
|
|
@@ -117,9 +117,13 @@ export class AdbDaemonTransport {
|
|
|
117
117
|
version,
|
|
118
118
|
maxPayloadSize,
|
|
119
119
|
banner,
|
|
120
|
-
|
|
120
|
+
...options,
|
|
121
121
|
});
|
|
122
122
|
}
|
|
123
|
+
#connection;
|
|
124
|
+
get connection() {
|
|
125
|
+
return this.#connection;
|
|
126
|
+
}
|
|
123
127
|
#dispatcher;
|
|
124
128
|
#serial;
|
|
125
129
|
get serial() {
|
|
@@ -129,9 +133,8 @@ export class AdbDaemonTransport {
|
|
|
129
133
|
get protocolVersion() {
|
|
130
134
|
return this.#protocolVersion;
|
|
131
135
|
}
|
|
132
|
-
#maxPayloadSize;
|
|
133
136
|
get maxPayloadSize() {
|
|
134
|
-
return this.#maxPayloadSize;
|
|
137
|
+
return this.#dispatcher.options.maxPayloadSize;
|
|
135
138
|
}
|
|
136
139
|
#banner;
|
|
137
140
|
get banner() {
|
|
@@ -140,8 +143,9 @@ export class AdbDaemonTransport {
|
|
|
140
143
|
get disconnected() {
|
|
141
144
|
return this.#dispatcher.disconnected;
|
|
142
145
|
}
|
|
143
|
-
constructor({ serial, connection, version,
|
|
146
|
+
constructor({ serial, connection, version, banner, ...options }) {
|
|
144
147
|
this.#serial = serial;
|
|
148
|
+
this.#connection = connection;
|
|
145
149
|
this.#banner = AdbBanner.parse(banner);
|
|
146
150
|
let calculateChecksum;
|
|
147
151
|
let appendNullToServiceString;
|
|
@@ -156,11 +160,9 @@ export class AdbDaemonTransport {
|
|
|
156
160
|
this.#dispatcher = new AdbPacketDispatcher(connection, {
|
|
157
161
|
calculateChecksum,
|
|
158
162
|
appendNullToServiceString,
|
|
159
|
-
|
|
160
|
-
preserveConnection,
|
|
163
|
+
...options,
|
|
161
164
|
});
|
|
162
165
|
this.#protocolVersion = version;
|
|
163
|
-
this.#maxPayloadSize = maxPayloadSize;
|
|
164
166
|
}
|
|
165
167
|
connect(service) {
|
|
166
168
|
return this.#dispatcher.createSocket(service);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/daemon/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EACH,eAAe,EACf,wBAAwB,EACxB,cAAc,GACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAO3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EACH,0BAA0B,EAC1B,0BAA0B,GAC7B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,CAAC,MAAM,gCAAgC,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/daemon/transport.ts"],"names":[],"mappings":"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"}
|