@yume-chan/adb 0.0.12 → 0.0.15
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 +54 -0
- package/CHANGELOG.md +28 -1
- package/README.md +24 -17
- package/esm/adb.d.ts +10 -9
- package/esm/adb.d.ts.map +1 -1
- package/esm/adb.js +88 -67
- package/esm/adb.js.map +1 -1
- package/esm/auth.d.ts +6 -6
- package/esm/auth.d.ts.map +1 -1
- package/esm/auth.js +8 -6
- package/esm/auth.js.map +1 -1
- package/esm/backend.d.ts +2 -2
- package/esm/commands/install.d.ts.map +1 -1
- package/esm/commands/install.js +5 -7
- package/esm/commands/install.js.map +1 -1
- package/esm/commands/reverse.d.ts +9 -12
- package/esm/commands/reverse.d.ts.map +1 -1
- package/esm/commands/reverse.js +44 -36
- package/esm/commands/reverse.js.map +1 -1
- package/esm/commands/subprocess/index.d.ts +19 -20
- package/esm/commands/subprocess/index.d.ts.map +1 -1
- package/esm/commands/subprocess/index.js +36 -31
- package/esm/commands/subprocess/index.js.map +1 -1
- package/esm/commands/subprocess/legacy.d.ts +14 -7
- package/esm/commands/subprocess/legacy.d.ts.map +1 -1
- package/esm/commands/subprocess/legacy.js +14 -5
- package/esm/commands/subprocess/legacy.js.map +1 -1
- package/esm/commands/subprocess/protocol.d.ts +3 -2
- package/esm/commands/subprocess/protocol.d.ts.map +1 -1
- package/esm/commands/subprocess/protocol.js +6 -4
- package/esm/commands/subprocess/protocol.js.map +1 -1
- package/esm/commands/subprocess/protocols/index.d.ts +4 -0
- package/esm/commands/subprocess/protocols/index.d.ts.map +1 -0
- package/esm/commands/subprocess/protocols/index.js +4 -0
- package/esm/commands/subprocess/protocols/index.js.map +1 -0
- package/esm/commands/subprocess/protocols/none.d.ts +35 -0
- package/esm/commands/subprocess/protocols/none.d.ts.map +1 -0
- package/esm/commands/subprocess/protocols/none.js +53 -0
- package/esm/commands/subprocess/protocols/none.js.map +1 -0
- package/esm/commands/subprocess/protocols/shell.d.ts +39 -0
- package/esm/commands/subprocess/protocols/shell.d.ts.map +1 -0
- package/esm/commands/subprocess/protocols/shell.js +155 -0
- package/esm/commands/subprocess/protocols/shell.js.map +1 -0
- package/esm/commands/subprocess/protocols/types.d.ts +50 -0
- package/esm/commands/subprocess/protocols/types.d.ts.map +1 -0
- package/esm/commands/subprocess/protocols/types.js +2 -0
- package/esm/commands/subprocess/protocols/types.js.map +1 -0
- package/esm/commands/subprocess/types.d.ts +9 -6
- package/esm/commands/subprocess/types.d.ts.map +1 -1
- package/esm/commands/sync/list.d.ts +25 -1
- package/esm/commands/sync/list.d.ts.map +1 -1
- package/esm/commands/sync/list.js +40 -5
- package/esm/commands/sync/list.js.map +1 -1
- package/esm/commands/sync/pull.d.ts.map +1 -1
- package/esm/commands/sync/pull.js +6 -3
- package/esm/commands/sync/pull.js.map +1 -1
- package/esm/commands/sync/request.d.ts +1 -0
- package/esm/commands/sync/request.d.ts.map +1 -1
- package/esm/commands/sync/request.js +1 -0
- package/esm/commands/sync/request.js.map +1 -1
- package/esm/commands/sync/response.d.ts +2 -1
- package/esm/commands/sync/response.d.ts.map +1 -1
- package/esm/commands/sync/response.js +2 -1
- package/esm/commands/sync/response.js.map +1 -1
- package/esm/commands/sync/stat.d.ts +13 -1
- package/esm/commands/sync/stat.d.ts.map +1 -1
- package/esm/commands/sync/stat.js +22 -9
- package/esm/commands/sync/stat.js.map +1 -1
- package/esm/commands/sync/sync.d.ts +13 -35
- package/esm/commands/sync/sync.d.ts.map +1 -1
- package/esm/commands/sync/sync.js +40 -10
- package/esm/commands/sync/sync.js.map +1 -1
- package/esm/crypto.d.ts +23 -10
- package/esm/crypto.d.ts.map +1 -1
- package/esm/crypto.js +64 -46
- package/esm/crypto.js.map +1 -1
- package/esm/features.d.ts +4 -2
- package/esm/features.d.ts.map +1 -1
- package/esm/features.js +6 -2
- package/esm/features.js.map +1 -1
- package/esm/packet.d.ts +21 -2
- package/esm/packet.d.ts.map +1 -1
- package/esm/packet.js +2 -2
- package/esm/packet.js.map +1 -1
- package/esm/socket/dispatcher.d.ts +35 -23
- package/esm/socket/dispatcher.d.ts.map +1 -1
- package/esm/socket/dispatcher.js +97 -72
- package/esm/socket/dispatcher.js.map +1 -1
- package/esm/socket/socket.d.ts +29 -8
- package/esm/socket/socket.d.ts.map +1 -1
- package/esm/socket/socket.js +43 -29
- package/esm/socket/socket.js.map +1 -1
- package/esm/stream/buffered.d.ts +1 -1
- package/esm/stream/buffered.d.ts.map +1 -1
- package/esm/stream/buffered.js +2 -2
- package/esm/stream/buffered.js.map +1 -1
- package/esm/stream/detect.d.ts +1 -17
- package/esm/stream/detect.d.ts.map +1 -1
- package/esm/stream/detect.js +4 -5
- package/esm/stream/detect.js.map +1 -1
- package/esm/stream/detect.polyfill.d.ts +1 -1
- package/esm/stream/detect.polyfill.d.ts.map +1 -1
- package/esm/stream/detect.polyfill.js +4 -1
- package/esm/stream/detect.polyfill.js.map +1 -1
- package/esm/stream/transform.d.ts +39 -33
- package/esm/stream/transform.d.ts.map +1 -1
- package/esm/stream/transform.js +121 -100
- package/esm/stream/transform.js.map +1 -1
- package/esm/utils/base64.js +5 -5
- package/esm/utils/base64.js.map +1 -1
- package/esm/utils/encoding.d.ts.map +1 -1
- package/esm/utils/encoding.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/package.json +7 -7
- package/src/adb.ts +112 -86
- package/src/auth.ts +21 -18
- package/src/backend.ts +2 -2
- package/src/commands/install.ts +7 -9
- package/src/commands/reverse.ts +48 -44
- package/src/commands/subprocess/index.ts +57 -42
- package/src/commands/subprocess/protocols/index.ts +3 -0
- package/src/commands/subprocess/{legacy.ts → protocols/none.ts} +20 -10
- package/src/commands/subprocess/{protocol.ts → protocols/shell.ts} +22 -17
- package/src/commands/subprocess/{types.ts → protocols/types.ts} +13 -9
- package/src/commands/sync/list.ts +51 -5
- package/src/commands/sync/pull.ts +6 -3
- package/src/commands/sync/request.ts +1 -0
- package/src/commands/sync/response.ts +8 -2
- package/src/commands/sync/stat.ts +36 -9
- package/src/commands/sync/sync.ts +56 -20
- package/src/crypto.ts +72 -56
- package/src/features.ts +6 -2
- package/src/packet.ts +17 -6
- package/src/socket/dispatcher.ts +139 -91
- package/src/socket/socket.ts +76 -61
- package/src/stream/buffered.ts +2 -2
- package/src/stream/detect.polyfill.ts +5 -2
- package/src/stream/detect.ts +4 -24
- package/src/stream/transform.ts +144 -124
- package/src/utils/index.ts +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/src/utils/encoding.ts +0 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,KAAK,4BAA4B,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG/D,oBAAY,iBAAiB;IACzB,KAAK,SAAS;IACd,KAAK,SAAS;IACd,IAAI,SAAS;IACb,MAAM,SAAS;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,EAAE,SAAS;IACX,IAAI,SAAS;CAChB;AAMD,qBAAa,mBAAoB,YAAW,UAAU,CAAC,mBAAmB,CAAC;IACvE,OAAO,CAAC,MAAM,CAAS;IAEvB,SAAgB,EAAE,0BAA0B;gBAEzB,MAAM,EAAE,MAAM;IAIpB,WAAW,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;CAIhF;AAED,eAAO,MAAM,mBAAmB;;;8BAMtB,CAAC;AAEX,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAC/E,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,KAAK,4BAA4B,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG/D,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;AAMD,qBAAa,mBAAoB,YAAW,UAAU,CAAC,mBAAmB,CAAC;IACvE,OAAO,CAAC,MAAM,CAAS;IAEvB,SAAgB,EAAE,0BAA0B;gBAEzB,MAAM,EAAE,MAAM;IAIpB,WAAW,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;CAIhF;AAED,eAAO,MAAM,mBAAmB;;;8BAMtB,CAAC;AAEX,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAC/E,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,CAAC,GAMT,OAAO,CAAC,eAAe,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAYlE"}
|
|
@@ -3,6 +3,7 @@ import { decodeUtf8 } from "../../utils/index.js";
|
|
|
3
3
|
export var AdbSyncResponseId;
|
|
4
4
|
(function (AdbSyncResponseId) {
|
|
5
5
|
AdbSyncResponseId["Entry"] = "DENT";
|
|
6
|
+
AdbSyncResponseId["Entry2"] = "DNT2";
|
|
6
7
|
AdbSyncResponseId["Lstat"] = "STAT";
|
|
7
8
|
AdbSyncResponseId["Stat"] = "STA2";
|
|
8
9
|
AdbSyncResponseId["Lstat2"] = "LST2";
|
|
@@ -40,6 +41,6 @@ export async function adbSyncReadResponse(stream, types) {
|
|
|
40
41
|
if (types[id]) {
|
|
41
42
|
return types[id].deserialize(stream);
|
|
42
43
|
}
|
|
43
|
-
throw new Error('
|
|
44
|
+
throw new Error(`Expected '${Object.keys(types).join(', ')}', but got '${id}'`);
|
|
44
45
|
}
|
|
45
46
|
//# sourceMappingURL=response.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"AAAA,OAAO,MAAoF,MAAM,mBAAmB,CAAC;AAErH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/commands/sync/response.ts"],"names":[],"mappings":"AAAA,OAAO,MAAoF,MAAM,mBAAmB,CAAC;AAErH,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,yEAAyE;AACzE,sFAAsF;AACtF,6EAA6E;AAC7E,iDAAiD;AACjD,MAAM,OAAO,mBAAmB;IACpB,MAAM,CAAS;IAEP,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC;IAE5C,YAAmB,MAAc;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,MAAoC;QACzD,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,mBAAmB,GAC5B,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAC7B,MAAM,CAAC,eAAe,CAAC;KACvB,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;KACnD,eAAe,CAAC,MAAM,CAAC,EAAE;IACtB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEX,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,MAAyB,EACzB,KAAQ;IAOR,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5C,IAAI,EAAE,KAAK,iBAAiB,CAAC,IAAI,EAAE;QAC/B,MAAM,mBAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;KACjD;IAED,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE;QACX,OAAO,KAAK,CAAC,EAAE,CAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;KACzC;IAED,MAAM,IAAI,KAAK,CAAC,aAAa,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -6,6 +6,17 @@ export declare enum LinuxFileType {
|
|
|
6
6
|
File = 8,
|
|
7
7
|
Link = 10
|
|
8
8
|
}
|
|
9
|
+
export interface AdbSyncStat {
|
|
10
|
+
mode: number;
|
|
11
|
+
size: bigint;
|
|
12
|
+
mtime: bigint;
|
|
13
|
+
get type(): LinuxFileType;
|
|
14
|
+
get permission(): number;
|
|
15
|
+
uid?: number;
|
|
16
|
+
gid?: number;
|
|
17
|
+
atime?: bigint;
|
|
18
|
+
ctime?: bigint;
|
|
19
|
+
}
|
|
9
20
|
export declare const AdbSyncLstatResponse: Struct<{
|
|
10
21
|
mode: number;
|
|
11
22
|
size: number;
|
|
@@ -17,6 +28,7 @@ export declare const AdbSyncLstatResponse: Struct<{
|
|
|
17
28
|
}, undefined>;
|
|
18
29
|
export declare type AdbSyncLstatResponse = typeof AdbSyncLstatResponse['TDeserializeResult'];
|
|
19
30
|
export declare enum AdbSyncStatErrorCode {
|
|
31
|
+
SUCCESS = 0,
|
|
20
32
|
EACCES = 13,
|
|
21
33
|
EEXIST = 17,
|
|
22
34
|
EFAULT = 14,
|
|
@@ -56,6 +68,6 @@ export declare const AdbSyncStatResponse: Struct<{
|
|
|
56
68
|
readonly permission: number;
|
|
57
69
|
}, undefined>;
|
|
58
70
|
export declare type AdbSyncStatResponse = typeof AdbSyncStatResponse['TDeserializeResult'];
|
|
59
|
-
export declare function adbSyncLstat(stream: AdbBufferedStream, writer: WritableStreamDefaultWriter<Uint8Array>, path: string, v2: boolean): Promise<
|
|
71
|
+
export declare function adbSyncLstat(stream: AdbBufferedStream, writer: WritableStreamDefaultWriter<Uint8Array>, path: string, v2: boolean): Promise<AdbSyncStat>;
|
|
60
72
|
export declare function adbSyncStat(stream: AdbBufferedStream, writer: WritableStreamDefaultWriter<Uint8Array>, path: string): Promise<AdbSyncStatResponse>;
|
|
61
73
|
//# sourceMappingURL=stat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stat.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/stat.ts"],"names":[],"mappings":"AAAA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAE5F,OAAO,EAAuB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvE,oBAAY,aAAa;IACrB,SAAS,IAAO;IAChB,IAAI,IAAO;IACX,IAAI,KAAO;CACd;AAED,eAAO,MAAM,oBAAoB;;;;;;;;aAiBvB,CAAC;AAEX,oBAAY,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;AAErF,oBAAY,oBAAoB;IAC5B,MAAM,KAAK;IACX,MAAM,KAAK;IACX,MAAM,KAAK;IACX,KAAK,KAAK;IACV,KAAK,IAAI;IACT,MAAM,KAAK;IACX,GAAG,IAAI;IACP,MAAM,KAAK;IACX,KAAK,KAAK;IACV,MAAM,KAAK;IACX,YAAY,KAAK;IACjB,MAAM,KAAK;IACX,MAAM,IAAI;IACV,MAAM,KAAK;IACX,MAAM,KAAK;IACX,OAAO,KAAK;IACZ,SAAS,KAAK;IACd,KAAK,IAAI;IACT,KAAK,KAAK;IACV,OAAO,KAAK;CACf;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;aAsBtB,CAAC;AAEX,oBAAY,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;AAcnF,wBAAsB,YAAY,CAC9B,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,EAC/C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,OAAO,GACZ,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"stat.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/stat.ts"],"names":[],"mappings":"AAAA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAE5F,OAAO,EAAuB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvE,oBAAY,aAAa;IACrB,SAAS,IAAO;IAChB,IAAI,IAAO;IACX,IAAI,KAAO;CACd;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,IAAI,IAAI,aAAa,CAAC;IAC1B,IAAI,UAAU,IAAI,MAAM,CAAC;IAEzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,oBAAoB;;;;;;;;aAiBvB,CAAC;AAEX,oBAAY,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;AAErF,oBAAY,oBAAoB;IAC5B,OAAO,IAAI;IACX,MAAM,KAAK;IACX,MAAM,KAAK;IACX,MAAM,KAAK;IACX,KAAK,KAAK;IACV,KAAK,IAAI;IACT,MAAM,KAAK;IACX,GAAG,IAAI;IACP,MAAM,KAAK;IACX,KAAK,KAAK;IACV,MAAM,KAAK;IACX,YAAY,KAAK;IACjB,MAAM,KAAK;IACX,MAAM,IAAI;IACV,MAAM,KAAK;IACX,MAAM,KAAK;IACX,OAAO,KAAK;IACZ,SAAS,KAAK;IACd,KAAK,IAAI;IACT,KAAK,KAAK;IACV,OAAO,KAAK;CACf;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;aAsBtB,CAAC;AAEX,oBAAY,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;AAcnF,wBAAsB,YAAY,CAC9B,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,EAC/C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,OAAO,GACZ,OAAO,CAAC,WAAW,CAAC,CA2BtB;AAED,wBAAsB,WAAW,CAC7B,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,EAC/C,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC,CAG9B"}
|
|
@@ -15,7 +15,7 @@ export const AdbSyncLstatResponse = new Struct({ littleEndian: true })
|
|
|
15
15
|
.extra({
|
|
16
16
|
id: AdbSyncResponseId.Lstat,
|
|
17
17
|
get type() { return this.mode >> 12; },
|
|
18
|
-
get permission() { return this.mode &
|
|
18
|
+
get permission() { return this.mode & 4095; },
|
|
19
19
|
})
|
|
20
20
|
.postDeserialize((object) => {
|
|
21
21
|
if (object.mode === 0 &&
|
|
@@ -26,6 +26,7 @@ export const AdbSyncLstatResponse = new Struct({ littleEndian: true })
|
|
|
26
26
|
});
|
|
27
27
|
export var AdbSyncStatErrorCode;
|
|
28
28
|
(function (AdbSyncStatErrorCode) {
|
|
29
|
+
AdbSyncStatErrorCode[AdbSyncStatErrorCode["SUCCESS"] = 0] = "SUCCESS";
|
|
29
30
|
AdbSyncStatErrorCode[AdbSyncStatErrorCode["EACCES"] = 13] = "EACCES";
|
|
30
31
|
AdbSyncStatErrorCode[AdbSyncStatErrorCode["EEXIST"] = 17] = "EEXIST";
|
|
31
32
|
AdbSyncStatErrorCode[AdbSyncStatErrorCode["EFAULT"] = 14] = "EFAULT";
|
|
@@ -62,20 +63,20 @@ export const AdbSyncStatResponse = new Struct({ littleEndian: true })
|
|
|
62
63
|
.extra({
|
|
63
64
|
id: AdbSyncResponseId.Stat,
|
|
64
65
|
get type() { return this.mode >> 12; },
|
|
65
|
-
get permission() { return this.mode &
|
|
66
|
+
get permission() { return this.mode & 4095; },
|
|
66
67
|
})
|
|
67
68
|
.postDeserialize((object) => {
|
|
68
69
|
if (object.error) {
|
|
69
70
|
throw new Error(AdbSyncStatErrorCode[object.error]);
|
|
70
71
|
}
|
|
71
72
|
});
|
|
72
|
-
const
|
|
73
|
+
const STAT_RESPONSE_TYPES = {
|
|
73
74
|
[AdbSyncResponseId.Stat]: AdbSyncStatResponse,
|
|
74
75
|
};
|
|
75
|
-
const
|
|
76
|
+
const LSTAT_RESPONSE_TYPES = {
|
|
76
77
|
[AdbSyncResponseId.Lstat]: AdbSyncLstatResponse,
|
|
77
78
|
};
|
|
78
|
-
const
|
|
79
|
+
const LSTAT_V2_RESPONSE_TYPES = {
|
|
79
80
|
[AdbSyncResponseId.Lstat2]: AdbSyncStatResponse,
|
|
80
81
|
};
|
|
81
82
|
export async function adbSyncLstat(stream, writer, path, v2) {
|
|
@@ -83,17 +84,29 @@ export async function adbSyncLstat(stream, writer, path, v2) {
|
|
|
83
84
|
let responseType;
|
|
84
85
|
if (v2) {
|
|
85
86
|
requestId = AdbSyncRequestId.Lstat2;
|
|
86
|
-
responseType =
|
|
87
|
+
responseType = LSTAT_V2_RESPONSE_TYPES;
|
|
87
88
|
}
|
|
88
89
|
else {
|
|
89
90
|
requestId = AdbSyncRequestId.Lstat;
|
|
90
|
-
responseType =
|
|
91
|
+
responseType = LSTAT_RESPONSE_TYPES;
|
|
91
92
|
}
|
|
92
93
|
await adbSyncWriteRequest(writer, requestId, path);
|
|
93
|
-
|
|
94
|
+
const response = await adbSyncReadResponse(stream, responseType);
|
|
95
|
+
switch (response.id) {
|
|
96
|
+
case AdbSyncResponseId.Lstat:
|
|
97
|
+
return {
|
|
98
|
+
mode: response.mode,
|
|
99
|
+
size: BigInt(response.size),
|
|
100
|
+
mtime: BigInt(response.mtime),
|
|
101
|
+
get type() { return response.type; },
|
|
102
|
+
get permission() { return response.permission; },
|
|
103
|
+
};
|
|
104
|
+
default:
|
|
105
|
+
return response;
|
|
106
|
+
}
|
|
94
107
|
}
|
|
95
108
|
export async function adbSyncStat(stream, writer, path) {
|
|
96
109
|
await adbSyncWriteRequest(writer, AdbSyncRequestId.Stat, path);
|
|
97
|
-
return await adbSyncReadResponse(stream,
|
|
110
|
+
return await adbSyncReadResponse(stream, STAT_RESPONSE_TYPES);
|
|
98
111
|
}
|
|
99
112
|
//# sourceMappingURL=stat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stat.js","sourceRoot":"","sources":["../../../src/commands/sync/stat.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvE,kGAAkG;AAClG,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,2DAAgB,CAAA;IAChB,iDAAW,CAAA;IACX,kDAAW,CAAA;AACf,CAAC,EAJW,aAAa,GAAb,aAAa,KAAb,aAAa,QAIxB;
|
|
1
|
+
{"version":3,"file":"stat.js","sourceRoot":"","sources":["../../../src/commands/sync/stat.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvE,kGAAkG;AAClG,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,2DAAgB,CAAA;IAChB,iDAAW,CAAA;IACX,kDAAW,CAAA;AACf,CAAC,EAJW,aAAa,GAAb,aAAa,KAAb,aAAa,QAIxB;AAeD,MAAM,CAAC,MAAM,oBAAoB,GAC7B,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAC7B,KAAK,CAAC,MAAM,CAAC;KACb,KAAK,CAAC,MAAM,CAAC;KACb,KAAK,CAAC,OAAO,CAAC;KACd,KAAK,CAAC;IACH,EAAE,EAAE,iBAAiB,CAAC,KAAc;IACpC,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,IAAI,EAAmB,CAAC,CAAC,CAAC;IACvD,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,IAAI,GAAG,IAAmB,CAAC,CAAC,CAAC;CAC/D,CAAC;KACD,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE;IACxB,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QACjB,MAAM,CAAC,IAAI,KAAK,CAAC;QACjB,MAAM,CAAC,KAAK,KAAK,CAAC,EACpB;QACE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;KACnC;AACL,CAAC,CAAC,CAAC;AAIX,MAAM,CAAN,IAAY,oBAsBX;AAtBD,WAAY,oBAAoB;IAC5B,qEAAW,CAAA;IACX,oEAAW,CAAA;IACX,oEAAW,CAAA;IACX,oEAAW,CAAA;IACX,kEAAU,CAAA;IACV,iEAAS,CAAA;IACT,oEAAW,CAAA;IACX,6DAAO,CAAA;IACP,oEAAW,CAAA;IACX,kEAAU,CAAA;IACV,oEAAW,CAAA;IACX,gFAAiB,CAAA;IACjB,oEAAW,CAAA;IACX,mEAAU,CAAA;IACV,oEAAW,CAAA;IACX,oEAAW,CAAA;IACX,sEAAY,CAAA;IACZ,0EAAc,CAAA;IACd,iEAAS,CAAA;IACT,kEAAU,CAAA;IACV,sEAAY,CAAA;AAChB,CAAC,EAtBW,oBAAoB,GAApB,oBAAoB,KAApB,oBAAoB,QAsB/B;AAED,MAAM,CAAC,MAAM,mBAAmB,GAC5B,IAAI,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAC7B,MAAM,CAAC,OAAO,EAAE,WAAW,EAAwB,CAAC;KACpD,MAAM,CAAC,KAAK,CAAC;KACb,MAAM,CAAC,KAAK,CAAC;KACb,MAAM,CAAC,MAAM,CAAC;KACd,MAAM,CAAC,OAAO,CAAC;KACf,MAAM,CAAC,KAAK,CAAC;KACb,MAAM,CAAC,KAAK,CAAC;KACb,MAAM,CAAC,MAAM,CAAC;KACd,MAAM,CAAC,OAAO,CAAC;KACf,MAAM,CAAC,OAAO,CAAC;KACf,MAAM,CAAC,OAAO,CAAC;KACf,KAAK,CAAC;IACH,EAAE,EAAE,iBAAiB,CAAC,IAAa;IACnC,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,IAAI,EAAmB,CAAC,CAAC,CAAC;IACvD,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,IAAI,GAAG,IAAmB,CAAC,CAAC,CAAC;CAC/D,CAAC;KACD,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE;IACxB,IAAI,MAAM,CAAC,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KACvD;AACL,CAAC,CAAC,CAAC;AAIX,MAAM,mBAAmB,GAAG;IACxB,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,mBAAmB;CAChD,CAAC;AAEF,MAAM,oBAAoB,GAAG;IACzB,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,oBAAoB;CAClD,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC5B,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,mBAAmB;CAClD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,MAAyB,EACzB,MAA+C,EAC/C,IAAY,EACZ,EAAW;IAEX,IAAI,SAA2D,CAAC;IAChE,IAAI,YAA0E,CAAC;IAE/E,IAAI,EAAE,EAAE;QACJ,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC;QACpC,YAAY,GAAG,uBAAuB,CAAC;KAC1C;SAAM;QACH,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC;QACnC,YAAY,GAAG,oBAAoB,CAAC;KACvC;IAED,MAAM,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAEjE,QAAQ,QAAQ,CAAC,EAAE,EAAE;QACjB,KAAK,iBAAiB,CAAC,KAAK;YACxB,OAAO;gBACH,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC3B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC7B,IAAI,IAAI,KAAK,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpC,IAAI,UAAU,KAAK,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;aACnD,CAAC;QACN;YACI,OAAO,QAAQ,CAAC;KACvB;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,MAAyB,EACzB,MAA+C,EAC/C,IAAY;IAEZ,MAAM,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/D,OAAO,MAAM,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -3,37 +3,24 @@ import type { Adb } from '../../adb.js';
|
|
|
3
3
|
import type { AdbSocket } from '../../socket/index.js';
|
|
4
4
|
import { AdbBufferedStream, ReadableStream, WritableStream, WritableStreamDefaultWriter } from '../../stream/index.js';
|
|
5
5
|
import { AutoResetEvent } from '../../utils/index.js';
|
|
6
|
-
import {
|
|
6
|
+
import { type AdbSyncEntry } from './list.js';
|
|
7
|
+
/**
|
|
8
|
+
* A simplified `dirname` function that only handles absolute unix paths.
|
|
9
|
+
* @param path an absolute unix path
|
|
10
|
+
* @returns the directory name of the input path
|
|
11
|
+
*/
|
|
12
|
+
export declare function dirname(path: string): string;
|
|
7
13
|
export declare class AdbSync extends AutoDisposable {
|
|
8
14
|
protected adb: Adb;
|
|
9
15
|
protected stream: AdbBufferedStream;
|
|
10
16
|
protected writer: WritableStreamDefaultWriter<Uint8Array>;
|
|
11
17
|
protected sendLock: AutoResetEvent;
|
|
12
18
|
get supportsStat(): boolean;
|
|
19
|
+
get supportsList2(): boolean;
|
|
20
|
+
get fixedPushMkdir(): boolean;
|
|
21
|
+
get needPushMkdirWorkaround(): boolean;
|
|
13
22
|
constructor(adb: Adb, socket: AdbSocket);
|
|
14
|
-
lstat(path: string): Promise<
|
|
15
|
-
id: import("./response.js").AdbSyncResponseId.Lstat;
|
|
16
|
-
readonly type: import("./stat.js").LinuxFileType;
|
|
17
|
-
readonly permission: number;
|
|
18
|
-
mode: number;
|
|
19
|
-
size: number;
|
|
20
|
-
mtime: number;
|
|
21
|
-
} | {
|
|
22
|
-
id: import("./response.js").AdbSyncResponseId.Stat;
|
|
23
|
-
readonly type: import("./stat.js").LinuxFileType;
|
|
24
|
-
readonly permission: number;
|
|
25
|
-
error: import("./stat.js").AdbSyncStatErrorCode;
|
|
26
|
-
dev: bigint;
|
|
27
|
-
ino: bigint;
|
|
28
|
-
mode: number;
|
|
29
|
-
nlink: number;
|
|
30
|
-
uid: number;
|
|
31
|
-
gid: number;
|
|
32
|
-
size: bigint;
|
|
33
|
-
atime: bigint;
|
|
34
|
-
mtime: bigint;
|
|
35
|
-
ctime: bigint;
|
|
36
|
-
}>;
|
|
23
|
+
lstat(path: string): Promise<import("./stat.js").AdbSyncStat>;
|
|
37
24
|
stat(path: string): Promise<{
|
|
38
25
|
id: import("./response.js").AdbSyncResponseId.Stat;
|
|
39
26
|
readonly type: import("./stat.js").LinuxFileType;
|
|
@@ -51,17 +38,8 @@ export declare class AdbSync extends AutoDisposable {
|
|
|
51
38
|
ctime: bigint;
|
|
52
39
|
}>;
|
|
53
40
|
isDirectory(path: string): Promise<boolean>;
|
|
54
|
-
opendir(path: string): AsyncGenerator<
|
|
55
|
-
readdir(path: string): Promise<
|
|
56
|
-
id: import("./response.js").AdbSyncResponseId.Entry;
|
|
57
|
-
readonly type: import("./stat.js").LinuxFileType;
|
|
58
|
-
readonly permission: number;
|
|
59
|
-
mode: number;
|
|
60
|
-
size: number;
|
|
61
|
-
mtime: number;
|
|
62
|
-
nameLength: number;
|
|
63
|
-
name: string;
|
|
64
|
-
}[]>;
|
|
41
|
+
opendir(path: string): AsyncGenerator<AdbSyncEntry, void, void>;
|
|
42
|
+
readdir(path: string): Promise<AdbSyncEntry[]>;
|
|
65
43
|
/**
|
|
66
44
|
* Read the content of a file on device.
|
|
67
45
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAA0C,cAAc,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAC/J,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAA0C,cAAc,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAC/J,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAK9D;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAS5C;AAED,qBAAa,OAAQ,SAAQ,cAAc;IACvC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEnB,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEpC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAC;IAE1D,SAAS,CAAC,QAAQ,iBAA4C;IAE9D,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED,IAAW,aAAa,IAAI,OAAO,CAElC;IAED,IAAW,cAAc,IAAI,OAAO,CAEnC;IAED,IAAW,uBAAuB,IAAI,OAAO,CAG5C;gBAEkB,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS;IAQjC,KAAK,CAAC,IAAI,EAAE,MAAM;IAUlB,IAAI,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;IAcjB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS1C,OAAO,CACjB,IAAI,EAAE,MAAM,GACb,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;IAU9B,OAAO,CAAC,IAAI,EAAE,MAAM;IAQjC;;;;;OAKG;IACI,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC;IAYzD;;;;;;;OAOG;IACI,KAAK,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACf,cAAc,CAAC,UAAU,CAAC;IA8BP,OAAO;CAKhC"}
|
|
@@ -2,10 +2,26 @@ import { AutoDisposable } from '@yume-chan/event';
|
|
|
2
2
|
import { AdbFeatures } from '../../features.js';
|
|
3
3
|
import { AdbBufferedStream, WrapReadableStream, WrapWritableStream } from '../../stream/index.js';
|
|
4
4
|
import { AutoResetEvent } from '../../utils/index.js';
|
|
5
|
+
import { escapeArg } from "../index.js";
|
|
5
6
|
import { adbSyncOpenDir } from './list.js';
|
|
6
7
|
import { adbSyncPull } from './pull.js';
|
|
7
8
|
import { adbSyncPush } from './push.js';
|
|
8
9
|
import { adbSyncLstat, adbSyncStat } from './stat.js';
|
|
10
|
+
/**
|
|
11
|
+
* A simplified `dirname` function that only handles absolute unix paths.
|
|
12
|
+
* @param path an absolute unix path
|
|
13
|
+
* @returns the directory name of the input path
|
|
14
|
+
*/
|
|
15
|
+
export function dirname(path) {
|
|
16
|
+
const end = path.lastIndexOf('/');
|
|
17
|
+
if (end === -1) {
|
|
18
|
+
throw new Error(`Invalid path`);
|
|
19
|
+
}
|
|
20
|
+
if (end === 0) {
|
|
21
|
+
return '/';
|
|
22
|
+
}
|
|
23
|
+
return path.substring(0, end);
|
|
24
|
+
}
|
|
9
25
|
export class AdbSync extends AutoDisposable {
|
|
10
26
|
adb;
|
|
11
27
|
stream;
|
|
@@ -14,6 +30,16 @@ export class AdbSync extends AutoDisposable {
|
|
|
14
30
|
get supportsStat() {
|
|
15
31
|
return this.adb.features.includes(AdbFeatures.StatV2);
|
|
16
32
|
}
|
|
33
|
+
get supportsList2() {
|
|
34
|
+
return this.adb.features.includes(AdbFeatures.ListV2);
|
|
35
|
+
}
|
|
36
|
+
get fixedPushMkdir() {
|
|
37
|
+
return this.adb.features.includes(AdbFeatures.FixedPushMkdir);
|
|
38
|
+
}
|
|
39
|
+
get needPushMkdirWorkaround() {
|
|
40
|
+
// https://android.googlesource.com/platform/packages/modules/adb/+/91768a57b7138166e0a3d11f79cd55909dda7014/client/file_sync_client.cpp#1361
|
|
41
|
+
return this.adb.features.includes(AdbFeatures.ShellV2) && !this.fixedPushMkdir;
|
|
42
|
+
}
|
|
17
43
|
constructor(adb, socket) {
|
|
18
44
|
super();
|
|
19
45
|
this.adb = adb;
|
|
@@ -53,7 +79,7 @@ export class AdbSync extends AutoDisposable {
|
|
|
53
79
|
async *opendir(path) {
|
|
54
80
|
await this.sendLock.wait();
|
|
55
81
|
try {
|
|
56
|
-
yield* adbSyncOpenDir(this.stream, this.writer, path);
|
|
82
|
+
yield* adbSyncOpenDir(this.stream, this.writer, path, this.supportsList2);
|
|
57
83
|
}
|
|
58
84
|
finally {
|
|
59
85
|
this.sendLock.notify();
|
|
@@ -76,10 +102,7 @@ export class AdbSync extends AutoDisposable {
|
|
|
76
102
|
return new WrapReadableStream({
|
|
77
103
|
start: async () => {
|
|
78
104
|
await this.sendLock.wait();
|
|
79
|
-
return
|
|
80
|
-
readable: adbSyncPull(this.stream, this.writer, filename),
|
|
81
|
-
state: undefined,
|
|
82
|
-
};
|
|
105
|
+
return adbSyncPull(this.stream, this.writer, filename);
|
|
83
106
|
},
|
|
84
107
|
close: async () => {
|
|
85
108
|
this.sendLock.notify();
|
|
@@ -98,10 +121,17 @@ export class AdbSync extends AutoDisposable {
|
|
|
98
121
|
return new WrapWritableStream({
|
|
99
122
|
start: async () => {
|
|
100
123
|
await this.sendLock.wait();
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
124
|
+
if (this.needPushMkdirWorkaround) {
|
|
125
|
+
// It may fail if the path is already existed.
|
|
126
|
+
// Ignore the result.
|
|
127
|
+
// TODO: sync: test this
|
|
128
|
+
await this.adb.subprocess.spawnAndWait([
|
|
129
|
+
'mkdir',
|
|
130
|
+
'-p',
|
|
131
|
+
escapeArg(dirname(filename)),
|
|
132
|
+
]);
|
|
133
|
+
}
|
|
134
|
+
return adbSyncPush(this.stream, this.writer, filename, mode, mtime);
|
|
105
135
|
},
|
|
106
136
|
close: async () => {
|
|
107
137
|
this.sendLock.notify();
|
|
@@ -110,7 +140,7 @@ export class AdbSync extends AutoDisposable {
|
|
|
110
140
|
}
|
|
111
141
|
async dispose() {
|
|
112
142
|
super.dispose();
|
|
113
|
-
this.stream.close();
|
|
143
|
+
await this.stream.close();
|
|
114
144
|
await this.writer.close();
|
|
115
145
|
}
|
|
116
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/sync/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAkB,kBAAkB,EAAE,kBAAkB,EAA+C,MAAM,uBAAuB,CAAC;AAC/J,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/sync/sync.ts"],"names":[],"mappings":"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"}
|
package/esm/crypto.d.ts
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Gets the `BigInt` value at the specified byte offset and length from the start of the view. There is
|
|
3
|
+
* no alignment constraint; multi-byte values may be fetched from any offset.
|
|
4
|
+
*
|
|
5
|
+
* Only supports Big-Endian, because that's what ADB uses.
|
|
6
|
+
* @param byteOffset The place in the buffer at which the value should be retrieved.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getBigUint(dataView: DataView, byteOffset: number, length: number): bigint;
|
|
9
|
+
/**
|
|
10
|
+
* Stores an arbitrary-precision positive `BigInt` value at the specified byte offset from the start of the view.
|
|
11
|
+
* @param byteOffset The place in the buffer at which the value should be set.
|
|
12
|
+
* @param value The value to set.
|
|
13
|
+
* @param littleEndian If `false` or `undefined`, a big-endian value should be written,
|
|
14
|
+
* otherwise a little-endian value should be written.
|
|
15
|
+
*/
|
|
16
|
+
export declare function setBigUint(dataView: DataView, byteOffset: number, value: bigint, littleEndian?: boolean): number;
|
|
4
17
|
export declare function parsePrivateKey(key: Uint8Array): [n: bigint, d: bigint];
|
|
5
18
|
export declare function modInverse(a: number, m: number): number;
|
|
6
19
|
export declare function calculatePublicKeyLength(): number;
|
|
@@ -14,11 +27,11 @@ export declare function calculatePublicKey(privateKey: Uint8Array, output: Uint8
|
|
|
14
27
|
* See https://en.wikipedia.org/wiki/Modular_exponentiation#Implementation_in_Lua
|
|
15
28
|
*/
|
|
16
29
|
export declare function powMod(base: bigint, exponent: bigint, modulus: bigint): bigint;
|
|
17
|
-
export declare const
|
|
18
|
-
export declare const
|
|
19
|
-
export declare const
|
|
20
|
-
export declare const
|
|
21
|
-
export declare const
|
|
22
|
-
export declare const
|
|
23
|
-
export declare function sign(privateKey: Uint8Array, data: Uint8Array):
|
|
30
|
+
export declare const SHA1_DIGEST_LENGTH = 20;
|
|
31
|
+
export declare const ASN1_SEQUENCE = 48;
|
|
32
|
+
export declare const ASN1_OCTET_STRING = 4;
|
|
33
|
+
export declare const ASN1_NULL = 5;
|
|
34
|
+
export declare const ASN1_OID = 6;
|
|
35
|
+
export declare const SHA1_DIGEST_INFO: Uint8Array;
|
|
36
|
+
export declare function sign(privateKey: Uint8Array, data: Uint8Array): Uint8Array;
|
|
24
37
|
//# sourceMappingURL=crypto.d.ts.map
|
package/esm/crypto.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAOA,wBAAgB,
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAazF;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,UAyBvG;AA4BD,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAKvE;AAKD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAsB9C;AAED,wBAAgB,wBAAwB,WAEvC;AAED,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,UAAU,GACvB,UAAU,CAAC;AACd,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU,GACnB,MAAM,CAAC;AAuEV;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAkB9E;AAED,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,eAAO,MAAM,aAAa,KAAO,CAAC;AAClC,eAAO,MAAM,iBAAiB,IAAO,CAAC;AACtC,eAAO,MAAM,SAAS,IAAO,CAAC;AAC9B,eAAO,MAAM,QAAQ,IAAO,CAAC;AAG7B,eAAO,MAAM,gBAAgB,YAO3B,CAAC;AAQH,wBAAgB,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAyCzE"}
|
package/esm/crypto.js
CHANGED
|
@@ -3,37 +3,54 @@ const BigInt0 = BigInt(0);
|
|
|
3
3
|
const BigInt1 = BigInt(1);
|
|
4
4
|
const BigInt2 = BigInt(2);
|
|
5
5
|
const BigInt64 = BigInt(64);
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Gets the `BigInt` value at the specified byte offset and length from the start of the view. There is
|
|
8
|
+
* no alignment constraint; multi-byte values may be fetched from any offset.
|
|
9
|
+
*
|
|
10
|
+
* Only supports Big-Endian, because that's what ADB uses.
|
|
11
|
+
* @param byteOffset The place in the buffer at which the value should be retrieved.
|
|
12
|
+
*/
|
|
13
|
+
export function getBigUint(dataView, byteOffset, length) {
|
|
8
14
|
let result = BigInt0;
|
|
9
15
|
// Currently `length` must be a multiplication of 8
|
|
10
16
|
// Support for arbitrary length can be easily added
|
|
11
|
-
for (let i =
|
|
17
|
+
for (let i = byteOffset; i < byteOffset + length; i += 8) {
|
|
12
18
|
result <<= BigInt64;
|
|
13
|
-
const value = getBigUint64(
|
|
19
|
+
const value = getBigUint64(dataView, i, false);
|
|
14
20
|
result += value;
|
|
15
21
|
}
|
|
16
22
|
return result;
|
|
17
23
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Stores an arbitrary-precision positive `BigInt` value at the specified byte offset from the start of the view.
|
|
26
|
+
* @param byteOffset The place in the buffer at which the value should be set.
|
|
27
|
+
* @param value The value to set.
|
|
28
|
+
* @param littleEndian If `false` or `undefined`, a big-endian value should be written,
|
|
29
|
+
* otherwise a little-endian value should be written.
|
|
30
|
+
*/
|
|
31
|
+
export function setBigUint(dataView, byteOffset, value, littleEndian) {
|
|
32
|
+
const start = byteOffset;
|
|
33
|
+
if (littleEndian) {
|
|
34
|
+
while (value > BigInt0) {
|
|
35
|
+
setBigUint64(dataView, byteOffset, value, true);
|
|
36
|
+
byteOffset += 8;
|
|
37
|
+
value >>= BigInt64;
|
|
38
|
+
}
|
|
28
39
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
else {
|
|
41
|
+
// Because we don't know how long (in bits) the `value` is,
|
|
42
|
+
// Convert it to an array of `uint64` first.
|
|
43
|
+
const uint64Array = [];
|
|
44
|
+
while (value > BigInt0) {
|
|
45
|
+
uint64Array.push(BigInt.asUintN(64, value));
|
|
46
|
+
value >>= BigInt64;
|
|
47
|
+
}
|
|
48
|
+
for (let i = uint64Array.length - 1; i >= 0; i -= 1) {
|
|
49
|
+
setBigUint64(dataView, byteOffset, uint64Array[i], false);
|
|
50
|
+
byteOffset += 8;
|
|
51
|
+
}
|
|
36
52
|
}
|
|
53
|
+
return byteOffset - start;
|
|
37
54
|
}
|
|
38
55
|
// These values are correct only if
|
|
39
56
|
// modulus length is 2048 and
|
|
@@ -58,8 +75,9 @@ const RsaPrivateKeyNLength = 2048 / 8;
|
|
|
58
75
|
const RsaPrivateKeyDOffset = 303;
|
|
59
76
|
const RsaPrivateKeyDLength = 2048 / 8;
|
|
60
77
|
export function parsePrivateKey(key) {
|
|
61
|
-
|
|
62
|
-
|
|
78
|
+
const view = new DataView(key.buffer, key.byteOffset, key.byteLength);
|
|
79
|
+
const n = getBigUint(view, RsaPrivateKeyNOffset, RsaPrivateKeyNLength);
|
|
80
|
+
const d = getBigUint(view, RsaPrivateKeyDOffset, RsaPrivateKeyDLength);
|
|
63
81
|
return [n, d];
|
|
64
82
|
}
|
|
65
83
|
// Taken from https://stackoverflow.com/a/51562038
|
|
@@ -99,7 +117,7 @@ export function calculatePublicKey(privateKey, output) {
|
|
|
99
117
|
// [
|
|
100
118
|
// modulusLengthInWords, // 32-bit integer, a "word" is 32-bit so it must be 2048 / 8 / 4
|
|
101
119
|
// // Actually the comment in Android source code was wrong
|
|
102
|
-
// n0inv, // 32-bit integer, the modular inverse of (
|
|
120
|
+
// n0inv, // 32-bit integer, the modular inverse of (low 32 bits of n)
|
|
103
121
|
// modulus, // n
|
|
104
122
|
// rr, // Montgomery parameter R^2
|
|
105
123
|
// exponent, // 32-bit integer, must be 65537
|
|
@@ -133,12 +151,11 @@ export function calculatePublicKey(privateKey, output) {
|
|
|
133
151
|
outputView.setUint32(outputOffset, n0inv, true);
|
|
134
152
|
outputOffset += 4;
|
|
135
153
|
// Write n
|
|
136
|
-
|
|
154
|
+
setBigUint(outputView, outputOffset, n, true);
|
|
137
155
|
outputOffset += 256;
|
|
138
156
|
// Calculate rr = (2^(rsa_size)) ^ 2 mod n
|
|
139
157
|
let rr = BigInt(2) ** BigInt(4096) % n;
|
|
140
|
-
|
|
141
|
-
outputOffset += 256;
|
|
158
|
+
outputOffset += setBigUint(outputView, outputOffset, rr, true);
|
|
142
159
|
// exponent
|
|
143
160
|
outputView.setUint32(outputOffset, 65537, true);
|
|
144
161
|
outputOffset += 4;
|
|
@@ -171,19 +188,19 @@ export function powMod(base, exponent, modulus) {
|
|
|
171
188
|
}
|
|
172
189
|
return r;
|
|
173
190
|
}
|
|
174
|
-
export const
|
|
175
|
-
export const
|
|
176
|
-
export const
|
|
177
|
-
export const
|
|
178
|
-
export const
|
|
191
|
+
export const SHA1_DIGEST_LENGTH = 20;
|
|
192
|
+
export const ASN1_SEQUENCE = 0x30;
|
|
193
|
+
export const ASN1_OCTET_STRING = 0x04;
|
|
194
|
+
export const ASN1_NULL = 0x05;
|
|
195
|
+
export const ASN1_OID = 0x06;
|
|
179
196
|
// PKCS#1 SHA-1 hash digest info
|
|
180
|
-
export const
|
|
181
|
-
|
|
182
|
-
|
|
197
|
+
export const SHA1_DIGEST_INFO = new Uint8Array([
|
|
198
|
+
ASN1_SEQUENCE, 0x0d + SHA1_DIGEST_LENGTH,
|
|
199
|
+
ASN1_SEQUENCE, 0x09,
|
|
183
200
|
// SHA-1 (1 3 14 3 2 26)
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
201
|
+
ASN1_OID, 0x05, 1 * 40 + 3, 14, 3, 2, 26,
|
|
202
|
+
ASN1_NULL, 0x00,
|
|
203
|
+
ASN1_OCTET_STRING, SHA1_DIGEST_LENGTH
|
|
187
204
|
]);
|
|
188
205
|
// SubtleCrypto.sign() will hash the given data and sign the hash
|
|
189
206
|
// But we don't need the hashing step
|
|
@@ -200,22 +217,23 @@ export function sign(privateKey, data) {
|
|
|
200
217
|
index += 1;
|
|
201
218
|
padded[index] = 1;
|
|
202
219
|
index += 1;
|
|
203
|
-
const fillLength = padded.length -
|
|
220
|
+
const fillLength = padded.length - SHA1_DIGEST_INFO.length - data.length - 1;
|
|
204
221
|
while (index < fillLength) {
|
|
205
222
|
padded[index] = 0xff;
|
|
206
223
|
index += 1;
|
|
207
224
|
}
|
|
208
225
|
padded[index] = 0;
|
|
209
226
|
index += 1;
|
|
210
|
-
padded.set(
|
|
211
|
-
index +=
|
|
227
|
+
padded.set(SHA1_DIGEST_INFO, index);
|
|
228
|
+
index += SHA1_DIGEST_INFO.length;
|
|
212
229
|
padded.set(data, index);
|
|
213
230
|
// Encryption
|
|
214
231
|
// signature = padded ** d % n
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
232
|
+
const view = new DataView(padded.buffer);
|
|
233
|
+
const signature = powMod(getBigUint(view, 0, view.byteLength), d, n);
|
|
234
|
+
// `padded` is not used anymore,
|
|
235
|
+
// re-use the buffer to store the result
|
|
236
|
+
setBigUint(view, 0, signature, false);
|
|
237
|
+
return padded;
|
|
220
238
|
}
|
|
221
239
|
//# sourceMappingURL=crypto.js.map
|
package/esm/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AAEjG,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAE5B,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AAEjG,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAE5B;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,QAAkB,EAAE,UAAkB,EAAE,MAAc;IAC7E,IAAI,MAAM,GAAG,OAAO,CAAC;IAErB,mDAAmD;IACnD,mDAAmD;IAEnD,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,UAAU,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACtD,MAAM,KAAK,QAAQ,CAAC;QACpB,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC;KACnB;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,QAAkB,EAAE,UAAkB,EAAE,KAAa,EAAE,YAAsB;IACpG,MAAM,KAAK,GAAG,UAAU,CAAC;IAEzB,IAAI,YAAY,EAAE;QACd,OAAO,KAAK,GAAG,OAAO,EAAE;YACpB,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAChD,UAAU,IAAI,CAAC,CAAC;YAChB,KAAK,KAAK,QAAQ,CAAC;SACtB;KACJ;SAAM;QACH,2DAA2D;QAC3D,4CAA4C;QAC5C,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,OAAO,KAAK,GAAG,OAAO,EAAE;YACpB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;YAC5C,KAAK,KAAK,QAAQ,CAAC;SACtB;QAED,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;YACjD,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC;YAC3D,UAAU,IAAI,CAAC,CAAC;SACnB;KACJ;IAED,OAAO,UAAU,GAAG,KAAK,CAAC;AAC9B,CAAC;AAED,mCAAmC;AACnC,6BAA6B;AAC7B,+BAA+B;AAC/B,iDAAiD;AAEjD,+BAA+B;AAC/B,oCAAoC;AAEpC,cAAc;AACd,EAAE;AACF,uDAAuD;AACvD,yDAAyD;AACzD,qCAAqC;AACrC,EAAE;AACF,4BAA4B;AAC5B,2CAA2C;AAC3C,6BAA6B;AAC7B,EAAE;AACF,oDAAoD;AACpD,+DAA+D;AAE/D,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC;AACtC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC;AAEtC,MAAM,UAAU,eAAe,CAAC,GAAe;IAC3C,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACtE,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;IACvE,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;IACvE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,kDAAkD;AAClD,uCAAuC;AACvC,+DAA+D;AAC/D,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,CAAS;IAC3C,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACpB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACb,OAAO,GAAG,CAAC,CAAC,gBAAgB;KAC/B;IACD,eAAe;IACf,MAAM,CAAC,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,EAAE;QACN,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACpB;IACD,IAAI,CAAC,KAAK,CAAC,EAAE;QACT,OAAO,GAAG,CAAC,CAAC,0BAA0B;KACzC;IACD,mBAAmB;IACnB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;QACpC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACvD;IACD,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,wBAAwB;IACpC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AASD,MAAM,UAAU,kBAAkB,CAC9B,UAAsB,EACtB,MAAmB;IAEnB,sDAAsD;IACtD,kJAAkJ;IAElJ,gCAAgC;IAChC,EAAE;IACF,IAAI;IACJ,2FAA2F;IAC3F,mFAAmF;IACnF,uFAAuF;IACvF,+BAA+B;IAC/B,sDAAsD;IACtD,2DAA2D;IAC3D,IAAI;IACJ,EAAE;IACF,yBAAyB;IACzB,iJAAiJ;IAEjJ,+BAA+B;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAExC,IAAI,UAAmC,CAAC;IACxC,MAAM,YAAY,GAAG,wBAAwB,EAAE,CAAC;IAChD,IAAI,CAAC,MAAM,EAAE;QACT,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;QACtC,UAAU,GAAG,YAAY,CAAC;KAC7B;SAAM;QACH,IAAI,MAAM,CAAC,UAAU,GAAG,YAAY,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;SACjD;QAED,UAAU,GAAG,QAAQ,CAAC;KACzB;IAED,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACrF,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,uBAAuB;IACvB,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACvD,YAAY,IAAI,CAAC,CAAC;IAElB,oBAAoB;IACpB,qCAAqC;IACrC,mCAAmC;IACnC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9E,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAChD,YAAY,IAAI,CAAC,CAAC;IAElB,UAAU;IACV,UAAU,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,YAAY,IAAI,GAAG,CAAC;IAEpB,0CAA0C;IAC1C,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,YAAY,IAAI,UAAU,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAE/D,WAAW;IACX,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAChD,YAAY,IAAI,CAAC,CAAC;IAElB,IAAI,UAAU,KAAK,YAAY,EAAE;QAC7B,OAAO,MAAM,CAAC;KACjB;SAAM;QACH,OAAO,YAAY,CAAC;KACvB;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,QAAgB,EAAE,OAAe;IAClE,IAAI,OAAO,KAAK,OAAO,EAAE;QACrB,OAAO,OAAO,CAAC;KAClB;IAED,IAAI,CAAC,GAAG,OAAO,CAAC;IAChB,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;IAEtB,OAAO,QAAQ,GAAG,OAAO,EAAE;QACvB,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,OAAO,EAAE;YACzC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC;SAC1B;QAED,QAAQ,KAAK,OAAO,CAAC;QACrB,IAAI,GAAG,IAAI,IAAI,OAAO,GAAG,OAAO,CAAC;KACpC;IAED,OAAO,CAAC,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AACtC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAC9B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAE7B,gCAAgC;AAChC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,UAAU,CAAC;IAC3C,aAAa,EAAE,IAAI,GAAG,kBAAkB;IACxC,aAAa,EAAE,IAAI;IACnB,wBAAwB;IACxB,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IACxC,SAAS,EAAE,IAAI;IACf,iBAAiB,EAAE,kBAAkB;CACxC,CAAC,CAAC;AAEH,iEAAiE;AACjE,qCAAqC;AACrC,oDAAoD;AACpD,+CAA+C;AAC/C,+EAA+E;AAC/E,oDAAoD;AACpD,MAAM,UAAU,IAAI,CAAC,UAAsB,EAAE,IAAgB;IACzD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAE3C,iBAAiB;IACjB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,CAAC;IAEX,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,CAAC;IAEX,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7E,OAAO,KAAK,GAAG,UAAU,EAAE;QACvB,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACrB,KAAK,IAAI,CAAC,CAAC;KACd;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,CAAC;IAEX,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACpC,KAAK,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAExB,aAAa;IACb,8BAA8B;IAC9B,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,CACpB,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,EACpC,CAAC,EACD,CAAC,CACJ,CAAC;IAEF,gCAAgC;IAChC,wCAAwC;IACxC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAEtC,OAAO,MAAM,CAAC;AAClB,CAAC"}
|