@yume-chan/adb 2.6.0 → 3.0.0-beta.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 (449) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/esm/adb.d.ts +18 -15
  4. package/esm/adb.d.ts.map +1 -1
  5. package/esm/adb.js +18 -11
  6. package/esm/adb.js.map +1 -1
  7. package/esm/banner.d.ts +1 -1
  8. package/esm/banner.d.ts.map +1 -1
  9. package/esm/daemon/auth/authenticator.d.ts +28 -0
  10. package/esm/daemon/auth/authenticator.d.ts.map +1 -0
  11. package/esm/daemon/auth/authenticator.js +108 -0
  12. package/esm/daemon/auth/authenticator.js.map +1 -0
  13. package/esm/daemon/auth/index.d.ts +5 -0
  14. package/esm/daemon/auth/index.d.ts.map +1 -0
  15. package/esm/daemon/auth/index.js +5 -0
  16. package/esm/daemon/auth/index.js.map +1 -0
  17. package/esm/daemon/auth/packet-processor.d.ts +42 -0
  18. package/esm/daemon/auth/packet-processor.d.ts.map +1 -0
  19. package/esm/daemon/auth/packet-processor.js +129 -0
  20. package/esm/daemon/auth/packet-processor.js.map +1 -0
  21. package/esm/daemon/auth/public-key.d.ts +8 -0
  22. package/esm/daemon/auth/public-key.d.ts.map +1 -0
  23. package/esm/daemon/auth/public-key.js +74 -0
  24. package/esm/daemon/auth/public-key.js.map +1 -0
  25. package/esm/daemon/auth/type.d.ts +5 -0
  26. package/esm/daemon/auth/type.d.ts.map +1 -0
  27. package/esm/daemon/auth/type.js +2 -0
  28. package/esm/daemon/auth/type.js.map +1 -0
  29. package/esm/daemon/crypto.d.ts +6 -5
  30. package/esm/daemon/crypto.d.ts.map +1 -1
  31. package/esm/daemon/crypto.js +23 -73
  32. package/esm/daemon/crypto.js.map +1 -1
  33. package/esm/daemon/dispatcher.d.ts +3 -3
  34. package/esm/daemon/dispatcher.d.ts.map +1 -1
  35. package/esm/daemon/dispatcher.js +11 -4
  36. package/esm/daemon/dispatcher.js.map +1 -1
  37. package/esm/daemon/index.d.ts +1 -1
  38. package/esm/daemon/index.d.ts.map +1 -1
  39. package/esm/daemon/index.js +1 -1
  40. package/esm/daemon/index.js.map +1 -1
  41. package/esm/daemon/socket.d.ts +3 -3
  42. package/esm/daemon/socket.d.ts.map +1 -1
  43. package/esm/daemon/transport.d.ts +13 -65
  44. package/esm/daemon/transport.d.ts.map +1 -1
  45. package/esm/daemon/transport.js +18 -140
  46. package/esm/daemon/transport.js.map +1 -1
  47. package/esm/device-observer.d.ts +2 -3
  48. package/esm/device-observer.d.ts.map +1 -1
  49. package/esm/features-value.d.ts +40 -0
  50. package/esm/features-value.d.ts.map +1 -0
  51. package/esm/features-value.js +46 -0
  52. package/esm/features-value.js.map +1 -0
  53. package/esm/features.d.ts +4 -12
  54. package/esm/features.d.ts.map +1 -1
  55. package/esm/features.js +27 -13
  56. package/esm/features.js.map +1 -1
  57. package/esm/index.d.ts +1 -1
  58. package/esm/index.d.ts.map +1 -1
  59. package/esm/index.js +1 -1
  60. package/esm/index.js.map +1 -1
  61. package/esm/server/client.d.ts +7 -7
  62. package/esm/server/client.d.ts.map +1 -1
  63. package/esm/server/client.js +69 -86
  64. package/esm/server/client.js.map +1 -1
  65. package/esm/server/commands/wireless.js +1 -1
  66. package/esm/server/commands/wireless.js.map +1 -1
  67. package/esm/server/{stream.d.ts → data-connection.d.ts} +5 -5
  68. package/esm/server/data-connection.d.ts.map +1 -0
  69. package/esm/server/{stream.js → data-connection.js} +4 -4
  70. package/esm/server/data-connection.js.map +1 -0
  71. package/esm/server/index.d.ts +1 -1
  72. package/esm/server/index.d.ts.map +1 -1
  73. package/esm/server/index.js +1 -1
  74. package/esm/server/index.js.map +1 -1
  75. package/esm/server/observer.d.ts.map +1 -1
  76. package/esm/server/observer.js +14 -13
  77. package/esm/server/observer.js.map +1 -1
  78. package/esm/server/transport.d.ts +4 -6
  79. package/esm/server/transport.d.ts.map +1 -1
  80. package/esm/server/transport.js +9 -24
  81. package/esm/server/transport.js.map +1 -1
  82. package/esm/service/framebuffer.d.ts.map +1 -0
  83. package/esm/service/framebuffer.js.map +1 -0
  84. package/esm/{commands → service}/index.d.ts +1 -2
  85. package/esm/service/index.d.ts.map +1 -0
  86. package/esm/{commands → service}/index.js +1 -2
  87. package/esm/service/index.js.map +1 -0
  88. package/esm/{commands → service}/power.d.ts +4 -2
  89. package/esm/service/power.d.ts.map +1 -0
  90. package/esm/{commands → service}/power.js +11 -5
  91. package/esm/service/power.js.map +1 -0
  92. package/esm/service/reverse/error.d.ts +14 -0
  93. package/esm/service/reverse/error.d.ts.map +1 -0
  94. package/esm/service/reverse/error.js +21 -0
  95. package/esm/service/reverse/error.js.map +1 -0
  96. package/esm/service/reverse/index.d.ts +3 -0
  97. package/esm/service/reverse/index.d.ts.map +1 -0
  98. package/esm/service/reverse/index.js +4 -0
  99. package/esm/service/reverse/index.js.map +1 -0
  100. package/esm/service/reverse/response.d.ts +2 -0
  101. package/esm/service/reverse/response.d.ts.map +1 -0
  102. package/esm/service/reverse/response.js +30 -0
  103. package/esm/service/reverse/response.js.map +1 -0
  104. package/esm/service/reverse/service.d.ts +59 -0
  105. package/esm/service/reverse/service.d.ts.map +1 -0
  106. package/esm/{commands/reverse.js → service/reverse/service.js} +16 -45
  107. package/esm/service/reverse/service.js.map +1 -0
  108. package/esm/{commands → service}/subprocess/index.d.ts +1 -0
  109. package/esm/service/subprocess/index.d.ts.map +1 -0
  110. package/esm/{commands → service}/subprocess/index.js +1 -0
  111. package/esm/service/subprocess/index.js.map +1 -0
  112. package/esm/service/subprocess/none/index.d.ts.map +1 -0
  113. package/esm/service/subprocess/none/index.js.map +1 -0
  114. package/esm/{commands → service}/subprocess/none/process.d.ts +2 -2
  115. package/esm/service/subprocess/none/process.d.ts.map +1 -0
  116. package/esm/service/subprocess/none/process.js.map +1 -0
  117. package/esm/{commands → service}/subprocess/none/pty.d.ts +4 -4
  118. package/esm/service/subprocess/none/pty.d.ts.map +1 -0
  119. package/esm/{commands → service}/subprocess/none/pty.js +1 -1
  120. package/esm/service/subprocess/none/pty.js.map +1 -0
  121. package/esm/service/subprocess/none/service.d.ts +10 -0
  122. package/esm/service/subprocess/none/service.d.ts.map +1 -0
  123. package/esm/service/subprocess/none/service.js +44 -0
  124. package/esm/service/subprocess/none/service.js.map +1 -0
  125. package/esm/service/subprocess/none/spawner.d.ts +15 -0
  126. package/esm/service/subprocess/none/spawner.d.ts.map +1 -0
  127. package/esm/service/subprocess/none/spawner.js +31 -0
  128. package/esm/service/subprocess/none/spawner.js.map +1 -0
  129. package/esm/{commands → service}/subprocess/pty.d.ts +1 -1
  130. package/esm/service/subprocess/pty.d.ts.map +1 -0
  131. package/esm/{commands → service}/subprocess/pty.js.map +1 -1
  132. package/esm/service/subprocess/service.d.ts.map +1 -0
  133. package/esm/{commands → service}/subprocess/service.js +1 -1
  134. package/esm/service/subprocess/service.js.map +1 -0
  135. package/esm/service/subprocess/shell/index.d.ts +5 -0
  136. package/esm/{commands/subprocess/none → service/subprocess/shell}/index.d.ts.map +1 -1
  137. package/esm/service/subprocess/shell/index.js +6 -0
  138. package/esm/{commands/subprocess/none → service/subprocess/shell}/index.js.map +1 -1
  139. package/esm/{commands → service}/subprocess/shell/process.d.ts +2 -2
  140. package/esm/service/subprocess/shell/process.d.ts.map +1 -0
  141. package/esm/{commands → service}/subprocess/shell/process.js +4 -6
  142. package/esm/service/subprocess/shell/process.js.map +1 -0
  143. package/esm/{commands → service}/subprocess/shell/pty.d.ts +4 -4
  144. package/esm/service/subprocess/shell/pty.d.ts.map +1 -0
  145. package/esm/{commands → service}/subprocess/shell/pty.js +11 -9
  146. package/esm/service/subprocess/shell/pty.js.map +1 -0
  147. package/esm/service/subprocess/shell/service.d.ts +34 -0
  148. package/esm/service/subprocess/shell/service.d.ts.map +1 -0
  149. package/esm/service/subprocess/shell/service.js +52 -0
  150. package/esm/service/subprocess/shell/service.js.map +1 -0
  151. package/esm/service/subprocess/shell/shared.d.ts +2 -0
  152. package/esm/service/subprocess/shell/shared.d.ts.map +1 -0
  153. package/esm/{commands → service}/subprocess/shell/shared.js +2 -0
  154. package/esm/service/subprocess/shell/shared.js.map +1 -0
  155. package/esm/{commands → service}/subprocess/shell/spawner.d.ts +3 -7
  156. package/esm/service/subprocess/shell/spawner.d.ts.map +1 -0
  157. package/esm/service/subprocess/shell/spawner.js +45 -0
  158. package/esm/service/subprocess/shell/spawner.js.map +1 -0
  159. package/esm/service/subprocess/types.d.ts +14 -0
  160. package/esm/service/subprocess/types.d.ts.map +1 -0
  161. package/esm/service/subprocess/types.js +2 -0
  162. package/esm/service/subprocess/types.js.map +1 -0
  163. package/esm/service/subprocess/utils.d.ts +39 -0
  164. package/esm/service/subprocess/utils.d.ts.map +1 -0
  165. package/esm/service/subprocess/utils.js +142 -0
  166. package/esm/service/subprocess/utils.js.map +1 -0
  167. package/esm/service/sync/android.d.ts +34 -0
  168. package/esm/service/sync/android.d.ts.map +1 -0
  169. package/esm/service/sync/android.js +34 -0
  170. package/esm/service/sync/android.js.map +1 -0
  171. package/esm/service/sync/compression/compression.d.ts +17 -0
  172. package/esm/service/sync/compression/compression.d.ts.map +1 -0
  173. package/esm/service/sync/compression/compression.js +92 -0
  174. package/esm/service/sync/compression/compression.js.map +1 -0
  175. package/esm/service/sync/compression/format-ns.d.ts +5 -0
  176. package/esm/service/sync/compression/format-ns.d.ts.map +1 -0
  177. package/esm/service/sync/compression/format-ns.js +5 -0
  178. package/esm/service/sync/compression/format-ns.js.map +1 -0
  179. package/esm/service/sync/compression/format.d.ts +4 -0
  180. package/esm/service/sync/compression/format.d.ts.map +1 -0
  181. package/esm/service/sync/compression/format.js +3 -0
  182. package/esm/service/sync/compression/format.js.map +1 -0
  183. package/esm/service/sync/compression/index.d.ts +2 -0
  184. package/esm/service/sync/compression/index.d.ts.map +1 -0
  185. package/esm/service/sync/compression/index.js +2 -0
  186. package/esm/service/sync/compression/index.js.map +1 -0
  187. package/esm/service/sync/id/common.d.ts +17 -0
  188. package/esm/service/sync/id/common.d.ts.map +1 -0
  189. package/esm/service/sync/id/common.js +29 -0
  190. package/esm/service/sync/id/common.js.map +1 -0
  191. package/esm/service/sync/id/index.d.ts +4 -0
  192. package/esm/service/sync/id/index.d.ts.map +1 -0
  193. package/esm/service/sync/id/index.js +6 -0
  194. package/esm/service/sync/id/index.js.map +1 -0
  195. package/esm/service/sync/id/request.d.ts +7 -0
  196. package/esm/service/sync/id/request.d.ts.map +1 -0
  197. package/esm/service/sync/id/request.js +9 -0
  198. package/esm/service/sync/id/request.js.map +1 -0
  199. package/esm/service/sync/id/response.d.ts +6 -0
  200. package/esm/service/sync/id/response.d.ts.map +1 -0
  201. package/esm/service/sync/id/response.js +8 -0
  202. package/esm/service/sync/id/response.js.map +1 -0
  203. package/esm/service/sync/index-ns.d.ts +7 -0
  204. package/esm/service/sync/index-ns.d.ts.map +1 -0
  205. package/esm/service/sync/index-ns.js +7 -0
  206. package/esm/service/sync/index-ns.js.map +1 -0
  207. package/esm/service/sync/index.d.ts +3 -0
  208. package/esm/service/sync/index.d.ts.map +1 -0
  209. package/esm/service/sync/index.js +3 -0
  210. package/esm/service/sync/index.js.map +1 -0
  211. package/esm/service/sync/request/index.d.ts +5 -0
  212. package/esm/service/sync/request/index.d.ts.map +1 -0
  213. package/esm/service/sync/request/index.js +5 -0
  214. package/esm/service/sync/request/index.js.map +1 -0
  215. package/esm/{commands/sync → service/sync/request}/list.d.ts +21 -19
  216. package/esm/service/sync/request/list.d.ts.map +1 -0
  217. package/esm/service/sync/request/list.js +77 -0
  218. package/esm/service/sync/request/list.js.map +1 -0
  219. package/esm/service/sync/request/pull.d.ts +12 -0
  220. package/esm/service/sync/request/pull.d.ts.map +1 -0
  221. package/esm/service/sync/request/pull.js +28 -0
  222. package/esm/service/sync/request/pull.js.map +1 -0
  223. package/esm/service/sync/request/push.d.ts +54 -0
  224. package/esm/service/sync/request/push.d.ts.map +1 -0
  225. package/esm/service/sync/request/push.js +95 -0
  226. package/esm/service/sync/request/push.js.map +1 -0
  227. package/esm/{commands/sync → service/sync/request}/stat.d.ts +40 -50
  228. package/esm/service/sync/request/stat.d.ts.map +1 -0
  229. package/esm/service/sync/request/stat.js +89 -0
  230. package/esm/service/sync/request/stat.js.map +1 -0
  231. package/esm/service/sync/service.d.ts +123 -0
  232. package/esm/service/sync/service.d.ts.map +1 -0
  233. package/esm/service/sync/service.js +170 -0
  234. package/esm/service/sync/service.js.map +1 -0
  235. package/esm/service/sync/socket-pool.d.ts +11 -0
  236. package/esm/service/sync/socket-pool.d.ts.map +1 -0
  237. package/esm/service/sync/socket-pool.js +80 -0
  238. package/esm/service/sync/socket-pool.js.map +1 -0
  239. package/esm/service/sync/socket.d.ts +40 -0
  240. package/esm/service/sync/socket.d.ts.map +1 -0
  241. package/esm/service/sync/socket.js +153 -0
  242. package/esm/service/sync/socket.js.map +1 -0
  243. package/esm/{commands → service}/tcpip.d.ts +4 -2
  244. package/esm/service/tcpip.d.ts.map +1 -0
  245. package/esm/{commands → service}/tcpip.js +10 -7
  246. package/esm/service/tcpip.js.map +1 -0
  247. package/esm/utils/array-buffer.d.ts.map +1 -1
  248. package/esm/utils/array-buffer.js +2 -3
  249. package/esm/utils/array-buffer.js.map +1 -1
  250. package/esm/utils/base64.d.ts.map +1 -1
  251. package/esm/utils/base64.js +22 -12
  252. package/esm/utils/base64.js.map +1 -1
  253. package/esm/utils/index.d.ts +1 -0
  254. package/esm/utils/index.d.ts.map +1 -1
  255. package/esm/utils/index.js +1 -0
  256. package/esm/utils/index.js.map +1 -1
  257. package/esm/utils/md5.d.ts +8 -0
  258. package/esm/utils/md5.d.ts.map +1 -0
  259. package/esm/utils/md5.js +149 -0
  260. package/esm/utils/md5.js.map +1 -0
  261. package/package.json +10 -10
  262. package/src/adb.ts +44 -34
  263. package/src/daemon/auth/authenticator.ts +186 -0
  264. package/src/daemon/auth/index.ts +4 -0
  265. package/src/daemon/auth/packet-processor.ts +212 -0
  266. package/src/daemon/auth/public-key.ts +112 -0
  267. package/src/daemon/auth/type.ts +5 -0
  268. package/src/daemon/crypto.ts +36 -102
  269. package/src/daemon/dispatcher.ts +15 -8
  270. package/src/daemon/index.ts +1 -1
  271. package/src/daemon/socket.ts +3 -3
  272. package/src/daemon/transport.ts +35 -253
  273. package/src/device-observer.ts +3 -3
  274. package/src/features-value.ts +47 -0
  275. package/src/features.ts +31 -14
  276. package/src/index.ts +1 -1
  277. package/src/server/client.ts +96 -94
  278. package/src/server/commands/wireless.ts +1 -1
  279. package/src/server/{stream.ts → data-connection.ts} +4 -4
  280. package/src/server/index.ts +1 -1
  281. package/src/server/observer.ts +21 -19
  282. package/src/server/transport.ts +13 -34
  283. package/src/{commands → service}/index.ts +1 -2
  284. package/src/{commands → service}/power.ts +14 -5
  285. package/src/service/reverse/error.ts +35 -0
  286. package/src/service/reverse/index.ts +3 -0
  287. package/src/service/reverse/response.ts +38 -0
  288. package/src/{commands/reverse.ts → service/reverse/service.ts} +32 -72
  289. package/src/{commands → service}/subprocess/index.ts +1 -0
  290. package/src/{commands → service}/subprocess/none/process.ts +3 -3
  291. package/src/{commands → service}/subprocess/none/pty.ts +5 -5
  292. package/src/service/subprocess/none/service.ts +57 -0
  293. package/src/service/subprocess/none/spawner.ts +81 -0
  294. package/src/{commands → service}/subprocess/pty.ts +1 -1
  295. package/src/{commands → service}/subprocess/service.ts +1 -1
  296. package/src/{commands → service}/subprocess/shell/index.ts +1 -1
  297. package/src/{commands → service}/subprocess/shell/process.ts +6 -7
  298. package/src/{commands → service}/subprocess/shell/pty.ts +15 -13
  299. package/src/service/subprocess/shell/service.ts +75 -0
  300. package/src/{commands → service}/subprocess/shell/shared.ts +5 -0
  301. package/src/service/subprocess/shell/spawner.ts +109 -0
  302. package/src/service/subprocess/types.ts +19 -0
  303. package/src/service/subprocess/utils.ts +166 -0
  304. package/src/service/sync/android.ts +43 -0
  305. package/src/service/sync/compression/compression.ts +126 -0
  306. package/src/service/sync/compression/format-ns.ts +4 -0
  307. package/src/service/sync/compression/format.ts +5 -0
  308. package/src/service/sync/compression/index.ts +1 -0
  309. package/src/service/sync/id/common.ts +33 -0
  310. package/src/service/sync/id/index.ts +7 -0
  311. package/src/service/sync/id/request.ts +12 -0
  312. package/src/service/sync/id/response.ts +11 -0
  313. package/src/service/sync/index-ns.ts +6 -0
  314. package/src/service/sync/index.ts +2 -0
  315. package/src/service/sync/request/index.ts +4 -0
  316. package/src/service/sync/request/list.ts +110 -0
  317. package/src/service/sync/request/pull.ts +49 -0
  318. package/src/service/sync/request/push.ts +184 -0
  319. package/src/service/sync/request/stat.ts +127 -0
  320. package/src/service/sync/service.ts +255 -0
  321. package/src/service/sync/socket-pool.ts +97 -0
  322. package/src/service/sync/socket.ts +201 -0
  323. package/src/{commands → service}/tcpip.ts +13 -7
  324. package/src/utils/array-buffer.ts +2 -3
  325. package/src/utils/base64.ts +24 -12
  326. package/src/utils/index.ts +1 -0
  327. package/src/utils/md5.ts +185 -0
  328. package/yume-chan-adb-3.0.0-beta.0.tgz +0 -0
  329. package/CHANGELOG.md +0 -251
  330. package/esm/commands/base.d.ts +0 -8
  331. package/esm/commands/base.d.ts.map +0 -1
  332. package/esm/commands/base.js +0 -12
  333. package/esm/commands/base.js.map +0 -1
  334. package/esm/commands/framebuffer.d.ts.map +0 -1
  335. package/esm/commands/framebuffer.js.map +0 -1
  336. package/esm/commands/index.d.ts.map +0 -1
  337. package/esm/commands/index.js.map +0 -1
  338. package/esm/commands/power.d.ts.map +0 -1
  339. package/esm/commands/power.js.map +0 -1
  340. package/esm/commands/reverse.d.ts +0 -48
  341. package/esm/commands/reverse.d.ts.map +0 -1
  342. package/esm/commands/reverse.js.map +0 -1
  343. package/esm/commands/subprocess/index.d.ts.map +0 -1
  344. package/esm/commands/subprocess/index.js.map +0 -1
  345. package/esm/commands/subprocess/none/process.d.ts.map +0 -1
  346. package/esm/commands/subprocess/none/process.js.map +0 -1
  347. package/esm/commands/subprocess/none/pty.d.ts.map +0 -1
  348. package/esm/commands/subprocess/none/pty.js.map +0 -1
  349. package/esm/commands/subprocess/none/service.d.ts +0 -10
  350. package/esm/commands/subprocess/none/service.d.ts.map +0 -1
  351. package/esm/commands/subprocess/none/service.js +0 -34
  352. package/esm/commands/subprocess/none/service.js.map +0 -1
  353. package/esm/commands/subprocess/none/spawner.d.ts +0 -19
  354. package/esm/commands/subprocess/none/spawner.d.ts.map +0 -1
  355. package/esm/commands/subprocess/none/spawner.js +0 -26
  356. package/esm/commands/subprocess/none/spawner.js.map +0 -1
  357. package/esm/commands/subprocess/pty.d.ts.map +0 -1
  358. package/esm/commands/subprocess/service.d.ts.map +0 -1
  359. package/esm/commands/subprocess/service.js.map +0 -1
  360. package/esm/commands/subprocess/shell/index.d.ts +0 -6
  361. package/esm/commands/subprocess/shell/index.d.ts.map +0 -1
  362. package/esm/commands/subprocess/shell/index.js +0 -6
  363. package/esm/commands/subprocess/shell/index.js.map +0 -1
  364. package/esm/commands/subprocess/shell/process.d.ts.map +0 -1
  365. package/esm/commands/subprocess/shell/process.js.map +0 -1
  366. package/esm/commands/subprocess/shell/pty.d.ts.map +0 -1
  367. package/esm/commands/subprocess/shell/pty.js.map +0 -1
  368. package/esm/commands/subprocess/shell/service.d.ts +0 -14
  369. package/esm/commands/subprocess/shell/service.d.ts.map +0 -1
  370. package/esm/commands/subprocess/shell/service.js +0 -41
  371. package/esm/commands/subprocess/shell/service.js.map +0 -1
  372. package/esm/commands/subprocess/shell/shared.d.ts +0 -19
  373. package/esm/commands/subprocess/shell/shared.d.ts.map +0 -1
  374. package/esm/commands/subprocess/shell/shared.js.map +0 -1
  375. package/esm/commands/subprocess/shell/spawner.d.ts.map +0 -1
  376. package/esm/commands/subprocess/shell/spawner.js +0 -38
  377. package/esm/commands/subprocess/shell/spawner.js.map +0 -1
  378. package/esm/commands/subprocess/utils.d.ts +0 -3
  379. package/esm/commands/subprocess/utils.d.ts.map +0 -1
  380. package/esm/commands/subprocess/utils.js +0 -56
  381. package/esm/commands/subprocess/utils.js.map +0 -1
  382. package/esm/commands/sync/index.d.ts +0 -9
  383. package/esm/commands/sync/index.d.ts.map +0 -1
  384. package/esm/commands/sync/index.js +0 -9
  385. package/esm/commands/sync/index.js.map +0 -1
  386. package/esm/commands/sync/list.d.ts.map +0 -1
  387. package/esm/commands/sync/list.js +0 -64
  388. package/esm/commands/sync/list.js.map +0 -1
  389. package/esm/commands/sync/pull.d.ts +0 -12
  390. package/esm/commands/sync/pull.d.ts.map +0 -1
  391. package/esm/commands/sync/pull.js +0 -33
  392. package/esm/commands/sync/pull.js.map +0 -1
  393. package/esm/commands/sync/push.d.ts +0 -61
  394. package/esm/commands/sync/push.d.ts.map +0 -1
  395. package/esm/commands/sync/push.js +0 -83
  396. package/esm/commands/sync/push.js.map +0 -1
  397. package/esm/commands/sync/request.d.ts +0 -24
  398. package/esm/commands/sync/request.d.ts.map +0 -1
  399. package/esm/commands/sync/request.js +0 -32
  400. package/esm/commands/sync/request.js.map +0 -1
  401. package/esm/commands/sync/response.d.ts +0 -28
  402. package/esm/commands/sync/response.d.ts.map +0 -1
  403. package/esm/commands/sync/response.js +0 -81
  404. package/esm/commands/sync/response.js.map +0 -1
  405. package/esm/commands/sync/socket.d.ts +0 -22
  406. package/esm/commands/sync/socket.d.ts.map +0 -1
  407. package/esm/commands/sync/socket.js +0 -78
  408. package/esm/commands/sync/socket.js.map +0 -1
  409. package/esm/commands/sync/stat.d.ts.map +0 -1
  410. package/esm/commands/sync/stat.js +0 -121
  411. package/esm/commands/sync/stat.js.map +0 -1
  412. package/esm/commands/sync/sync.d.ts +0 -82
  413. package/esm/commands/sync/sync.d.ts.map +0 -1
  414. package/esm/commands/sync/sync.js +0 -138
  415. package/esm/commands/sync/sync.js.map +0 -1
  416. package/esm/commands/tcpip.d.ts.map +0 -1
  417. package/esm/commands/tcpip.js.map +0 -1
  418. package/esm/daemon/auth.d.ts +0 -54
  419. package/esm/daemon/auth.d.ts.map +0 -1
  420. package/esm/daemon/auth.js +0 -104
  421. package/esm/daemon/auth.js.map +0 -1
  422. package/esm/server/stream.d.ts.map +0 -1
  423. package/esm/server/stream.js.map +0 -1
  424. package/src/commands/base.ts +0 -15
  425. package/src/commands/subprocess/none/service.ts +0 -45
  426. package/src/commands/subprocess/none/spawner.ts +0 -68
  427. package/src/commands/subprocess/shell/service.ts +0 -58
  428. package/src/commands/subprocess/shell/spawner.ts +0 -90
  429. package/src/commands/subprocess/utils.ts +0 -61
  430. package/src/commands/sync/index.ts +0 -8
  431. package/src/commands/sync/list.ts +0 -99
  432. package/src/commands/sync/pull.ts +0 -55
  433. package/src/commands/sync/push.ts +0 -172
  434. package/src/commands/sync/request.ts +0 -53
  435. package/src/commands/sync/response.ts +0 -105
  436. package/src/commands/sync/socket.ts +0 -109
  437. package/src/commands/sync/stat.ts +0 -177
  438. package/src/commands/sync/sync.ts +0 -175
  439. package/src/daemon/auth.ts +0 -204
  440. package/tsconfig.build.tsbuildinfo +0 -1
  441. /package/esm/{commands → service}/framebuffer.d.ts +0 -0
  442. /package/esm/{commands → service}/framebuffer.js +0 -0
  443. /package/esm/{commands → service}/subprocess/none/index.d.ts +0 -0
  444. /package/esm/{commands → service}/subprocess/none/index.js +0 -0
  445. /package/esm/{commands → service}/subprocess/none/process.js +0 -0
  446. /package/esm/{commands → service}/subprocess/pty.js +0 -0
  447. /package/esm/{commands → service}/subprocess/service.d.ts +0 -0
  448. /package/src/{commands → service}/framebuffer.ts +0 -0
  449. /package/src/{commands → service}/subprocess/none/index.ts +0 -0
