@yume-chan/adb 0.0.23 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/CHANGELOG.md +51 -2
  2. package/LICENSE +1 -1
  3. package/README.md +4 -1
  4. package/esm/adb.d.ts +15 -9
  5. package/esm/adb.d.ts.map +1 -1
  6. package/esm/adb.js +5 -2
  7. package/esm/adb.js.map +1 -1
  8. package/esm/banner.d.ts +7 -6
  9. package/esm/banner.d.ts.map +1 -1
  10. package/esm/banner.js +6 -7
  11. package/esm/banner.js.map +1 -1
  12. package/esm/commands/framebuffer.d.ts +63 -34
  13. package/esm/commands/framebuffer.d.ts.map +1 -1
  14. package/esm/commands/framebuffer.js +35 -33
  15. package/esm/commands/framebuffer.js.map +1 -1
  16. package/esm/commands/power.d.ts.map +1 -1
  17. package/esm/commands/power.js +6 -5
  18. package/esm/commands/power.js.map +1 -1
  19. package/esm/commands/reverse.d.ts +12 -12
  20. package/esm/commands/reverse.d.ts.map +1 -1
  21. package/esm/commands/reverse.js +60 -39
  22. package/esm/commands/reverse.js.map +1 -1
  23. package/esm/commands/subprocess/command.js +3 -3
  24. package/esm/commands/subprocess/command.js.map +1 -1
  25. package/esm/commands/subprocess/protocols/none.d.ts +2 -2
  26. package/esm/commands/subprocess/protocols/none.d.ts.map +1 -1
  27. package/esm/commands/subprocess/protocols/none.js +3 -5
  28. package/esm/commands/subprocess/protocols/none.js.map +1 -1
  29. package/esm/commands/subprocess/protocols/shell.d.ts +22 -14
  30. package/esm/commands/subprocess/protocols/shell.d.ts.map +1 -1
  31. package/esm/commands/subprocess/protocols/shell.js +21 -27
  32. package/esm/commands/subprocess/protocols/shell.js.map +1 -1
  33. package/esm/commands/subprocess/protocols/types.d.ts +8 -8
  34. package/esm/commands/subprocess/protocols/types.d.ts.map +1 -1
  35. package/esm/commands/sync/list.d.ts +49 -30
  36. package/esm/commands/sync/list.d.ts.map +1 -1
  37. package/esm/commands/sync/list.js +9 -11
  38. package/esm/commands/sync/list.js.map +1 -1
  39. package/esm/commands/sync/pull.d.ts +7 -9
  40. package/esm/commands/sync/pull.d.ts.map +1 -1
  41. package/esm/commands/sync/pull.js +4 -6
  42. package/esm/commands/sync/pull.js.map +1 -1
  43. package/esm/commands/sync/push.d.ts +25 -22
  44. package/esm/commands/sync/push.d.ts.map +1 -1
  45. package/esm/commands/sync/push.js +14 -21
  46. package/esm/commands/sync/push.js.map +1 -1
  47. package/esm/commands/sync/request.d.ts +20 -23
  48. package/esm/commands/sync/request.d.ts.map +1 -1
  49. package/esm/commands/sync/request.js +26 -35
  50. package/esm/commands/sync/request.js.map +1 -1
  51. package/esm/commands/sync/response.d.ts +25 -19
  52. package/esm/commands/sync/response.d.ts.map +1 -1
  53. package/esm/commands/sync/response.js +49 -26
  54. package/esm/commands/sync/response.js.map +1 -1
  55. package/esm/commands/sync/socket.d.ts +3 -3
  56. package/esm/commands/sync/socket.d.ts.map +1 -1
  57. package/esm/commands/sync/socket.js +10 -5
  58. package/esm/commands/sync/socket.js.map +1 -1
  59. package/esm/commands/sync/stat.d.ts +75 -54
  60. package/esm/commands/sync/stat.d.ts.map +1 -1
  61. package/esm/commands/sync/stat.js +73 -69
  62. package/esm/commands/sync/stat.js.map +1 -1
  63. package/esm/commands/sync/sync.d.ts +18 -17
  64. package/esm/commands/sync/sync.d.ts.map +1 -1
  65. package/esm/commands/sync/sync.js +8 -8
  66. package/esm/commands/sync/sync.js.map +1 -1
  67. package/esm/commands/tcpip.d.ts +0 -1
  68. package/esm/commands/tcpip.d.ts.map +1 -1
  69. package/esm/commands/tcpip.js +9 -9
  70. package/esm/commands/tcpip.js.map +1 -1
  71. package/esm/daemon/auth.d.ts +8 -7
  72. package/esm/daemon/auth.d.ts.map +1 -1
  73. package/esm/daemon/auth.js +8 -9
  74. package/esm/daemon/auth.js.map +1 -1
  75. package/esm/daemon/crypto.d.ts +4 -3
  76. package/esm/daemon/crypto.d.ts.map +1 -1
  77. package/esm/daemon/crypto.js +57 -49
  78. package/esm/daemon/crypto.js.map +1 -1
  79. package/esm/daemon/device.d.ts +2 -2
  80. package/esm/daemon/device.d.ts.map +1 -1
  81. package/esm/daemon/dispatcher.d.ts +35 -10
  82. package/esm/daemon/dispatcher.d.ts.map +1 -1
  83. package/esm/daemon/dispatcher.js +46 -33
  84. package/esm/daemon/dispatcher.js.map +1 -1
  85. package/esm/daemon/packet.d.ts +48 -32
  86. package/esm/daemon/packet.d.ts.map +1 -1
  87. package/esm/daemon/packet.js +36 -32
  88. package/esm/daemon/packet.js.map +1 -1
  89. package/esm/daemon/socket.d.ts +11 -11
  90. package/esm/daemon/socket.d.ts.map +1 -1
  91. package/esm/daemon/socket.js +19 -40
  92. package/esm/daemon/socket.js.map +1 -1
  93. package/esm/daemon/transport.d.ts +60 -20
  94. package/esm/daemon/transport.d.ts.map +1 -1
  95. package/esm/daemon/transport.js +12 -15
  96. package/esm/daemon/transport.js.map +1 -1
  97. package/esm/device-observer.d.ts +10 -0
  98. package/esm/device-observer.d.ts.map +1 -0
  99. package/esm/device-observer.js +2 -0
  100. package/esm/device-observer.js.map +1 -0
  101. package/esm/features.d.ts +12 -11
  102. package/esm/features.d.ts.map +1 -1
  103. package/esm/features.js +11 -12
  104. package/esm/features.js.map +1 -1
  105. package/esm/index.d.ts +1 -0
  106. package/esm/index.d.ts.map +1 -1
  107. package/esm/index.js +1 -0
  108. package/esm/index.js.map +1 -1
  109. package/esm/server/client.d.ts +140 -50
  110. package/esm/server/client.d.ts.map +1 -1
  111. package/esm/server/client.js +396 -180
  112. package/esm/server/client.js.map +1 -1
  113. package/esm/server/transport.d.ts +2 -2
  114. package/esm/server/transport.d.ts.map +1 -1
  115. package/esm/server/transport.js +4 -6
  116. package/esm/server/transport.js.map +1 -1
  117. package/esm/utils/base64.d.ts.map +1 -1
  118. package/esm/utils/base64.js +52 -38
  119. package/esm/utils/base64.js.map +1 -1
  120. package/esm/utils/hex.d.ts +1 -1
  121. package/esm/utils/hex.d.ts.map +1 -1
  122. package/esm/utils/hex.js +12 -14
  123. package/esm/utils/hex.js.map +1 -1
  124. package/esm/utils/index.d.ts +1 -1
  125. package/esm/utils/index.d.ts.map +1 -1
  126. package/esm/utils/index.js +1 -1
  127. package/esm/utils/index.js.map +1 -1
  128. package/esm/utils/no-op.d.ts.map +1 -1
  129. package/esm/utils/no-op.js +1 -0
  130. package/esm/utils/no-op.js.map +1 -1
  131. package/esm/utils/sequence-equal.d.ts +2 -0
  132. package/esm/utils/sequence-equal.d.ts.map +1 -0
  133. package/esm/utils/sequence-equal.js +12 -0
  134. package/esm/utils/sequence-equal.js.map +1 -0
  135. package/package.json +14 -19
  136. package/src/adb.ts +20 -11
  137. package/src/banner.ts +8 -6
  138. package/src/commands/framebuffer.ts +44 -35
  139. package/src/commands/power.ts +7 -5
  140. package/src/commands/reverse.ts +78 -47
  141. package/src/commands/subprocess/command.ts +3 -3
  142. package/src/commands/subprocess/protocols/none.ts +5 -7
  143. package/src/commands/subprocess/protocols/shell.ts +33 -35
  144. package/src/commands/subprocess/protocols/types.ts +8 -8
  145. package/src/commands/sync/list.ts +20 -15
  146. package/src/commands/sync/pull.ts +9 -8
  147. package/src/commands/sync/push.ts +25 -24
  148. package/src/commands/sync/request.ts +37 -38
  149. package/src/commands/sync/response.ts +63 -37
  150. package/src/commands/sync/socket.ts +13 -8
  151. package/src/commands/sync/stat.ts +93 -73
  152. package/src/commands/sync/sync.ts +12 -11
  153. package/src/commands/tcpip.ts +9 -9
  154. package/src/daemon/auth.ts +12 -10
  155. package/src/daemon/crypto.ts +66 -55
  156. package/src/daemon/device.ts +2 -2
  157. package/src/daemon/dispatcher.ts +106 -44
  158. package/src/daemon/packet.ts +57 -38
  159. package/src/daemon/socket.ts +30 -50
  160. package/src/daemon/transport.ts +98 -50
  161. package/src/device-observer.ts +10 -0
  162. package/src/features.ts +13 -11
  163. package/src/index.ts +1 -0
  164. package/src/server/client.ts +505 -268
  165. package/src/server/transport.ts +7 -9
  166. package/src/utils/base64.ts +59 -40
  167. package/src/utils/hex.ts +16 -14
  168. package/src/utils/index.ts +1 -1
  169. package/src/utils/no-op.ts +1 -0
  170. package/src/utils/sequence-equal.ts +13 -0
  171. package/tsconfig.build.json +1 -12
  172. package/tsconfig.build.tsbuildinfo +1 -1
  173. package/CHANGELOG.json +0 -265
  174. package/esm/utils/conditional-variable.d.ts +0 -8
  175. package/esm/utils/conditional-variable.d.ts.map +0 -1
  176. package/esm/utils/conditional-variable.js +0 -34
  177. package/esm/utils/conditional-variable.js.map +0 -1
  178. package/src/utils/conditional-variable.ts +0 -45
