@yume-chan/adb 0.0.19 → 0.0.20

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