@@ -1,5 +1,7 @@
1
- import { AdbServiceBase } from "./base.js";
2
- export declare class AdbPower extends AdbServiceBase {
1
+ import type { Adb } from "../adb.js";
2
+ export declare class AdbPowerService {
3
+ #private;
4
+ constructor(adb: Adb);
3
5
  reboot(mode?: string): Promise<string>;
4
6
  bootloader(): Promise<string>;
5
7
  fastboot(): Promise<string>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"power.d.ts","sourceRoot":"","sources":["../../src/service/power.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAErC,qBAAa,eAAe;;gBAGZ,GAAG,EAAE,GAAG;IAIpB,MAAM,CAAC,IAAI,SAAK;IAIhB,UAAU;IAIV,QAAQ;IAIR,QAAQ;IAIR,QAAQ;IAIR;;;;OAIG;IACH,eAAe;IAIf,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAO3B,WAAW,CAAC,SAAS,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAU/C;;;;OAIG;IACH,WAAW;CAGd"}
@@ -2,10 +2,13 @@
2
2
  // cspell: ignore fastboot
3
3
  // cspell: ignore keyevent
4
4
  // cspell: ignore longpress
5
- import { AdbServiceBase } from "./base.js";
6
- export class AdbPower extends AdbServiceBase {
5
+ export class AdbPowerService {
6
+ #adb;
7
+ constructor(adb) {
8
+ this.#adb = adb;
9
+ }
7
10
  reboot(mode = "") {
8
- return this.adb.createSocketAndWait(`reboot:${mode}`);
11
+ return this.#adb.createSocketAndWait(`reboot:${mode}`);
9
12
  }
10
13
  bootloader() {
11
14
  return this.reboot("bootloader");
@@ -28,7 +31,10 @@ export class AdbPower extends AdbServiceBase {
28
31
  return this.reboot("edl");
29
32
  }
30
33
  powerOff() {
31
- return this.adb.subprocess.noneProtocol.spawnWaitText(["reboot", "-p"]);
34
+ return this.#adb.subprocess.noneProtocol
35
+ .spawn(["reboot", "-p"])
36
+ .wait()
37
+ .toString();
32
38
  }
33
39
  powerButton(longPress = false) {
34
40
  const args = ["input", "keyevent"];
@@ -36,7 +42,7 @@ export class AdbPower extends AdbServiceBase {
36
42
  args.push("--longpress");
37
43
  }
38
44
  args.push("POWER");
39
- return this.adb.subprocess.noneProtocol.spawnWaitText(args);
45
+ return this.#adb.subprocess.noneProtocol.spawn(args).wait().toString();
40
46
  }
41
47
  /**
42
48
  * Reboot to Samsung Odin download mode.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"power.js","sourceRoot":"","sources":["../../src/service/power.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,0BAA0B;AAC1B,0BAA0B;AAC1B,2BAA2B;AAI3B,MAAM,OAAO,eAAe;IACf,IAAI,CAAM;IAEnB,YAAY,GAAQ;QAChB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,IAAI,GAAG,EAAE;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAC3D,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,IAAI,CAAC,UAAU,CAAC,YAAY;aACnC,KAAK,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aACvB,IAAI,EAAE;aACN,QAAQ,EAAE,CAAC;IACpB,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,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC3E,CAAC;IAED;;;;OAIG;IACH,WAAW;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;CACJ"}
@@ -0,0 +1,14 @@
1
+ declare const AdbReverseErrorBrand: unique symbol;
2
+ export declare class AdbReverseError extends Error {
3
+ [AdbReverseErrorBrand]: boolean;
4
+ static [Symbol.hasInstance](value: unknown): boolean;
5
+ constructor(message: string);
6
+ }
7
+ declare const AdbReverseNotSupportedErrorBrand: unique symbol;
8
+ export declare class AdbReverseNotSupportedError extends AdbReverseError {
9
+ [AdbReverseNotSupportedErrorBrand]: boolean;
10
+ static [Symbol.hasInstance](value: unknown): boolean;
11
+ constructor();
12
+ }
13
+ export {};
14
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/service/reverse/error.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,oBAAoB,eAAsC,CAAC;AAEjE,qBAAa,eAAgB,SAAQ,KAAK;IACtC,CAAC,oBAAoB,CAAC,UAAQ;WAEd,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO;gBAMvC,OAAO,EAAE,MAAM;CAG9B;AAED,QAAA,MAAM,gCAAgC,eAErC,CAAC;AAEF,qBAAa,2BAA4B,SAAQ,eAAe;IAC5D,CAAC,gCAAgC,CAAC,UAAQ;WAE1B,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO;;CAWtD"}
@@ -0,0 +1,21 @@
1
+ const AdbReverseErrorBrand = Symbol.for("AdbReverseError.brand");
2
+ export class AdbReverseError extends Error {
3
+ [AdbReverseErrorBrand] = true;
4
+ static [Symbol.hasInstance](value) {
5
+ return !!value?.[AdbReverseErrorBrand];
6
+ }
7
+ constructor(message) {
8
+ super(message);
9
+ }
10
+ }
11
+ const AdbReverseNotSupportedErrorBrand = Symbol.for("AdbReverseNotSupportedError.brand");
12
+ export class AdbReverseNotSupportedError extends AdbReverseError {
13
+ [AdbReverseNotSupportedErrorBrand] = true;
14
+ static [Symbol.hasInstance](value) {
15
+ return !!value?.[AdbReverseNotSupportedErrorBrand];
16
+ }
17
+ constructor() {
18
+ super("ADB reverse tunnel is not supported on this device when connected wirelessly.");
19
+ }
20
+ }
21
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/service/reverse/error.ts"],"names":[],"mappings":"AAAA,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAEjE,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACtC,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC;IAE9B,MAAM,CAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAc;QAC/C,OAAO,CAAC,CAAE,KAAiD,EAAE,CACzD,oBAAoB,CACvB,CAAC;IACN,CAAC;IAED,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ;AAED,MAAM,gCAAgC,GAAG,MAAM,CAAC,GAAG,CAC/C,mCAAmC,CACtC,CAAC;AAEF,MAAM,OAAO,2BAA4B,SAAQ,eAAe;IAC5D,CAAC,gCAAgC,CAAC,GAAG,IAAI,CAAC;IAE1C,MAAM,CAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAc;QAC/C,OAAO,CAAC,CAAE,KAAiD,EAAE,CACzD,gCAAgC,CACnC,CAAC;IACN,CAAC;IAED;QACI,KAAK,CACD,+EAA+E,CAClF,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ export * from "./error.js";
2
+ export * from "./service.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/reverse/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./error.js";
2
+ export * from "./service.js";
3
+ // `response.ts` is internal
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/reverse/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,4BAA4B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/service/reverse/response.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import { extend, string, struct } from "@yume-chan/struct";
2
+ import { AdbReverseError, AdbReverseNotSupportedError } from "./error.js";
3
+ /** @internal exported for tests */
4
+ export const AdbReverseStringResponse = struct({
5
+ length: string(4),
6
+ content: string({
7
+ field: "length",
8
+ convert(value) {
9
+ return Number.parseInt(value, 16);
10
+ },
11
+ back(value) {
12
+ return value.toString(16).padStart(4, "0");
13
+ },
14
+ }),
15
+ }, { littleEndian: true });
16
+ /** @internal exported for tests */
17
+ export const AdbReverseErrorResponse = extend(AdbReverseStringResponse, {}, {
18
+ postDeserialize(value) {
19
+ // https://issuetracker.google.com/issues/37066218
20
+ // ADB on Android <9 can't create reverse tunnels when connected wirelessly (ADB over Wi-Fi),
21
+ // and returns this confusing "more than one device/emulator" error.
22
+ if (value.content === "more than one device/emulator") {
23
+ throw new AdbReverseNotSupportedError();
24
+ }
25
+ else {
26
+ throw new AdbReverseError(value.content);
27
+ }
28
+ },
29
+ });
30
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/service/reverse/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAE1E,mCAAmC;AACnC,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAC1C;IACI,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,QAAQ;QACf,OAAO,CAAC,KAAa;YACjB,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,KAAK;YACN,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;KACJ,CAAC;CACL,EACD,EAAE,YAAY,EAAE,IAAI,EAAE,CACzB,CAAC;AAEF,mCAAmC;AACnC,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CACzC,wBAAwB,EACxB,EAAE,EACF;IACI,eAAe,CAAC,KAAK;QACjB,kDAAkD;QAClD,6FAA6F;QAC7F,oEAAoE;QACpE,IAAI,KAAK,CAAC,OAAO,KAAK,+BAA+B,EAAE,CAAC;YACpD,MAAM,IAAI,2BAA2B,EAAE,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;CACJ,CACJ,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { BufferedReadableStream } from "@yume-chan/stream-extra";
2
+ import type { Adb } from "../../adb.js";
3
+ export declare class AdbReverseService {
4
+ #private;
5
+ static readonly StringResponse: import("@yume-chan/struct").Struct<{
6
+ length: import("@yume-chan/struct").Field<string, never, never, string> & {
7
+ as: <T>(infer: T) => import("@yume-chan/struct").Field<T, never, never>;
8
+ };
9
+ content: import("@yume-chan/struct").Field<string, "length", Record<"length", string>, string> & {
10
+ as: <T>(infer: T) => import("@yume-chan/struct").Field<T, "length", Record<"length", string>, T>;
11
+ };
12
+ }, undefined, import("@yume-chan/struct").FieldsValue<{
13
+ length: import("@yume-chan/struct").Field<string, never, never, string> & {
14
+ as: <T>(infer: T) => import("@yume-chan/struct").Field<T, never, never>;
15
+ };
16
+ content: import("@yume-chan/struct").Field<string, "length", Record<"length", string>, string> & {
17
+ as: <T>(infer: T) => import("@yume-chan/struct").Field<T, "length", Record<"length", string>, T>;
18
+ };
19
+ }>>;
20
+ static readonly ErrorResponse: import("@yume-chan/struct").Struct<{
21
+ length: import("@yume-chan/struct").Field<string, never, never, string> & {
22
+ as: <T>(infer: T) => import("@yume-chan/struct").Field<T, never, never>;
23
+ };
24
+ content: import("@yume-chan/struct").Field<string, "length", Record<"length", string>, string> & {
25
+ as: <T>(infer: T) => import("@yume-chan/struct").Field<T, "length", Record<"length", string>, T>;
26
+ };
27
+ }, undefined, never>;
28
+ constructor(adb: Adb);
29
+ protected createBufferedStream(service: string): Promise<BufferedReadableStream>;
30
+ protected sendRequest(service: string): Promise<BufferedReadableStream>;
31
+ /**
32
+ * Get a list of all reverse port forwarding on the device.
33
+ */
34
+ list(): Promise<AdbReverseService.Listener[]>;
35
+ /**
36
+ * Add a reverse port forwarding for a program that already listens on a port.
37
+ */
38
+ addExternal(deviceAddress: string, localAddress: string): Promise<string>;
39
+ /**
40
+ * Add a reverse port forwarding.
41
+ */
42
+ add(deviceAddress: string, handler: Adb.IncomingSocketHandler, localAddress?: string): Promise<string>;
43
+ /**
44
+ * Remove a reverse port forwarding.
45
+ */
46
+ remove(deviceAddress: string): Promise<void>;
47
+ /**
48
+ * Remove all reverse port forwarding, including the ones added by other programs.
49
+ */
50
+ removeAll(): Promise<void>;
51
+ }
52
+ export declare namespace AdbReverseService {
53
+ interface Listener {
54
+ deviceSerial: string;
55
+ localName: string;
56
+ remoteName: string;
57
+ }
58
+ }
59
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/service/reverse/service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAuBxC,qBAAa,iBAAiB;;IAC1B,MAAM,CAAC,QAAQ,CAAC,cAAc;;;;;;;;;;;;;;QAA4B;IAE1D,MAAM,CAAC,QAAQ,CAAC,aAAa;;;;;;;yBAA2B;gBAI5C,GAAG,EAAE,GAAG;cAMJ,oBAAoB,CAAC,OAAO,EAAE,MAAM;cAKpC,WAAW,CAAC,OAAO,EAAE,MAAM;IAW3C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAiBnD;;OAEG;IACG,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IA8B7D;;OAEG;IACG,GAAG,CACL,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,GAAG,CAAC,qBAAqB,EAClC,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC;IAgBlB;;OAEG;IACG,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAQnC;AAED,yBAAiB,iBAAiB,CAAC;IAC/B,UAAiB,QAAQ;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACtB;CACJ"}
@@ -1,43 +1,8 @@
1
1
  // cspell: ignore killforward
2
2
  import { BufferedReadableStream } from "@yume-chan/stream-extra";
3
- import { encodeUtf8, ExactReadableEndedError, extend, string, struct, } from "@yume-chan/struct";
4
- import { hexToNumber, sequenceEqual } from "../utils/index.js";
5
- import { AdbServiceBase } from "./base.js";
6
- const AdbReverseStringResponse = struct({
7
- length: string(4),
8
- content: string({
9
- field: "length",
10
- convert(value) {
11
- return Number.parseInt(value, 16);
12
- },
13
- back(value) {
14
- return value.toString(16).padStart(4, "0");
15
- },
16
- }),
17
- }, { littleEndian: true });
18
- export class AdbReverseError extends Error {
19
- constructor(message) {
20
- super(message);
21
- }
22
- }
23
- export class AdbReverseNotSupportedError extends AdbReverseError {
24
- constructor() {
25
- super("ADB reverse tunnel is not supported on this device when connected wirelessly.");
26
- }
27
- }
28
- export const AdbReverseErrorResponse = extend(AdbReverseStringResponse, {}, {
29
- postDeserialize(value) {
30
- // https://issuetracker.google.com/issues/37066218
31
- // ADB on Android <9 can't create reverse tunnels when connected wirelessly (ADB over Wi-Fi),
32
- // and returns this confusing "more than one device/emulator" error.
33
- if (value.content === "more than one device/emulator") {
34
- throw new AdbReverseNotSupportedError();
35
- }
36
- else {
37
- throw new AdbReverseError(value.content);
38
- }
39
- },
40
- });
3
+ import { encodeUtf8, ExactReadableEndedError } from "@yume-chan/struct";
4
+ import { hexToNumber, sequenceEqual } from "../../utils/index.js";
5
+ import { AdbReverseErrorResponse, AdbReverseStringResponse, } from "./response.js";
41
6
  // Like `hexToNumber`, it's much faster than first converting `buffer` to a string
42
7
  function decimalToNumber(buffer) {
43
8
  let value = 0;
@@ -51,10 +16,16 @@ function decimalToNumber(buffer) {
51
16
  return value;
52
17
  }
53
18
  const OKAY = encodeUtf8("OKAY");
54
- export class AdbReverseService extends AdbServiceBase {
19
+ export class AdbReverseService {
20
+ static StringResponse = AdbReverseStringResponse;
21
+ static ErrorResponse = AdbReverseErrorResponse;
22
+ #adb;
23
+ constructor(adb) {
24
+ this.#adb = adb;
25
+ }
55
26
  #deviceAddressToLocalAddress = new Map();
56
27
  async createBufferedStream(service) {
57
- const socket = await this.adb.createSocket(service);
28
+ const socket = await this.#adb.createSocket(service);
58
29
  return new BufferedReadableStream(socket.readable);
59
30
  }
60
31
  async sendRequest(service) {
@@ -112,14 +83,14 @@ export class AdbReverseService extends AdbServiceBase {
112
83
  * Add a reverse port forwarding.
113
84
  */
114
85
  async add(deviceAddress, handler, localAddress) {
115
- localAddress = await this.adb.transport.addReverseTunnel(handler, localAddress);
86
+ localAddress = await this.#adb.transport.addReverseTunnel(handler, localAddress);
116
87
  try {
117
88
  deviceAddress = await this.addExternal(deviceAddress, localAddress);
118
89
  this.#deviceAddressToLocalAddress.set(deviceAddress, localAddress);
119
90
  return deviceAddress;
120
91
  }
121
92
  catch (e) {
122
- await this.adb.transport.removeReverseTunnel(localAddress);
93
+ await this.#adb.transport.removeReverseTunnel(localAddress);
123
94
  throw e;
124
95
  }
125
96
  }
@@ -129,7 +100,7 @@ export class AdbReverseService extends AdbServiceBase {
129
100
  async remove(deviceAddress) {
130
101
  const localAddress = this.#deviceAddressToLocalAddress.get(deviceAddress);
131
102
  if (localAddress) {
132
- await this.adb.transport.removeReverseTunnel(localAddress);
103
+ await this.#adb.transport.removeReverseTunnel(localAddress);
133
104
  }
134
105
  await this.sendRequest(`reverse:killforward:${deviceAddress}`);
135
106
  // No need to close the stream, device will close it
@@ -138,10 +109,10 @@ export class AdbReverseService extends AdbServiceBase {
138
109
  * Remove all reverse port forwarding, including the ones added by other programs.
139
110
  */
140
111
  async removeAll() {
141
- await this.adb.transport.clearReverseTunnels();
112
+ await this.#adb.transport.clearReverseTunnels();
142
113
  this.#deviceAddressToLocalAddress.clear();
143
114
  await this.sendRequest(`reverse:killforward-all`);
144
115
  // No need to close the stream, device will close it
145
116
  }
146
117
  }
147
- //# sourceMappingURL=reverse.js.map
118
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/service/reverse/service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export * from "./none/index.js";
2
2
  export * from "./service.js";
3
3
  export * from "./shell/index.js";
4
+ export * from "./types.js";
4
5
  export * from "./utils.js";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/subprocess/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from "./none/index.js";
2
2
  export * from "./service.js";
3
3
  export * from "./shell/index.js";
4
+ export * from "./types.js";
4
5
  export * from "./utils.js";
5
6
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/subprocess/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/service/subprocess/none/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/service/subprocess/none/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { AbortSignal, MaybeConsumable, ReadableStream, WritableStream } from "@yume-chan/stream-extra";
3
- import type { AdbSocket } from "../../../adb.js";
3
+ import type { Adb } from "../../../adb.js";
4
4
  import type { AdbNoneProtocolProcess } from "./spawner.js";
5
5
  export declare class AdbNoneProtocolProcessImpl implements AdbNoneProtocolProcess {
6
6
  #private;
7
7
  get stdin(): WritableStream<MaybeConsumable<Uint8Array>>;
8
8
  get output(): ReadableStream<Uint8Array>;
9
9
  get exited(): Promise<undefined>;
10
- constructor(socket: AdbSocket, signal?: AbortSignal);
10
+ constructor(socket: Adb.Socket, signal?: AbortSignal);
11
11
  kill(): MaybePromiseLike<void>;
12
12
  }
13
13
  //# sourceMappingURL=process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../../src/service/subprocess/none/process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,EACR,WAAW,EACX,eAAe,EACf,cAAc,EACd,cAAc,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,qBAAa,0BAA2B,YAAW,sBAAsB;;IAGrE,IAAI,KAAK,IAAI,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAEvD;IAED,IAAI,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAEvC;IAGD,IAAI,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAE/B;gBAEW,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;IAuBpD,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC;CAGjC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../../src/service/subprocess/none/process.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAYnD,MAAM,OAAO,0BAA0B;IAC1B,OAAO,CAAa;IAE7B,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjC,CAAC;IAEQ,OAAO,CAAqB;IACrC,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,YAAY,MAAkB,EAAE,MAAoB;QAChD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,IAAI,MAAM,EAAE,CAAC;YACT,sCAAsC;YACtC,sCAAsC;YACtC,0DAA0D;YAE1D,MAAM,MAAM,GAAG,IAAI,eAAe,EAAa,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CACpB,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAC1B,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACvC,CAAC;IACL,CAAC;IAED,IAAI;QACA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACJ"}
@@ -1,14 +1,14 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, WritableStream } from "@yume-chan/stream-extra";
3
3
  import { MaybeConsumable } from "@yume-chan/stream-extra";
4
- import type { AdbSocket } from "../../../adb.js";
5
- import type { AdbPtyProcess } from "../pty.js";
6
- export declare class AdbNoneProtocolPtyProcess implements AdbPtyProcess<undefined> {
4
+ import type { Adb } from "../../../adb.js";
5
+ import type { AdbPty } from "../pty.js";
6
+ export declare class AdbNoneProtocolPty implements AdbPty<undefined> {
7
7
  #private;
8
8
  get input(): WritableStream<MaybeConsumable<Uint8Array>>;
9
9
  get output(): ReadableStream<Uint8Array>;
10
10
  get exited(): Promise<undefined>;
11
- constructor(socket: AdbSocket);
11
+ constructor(socket: Adb.Socket);
12
12
  sigint(): Promise<void>;
13
13
  kill(): MaybePromiseLike<void>;
14
14
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../../../src/service/subprocess/none/pty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EACR,cAAc,EACd,cAAc,EAEjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,qBAAa,kBAAmB,YAAW,MAAM,CAAC,SAAS,CAAC;;IAKxD,IAAI,KAAK,IAAI,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAEvD;IAED,IAAI,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAEvC;IAED,IAAI,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAE/B;gBAEW,MAAM,EAAE,GAAG,CAAC,MAAM;IAS9B,MAAM;IAIN,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC;CAGjC"}
@@ -1,5 +1,5 @@
1
1
  import { MaybeConsumable } from "@yume-chan/stream-extra";
2
- export class AdbNoneProtocolPtyProcess {
2
+ export class AdbNoneProtocolPty {
3
3
  #socket;
4
4
  #writer;
5
5
  #input;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pty.js","sourceRoot":"","sources":["../../../../src/service/subprocess/none/pty.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK1D,MAAM,OAAO,kBAAkB;IAClB,OAAO,CAAa;IACpB,OAAO,CAA2D;IAElE,MAAM,CAA6C;IAC5D,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,YAAY,MAAkB;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,cAAc,CAAa;YACzD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;SAC9C,CAAC,CAAC;IACP,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI;QACA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACJ"}
@@ -0,0 +1,10 @@
1
+ import type { Adb } from "../../../adb.js";
2
+ import { AdbNoneProtocolPty } from "./pty.js";
3
+ export declare class AdbNoneProtocolSubprocessService {
4
+ #private;
5
+ get adb(): Adb;
6
+ constructor(adb: Adb);
7
+ spawn: import("./spawner.js").AdbNoneProtocolSpawner;
8
+ pty(command?: string | readonly string[]): Promise<AdbNoneProtocolPty>;
9
+ }
10
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/service/subprocess/none/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C,qBAAa,gCAAgC;;IAEzC,IAAI,GAAG,IAAI,GAAG,CAEb;gBAEW,GAAG,EAAE,GAAG;IAIpB,KAAK,gDAwBF;IAEG,GAAG,CACL,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GACrC,OAAO,CAAC,kBAAkB,CAAC;CAYjC"}
@@ -0,0 +1,44 @@
1
+ import { AdbNoneProtocolProcessImpl } from "./process.js";
2
+ import { AdbNoneProtocolPty } from "./pty.js";
3
+ import { adbNoneProtocolSpawner } from "./spawner.js";
4
+ export class AdbNoneProtocolSubprocessService {
5
+ #adb;
6
+ get adb() {
7
+ return this.#adb;
8
+ }
9
+ constructor(adb) {
10
+ this.#adb = adb;
11
+ }
12
+ spawn = adbNoneProtocolSpawner(async (command, signal) => {
13
+ if (!command.length) {
14
+ throw new Error("Command cannot be empty");
15
+ }
16
+ // Android 7 added `shell,raw:${command}` service which also triggers raw mode,
17
+ // but we want to keep backward compatibility.
18
+ let service = "exec:";
19
+ // Similar to SSH, we don't escape the `command`,
20
+ // because the command will be invoked by `sh -c`,
21
+ // it can contain environment variables (`KEY=value command`),
22
+ // and shell expansions (`echo "$KEY"` vs `echo '$KEY'`),
23
+ // which we can't know how to properly escape.
24
+ service += command.join(" ");
25
+ const socket = await this.#adb.createSocket(service);
26
+ if (signal?.aborted) {
27
+ await socket.close();
28
+ throw signal.reason;
29
+ }
30
+ return new AdbNoneProtocolProcessImpl(socket, signal);
31
+ });
32
+ async pty(command) {
33
+ let service = "shell:";
34
+ if (typeof command === "string") {
35
+ service += command;
36
+ }
37
+ else if (Array.isArray(command)) {
38
+ // Don't escape `command`. See `spawn` above for details
39
+ service += command.join(" ");
40
+ }
41
+ return new AdbNoneProtocolPty(await this.#adb.createSocket(service));
42
+ }
43
+ }
44
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../src/service/subprocess/none/service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,OAAO,gCAAgC;IAChC,IAAI,CAAM;IACnB,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,YAAY,GAAQ;QAChB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IACpB,CAAC;IAED,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QACrD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;QAED,+EAA+E;QAC/E,8CAA8C;QAC9C,IAAI,OAAO,GAAG,OAAO,CAAC;QAEtB,iDAAiD;QACjD,kDAAkD;QAClD,8DAA8D;QAC9D,yDAAyD;QACzD,8CAA8C;QAC9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YAClB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,MAAM,CAAC,MAAM,CAAC;QACxB,CAAC;QAED,OAAO,IAAI,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CACL,OAAoC;QAEpC,IAAI,OAAO,GAAG,QAAQ,CAAC;QAEvB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,OAAO,CAAC;QACvB,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,wDAAwD;YACxD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,kBAAkB,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACzE,CAAC;CACJ"}
@@ -0,0 +1,15 @@
1
+ import type { MaybePromiseLike } from "@yume-chan/async";
2
+ import type { AbortSignal, MaybeConsumable, ReadableStream, WritableStream } from "@yume-chan/stream-extra";
3
+ import type { AdbSubprocessSpawner } from "../types.js";
4
+ export interface AdbNoneProtocolProcess {
5
+ get stdin(): WritableStream<MaybeConsumable<Uint8Array>>;
6
+ /**
7
+ * Mix of stdout and stderr
8
+ */
9
+ get output(): ReadableStream<Uint8Array>;
10
+ get exited(): Promise<void>;
11
+ kill(): MaybePromiseLike<void>;
12
+ }
13
+ export type AdbNoneProtocolSpawner = (command: string | readonly string[], signal?: AbortSignal) => Promise<AdbNoneProtocolProcess> & AdbSubprocessSpawner.Wait<Uint8Array, string>;
14
+ export declare function adbNoneProtocolSpawner(spawn: (command: readonly string[], signal: AbortSignal | undefined) => Promise<AdbNoneProtocolProcess>): AdbNoneProtocolSpawner;
15
+ //# sourceMappingURL=spawner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../../../../src/service/subprocess/none/spawner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EACR,WAAW,EACX,eAAe,EACf,cAAc,EACd,cAAc,EACjB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQxD,MAAM,WAAW,sBAAsB;IACnC,IAAI,KAAK,IAAI,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IAEzD;;OAEG;IACH,IAAI,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;IAEzC,IAAI,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,sBAAsB,GAAG,CACjC,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EACnC,MAAM,CAAC,EAAE,WAAW,KACnB,OAAO,CAAC,sBAAsB,CAAC,GAChC,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAElD,wBAAgB,sBAAsB,CAClC,KAAK,EAAE,CACH,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,MAAM,EAAE,WAAW,GAAG,SAAS,KAC9B,OAAO,CAAC,sBAAsB,CAAC,GACrC,sBAAsB,CAuCxB"}
@@ -0,0 +1,31 @@
1
+ import { concatUint8Arrays } from "@yume-chan/stream-extra";
2
+ import { createLazyPromise, decodeUtf8Chunked, splitCommand, ToArrayStream, } from "../utils.js";
3
+ export function adbNoneProtocolSpawner(spawn) {
4
+ return (command, signal) => {
5
+ signal?.throwIfAborted();
6
+ if (typeof command === "string") {
7
+ command = splitCommand(command);
8
+ }
9
+ const processPromise = spawn(command, signal);
10
+ processPromise.wait = (options) => {
11
+ const waitPromise = processPromise.then(async (process) => {
12
+ const [, output] = await Promise.all([
13
+ options?.stdin?.pipeTo(process.stdin),
14
+ process.output.pipeThrough(new ToArrayStream()),
15
+ ]);
16
+ return output;
17
+ });
18
+ return createLazyPromise(async () => {
19
+ const chunks = await waitPromise;
20
+ return concatUint8Arrays(chunks);
21
+ }, {
22
+ async toString() {
23
+ const chunks = await waitPromise;
24
+ return decodeUtf8Chunked(chunks);
25
+ },
26
+ });
27
+ };
28
+ return processPromise;
29
+ };
30
+ }
31
+ //# sourceMappingURL=spawner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../../../src/service/subprocess/none/spawner.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,EACH,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,aAAa,GAChB,MAAM,aAAa,CAAC;AAqBrB,MAAM,UAAU,sBAAsB,CAClC,KAGoC;IAEpC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,EAAE,cAAc,EAAE,CAAC;QAEzB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,CACxB,OAAO,EACP,MAAM,CAEuC,CAAC;QAElD,cAAc,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE;YAC9B,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACtD,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBACjC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;oBACrC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,aAAa,EAAE,CAAC;iBAClD,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,OAAO,iBAAiB,CACpB,KAAK,IAAI,EAAE;gBACP,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBACjC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC,EACD;gBACI,KAAK,CAAC,QAAQ;oBACV,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;oBACjC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC;aACJ,CACJ,CAAC;QACN,CAAC,CAAC;QAEF,OAAO,cAAc,CAAC;IAC1B,CAAC,CAAC;AACN,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { MaybeConsumable, ReadableStream, WritableStream } from "@yume-chan/stream-extra";
3
- export interface AdbPtyProcess<TExitCode> {
3
+ export interface AdbPty<TExitCode> {
4
4
  get input(): WritableStream<MaybeConsumable<Uint8Array>>;
5
5
  get output(): ReadableStream<Uint8Array>;
6
6
  get exited(): Promise<TExitCode>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../../src/service/subprocess/pty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EACR,eAAe,EACf,cAAc,EACd,cAAc,EACjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,MAAM,CAAC,SAAS;IAC7B,IAAI,KAAK,IAAI,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,IAAI,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAEjC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAClC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pty.js","sourceRoot":"","sources":["../../../src/commands/subprocess/pty.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"pty.js","sourceRoot":"","sources":["../../../src/service/subprocess/pty.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/service/subprocess/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGxC,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,iCAAiC,EAAE,MAAM,kBAAkB,CAAC;AAErE,qBAAa,oBAAoB;;IAE7B,IAAI,GAAG,QAEN;IAGD,IAAI,YAAY,IAAI,gCAAgC,CAEnD;IAGD,IAAI,aAAa,IAAI,iCAAiC,GAAG,SAAS,CAEjE;gBAEW,GAAG,EAAE,GAAG;CASvB"}
@@ -17,7 +17,7 @@ export class AdbSubprocessService {
17
17
  constructor(adb) {
18
18
  this.#adb = adb;
19
19
  this.#noneProtocol = new AdbNoneProtocolSubprocessService(adb);
20
- if (adb.canUseFeature(AdbFeature.ShellV2)) {
20
+ if (adb.canUseFeature(AdbFeature.Shell2)) {
21
21
  this.#shellProtocol = new AdbShellProtocolSubprocessService(adb);
22
22
  }
23
23
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/service/subprocess/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,iCAAiC,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,OAAO,oBAAoB;IACpB,IAAI,CAAM;IACnB,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAEQ,aAAa,CAAmC;IACzD,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAEQ,cAAc,CAAqC;IAC5D,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,YAAY,GAAQ;QAChB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAEhB,IAAI,CAAC,aAAa,GAAG,IAAI,gCAAgC,CAAC,GAAG,CAAC,CAAC;QAE/D,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,cAAc,GAAG,IAAI,iCAAiC,CAAC,GAAG,CAAC,CAAC;QACrE,CAAC;IACL,CAAC;CACJ"}
@@ -0,0 +1,5 @@
1
+ export * from "./process.js";
2
+ export * from "./pty.js";
3
+ export * from "./service.js";
4
+ export * from "./spawner.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/subprocess/none/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/service/subprocess/shell/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}