@yume-chan/scrcpy 2.3.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 (437) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/esm/1_15/impl/codec-options.d.ts +146 -0
  4. package/esm/1_15/impl/codec-options.d.ts.map +1 -0
  5. package/esm/1_15/impl/codec-options.js +192 -0
  6. package/esm/1_15/impl/codec-options.js.map +1 -0
  7. package/esm/1_15/impl/control-message-types.d.ts +13 -2
  8. package/esm/1_15/impl/control-message-types.d.ts.map +1 -1
  9. package/esm/1_15/impl/control-message-types.js +13 -14
  10. package/esm/1_15/impl/control-message-types.js.map +1 -1
  11. package/esm/1_15/impl/index.d.ts +1 -0
  12. package/esm/1_15/impl/index.d.ts.map +1 -1
  13. package/esm/1_15/impl/index.js +1 -0
  14. package/esm/1_15/impl/index.js.map +1 -1
  15. package/esm/1_15/impl/init.d.ts +1 -22
  16. package/esm/1_15/impl/init.d.ts.map +1 -1
  17. package/esm/1_15/impl/init.js +0 -39
  18. package/esm/1_15/impl/init.js.map +1 -1
  19. package/esm/1_15/impl/inject-touch.d.ts.map +1 -1
  20. package/esm/1_15/impl/inject-touch.js +1 -0
  21. package/esm/1_15/impl/inject-touch.js.map +1 -1
  22. package/esm/1_15/impl/scroll-controller.d.ts.map +1 -1
  23. package/esm/1_15/impl/scroll-controller.js +1 -0
  24. package/esm/1_15/impl/scroll-controller.js.map +1 -1
  25. package/esm/1_15/impl/set-clipboard.d.ts.map +1 -1
  26. package/esm/1_15/impl/set-clipboard.js +5 -1
  27. package/esm/1_15/impl/set-clipboard.js.map +1 -1
  28. package/esm/1_15/options.d.ts +3 -2
  29. package/esm/1_15/options.d.ts.map +1 -1
  30. package/esm/1_15/options.js.map +1 -1
  31. package/esm/1_15_1.d.ts +1 -7
  32. package/esm/1_15_1.d.ts.map +1 -1
  33. package/esm/1_15_1.js +1 -6
  34. package/esm/1_15_1.js.map +1 -1
  35. package/esm/1_16.d.ts +1 -7
  36. package/esm/1_16.d.ts.map +1 -1
  37. package/esm/1_16.js +1 -6
  38. package/esm/1_16.js.map +1 -1
  39. package/esm/1_17/impl/defaults.d.ts.map +1 -1
  40. package/esm/1_17/impl/defaults.js +2 -2
  41. package/esm/1_17/impl/defaults.js.map +1 -1
  42. package/esm/1_17/options.d.ts +3 -2
  43. package/esm/1_17/options.d.ts.map +1 -1
  44. package/esm/1_17/options.js.map +1 -1
  45. package/esm/1_18/impl/control-message-types.d.ts +14 -2
  46. package/esm/1_18/impl/control-message-types.d.ts.map +1 -1
  47. package/esm/1_18/impl/control-message-types.js +14 -7
  48. package/esm/1_18/impl/control-message-types.js.map +1 -1
  49. package/esm/1_18/impl/defaults.d.ts.map +1 -1
  50. package/esm/1_18/impl/defaults.js +2 -2
  51. package/esm/1_18/impl/defaults.js.map +1 -1
  52. package/esm/1_18/impl/init.d.ts.map +1 -1
  53. package/esm/1_18/options.d.ts +3 -2
  54. package/esm/1_18/options.d.ts.map +1 -1
  55. package/esm/1_18/options.js.map +1 -1
  56. package/esm/1_19.d.ts +1 -7
  57. package/esm/1_19.d.ts.map +1 -1
  58. package/esm/1_19.js +1 -6
  59. package/esm/1_19.js.map +1 -1
  60. package/esm/1_20.d.ts +1 -7
  61. package/esm/1_20.d.ts.map +1 -1
  62. package/esm/1_20.js +1 -6
  63. package/esm/1_20.js.map +1 -1
  64. package/esm/1_21/impl/defaults.d.ts.map +1 -1
  65. package/esm/1_21/impl/defaults.js +2 -2
  66. package/esm/1_21/impl/defaults.js.map +1 -1
  67. package/esm/1_21/impl/index.d.ts +1 -1
  68. package/esm/1_21/impl/index.d.ts.map +1 -1
  69. package/esm/1_21/impl/index.js +1 -1
  70. package/esm/1_21/impl/index.js.map +1 -1
  71. package/esm/1_21/impl/set-clipboard.d.ts +1 -0
  72. package/esm/1_21/impl/set-clipboard.d.ts.map +1 -1
  73. package/esm/1_21/impl/set-clipboard.js +7 -0
  74. package/esm/1_21/impl/set-clipboard.js.map +1 -1
  75. package/esm/1_21/options.d.ts +3 -2
  76. package/esm/1_21/options.d.ts.map +1 -1
  77. package/esm/1_21/options.js +6 -4
  78. package/esm/1_21/options.js.map +1 -1
  79. package/esm/1_22/impl/defaults.d.ts.map +1 -1
  80. package/esm/1_22/impl/defaults.js +2 -2
  81. package/esm/1_22/impl/defaults.js.map +1 -1
  82. package/esm/1_22/options.d.ts +3 -2
  83. package/esm/1_22/options.d.ts.map +1 -1
  84. package/esm/1_22/options.js +6 -4
  85. package/esm/1_22/options.js.map +1 -1
  86. package/esm/1_23/impl/defaults.d.ts.map +1 -1
  87. package/esm/1_23/impl/defaults.js +2 -2
  88. package/esm/1_23/impl/defaults.js.map +1 -1
  89. package/esm/1_23/options.d.ts +3 -2
  90. package/esm/1_23/options.d.ts.map +1 -1
  91. package/esm/1_23/options.js +6 -4
  92. package/esm/1_23/options.js.map +1 -1
  93. package/esm/1_24/impl/defaults.d.ts.map +1 -1
  94. package/esm/1_24/impl/defaults.js +2 -2
  95. package/esm/1_24/impl/defaults.js.map +1 -1
  96. package/esm/1_24/options.d.ts +3 -2
  97. package/esm/1_24/options.d.ts.map +1 -1
  98. package/esm/1_24/options.js +6 -4
  99. package/esm/1_24/options.js.map +1 -1
  100. package/esm/1_25/impl/scroll-controller.d.ts +2 -2
  101. package/esm/1_25/impl/scroll-controller.d.ts.map +1 -1
  102. package/esm/1_25/impl/scroll-controller.js +4 -4
  103. package/esm/1_25/impl/scroll-controller.js.map +1 -1
  104. package/esm/1_25/options.d.ts +3 -2
  105. package/esm/1_25/options.d.ts.map +1 -1
  106. package/esm/1_25/options.js +6 -4
  107. package/esm/1_25/options.js.map +1 -1
  108. package/esm/2_0/impl/defaults.d.ts +3 -3
  109. package/esm/2_0/impl/defaults.d.ts.map +1 -1
  110. package/esm/2_0/impl/defaults.js +10 -4
  111. package/esm/2_0/impl/defaults.js.map +1 -1
  112. package/esm/2_0/impl/init.d.ts.map +1 -1
  113. package/esm/2_0/impl/inject-touch.d.ts +2 -2
  114. package/esm/2_0/impl/inject-touch.d.ts.map +1 -1
  115. package/esm/2_0/impl/inject-touch.js +4 -4
  116. package/esm/2_0/impl/inject-touch.js.map +1 -1
  117. package/esm/2_0/impl/parse-audio-stream-metadata.d.ts.map +1 -1
  118. package/esm/2_0/impl/parse-audio-stream-metadata.js +2 -7
  119. package/esm/2_0/impl/parse-audio-stream-metadata.js.map +1 -1
  120. package/esm/2_0/options.d.ts +6 -5
  121. package/esm/2_0/options.d.ts.map +1 -1
  122. package/esm/2_0/options.js +6 -4
  123. package/esm/2_0/options.js.map +1 -1
  124. package/esm/2_1/impl/defaults.d.ts +3 -3
  125. package/esm/2_1/impl/defaults.d.ts.map +1 -1
  126. package/esm/2_1/impl/defaults.js +2 -2
  127. package/esm/2_1/impl/defaults.js.map +1 -1
  128. package/esm/2_1/options.d.ts +6 -5
  129. package/esm/2_1/options.d.ts.map +1 -1
  130. package/esm/2_1/options.js +6 -4
  131. package/esm/2_1/options.js.map +1 -1
  132. package/esm/2_1_1.d.ts +1 -7
  133. package/esm/2_1_1.d.ts.map +1 -1
  134. package/esm/2_1_1.js +1 -6
  135. package/esm/2_1_1.js.map +1 -1
  136. package/esm/2_2/impl/defaults.d.ts +3 -3
  137. package/esm/2_2/impl/defaults.d.ts.map +1 -1
  138. package/esm/2_2/impl/defaults.js +2 -2
  139. package/esm/2_2/impl/defaults.js.map +1 -1
  140. package/esm/2_2/options.d.ts +6 -5
  141. package/esm/2_2/options.d.ts.map +1 -1
  142. package/esm/2_2/options.js +6 -4
  143. package/esm/2_2/options.js.map +1 -1
  144. package/esm/2_3/impl/init.d.ts.map +1 -1
  145. package/esm/2_3/options.d.ts +6 -5
  146. package/esm/2_3/options.d.ts.map +1 -1
  147. package/esm/2_3/options.js +6 -4
  148. package/esm/2_3/options.js.map +1 -1
  149. package/esm/2_3_1.d.ts +1 -7
  150. package/esm/2_3_1.d.ts.map +1 -1
  151. package/esm/2_3_1.js +1 -6
  152. package/esm/2_3_1.js.map +1 -1
  153. package/esm/2_4/impl/control-message-types.d.ts +17 -2
  154. package/esm/2_4/impl/control-message-types.d.ts.map +1 -1
  155. package/esm/2_4/impl/control-message-types.js +17 -8
  156. package/esm/2_4/impl/control-message-types.js.map +1 -1
  157. package/esm/2_4/impl/serialize-uhid-create.d.ts.map +1 -1
  158. package/esm/2_4/impl/serialize-uhid-create.js +1 -0
  159. package/esm/2_4/impl/serialize-uhid-create.js.map +1 -1
  160. package/esm/2_4/options.d.ts +6 -5
  161. package/esm/2_4/options.d.ts.map +1 -1
  162. package/esm/2_4/options.js +3 -3
  163. package/esm/2_4/options.js.map +1 -1
  164. package/esm/2_5.d.ts +1 -7
  165. package/esm/2_5.d.ts.map +1 -1
  166. package/esm/2_5.js +1 -6
  167. package/esm/2_5.js.map +1 -1
  168. package/esm/2_6/impl/defaults.d.ts +3 -3
  169. package/esm/2_6/impl/defaults.d.ts.map +1 -1
  170. package/esm/2_6/impl/defaults.js +2 -2
  171. package/esm/2_6/impl/defaults.js.map +1 -1
  172. package/esm/2_6/impl/init.d.ts.map +1 -1
  173. package/esm/2_6/options.d.ts +6 -5
  174. package/esm/2_6/options.d.ts.map +1 -1
  175. package/esm/2_6/options.js +3 -3
  176. package/esm/2_6/options.js.map +1 -1
  177. package/esm/2_6_1.d.ts +1 -7
  178. package/esm/2_6_1.d.ts.map +1 -1
  179. package/esm/2_6_1.js +1 -6
  180. package/esm/2_6_1.js.map +1 -1
  181. package/esm/2_7/impl/control-message-types.d.ts +18 -2
  182. package/esm/2_7/impl/control-message-types.d.ts.map +1 -1
  183. package/esm/2_7/impl/control-message-types.js +18 -7
  184. package/esm/2_7/impl/control-message-types.js.map +1 -1
  185. package/esm/2_7/impl/serialize-uhid-create.d.ts.map +1 -1
  186. package/esm/2_7/impl/serialize-uhid-create.js +1 -0
  187. package/esm/2_7/impl/serialize-uhid-create.js.map +1 -1
  188. package/esm/2_7/options.d.ts +6 -5
  189. package/esm/2_7/options.d.ts.map +1 -1
  190. package/esm/2_7/options.js +3 -3
  191. package/esm/2_7/options.js.map +1 -1
  192. package/esm/3_0/impl/control-message-types.d.ts +20 -2
  193. package/esm/3_0/impl/control-message-types.d.ts.map +1 -1
  194. package/esm/3_0/impl/control-message-types.js +20 -7
  195. package/esm/3_0/impl/control-message-types.js.map +1 -1
  196. package/esm/3_0/impl/defaults.d.ts +4 -4
  197. package/esm/3_0/impl/defaults.d.ts.map +1 -1
  198. package/esm/3_0/impl/defaults.js +8 -4
  199. package/esm/3_0/impl/defaults.js.map +1 -1
  200. package/esm/3_0/impl/init.d.ts.map +1 -1
  201. package/esm/3_0/options.d.ts +7 -6
  202. package/esm/3_0/options.d.ts.map +1 -1
  203. package/esm/3_0/options.js +3 -3
  204. package/esm/3_0/options.js.map +1 -1
  205. package/esm/3_0_1.d.ts +1 -7
  206. package/esm/3_0_1.d.ts.map +1 -1
  207. package/esm/3_0_1.js +1 -6
  208. package/esm/3_0_1.js.map +1 -1
  209. package/esm/3_0_2.d.ts +1 -7
  210. package/esm/3_0_2.d.ts.map +1 -1
  211. package/esm/3_0_2.js +1 -6
  212. package/esm/3_0_2.js.map +1 -1
  213. package/esm/3_1/impl/defaults.d.ts +4 -4
  214. package/esm/3_1/impl/defaults.d.ts.map +1 -1
  215. package/esm/3_1/impl/defaults.js +2 -2
  216. package/esm/3_1/impl/defaults.js.map +1 -1
  217. package/esm/3_1/impl/serialize-uhid-create.d.ts.map +1 -1
  218. package/esm/3_1/impl/serialize-uhid-create.js +1 -0
  219. package/esm/3_1/impl/serialize-uhid-create.js.map +1 -1
  220. package/esm/3_1/options.d.ts +7 -6
  221. package/esm/3_1/options.d.ts.map +1 -1
  222. package/esm/3_1/options.js +3 -3
  223. package/esm/3_1/options.js.map +1 -1
  224. package/esm/3_2/impl/defaults.d.ts +4 -4
  225. package/esm/3_2/impl/defaults.d.ts.map +1 -1
  226. package/esm/3_2/impl/defaults.js +2 -2
  227. package/esm/3_2/impl/defaults.js.map +1 -1
  228. package/esm/3_2/impl/init.d.ts.map +1 -1
  229. package/esm/3_2/options.d.ts +7 -6
  230. package/esm/3_2/options.d.ts.map +1 -1
  231. package/esm/3_2/options.js +3 -3
  232. package/esm/3_2/options.js.map +1 -1
  233. package/esm/3_3.d.ts +1 -7
  234. package/esm/3_3.d.ts.map +1 -1
  235. package/esm/3_3.js +1 -6
  236. package/esm/3_3.js.map +1 -1
  237. package/esm/3_3_1/options.d.ts +7 -6
  238. package/esm/3_3_1/options.d.ts.map +1 -1
  239. package/esm/3_3_1/options.js +3 -3
  240. package/esm/3_3_1/options.js.map +1 -1
  241. package/esm/3_3_2.d.ts +1 -7
  242. package/esm/3_3_2.d.ts.map +1 -1
  243. package/esm/3_3_2.js +1 -6
  244. package/esm/3_3_2.js.map +1 -1
  245. package/esm/3_3_4.d.ts +2 -0
  246. package/esm/3_3_4.d.ts.map +1 -0
  247. package/esm/3_3_4.js +2 -0
  248. package/esm/3_3_4.js.map +1 -0
  249. package/esm/android/key-code-value.d.ts +176 -0
  250. package/esm/android/key-code-value.d.ts.map +1 -0
  251. package/esm/android/key-code-value.js +180 -0
  252. package/esm/android/key-code-value.js.map +1 -0
  253. package/esm/android/key-event.d.ts +3 -164
  254. package/esm/android/key-event.d.ts.map +1 -1
  255. package/esm/android/key-event.js +2 -167
  256. package/esm/android/key-event.js.map +1 -1
  257. package/esm/base/control-message-type-value.d.ts +19 -0
  258. package/esm/base/control-message-type-value.d.ts.map +1 -0
  259. package/esm/base/control-message-type-value.js +19 -0
  260. package/esm/base/control-message-type-value.js.map +1 -0
  261. package/esm/base/control-message-type.d.ts +3 -21
  262. package/esm/base/control-message-type.d.ts.map +1 -1
  263. package/esm/base/control-message-type.js +2 -21
  264. package/esm/base/control-message-type.js.map +1 -1
  265. package/esm/base/options.d.ts +2 -1
  266. package/esm/base/options.d.ts.map +1 -1
  267. package/esm/control/index.d.ts +0 -1
  268. package/esm/control/index.d.ts.map +1 -1
  269. package/esm/control/index.js +0 -1
  270. package/esm/control/index.js.map +1 -1
  271. package/esm/control/inject-key-code.d.ts +2 -2
  272. package/esm/control/inject-key-code.d.ts.map +1 -1
  273. package/esm/control/inject-key-code.js +4 -4
  274. package/esm/control/inject-key-code.js.map +1 -1
  275. package/esm/control/inject-text.d.ts.map +1 -1
  276. package/esm/control/inject-text.js +5 -1
  277. package/esm/control/inject-text.js.map +1 -1
  278. package/esm/control/serializer.d.ts +2 -0
  279. package/esm/control/serializer.d.ts.map +1 -1
  280. package/esm/control/serializer.js +27 -19
  281. package/esm/control/serializer.js.map +1 -1
  282. package/esm/control/set-screen-power-mode.d.ts.map +1 -1
  283. package/esm/control/set-screen-power-mode.js +5 -1
  284. package/esm/control/set-screen-power-mode.js.map +1 -1
  285. package/esm/control/start-app.d.ts.map +1 -1
  286. package/esm/control/start-app.js +1 -0
  287. package/esm/control/start-app.js.map +1 -1
  288. package/esm/control/uhid.d.ts +2 -2
  289. package/esm/control/uhid.d.ts.map +1 -1
  290. package/esm/control/uhid.js +9 -5
  291. package/esm/control/uhid.js.map +1 -1
  292. package/esm/control/writer.d.ts +1 -1
  293. package/esm/control/writer.d.ts.map +1 -1
  294. package/esm/control/writer.js +1 -1
  295. package/esm/control/writer.js.map +1 -1
  296. package/esm/index.d.ts +2 -1
  297. package/esm/index.d.ts.map +1 -1
  298. package/esm/index.js +2 -1
  299. package/esm/index.js.map +1 -1
  300. package/esm/latest.d.ts +2 -2
  301. package/esm/latest.d.ts.map +1 -1
  302. package/esm/latest.js +2 -2
  303. package/esm/latest.js.map +1 -1
  304. package/esm/video/android.d.ts +69 -0
  305. package/esm/video/android.d.ts.map +1 -0
  306. package/esm/video/android.js +70 -0
  307. package/esm/video/android.js.map +1 -0
  308. package/esm/video/index.d.ts +3 -0
  309. package/esm/video/index.d.ts.map +1 -0
  310. package/esm/video/index.js +3 -0
  311. package/esm/video/index.js.map +1 -0
  312. package/esm/video/size.d.ts +21 -0
  313. package/esm/video/size.d.ts.map +1 -0
  314. package/esm/video/size.js +27 -0
  315. package/esm/video/size.js.map +1 -0
  316. package/package.json +11 -10
  317. package/src/1_15/impl/codec-options.ts +236 -0
  318. package/src/1_15/impl/control-message-types.ts +14 -14
  319. package/src/1_15/impl/index.ts +1 -0
  320. package/src/1_15/impl/init.ts +2 -76
  321. package/src/1_15/impl/inject-touch.ts +1 -0
  322. package/src/1_15/impl/scroll-controller.ts +1 -0
  323. package/src/1_15/impl/set-clipboard.ts +5 -1
  324. package/src/1_15/options.ts +1 -2
  325. package/src/1_15_1.ts +1 -11
  326. package/src/1_16.ts +1 -11
  327. package/src/1_17/impl/defaults.ts +4 -5
  328. package/src/1_17/options.ts +1 -2
  329. package/src/1_18/impl/control-message-types.ts +15 -8
  330. package/src/1_18/impl/defaults.ts +6 -7
  331. package/src/1_18/impl/init.ts +4 -2
  332. package/src/1_18/options.ts +1 -2
  333. package/src/1_19.ts +1 -11
  334. package/src/1_20.ts +1 -11
  335. package/src/1_21/impl/defaults.ts +4 -5
  336. package/src/1_21/impl/index.ts +1 -0
  337. package/src/1_21/impl/set-clipboard.ts +14 -0
  338. package/src/1_21/options.ts +10 -7
  339. package/src/1_22/impl/defaults.ts +6 -7
  340. package/src/1_22/options.ts +10 -7
  341. package/src/1_23/impl/defaults.ts +4 -5
  342. package/src/1_23/options.ts +10 -7
  343. package/src/1_24/impl/defaults.ts +4 -5
  344. package/src/1_24/options.ts +10 -7
  345. package/src/1_25/impl/scroll-controller.ts +14 -15
  346. package/src/1_25/options.ts +10 -7
  347. package/src/2_0/impl/defaults.ts +24 -19
  348. package/src/2_0/impl/init.ts +4 -2
  349. package/src/2_0/impl/inject-touch.ts +16 -17
  350. package/src/2_0/impl/parse-audio-stream-metadata.ts +3 -7
  351. package/src/2_0/options.ts +10 -7
  352. package/src/2_1/impl/defaults.ts +5 -6
  353. package/src/2_1/options.ts +10 -7
  354. package/src/2_1_1.ts +1 -14
  355. package/src/2_2/impl/defaults.ts +13 -14
  356. package/src/2_2/options.ts +10 -7
  357. package/src/2_3/impl/init.ts +4 -2
  358. package/src/2_3/options.ts +10 -7
  359. package/src/2_3_1.ts +1 -14
  360. package/src/2_4/impl/control-message-types.ts +18 -9
  361. package/src/2_4/impl/serialize-uhid-create.ts +1 -0
  362. package/src/2_4/options.ts +8 -7
  363. package/src/2_5.ts +1 -14
  364. package/src/2_6/impl/defaults.ts +4 -5
  365. package/src/2_6/impl/init.ts +4 -2
  366. package/src/2_6/options.ts +8 -7
  367. package/src/2_6_1.ts +1 -14
  368. package/src/2_7/impl/control-message-types.ts +19 -8
  369. package/src/2_7/impl/serialize-uhid-create.ts +1 -0
  370. package/src/2_7/options.ts +8 -7
  371. package/src/3_0/impl/control-message-types.ts +21 -8
  372. package/src/3_0/impl/defaults.ts +15 -12
  373. package/src/3_0/impl/init.ts +4 -2
  374. package/src/3_0/options.ts +8 -7
  375. package/src/3_0_1.ts +1 -14
  376. package/src/3_0_2.ts +1 -14
  377. package/src/3_1/impl/defaults.ts +4 -5
  378. package/src/3_1/impl/serialize-uhid-create.ts +1 -0
  379. package/src/3_1/options.ts +8 -7
  380. package/src/3_2/impl/defaults.ts +4 -5
  381. package/src/3_2/impl/init.ts +4 -2
  382. package/src/3_2/options.ts +8 -7
  383. package/src/3_3.ts +1 -14
  384. package/src/3_3_1/options.ts +8 -7
  385. package/src/3_3_2.ts +1 -14
  386. package/src/3_3_4.ts +1 -0
  387. package/src/android/key-code-value.ts +194 -0
  388. package/src/android/key-event.ts +5 -182
  389. package/src/base/control-message-type-value.ts +18 -0
  390. package/src/base/control-message-type.ts +6 -22
  391. package/src/base/options.ts +5 -1
  392. package/src/control/index.ts +0 -1
  393. package/src/control/inject-key-code.ts +11 -12
  394. package/src/control/inject-text.ts +5 -1
  395. package/src/control/serializer.ts +32 -36
  396. package/src/control/set-screen-power-mode.ts +5 -1
  397. package/src/control/start-app.ts +1 -0
  398. package/src/control/uhid.ts +14 -12
  399. package/src/control/writer.ts +1 -1
  400. package/src/index.ts +2 -1
  401. package/src/latest.ts +2 -1
  402. package/src/video/android.ts +72 -0
  403. package/src/video/index.ts +2 -0
  404. package/src/video/size.ts +40 -0
  405. package/tsconfig.build.json +0 -8
  406. package/CHANGELOG.md +0 -224
  407. package/esm/codec/av1.d.ts +0 -462
  408. package/esm/codec/av1.d.ts.map +0 -1
  409. package/esm/codec/av1.js +0 -622
  410. package/esm/codec/av1.js.map +0 -1
  411. package/esm/codec/h264.d.ts +0 -78
  412. package/esm/codec/h264.d.ts.map +0 -1
  413. package/esm/codec/h264.js +0 -254
  414. package/esm/codec/h264.js.map +0 -1
  415. package/esm/codec/h265.d.ts +0 -535
  416. package/esm/codec/h265.d.ts.map +0 -1
  417. package/esm/codec/h265.js +0 -1117
  418. package/esm/codec/h265.js.map +0 -1
  419. package/esm/codec/index.d.ts +0 -5
  420. package/esm/codec/index.d.ts.map +0 -1
  421. package/esm/codec/index.js +0 -5
  422. package/esm/codec/index.js.map +0 -1
  423. package/esm/codec/nalu.d.ts +0 -28
  424. package/esm/codec/nalu.d.ts.map +0 -1
  425. package/esm/codec/nalu.js +0 -250
  426. package/esm/codec/nalu.js.map +0 -1
  427. package/esm/control/message-type-map.d.ts +0 -15
  428. package/esm/control/message-type-map.d.ts.map +0 -1
  429. package/esm/control/message-type-map.js +0 -23
  430. package/esm/control/message-type-map.js.map +0 -1
  431. package/src/codec/av1.ts +0 -724
  432. package/src/codec/h264.ts +0 -317
  433. package/src/codec/h265.ts +0 -1410
  434. package/src/codec/index.ts +0 -4
  435. package/src/codec/nalu.ts +0 -304
  436. package/src/control/message-type-map.ts +0 -30
  437. package/tsconfig.build.tsbuildinfo +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yume-chan/scrcpy",