package/CHANGELOG.md CHANGED
@@ -1,8 +1,44 @@
1
1
  # Change Log - @yume-chan/adb
2
2
 
3
- This log was last generated on Thu, 21 Mar 2024 03:15:10 GMT and should not be manually modified.
3
+ ## 1.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 53688d3: Use PNPM workspace and Changesets to manage the monorepo.
8
+
9
+ Because Changesets doesn't support alpha versions (`0.x.x`), this version is `1.0.0`. Future versions will follow SemVer rules, for example, breaking API changes will introduce a new major version.
10
+
11
+ - db8466f: Rewrite the struct API completely
12
+ - db8466f: Add common interface for device observers
13
+ - db8466f: Improve tree-shaking by removing TypeScript enum and namespace
14
+ - Updated dependencies [53688d3]
15
+ - Updated dependencies [db8466f]
16
+ - Updated dependencies [ea5002b]
17
+ - Updated dependencies [db8466f]
18
+ - @yume-chan/no-data-view@1.0.1
19
+ - @yume-chan/stream-extra@1.0.1
20
+ - @yume-chan/struct@1.0.1
21
+ - @yume-chan/event@1.0.1
22
+
23
+ This log was last generated on Tue, 18 Jun 2024 02:49:43 GMT and should not be manually modified.
24
+
25
+ ## 0.0.24
26
+
27
+ Tue, 18 Jun 2024 02:49:43 GMT
28
+
29
+ ### Updates
30
+
31
+ - Allow streams to accept both `Uint8Array` and `Consumable<Uint8Array>` as inputs
32
+ - Rename `AdbDaemonTransport`'s `debugSlowRead` option to `readTimeLimit`. Allow users to specify a custom timeout for read operations. It's still disabled by default.
33
+ - Include unauthorized devices in `AdbServerClient#getDevices()` and `AdbServerClient#trackDevices()`. You need to filter them out if you don't need them.
34
+ - Add more methods to `AdbServerClient`
35
+ - Group `AdbServerClient`-relating types into namespace. In future, more types will be moved to namespaces.
36
+ - Fix `Adb#reverse#list()` returning an extra empty object.
37
+ - Fix reverse tunnel handler not invoked.
38
+ - Fix too many event listener warning in Node.js.
4
39
 
