@yume-chan/adb 0.0.19 → 0.0.20
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 +33 -0
- package/CHANGELOG.md +15 -1
- package/README.md +220 -103
- package/esm/adb.d.ts +24 -44
- package/esm/adb.d.ts.map +1 -1
- package/esm/adb.js +14 -203
- package/esm/adb.js.map +1 -1
- package/esm/banner.d.ts +17 -0
- package/esm/banner.d.ts.map +1 -0
- package/esm/banner.js +67 -0
- package/esm/banner.js.map +1 -0
- package/esm/commands/power.d.ts +1 -1
- package/esm/commands/power.js +2 -2
- package/esm/commands/reverse.d.ts +17 -18
- package/esm/commands/reverse.d.ts.map +1 -1
- package/esm/commands/reverse.js +53 -48
- package/esm/commands/reverse.js.map +1 -1
- package/esm/commands/subprocess/protocols/none.d.ts +3 -8
- package/esm/commands/subprocess/protocols/none.d.ts.map +1 -1
- package/esm/commands/subprocess/protocols/none.js +16 -16
- package/esm/commands/subprocess/protocols/none.js.map +1 -1
- package/esm/commands/subprocess/protocols/shell.d.ts +3 -9
- package/esm/commands/subprocess/protocols/shell.d.ts.map +1 -1
- package/esm/commands/subprocess/protocols/shell.js +48 -42
- package/esm/commands/subprocess/protocols/shell.js.map +1 -1
- package/esm/commands/subprocess/protocols/types.d.ts +1 -2
- package/esm/commands/subprocess/protocols/types.d.ts.map +1 -1
- package/esm/commands/sync/list.js +2 -2
- package/esm/commands/sync/push.d.ts +14 -3
- package/esm/commands/sync/push.d.ts.map +1 -1
- package/esm/commands/sync/push.js +8 -8
- package/esm/commands/sync/push.js.map +1 -1
- package/esm/commands/sync/request.js +1 -1
- package/esm/commands/sync/response.d.ts +3 -3
- package/esm/commands/sync/response.d.ts.map +1 -1
- package/esm/commands/sync/response.js +3 -3
- package/esm/commands/sync/response.js.map +1 -1
- package/esm/commands/sync/socket.d.ts +8 -13
- package/esm/commands/sync/socket.d.ts.map +1 -1
- package/esm/commands/sync/socket.js +32 -29
- package/esm/commands/sync/socket.js.map +1 -1
- package/esm/commands/sync/stat.js +2 -2
- package/esm/commands/sync/stat.js.map +1 -1
- package/esm/commands/sync/sync.d.ts +11 -18
- package/esm/commands/sync/sync.d.ts.map +1 -1
- package/esm/commands/sync/sync.js +19 -23
- package/esm/commands/sync/sync.js.map +1 -1
- package/esm/commands/tcpip.d.ts +2 -2
- package/esm/commands/tcpip.d.ts.map +1 -1
- package/esm/commands/tcpip.js +4 -2
- package/esm/commands/tcpip.js.map +1 -1
- package/esm/{auth.d.ts → daemon/auth.d.ts} +1 -2
- package/esm/daemon/auth.d.ts.map +1 -0
- package/esm/{auth.js → daemon/auth.js} +14 -14
- package/esm/daemon/auth.js.map +1 -0
- package/esm/daemon/connection.d.ts +11 -0
- package/esm/daemon/connection.d.ts.map +1 -0
- package/esm/daemon/connection.js +2 -0
- package/esm/daemon/connection.js.map +1 -0
- package/esm/{crypto.d.ts → daemon/crypto.d.ts} +5 -5
- package/esm/daemon/crypto.d.ts.map +1 -0
- package/esm/{crypto.js → daemon/crypto.js} +23 -27
- package/esm/daemon/crypto.js.map +1 -0
- package/esm/{backend.d.ts → daemon/device.d.ts} +2 -2
- package/esm/daemon/device.d.ts.map +1 -0
- package/esm/daemon/device.js +2 -0
- package/esm/daemon/device.js.map +1 -0
- package/esm/{socket → daemon}/dispatcher.d.ts +8 -26
- package/esm/daemon/dispatcher.d.ts.map +1 -0
- package/esm/{socket → daemon}/dispatcher.js +65 -63
- package/esm/daemon/dispatcher.js.map +1 -0
- package/esm/daemon/index.d.ts +8 -0
- package/esm/daemon/index.d.ts.map +1 -0
- package/esm/daemon/index.js +8 -0
- package/esm/daemon/index.js.map +1 -0
- package/esm/{packet.d.ts → daemon/packet.d.ts} +4 -4
- package/esm/daemon/packet.d.ts.map +1 -0
- package/esm/{packet.js → daemon/packet.js} +1 -1
- package/esm/daemon/packet.js.map +1 -0
- package/esm/{socket → daemon}/socket.d.ts +15 -17
- package/esm/daemon/socket.d.ts.map +1 -0
- package/esm/{socket → daemon}/socket.js +38 -35
- package/esm/daemon/socket.js.map +1 -0
- package/esm/daemon/transport.d.ts +45 -0
- package/esm/daemon/transport.d.ts.map +1 -0
- package/esm/daemon/transport.js +184 -0
- package/esm/daemon/transport.js.map +1 -0
- package/esm/index.d.ts +3 -5
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -5
- package/esm/index.js.map +1 -1
- package/esm/server/client.d.ts +78 -0
- package/esm/server/client.d.ts.map +1 -0
- package/esm/server/client.js +329 -0
- package/esm/server/client.js.map +1 -0
- package/esm/server/index.d.ts +3 -0
- package/esm/server/index.d.ts.map +1 -0
- package/esm/server/index.js +3 -0
- package/esm/server/index.js.map +1 -0
- package/esm/server/transport.d.ts +19 -0
- package/esm/server/transport.d.ts.map +1 -0
- package/esm/server/transport.js +44 -0
- package/esm/server/transport.js.map +1 -0
- package/esm/utils/auto-reset-event.d.ts +1 -2
- package/esm/utils/auto-reset-event.d.ts.map +1 -1
- package/esm/utils/auto-reset-event.js +12 -12
- package/esm/utils/auto-reset-event.js.map +1 -1
- package/esm/utils/base64.js +5 -5
- package/esm/utils/base64.js.map +1 -1
- package/esm/utils/conditional-variable.d.ts +1 -2
- package/esm/utils/conditional-variable.d.ts.map +1 -1
- package/esm/utils/conditional-variable.js +10 -10
- package/esm/utils/conditional-variable.js.map +1 -1
- package/esm/utils/hex.d.ts +3 -0
- package/esm/utils/hex.d.ts.map +1 -0
- package/esm/utils/hex.js +55 -0
- package/esm/utils/hex.js.map +1 -0
- package/esm/utils/index.d.ts +2 -0
- package/esm/utils/index.d.ts.map +1 -1
- package/esm/utils/index.js +2 -0
- package/esm/utils/index.js.map +1 -1
- package/esm/utils/no-op.d.ts +7 -0
- package/esm/utils/no-op.d.ts.map +1 -0
- package/esm/utils/no-op.js +12 -0
- package/esm/utils/no-op.js.map +1 -0
- package/package.json +11 -10
- package/src/adb.ts +41 -252
- package/src/banner.ts +82 -0
- package/src/commands/power.ts +2 -2
- package/src/commands/reverse.ts +68 -73
- package/src/commands/subprocess/protocols/none.ts +17 -18
- package/src/commands/subprocess/protocols/shell.ts +54 -56
- package/src/commands/subprocess/protocols/types.ts +1 -2
- package/src/commands/sync/list.ts +2 -2
- package/src/commands/sync/push.ts +22 -10
- package/src/commands/sync/request.ts +1 -1
- package/src/commands/sync/response.ts +6 -6
- package/src/commands/sync/socket.ts +37 -35
- package/src/commands/sync/sync.ts +25 -28
- package/src/commands/tcpip.ts +6 -4
- package/src/{auth.ts → daemon/auth.ts} +17 -17
- package/src/{crypto.ts → daemon/crypto.ts} +25 -33
- package/src/{backend.ts → daemon/device.ts} +1 -1
- package/src/{socket → daemon}/dispatcher.ts +71 -78
- package/src/daemon/index.ts +7 -0
- package/src/{packet.ts → daemon/packet.ts} +5 -5
- package/src/{socket → daemon}/socket.ts +50 -44
- package/src/daemon/transport.ts +269 -0
- package/src/index.ts +3 -5
- package/src/server/client.ts +476 -0
- package/src/server/index.ts +2 -0
- package/src/server/transport.ts +77 -0
- package/src/utils/auto-reset-event.ts +12 -12
- package/src/utils/conditional-variable.ts +10 -10
- package/src/utils/hex.ts +58 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/no-op.ts +12 -0
- package/tsconfig.build.json +12 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/esm/auth.d.ts.map +0 -1
- package/esm/auth.js.map +0 -1
- package/esm/backend.d.ts.map +0 -1
- package/esm/backend.js +0 -2
- package/esm/backend.js.map +0 -1
- package/esm/commands/install.d.ts +0 -10
- package/esm/commands/install.d.ts.map +0 -1
- package/esm/commands/install.js +0 -29
- package/esm/commands/install.js.map +0 -1
- package/esm/crypto.d.ts.map +0 -1
- package/esm/crypto.js.map +0 -1
- package/esm/packet.d.ts.map +0 -1
- package/esm/packet.js.map +0 -1
- package/esm/socket/dispatcher.d.ts.map +0 -1
- package/esm/socket/dispatcher.js.map +0 -1
- package/esm/socket/index.d.ts +0 -3
- package/esm/socket/index.d.ts.map +0 -1
- package/esm/socket/index.js +0 -3
- package/esm/socket/index.js.map +0 -1
- package/esm/socket/socket.d.ts.map +0 -1
- package/esm/socket/socket.js.map +0 -1
- package/src/socket/index.ts +0 -2
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ReadableStream } from "@yume-chan/stream-extra";
|
|
2
|
-
import type { Adb } from "../../../adb.js";
|
|
3
|
-
import type { AdbSocket } from "../../../socket/index.js";
|
|
2
|
+
import type { Adb, AdbSocket } from "../../../adb.js";
|
|
4
3
|
import type { AdbSubprocessProtocol } from "./types.js";
|
|
5
4
|
/**
|
|
6
5
|
* The legacy shell
|
|
@@ -11,23 +10,19 @@ import type { AdbSubprocessProtocol } from "./types.js";
|
|
|
11
10
|
* * `resize`: No
|
|
12
11
|
*/
|
|
13
12
|
export declare class AdbSubprocessNoneProtocol implements AdbSubprocessProtocol {
|
|
13
|
+
#private;
|
|
14
14
|
static isSupported(): boolean;
|
|
15
15
|
static pty(adb: Adb, command: string): Promise<AdbSubprocessNoneProtocol>;
|
|
16
16
|
static raw(adb: Adb, command: string): Promise<AdbSubprocessNoneProtocol>;
|
|
17
|
-
|
|
18
|
-
private readonly duplex;
|
|
19
|
-
get stdin(): import("@yume-chan/stream-extra").WritableStream<import("@yume-chan/stream-extra").Consumable<Uint8Array>>;
|
|
20
|
-
private _stdout;
|
|
17
|
+
get stdin(): import("web-streams-polyfill").WritableStream<import("@yume-chan/stream-extra").Consumable<Uint8Array>>;
|
|
21
18
|
/**
|
|
22
19
|
* Legacy shell mixes stdout and stderr.
|
|
23
20
|
*/
|
|
24
21
|
get stdout(): ReadableStream<Uint8Array>;
|
|
25
|
-
private _stderr;
|
|
26
22
|
/**
|
|
27
23
|
* `stderr` will always be empty.
|
|
28
24
|
*/
|
|
29
25
|
get stderr(): ReadableStream<Uint8Array>;
|
|
30
|
-
private _exit;
|
|
31
26
|
get exit(): Promise<number>;
|
|
32
27
|
constructor(socket: AdbSocket);
|
|
33
28
|
resize(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"none.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/none.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,KAAK,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"none.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/none.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD;;;;;;;GAOG;AACH,qBAAa,yBAA0B,YAAW,qBAAqB;;WACrD,WAAW;WAIL,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;WAM7B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;IAajD,IAAW,KAAK,4GAEf;IAGD;;OAEG;IACH,IAAW,MAAM,+BAEhB;IAGD;;OAEG;IACH,IAAW,MAAM,+BAEhB;IAGD,IAAW,IAAI,oBAEd;gBAEkB,MAAM,EAAE,SAAS;IAgB7B,MAAM;IAIN,IAAI;CAGd"}
|
|
@@ -19,48 +19,48 @@ export class AdbSubprocessNoneProtocol {
|
|
|
19
19
|
// But is not supported on Android version <7.
|
|
20
20
|
return new AdbSubprocessNoneProtocol(await adb.createSocket(`exec:${command}`));
|
|
21
21
|
}
|
|
22
|
-
socket;
|
|
23
|
-
duplex;
|
|
22
|
+
#socket;
|
|
23
|
+
#duplex;
|
|
24
24
|
// Legacy shell forwards all data to stdin.
|
|
25
25
|
get stdin() {
|
|
26
|
-
return this
|
|
26
|
+
return this.#socket.writable;
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
#stdout;
|
|
29
29
|
/**
|
|
30
30
|
* Legacy shell mixes stdout and stderr.
|
|
31
31
|
*/
|
|
32
32
|
get stdout() {
|
|
33
|
-
return this
|
|
33
|
+
return this.#stdout;
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
#stderr;
|
|
36
36
|
/**
|
|
37
37
|
* `stderr` will always be empty.
|
|
38
38
|
*/
|
|
39
39
|
get stderr() {
|
|
40
|
-
return this
|
|
40
|
+
return this.#stderr;
|
|
41
41
|
}
|
|
42
|
-
|
|
42
|
+
#exit;
|
|
43
43
|
get exit() {
|
|
44
|
-
return this
|
|
44
|
+
return this.#exit;
|
|
45
45
|
}
|
|
46
46
|
constructor(socket) {
|
|
47
|
-
this
|
|
47
|
+
this.#socket = socket;
|
|
48
48
|
// Link `stdout`, `stderr` and `stdin` together,
|
|
49
49
|
// so closing any of them will close the others.
|
|
50
|
-
this
|
|
50
|
+
this.#duplex = new DuplexStreamFactory({
|
|
51
51
|
close: async () => {
|
|
52
|
-
await this
|
|
52
|
+
await this.#socket.close();
|
|
53
53
|
},
|
|
54
54
|
});
|
|
55
|
-
this
|
|
56
|
-
this
|
|
57
|
-
this
|
|
55
|
+
this.#stdout = this.#duplex.wrapReadable(this.#socket.readable);
|
|
56
|
+
this.#stderr = this.#duplex.wrapReadable(new ReadableStream());
|
|
57
|
+
this.#exit = this.#duplex.closed.then(() => 0);
|
|
58
58
|
}
|
|
59
59
|
resize() {
|
|
60
60
|
// Not supported, but don't throw.
|
|
61
61
|
}
|
|
62
62
|
kill() {
|
|
63
|
-
return this
|
|
63
|
+
return this.#duplex.close();
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
//# sourceMappingURL=none.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"none.js","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/none.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"none.js","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/none.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAM9E;;;;;;;GAOG;AACH,MAAM,OAAO,yBAAyB;IAC3B,MAAM,CAAC,WAAW;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAQ,EAAE,OAAe;QAC7C,OAAO,IAAI,yBAAyB,CAChC,MAAM,GAAG,CAAC,YAAY,CAAC,SAAS,OAAO,EAAE,CAAC,CAC7C,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAQ,EAAE,OAAe;QAC7C,iDAAiD;QACjD,8CAA8C;QAC9C,OAAO,IAAI,yBAAyB,CAChC,MAAM,GAAG,CAAC,YAAY,CAAC,QAAQ,OAAO,EAAE,CAAC,CAC5C,CAAC;IACN,CAAC;IAEQ,OAAO,CAAY;IAEnB,OAAO,CAA8C;IAE9D,2CAA2C;IAC3C,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,OAAO,CAA6B;IACpC;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,OAAO,CAA6B;IACpC;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,KAAK,CAAkB;IACvB,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,YAAmB,MAAiB;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,gDAAgD;QAChD,gDAAgD;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAyB;YAC3D,KAAK,EAAE,KAAK,IAAI,EAAE;gBACd,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,CAAC;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM;QACT,kCAAkC;IACtC,CAAC;IAEM,IAAI;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACJ"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { Consumable, ReadableStream } from "@yume-chan/stream-extra";
|
|
2
2
|
import { WritableStream } from "@yume-chan/stream-extra";
|
|
3
|
-
import type { Adb } from "../../../adb.js";
|
|
4
|
-
import type { AdbSocket } from "../../../socket/index.js";
|
|
3
|
+
import type { Adb, AdbSocket } from "../../../adb.js";
|
|
5
4
|
import type { AdbSubprocessProtocol } from "./types.js";
|
|
6
5
|
export declare enum AdbShellProtocolId {
|
|
7
6
|
Stdin = 0,
|
|
@@ -20,21 +19,16 @@ export declare enum AdbShellProtocolId {
|
|
|
20
19
|
* * `resize`: Yes
|
|
21
20
|
*/
|
|
22
21
|
export declare class AdbSubprocessShellProtocol implements AdbSubprocessProtocol {
|
|
22
|
+
#private;
|
|
23
23
|
static isSupported(adb: Adb): boolean;
|
|
24
24
|
static pty(adb: Adb, command: string): Promise<AdbSubprocessShellProtocol>;
|
|
25
25
|
static raw(adb: Adb, command: string): Promise<AdbSubprocessShellProtocol>;
|
|
26
|
-
private readonly _socket;
|
|
27
|
-
private _socketWriter;
|
|
28
|
-
private _stdin;
|
|
29
26
|
get stdin(): WritableStream<Consumable<Uint8Array>>;
|
|
30
|
-
private _stdout;
|
|
31
27
|
get stdout(): ReadableStream<Uint8Array>;
|
|
32
|
-
private _stderr;
|
|
33
28
|
get stderr(): ReadableStream<Uint8Array>;
|
|
34
|
-
private readonly _exit;
|
|
35
29
|
get exit(): Promise<number>;
|
|
36
30
|
constructor(socket: AdbSocket);
|
|
37
31
|
resize(rows: number, cols: number): Promise<void>;
|
|
38
|
-
kill():
|
|
32
|
+
kill(): import("@yume-chan/struct").ValueOrPromise<void>;
|
|
39
33
|
}
|
|
40
34
|
//# sourceMappingURL=shell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/shell.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,UAAU,EAEV,cAAc,EAEjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/shell.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,UAAU,EAEV,cAAc,EAEjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAKH,cAAc,EAEjB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAItD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,oBAAY,kBAAkB;IAC1B,KAAK,IAAA;IACL,MAAM,IAAA;IACN,MAAM,IAAA;IACN,IAAI,IAAA;IACJ,UAAU,IAAA;IACV,gBAAgB,IAAA;CACnB;AAsED;;;;;;;GAOG;AACH,qBAAa,0BAA2B,YAAW,qBAAqB;;WACtD,WAAW,CAAC,GAAG,EAAE,GAAG;WAId,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;WAO7B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;IAYjD,IAAW,KAAK,2CAEf;IAGD,IAAW,MAAM,+BAEhB;IAGD,IAAW,MAAM,+BAEhB;IAGD,IAAW,IAAI,oBAEd;gBAEkB,MAAM,EAAE,SAAS;IA2EvB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAYvC,IAAI;CAGd"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PromiseResolver } from "@yume-chan/async";
|
|
2
|
-
import { ConsumableTransformStream, ConsumableWritableStream, PushReadableStream, StructDeserializeStream,
|
|
2
|
+
import { ConsumableTransformStream, ConsumableWritableStream, PushReadableStream, StructDeserializeStream, WritableStream, pipeFrom, } from "@yume-chan/stream-extra";
|
|
3
3
|
import Struct, { placeholder } from "@yume-chan/struct";
|
|
4
4
|
import { AdbFeature } from "../../../features.js";
|
|
5
5
|
import { encodeUtf8 } from "../../../utils/index.js";
|
|
@@ -32,17 +32,6 @@ class StdinSerializeStream extends ConsumableTransformStream {
|
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
class StdoutDeserializeStream extends TransformStream {
|
|
36
|
-
constructor(type) {
|
|
37
|
-
super({
|
|
38
|
-
transform(chunk, controller) {
|
|
39
|
-
if (chunk.id === type) {
|
|
40
|
-
controller.enqueue(chunk.data);
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
35
|
class MultiplexStream {
|
|
47
36
|
_readable;
|
|
48
37
|
_readableController;
|
|
@@ -97,48 +86,65 @@ export class AdbSubprocessShellProtocol {
|
|
|
97
86
|
static async raw(adb, command) {
|
|
98
87
|
return new AdbSubprocessShellProtocol(await adb.createSocket(`shell,v2,raw:${command}`));
|
|
99
88
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
89
|
+
#socket;
|
|
90
|
+
#socketWriter;
|
|
91
|
+
#stdin;
|
|
103
92
|
get stdin() {
|
|
104
|
-
return this
|
|
93
|
+
return this.#stdin;
|
|
105
94
|
}
|
|
106
|
-
|
|
95
|
+
#stdout;
|
|
107
96
|
get stdout() {
|
|
108
|
-
return this
|
|
97
|
+
return this.#stdout;
|
|
109
98
|
}
|
|
110
|
-
|
|
99
|
+
#stderr;
|
|
111
100
|
get stderr() {
|
|
112
|
-
return this
|
|
101
|
+
return this.#stderr;
|
|
113
102
|
}
|
|
114
|
-
|
|
103
|
+
#exit = new PromiseResolver();
|
|
115
104
|
get exit() {
|
|
116
|
-
return this.
|
|
105
|
+
return this.#exit.promise;
|
|
117
106
|
}
|
|
118
107
|
constructor(socket) {
|
|
119
|
-
this
|
|
108
|
+
this.#socket = socket;
|
|
120
109
|
// Check this image to help you understand the stream graph
|
|
121
110
|
// cspell: disable-next-line
|
|
122
111
|
// https://www.plantuml.com/plantuml/png/bL91QiCm4Bpx5SAdv90lb1JISmiw5XzaQKf5PIkiLZIqzEyLSg8ks13gYtOykpFhiOw93N6UGjVDqK7rZsxKqNw0U_NTgVAy4empOy2mm4_olC0VEVEE47GUpnGjKdgXoD76q4GIEpyFhOwP_m28hW0NNzxNUig1_JdW0bA7muFIJDco1daJ_1SAX9bgvoPJPyIkSekhNYctvIGXrCH6tIsPL5fs-s6J5yc9BpWXhKtNdF2LgVYPGM_6GlMwfhWUsIt4lbScANrwlgVVUifPSVi__t44qStnwPvZwobdSmHHlL57p2vFuHS0
|
|
123
|
-
|
|
124
|
-
|
|
112
|
+
let stdoutController;
|
|
113
|
+
let stderrController;
|
|
114
|
+
this.#stdout = new PushReadableStream((controller) => {
|
|
115
|
+
stdoutController = controller;
|
|
116
|
+
});
|
|
117
|
+
this.#stderr = new PushReadableStream((controller) => {
|
|
118
|
+
stderrController = controller;
|
|
119
|
+
});
|
|
120
|
+
socket.readable
|
|
125
121
|
.pipeThrough(new StructDeserializeStream(AdbShellProtocolPacket))
|
|
126
|
-
.
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
122
|
+
.pipeTo(new WritableStream({
|
|
123
|
+
write: async (chunk) => {
|
|
124
|
+
switch (chunk.id) {
|
|
125
|
+
case AdbShellProtocolId.Exit:
|
|
126
|
+
this.#exit.resolve(chunk.data[0]);
|
|
127
|
+
break;
|
|
128
|
+
case AdbShellProtocolId.Stdout:
|
|
129
|
+
await stdoutController.enqueue(chunk.data);
|
|
130
|
+
break;
|
|
131
|
+
case AdbShellProtocolId.Stderr:
|
|
132
|
+
await stderrController.enqueue(chunk.data);
|
|
133
|
+
break;
|
|
135
134
|
}
|
|
136
|
-
controller.enqueue(chunk);
|
|
137
135
|
},
|
|
138
136
|
}))
|
|
139
|
-
.
|
|
140
|
-
|
|
141
|
-
|
|
137
|
+
.then(() => {
|
|
138
|
+
stdoutController.close();
|
|
139
|
+
stderrController.close();
|
|
140
|
+
// If `#exit` has already resolved, this will be a no-op
|
|
141
|
+
this.#exit.reject(new Error("Socket ended without exit message"));
|
|
142
|
+
}, (e) => {
|
|
143
|
+
stdoutController.error(e);
|
|
144
|
+
stderrController.error(e);
|
|
145
|
+
// If `#exit` has already resolved, this will be a no-op
|
|
146
|
+
this.#exit.reject(e);
|
|
147
|
+
});
|
|
142
148
|
const multiplexer = new MultiplexStream();
|
|
143
149
|
void multiplexer.readable
|
|
144
150
|
.pipeThrough(new ConsumableTransformStream({
|
|
@@ -147,11 +153,11 @@ export class AdbSubprocessShellProtocol {
|
|
|
147
153
|
},
|
|
148
154
|
}))
|
|
149
155
|
.pipeTo(socket.writable);
|
|
150
|
-
this
|
|
151
|
-
this
|
|
156
|
+
this.#stdin = pipeFrom(multiplexer.createWriteable(), new StdinSerializeStream());
|
|
157
|
+
this.#socketWriter = multiplexer.createWriteable().getWriter();
|
|
152
158
|
}
|
|
153
159
|
async resize(rows, cols) {
|
|
154
|
-
await ConsumableWritableStream.write(this
|
|
160
|
+
await ConsumableWritableStream.write(this.#socketWriter, {
|
|
155
161
|
id: AdbShellProtocolId.WindowSizeChange,
|
|
156
162
|
data: encodeUtf8(
|
|
157
163
|
// The "correct" format is `${rows}x${cols},${x_pixels}x${y_pixels}`
|
|
@@ -161,7 +167,7 @@ export class AdbSubprocessShellProtocol {
|
|
|
161
167
|
});
|
|
162
168
|
}
|
|
163
169
|
kill() {
|
|
164
|
-
return this.
|
|
170
|
+
return this.#socket.close();
|
|
165
171
|
}
|
|
166
172
|
}
|
|
167
173
|
//# sourceMappingURL=shell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOnD,OAAO,EACH,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOnD,OAAO,EACH,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,QAAQ,GACX,MAAM,yBAAyB,CAAC;AAEjC,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIrD,MAAM,CAAN,IAAY,kBAOX;AAPD,WAAY,kBAAkB;IAC1B,6DAAK,CAAA;IACL,+DAAM,CAAA;IACN,+DAAM,CAAA;IACN,2DAAI,CAAA;IACJ,uEAAU,CAAA;IACV,mFAAgB,CAAA;AACpB,CAAC,EAPW,kBAAkB,GAAlB,kBAAkB,KAAlB,kBAAkB,QAO7B;AAED,gDAAgD;AAChD,MAAM,sBAAsB,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAC5D,KAAK,CAAC,IAAI,EAAE,WAAW,EAAsB,CAAC;KAC9C,MAAM,CAAC,QAAQ,CAAC;KAChB,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;AAMnD,MAAM,oBAAqB,SAAQ,yBAGlC;IACG;QACI,KAAK,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU;gBAC7B,MAAM,UAAU,CAAC,OAAO,CAAC;oBACrB,EAAE,EAAE,kBAAkB,CAAC,KAAK;oBAC5B,IAAI,EAAE,KAAK;iBACd,CAAC,CAAC;YACP,CAAC;YACD,KAAK;gBACD,0DAA0D;YAC9D,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CACJ;AAED,MAAM,eAAe;IACT,SAAS,CAAwB;IACjC,mBAAmB,CAAmC;IAC9D,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEO,YAAY,GAAG,CAAC,CAAC;IAEzB;QACI,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,CAAC,CAAC,UAAU,EAAE,EAAE;YACnD,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,cAAc,CAAI;YACzB,KAAK,EAAE,GAAG,EAAE;gBACR,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;YAC3B,CAAC;YACD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACnB,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClD,CAAC;YACD,KAAK,EAAE,GAAG,EAAE;gBACR,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;gBACvB,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;oBACzB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;iBACpC;YACL,CAAC;YACD,KAAK,EAAE,GAAG,EAAE;gBACR,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;gBACvB,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;oBACzB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;iBACpC;YACL,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CACJ;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,0BAA0B;IAC5B,MAAM,CAAC,WAAW,CAAC,GAAQ;QAC9B,OAAO,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAQ,EAAE,OAAe;QAC7C,iFAAiF;QACjF,OAAO,IAAI,0BAA0B,CACjC,MAAM,GAAG,CAAC,YAAY,CAAC,gBAAgB,OAAO,EAAE,CAAC,CACpD,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAQ,EAAE,OAAe;QAC7C,OAAO,IAAI,0BAA0B,CACjC,MAAM,GAAG,CAAC,YAAY,CAAC,gBAAgB,OAAO,EAAE,CAAC,CACpD,CAAC;IACN,CAAC;IAEQ,OAAO,CAAY;IAC5B,aAAa,CAEX;IAEF,MAAM,CAAyC;IAC/C,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,OAAO,CAA6B;IACpC,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,OAAO,CAA6B;IACpC,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEQ,KAAK,GAAG,IAAI,eAAe,EAAU,CAAC;IAC/C,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,YAAmB,MAAiB;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,2DAA2D;QAC3D,4BAA4B;QAC5B,iWAAiW;QAEjW,IAAI,gBAA2D,CAAC;QAChE,IAAI,gBAA2D,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAkB,CAAa,CAAC,UAAU,EAAE,EAAE;YAC7D,gBAAgB,GAAG,UAAU,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAkB,CAAa,CAAC,UAAU,EAAE,EAAE;YAC7D,gBAAgB,GAAG,UAAU,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ;aACV,WAAW,CAAC,IAAI,uBAAuB,CAAC,sBAAsB,CAAC,CAAC;aAChE,MAAM,CACH,IAAI,cAAc,CAAyB;YACvC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACnB,QAAQ,KAAK,CAAC,EAAE,EAAE;oBACd,KAAK,kBAAkB,CAAC,IAAI;wBACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;wBACnC,MAAM;oBACV,KAAK,kBAAkB,CAAC,MAAM;wBAC1B,MAAM,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC3C,MAAM;oBACV,KAAK,kBAAkB,CAAC,MAAM;wBAC1B,MAAM,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC3C,MAAM;iBACb;YACL,CAAC;SACJ,CAAC,CACL;aACA,IAAI,CACD,GAAG,EAAE;YACD,gBAAgB,CAAC,KAAK,EAAE,CAAC;YACzB,gBAAgB,CAAC,KAAK,EAAE,CAAC;YACzB,wDAAwD;YACxD,IAAI,CAAC,KAAK,CAAC,MAAM,CACb,IAAI,KAAK,CAAC,mCAAmC,CAAC,CACjD,CAAC;QACN,CAAC,EACD,CAAC,CAAC,EAAE,EAAE;YACF,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,wDAAwD;YACxD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CACJ,CAAC;QAEN,MAAM,WAAW,GAAG,IAAI,eAAe,EAEpC,CAAC;QACJ,KAAK,WAAW,CAAC,QAAQ;aACpB,WAAW,CACR,IAAI,yBAAyB,CAAC;YAC1B,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU;gBAC7B,MAAM,UAAU,CAAC,OAAO,CACpB,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CAC1C,CAAC;YACN,CAAC;SACJ,CAAC,CACL;aACA,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE7B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAClB,WAAW,CAAC,eAAe,EAAE,EAC7B,IAAI,oBAAoB,EAAE,CAC7B,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,CAAC;IACnE,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,IAAY;QAC1C,MAAM,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE;YACrD,EAAE,EAAE,kBAAkB,CAAC,gBAAgB;YACvC,IAAI,EAAE,UAAU;YACZ,oEAAoE;YACpE,8DAA8D;YAC9D,8EAA8E;YAC9E,GAAG,IAAI,IAAI,IAAI,QAAQ,CAC1B;SACJ,CAAC,CAAC;IACP,CAAC;IAEM,IAAI;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACJ"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { Consumable, ReadableStream, WritableStream } from "@yume-chan/stream-extra";
|
|
2
2
|
import type { ValueOrPromise } from "@yume-chan/struct";
|
|
3
|
-
import type { Adb } from "../../../adb.js";
|
|
4
|
-
import type { AdbSocket } from "../../../socket/index.js";
|
|
3
|
+
import type { Adb, AdbSocket } from "../../../adb.js";
|
|
5
4
|
export interface AdbSubprocessProtocol {
|
|
6
5
|
/**
|
|
7
6
|
* A WritableStream that writes to the `stdin` stream.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,cAAc,EACd,cAAc,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,cAAc,EACd,cAAc,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IAClC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAEvD;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAE5C;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAE5C;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAEzD;;OAEG;IACH,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gCAAgC;IAC7C,+DAA+D;IAC/D,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAE/C,sDAAsD;IACtD,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAEtE,gDAAgD;IAChD,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAEtE,oEAAoE;IACpE,KAAK,MAAM,EAAE,SAAS,GAAG,qBAAqB,CAAC;CAClD"}
|
|
@@ -3,12 +3,12 @@ import { AdbSyncRequestId, adbSyncWriteRequest } from "./request.js";
|
|
|
3
3
|
import { AdbSyncResponseId, adbSyncReadResponses } from "./response.js";
|
|
4
4
|
import { AdbSyncLstatResponse, AdbSyncStatResponse } from "./stat.js";
|
|
5
5
|
export const AdbSyncEntryResponse = new Struct({ littleEndian: true })
|
|
6
|
-
.
|
|
6
|
+
.concat(AdbSyncLstatResponse)
|
|
7
7
|
.uint32("nameLength")
|
|
8
8
|
.string("name", { lengthField: "nameLength" })
|
|
9
9
|
.extra({ id: AdbSyncResponseId.Entry });
|
|
10
10
|
export const AdbSyncEntry2Response = new Struct({ littleEndian: true })
|
|
11
|
-
.
|
|
11
|
+
.concat(AdbSyncStatResponse)
|
|
12
12
|
.uint32("nameLength")
|
|
13
13
|
.string("name", { lengthField: "nameLength" })
|
|
14
14
|
.extra({ id: AdbSyncResponseId.Entry2 });
|
|
@@ -2,19 +2,21 @@ import type { Consumable, ReadableStream } from "@yume-chan/stream-extra";
|
|
|
2
2
|
import Struct from "@yume-chan/struct";
|
|
3
3
|
import { AdbSyncRequestId } from "./request.js";
|
|
4
4
|
import type { AdbSyncSocket } from "./socket.js";
|
|
5
|
+
import { LinuxFileType } from "./stat.js";
|
|
5
6
|
export declare const ADB_SYNC_MAX_PACKET_SIZE: number;
|
|
6
7
|
export interface AdbSyncPushV1Options {
|
|
7
8
|
socket: AdbSyncSocket;
|
|
8
9
|
filename: string;
|
|
9
10
|
file: ReadableStream<Consumable<Uint8Array>>;
|
|
10
|
-
|
|
11
|
+
type?: LinuxFileType;
|
|
12
|
+
permission?: number;
|
|
11
13
|
mtime?: number;
|
|
12
14
|
packetSize?: number;
|
|
13
15
|
}
|
|
14
16
|
export declare const AdbSyncOkResponse: Struct<{
|
|
15
17
|
unused: number;
|
|
16
18
|
}, never, Record<never, never>, undefined>;
|
|
17
|
-
export declare function adbSyncPushV1({ socket, filename, file,
|
|
19
|
+
export declare function adbSyncPushV1({ socket, filename, file, type, permission, mtime, packetSize, }: AdbSyncPushV1Options): Promise<void>;
|
|
18
20
|
export declare enum AdbSyncSendV2Flags {
|
|
19
21
|
None = 0,
|
|
20
22
|
Brotli = 1,
|
|
@@ -32,6 +34,12 @@ export declare enum AdbSyncSendV2Flags {
|
|
|
32
34
|
DryRun = 2147483648
|
|
33
35
|
}
|
|
34
36
|
export interface AdbSyncPushV2Options extends AdbSyncPushV1Options {
|
|
37
|
+
/**
|
|
38
|
+
* Don't write the file to disk. Requires the `sendrecv_v2` feature.
|
|
39
|
+
*
|
|
40
|
+
* It was used during ADB development to benchmark the performance of
|
|
41
|
+
* compression algorithms.
|
|
42
|
+
*/
|
|
35
43
|
dryRun?: boolean;
|
|
36
44
|
}
|
|
37
45
|
export declare const AdbSyncSendV2Request: Struct<{
|
|
@@ -39,8 +47,11 @@ export declare const AdbSyncSendV2Request: Struct<{
|
|
|
39
47
|
mode: number;
|
|
40
48
|
flags: AdbSyncSendV2Flags;
|
|
41
49
|
}, never, Record<never, never>, undefined>;
|
|
42
|
-
export declare function adbSyncPushV2({ socket, filename, file,
|
|
50
|
+
export declare function adbSyncPushV2({ socket, filename, file, type, permission, mtime, packetSize, dryRun, }: AdbSyncPushV2Options): Promise<void>;
|
|
43
51
|
export interface AdbSyncPushOptions extends AdbSyncPushV2Options {
|
|
52
|
+
/**
|
|
53
|
+
* Whether to use the v2 protocol. Requires the `sendrecv_v2` feature.
|
|
54
|
+
*/
|
|
44
55
|
v2: boolean;
|
|
45
56
|
}
|
|
46
57
|
export declare function adbSyncPush(options: AdbSyncPushOptions): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAM1E,OAAO,MAAuB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAM1E,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AAIxD,OAAO,EAAE,gBAAgB,EAAuB,MAAM,cAAc,CAAC;AAErE,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,eAAO,MAAM,wBAAwB,QAAY,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,iBAAiB;;0CAE7B,CAAC;AAuCF,wBAAsB,aAAa,CAAC,EAChC,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,IAAyB,EACzB,UAAkB,EAClB,KAA+B,EAC/B,UAAqC,GACxC,EAAE,oBAAoB,iBAUtB;AAED,oBAAY,kBAAkB;IAC1B,IAAI,IAAI;IACR,MAAM,IAAI;IACV;;OAEG;IACH,GAAG,IAAS;IACZ;;OAEG;IACH,IAAI,IAAS;IACb;;OAEG;IACH,MAAM,aAAkB;CAC3B;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAC9D;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,oBAAoB;;;;0CAGsB,CAAC;AAExD,wBAAsB,aAAa,CAAC,EAChC,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,IAAyB,EACzB,UAAkB,EAClB,KAA+B,EAC/B,UAAqC,EACrC,MAAc,GACjB,EAAE,oBAAoB,iBAsBtB;AAED,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC5D;;OAEG;IACH,EAAE,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,iBAUtD"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { AbortController, ConsumableWritableStream, DistributionStream, } from "@yume-chan/stream-extra";
|
|
2
2
|
import Struct, { placeholder } from "@yume-chan/struct";
|
|
3
|
+
import { NOOP } from "../../utils/index.js";
|
|
3
4
|
import { AdbSyncRequestId, adbSyncWriteRequest } from "./request.js";
|
|
4
5
|
import { AdbSyncResponseId, adbSyncReadResponse } from "./response.js";
|
|
5
6
|
import { LinuxFileType } from "./stat.js";
|
|
6
|
-
const NOOP = () => {
|
|
7
|
-
// no-op
|
|
8
|
-
};
|
|
9
7
|
export const ADB_SYNC_MAX_PACKET_SIZE = 64 * 1024;
|
|
10
8
|
export const AdbSyncOkResponse = new Struct({ littleEndian: true }).uint32("unused");
|
|
11
|
-
async function
|
|
9
|
+
async function pipeFileData(locked, file, packetSize, mtime) {
|
|
12
10
|
// Read and write in parallel,
|
|
13
11
|
// allow error response to abort the write.
|
|
14
12
|
const abortController = new AbortController();
|
|
@@ -27,12 +25,13 @@ async function pipeFile(locked, file, packetSize, mtime) {
|
|
|
27
25
|
throw e;
|
|
28
26
|
});
|
|
29
27
|
}
|
|
30
|
-
export async function adbSyncPushV1({ socket, filename, file,
|
|
28
|
+
export async function adbSyncPushV1({ socket, filename, file, type = LinuxFileType.File, permission = 0o666, mtime = (Date.now() / 1000) | 0, packetSize = ADB_SYNC_MAX_PACKET_SIZE, }) {
|
|
31
29
|
const locked = await socket.lock();
|
|
32
30
|
try {
|
|
31
|
+
const mode = (type << 12) | permission;
|
|
33
32
|
const pathAndMode = `${filename},${mode.toString()}`;
|
|
34
33
|
await adbSyncWriteRequest(locked, AdbSyncRequestId.Send, pathAndMode);
|
|
35
|
-
await
|
|
34
|
+
await pipeFileData(locked, file, packetSize, mtime);
|
|
36
35
|
}
|
|
37
36
|
finally {
|
|
38
37
|
locked.release();
|
|
@@ -59,10 +58,11 @@ export const AdbSyncSendV2Request = new Struct({ littleEndian: true })
|
|
|
59
58
|
.uint32("id", placeholder())
|
|
60
59
|
.uint32("mode")
|
|
61
60
|
.uint32("flags", placeholder());
|
|
62
|
-
export async function adbSyncPushV2({ socket, filename, file,
|
|
61
|
+
export async function adbSyncPushV2({ socket, filename, file, type = LinuxFileType.File, permission = 0o666, mtime = (Date.now() / 1000) | 0, packetSize = ADB_SYNC_MAX_PACKET_SIZE, dryRun = false, }) {
|
|
63
62
|
const locked = await socket.lock();
|
|
64
63
|
try {
|
|
65
64
|
await adbSyncWriteRequest(locked, AdbSyncRequestId.SendV2, filename);
|
|
65
|
+
const mode = (type << 12) | permission;
|
|
66
66
|
let flags = AdbSyncSendV2Flags.None;
|
|
67
67
|
if (dryRun) {
|
|
68
68
|
flags |= AdbSyncSendV2Flags.DryRun;
|
|
@@ -72,7 +72,7 @@ export async function adbSyncPushV2({ socket, filename, file, mode = (LinuxFileT
|
|
|
72
72
|
mode,
|
|
73
73
|
flags,
|
|
74
74
|
}));
|
|
75
|
-
await
|
|
75
|
+
await pipeFileData(locked, file, packetSize, mtime);
|
|
76
76
|
}
|
|
77
77
|
finally {
|
|
78
78
|
locked.release();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"AACA,OAAO,EACH,eAAe,EACf,wBAAwB,EACxB,kBAAkB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export const AdbSyncNumberRequest = new Struct({ littleEndian: true })
|
|
|
17
17
|
.string("id", { length: 4 })
|
|
18
18
|
.uint32("arg");
|
|
19
19
|
export const AdbSyncDataRequest = new Struct({ littleEndian: true })
|
|
20
|
-
.
|
|
20
|
+
.concat(AdbSyncNumberRequest)
|
|
21
21
|
.uint8Array("data", { lengthField: "arg" });
|
|
22
22
|
export async function adbSyncWriteRequest(writable, id, value) {
|
|
23
23
|
if (typeof value === "number") {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AsyncExactReadable, StructLike, StructValueType } from "@yume-chan/struct";
|
|
2
2
|
import Struct from "@yume-chan/struct";
|
|
3
3
|
export declare enum AdbSyncResponseId {
|
|
4
4
|
Entry = "DENT",
|
|
@@ -15,6 +15,6 @@ export declare const AdbSyncFailResponse: Struct<{
|
|
|
15
15
|
messageLength: number;
|
|
16
16
|
message: string;
|
|
17
17
|
}, "messageLength", Record<never, never>, never>;
|
|
18
|
-
export declare function adbSyncReadResponse<T>(stream:
|
|
19
|
-
export declare function adbSyncReadResponses<T extends Struct<object, PropertyKey, object, any>>(stream:
|
|
18
|
+
export declare function adbSyncReadResponse<T>(stream: AsyncExactReadable, id: AdbSyncResponseId, type: StructLike<T>): Promise<T>;
|
|
19
|
+
export declare function adbSyncReadResponses<T extends Struct<object, PropertyKey, object, any>>(stream: AsyncExactReadable, id: AdbSyncResponseId, type: T): AsyncGenerator<StructValueType<T>, void, void>;
|
|
20
20
|
//# sourceMappingURL=response.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,kBAAkB,EAClB,UAAU,EACV,eAAe,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAIvC,oBAAY,iBAAiB;IACzB,KAAK,SAAS;IACd,MAAM,SAAS;IACf,KAAK,SAAS;IACd,IAAI,SAAS;IACb,MAAM,SAAS;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,EAAE,SAAS;IACX,IAAI,SAAS;CAChB;AAED,eAAO,MAAM,mBAAmB;;;gDAK1B,CAAC;AAEP,wBAAsB,mBAAmB,CAAC,CAAC,EACvC,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,iBAAiB,EACrB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GACpB,OAAO,CAAC,CAAC,CAAC,CAWZ;AAED,wBAAuB,oBAAoB,CACvC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAElD,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,iBAAiB,EACrB,IAAI,EAAE,CAAC,GACR,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAuBhD"}
|
|
@@ -19,7 +19,7 @@ export const AdbSyncFailResponse = new Struct({ littleEndian: true })
|
|
|
19
19
|
throw new Error(object.message);
|
|
20
20
|
});
|
|
21
21
|
export async function adbSyncReadResponse(stream, id, type) {
|
|
22
|
-
const actualId = decodeUtf8(await stream.
|
|
22
|
+
const actualId = decodeUtf8(await stream.readExactly(4));
|
|
23
23
|
switch (actualId) {
|
|
24
24
|
case AdbSyncResponseId.Fail:
|
|
25
25
|
await AdbSyncFailResponse.deserialize(stream);
|
|
@@ -32,7 +32,7 @@ export async function adbSyncReadResponse(stream, id, type) {
|
|
|
32
32
|
}
|
|
33
33
|
export async function* adbSyncReadResponses(stream, id, type) {
|
|
34
34
|
while (true) {
|
|
35
|
-
const actualId = decodeUtf8(await stream.
|
|
35
|
+
const actualId = decodeUtf8(await stream.readExactly(4));
|
|
36
36
|
switch (actualId) {
|
|
37
37
|
case AdbSyncResponseId.Fail:
|
|
38
38
|
await AdbSyncFailResponse.deserialize(stream);
|
|
@@ -42,7 +42,7 @@ export async function* adbSyncReadResponses(stream, id, type) {
|
|
|
42
42
|
//
|
|
43
43
|
// For example, `DONE` responses for `LIST` requests are 16 bytes (same as `DENT` responses),
|
|
44
44
|
// but `DONE` responses for `STAT` requests are 12 bytes (same as `STAT` responses).
|
|
45
|
-
await stream.
|
|
45
|
+
await stream.readExactly(type.size);
|
|
46
46
|
return;
|
|
47
47
|
case id:
|
|
48
48
|
yield await type.deserialize(stream);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"AAKA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAN,IAAY,iBAUX;AAVD,WAAY,iBAAiB;IACzB,mCAAc,CAAA;IACd,oCAAe,CAAA;IACf,mCAAc,CAAA;IACd,kCAAa,CAAA;IACb,oCAAe,CAAA;IACf,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,gCAAW,CAAA;IACX,kCAAa,CAAA;AACjB,CAAC,EAVW,iBAAiB,GAAjB,iBAAiB,KAAjB,iBAAiB,QAU5B;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAChE,MAAM,CAAC,eAAe,CAAC;KACvB,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;KACnD,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE;IACxB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEP,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"AAKA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAN,IAAY,iBAUX;AAVD,WAAY,iBAAiB;IACzB,mCAAc,CAAA;IACd,oCAAe,CAAA;IACf,mCAAc,CAAA;IACd,kCAAa,CAAA;IACb,oCAAe,CAAA;IACf,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,gCAAW,CAAA;IACX,kCAAa,CAAA;AACjB,CAAC,EAVW,iBAAiB,GAAjB,iBAAiB,KAAjB,iBAAiB,QAU5B;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAChE,MAAM,CAAC,eAAe,CAAC;KACvB,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;KACnD,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE;IACxB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEP,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,MAA0B,EAC1B,EAAqB,EACrB,IAAmB;IAEnB,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,QAAQ,QAAQ,EAAE;QACd,KAAK,iBAAiB,CAAC,IAAI;YACvB,MAAM,mBAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACnC,KAAK,EAAE;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C;YACI,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,eAAe,QAAQ,GAAG,CAAC,CAAC;KAClE;AACL,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAGvC,MAA0B,EAC1B,EAAqB,EACrB,IAAO;IAEP,OAAO,IAAI,EAAE;QACT,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,QAAQ,QAAQ,EAAE;YACd,KAAK,iBAAiB,CAAC,IAAI;gBACvB,MAAM,mBAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;YACnC,KAAK,iBAAiB,CAAC,IAAI;gBACvB,2EAA2E;gBAC3E,EAAE;gBACF,6FAA6F;gBAC7F,oFAAoF;gBACpF,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,OAAO;YACX,KAAK,EAAE;gBACH,MAAM,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACrC,MAAM;YACV;gBACI,MAAM,IAAI,KAAK,CACX,aAAa,EAAE,SAAS,iBAAiB,CAAC,IAAI,eAAe,QAAQ,GAAG,CAC3E,CAAC;SACT;KACJ;AACL,CAAC"}
|
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
import type { Consumable, WritableStreamDefaultWriter } from "@yume-chan/stream-extra";
|
|
2
2
|
import { BufferedReadableStream } from "@yume-chan/stream-extra";
|
|
3
|
-
import type {
|
|
4
|
-
import type { AdbSocket } from "../../
|
|
5
|
-
import { AutoResetEvent } from "../../index.js";
|
|
6
|
-
export declare class AdbSyncSocketLocked implements
|
|
7
|
-
private
|
|
8
|
-
|
|
9
|
-
private readonly _socketLock;
|
|
10
|
-
private readonly _writeLock;
|
|
11
|
-
private readonly _combiner;
|
|
3
|
+
import type { AsyncExactReadable } from "@yume-chan/struct";
|
|
4
|
+
import type { AdbSocket } from "../../adb.js";
|
|
5
|
+
import { AutoResetEvent } from "../../utils/index.js";
|
|
6
|
+
export declare class AdbSyncSocketLocked implements AsyncExactReadable {
|
|
7
|
+
#private;
|
|
8
|
+
get position(): number;
|
|
12
9
|
constructor(writer: WritableStreamDefaultWriter<Consumable<Uint8Array>>, readable: BufferedReadableStream, bufferSize: number, lock: AutoResetEvent);
|
|
13
10
|
private writeInnerStream;
|
|
14
11
|
flush(): Promise<void>;
|
|
15
12
|
write(data: Uint8Array): Promise<void>;
|
|
16
|
-
|
|
13
|
+
readExactly(length: number): Promise<Uint8Array>;
|
|
17
14
|
release(): void;
|
|
18
15
|
}
|
|
19
16
|
export declare class AdbSyncSocket {
|
|
20
|
-
private
|
|
21
|
-
private _socket;
|
|
22
|
-
private _locked;
|
|
17
|
+
#private;
|
|
23
18
|
constructor(socket: AdbSocket, bufferSize: number);
|
|
24
19
|
lock(): Promise<AdbSyncSocketLocked>;
|
|
25
20
|
close(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,2BAA2B,EAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEH,sBAAsB,EAEzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,2BAA2B,EAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEH,sBAAsB,EAEzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBAAa,mBAAoB,YAAW,kBAAkB;;IAO1D,IAAW,QAAQ,WAElB;gBAGG,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAC3D,QAAQ,EAAE,sBAAsB,EAChC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,cAAc;YAQV,gBAAgB;IAIjB,KAAK;IAYL,KAAK,CAAC,IAAI,EAAE,UAAU;IAWtB,WAAW,CAAC,MAAM,EAAE,MAAM;IAKhC,OAAO,IAAI,IAAI;CAIzB;AAED,qBAAa,aAAa;;gBAKH,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM;IAU3C,IAAI;IAKJ,KAAK;CAGrB"}
|