3
- "version": "2.3.0",
3
+ "version": "3.0.0-beta.0",
4
4
  "description": "TypeScript implementation of Scrcpy client.",
5
5
  "keywords": [
6
6
  "adb",
@@ -13,11 +13,11 @@
13
13
  "email": "cnsimonchan@live.com",
14
14
  "url": "https://chensi.moe/blog"
15
15
  },
16
- "homepage": "https://github.com/yume-chan/ya-webadb/tree/main/packages/scrcpy#readme",
16
+ "homepage": "https://github.com/yume-chan/ya-webadb/tree/main/libraries/scrcpy#readme",
17
17
  "repository": {
18
18
  "type": "git",
19
19
  "url": "git+https://github.com/yume-chan/ya-webadb.git",
20
- "directory": "packages/scrcpy"
20
+ "directory": "libraries/scrcpy"
21
21
  },
22
22
  "bugs": {
23
23
  "url": "https://github.com/yume-chan/ya-webadb/issues"
@@ -28,20 +28,21 @@
28
28
  "sideEffects": false,
29
29
  "dependencies": {
30
30
  "@yume-chan/async": "^4.1.3",
31
- "@yume-chan/struct": "^2.0.1",
32
- "@yume-chan/stream-extra": "^2.1.0",
33
- "@yume-chan/no-data-view": "^2.0.0"
31
+ "@yume-chan/event": "3.0.0-beta.0",
32
+ "@yume-chan/stream-extra": "3.0.0-beta.0",
33
+ "@yume-chan/struct": "3.0.0-beta.0",
34
+ "@yume-chan/no-data-view": "3.0.0-beta.0"
34
35
  },
35
36
  "devDependencies": {
36
- "@types/node": "^24.3.1",
37
- "prettier": "^3.6.2",
38
- "typescript": "^5.9.2",
37
+ "@types/node": "^26.0.0",
38
+ "prettier": "^3.8.4",
39
+ "typescript": "^6.0.3",
39
40
  "@yume-chan/eslint-config": "^1.0.0",
40
41
  "@yume-chan/test-runner": "^1.0.0",
41
42
  "@yume-chan/tsconfig": "^1.0.0"
42
43
  },
43
44
  "scripts": {
44
- "build": "tsc -b tsconfig.build.json",
45
+ "build": "tsc -p tsconfig.build.json",
45
46
  "lint": "run-eslint && prettier src/**/*.ts --write --tab-width 4",
46
47
  "test": "run-test"
47
48
  }
@@ -0,0 +1,236 @@
1
+ // cspell: ignore Bframes
2
+ // cspell: ignore macroblocks
3
+
4
+ import type { ScrcpyOptionValue } from "../../base/option-value.js";
5
+
6
+ export interface NumberCodecOption {
7
+ type: "int" | "float";
8
+ value: number;
9
+ }
10
+
11
+ export interface BigIntCodecOption {
12
+ type: "long";
13
+ value: bigint;
14
+ }
15
+
16
+ export interface StringCodecOption {
17
+ type: "string";
18
+ value: string;
19
+ }
20
+
21
+ export type CodecOption =
22
+ | NumberCodecOption
23
+ | BigIntCodecOption
24
+ | StringCodecOption;
25
+
26
+ export class CodecOptions implements ScrcpyOptionValue {
27
+ static Empty = /* #__PURE__ */ new CodecOptions();
28
+
29
+ #values = new Map<string, CodecOption>();
30
+ get values(): ReadonlyMap<string, CodecOption> {
31
+ return this.#values;
32
+ }
33
+
34
+ setInt(key: string, value: number): this {
35
+ this.#values.set(key, { type: "int", value });
36
+ return this;
37
+ }
38
+
39
+ setFloat(key: string, value: number): this {
40
+ this.#values.set(key, { type: "float", value });
41
+ return this;
42
+ }
43
+
44
+ setLong(key: string, value: bigint): this {
45
+ this.#values.set(key, { type: "long", value });
46
+ return this;
47
+ }
48
+
49
+ setString(key: string, value: string): this {
50
+ this.#values.set(key, { type: "string", value });
51
+ return this;
52
+ }
53
+
54
+ delete(key: string) {
55
+ return this.#values.delete(key);
56
+ }
57
+
58
+ clear() {
59
+ this.#values.clear();
60
+ }
61
+
62
+ /**
63
+ * A key describing the desired codec priority.
64
+ *
65
+ * The associated value is an integer. Higher value means lower priority.
66
+ *
67
+ * Currently, only two levels are supported:
68
+ *
69
+ * - 0: realtime priority - meaning that the codec shall support the given performance
70
+ * configuration (e.g. framerate) at realtime. This should only be used by media playback,
71
+ * capture, and possibly by realtime communication scenarios if best effort performance
72
+ * is not suitable.
73
+ * - 1: non-realtime priority (best effort).
74
+ *
75
+ * This is a hint used at codec configuration and resource planning -
76
+ * to understand the realtime requirements of the application;
77
+ * however, due to the nature of media components, performance is not guaranteed.
78
+ */
79
+ setPriority(priority: number): this {
80
+ return this.setInt("priority", priority);
81
+ }
82
+
83
+ toOptionValue(): string | undefined {
84
+ if (this.#values.size === 0) {
85
+ return undefined;
86
+ }
87
+
88
+ return Array.from(this.#values.entries(), ([key, value]) => {
89
+ let result = key;
90
+
91
+ if (value.type !== "int") {
92
+ result += ":" + value.type;
93
+ }
94
+
95
+ result += "=";
96
+
97
+ if (value.type === "string") {
98
+ result += value.value.replaceAll(",", "\\,");
99
+ } else {
100
+ result += value.value;
101
+ }
102
+
103
+ return result;
104
+ }).join(",");
105
+ }
106
+ }
107
+
108
+ export class VideoCodecOptions extends CodecOptions {
109
+ /**
110
+ * A key for applications to opt out of allowing a Surface to
111
+ * discard undisplayed/unconsumed frames as means to catch up after falling behind.
112
+ * This value is an integer.
113
+ * The value 0 indicates the surface is not allowed to drop frames.
114
+ * The value 1 indicates the surface is allowed to drop frames.
115
+ * [`MediaCodec`](https://developer.android.com/reference/android/media/MediaCodec)
116
+ * describes the semantics.
117
+ */
118
+ setAllowFrameDrop(value: boolean): this {
119
+ return this.setInt("allow-frame-drop", value ? 1 : 0);
120
+ }
121
+
122
+ /**
123
+ * An optional key describing the period of intra refresh in frames.
124
+ * This is an optional parameter that applies only to video encoders.
125
+ * If encoder supports it (MediaCodecInfo.CodecCapabilities.FEATURE_IntraRefresh),
126
+ * the whole frame is completely refreshed after the specified period.
127
+ * Also for each frame, a fix subset of macroblocks must be intra coded
128
+ * which leads to more constant bitrate than inserting a key frame.
129
+ * This key is recommended for video streaming applications as it provides
130
+ * low-delay and good error-resilience.
131
+ * This key is ignored if the video encoder does not support the intra refresh feature.
132
+ * The associated value is an integer.
133
+ */
134
+ setIntraRefreshPeriod(value: number): this {
135
+ return this.setInt("intra-refresh-period", value);
136
+ }
137
+
138
+ /**
139
+ * A key describing the frequency of key frames expressed in seconds between key frames.
140
+ *
141
+ * This key is used by video encoders.
142
+ * A negative value means no key frames are requested after the first frame.
143
+ * A zero value means a stream containing all key frames is requested.
144
+ *
145
+ * The associated value is an integer (or float since `Build.VERSION_CODES.N_MR1`).
146
+ */
147
+ setIFrameInterval(value: number, type: "int" | "float" = "int"): this {
148
+ return type === "int"
149
+ ? this.setInt("i-frame-interval", value)
150
+ : this.setFloat("i-frame-interval", value);
151
+ }
152
+
153
+ /**
154
+ *
155
+ * An optional key describing the desired encoder latency in frames.
156
+ * This is an optional parameter that applies only to video encoders.
157
+ * If encoder supports it, it should output at least one output frame
158
+ * after being queued the specified number of frames.
159
+ * This key is ignored if the video encoder does not support the latency feature.
160
+ * Use the output format to verify that this feature was enabled
161
+ * and the actual value used by the encoder.
162
+ *
163
+ * If the key is not specified, the default latency will be implementation specific.
164
+ * The associated value is an integer.
165
+ */
166
+ setLatency(value: number): this {
167
+ return this.setInt("latency", value);
168
+ }
169
+
170
+ /**
171
+ * A key describing the desired profile to be used by an encoder.
172
+ *
173
+ * The associated value is an integer. Constants are declared in
174
+ * [`MediaCodecInfo.CodecProfileLevel`](https://developer.android.com/reference/android/media/MediaCodecInfo.CodecProfileLevel).
175
+ * This key is used as a further hint when specifying a desired profile,
176
+ * and is only supported for codecs that specify a level.
177
+ *
178
+ * This key is ignored if the {@link setProfile | `profile`} is not specified.
179
+ * Otherwise, the value should be a level compatible with the configured encoding parameters.
180
+ */
181
+ setLevel(value: number): this {
182
+ return this.setInt("level", value);
183
+ }
184
+
185
+ /**
186
+ * A key describing the maximum number of B frames between I or P frames,
187
+ * to be used by a video encoder.
188
+ * The associated value is an integer.
189
+ * The default value is 0, which means that no B frames are allowed.
190
+ * Note that non-zero value does not guarantee B frames; it's up to the encoder to decide.
191
+ */
192
+ setMaxBFrames(value: number): this {
193
+ return this.setInt("max-bframes", value);
194
+ }
195
+
196
+ /**
197
+ * Instruct the video encoder in "surface-input" mode to drop excessive frames from the source,
198
+ * so that the input frame rate to the encoder does not exceed the specified fps.
199
+ * The associated value is a float, representing the max frame rate to feed the encoder at.
200
+ */
201
+ setMaxFpsToEncoder(value: number): this {
202
+ return this.setFloat("max-fps-to-encoder", value);
203
+ }
204
+
205
+ /**
206
+ * A key describing the desired profile to be used by an encoder.
207
+ *
208
+ * The associated value is an integer.
209
+ * Constants are declared in
210
+ * [MediaCodecInfo.CodecProfileLevel](https://developer.android.com/reference/android/media/MediaCodecInfo.CodecProfileLevel).
211
+ * This key is used as a hint, and is only supported for codecs that specify a profile.
212
+ * When configuring profile,
213
+ * encoder configuration may fail if other parameters are not compatible with
214
+ * the desired profile or if the desired profile is not supported,
215
+ * but it may also fail silently
216
+ * (where the encoder ends up using a different, compatible profile.)
217
+ *
218
+ * It is recommended that the profile is set for all encoders.
219
+ * For more information, see the *Encoder Profiles* section of the
220
+ * [`MediaCodec`](https://developer.android.com/reference/android/media/MediaCodec)
221
+ * API reference.
222
+ */
223
+ setProfile(value: number): this {
224
+ return this.setInt("profile", value);
225
+ }
226
+
227
+ /**
228
+ * Applies only when configuring a video encoder in "surface-input" mode.
229
+ * The associated value is a long and gives the time in microseconds
230
+ * after which the frame previously submitted to the encoder will be repeated (once)
231
+ * if no new frame became available since.
232
+ */
233
+ setRepeatPreviousFrameAfter(value: bigint): this {
234
+ return this.setLong("repeat-previous-frame-after", value);
235
+ }
236
+ }
@@ -1,16 +1,16 @@
1
+ import type { ScrcpyControlMessageTypeMap } from "../../base/index.js";
1
2
  import { ScrcpyControlMessageType } from "../../base/index.js";