5
40
  ## 0.0.23
41
+
6
42
  Thu, 21 Mar 2024 03:15:10 GMT
7
43
 
8
44
  ### Updates
@@ -12,6 +48,7 @@ Thu, 21 Mar 2024 03:15:10 GMT
12
48
  - Add support for delayed ack on Android 14
13
49
 
14
50
  ## 0.0.22
51
+
15
52
  Wed, 13 Dec 2023 05:57:27 GMT
16
53
 
17
54
  ### Updates
@@ -22,6 +59,7 @@ Wed, 13 Dec 2023 05:57:27 GMT
22
59
  - Fix TypeScript build when using `AdbSubprocessNoneProtocol` without installing `web-streams-polyfill` package
23
60
 
24
61
  ## 0.0.21
62
+
25
63
  Fri, 25 Aug 2023 14:05:18 GMT
26
64
 
27
65
  ### Updates
@@ -33,6 +71,7 @@ Fri, 25 Aug 2023 14:05:18 GMT
33
71
  - Add `recursive` and `force` options to `rm` method, allow deleting folders
34
72
 
35
73
  ## 0.0.20
74
+
36
75
  Mon, 05 Jun 2023 02:51:41 GMT
37
76
 
38
77
  ### Updates
@@ -47,6 +86,7 @@ Mon, 05 Jun 2023 02:51:41 GMT
47
86
  - Group `product`, `model`, `device` and `features` fields on `Adb` class to the `banner` field with type of `AdbBanner`.
48
87
 
49
88
  ## 0.0.19
89
+
50
90
  Sun, 09 Apr 2023 05:55:33 GMT
51
91
 
52
92
  ### Updates
@@ -57,11 +97,13 @@ Sun, 09 Apr 2023 05:55:33 GMT
57
97
  - Add `AdbReverseError` and `AdbReverseNotSupportedError` for better error handling in reverse tunnel command.
58
98
 
59
99
  ## 0.0.18
100
+
60
101
  Wed, 25 Jan 2023 21:33:49 GMT
61
102
 
62
103
  _Version update only_
63
104
 
64
105
  ## 0.0.17
106
+
65
107
  Tue, 18 Oct 2022 09:32:30 GMT
66
108
 
67
109
  ### Updates
@@ -69,6 +111,7 @@ Tue, 18 Oct 2022 09:32:30 GMT
69
111
  - Move stream utils to separate package
70
112
 
71
113
  ## 0.0.16
114
+
72
115
  Sat, 28 May 2022 03:56:37 GMT
73
116
 
74
117
  ### Updates
@@ -79,6 +122,7 @@ Sat, 28 May 2022 03:56:37 GMT
79
122
  - Improve performance of `BufferedStream` by up to 100%.
80
123
 
81
124
  ## 0.0.15
125
+
82
126
  Mon, 02 May 2022 04:18:01 GMT
83
127
 
84
128
  ### Updates
@@ -89,6 +133,7 @@ Mon, 02 May 2022 04:18:01 GMT
89
133
  - Fix an issue where `reverse` commands doesn't parse error message correctly
90
134
 
91
135
  ## 0.0.14
136
+
92
137
  Sat, 30 Apr 2022 14:05:48 GMT
93
138
 
94
139
  ### Updates
@@ -97,6 +142,7 @@ Sat, 30 Apr 2022 14:05:48 GMT
97
142
  - Add an `Adb#close()` method to gracefully shutdown a connection
98
143
 
99
144
  ## 0.0.13
145
+
100
146
  Thu, 28 Apr 2022 01:23:53 GMT
101
147
 
102
148
  ### Updates
@@ -106,11 +152,13 @@ Thu, 28 Apr 2022 01:23:53 GMT
106
152
  - Add workaround for the push_mkdir issue in Android 9
107
153
 
108
154
  ## 0.0.12
155
+
109
156
  Sun, 03 Apr 2022 11:18:47 GMT
110
157
 
111
158
  _Version update only_
112
159
 
113
160
  ## 0.0.11
161
+
114
162
  Sun, 03 Apr 2022 10:54:15 GMT
115
163
 
116
164
  ### Patches
@@ -125,6 +173,7 @@ Sun, 03 Apr 2022 10:54:15 GMT
125
173
  - Update license year
126
174
 
127
175
  ## 0.0.10
176
+
128
177
  Sun, 09 Jan 2022 15:52:20 GMT
129
178
 
130
179
  ### Updates
@@ -132,7 +181,7 @@ Sun, 09 Jan 2022 15:52:20 GMT
132
181
  - Remove `encodeUtf8()` and `decodeUtf8()` from `AdbBackend`
133
182
 
134
183
  ## 0.0.9
184
+
135
185
  Sun, 09 Jan 2022 15:50:20 GMT
136
186
 
137
187
  _Initial release_
138
-
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2020-2023 Simon Chan
3
+ Copyright (c) 2020-2024 Simon Chan
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -15,6 +15,9 @@
15
15
  <a href="https://github.com/yume-chan/ya-webadb/releases">
16
16
  <img alt="GitHub release" src="https://img.shields.io/github/v/release/yume-chan/ya-webadb?logo=github">
17
17
  </a>
18
+ <a href="https://bundlephobia.com/package/@yume-chan/adb">
19
+ <img alt="Package Size" src="https://img.shields.io/bundlephobia/minzip/%40yume-chan%2Fadb">
20
+ </a>
18
21
  <a href="https://www.npmjs.com/package/@yume-chan/adb">
