@yume-chan/adb 0.0.24 → 1.1.0
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.md +42 -1
- package/README.md +4 -1
- package/esm/adb.d.ts +13 -7
- package/esm/adb.d.ts.map +1 -1
- package/esm/adb.js +3 -0
- package/esm/adb.js.map +1 -1
- package/esm/banner.d.ts +7 -6
- package/esm/banner.d.ts.map +1 -1
- package/esm/banner.js +6 -7
- package/esm/banner.js.map +1 -1
- package/esm/commands/framebuffer.d.ts +63 -34
- package/esm/commands/framebuffer.d.ts.map +1 -1
- package/esm/commands/framebuffer.js +35 -33
- package/esm/commands/framebuffer.js.map +1 -1
- package/esm/commands/reverse.d.ts +12 -12
- package/esm/commands/reverse.d.ts.map +1 -1
- package/esm/commands/reverse.js +39 -30
- package/esm/commands/reverse.js.map +1 -1
- package/esm/commands/subprocess/protocols/none.d.ts.map +1 -1
- package/esm/commands/subprocess/protocols/none.js +3 -5
- package/esm/commands/subprocess/protocols/none.js.map +1 -1
- package/esm/commands/subprocess/protocols/shell.d.ts +20 -12
- package/esm/commands/subprocess/protocols/shell.d.ts.map +1 -1
- package/esm/commands/subprocess/protocols/shell.js +16 -21
- package/esm/commands/subprocess/protocols/shell.js.map +1 -1
- package/esm/commands/subprocess/protocols/types.d.ts +6 -6
- package/esm/commands/subprocess/protocols/types.d.ts.map +1 -1
- package/esm/commands/sync/list.d.ts +49 -27
- package/esm/commands/sync/list.d.ts.map +1 -1
- package/esm/commands/sync/list.js +9 -9
- package/esm/commands/sync/list.js.map +1 -1
- package/esm/commands/sync/pull.d.ts +7 -6
- package/esm/commands/sync/pull.d.ts.map +1 -1
- package/esm/commands/sync/pull.js +3 -5
- package/esm/commands/sync/pull.js.map +1 -1
- package/esm/commands/sync/push.d.ts +22 -16
- package/esm/commands/sync/push.d.ts.map +1 -1
- package/esm/commands/sync/push.js +12 -16
- package/esm/commands/sync/push.js.map +1 -1
- package/esm/commands/sync/request.d.ts +19 -17
- package/esm/commands/sync/request.d.ts.map +1 -1
- package/esm/commands/sync/request.js +14 -18
- package/esm/commands/sync/request.js.map +1 -1
- package/esm/commands/sync/response.d.ts +18 -18
- package/esm/commands/sync/response.d.ts.map +1 -1
- package/esm/commands/sync/response.js +20 -19
- package/esm/commands/sync/response.js.map +1 -1
- package/esm/commands/sync/socket.d.ts +1 -1
- package/esm/commands/sync/socket.js +2 -2
- package/esm/commands/sync/socket.js.map +1 -1
- package/esm/commands/sync/stat.d.ts +75 -51
- package/esm/commands/sync/stat.d.ts.map +1 -1
- package/esm/commands/sync/stat.js +73 -67
- package/esm/commands/sync/stat.js.map +1 -1
- package/esm/commands/sync/sync.d.ts +14 -14
- package/esm/commands/sync/sync.d.ts.map +1 -1
- package/esm/commands/sync/sync.js +4 -7
- package/esm/commands/sync/sync.js.map +1 -1
- package/esm/commands/tcpip.d.ts +0 -1
- package/esm/commands/tcpip.d.ts.map +1 -1
- package/esm/commands/tcpip.js +8 -8
- package/esm/commands/tcpip.js.map +1 -1
- package/esm/daemon/auth.d.ts +8 -7
- package/esm/daemon/auth.d.ts.map +1 -1
- package/esm/daemon/auth.js +7 -8
- package/esm/daemon/auth.js.map +1 -1
- package/esm/daemon/crypto.d.ts +1 -1
- package/esm/daemon/crypto.d.ts.map +1 -1
- package/esm/daemon/crypto.js +1 -0
- package/esm/daemon/crypto.js.map +1 -1
- package/esm/daemon/device.d.ts +2 -2
- package/esm/daemon/device.d.ts.map +1 -1
- package/esm/daemon/dispatcher.js +6 -6
- package/esm/daemon/dispatcher.js.map +1 -1
- package/esm/daemon/packet.d.ts +46 -30
- package/esm/daemon/packet.d.ts.map +1 -1
- package/esm/daemon/packet.js +24 -21
- package/esm/daemon/packet.js.map +1 -1
- package/esm/daemon/socket.d.ts +1 -6
- package/esm/daemon/socket.d.ts.map +1 -1
- package/esm/daemon/socket.js +4 -27
- package/esm/daemon/socket.js.map +1 -1
- package/esm/daemon/transport.d.ts +14 -14
- package/esm/daemon/transport.d.ts.map +1 -1
- package/esm/daemon/transport.js +6 -8
- package/esm/daemon/transport.js.map +1 -1
- package/esm/device-observer.d.ts +10 -0
- package/esm/device-observer.d.ts.map +1 -0
- package/esm/device-observer.js +2 -0
- package/esm/device-observer.js.map +1 -0
- package/esm/features.d.ts +12 -11
- package/esm/features.d.ts.map +1 -1
- package/esm/features.js +11 -12
- package/esm/features.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/server/client.d.ts +33 -35
- package/esm/server/client.d.ts.map +1 -1
- package/esm/server/client.js +136 -201
- package/esm/server/client.js.map +1 -1
- package/esm/server/index.d.ts +2 -0
- package/esm/server/index.d.ts.map +1 -1
- package/esm/server/index.js +2 -0
- package/esm/server/index.js.map +1 -1
- package/esm/server/observer.d.ts +8 -0
- package/esm/server/observer.d.ts.map +1 -0
- package/esm/server/observer.js +106 -0
- package/esm/server/observer.js.map +1 -0
- package/esm/server/stream.d.ts +19 -0
- package/esm/server/stream.d.ts.map +1 -0
- package/esm/server/stream.js +77 -0
- package/esm/server/stream.js.map +1 -0
- package/esm/server/transport.d.ts +3 -4
- package/esm/server/transport.d.ts.map +1 -1
- package/esm/server/transport.js +16 -16
- package/esm/server/transport.js.map +1 -1
- package/esm/utils/base64.d.ts.map +1 -1
- package/esm/utils/base64.js +19 -16
- package/esm/utils/base64.js.map +1 -1
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.d.ts.map +1 -1
- package/esm/utils/index.js +1 -0
- package/esm/utils/index.js.map +1 -1
- package/esm/utils/no-op.d.ts.map +1 -1
- package/esm/utils/no-op.js +1 -0
- package/esm/utils/no-op.js.map +1 -1
- package/esm/utils/ref.d.ts +18 -0
- package/esm/utils/ref.d.ts.map +1 -0
- package/esm/utils/ref.js +29 -0
- package/esm/utils/ref.js.map +1 -0
- package/package.json +13 -16
- package/src/adb.ts +13 -7
- package/src/banner.ts +8 -6
- package/src/commands/framebuffer.ts +44 -35
- package/src/commands/reverse.ts +49 -31
- package/src/commands/subprocess/protocols/none.ts +3 -5
- package/src/commands/subprocess/protocols/shell.ts +26 -24
- package/src/commands/subprocess/protocols/types.ts +6 -6
- package/src/commands/sync/list.ts +20 -13
- package/src/commands/sync/pull.ts +8 -7
- package/src/commands/sync/push.ts +20 -16
- package/src/commands/sync/request.ts +18 -19
- package/src/commands/sync/response.ts +28 -29
- package/src/commands/sync/socket.ts +2 -2
- package/src/commands/sync/stat.ts +93 -71
- package/src/commands/sync/sync.ts +4 -8
- package/src/commands/tcpip.ts +8 -8
- package/src/daemon/auth.ts +11 -9
- package/src/daemon/crypto.ts +2 -0
- package/src/daemon/device.ts +2 -2
- package/src/daemon/dispatcher.ts +6 -6
- package/src/daemon/packet.ts +37 -25
- package/src/daemon/socket.ts +4 -27
- package/src/daemon/transport.ts +36 -35
- package/src/device-observer.ts +10 -0
- package/src/features.ts +13 -11
- package/src/index.ts +1 -0
- package/src/server/client.ts +181 -242
- package/src/server/index.ts +2 -0
- package/src/server/observer.ts +144 -0
- package/src/server/stream.ts +100 -0
- package/src/server/transport.ts +18 -17
- package/src/utils/base64.ts +26 -18
- package/src/utils/index.ts +1 -0
- package/src/utils/no-op.ts +1 -0
- package/src/utils/ref.ts +37 -0
- package/tsconfig.build.json +1 -12
- package/tsconfig.build.tsbuildinfo +1 -1
- package/CHANGELOG.json +0 -298
package/esm/commands/reverse.js
CHANGED
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
// cspell: ignore killforward
|
|
2
|
-
import { AutoDisposable } from "@yume-chan/event";
|
|
3
2
|
import { BufferedReadableStream } from "@yume-chan/stream-extra";
|
|
4
|
-
import
|
|
3
|
+
import { encodeUtf8, ExactReadableEndedError, string, struct, } from "@yume-chan/struct";
|
|
5
4
|
import { hexToNumber, sequenceEqual } from "../utils/index.js";
|
|
6
|
-
const AdbReverseStringResponse =
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
const AdbReverseStringResponse = struct({
|
|
6
|
+
length: string(4),
|
|
7
|
+
content: string({
|
|
8
|
+
field: "length",
|
|
9
|
+
convert(value) {
|
|
10
|
+
return Number.parseInt(value, 16);
|
|
11
|
+
},
|
|
12
|
+
back(value) {
|
|
13
|
+
return value.toString(16).padStart(4, "0");
|
|
14
|
+
},
|
|
15
|
+
}),
|
|
16
|
+
}, { littleEndian: true });
|
|
9
17
|
export class AdbReverseError extends Error {
|
|
10
18
|
constructor(message) {
|
|
11
19
|
super(message);
|
|
12
|
-
Object.setPrototypeOf(this, new.target.prototype);
|
|
13
20
|
}
|
|
14
21
|
}
|
|
15
22
|
export class AdbReverseNotSupportedError extends AdbReverseError {
|
|
@@ -17,18 +24,20 @@ export class AdbReverseNotSupportedError extends AdbReverseError {
|
|
|
17
24
|
super("ADB reverse tunnel is not supported on this device when connected wirelessly.");
|
|
18
25
|
}
|
|
19
26
|
}
|
|
20
|
-
const AdbReverseErrorResponse =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
const AdbReverseErrorResponse = struct(
|
|
28
|
+
/* #__PURE__ */ (() => AdbReverseStringResponse.fields)(), {
|
|
29
|
+
littleEndian: true,
|
|
30
|
+
postDeserialize: (value) => {
|
|
31
|
+
// https://issuetracker.google.com/issues/37066218
|
|
32
|
+
// ADB on Android <9 can't create reverse tunnels when connected wirelessly (ADB over Wi-Fi),
|
|
33
|
+
// and returns this confusing "more than one device/emulator" error.
|
|
34
|
+
if (value.content === "more than one device/emulator") {
|
|
35
|
+
throw new AdbReverseNotSupportedError();
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
throw new AdbReverseError(value.content);
|
|
39
|
+
}
|
|
40
|
+
},
|
|
32
41
|
});
|
|
33
42
|
// Like `hexToNumber`, it's much faster than first converting `buffer` to a string
|
|
34
43
|
function decimalToNumber(buffer) {
|
|
@@ -43,11 +52,10 @@ function decimalToNumber(buffer) {
|
|
|
43
52
|
return value;
|
|
44
53
|
}
|
|
45
54
|
const OKAY = encodeUtf8("OKAY");
|
|
46
|
-
export class AdbReverseCommand
|
|
55
|
+
export class AdbReverseCommand {
|
|
47
56
|
adb;
|
|
48
57
|
#deviceAddressToLocalAddress = new Map();
|
|
49
58
|
constructor(adb) {
|
|
50
|
-
super();
|
|
51
59
|
this.adb = adb;
|
|
52
60
|
}
|
|
53
61
|
async createBufferedStream(service) {
|
|
@@ -62,6 +70,9 @@ export class AdbReverseCommand extends AutoDisposable {
|
|
|
62
70
|
}
|
|
63
71
|
return stream;
|
|
64
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Get a list of all reverse port forwarding on the device.
|
|
75
|
+
*/
|
|
65
76
|
async list() {
|
|
66
77
|
const stream = await this.createBufferedStream("reverse:list-forward");
|
|
67
78
|
const response = await AdbReverseStringResponse.deserialize(stream);
|
|
@@ -75,10 +86,7 @@ export class AdbReverseCommand extends AutoDisposable {
|
|
|
75
86
|
// No need to close the stream, device will close it
|
|
76
87
|
}
|
|
77
88
|
/**
|
|
78
|
-
* Add
|
|
79
|
-
* @param deviceAddress The address to be listened on device by ADB daemon. Or `tcp:0` to choose an available TCP port.
|
|
80
|
-
* @param localAddress The address that listens on the local machine.
|
|
81
|
-
* @returns `tcp:{ACTUAL_LISTENING_PORT}`, If `deviceAddress` is `tcp:0`; otherwise, `deviceAddress`.
|
|
89
|
+
* Add a reverse port forwarding for a program that already listens on a port.
|
|
82
90
|
*/
|
|
83
91
|
async addExternal(deviceAddress, localAddress) {
|
|
84
92
|
const stream = await this.sendRequest(`reverse:forward:${deviceAddress};${localAddress}`);
|
|
@@ -106,12 +114,7 @@ export class AdbReverseCommand extends AutoDisposable {
|
|
|
106
114
|
return deviceAddress;
|
|
107
115
|
}
|
|
108
116
|
/**
|
|
109
|
-
*
|
|
110
|
-
* @param handler A callback to handle incoming connections.
|
|
111
|
-
* @param localAddressThe The address that listens on the local machine. May be `undefined` to let the transport choose an appropriate one.
|
|
112
|
-
* @returns `tcp:{ACTUAL_LISTENING_PORT}`, If `deviceAddress` is `tcp:0`; otherwise, `deviceAddress`.
|
|
113
|
-
* @throws {AdbReverseNotSupportedError} If ADB reverse tunnel is not supported on this device when connected wirelessly.
|
|
114
|
-
* @throws {AdbReverseError} If ADB daemon returns an error.
|
|
117
|
+
* Add a reverse port forwarding.
|
|
115
118
|
*/
|
|
116
119
|
async add(deviceAddress, handler, localAddress) {
|
|
117
120
|
localAddress = await this.adb.transport.addReverseTunnel(handler, localAddress);
|
|
@@ -125,6 +128,9 @@ export class AdbReverseCommand extends AutoDisposable {
|
|
|
125
128
|
throw e;
|
|
126
129
|
}
|
|
127
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Remove a reverse port forwarding.
|
|
133
|
+
*/
|
|
128
134
|
async remove(deviceAddress) {
|
|
129
135
|
const localAddress = this.#deviceAddressToLocalAddress.get(deviceAddress);
|
|
130
136
|
if (localAddress) {
|
|
@@ -133,6 +139,9 @@ export class AdbReverseCommand extends AutoDisposable {
|
|
|
133
139
|
await this.sendRequest(`reverse:killforward:${deviceAddress}`);
|
|
134
140
|
// No need to close the stream, device will close it
|
|
135
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Remove all reverse port forwarding, including the ones added by other programs.
|
|
144
|
+
*/
|
|
136
145
|
async removeAll() {
|
|
137
146
|
await this.adb.transport.clearReverseTunnels();
|
|
138
147
|
this.#deviceAddressToLocalAddress.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reverse.js","sourceRoot":"","sources":["../../src/commands/reverse.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAE7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reverse.js","sourceRoot":"","sources":["../../src/commands/reverse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"none.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/none.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"none.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/none.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,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;;IACnE,MAAM,CAAC,WAAW;WAIL,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;WAM7B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;IAW1C,IAAI,KAAK,IAAI,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAEvD;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAEvC;IAGD;;OAEG;IACH,IAAI,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAEvC;IAGD,IAAI,IAAI,oBAEP;gBAEW,MAAM,EAAE,SAAS;IAY7B,MAAM;IAIA,IAAI;CAGb"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ReadableStream } from "@yume-chan/stream-extra";
|
|
2
|
-
import { unreachable } from "../../../utils/index.js";
|
|
3
2
|
/**
|
|
4
3
|
* The legacy shell
|
|
5
4
|
*
|
|
@@ -45,10 +44,9 @@ export class AdbSubprocessNoneProtocol {
|
|
|
45
44
|
constructor(socket) {
|
|
46
45
|
this.#socket = socket;
|
|
47
46
|
this.#stderr = new ReadableStream({
|
|
48
|
-
start: (controller) => {
|
|
49
|
-
this.#socket.closed
|
|
50
|
-
|
|
51
|
-
.catch(unreachable);
|
|
47
|
+
start: async (controller) => {
|
|
48
|
+
await this.#socket.closed;
|
|
49
|
+
controller.close();
|
|
52
50
|
},
|
|
53
51
|
});
|
|
54
52
|
this.#exit = socket.closed.then(() => 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"none.js","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/none.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"none.js","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/none.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAMzD;;;;;;;GAOG;AACH,MAAM,OAAO,yBAAyB;IAClC,MAAM,CAAC,WAAW;QACd,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAQ,EAAE,OAAe;QACtC,OAAO,IAAI,yBAAyB,CAChC,MAAM,GAAG,CAAC,YAAY,CAAC,SAAS,OAAO,EAAE,CAAC,CAC7C,CAAC;IACN,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAQ,EAAE,OAAe;QACtC,iDAAiD;QACjD,8CAA8C;QAC9C,OAAO,IAAI,yBAAyB,CAChC,MAAM,GAAG,CAAC,YAAY,CAAC,QAAQ,OAAO,EAAE,CAAC,CAC5C,CAAC;IACN,CAAC;IAEQ,OAAO,CAAY;IAE5B,2CAA2C;IAC3C,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,OAAO,CAA6B;IACpC;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,KAAK,CAAkB;IACvB,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,YAAY,MAAiB;QACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC;YAC9B,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;gBACxB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC1B,UAAU,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM;QACF,kCAAkC;IACtC,CAAC;IAED,KAAK,CAAC,IAAI;QACN,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;CACJ"}
|
|
@@ -2,14 +2,22 @@ import type { ReadableStream } from "@yume-chan/stream-extra";
|
|
|
2
2
|
import { MaybeConsumable, WritableStream } from "@yume-chan/stream-extra";
|
|
3
3
|
import type { Adb, AdbSocket } from "../../../adb.js";
|
|
4
4
|
import type { AdbSubprocessProtocol } from "./types.js";
|
|
5
|
-
export declare
|
|
6
|
-
Stdin
|
|
7
|
-
Stdout
|
|
8
|
-
Stderr
|
|
9
|
-
Exit
|
|
10
|
-
CloseStdin
|
|
11
|
-
WindowSizeChange
|
|
12
|
-
}
|
|
5
|
+
export declare const AdbShellProtocolId: {
|
|
6
|
+
readonly Stdin: 0;
|
|
7
|
+
readonly Stdout: 1;
|
|
8
|
+
readonly Stderr: 2;
|
|
9
|
+
readonly Exit: 3;
|
|
10
|
+
readonly CloseStdin: 4;
|
|
11
|
+
readonly WindowSizeChange: 5;
|
|
12
|
+
};
|
|
13
|
+
export type AdbShellProtocolId = (typeof AdbShellProtocolId)[keyof typeof AdbShellProtocolId];
|
|
14
|
+
export declare const AdbShellProtocolPacket: import("@yume-chan/struct").Struct<{
|
|
15
|
+
id: import("@yume-chan/struct").Field<AdbShellProtocolId, never, never>;
|
|
16
|
+
data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, never, never>;
|
|
17
|
+
}, {}, import("@yume-chan/struct").FieldsType<{
|
|
18
|
+
id: import("@yume-chan/struct").Field<AdbShellProtocolId, never, never>;
|
|
19
|
+
data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, never, never>;
|
|
20
|
+
}>>;
|
|
13
21
|
/**
|
|
14
22
|
* Shell v2 a.k.a Shell Protocol
|
|
15
23
|
*
|
|
@@ -23,12 +31,12 @@ export declare class AdbSubprocessShellProtocol implements AdbSubprocessProtocol
|
|
|
23
31
|
static isSupported(adb: Adb): boolean;
|
|
24
32
|
static pty(adb: Adb, command: string): Promise<AdbSubprocessShellProtocol>;
|
|
25
33
|
static raw(adb: Adb, command: string): Promise<AdbSubprocessShellProtocol>;
|
|
26
|
-
get stdin(): WritableStream<MaybeConsumable<Uint8Array
|
|
27
|
-
get stdout(): ReadableStream<Uint8Array
|
|
28
|
-
get stderr(): ReadableStream<Uint8Array
|
|
34
|
+
get stdin(): WritableStream<MaybeConsumable<Uint8Array<ArrayBufferLike>>>;
|
|
35
|
+
get stdout(): ReadableStream<Uint8Array<ArrayBufferLike>>;
|
|
36
|
+
get stderr(): ReadableStream<Uint8Array<ArrayBufferLike>>;
|
|
29
37
|
get exit(): Promise<number>;
|
|
30
38
|
constructor(socket: AdbSocket);
|
|
31
39
|
resize(rows: number, cols: number): Promise<void>;
|
|
32
|
-
kill(): import("@yume-chan/
|
|
40
|
+
kill(): import("@yume-chan/async").MaybePromiseLike<void>;
|
|
33
41
|
}
|
|
34
42
|
//# 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,EAER,cAAc,EAEjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACH,eAAe,EAGf,cAAc,EACjB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAItD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/shell.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAER,cAAc,EAEjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACH,eAAe,EAGf,cAAc,EACjB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAItD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,eAAO,MAAM,kBAAkB;;;;;;;CAOrB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAC1B,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAGjE,eAAO,MAAM,sBAAsB;;;;;;GAMlC,CAAC;AAIF;;;;;;;GAOG;AACH,qBAAa,0BAA2B,YAAW,qBAAqB;;IACpE,MAAM,CAAC,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;IAU1C,IAAI,KAAK,iEAER;IAGD,IAAI,MAAM,gDAET;IAGD,IAAI,MAAM,gDAET;IAGD,IAAI,IAAI,oBAEP;gBAEW,MAAM,EAAE,SAAS;IA8DvB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAYvC,IAAI;CAGP"}
|
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
import { PromiseResolver } from "@yume-chan/async";
|
|
2
2
|
import { MaybeConsumable, PushReadableStream, StructDeserializeStream, WritableStream, } from "@yume-chan/stream-extra";
|
|
3
|
-
import
|
|
3
|
+
import { buffer, struct, u32, u8 } from "@yume-chan/struct";
|
|
4
4
|
import { AdbFeature } from "../../../features.js";
|
|
5
5
|
import { encodeUtf8 } from "../../../utils/index.js";
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
.uint8Array("data", { lengthField: "length" });
|
|
6
|
+
export const AdbShellProtocolId = {
|
|
7
|
+
Stdin: 0,
|
|
8
|
+
Stdout: 1,
|
|
9
|
+
Stderr: 2,
|
|
10
|
+
Exit: 3,
|
|
11
|
+
CloseStdin: 4,
|
|
12
|
+
WindowSizeChange: 5,
|
|
13
|
+
};
|
|
14
|
+
// This packet format is used in both directions.
|
|
15
|
+
export const AdbShellProtocolPacket = struct({
|
|
16
|
+
id: u8(),
|
|
17
|
+
data: buffer(u32),
|
|
18
|
+
}, { littleEndian: true });
|
|
20
19
|
/**
|
|
21
20
|
* Shell v2 a.k.a Shell Protocol
|
|
22
21
|
*
|
|
@@ -73,14 +72,10 @@ export class AdbSubprocessShellProtocol {
|
|
|
73
72
|
this.#exit.resolve(chunk.data[0]);
|
|
74
73
|
break;
|
|
75
74
|
case AdbShellProtocolId.Stdout:
|
|
76
|
-
|
|
77
|
-
await stdoutController.enqueue(chunk.data);
|
|
78
|
-
}
|
|
75
|
+
await stdoutController.enqueue(chunk.data);
|
|
79
76
|
break;
|
|
80
77
|
case AdbShellProtocolId.Stderr:
|
|
81
|
-
|
|
82
|
-
await stderrController.enqueue(chunk.data);
|
|
83
|
-
}
|
|
78
|
+
await stderrController.enqueue(chunk.data);
|
|
84
79
|
break;
|
|
85
80
|
}
|
|
86
81
|
},
|
|
@@ -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;AAMnD,OAAO,EACH,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,GACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import type { MaybePromiseLike } from "@yume-chan/async";
|
|
1
2
|
import type { MaybeConsumable, ReadableStream, WritableStream } from "@yume-chan/stream-extra";
|
|
2
|
-
import type { ValueOrPromise } from "@yume-chan/struct";
|
|
3
3
|
import type { Adb, AdbSocket } from "../../../adb.js";
|
|
4
4
|
export interface AdbSubprocessProtocol {
|
|
5
5
|
/**
|
|
@@ -30,19 +30,19 @@ export interface AdbSubprocessProtocol {
|
|
|
30
30
|
* Some `AdbSubprocessProtocol`s may not support resizing
|
|
31
31
|
* and will ignore calls to this method.
|
|
32
32
|
*/
|
|
33
|
-
resize(rows: number, cols: number):
|
|
33
|
+
resize(rows: number, cols: number): MaybePromiseLike<void>;
|
|
34
34
|
/**
|
|
35
35
|
* Kills the current process.
|
|
36
36
|
*/
|
|
37
|
-
kill():
|
|
37
|
+
kill(): MaybePromiseLike<void>;
|
|
38
38
|
}
|
|
39
39
|
export interface AdbSubprocessProtocolConstructor {
|
|
40
40
|
/** Returns `true` if the `adb` instance supports this shell */
|
|
41
|
-
isSupported(adb: Adb):
|
|
41
|
+
isSupported(adb: Adb): MaybePromiseLike<boolean>;
|
|
42
42
|
/** Spawns an executable in PTY (interactive) mode. */
|
|
43
|
-
pty(adb: Adb, command: string):
|
|
43
|
+
pty(adb: Adb, command: string): MaybePromiseLike<AdbSubprocessProtocol>;
|
|
44
44
|
/** Spawns an executable and pipe the output. */
|
|
45
|
-
raw(adb: Adb, command: string):
|
|
45
|
+
raw(adb: Adb, command: string): MaybePromiseLike<AdbSubprocessProtocol>;
|
|
46
46
|
/** Creates a new `AdbShell` by attaching to an exist `AdbSocket` */
|
|
47
47
|
new (socket: AdbSocket): AdbSubprocessProtocol;
|
|
48
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EACR,eAAe,EACf,cAAc,EACd,cAAc,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IAClC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IAE5D;;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,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE3D;;OAEG;IACH,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,gCAAgC;IAC7C,+DAA+D;IAC/D,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEjD,sDAAsD;IACtD,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IAExE,gDAAgD;IAChD,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IAExE,oEAAoE;IACpE,KAAK,MAAM,EAAE,SAAS,GAAG,qBAAqB,CAAC;CAClD"}
|
|
@@ -1,40 +1,62 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { StructValue } from "@yume-chan/struct";
|
|
2
2
|
import type { AdbSyncSocket } from "./socket.js";
|
|
3
3
|
import type { AdbSyncStat } from "./stat.js";
|
|
4
4
|
import { AdbSyncStatErrorCode } from "./stat.js";
|
|
5
5
|
export interface AdbSyncEntry extends AdbSyncStat {
|
|
6
6
|
name: string;
|
|
7
7
|
}
|
|
8
|
-
export declare const AdbSyncEntryResponse: Struct<{
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}, "nameLength", Record<never, never> & {
|
|
8
|
+
export declare const AdbSyncEntryResponse: import("@yume-chan/struct").Struct<{
|
|
9
|
+
name: import("@yume-chan/struct").Field<string, never, never>;
|
|
10
|
+
mode: import("@yume-chan/struct").NumberField<number>;
|
|
11
|
+
size: import("@yume-chan/struct").NumberField<number>;
|
|
12
|
+
mtime: import("@yume-chan/struct").NumberField<number>;
|
|
13
|
+
}, {
|
|
15
14
|
readonly type: import("./stat.js").LinuxFileType;
|
|
16
15
|
readonly permission: number;
|
|
17
|
-
},
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
16
|
+
}, import("@yume-chan/struct").FieldsType<{
|
|
17
|
+
name: import("@yume-chan/struct").Field<string, never, never>;
|
|
18
|
+
mode: import("@yume-chan/struct").NumberField<number>;
|
|
19
|
+
size: import("@yume-chan/struct").NumberField<number>;
|
|
20
|
+
mtime: import("@yume-chan/struct").NumberField<number>;
|
|
21
|
+
}> & {
|
|
22
|
+
readonly type: import("./stat.js").LinuxFileType;
|
|
23
|
+
readonly permission: number;
|
|
24
|
+
}>;
|
|
25
|
+
export type AdbSyncEntryResponse = StructValue<typeof AdbSyncEntryResponse>;
|
|
26
|
+
export declare const AdbSyncEntry2Response: import("@yume-chan/struct").Struct<{
|
|
27
|
+
name: import("@yume-chan/struct").Field<string, never, never>;
|
|
28
|
+
error: import("@yume-chan/struct").Field<AdbSyncStatErrorCode, never, never>;
|
|
29
|
+
dev: import("@yume-chan/struct").NumberField<bigint>;
|
|
30
|
+
ino: import("@yume-chan/struct").NumberField<bigint>;
|
|
31
|
+
mode: import("@yume-chan/struct").NumberField<number>;
|
|
32
|
+
nlink: import("@yume-chan/struct").NumberField<number>;
|
|
33
|
+
uid: import("@yume-chan/struct").NumberField<number>;
|
|
34
|
+
gid: import("@yume-chan/struct").NumberField<number>;
|
|
35
|
+
size: import("@yume-chan/struct").NumberField<bigint>;
|
|
36
|
+
atime: import("@yume-chan/struct").NumberField<bigint>;
|
|
37
|
+
mtime: import("@yume-chan/struct").NumberField<bigint>;
|
|
38
|
+
ctime: import("@yume-chan/struct").NumberField<bigint>;
|
|
39
|
+
}, {
|
|
40
|
+
readonly type: import("./stat.js").LinuxFileType;
|
|
41
|
+
readonly permission: number;
|
|
42
|
+
}, import("@yume-chan/struct").FieldsType<{
|
|
43
|
+
name: import("@yume-chan/struct").Field<string, never, never>;
|
|
44
|
+
error: import("@yume-chan/struct").Field<AdbSyncStatErrorCode, never, never>;
|
|
45
|
+
dev: import("@yume-chan/struct").NumberField<bigint>;
|
|
46
|
+
ino: import("@yume-chan/struct").NumberField<bigint>;
|
|
47
|
+
mode: import("@yume-chan/struct").NumberField<number>;
|
|
48
|
+
nlink: import("@yume-chan/struct").NumberField<number>;
|
|
49
|
+
uid: import("@yume-chan/struct").NumberField<number>;
|
|
50
|
+
gid: import("@yume-chan/struct").NumberField<number>;
|
|
51
|
+
size: import("@yume-chan/struct").NumberField<bigint>;
|
|
52
|
+
atime: import("@yume-chan/struct").NumberField<bigint>;
|
|
53
|
+
mtime: import("@yume-chan/struct").NumberField<bigint>;
|
|
54
|
+
ctime: import("@yume-chan/struct").NumberField<bigint>;
|
|
55
|
+
}> & {
|
|
34
56
|
readonly type: import("./stat.js").LinuxFileType;
|
|
35
57
|
readonly permission: number;
|
|
36
|
-
}
|
|
37
|
-
export type AdbSyncEntry2Response =
|
|
58
|
+
}>;
|
|
59
|
+
export type AdbSyncEntry2Response = StructValue<typeof AdbSyncEntry2Response>;
|
|
38
60
|
export declare function adbSyncOpenDirV2(socket: AdbSyncSocket, path: string): AsyncGenerator<AdbSyncEntry2Response, void, void>;
|
|
39
61
|
export declare function adbSyncOpenDirV1(socket: AdbSyncSocket, path: string): AsyncGenerator<AdbSyncEntryResponse, void, void>;
|
|
40
62
|
export declare function adbSyncOpenDir(socket: AdbSyncSocket, path: string, v2: boolean): AsyncGenerator<AdbSyncEntry, void, void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/list.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAEH,oBAAoB,EAEvB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC7C,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;EAOzB,CAAC;AAET,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE5E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAC;AAET,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE9E,wBAAuB,gBAAgB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,cAAc,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,CAoBnD;AAED,wBAAuB,gBAAgB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,CAclD;AAED,wBAAuB,cAAc,CACjC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,OAAO,GACZ,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAqB1C"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { string, struct, u32 } from "@yume-chan/struct";
|
|
2
2
|
import { AdbSyncRequestId, adbSyncWriteRequest } from "./request.js";
|
|
3
3
|
import { AdbSyncResponseId, adbSyncReadResponses } from "./response.js";
|
|
4
4
|
import { AdbSyncLstatResponse, AdbSyncStatErrorCode, AdbSyncStatResponse, } from "./stat.js";
|
|
5
|
-
export const AdbSyncEntryResponse =
|
|
6
|
-
.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export const AdbSyncEntry2Response =
|
|
10
|
-
.
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
export const AdbSyncEntryResponse = /* #__PURE__ */ (() => struct({
|
|
6
|
+
...AdbSyncLstatResponse.fields,
|
|
7
|
+
name: string(u32),
|
|
8
|
+
}, { littleEndian: true, extra: AdbSyncLstatResponse.extra }))();
|
|
9
|
+
export const AdbSyncEntry2Response = /* #__PURE__ */ (() => struct({
|
|
10
|
+
...AdbSyncStatResponse.fields,
|
|
11
|
+
name: string(u32),
|
|
12
|
+
}, { littleEndian: true, extra: AdbSyncStatResponse.extra }))();
|
|
13
13
|
export async function* adbSyncOpenDirV2(socket, path) {
|
|
14
14
|
const locked = await socket.lock();
|
|
15
15
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/sync/list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/sync/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { ReadableStream } from "@yume-chan/stream-extra";
|
|
2
|
-
import
|
|
2
|
+
import type { StructValue } from "@yume-chan/struct";
|
|
3
3
|
import type { AdbSyncSocket } from "./socket.js";
|
|
4
|
-
export declare const AdbSyncDataResponse: Struct<{
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
export declare const AdbSyncDataResponse: import("@yume-chan/struct").Struct<{
|
|
5
|
+
data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, never, never>;
|
|
6
|
+
}, {}, import("@yume-chan/struct").FieldsType<{
|
|
7
|
+
data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, never, never>;
|
|
8
|
+
}>>;
|
|
9
|
+
export type AdbSyncDataResponse = StructValue<typeof AdbSyncDataResponse>;
|
|
9
10
|
export declare function adbSyncPullGenerator(socket: AdbSyncSocket, path: string): AsyncGenerator<Uint8Array, void, void>;
|
|
10
11
|
export declare function adbSyncPull(socket: AdbSyncSocket, path: string): ReadableStream<Uint8Array>;
|
|
11
12
|
//# sourceMappingURL=pull.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/pull.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/pull.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,eAAO,MAAM,mBAAmB;;;;GAG/B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE1E,wBAAuB,oBAAoB,CACvC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CA6BxC;AAED,wBAAgB,WAAW,CACvB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACb,cAAc,CAAC,UAAU,CAAC,CAO5B"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { PushReadableStream } from "@yume-chan/stream-extra";
|
|
2
|
-
import
|
|
2
|
+
import { buffer, struct, u32 } from "@yume-chan/struct";
|
|
3
3
|
import { AdbSyncRequestId, adbSyncWriteRequest } from "./request.js";
|
|
4
|
-
import {
|
|
5
|
-
export const AdbSyncDataResponse =
|
|
6
|
-
.uint32("dataLength")
|
|
7
|
-
.uint8Array("data", { lengthField: "dataLength" });
|
|
4
|
+
import { adbSyncReadResponses, AdbSyncResponseId } from "./response.js";
|
|
5
|
+
export const AdbSyncDataResponse = struct({ data: buffer(u32) }, { littleEndian: true });
|
|
8
6
|
export async function* adbSyncPullGenerator(socket, path) {
|
|
9
7
|
const locked = await socket.lock();
|
|
10
8
|
let done = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/commands/sync/pull.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/commands/sync/pull.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGxE,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CACrC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EACrB,EAAE,YAAY,EAAE,IAAI,EAAE,CACzB,CAAC;AAIF,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,oBAAoB,CACvC,MAAqB,EACrB,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,CAAC;QACD,MAAM,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,oBAAoB,CAC3C,MAAM,EACN,iBAAiB,CAAC,IAAI,EACtB,mBAAmB,CACtB,EAAE,CAAC;YACA,MAAM,MAAM,CAAC,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,IAAI,GAAG,IAAI,CAAC;QACZ,MAAM,CAAC,CAAC;IACZ,CAAC;YAAS,CAAC;QACP,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,4DAA4D;YAC5D,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,oBAAoB,CAC3C,MAAM,EACN,iBAAiB,CAAC,IAAI,EACtB,mBAAmB,CACtB,EAAE,CAAC;gBACA,KAAK,MAAM,CAAC;YAChB,CAAC;QACL,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CACvB,MAAqB,EACrB,IAAY;IAEZ,sDAAsD;IACtD,OAAO,IAAI,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QAC/C,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|