2
3
 
3
- export const ControlMessageTypes: readonly ScrcpyControlMessageType[] =
4
- /* #__PURE__ */ (() => [
5
- /* 0 */ ScrcpyControlMessageType.InjectKeyCode,
6
- /* 1 */ ScrcpyControlMessageType.InjectText,
7
- /* 2 */ ScrcpyControlMessageType.InjectTouch,
8
- /* 3 */ ScrcpyControlMessageType.InjectScroll,
9
- /* 4 */ ScrcpyControlMessageType.BackOrScreenOn,
10
- /* 5 */ ScrcpyControlMessageType.ExpandNotificationPanel,
11
- /* 6 */ ScrcpyControlMessageType.CollapseNotificationPanel,
12
- /* 7 */ ScrcpyControlMessageType.GetClipboard,
13
- /* 8 */ ScrcpyControlMessageType.SetClipboard,
14
- /* 9 */ ScrcpyControlMessageType.SetDisplayPower,
15
- /* 10 */ ScrcpyControlMessageType.RotateDevice,
16
- ])();
4
+ export const ControlMessageTypes = {
5
+ [ScrcpyControlMessageType.InjectKeyCode]: 0,
6
+ [ScrcpyControlMessageType.InjectText]: 1,
7
+ [ScrcpyControlMessageType.InjectTouch]: 2,
8
+ [ScrcpyControlMessageType.InjectScroll]: 3,
9
+ [ScrcpyControlMessageType.BackOrScreenOn]: 4,
10
+ [ScrcpyControlMessageType.ExpandNotificationPanel]: 5,
11
+ [ScrcpyControlMessageType.CollapseNotificationPanel]: 6,
12
+ [ScrcpyControlMessageType.GetClipboard]: 7,
13
+ [ScrcpyControlMessageType.SetClipboard]: 8,
14
+ [ScrcpyControlMessageType.SetDisplayPower]: 9,
15
+ [ScrcpyControlMessageType.RotateDevice]: 10,
16
+ } as const satisfies ScrcpyControlMessageTypeMap;
@@ -1,5 +1,6 @@
1
1
  export * from "./back-or-screen-on.js";