19
22
  <img alt="npm" src="https://img.shields.io/npm/dm/%40yume-chan/adb?logo=npm">
20
23
  </a>
@@ -27,7 +30,7 @@ This package is part of [Tango ADB](https://github.com/yume-chan/ya-webadb). Gen
27
30
 
28
31
  ## Documentation
29
32
 
30
- Check the latest documentation at https://tango-adb.github.io/docs/
33
+ Check the latest documentation at https://docs.tangoapp.dev/
31
34
 
32
35
  ## Sponsors
33
36
 
package/esm/adb.d.ts CHANGED
@@ -1,27 +1,30 @@
1
- import type { Consumable, ReadableWritablePair } from "@yume-chan/stream-extra";
2
- import type { ValueOrPromise } from "@yume-chan/struct";
1
+ import type { MaybePromiseLike } from "@yume-chan/async";
2
+ import type { MaybeConsumable, ReadableWritablePair } from "@yume-chan/stream-extra";
3
3
  import type { AdbBanner } from "./banner.js";
4
4
  import type { AdbFrameBuffer } from "./commands/index.js";
5
5
  import { AdbPower, AdbReverseCommand, AdbSubprocess, AdbSync, AdbTcpIpCommand } from "./commands/index.js";
6
6
  import type { AdbFeature } from "./features.js";
7
7
  export interface Closeable {
8
- close(): ValueOrPromise<void>;
8
+ close(): MaybePromiseLike<void>;
9
9
  }
10
- export interface AdbSocket extends ReadableWritablePair<Uint8Array, Consumable<Uint8Array>>, Closeable {
10
+ /**
11
+ * Represents an ADB socket.
12
+ */
13
+ export interface AdbSocket extends ReadableWritablePair<Uint8Array, MaybeConsumable<Uint8Array>>, Closeable {
11
14
  get service(): string;
12
15
  get closed(): Promise<void>;
13
16
  }
14
- export type AdbIncomingSocketHandler = (socket: AdbSocket) => ValueOrPromise<void>;
17
+ export type AdbIncomingSocketHandler = (socket: AdbSocket) => MaybePromiseLike<void>;
15
18
  export interface AdbTransport extends Closeable {
16
19
  readonly serial: string;
17
20
  readonly maxPayloadSize: number;
18
21
  readonly banner: AdbBanner;
19
22
  readonly disconnected: Promise<void>;
20
23
  readonly clientFeatures: readonly AdbFeature[];
21
- connect(service: string): ValueOrPromise<AdbSocket>;
22
- addReverseTunnel(handler: AdbIncomingSocketHandler, address?: string): ValueOrPromise<string>;
23
- removeReverseTunnel(address: string): ValueOrPromise<void>;
24
- clearReverseTunnels(): ValueOrPromise<void>;
24
+ connect(service: string): MaybePromiseLike<AdbSocket>;
25
+ addReverseTunnel(handler: AdbIncomingSocketHandler, address?: string): MaybePromiseLike<string>;
26
+ removeReverseTunnel(address: string): MaybePromiseLike<void>;
27
+ clearReverseTunnels(): MaybePromiseLike<void>;
25
28
  }
26
29
  export declare class Adb implements Closeable {
27
30
  readonly transport: AdbTransport;
@@ -37,6 +40,9 @@ export declare class Adb implements Closeable {
37
40
  readonly tcpip: AdbTcpIpCommand;
38
41
  constructor(transport: AdbTransport);
39
42
  canUseFeature(feature: AdbFeature): boolean;
43
+ /**
44
+ * Creates a new ADB Socket to the specified service or socket address.
45
+ */
40
46
  createSocket(service: string): Promise<AdbSocket>;
41
47
  createSocketAndWait(service: string): Promise<string>;
42
48
  getProp(key: string): Promise<string>;
package/esm/adb.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"adb.d.ts","sourceRoot":"","sources":["../src/adb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACH,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,eAAe,EAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,SAAS;IACtB,KAAK,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,SACb,SAAQ,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,EAC5D,SAAS;IACb,IAAI,OAAO,IAAI,MAAM,CAAC;IAEtB,IAAI,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,wBAAwB,GAAG,CACnC,MAAM,EAAE,SAAS,KAChB,cAAc,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAE3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC,QAAQ,CAAC,cAAc,EAAE,SAAS,UAAU,EAAE,CAAC;IAE/C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAEpD,gBAAgB,CACZ,OAAO,EAAE,wBAAwB,EACjC,OAAO,CAAC,EAAE,MAAM,GACjB,cAAc,CAAC,MAAM,CAAC,CAAC;IAE1B,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAE3D,mBAAmB,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED,qBAAa,GAAI,YAAW,SAAS;IACjC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IAEjC,IAAI,MAAM,WAET;IAED,IAAI,cAAc,WAEjB;IAED,IAAI,MAAM,cAET;IAED,IAAI,YAAY,kBAEf;IAED,IAAW,cAAc,0BAExB;IAED,IAAW,cAAc,iBAExB;IAED,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;gBAEpB,SAAS,EAAE,YAAY;IASnC,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO;IAOrC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIjD,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOrD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQrC,EAAE,CACJ,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAC5B,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GACnD,OAAO,CAAC,MAAM,CAAC;IAqBZ,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAKxB,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC;IAItC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
1
+ {"version":3,"file":"adb.d.ts","sourceRoot":"","sources":["../src/adb.ts"],"names":[],"mappings":"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"}
package/esm/adb.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ConcatStringStream, DecodeUtf8Stream } from "@yume-chan/stream-extra";
1
+ import { ConcatStringStream, TextDecoderStream } from "@yume-chan/stream-extra";
2
2
  import { AdbPower, AdbReverseCommand, AdbSubprocess, AdbSync, AdbTcpIpCommand, escapeArg, framebuffer, } from "./commands/index.js";
3
3
  export class Adb {
4
4
  transport;
@@ -35,13 +35,16 @@ export class Adb {
35
35
  return (this.clientFeatures.includes(feature) &&
36
36
  this.deviceFeatures.includes(feature));
37
37
  }
38
+ /**
39
+ * Creates a new ADB Socket to the specified service or socket address.
40
+ */
38
41
  async createSocket(service) {
39
42
  return this.transport.connect(service);
40
43
  }
41
44
  async createSocketAndWait(service) {
42
45
  const socket = await this.createSocket(service);
43
46
  return await socket.readable
44
- .pipeThrough(new DecodeUtf8Stream())
47
+ .pipeThrough(new TextDecoderStream())
45
48
  .pipeThrough(new ConcatStringStream());
46
49
  }
47
50
  async getProp(key) {
package/esm/adb.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"adb.js","sourceRoot":"","sources":["../src/adb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adb.js","sourceRoot":"","sources":["../src/adb.ts"],"names":[],"mappings":"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"}
package/esm/banner.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import type { AdbFeature } from "./features.js";
2
- export declare enum AdbBannerKey {
3
- Product = "ro.product.name",
4
- Model = "ro.product.model",
5
- Device = "ro.product.device",
6
- Features = "features"
7
- }
2
+ export declare const AdbBannerKey: {
3
+ readonly Product: "ro.product.name";
4
+ readonly Model: "ro.product.model";
5
+ readonly Device: "ro.product.device";
6
+ readonly Features: "features";
7
+ };
8
+ export type AdbBannerKey = (typeof AdbBannerKey)[keyof typeof AdbBannerKey];
8
9
  export declare class AdbBanner {
9
10
  #private;
10
11
  static parse(banner: string): AdbBanner;
@@ -1 +1 @@
1
- {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,oBAAY,YAAY;IACpB,OAAO,oBAAoB;IAC3B,KAAK,qBAAqB;IAC1B,MAAM,sBAAsB;IAC5B,QAAQ,aAAa;CACxB;AAED,qBAAa,SAAS;;IAClB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM;IA0C3B,IAAI,OAAO,uBAEV;IAGD,IAAI,KAAK,uBAER;IAGD,IAAI,MAAM,uBAET;IAGD,IAAI,QAAQ,iBAEX;gBAGG,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,UAAU,EAAE;CAO7B"}
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE5E,qBAAa,SAAS;;IAClB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM;IA0C3B,IAAI,OAAO,uBAEV;IAGD,IAAI,KAAK,uBAER;IAGD,IAAI,MAAM,uBAET;IAGD,IAAI,QAAQ,iBAEX;gBAGG,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,UAAU,EAAE;CAO7B"}
package/esm/banner.js CHANGED
@@ -1,10 +1,9 @@
1
- export var AdbBannerKey;
2
- (function (AdbBannerKey) {
3
- AdbBannerKey["Product"] = "ro.product.name";
4
- AdbBannerKey["Model"] = "ro.product.model";
5
- AdbBannerKey["Device"] = "ro.product.device";
6
- AdbBannerKey["Features"] = "features";
7
- })(AdbBannerKey || (AdbBannerKey = {}));
1
+ export const AdbBannerKey = {
2
+ Product: "ro.product.name",
3
+ Model: "ro.product.model",
4
+ Device: "ro.product.device",
5
+ Features: "features",
6
+ };
8
7
  export class AdbBanner {
9
8
  static parse(banner) {
10
9
  let product;
package/esm/banner.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,2CAA2B,CAAA;IAC3B,0CAA0B,CAAA;IAC1B,4CAA4B,CAAA;IAC5B,qCAAqB,CAAA;AACzB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED,MAAM,OAAO,SAAS;IAClB,MAAM,CAAC,KAAK,CAAC,MAAc;QACvB,IAAI,OAA2B,CAAC;QAChC,IAAI,KAAyB,CAAC;QAC9B,IAAI,MAA0B,CAAC;QAC/B,IAAI,QAAQ,GAAiB,EAAE,CAAC;QAEhC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClC,qBAAqB;gBACrB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,SAAS;gBACb,CAAC;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,SAAS;gBACb,CAAC;gBAED,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC;gBAC9B,QAAQ,GAAG,EAAE,CAAC;oBACV,KAAK,YAAY,CAAC,OAAO;wBACrB,OAAO,GAAG,KAAK,CAAC;wBAChB,MAAM;oBACV,KAAK,YAAY,CAAC,KAAK;wBACnB,KAAK,GAAG,KAAK,CAAC;wBACd,MAAM;oBACV,KAAK,YAAY,CAAC,MAAM;wBACpB,MAAM,GAAG,KAAK,CAAC;wBACf,MAAM;oBACV,KAAK,YAAY,CAAC,QAAQ;wBACtB,QAAQ,GAAG,KAAM,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;wBAC7C,MAAM;gBACd,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,QAAQ,CAAqB;IAC7B,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,MAAM,CAAqB;IAC3B,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,OAAO,CAAqB;IAC5B,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,SAAS,GAAiB,EAAE,CAAC;IAC7B,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,YACI,OAA2B,EAC3B,KAAyB,EACzB,MAA0B,EAC1B,QAAsB;QAEtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;CACJ"}
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,OAAO,EAAE,iBAAiB;IAC1B,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,mBAAmB;IAC3B,QAAQ,EAAE,UAAU;CACd,CAAC;AAIX,MAAM,OAAO,SAAS;IAClB,MAAM,CAAC,KAAK,CAAC,MAAc;QACvB,IAAI,OAA2B,CAAC;QAChC,IAAI,KAAyB,CAAC;QAC9B,IAAI,MAA0B,CAAC;QAC/B,IAAI,QAAQ,GAAiB,EAAE,CAAC;QAEhC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClC,qBAAqB;gBACrB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,SAAS;gBACb,CAAC;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,SAAS;gBACb,CAAC;gBAED,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC;gBAC9B,QAAQ,GAAG,EAAE,CAAC;oBACV,KAAK,YAAY,CAAC,OAAO;wBACrB,OAAO,GAAG,KAAK,CAAC;wBAChB,MAAM;oBACV,KAAK,YAAY,CAAC,KAAK;wBACnB,KAAK,GAAG,KAAK,CAAC;wBACd,MAAM;oBACV,KAAK,YAAY,CAAC,MAAM;wBACpB,MAAM,GAAG,KAAK,CAAC;wBACf,MAAM;oBACV,KAAK,YAAY,CAAC,QAAQ;wBACtB,QAAQ,GAAG,KAAM,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;wBAC7C,MAAM;gBACd,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,QAAQ,CAAqB;IAC7B,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,MAAM,CAAqB;IAC3B,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,OAAO,CAAqB;IAC5B,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,SAAS,GAAiB,EAAE,CAAC;IAC7B,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,YACI,OAA2B,EAC3B,KAAyB,EACzB,MAA0B,EAC1B,QAAsB;QAEtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;CACJ"}
@@ -1,38 +1,67 @@
1
- import Struct from "@yume-chan/struct";
1
+ import type { StructValue } from "@yume-chan/struct";
2
2
  import type { Adb } from "../adb.js";
3
- export declare const AdbFrameBufferV1: Struct<{
4
- bpp: number;
5
- size: number;
6
- width: number;
7
- height: number;
8
- red_offset: number;
9
- red_length: number;
10
- blue_offset: number;
11
- blue_length: number;
12
- green_offset: number;
13
- green_length: number;
14
- alpha_offset: number;
15
- alpha_length: number;
16
- data: Uint8Array;
17
- }, "size", Record<never, never>, undefined>;
18
- export type AdbFrameBufferV1 = (typeof AdbFrameBufferV1)["TDeserializeResult"];
19
- export declare const AdbFrameBufferV2: Struct<{
20
- bpp: number;
21
- colorSpace: number;
22
- size: number;
23
- width: number;
24
- height: number;
25
- red_offset: number;
26
- red_length: number;
27
- blue_offset: number;
28
- blue_length: number;
29
- green_offset: number;
30
- green_length: number;
31
- alpha_offset: number;
32
- alpha_length: number;
33
- data: Uint8Array;
34
- }, "size", Record<never, never>, undefined>;
35
- export type AdbFrameBufferV2 = (typeof AdbFrameBufferV2)["TDeserializeResult"];
3
+ export declare const AdbFrameBufferV1: import("@yume-chan/struct").Struct<{
4
+ bpp: import("@yume-chan/struct").NumberField<number>;
5
+ size: import("@yume-chan/struct").NumberField<number>;
6
+ width: import("@yume-chan/struct").NumberField<number>;
7
+ height: import("@yume-chan/struct").NumberField<number>;
8
+ red_offset: import("@yume-chan/struct").NumberField<number>;
9
+ red_length: import("@yume-chan/struct").NumberField<number>;
10
+ blue_offset: import("@yume-chan/struct").NumberField<number>;
11
+ blue_length: import("@yume-chan/struct").NumberField<number>;
12
+ green_offset: import("@yume-chan/struct").NumberField<number>;
13
+ green_length: import("@yume-chan/struct").NumberField<number>;
14
+ alpha_offset: import("@yume-chan/struct").NumberField<number>;
15
+ alpha_length: import("@yume-chan/struct").NumberField<number>;
16
+ data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, "size", Record<"size", number>>;
17
+ }, {}, import("@yume-chan/struct").FieldsType<{
18
+ bpp: import("@yume-chan/struct").NumberField<number>;
19
+ size: import("@yume-chan/struct").NumberField<number>;
20
+ width: import("@yume-chan/struct").NumberField<number>;
21
+ height: import("@yume-chan/struct").NumberField<number>;
22
+ red_offset: import("@yume-chan/struct").NumberField<number>;
23
+ red_length: import("@yume-chan/struct").NumberField<number>;
24
+ blue_offset: import("@yume-chan/struct").NumberField<number>;
25
+ blue_length: import("@yume-chan/struct").NumberField<number>;
26
+ green_offset: import("@yume-chan/struct").NumberField<number>;
27
+ green_length: import("@yume-chan/struct").NumberField<number>;
28
+ alpha_offset: import("@yume-chan/struct").NumberField<number>;
29
+ alpha_length: import("@yume-chan/struct").NumberField<number>;
30
+ data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, "size", Record<"size", number>>;
31
+ }>>;
32
+ export type AdbFrameBufferV1 = StructValue<typeof AdbFrameBufferV1>;
33
+ export declare const AdbFrameBufferV2: import("@yume-chan/struct").Struct<{
34
+ bpp: import("@yume-chan/struct").NumberField<number>;
35
+ colorSpace: import("@yume-chan/struct").NumberField<number>;
36
+ size: import("@yume-chan/struct").NumberField<number>;
37
+ width: import("@yume-chan/struct").NumberField<number>;
38
+ height: import("@yume-chan/struct").NumberField<number>;
39
+ red_offset: import("@yume-chan/struct").NumberField<number>;
40
+ red_length: import("@yume-chan/struct").NumberField<number>;
41
+ blue_offset: import("@yume-chan/struct").NumberField<number>;
42
+ blue_length: import("@yume-chan/struct").NumberField<number>;
43
+ green_offset: import("@yume-chan/struct").NumberField<number>;
44
+ green_length: import("@yume-chan/struct").NumberField<number>;
45
+ alpha_offset: import("@yume-chan/struct").NumberField<number>;
46
+ alpha_length: import("@yume-chan/struct").NumberField<number>;
47
+ data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, "size", Record<"size", number>>;
48
+ }, {}, import("@yume-chan/struct").FieldsType<{
49
+ bpp: import("@yume-chan/struct").NumberField<number>;
50
+ colorSpace: import("@yume-chan/struct").NumberField<number>;
51
+ size: import("@yume-chan/struct").NumberField<number>;
52
+ width: import("@yume-chan/struct").NumberField<number>;
53
+ height: import("@yume-chan/struct").NumberField<number>;
54
+ red_offset: import("@yume-chan/struct").NumberField<number>;
55
+ red_length: import("@yume-chan/struct").NumberField<number>;
56
+ blue_offset: import("@yume-chan/struct").NumberField<number>;
57
+ blue_length: import("@yume-chan/struct").NumberField<number>;
58
+ green_offset: import("@yume-chan/struct").NumberField<number>;
59
+ green_length: import("@yume-chan/struct").NumberField<number>;
60
+ alpha_offset: import("@yume-chan/struct").NumberField<number>;
61
+ alpha_length: import("@yume-chan/struct").NumberField<number>;
62
+ data: import("@yume-chan/struct").Field<Uint8Array<ArrayBufferLike>, "size", Record<"size", number>>;
63
+ }>>;
64
+ export type AdbFrameBufferV2 = StructValue<typeof AdbFrameBufferV2>;
36
65
  /**
37
66
  * ADB uses 8 int32 fields to describe bit depths
38
67
  *
@@ -1 +1 @@
1
- {"version":3,"file":"framebuffer.d.ts","sourceRoot":"","sources":["../../src/commands/framebuffer.ts"],"names":[],"mappings":"AACA,OAAO,MAA4B,MAAM,mBAAmB,CAAC;AAE7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIrC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;2CAamB,CAAC;AAEjD,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAE/E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;2CAcmB,CAAC;AAEjD,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAE/E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAEjE,8BAAsB,mBAAoB,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAGtD;AAED,qBAAa,qCAAsC,SAAQ,mBAAmB;gBAC9D,OAAO,EAAE,MAAM;CAG9B;AAED,qBAAa,4BAA6B,SAAQ,mBAAmB;;CAIpE;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAuBnE"}
1
+ {"version":3,"file":"framebuffer.d.ts","sourceRoot":"","sources":["../../src/commands/framebuffer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIrC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiB5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEpE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkB5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEpE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAEjE,8BAAsB,mBAAoB,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAGtD;AAED,qBAAa,qCAAsC,SAAQ,mBAAmB;gBAC9D,OAAO,EAAE,MAAM;CAG9B;AAED,qBAAa,4BAA6B,SAAQ,mBAAmB;;CAIpE;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAuBnE"}
@@ -1,35 +1,37 @@
1
1
  import { BufferedReadableStream } from "@yume-chan/stream-extra";
2
- import Struct, { StructEmptyError } from "@yume-chan/struct";
3
- const Version = new Struct({ littleEndian: true }).uint32("version");
4
- export const AdbFrameBufferV1 = new Struct({ littleEndian: true })
5
- .uint32("bpp")
6
- .uint32("size")
7
- .uint32("width")
8
- .uint32("height")
9
- .uint32("red_offset")
10
- .uint32("red_length")
11
- .uint32("blue_offset")
12
- .uint32("blue_length")
13
- .uint32("green_offset")
14
- .uint32("green_length")
15
- .uint32("alpha_offset")
16
- .uint32("alpha_length")
17
- .uint8Array("data", { lengthField: "size" });
18
- export const AdbFrameBufferV2 = new Struct({ littleEndian: true })
19
- .uint32("bpp")
20
- .uint32("colorSpace")
21
- .uint32("size")
22
- .uint32("width")
23
- .uint32("height")
24
- .uint32("red_offset")
25
- .uint32("red_length")
26
- .uint32("blue_offset")
27
- .uint32("blue_length")
28
- .uint32("green_offset")
29
- .uint32("green_length")
30
- .uint32("alpha_offset")
31
- .uint32("alpha_length")
32
- .uint8Array("data", { lengthField: "size" });
2
+ import { buffer, struct, StructEmptyError, u32 } from "@yume-chan/struct";
3
+ const Version = struct({ version: u32 }, { littleEndian: true });
4
+ export const AdbFrameBufferV1 = struct({
5
+ bpp: u32,
6
+ size: u32,
7
+ width: u32,
8
+ height: u32,
9
+ red_offset: u32,
10
+ red_length: u32,
11
+ blue_offset: u32,
12
+ blue_length: u32,
13
+ green_offset: u32,
14
+ green_length: u32,
15
+ alpha_offset: u32,
16
+ alpha_length: u32,
17
+ data: buffer("size"),
18
+ }, { littleEndian: true });
19
+ export const AdbFrameBufferV2 = struct({
20
+ bpp: u32,
21
+ colorSpace: u32,
22
+ size: u32,
23
+ width: u32,
24
+ height: u32,
25
+ red_offset: u32,
26
+ red_length: u32,
27
+ blue_offset: u32,
28
+ blue_length: u32,
29
+ green_offset: u32,
30
+ green_length: u32,
31
+ alpha_offset: u32,
32
+ alpha_length: u32,
33
+ data: buffer("size"),
34
+ }, { littleEndian: true });
33
35
  export class AdbFrameBufferError extends Error {
34
36
  constructor(message, options) {
35
37
  super(message, options);
@@ -61,9 +63,9 @@ export async function framebuffer(adb) {
61
63
  switch (version) {
62
64
  case 1:
63
65
  // TODO: AdbFrameBuffer: does all v1 responses uses the same color space? Add it so the command returns same format for all versions.
64
- return AdbFrameBufferV1.deserialize(stream);
66
+ return await AdbFrameBufferV1.deserialize(stream);
65
67
  case 2:
66
- return AdbFrameBufferV2.deserialize(stream);
68
+ return await AdbFrameBufferV2.deserialize(stream);
67
69
  default:
68
70
  throw new AdbFrameBufferUnsupportedVersionError(version);
69
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"framebuffer.js","sourceRoot":"","sources":["../../src/commands/framebuffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"framebuffer.js","sourceRoot":"","sources":["../../src/commands/framebuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAI1E,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAClC;IACI,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;IACX,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;CACvB,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,CACzB,CAAC;AAIF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAClC;IACI,GAAG,EAAE,GAAG;IACR,UAAU,EAAE,GAAG;IACf,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;IACX,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;CACvB,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,CACzB,CAAC;AAsBF,MAAM,OAAgB,mBAAoB,SAAQ,KAAK;IACnD,YAAY,OAAe,EAAE,OAAsB;QAC/C,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;CACJ;AAED,MAAM,OAAO,qCAAsC,SAAQ,mBAAmB;IAC1E,YAAY,OAAe;QACvB,KAAK,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;CACJ;AAED,MAAM,OAAO,4BAA6B,SAAQ,mBAAmB;IACjE;QACI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACpD,CAAC;CACJ;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAQ;IACtC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE3D,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACD,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,IAAI,CAAC,YAAY,gBAAgB,EAAE,CAAC;YAChC,MAAM,IAAI,4BAA4B,EAAE,CAAC;QAC7C,CAAC;QACD,MAAM,CAAC,CAAC;IACZ,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,CAAC;YACF,qIAAqI;YACrI,OAAO,MAAM,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtD,KAAK,CAAC;YACF,OAAO,MAAM,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtD;YACI,MAAM,IAAI,qCAAqC,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"power.d.ts","sourceRoot":"","sources":["../../src/commands/power.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,qBAAa,QAAS,SAAQ,cAAc;IACxC,MAAM,CAAC,IAAI,SAAK;IAIhB,UAAU;IAIV,QAAQ;IAIR,QAAQ;IAIR,QAAQ;IAIR;;;;OAIG;IACH,eAAe;IAIf,QAAQ;IAIR,WAAW,CAAC,SAAS,UAAQ;IAQ7B;;;;OAIG;IACH,WAAW;CAGd"}
1
+ {"version":3,"file":"power.d.ts","sourceRoot":"","sources":["../../src/commands/power.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,qBAAa,QAAS,SAAQ,cAAc;IACxC,MAAM,CAAC,IAAI,SAAK;IAIhB,UAAU;IAIV,QAAQ;IAIR,QAAQ;IAIR,QAAQ;IAIR;;;;OAIG;IACH,eAAe;IAIf,QAAQ;IAIR,WAAW,CAAC,SAAS,UAAQ;IAU7B;;;;OAIG;IACH,WAAW;CAGd"}
@@ -31,11 +31,12 @@ export class AdbPower extends AdbCommandBase {
31
31
  return this.adb.subprocess.spawnAndWaitLegacy(["reboot", "-p"]);
32
32
  }
33
33
  powerButton(longPress = false) {
34
- return this.adb.subprocess.spawnAndWaitLegacy([
35
- "input",
36
- "keyevent",
37
- longPress ? "--longpress POWER" : "POWER",
38
- ]);
34
+ const args = ["input", "keyevent"];
35
+ if (longPress) {
36
+ args.push("--longpress");
37
+ }
38
+ args.push("POWER");
39
+ return this.adb.subprocess.spawnAndWaitLegacy(args);
39
40
  }
40
41
  /**
41
42
  * Reboot to Samsung Odin download mode.
@@ -1 +1 @@
1
- {"version":3,"file":"power.js","sourceRoot":"","sources":["../../src/commands/power.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,0BAA0B;AAC1B,0BAA0B;AAC1B,2BAA2B;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,OAAO,QAAS,SAAQ,cAAc;IACxC,MAAM,CAAC,IAAI,GAAG,EAAE;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,WAAW,CAAC,SAAS,GAAG,KAAK;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC;YAC1C,OAAO;YACP,UAAU;YACV,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO;SAC5C,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,WAAW;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;CACJ"}
1
+ {"version":3,"file":"power.js","sourceRoot":"","sources":["../../src/commands/power.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,0BAA0B;AAC1B,0BAA0B;AAC1B,2BAA2B;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,OAAO,QAAS,SAAQ,cAAc;IACxC,MAAM,CAAC,IAAI,GAAG,EAAE;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,WAAW,CAAC,SAAS,GAAG,KAAK;QACzB,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACnC,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,WAAW;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;CACJ"}
@@ -1,4 +1,3 @@
1
- import { AutoDisposable } from "@yume-chan/event";
2
1
  import { BufferedReadableStream } from "@yume-chan/stream-extra";
3
2
  import type { Adb, AdbIncomingSocketHandler } from "../adb.js";
4
3
  export interface AdbForwardListener {
@@ -12,30 +11,31 @@ export declare class AdbReverseError extends Error {
12
11
  export declare class AdbReverseNotSupportedError extends AdbReverseError {
13
12
  constructor();
14
13
  }
15
- export declare class AdbReverseCommand extends AutoDisposable {
14
+ export declare class AdbReverseCommand {
16
15
  #private;
17
16
  protected adb: Adb;
18
17
  constructor(adb: Adb);
19
18
  protected createBufferedStream(service: string): Promise<BufferedReadableStream>;
20
19
  protected sendRequest(service: string): Promise<BufferedReadableStream>;
20
+ /**
21
+ * Get a list of all reverse port forwarding on the device.
22
+ */
21
23
  list(): Promise<AdbForwardListener[]>;
22
24
  /**
23
- * Add an already existing reverse tunnel. Depends on the transport type, this may not do anything.
24
- * @param deviceAddress The address to be listened on device by ADB daemon. Or `tcp:0` to choose an available TCP port.
25
- * @param localAddress The address that listens on the local machine.
26
- * @returns `tcp:{ACTUAL_LISTENING_PORT}`, If `deviceAddress` is `tcp:0`; otherwise, `deviceAddress`.
25
+ * Add a reverse port forwarding for a program that already listens on a port.
27
26
  */
28
27
  addExternal(deviceAddress: string, localAddress: string): Promise<string>;
29
28
  /**
30
- * @param deviceAddress The address to be listened on device by ADB daemon. Or `tcp:0` to choose an available TCP port.
31
- * @param handler A callback to handle incoming connections.
32
- * @param localAddressThe The address that listens on the local machine. May be `undefined` to let the transport choose an appropriate one.
33
- * @returns `tcp:{ACTUAL_LISTENING_PORT}`, If `deviceAddress` is `tcp:0`; otherwise, `deviceAddress`.
34
- * @throws {AdbReverseNotSupportedError} If ADB reverse tunnel is not supported on this device when connected wirelessly.
35
- * @throws {AdbReverseError} If ADB daemon returns an error.
29
+ * Add a reverse port forwarding.
36
30
  */
37
31
  add(deviceAddress: string, handler: AdbIncomingSocketHandler, localAddress?: string): Promise<string>;
32
+ /**
33
+ * Remove a reverse port forwarding.
34
+ */
38
35
  remove(deviceAddress: string): Promise<void>;
36
+ /**
37
+ * Remove all reverse port forwarding, including the ones added by other programs.
38
+ */
39
39
  removeAll(): Promise<void>;
40
40
  }
41
41
  //# sourceMappingURL=reverse.d.ts.map