@yume-chan/adb 0.0.22 → 0.0.24
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 +51 -0
- package/CHANGELOG.md +24 -1
- package/LICENSE +1 -1
- package/esm/adb.d.ts +6 -3
- package/esm/adb.d.ts.map +1 -1
- package/esm/adb.js +11 -4
- package/esm/adb.js.map +1 -1
- package/esm/banner.d.ts.map +1 -1
- package/esm/banner.js +1 -0
- package/esm/banner.js.map +1 -1
- package/esm/commands/power.d.ts.map +1 -1
- package/esm/commands/power.js +6 -5
- package/esm/commands/power.js.map +1 -1
- package/esm/commands/reverse.d.ts.map +1 -1
- package/esm/commands/reverse.js +23 -11
- package/esm/commands/reverse.js.map +1 -1
- package/esm/commands/subprocess/command.js +3 -3
- package/esm/commands/subprocess/command.js.map +1 -1
- package/esm/commands/subprocess/protocols/none.d.ts +2 -2
- package/esm/commands/subprocess/protocols/none.d.ts.map +1 -1
- package/esm/commands/subprocess/protocols/shell.d.ts +3 -3
- package/esm/commands/subprocess/protocols/shell.d.ts.map +1 -1
- package/esm/commands/subprocess/protocols/shell.js +14 -69
- package/esm/commands/subprocess/protocols/shell.js.map +1 -1
- package/esm/commands/subprocess/protocols/types.d.ts +2 -2
- package/esm/commands/subprocess/protocols/types.d.ts.map +1 -1
- package/esm/commands/subprocess/utils.js +1 -1
- package/esm/commands/subprocess/utils.js.map +1 -1
- package/esm/commands/sync/list.d.ts +2 -5
- package/esm/commands/sync/list.d.ts.map +1 -1
- package/esm/commands/sync/list.js +2 -4
- package/esm/commands/sync/list.js.map +1 -1
- package/esm/commands/sync/pull.d.ts +1 -4
- package/esm/commands/sync/pull.d.ts.map +1 -1
- package/esm/commands/sync/pull.js +2 -2
- package/esm/commands/sync/pull.js.map +1 -1
- package/esm/commands/sync/push.d.ts +4 -7
- package/esm/commands/sync/push.d.ts.map +1 -1
- package/esm/commands/sync/push.js +3 -6
- package/esm/commands/sync/push.js.map +1 -1
- package/esm/commands/sync/request.d.ts +13 -18
- package/esm/commands/sync/request.d.ts.map +1 -1
- package/esm/commands/sync/request.js +23 -28
- package/esm/commands/sync/request.js.map +1 -1
- package/esm/commands/sync/response.d.ts +18 -12
- package/esm/commands/sync/response.d.ts.map +1 -1
- package/esm/commands/sync/response.js +39 -17
- package/esm/commands/sync/response.js.map +1 -1
- package/esm/commands/sync/socket.d.ts +2 -2
- package/esm/commands/sync/socket.d.ts.map +1 -1
- package/esm/commands/sync/socket.js +10 -5
- package/esm/commands/sync/socket.js.map +1 -1
- package/esm/commands/sync/stat.d.ts +0 -3
- package/esm/commands/sync/stat.d.ts.map +1 -1
- package/esm/commands/sync/stat.js +0 -2
- package/esm/commands/sync/stat.js.map +1 -1
- package/esm/commands/sync/sync.d.ts +4 -3
- package/esm/commands/sync/sync.d.ts.map +1 -1
- package/esm/commands/sync/sync.js +9 -7
- package/esm/commands/sync/sync.js.map +1 -1
- package/esm/commands/tcpip.js +1 -1
- package/esm/commands/tcpip.js.map +1 -1
- package/esm/daemon/auth.js +1 -1
- package/esm/daemon/auth.js.map +1 -1
- package/esm/daemon/crypto.d.ts +3 -2
- package/esm/daemon/crypto.d.ts.map +1 -1
- package/esm/daemon/crypto.js +56 -49
- package/esm/daemon/crypto.js.map +1 -1
- package/esm/daemon/dispatcher.d.ts +38 -6
- package/esm/daemon/dispatcher.d.ts.map +1 -1
- package/esm/daemon/dispatcher.js +86 -28
- package/esm/daemon/dispatcher.js.map +1 -1
- package/esm/daemon/packet.d.ts +2 -2
- package/esm/daemon/packet.d.ts.map +1 -1
- package/esm/daemon/packet.js +13 -12
- package/esm/daemon/packet.js.map +1 -1
- package/esm/daemon/socket.d.ts +11 -6
- package/esm/daemon/socket.d.ts.map +1 -1
- package/esm/daemon/socket.js +42 -12
- package/esm/daemon/socket.js.map +1 -1
- package/esm/daemon/transport.d.ts +75 -11
- package/esm/daemon/transport.d.ts.map +1 -1
- package/esm/daemon/transport.js +60 -33
- package/esm/daemon/transport.js.map +1 -1
- package/esm/features.d.ts +2 -1
- package/esm/features.d.ts.map +1 -1
- package/esm/features.js +2 -1
- package/esm/features.js.map +1 -1
- package/esm/server/client.d.ts +128 -48
- package/esm/server/client.d.ts.map +1 -1
- package/esm/server/client.js +378 -145
- package/esm/server/client.js.map +1 -1
- package/esm/server/transport.d.ts +3 -0
- package/esm/server/transport.d.ts.map +1 -1
- package/esm/server/transport.js +30 -4
- package/esm/server/transport.js.map +1 -1
- package/esm/utils/base64.d.ts.map +1 -1
- package/esm/utils/base64.js +33 -22
- package/esm/utils/base64.js.map +1 -1
- package/esm/utils/hex.d.ts +1 -1
- package/esm/utils/hex.d.ts.map +1 -1
- package/esm/utils/hex.js +12 -14
- package/esm/utils/hex.js.map +1 -1
- package/esm/utils/index.d.ts +1 -1
- package/esm/utils/index.d.ts.map +1 -1
- package/esm/utils/index.js +1 -1
- package/esm/utils/index.js.map +1 -1
- package/esm/utils/sequence-equal.d.ts +2 -0
- package/esm/utils/sequence-equal.d.ts.map +1 -0
- package/esm/utils/sequence-equal.js +12 -0
- package/esm/utils/sequence-equal.js.map +1 -0
- package/package.json +13 -15
- package/src/adb.ts +22 -6
- package/src/banner.ts +1 -0
- package/src/commands/power.ts +7 -5
- package/src/commands/reverse.ts +31 -18
- package/src/commands/subprocess/command.ts +3 -3
- package/src/commands/subprocess/protocols/none.ts +2 -2
- package/src/commands/subprocess/protocols/shell.ts +21 -100
- package/src/commands/subprocess/protocols/types.ts +2 -2
- package/src/commands/subprocess/utils.ts +1 -1
- package/src/commands/sync/list.ts +2 -4
- package/src/commands/sync/pull.ts +2 -2
- package/src/commands/sync/push.ts +7 -10
- package/src/commands/sync/request.ts +32 -32
- package/src/commands/sync/response.ts +47 -20
- package/src/commands/sync/socket.ts +13 -8
- package/src/commands/sync/stat.ts +0 -2
- package/src/commands/sync/sync.ts +13 -9
- package/src/commands/tcpip.ts +1 -1
- package/src/daemon/auth.ts +1 -1
- package/src/daemon/crypto.ts +64 -55
- package/src/daemon/dispatcher.ts +175 -37
- package/src/daemon/packet.ts +21 -14
- package/src/daemon/socket.ts +62 -28
- package/src/daemon/transport.ts +145 -40
- package/src/features.ts +2 -1
- package/src/server/client.ts +472 -224
- package/src/server/transport.ts +32 -4
- package/src/utils/base64.ts +33 -22
- package/src/utils/hex.ts +16 -14
- package/src/utils/index.ts +1 -1
- package/src/utils/sequence-equal.ts +13 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/esm/utils/conditional-variable.d.ts +0 -8
- package/esm/utils/conditional-variable.d.ts.map +0 -1
- package/esm/utils/conditional-variable.js +0 -34
- package/esm/utils/conditional-variable.js.map +0 -1
- package/src/utils/conditional-variable.ts +0 -45
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/protocols/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,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,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,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/subprocess/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,CAAS;IAC/B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,IAAI,GAAG,CAAC;IAEd,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM;QACV,CAAC;QACD,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/subprocess/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,CAAS;IAC/B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,IAAI,GAAG,CAAC;IAEd,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM;QACV,CAAC;QACD,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,8DAA8D;QAC9D,MAAM,IAAI,MAAM,CAAC,GAAG,CAAA,MAAM,CAAC;QAC3B,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,GAAG,CAAC;IACd,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import Struct from "@yume-chan/struct";
|
|
2
|
-
import { AdbSyncResponseId } from "./response.js";
|
|
3
2
|
import type { AdbSyncSocket } from "./socket.js";
|
|
4
3
|
import type { AdbSyncStat } from "./stat.js";
|
|
5
4
|
import { AdbSyncStatErrorCode } from "./stat.js";
|
|
@@ -12,10 +11,9 @@ export declare const AdbSyncEntryResponse: Struct<{
|
|
|
12
11
|
mtime: number;
|
|
13
12
|
nameLength: number;
|
|
14
13
|
name: string;
|
|
15
|
-
}, "nameLength", {
|
|
14
|
+
}, "nameLength", Record<never, never> & {
|
|
16
15
|
readonly type: import("./stat.js").LinuxFileType;
|
|
17
16
|
readonly permission: number;
|
|
18
|
-
id: AdbSyncResponseId.Entry;
|
|
19
17
|
}, undefined>;
|
|
20
18
|
export type AdbSyncEntryResponse = (typeof AdbSyncEntryResponse)["TDeserializeResult"];
|
|
21
19
|
export declare const AdbSyncEntry2Response: Struct<{
|
|
@@ -32,10 +30,9 @@ export declare const AdbSyncEntry2Response: Struct<{
|
|
|
32
30
|
ctime: bigint;
|
|
33
31
|
nameLength: number;
|
|
34
32
|
name: string;
|
|
35
|
-
}, "nameLength", {
|
|
33
|
+
}, "nameLength", Record<never, never> & {
|
|
36
34
|
readonly type: import("./stat.js").LinuxFileType;
|
|
37
35
|
readonly permission: number;
|
|
38
|
-
id: AdbSyncResponseId.Entry2;
|
|
39
36
|
}, undefined>;
|
|
40
37
|
export type AdbSyncEntry2Response = (typeof AdbSyncEntry2Response)["TDeserializeResult"];
|
|
41
38
|
export declare function adbSyncOpenDirV2(socket: AdbSyncSocket, path: string): AsyncGenerator<AdbSyncEntry2Response, void, void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/list.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/list.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAIvC,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;;;;;;;;;aAGiB,CAAC;AAEnD,MAAM,MAAM,oBAAoB,GAC5B,CAAC,OAAO,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAExD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;aAGgB,CAAC;AAEnD,MAAM,MAAM,qBAAqB,GAC7B,CAAC,OAAO,qBAAqB,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAEzD,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"}
|
|
@@ -5,13 +5,11 @@ import { AdbSyncLstatResponse, AdbSyncStatErrorCode, AdbSyncStatResponse, } from
|
|
|
5
5
|
export const AdbSyncEntryResponse = new Struct({ littleEndian: true })
|
|
6
6
|
.concat(AdbSyncLstatResponse)
|
|
7
7
|
.uint32("nameLength")
|
|
8
|
-
.string("name", { lengthField: "nameLength" })
|
|
9
|
-
.extra({ id: AdbSyncResponseId.Entry });
|
|
8
|
+
.string("name", { lengthField: "nameLength" });
|
|
10
9
|
export const AdbSyncEntry2Response = new Struct({ littleEndian: true })
|
|
11
10
|
.concat(AdbSyncStatResponse)
|
|
12
11
|
.uint32("nameLength")
|
|
13
|
-
.string("name", { lengthField: "nameLength" })
|
|
14
|
-
.extra({ id: AdbSyncResponseId.Entry2 });
|
|
12
|
+
.string("name", { lengthField: "nameLength" });
|
|
15
13
|
export async function* adbSyncOpenDirV2(socket, path) {
|
|
16
14
|
const locked = await socket.lock();
|
|
17
15
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/sync/list.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGxE,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,WAAW,CAAC;AAMnB,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KACjE,MAAM,CAAC,oBAAoB,CAAC;KAC5B,MAAM,CAAC,YAAY,CAAC;KACpB,MAAM,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/sync/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import type { ReadableStream } from "@yume-chan/stream-extra";
|
|
2
2
|
import Struct from "@yume-chan/struct";
|
|
3
|
-
import { AdbSyncResponseId } from "./response.js";
|
|
4
3
|
import type { AdbSyncSocket } from "./socket.js";
|
|
5
4
|
export declare const AdbSyncDataResponse: Struct<{
|
|
6
5
|
dataLength: number;
|
|
7
6
|
data: Uint8Array;
|
|
8
|
-
}, "dataLength",
|
|
9
|
-
id: AdbSyncResponseId.Data;
|
|
10
|
-
}, undefined>;
|
|
7
|
+
}, "dataLength", Record<never, never>, undefined>;
|
|
11
8
|
export type AdbSyncDataResponse = (typeof AdbSyncDataResponse)["TDeserializeResult"];
|
|
12
9
|
export declare function adbSyncPullGenerator(socket: AdbSyncSocket, path: string): AsyncGenerator<Uint8Array, void, void>;
|
|
13
10
|
export declare function adbSyncPull(socket: AdbSyncSocket, path: string): ReadableStream<Uint8Array>;
|
|
@@ -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,MAAM,MAAM,mBAAmB,CAAC;
|
|
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,MAAM,MAAM,mBAAmB,CAAC;AAIvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,eAAO,MAAM,mBAAmB;;;iDAEsB,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAC3B,CAAC,OAAO,mBAAmB,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAEvD,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"}
|
|
@@ -4,8 +4,7 @@ import { AdbSyncRequestId, adbSyncWriteRequest } from "./request.js";
|
|
|
4
4
|
import { AdbSyncResponseId, adbSyncReadResponses } from "./response.js";
|
|
5
5
|
export const AdbSyncDataResponse = new Struct({ littleEndian: true })
|
|
6
6
|
.uint32("dataLength")
|
|
7
|
-
.uint8Array("data", { lengthField: "dataLength" })
|
|
8
|
-
.extra({ id: AdbSyncResponseId.Data });
|
|
7
|
+
.uint8Array("data", { lengthField: "dataLength" });
|
|
9
8
|
export async function* adbSyncPullGenerator(socket, path) {
|
|
10
9
|
const locked = await socket.lock();
|
|
11
10
|
let done = false;
|
|
@@ -31,6 +30,7 @@ export async function* adbSyncPullGenerator(socket, path) {
|
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
32
|
export function adbSyncPull(socket, path) {
|
|
33
|
+
// TODO: use `ReadableStream.from` when it's supported
|
|
34
34
|
return new PushReadableStream(async (controller) => {
|
|
35
35
|
for await (const data of adbSyncPullGenerator(socket, path)) {
|
|
36
36
|
await controller.enqueue(data);
|
|
@@ -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;AAC7D,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGxE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAChE,MAAM,CAAC,YAAY,CAAC;KACpB,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/commands/sync/pull.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGxE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAChE,MAAM,CAAC,YAAY,CAAC;KACpB,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;AAKvD,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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ReadableStream } from "@yume-chan/stream-extra";
|
|
2
|
+
import { MaybeConsumable } from "@yume-chan/stream-extra";
|
|
2
3
|
import Struct from "@yume-chan/struct";
|
|
3
|
-
import { AdbSyncRequestId } from "./request.js";
|
|
4
4
|
import type { AdbSyncSocket } from "./socket.js";
|
|
5
5
|
import { LinuxFileType } from "./stat.js";
|
|
6
6
|
export declare const ADB_SYNC_MAX_PACKET_SIZE: number;
|
|
7
7
|
export interface AdbSyncPushV1Options {
|
|
8
8
|
socket: AdbSyncSocket;
|
|
9
9
|
filename: string;
|
|
10
|
-
file: ReadableStream<
|
|
10
|
+
file: ReadableStream<MaybeConsumable<Uint8Array>>;
|
|
11
11
|
type?: LinuxFileType;
|
|
12
12
|
permission?: number;
|
|
13
13
|
mtime?: number;
|
|
@@ -28,9 +28,6 @@ export declare enum AdbSyncSendV2Flags {
|
|
|
28
28
|
* 4
|
|
29
29
|
*/
|
|
30
30
|
Zstd = 4,
|
|
31
|
-
/**
|
|
32
|
-
* 0x80000000
|
|
33
|
-
*/
|
|
34
31
|
DryRun = 2147483648
|
|
35
32
|
}
|
|
36
33
|
export interface AdbSyncPushV2Options extends AdbSyncPushV1Options {
|
|
@@ -43,7 +40,7 @@ export interface AdbSyncPushV2Options extends AdbSyncPushV1Options {
|
|
|
43
40
|
dryRun?: boolean;
|
|
44
41
|
}
|
|
45
42
|
export declare const AdbSyncSendV2Request: Struct<{
|
|
46
|
-
id:
|
|
43
|
+
id: number;
|
|
47
44
|
mode: number;
|
|
48
45
|
flags: AdbSyncSendV2Flags;
|
|
49
46
|
}, never, Record<never, never>, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAGH,eAAe,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AAMxD,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,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IAClD,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,MAAM,aAAa;CACtB;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,4 +1,4 @@
|
|
|
1
|
-
import { AbortController,
|
|
1
|
+
import { AbortController, DistributionStream, MaybeConsumable, } from "@yume-chan/stream-extra";
|
|
2
2
|
import Struct, { placeholder } from "@yume-chan/struct";
|
|
3
3
|
import { NOOP } from "../../utils/index.js";
|
|
4
4
|
import { AdbSyncRequestId, adbSyncWriteRequest } from "./request.js";
|
|
@@ -11,7 +11,7 @@ async function pipeFileData(locked, file, packetSize, mtime) {
|
|
|
11
11
|
// allow error response to abort the write.
|
|
12
12
|
const abortController = new AbortController();
|
|
13
13
|
file.pipeThrough(new DistributionStream(packetSize, true))
|
|
14
|
-
.pipeTo(new
|
|
14
|
+
.pipeTo(new MaybeConsumable.WritableStream({
|
|
15
15
|
write: async (chunk) => {
|
|
16
16
|
await adbSyncWriteRequest(locked, AdbSyncRequestId.Data, chunk);
|
|
17
17
|
},
|
|
@@ -49,13 +49,10 @@ export var AdbSyncSendV2Flags;
|
|
|
49
49
|
* 4
|
|
50
50
|
*/
|
|
51
51
|
AdbSyncSendV2Flags[AdbSyncSendV2Flags["Zstd"] = 4] = "Zstd";
|
|
52
|
-
/**
|
|
53
|
-
* 0x80000000
|
|
54
|
-
*/
|
|
55
52
|
AdbSyncSendV2Flags[AdbSyncSendV2Flags["DryRun"] = 2147483648] = "DryRun";
|
|
56
53
|
})(AdbSyncSendV2Flags || (AdbSyncSendV2Flags = {}));
|
|
57
54
|
export const AdbSyncSendV2Request = new Struct({ littleEndian: true })
|
|
58
|
-
.uint32("id"
|
|
55
|
+
.uint32("id")
|
|
59
56
|
.uint32("mode")
|
|
60
57
|
.uint32("flags", placeholder());
|
|
61
58
|
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, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"AACA,OAAO,EACH,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/commands/sync/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,22 @@
|
|
|
1
1
|
import Struct from "@yume-chan/struct";
|
|
2
|
-
export declare
|
|
3
|
-
List
|
|
4
|
-
ListV2
|
|
5
|
-
Send
|
|
6
|
-
SendV2
|
|
7
|
-
Lstat
|
|
8
|
-
Stat
|
|
9
|
-
LstatV2
|
|
10
|
-
Data
|
|
11
|
-
Done
|
|
12
|
-
Receive
|
|
2
|
+
export declare namespace AdbSyncRequestId {
|
|
3
|
+
const List: number;
|
|
4
|
+
const ListV2: number;
|
|
5
|
+
const Send: number;
|
|
6
|
+
const SendV2: number;
|
|
7
|
+
const Lstat: number;
|
|
8
|
+
const Stat: number;
|
|
9
|
+
const LstatV2: number;
|
|
10
|
+
const Data: number;
|
|
11
|
+
const Done: number;
|
|
12
|
+
const Receive: number;
|
|
13
13
|
}
|
|
14
14
|
export declare const AdbSyncNumberRequest: Struct<{
|
|
15
|
-
id:
|
|
15
|
+
id: number;
|
|
16
16
|
arg: number;
|
|
17
17
|
}, never, Record<never, never>, undefined>;
|
|
18
|
-
export declare const AdbSyncDataRequest: Struct<{
|
|
19
|
-
id: string;
|
|
20
|
-
arg: number;
|
|
21
|
-
data: Uint8Array;
|
|
22
|
-
}, "arg", Record<never, never>, undefined>;
|
|
23
18
|
export interface AdbSyncWritable {
|
|
24
19
|
write(buffer: Uint8Array): Promise<void>;
|
|
25
20
|
}
|
|
26
|
-
export declare function adbSyncWriteRequest(writable: AdbSyncWritable, id:
|
|
21
|
+
export declare function adbSyncWriteRequest(writable: AdbSyncWritable, id: number | string, value: number | string | Uint8Array): Promise<void>;
|
|
27
22
|
//# sourceMappingURL=request.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/request.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/request.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAMvC,yBAAiB,gBAAgB,CAAC;IACvB,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,MAAM,QAA0B,CAAC;IACvC,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,MAAM,QAA0B,CAAC;IACvC,MAAM,KAAK,QAA0B,CAAC;IACtC,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,OAAO,QAA0B,CAAC;IACxC,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,OAAO,QAA0B,CAAC;CAClD;AAED,eAAO,MAAM,oBAAoB;;;0CAEf,CAAC;AAEnB,MAAM,WAAW,eAAe;IAC5B,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,eAAe,EACzB,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GACpC,OAAO,CAAC,IAAI,CAAC,CAsBf"}
|
|
@@ -1,41 +1,36 @@
|
|
|
1
1
|
import Struct from "@yume-chan/struct";
|
|
2
2
|
import { encodeUtf8 } from "../../utils/index.js";
|
|
3
|
+
import { adbSyncEncodeId } from "./response.js";
|
|
3
4
|
export var AdbSyncRequestId;
|
|
4
5
|
(function (AdbSyncRequestId) {
|
|
5
|
-
AdbSyncRequestId
|
|
6
|
-
AdbSyncRequestId
|
|
7
|
-
AdbSyncRequestId
|
|
8
|
-
AdbSyncRequestId
|
|
9
|
-
AdbSyncRequestId
|
|
10
|
-
AdbSyncRequestId
|
|
11
|
-
AdbSyncRequestId
|
|
12
|
-
AdbSyncRequestId
|
|
13
|
-
AdbSyncRequestId
|
|
14
|
-
AdbSyncRequestId
|
|
6
|
+
AdbSyncRequestId.List = adbSyncEncodeId("LIST");
|
|
7
|
+
AdbSyncRequestId.ListV2 = adbSyncEncodeId("LIS2");
|
|
8
|
+
AdbSyncRequestId.Send = adbSyncEncodeId("SEND");
|
|
9
|
+
AdbSyncRequestId.SendV2 = adbSyncEncodeId("SND2");
|
|
10
|
+
AdbSyncRequestId.Lstat = adbSyncEncodeId("STAT");
|
|
11
|
+
AdbSyncRequestId.Stat = adbSyncEncodeId("STA2");
|
|
12
|
+
AdbSyncRequestId.LstatV2 = adbSyncEncodeId("LST2");
|
|
13
|
+
AdbSyncRequestId.Data = adbSyncEncodeId("DATA");
|
|
14
|
+
AdbSyncRequestId.Done = adbSyncEncodeId("DONE");
|
|
15
|
+
AdbSyncRequestId.Receive = adbSyncEncodeId("RECV");
|
|
15
16
|
})(AdbSyncRequestId || (AdbSyncRequestId = {}));
|
|
16
17
|
export const AdbSyncNumberRequest = new Struct({ littleEndian: true })
|
|
17
|
-
.
|
|
18
|
+
.uint32("id")
|
|
18
19
|
.uint32("arg");
|
|
19
|
-
export const AdbSyncDataRequest = new Struct({ littleEndian: true })
|
|
20
|
-
.concat(AdbSyncNumberRequest)
|
|
21
|
-
.uint8Array("data", { lengthField: "arg" });
|
|
22
20
|
export async function adbSyncWriteRequest(writable, id, value) {
|
|
23
|
-
if (typeof
|
|
24
|
-
|
|
25
|
-
id,
|
|
26
|
-
arg: value,
|
|
27
|
-
});
|
|
28
|
-
await writable.write(buffer);
|
|
21
|
+
if (typeof id === "string") {
|
|
22
|
+
id = adbSyncEncodeId(id);
|
|
29
23
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
await writable.write(AdbSyncNumberRequest.serialize({ id, arg: buffer.byteLength }));
|
|
34
|
-
await writable.write(buffer);
|
|
24
|
+
if (typeof value === "number") {
|
|
25
|
+
await writable.write(AdbSyncNumberRequest.serialize({ id, arg: value }));
|
|
26
|
+
return;
|
|
35
27
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
await writable.write(value);
|
|
28
|
+
if (typeof value === "string") {
|
|
29
|
+
value = encodeUtf8(value);
|
|
39
30
|
}
|
|
31
|
+
// `writable` is buffered, it copies inputs to an internal buffer,
|
|
32
|
+
// so don't concatenate headers and data here, that will be an unnecessary copy.
|
|
33
|
+
await writable.write(AdbSyncNumberRequest.serialize({ id, arg: value.length }));
|
|
34
|
+
await writable.write(value);
|
|
40
35
|
}
|
|
41
36
|
//# sourceMappingURL=request.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/commands/sync/request.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/commands/sync/request.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,KAAW,gBAAgB,CAWhC;AAXD,WAAiB,gBAAgB;IAChB,qBAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,uBAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,qBAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,uBAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,sBAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAChC,qBAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,wBAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAClC,qBAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,qBAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,wBAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC,EAXgB,gBAAgB,KAAhB,gBAAgB,QAWhC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KACjE,MAAM,CAAC,IAAI,CAAC;KACZ,MAAM,CAAC,KAAK,CAAC,CAAC;AAMnB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,QAAyB,EACzB,EAAmB,EACnB,KAAmC;IAEnC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QACzB,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,QAAQ,CAAC,KAAK,CAChB,oBAAoB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CACrD,CAAC;QACF,OAAO;IACX,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,kEAAkE;IAClE,gFAAgF;IAChF,MAAM,QAAQ,CAAC,KAAK,CAChB,oBAAoB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAC5D,CAAC;IACF,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import type { AsyncExactReadable, StructLike, StructValueType } from "@yume-chan/struct";
|
|
2
2
|
import Struct from "@yume-chan/struct";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Encode ID to numbers for faster comparison
|
|
5
|
+
* @param value A 4-character string
|
|
6
|
+
* @returns A 32-bit integer by encoding the string as little-endian
|
|
7
|
+
*/
|
|
8
|
+
export declare function adbSyncEncodeId(value: string): number;
|
|
9
|
+
export declare namespace AdbSyncResponseId {
|
|
10
|
+
const Entry: number;
|
|
11
|
+
const Entry2: number;
|
|
12
|
+
const Lstat: number;
|
|
13
|
+
const Stat: number;
|
|
14
|
+
const Lstat2: number;
|
|
15
|
+
const Done: number;
|
|
16
|
+
const Data: number;
|
|
17
|
+
const Ok: number;
|
|
18
|
+
const Fail: number;
|
|
13
19
|
}
|
|
14
20
|
export declare class AdbSyncError extends Error {
|
|
15
21
|
}
|
|
@@ -17,6 +23,6 @@ export declare const AdbSyncFailResponse: Struct<{
|
|
|
17
23
|
messageLength: number;
|
|
18
24
|
message: string;
|
|
19
25
|
}, "messageLength", Record<never, never>, never>;
|
|
20
|
-
export declare function adbSyncReadResponse<T>(stream: AsyncExactReadable, id:
|
|
21
|
-
export declare function adbSyncReadResponses<T extends Struct<object, PropertyKey, object, unknown>>(stream: AsyncExactReadable, id:
|
|
26
|
+
export declare function adbSyncReadResponse<T>(stream: AsyncExactReadable, id: number | string, type: StructLike<T>): Promise<T>;
|
|
27
|
+
export declare function adbSyncReadResponses<T extends Struct<object, PropertyKey, object, unknown>>(stream: AsyncExactReadable, id: number | string, type: T): AsyncGenerator<StructValueType<T>, void, void>;
|
|
22
28
|
//# sourceMappingURL=response.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,kBAAkB,EAClB,UAAU,EACV,eAAe,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,MAAsB,MAAM,mBAAmB,CAAC;AAUvD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,yBAAiB,iBAAiB,CAAC;IACxB,MAAM,KAAK,QAA0B,CAAC;IACtC,MAAM,MAAM,QAA0B,CAAC;IACvC,MAAM,KAAK,QAA0B,CAAC;IACtC,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,MAAM,QAA0B,CAAC;IACvC,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,IAAI,QAA0B,CAAC;IACrC,MAAM,EAAE,QAA0B,CAAC;IACnC,MAAM,IAAI,QAA0B,CAAC;CAC/C;AAED,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C,eAAO,MAAM,mBAAmB;;;gDAK1B,CAAC;AAEP,wBAAsB,mBAAmB,CAAC,CAAC,EACvC,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GACpB,OAAO,CAAC,CAAC,CAAC,CAiBZ;AAED,wBAAuB,oBAAoB,CACvC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAEtD,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,IAAI,EAAE,CAAC,GACR,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CA2BhD"}
|
|
@@ -1,16 +1,32 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { decodeUtf8 } from "
|
|
1
|
+
import { getUint32LittleEndian } from "@yume-chan/no-data-view";
|
|
2
|
+
import Struct, { decodeUtf8 } from "@yume-chan/struct";
|
|
3
|
+
function encodeAsciiUnchecked(value) {
|
|
4
|
+
const result = new Uint8Array(value.length);
|
|
5
|
+
for (let i = 0; i < value.length; i += 1) {
|
|
6
|
+
result[i] = value.charCodeAt(i);
|
|
7
|
+
}
|
|
8
|
+
return result;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Encode ID to numbers for faster comparison
|
|
12
|
+
* @param value A 4-character string
|
|
13
|
+
* @returns A 32-bit integer by encoding the string as little-endian
|
|
14
|
+
*/
|
|
15
|
+
export function adbSyncEncodeId(value) {
|
|
16
|
+
const buffer = encodeAsciiUnchecked(value);
|
|
17
|
+
return getUint32LittleEndian(buffer, 0);
|
|
18
|
+
}
|
|
3
19
|
export var AdbSyncResponseId;
|
|
4
20
|
(function (AdbSyncResponseId) {
|
|
5
|
-
AdbSyncResponseId
|
|
6
|
-
AdbSyncResponseId
|
|
7
|
-
AdbSyncResponseId
|
|
8
|
-
AdbSyncResponseId
|
|
9
|
-
AdbSyncResponseId
|
|
10
|
-
AdbSyncResponseId
|
|
11
|
-
AdbSyncResponseId
|
|
12
|
-
AdbSyncResponseId
|
|
13
|
-
AdbSyncResponseId
|
|
21
|
+
AdbSyncResponseId.Entry = adbSyncEncodeId("DENT");
|
|
22
|
+
AdbSyncResponseId.Entry2 = adbSyncEncodeId("DNT2");
|
|
23
|
+
AdbSyncResponseId.Lstat = adbSyncEncodeId("STAT");
|
|
24
|
+
AdbSyncResponseId.Stat = adbSyncEncodeId("STA2");
|
|
25
|
+
AdbSyncResponseId.Lstat2 = adbSyncEncodeId("LST2");
|
|
26
|
+
AdbSyncResponseId.Done = adbSyncEncodeId("DONE");
|
|
27
|
+
AdbSyncResponseId.Data = adbSyncEncodeId("DATA");
|
|
28
|
+
AdbSyncResponseId.Ok = adbSyncEncodeId("OKAY");
|
|
29
|
+
AdbSyncResponseId.Fail = adbSyncEncodeId("FAIL");
|
|
14
30
|
})(AdbSyncResponseId || (AdbSyncResponseId = {}));
|
|
15
31
|
export class AdbSyncError extends Error {
|
|
16
32
|
}
|
|
@@ -21,21 +37,27 @@ export const AdbSyncFailResponse = new Struct({ littleEndian: true })
|
|
|
21
37
|
throw new AdbSyncError(object.message);
|
|
22
38
|
});
|
|
23
39
|
export async function adbSyncReadResponse(stream, id, type) {
|
|
24
|
-
|
|
25
|
-
|
|
40
|
+
if (typeof id === "string") {
|
|
41
|
+
id = adbSyncEncodeId(id);
|
|
42
|
+
}
|
|
43
|
+
const buffer = await stream.readExactly(4);
|
|
44
|
+
switch (getUint32LittleEndian(buffer, 0)) {
|
|
26
45
|
case AdbSyncResponseId.Fail:
|
|
27
46
|
await AdbSyncFailResponse.deserialize(stream);
|
|
28
47
|
throw new Error("Unreachable");
|
|
29
48
|
case id:
|
|
30
49
|
return await type.deserialize(stream);
|
|
31
50
|
default:
|
|
32
|
-
throw new Error(`Expected '${id}', but got '${
|
|
51
|
+
throw new Error(`Expected '${id}', but got '${decodeUtf8(buffer)}'`);
|
|
33
52
|
}
|
|
34
53
|
}
|
|
35
54
|
export async function* adbSyncReadResponses(stream, id, type) {
|
|
55
|
+
if (typeof id === "string") {
|
|
56
|
+
id = adbSyncEncodeId(id);
|
|
57
|
+
}
|
|
36
58
|
while (true) {
|
|
37
|
-
const
|
|
38
|
-
switch (
|
|
59
|
+
const buffer = await stream.readExactly(4);
|
|
60
|
+
switch (getUint32LittleEndian(buffer, 0)) {
|
|
39
61
|
case AdbSyncResponseId.Fail:
|
|
40
62
|
await AdbSyncFailResponse.deserialize(stream);
|
|
41
63
|
throw new Error("Unreachable");
|
|
@@ -50,7 +72,7 @@ export async function* adbSyncReadResponses(stream, id, type) {
|
|
|
50
72
|
yield (await type.deserialize(stream));
|
|
51
73
|
break;
|
|
52
74
|
default:
|
|
53
|
-
throw new Error(`Expected '${id}' or '${AdbSyncResponseId.Done}', but got '${
|
|
75
|
+
throw new Error(`Expected '${id}' or '${AdbSyncResponseId.Done}', but got '${decodeUtf8(buffer)}'`);
|
|
54
76
|
}
|
|
55
77
|
}
|
|
56
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MaybeConsumable, WritableStreamDefaultWriter } from "@yume-chan/stream-extra";
|
|
2
2
|
import { BufferedReadableStream } from "@yume-chan/stream-extra";
|
|
3
3
|
import type { AsyncExactReadable } from "@yume-chan/struct";
|
|
4
4
|
import type { AdbSocket } from "../../adb.js";
|
|
@@ -6,7 +6,7 @@ import { AutoResetEvent } from "../../utils/index.js";
|
|
|
6
6
|
export declare class AdbSyncSocketLocked implements AsyncExactReadable {
|
|
7
7
|
#private;
|
|
8
8
|
get position(): number;
|
|
9
|
-
constructor(writer: WritableStreamDefaultWriter<
|
|
9
|
+
constructor(writer: WritableStreamDefaultWriter<MaybeConsumable<Uint8Array>>, readable: BufferedReadableStream, bufferSize: number, lock: AutoResetEvent);
|
|
10
10
|
flush(): Promise<void>;
|
|
11
11
|
write(data: Uint8Array): Promise<void>;
|
|
12
12
|
readExactly(length: number): Promise<Uint8Array>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,
|
|
1
|
+
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,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,IAAI,QAAQ,WAEX;gBAGG,MAAM,EAAE,2BAA2B,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,EAChE,QAAQ,EAAE,sBAAsB,EAChC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,cAAc;IAalB,KAAK;IAYL,KAAK,CAAC,IAAI,EAAE,UAAU;IAWtB,WAAW,CAAC,MAAM,EAAE,MAAM;IAOhC,OAAO,IAAI,IAAI;IAOT,KAAK;CAGd;AAED,qBAAa,aAAa;;gBAKV,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM;IAU3C,IAAI;IAKJ,KAAK;CAId"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BufferCombiner, BufferedReadableStream,
|
|
1
|
+
import { BufferCombiner, BufferedReadableStream, Consumable, } from "@yume-chan/stream-extra";
|
|
2
2
|
import { AutoResetEvent } from "../../utils/index.js";
|
|
3
3
|
export class AdbSyncSocketLocked {
|
|
4
4
|
#writer;
|
|
@@ -15,15 +15,16 @@ export class AdbSyncSocketLocked {
|
|
|
15
15
|
this.#socketLock = lock;
|
|
16
16
|
this.#combiner = new BufferCombiner(bufferSize);
|
|
17
17
|
}
|
|
18
|
-
async #
|
|
19
|
-
|
|
18
|
+
async #write(buffer) {
|
|
19
|
+
// `#combiner` will reuse the buffer, so we need to use the Consumable pattern
|
|
20
|
+
await Consumable.WritableStream.write(this.#writer, buffer);
|
|
20
21
|
}
|
|
21
22
|
async flush() {
|
|
22
23
|
try {
|
|
23
24
|
await this.#writeLock.wait();
|
|
24
25
|
const buffer = this.#combiner.flush();
|
|
25
26
|
if (buffer) {
|
|
26
|
-
await this.#
|
|
27
|
+
await this.#write(buffer);
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
finally {
|
|
@@ -34,7 +35,7 @@ export class AdbSyncSocketLocked {
|
|
|
34
35
|
try {
|
|
35
36
|
await this.#writeLock.wait();
|
|
36
37
|
for (const buffer of this.#combiner.push(data)) {
|
|
37
|
-
await this.#
|
|
38
|
+
await this.#write(buffer);
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
finally {
|
|
@@ -42,10 +43,14 @@ export class AdbSyncSocketLocked {
|
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
async readExactly(length) {
|
|
46
|
+
// The request may still be in the internal buffer.
|
|
47
|
+
// Call `flush` to send it before starting reading
|
|
45
48
|
await this.flush();
|
|
46
49
|
return await this.#readable.readExactly(length);
|
|
47
50
|
}
|
|
48
51
|
release() {
|
|
52
|
+
// In theory, the writer shouldn't leave anything in the buffer,
|
|
53
|
+
// but to be safe, call `flush` to throw away any remaining data.
|
|
49
54
|
this.#combiner.flush();
|
|
50
55
|
this.#socketLock.notifyOne();
|
|
51
56
|
}
|