2
2
  export * from "./clipboard-stream.js";
3
+ export * from "./codec-options.js";
3
4
  export * from "./control-message-types.js";
4
5
  export * from "./defaults.js";
5
6
  export * from "./init.js";
@@ -1,5 +1,7 @@
1
1
  import type { ScrcpyOptionValue } from "../../base/index.js";
2
2
 
3
+ import type { CodecOptions } from "./codec-options.js";
4
+
3
5
  export const VideoOrientation = {
4
6
  Unlocked: -1,
5
7
  Portrait: 0,
@@ -13,82 +15,6 @@ export type VideoOrientation =
13
15
 
14
16
  export type LogLevel = "debug" | "info" | "warn" | "error";
15
17
 
16
- /**
17
- * If the option you need is not in this type,
18
- * please file an issue on GitHub.
19
- */
20
- export interface CodecOptionsInit {
21
- profile?: number | undefined;
22
- level?: number | undefined;
23
-
24
- iFrameInterval?: number | undefined;
25
- maxBframes?: number | undefined;
26
- repeatPreviousFrameAfter?: number | undefined;
27
- maxPtsGapToEncoder?: number | undefined;
28
- intraRefreshPeriod?: number | undefined;
29
- }
30
-
31
- function toDashCase(input: string) {
32
- return input.replace(/([A-Z])/g, "-$1").toLowerCase();
33
- }
34
-
35
- const CodecOptionTypes: Partial<
36
- Record<keyof CodecOptionsInit, "long" | "float" | "string">
37
- > = {
38
- repeatPreviousFrameAfter: "long",
39
- maxPtsGapToEncoder: "long",
40
- };
41
-
42
- export class CodecOptions implements ScrcpyOptionValue {
43
- static Empty = /* #__PURE__ */ new CodecOptions();
44
-
45
- options: CodecOptionsInit;
46
-
47
- constructor(options: CodecOptionsInit = {}) {
48
- for (const [key, value] of Object.entries(options)) {
49
- if (value === undefined) {
50
- continue;
51
- }
52
-
53
- if (typeof value !== "number") {
54
- throw new Error(
55
- `Invalid option value for ${key}: ${String(value)}`,
56
- );
57
- }
58
- }
59
-
60
- this.options = options;
61
- }
62
-
63
- toOptionValue(): string | undefined {
64
- const entries = Object.entries(this.options).filter(
65
- ([, value]) => value !== undefined,
66
- );
67
-
68
- if (entries.length === 0) {
69
- return undefined;
70
- }
71
-
72
- return entries
73
- .map(([key, value]) => {
74
- let result = toDashCase(key);
75
-
76
- const type = CodecOptionTypes[key as keyof CodecOptionsInit];
77
- if (type) {
78
- result += `:${type}`;
79
- }
80
-
81
- result += `=${value}`;
82
- return result;
83
- })
84
- .join(",");
85
- }
86
- }
87
-
88
- export namespace CodecOptions {
89
- export type Init = CodecOptionsInit;
90
- }
91
-
92
18
  export class Crop implements ScrcpyOptionValue {
93
19
  width: number;
94
20
  height: number;
@@ -32,6 +32,7 @@ export const PointerId = {
32
32
 
33
33
  export const InjectTouchControlMessage = struct(
34
34
  {
35
+ // value of `type` can change between versions
35
36
  type: u8,
36
37
  action: u8<AndroidMotionEventAction>(),
37
38
  pointerId: u64,
@@ -6,6 +6,7 @@ import type { ScrcpyInjectScrollControlMessage } from "../../latest.js";
6
6
 
7
7
  export const InjectScrollControlMessage = struct(
8
8
  {
9
+ // value of `type` can change between versions
9
10
  type: u8,
10
11
  pointerX: u32,
11
12
  pointerY: u32,
@@ -4,7 +4,11 @@ import { string, struct, u32, u8 } from "@yume-chan/struct";
4
4
  import type { ScrcpySetClipboardControlMessage } from "../../latest.js";
5
5
 
6
6
  export const SetClipboardControlMessage = struct(
7
- { type: u8, content: string(u32) },
7
+ {
8
+ // value of `type` can change between versions
9
+ type: u8,
10
+ content: string(u32),
11
+ },
8
12
  { littleEndian: false },
9
13
  );
10
14
 
@@ -2,7 +2,6 @@ import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
3
 
4
4
  import type {
5
- ScrcpyControlMessageType,
6
5
  ScrcpyDisplay,
7
6
  ScrcpyMediaStreamPacket,
8
7
  ScrcpyOptions,
@@ -38,7 +37,7 @@ export class ScrcpyOptions1_15 implements ScrcpyOptions<Init> {
38
37
 
39
38
  readonly value: Required<Init>;
40
39
 
41
- get controlMessageTypes(): readonly ScrcpyControlMessageType[] {
40
+ get controlMessageTypes(): typeof ControlMessageTypes {
42
41
  return ControlMessageTypes;
43
42
  }
44
43
 
package/src/1_15_1.ts CHANGED
@@ -1,11 +1 @@
1
- import { ScrcpyOptions1_15 } from "./1_15/index.js";
2
-
3
- export class ScrcpyOptions1_15_1 extends ScrcpyOptions1_15 {
4
- constructor(init: ScrcpyOptions1_15.Init) {
5
- super(init);
6
- }
7
- }
8
-
9
- export namespace ScrcpyOptions1_15_1 {
10
- export type Init = ScrcpyOptions1_15.Init;
11
- }
1
+ export { ScrcpyOptions1_15 as ScrcpyOptions1_15_1 } from "./1_15/index.js";
package/src/1_16.ts CHANGED
@@ -1,11 +1 @@
1
- import { ScrcpyOptions1_15 } from "./1_15/index.js";
2
-
3
- export class ScrcpyOptions1_16 extends ScrcpyOptions1_15 {
4
- constructor(init: ScrcpyOptions1_15.Init) {
5
- super(init);
6
- }
7
- }
8
-
9
- export namespace ScrcpyOptions1_16 {
10
- export type Init = ScrcpyOptions1_15.Init;
11
- }
1
+ export { ScrcpyOptions1_15 as ScrcpyOptions1_16 } from "./1_15/index.js";
@@ -1,8 +1,7 @@
1
1
  import type { Init } from "./init.js";
2
2
  import { PrevImpl } from "./prev.js";
3
3
 
4
- export const Defaults = /* #__PURE__ */ (() =>
5
- ({
6
- ...PrevImpl.Defaults,
7
- encoderName: undefined,
8
- }) as const satisfies Required<Init>)();
4
+ export const Defaults = {
5
+ ...PrevImpl.Defaults,
6
+ encoderName: undefined,
7
+ } as const satisfies Required<Init>;
@@ -2,7 +2,6 @@ import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
3
 
4
4
  import type {
5
- ScrcpyControlMessageType,
6
5
  ScrcpyDisplay,
7
6
  ScrcpyEncoder,
8
7
  ScrcpyMediaStreamPacket,
@@ -45,7 +44,7 @@ export class ScrcpyOptions1_17
45
44
 
46
45
  readonly value: Required<Init>;
47
46
 
48
- get controlMessageTypes(): readonly ScrcpyControlMessageType[] {
47
+ get controlMessageTypes(): typeof ControlMessageTypes {
49
48
  return ControlMessageTypes;
50
49
  }
51
50
 
@@ -1,10 +1,17 @@
1
+ import type { ScrcpyControlMessageTypeMap } from "../../base/index.js";
1
2
  import { ScrcpyControlMessageType } from "../../base/index.js";
2
3
 
3
- import { PrevImpl } from "./prev.js";
4
-
5
- export const ControlMessageTypes: readonly ScrcpyControlMessageType[] =
6
- /* #__PURE__ */ (() => {
7
- const result = PrevImpl.ControlMessageTypes.slice();
8
- result.splice(6, 0, ScrcpyControlMessageType.ExpandSettingPanel);
9
- return result;
10
- })();
4
+ export const ControlMessageTypes = {
5
+ [ScrcpyControlMessageType.InjectKeyCode]: 0,
6
+ [ScrcpyControlMessageType.InjectText]: 1,
7
+ [ScrcpyControlMessageType.InjectTouch]: 2,
8
+ [ScrcpyControlMessageType.InjectScroll]: 3,
9
+ [ScrcpyControlMessageType.BackOrScreenOn]: 4,
10
+ [ScrcpyControlMessageType.ExpandNotificationPanel]: 5,
11
+ [ScrcpyControlMessageType.ExpandSettingPanel]: 6,
12
+ [ScrcpyControlMessageType.CollapseNotificationPanel]: 7,
13
+ [ScrcpyControlMessageType.GetClipboard]: 8,
14
+ [ScrcpyControlMessageType.SetClipboard]: 9,
15
+ [ScrcpyControlMessageType.SetDisplayPower]: 10,
16
+ [ScrcpyControlMessageType.RotateDevice]: 11,
17
+ } as const satisfies ScrcpyControlMessageTypeMap;
@@ -2,10 +2,9 @@ import type { Init } from "./init.js";
2
2
  import { VideoOrientation } from "./init.js";
3
3
  import { PrevImpl } from "./prev.js";
4
4
 
5
- export const Defaults = /* #__PURE__ */ (() =>
6
- ({
7
- ...PrevImpl.Defaults,
8
- logLevel: "debug",
9
- lockVideoOrientation: VideoOrientation.Unlocked,
10
- powerOffOnClose: false,
11
- }) as const satisfies Required<Init>)();
5
+ export const Defaults = {
6
+ ...PrevImpl.Defaults,
7
+ logLevel: "debug",
8
+ lockVideoOrientation: VideoOrientation.Unlocked,
9
+ powerOffOnClose: false,
10
+ } as const satisfies Required<Init>;
@@ -14,8 +14,10 @@ export const VideoOrientation = {
14
14
  export type VideoOrientation =
15
15
  (typeof VideoOrientation)[keyof typeof VideoOrientation];
16
16
 
17
- export interface Init
18
- extends Omit<PrevImpl.Init, "logLevel" | "lockVideoOrientation"> {
17
+ export interface Init extends Omit<
18
+ PrevImpl.Init,
19
+ "logLevel" | "lockVideoOrientation"
20
+ > {
19
21
  logLevel?: LogLevel;
20
22
 
21
23
  lockVideoOrientation?: VideoOrientation;
@@ -2,7 +2,6 @@ import type { MaybePromiseLike } from "@yume-chan/async";
2
2
  import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
3
3
 
4
4
  import type {
5
- ScrcpyControlMessageType,
6
5
  ScrcpyDisplay,
7
6
  ScrcpyEncoder,
8
7
  ScrcpyMediaStreamPacket,
@@ -45,7 +44,7 @@ export class ScrcpyOptions1_18
45
44
 
46
45
  readonly value: Required<Init>;
47
46
 
48
- get controlMessageTypes(): readonly ScrcpyControlMessageType[] {
47
+ get controlMessageTypes(): typeof ControlMessageTypes {
49
48
  return ControlMessageTypes;
50
49
  }
51
50
 
package/src/1_19.ts CHANGED
@@ -1,11 +1 @@
1
- import { ScrcpyOptions1_18 } from "./1_18/index.js";
2
-
3
- export class ScrcpyOptions1_19 extends ScrcpyOptions1_18 {
4
- constructor(init: ScrcpyOptions1_18.Init) {
5
- super(init);
6
- }
7
- }
8
-
9
- export namespace ScrcpyOptions1_19 {
10
- export type Init = ScrcpyOptions1_18.Init;
11
- }
1
+ export { ScrcpyOptions1_18 as ScrcpyOptions1_19 } from "./1_18/index.js";
package/src/1_20.ts CHANGED
@@ -1,11 +1 @@
1
- import { ScrcpyOptions1_18 } from "./1_18/index.js";
2
-
3
- export class ScrcpyOptions1_20 extends ScrcpyOptions1_18 {
4
- constructor(init: ScrcpyOptions1_18.Init) {
5
- super(init);
6
- }
7
- }
8
-
9
- export namespace ScrcpyOptions1_20 {
10
- export type Init = ScrcpyOptions1_18.Init;
11
- }
1
+ export { ScrcpyOptions1_18 as ScrcpyOptions1_20 } from "./1_18/index.js";
@@ -1,8 +1,7 @@
1
1
  import type { Init } from "./init.js";
2
2
  import { PrevImpl } from "./prev.js";
3
3
 
4
- export const Defaults = /* #__PURE__ */ (() =>
5
- ({
6
- ...PrevImpl.Defaults,
7
- clipboardAutosync: true,
8
- }) as const satisfies Required<Init>)();
4
+ export const Defaults = {
5
+ ...PrevImpl.Defaults,
6
+ clipboardAutosync: true,
7
+ } as const satisfies Required<Init>;
@@ -7,4 +7,5 @@ export {
7
7
  AckClipboardDeviceMessage,
8
8
  AckClipboardHandler,
9
9
  SetClipboardControlMessage,
10
+ serializeSetClipboardControlMessage,
10
11
  } from "./set-clipboard.js";