@yume-chan/scrcpy 0.0.17 → 0.0.18

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 (214) hide show
  1. package/CHANGELOG.json +21 -3
  2. package/CHANGELOG.md +13 -4
  3. package/LICENSE +1 -1
  4. package/README.md +41 -24
  5. package/bin/scrcpy-server +0 -0
  6. package/bin/version.d.ts +1 -1
  7. package/bin/version.js +1 -1
  8. package/esm/adb/client.d.ts +15 -14
  9. package/esm/adb/client.d.ts.map +1 -1
  10. package/esm/adb/client.js +66 -41
  11. package/esm/adb/client.js.map +1 -1
  12. package/esm/adb/connection.d.ts +16 -7
  13. package/esm/adb/connection.d.ts.map +1 -1
  14. package/esm/adb/connection.js +21 -13
  15. package/esm/adb/connection.js.map +1 -1
  16. package/esm/adb/options/1_16.d.ts +4 -4
  17. package/esm/adb/options/1_16.d.ts.map +1 -1
  18. package/esm/adb/options/1_16.js +2 -2
  19. package/esm/adb/options/1_16.js.map +1 -1
  20. package/esm/adb/options/1_22.d.ts +4 -4
  21. package/esm/adb/options/1_22.d.ts.map +1 -1
  22. package/esm/adb/options/1_22.js +2 -2
  23. package/esm/adb/options/1_22.js.map +1 -1
  24. package/esm/adb/options/types.d.ts +10 -9
  25. package/esm/adb/options/types.d.ts.map +1 -1
  26. package/esm/adb/options/types.js +11 -4
  27. package/esm/adb/options/types.js.map +1 -1
  28. package/esm/control/back-or-screen-on.d.ts +3 -0
  29. package/esm/control/back-or-screen-on.d.ts.map +1 -0
  30. package/esm/control/back-or-screen-on.js +2 -0
  31. package/esm/control/back-or-screen-on.js.map +1 -0
  32. package/esm/control/hover-helper.d.ts +18 -0
  33. package/esm/control/hover-helper.d.ts.map +1 -0
  34. package/esm/control/hover-helper.js +44 -0
  35. package/esm/control/hover-helper.js.map +1 -0
  36. package/esm/control/index.d.ts +11 -7
  37. package/esm/control/index.d.ts.map +1 -1
  38. package/esm/control/index.js +11 -7
  39. package/esm/control/index.js.map +1 -1
  40. package/esm/control/inject-keycode.d.ts +12 -4
  41. package/esm/control/inject-keycode.d.ts.map +1 -1
  42. package/esm/control/inject-keycode.js +15 -7
  43. package/esm/control/inject-keycode.js.map +1 -1
  44. package/esm/control/inject-scroll.d.ts +3 -0
  45. package/esm/control/inject-scroll.d.ts.map +1 -0
  46. package/esm/control/inject-scroll.js +2 -0
  47. package/esm/control/inject-scroll.js.map +1 -0
  48. package/esm/control/inject-text.d.ts +2 -2
  49. package/esm/control/inject-text.d.ts.map +1 -1
  50. package/esm/control/inject-touch.d.ts +12 -4
  51. package/esm/control/inject-touch.d.ts.map +1 -1
  52. package/esm/control/inject-touch.js +44 -11
  53. package/esm/control/inject-touch.js.map +1 -1
  54. package/esm/control/rotate-device.d.ts +2 -2
  55. package/esm/control/rotate-device.d.ts.map +1 -1
  56. package/esm/control/serializer.d.ts +22 -11
  57. package/esm/control/serializer.d.ts.map +1 -1
  58. package/esm/control/serializer.js +32 -26
  59. package/esm/control/serializer.js.map +1 -1
  60. package/esm/control/set-clipboard.d.ts +3 -0
  61. package/esm/control/set-clipboard.d.ts.map +1 -0
  62. package/esm/control/set-clipboard.js +2 -0
  63. package/esm/control/set-clipboard.js.map +1 -0
  64. package/esm/control/set-screen-power-mode.d.ts +2 -2
  65. package/esm/control/set-screen-power-mode.d.ts.map +1 -1
  66. package/esm/device-message/ack-clipboard.d.ts +9 -0
  67. package/esm/device-message/ack-clipboard.d.ts.map +1 -0
  68. package/esm/device-message/ack-clipboard.js +6 -0
  69. package/esm/device-message/ack-clipboard.js.map +1 -0
  70. package/esm/device-message/clipboard.d.ts +3 -3
  71. package/esm/device-message/clipboard.d.ts.map +1 -1
  72. package/esm/device-message/clipboard.js +4 -4
  73. package/esm/device-message/clipboard.js.map +1 -1
  74. package/esm/device-message/index.d.ts +4 -3
  75. package/esm/device-message/index.d.ts.map +1 -1
  76. package/esm/device-message/index.js +4 -3
  77. package/esm/device-message/index.js.map +1 -1
  78. package/esm/device-message/stream.d.ts +4 -3
  79. package/esm/device-message/stream.d.ts.map +1 -1
  80. package/esm/device-message/stream.js +8 -4
  81. package/esm/device-message/stream.js.map +1 -1
  82. package/esm/options/1_16/codec-options.d.ts +3 -2
  83. package/esm/options/1_16/codec-options.d.ts.map +1 -1
  84. package/esm/options/1_16/codec-options.js +6 -7
  85. package/esm/options/1_16/codec-options.js.map +1 -1
  86. package/esm/options/1_16/h264-configuration.d.ts +49 -0
  87. package/esm/options/1_16/h264-configuration.d.ts.map +1 -0
  88. package/esm/options/1_16/h264-configuration.js +414 -0
  89. package/esm/options/1_16/h264-configuration.js.map +1 -0
  90. package/esm/options/1_16/index.d.ts +4 -3
  91. package/esm/options/1_16/index.d.ts.map +1 -1
  92. package/esm/options/1_16/index.js +4 -3
  93. package/esm/options/1_16/index.js.map +1 -1
  94. package/esm/options/1_16/options.d.ts +17 -20
  95. package/esm/options/1_16/options.d.ts.map +1 -1
  96. package/esm/options/1_16/options.js +51 -49
  97. package/esm/options/1_16/options.js.map +1 -1
  98. package/esm/options/1_16/scroll.d.ts +27 -0
  99. package/esm/options/1_16/scroll.d.ts.map +1 -0
  100. package/esm/options/1_16/scroll.js +56 -0
  101. package/esm/options/1_16/scroll.js.map +1 -0
  102. package/esm/options/1_16/sps.d.ts +1 -1
  103. package/esm/options/1_16/sps.d.ts.map +1 -1
  104. package/esm/options/1_16/sps.js +25 -17
  105. package/esm/options/1_16/sps.js.map +1 -1
  106. package/esm/options/1_18.d.ts +6 -6
  107. package/esm/options/1_18.d.ts.map +1 -1
  108. package/esm/options/1_18.js +5 -5
  109. package/esm/options/1_18.js.map +1 -1
  110. package/esm/options/1_21.d.ts +12 -1
  111. package/esm/options/1_21.d.ts.map +1 -1
  112. package/esm/options/1_21.js +14 -3
  113. package/esm/options/1_21.js.map +1 -1
  114. package/esm/options/1_22/index.d.ts +3 -0
  115. package/esm/options/1_22/index.d.ts.map +1 -0
  116. package/esm/options/1_22/index.js +3 -0
  117. package/esm/options/1_22/index.js.map +1 -0
  118. package/esm/options/{1_22.d.ts → 1_22/options.d.ts} +4 -15
  119. package/esm/options/1_22/options.d.ts.map +1 -0
  120. package/esm/options/{1_22.js → 1_22/options.js} +5 -9
  121. package/esm/options/1_22/options.js.map +1 -0
  122. package/esm/options/1_22/scroll.d.ts +17 -0
  123. package/esm/options/1_22/scroll.d.ts.map +1 -0
  124. package/esm/options/1_22/scroll.js +15 -0
  125. package/esm/options/1_22/scroll.js.map +1 -0
  126. package/esm/options/1_23.d.ts +3 -3
  127. package/esm/options/1_23.d.ts.map +1 -1
  128. package/esm/options/1_23.js +7 -6
  129. package/esm/options/1_23.js.map +1 -1
  130. package/esm/options/1_25/index.d.ts +3 -0
  131. package/esm/options/1_25/index.d.ts.map +1 -0
  132. package/esm/options/1_25/index.js +3 -0
  133. package/esm/options/1_25/index.js.map +1 -0
  134. package/esm/options/1_25/options.d.ts +6 -0
  135. package/esm/options/1_25/options.d.ts.map +1 -0
  136. package/esm/options/1_25/options.js +8 -0
  137. package/esm/options/1_25/options.js.map +1 -0
  138. package/esm/options/1_25/scroll.d.ts +19 -0
  139. package/esm/options/1_25/scroll.d.ts.map +1 -0
  140. package/esm/options/1_25/scroll.js +33 -0
  141. package/esm/options/1_25/scroll.js.map +1 -0
  142. package/esm/options/index.d.ts +5 -4
  143. package/esm/options/index.d.ts.map +1 -1
  144. package/esm/options/index.js +5 -4
  145. package/esm/options/index.js.map +1 -1
  146. package/esm/options/types.d.ts +14 -12
  147. package/esm/options/types.d.ts.map +1 -1
  148. package/esm/options/types.js +6 -4
  149. package/esm/options/types.js.map +1 -1
  150. package/package.json +19 -12
  151. package/scripts/fetch-server.cjs +19 -9
  152. package/src/adb/client.ts +142 -89
  153. package/src/adb/connection.ts +77 -30
  154. package/src/adb/options/1_16.ts +13 -6
  155. package/src/adb/options/1_22.ts +12 -6
  156. package/src/adb/options/types.ts +34 -14
  157. package/src/control/back-or-screen-on.ts +4 -0
  158. package/src/control/hover-helper.ts +56 -0
  159. package/src/control/index.ts +11 -7
  160. package/src/control/inject-keycode.ts +23 -10
  161. package/src/control/inject-scroll.ts +4 -0
  162. package/src/control/inject-touch.ts +58 -14
  163. package/src/control/serializer.ts +106 -41
  164. package/src/control/set-clipboard.ts +4 -0
  165. package/src/device-message/ack-clipboard.ts +10 -0
  166. package/src/device-message/clipboard.ts +8 -8
  167. package/src/device-message/index.ts +4 -3
  168. package/src/device-message/stream.ts +17 -7
  169. package/src/options/1_16/codec-options.ts +17 -10
  170. package/src/options/1_16/h264-configuration.ts +485 -0
  171. package/src/options/1_16/index.ts +4 -3
  172. package/src/options/1_16/options.ts +175 -130
  173. package/src/options/1_16/scroll.ts +76 -0
  174. package/src/options/1_18.ts +22 -12
  175. package/src/options/1_21.ts +31 -13
  176. package/src/options/1_22/index.ts +2 -0
  177. package/src/options/{1_22.ts → 1_22/options.ts} +8 -17
  178. package/src/options/1_22/scroll.ts +26 -0
  179. package/src/options/1_23.ts +32 -20
  180. package/src/options/1_25/index.ts +2 -0
  181. package/src/options/1_25/options.ts +12 -0
  182. package/src/options/1_25/scroll.ts +52 -0
  183. package/src/options/index.ts +5 -4
  184. package/src/options/types.ts +34 -17
  185. package/tsconfig.build.json +1 -1
  186. package/tsconfig.build.tsbuildinfo +1 -1
  187. package/esm/decoder/index.d.ts +0 -28
  188. package/esm/decoder/index.d.ts.map +0 -1
  189. package/esm/decoder/index.js +0 -2
  190. package/esm/decoder/index.js.map +0 -1
  191. package/esm/decoder/tinyh264/index.d.ts +0 -20
  192. package/esm/decoder/tinyh264/index.d.ts.map +0 -1
  193. package/esm/decoder/tinyh264/index.js +0 -86
  194. package/esm/decoder/tinyh264/index.js.map +0 -1
  195. package/esm/decoder/tinyh264/worker.d.ts +0 -2
  196. package/esm/decoder/tinyh264/worker.d.ts.map +0 -1
  197. package/esm/decoder/tinyh264/worker.js +0 -3
  198. package/esm/decoder/tinyh264/worker.js.map +0 -1
  199. package/esm/decoder/tinyh264/wrapper.d.ts +0 -21
  200. package/esm/decoder/tinyh264/wrapper.d.ts.map +0 -1
  201. package/esm/decoder/tinyh264/wrapper.js +0 -74
  202. package/esm/decoder/tinyh264/wrapper.js.map +0 -1
  203. package/esm/decoder/types.d.ts +0 -2
  204. package/esm/decoder/types.d.ts.map +0 -1
  205. package/esm/decoder/types.js +0 -2
  206. package/esm/decoder/types.js.map +0 -1
  207. package/esm/decoder/web-codecs/index.d.ts +0 -22
  208. package/esm/decoder/web-codecs/index.d.ts.map +0 -1
  209. package/esm/decoder/web-codecs/index.js +0 -81
  210. package/esm/decoder/web-codecs/index.js.map +0 -1
  211. package/esm/options/1_22.d.ts.map +0 -1
  212. package/esm/options/1_22.js.map +0 -1
  213. package/src/options/1_16/sps.ts +0 -300
  214. package/tsconfig.test.tsbuildinfo +0 -1
@@ -0,0 +1,3 @@
1
+ export * from "./options.js";
2
+ export * from "./scroll.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/options/1_22/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
@@ -1,5 +1,5 @@
1
- import Struct from '@yume-chan/struct';
2
- import { ScrcpyOptions1_21, type ScrcpyOptionsInit1_21 } from './1_21.js';
1
+ import { type ScrcpyScrollController } from "../1_16/index.js";
2
+ import { ScrcpyOptions1_21, type ScrcpyOptionsInit1_21 } from "../1_21.js";
3
3
  export interface ScrcpyOptionsInit1_22 extends ScrcpyOptionsInit1_21 {
4
4
  downsizeOnError: boolean;
5
5
  /**
@@ -21,20 +21,9 @@ export interface ScrcpyOptionsInit1_22 extends ScrcpyOptionsInit1_21 {
21
21
  */
22
22
  rawVideoStream: boolean;
23
23
  }
24
- export declare const ScrcpyInjectScrollControlMessage1_22: Struct<{
25
- type: import("../index.js").ScrcpyControlMessageType.InjectScroll;
26
- pointerX: number;
27
- pointerY: number;
28
- screenWidth: number;
29
- screenHeight: number;
30
- scrollX: number;
31
- scrollY: number;
32
- buttons: number;
33
- }, never, {}, undefined>;
34
- export declare type ScrcpyInjectScrollControlMessage1_22 = typeof ScrcpyInjectScrollControlMessage1_22['TInit'];
35
24
  export declare class ScrcpyOptions1_22<T extends ScrcpyOptionsInit1_22 = ScrcpyOptionsInit1_22> extends ScrcpyOptions1_21<T> {
36
25
  constructor(init: Partial<ScrcpyOptionsInit1_22>);
37
26
  getDefaultValue(): T;
38
- serializeInjectScrollControlMessage(message: ScrcpyInjectScrollControlMessage1_22): Uint8Array;
27
+ getScrollController(): ScrcpyScrollController;
39
28
  }
40
- //# sourceMappingURL=1_22.d.ts.map
29
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/options/1_22/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAI3E,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,eAAe,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,iBAAiB,CAC1B,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CACzD,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBACP,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAWvC,eAAe,IAAI,CAAC;IAUpB,mBAAmB,IAAI,sBAAsB;CAGhE"}
@@ -1,9 +1,5 @@
1
- import Struct from '@yume-chan/struct';
2
- import { ScrcpyInjectScrollControlMessage1_16 } from './1_16/options.js';
3
- import { ScrcpyOptions1_21 } from './1_21.js';
4
- export const ScrcpyInjectScrollControlMessage1_22 = new Struct()
5
- .fields(ScrcpyInjectScrollControlMessage1_16)
6
- .int32('buttons');
1
+ import { ScrcpyOptions1_21 } from "../1_21.js";
2
+ import { ScrcpyScrollController1_22 } from "./scroll.js";
7
3
  export class ScrcpyOptions1_22 extends ScrcpyOptions1_21 {
8
4
  constructor(init) {
9
5
  if (init.rawVideoStream) {
@@ -23,8 +19,8 @@ export class ScrcpyOptions1_22 extends ScrcpyOptions1_21 {
23
19
  rawVideoStream: false,
24
20
  };
25
21
  }
26
- serializeInjectScrollControlMessage(message) {
27
- return ScrcpyInjectScrollControlMessage1_22.serialize(message);
22
+ getScrollController() {
23
+ return new ScrcpyScrollController1_22();
28
24
  }
29
25
  }
30
- //# sourceMappingURL=1_22.js.map
26
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/options/1_22/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,YAAY,CAAC;AAE3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AA2BzD,MAAM,OAAO,iBAEX,SAAQ,iBAAoB;IAC1B,YAAmB,IAAoC;QACnD,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,iDAAiD;YACjD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC9B;QAED,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEe,eAAe;QAC3B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,KAAK;SACxB,CAAC;IACN,CAAC;IAEe,mBAAmB;QAC/B,OAAO,IAAI,0BAA0B,EAAE,CAAC;IAC5C,CAAC;CACJ"}
@@ -0,0 +1,17 @@
1
+ import Struct from "@yume-chan/struct";
2
+ import { ScrcpyScrollController1_16 } from "../1_16/index.js";
3
+ export declare const ScrcpyInjectScrollControlMessage1_22: Struct<{
4
+ type: import("../../index.js").ScrcpyControlMessageType.InjectScroll;
5
+ pointerX: number;
6
+ pointerY: number;
7
+ screenWidth: number;
8
+ screenHeight: number;
9
+ scrollX: number;
10
+ scrollY: number;
11
+ buttons: number;
12
+ }, never, Record<never, never>, undefined>;
13
+ export type ScrcpyInjectScrollControlMessage1_22 = typeof ScrcpyInjectScrollControlMessage1_22["TInit"];
14
+ export declare class ScrcpyScrollController1_22 extends ScrcpyScrollController1_16 {
15
+ serializeScrollMessage(message: ScrcpyInjectScrollControlMessage1_22): Uint8Array | undefined;
16
+ }
17
+ //# sourceMappingURL=scroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../../src/options/1_22/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAEH,0BAA0B,EAC7B,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,oCAAoC;;;;;;;;;0CAE5B,CAAC;AAEtB,MAAM,MAAM,oCAAoC,GAC5C,OAAO,oCAAoC,CAAC,OAAO,CAAC,CAAC;AAEzD,qBAAa,0BAA2B,SAAQ,0BAA0B;IACtD,sBAAsB,CAClC,OAAO,EAAE,oCAAoC,GAC9C,UAAU,GAAG,SAAS;CAQ5B"}
@@ -0,0 +1,15 @@
1
+ import Struct from "@yume-chan/struct";
2
+ import { ScrcpyInjectScrollControlMessage1_16, ScrcpyScrollController1_16, } from "../1_16/index.js";
3
+ export const ScrcpyInjectScrollControlMessage1_22 = new Struct()
4
+ .fields(ScrcpyInjectScrollControlMessage1_16)
5
+ .int32("buttons");
6
+ export class ScrcpyScrollController1_22 extends ScrcpyScrollController1_16 {
7
+ serializeScrollMessage(message) {
8
+ const processed = this.processMessage(message);
9
+ if (!processed) {
10
+ return undefined;
11
+ }
12
+ return ScrcpyInjectScrollControlMessage1_22.serialize(processed);
13
+ }
14
+ }
15
+ //# sourceMappingURL=scroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/options/1_22/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACH,oCAAoC,EACpC,0BAA0B,GAC7B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,MAAM,oCAAoC,GAAG,IAAI,MAAM,EAAE;KAC3D,MAAM,CAAC,oCAAoC,CAAC;KAC5C,KAAK,CAAC,SAAS,CAAC,CAAC;AAKtB,MAAM,OAAO,0BAA2B,SAAQ,0BAA0B;IACtD,sBAAsB,CAClC,OAA6C;QAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,oCAAoC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACrE,CAAC;CACJ"}
@@ -1,6 +1,6 @@
1
- import { TransformStream } from '@yume-chan/stream-extra';
2
- import { ScrcpyOptions1_22, type ScrcpyOptionsInit1_22 } from './1_22.js';
3
- import type { ScrcpyVideoStreamPacket } from './types.js';
1
+ import { TransformStream } from "@yume-chan/stream-extra";
2
+ import { ScrcpyOptions1_22, type ScrcpyOptionsInit1_22 } from "./1_22/options.js";
3
+ import { type ScrcpyVideoStreamPacket } from "./types.js";
4
4
  export interface ScrcpyOptionsInit1_23 extends ScrcpyOptionsInit1_22 {
5
5
  cleanup: boolean;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"1_23.d.ts","sourceRoot":"","sources":["../../src/options/1_23.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,OAAO,EAAE,OAAO,CAAC;CACpB;AAID,qBAAa,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CAClF,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBACT,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAIvC,eAAe,IAAI,CAAC;IAOpB,4BAA4B,IAAI,eAAe,CAAC,UAAU,EAAE,uBAAuB,CAAC;CAqBvG"}
1
+ {"version":3,"file":"1_23.d.ts","sourceRoot":"","sources":["../../src/options/1_23.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EACH,iBAAiB,EACjB,KAAK,qBAAqB,EAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,OAAO,EAAE,OAAO,CAAC;CACpB;AAID,qBAAa,iBAAiB,CAC1B,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CACzD,SAAQ,iBAAiB,CAAC,CAAC,CAAC;gBACP,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAIvC,eAAe,IAAI,CAAC;IAOpB,4BAA4B,IAAI,eAAe,CAC3D,UAAU,EACV,uBAAuB,CAC1B;CA0BJ"}
@@ -1,5 +1,5 @@
1
- import { TransformStream } from '@yume-chan/stream-extra';
2
- import { ScrcpyOptions1_22 } from './1_22.js';
1
+ import { TransformStream } from "@yume-chan/stream-extra";
2
+ import { ScrcpyOptions1_22, } from "./1_22/options.js";
3
3
  const KEYFRAME_PTS = BigInt(1) << BigInt(62);
4
4
  export class ScrcpyOptions1_23 extends ScrcpyOptions1_22 {
5
5
  constructor(init) {
@@ -17,17 +17,18 @@ export class ScrcpyOptions1_23 extends ScrcpyOptions1_22 {
17
17
  writable: superStream.writable,
18
18
  readable: superStream.readable.pipeThrough(new TransformStream({
19
19
  transform(packet, controller) {
20
- if (packet.type !== 'frame') {
20
+ if (packet.type !== "frame") {
21
21
  controller.enqueue(packet);
22
22
  return;
23
23
  }
24
- if (packet.pts !== undefined && packet.pts & KEYFRAME_PTS) {
24
+ if (packet.pts !== undefined &&
25
+ packet.pts & KEYFRAME_PTS) {
25
26
  packet.keyframe = true;
26
27
  packet.pts &= ~KEYFRAME_PTS;
27
28
  }
28
29
  controller.enqueue(packet);
29
- }
30
- }))
30
+ },
31
+ })),
31
32
  };
32
33
  }
33
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"1_23.js","sourceRoot":"","sources":["../../src/options/1_23.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAA8B,MAAM,WAAW,CAAC;AAO1E,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AAE7C,MAAM,OAAO,iBACT,SAAQ,iBAAoB;IAC5B,YAAmB,IAAoC;QACnD,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEe,eAAe;QAC3B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAEe,4BAA4B;QACxC,MAAM,WAAW,GAAG,KAAK,CAAC,4BAA4B,EAAE,CAAC;QACzD,OAAO;YACH,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC;gBAC3D,SAAS,CAAC,MAAM,EAAE,UAAU;oBACxB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;wBACzB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBAC3B,OAAO;qBACV;oBAED,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,GAAG,YAAY,EAAE;wBACvD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACvB,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;qBAC/B;oBAED,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;aACJ,CAAC,CAAC;SACN,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"1_23.js","sourceRoot":"","sources":["../../src/options/1_23.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EACH,iBAAiB,GAEpB,MAAM,mBAAmB,CAAC;AAO3B,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AAE7C,MAAM,OAAO,iBAEX,SAAQ,iBAAoB;IAC1B,YAAmB,IAAoC;QACnD,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEe,eAAe;QAC3B,OAAO;YACH,GAAG,KAAK,CAAC,eAAe,EAAE;YAC1B,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAEe,4BAA4B;QAIxC,MAAM,WAAW,GAAG,KAAK,CAAC,4BAA4B,EAAE,CAAC;QACzD,OAAO;YACH,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,WAAW,CACtC,IAAI,eAAe,CAAC;gBAChB,SAAS,CAAC,MAAM,EAAE,UAAU;oBACxB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;wBACzB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBAC3B,OAAO;qBACV;oBAED,IACI,MAAM,CAAC,GAAG,KAAK,SAAS;wBACxB,MAAM,CAAC,GAAG,GAAG,YAAY,EAC3B;wBACE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACvB,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;qBAC/B;oBAED,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;aACJ,CAAC,CACL;SACJ,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ export * from "./options.js";
2
+ export * from "./scroll.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/options/1_25/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./options.js";
2
+ export * from "./scroll.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/options/1_25/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type ScrcpyScrollController } from "../1_16/index.js";
2
+ import { ScrcpyOptions1_24, type ScrcpyOptionsInit1_24 } from "../1_24.js";
3
+ export declare class ScrcpyOptions1_25<T extends ScrcpyOptionsInit1_24 = ScrcpyOptionsInit1_24> extends ScrcpyOptions1_24<T> {
4
+ getScrollController(): ScrcpyScrollController;
5
+ }
6
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/options/1_25/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAI3E,qBAAa,iBAAiB,CAC1B,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CACzD,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IACV,mBAAmB,IAAI,sBAAsB;CAGhE"}
@@ -0,0 +1,8 @@
1
+ import { ScrcpyOptions1_24 } from "../1_24.js";
2
+ import { ScrcpyScrollController1_25 } from "./scroll.js";
3
+ export class ScrcpyOptions1_25 extends ScrcpyOptions1_24 {
4
+ getScrollController() {
5
+ return new ScrcpyScrollController1_25();
6
+ }
7
+ }
8
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/options/1_25/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,YAAY,CAAC;AAE3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,OAAO,iBAEX,SAAQ,iBAAoB;IACV,mBAAmB;QAC/B,OAAO,IAAI,0BAA0B,EAAE,CAAC;IAC5C,CAAC;CACJ"}
@@ -0,0 +1,19 @@
1
+ import Struct, { NumberFieldType } from "@yume-chan/struct";
2
+ import { ScrcpyControlMessageType, type ScrcpyInjectScrollControlMessage } from "../../control/index.js";
3
+ import { type ScrcpyScrollController } from "../1_16/index.js";
4
+ export declare const ScrcpyFloatToInt16NumberType: NumberFieldType;
5
+ export declare const ScrcpyInjectScrollControlMessage1_25: Struct<{
6
+ type: ScrcpyControlMessageType.InjectScroll;
7
+ pointerX: number;
8
+ pointerY: number;
9
+ screenWidth: number;
10
+ screenHeight: number;
11
+ scrollX: number;
12
+ scrollY: number;
13
+ buttons: number;
14
+ }, never, Record<never, never>, undefined>;
15
+ export type ScrcpyInjectScrollControlMessage1_25 = typeof ScrcpyInjectScrollControlMessage1_25["TInit"];
16
+ export declare class ScrcpyScrollController1_25 implements ScrcpyScrollController {
17
+ serializeScrollMessage(message: ScrcpyInjectScrollControlMessage): Uint8Array | undefined;
18
+ }
19
+ //# sourceMappingURL=scroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../../src/options/1_25/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAEX,eAAe,EAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAEH,wBAAwB,EACxB,KAAK,gCAAgC,EACxC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,eAAO,MAAM,4BAA4B,EAAE,eAc1C,CAAC;AAMF,eAAO,MAAM,oCAAoC;;;;;;;;;0CAQ5B,CAAC;AAEtB,MAAM,MAAM,oCAAoC,GAC5C,OAAO,oCAAoC,CAAC,OAAO,CAAC,CAAC;AAEzD,qBAAa,0BAA2B,YAAW,sBAAsB;IACrE,sBAAsB,CAClB,OAAO,EAAE,gCAAgC,GAC1C,UAAU,GAAG,SAAS;CAG5B"}
@@ -0,0 +1,33 @@
1
+ import Struct, { NumberFieldDefinition, NumberFieldType, } from "@yume-chan/struct";
2
+ import { clamp, ScrcpyControlMessageType, } from "../../control/index.js";
3
+ export const ScrcpyFloatToInt16NumberType = {
4
+ size: 2,
5
+ signed: true,
6
+ deserialize(array, littleEndian) {
7
+ const value = NumberFieldType.Int16.deserialize(array, littleEndian);
8
+ // https://github.com/Genymobile/scrcpy/blob/1f138aef41de651668043b32c4effc2d4adbfc44/server/src/main/java/com/genymobile/scrcpy/Binary.java#L34
9
+ return value === 0x7fff ? 1 : value / 0x8000;
10
+ },
11
+ serialize(dataView, offset, value, littleEndian) {
12
+ // https://github.com/Genymobile/scrcpy/blob/1f138aef41de651668043b32c4effc2d4adbfc44/app/src/util/binary.h#L65
13
+ value = clamp(value, -1, 1);
14
+ value = value === 1 ? 0x7fff : value * 0x8000;
15
+ NumberFieldType.Int16.serialize(dataView, offset, value, littleEndian);
16
+ },
17
+ };
18
+ const ScrcpyFloatToInt16FieldDefinition = new NumberFieldDefinition(ScrcpyFloatToInt16NumberType);
19
+ export const ScrcpyInjectScrollControlMessage1_25 = new Struct()
20
+ .uint8("type", ScrcpyControlMessageType.InjectScroll)
21
+ .uint32("pointerX")
22
+ .uint32("pointerY")
23
+ .uint16("screenWidth")
24
+ .uint16("screenHeight")
25
+ .field("scrollX", ScrcpyFloatToInt16FieldDefinition)
26
+ .field("scrollY", ScrcpyFloatToInt16FieldDefinition)
27
+ .int32("buttons");
28
+ export class ScrcpyScrollController1_25 {
29
+ serializeScrollMessage(message) {
30
+ return ScrcpyInjectScrollControlMessage1_25.serialize(message);
31
+ }
32
+ }
33
+ //# sourceMappingURL=scroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/options/1_25/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EACX,qBAAqB,EACrB,eAAe,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACH,KAAK,EACL,wBAAwB,GAE3B,MAAM,wBAAwB,CAAC;AAGhC,MAAM,CAAC,MAAM,4BAA4B,GAAoB;IACzD,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,IAAI;IACZ,WAAW,CAAC,KAAK,EAAE,YAAY;QAC3B,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACrE,gJAAgJ;QAChJ,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC;IACjD,CAAC;IACD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY;QAC3C,+GAA+G;QAC/G,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC;QAC9C,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC3E,CAAC;CACJ,CAAC;AAEF,MAAM,iCAAiC,GAAG,IAAI,qBAAqB,CAC/D,4BAA4B,CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,IAAI,MAAM,EAAE;KAC3D,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,YAAqB,CAAC;KAC7D,MAAM,CAAC,UAAU,CAAC;KAClB,MAAM,CAAC,UAAU,CAAC;KAClB,MAAM,CAAC,aAAa,CAAC;KACrB,MAAM,CAAC,cAAc,CAAC;KACtB,KAAK,CAAC,SAAS,EAAE,iCAAiC,CAAC;KACnD,KAAK,CAAC,SAAS,EAAE,iCAAiC,CAAC;KACnD,KAAK,CAAC,SAAS,CAAC,CAAC;AAKtB,MAAM,OAAO,0BAA0B;IACnC,sBAAsB,CAClB,OAAyC;QAEzC,OAAO,oCAAoC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;CACJ"}
@@ -1,8 +1,9 @@
1
1
  export * from './1_16/index.js';
2
2
  export * from './1_18.js';
3
3
  export * from './1_21.js';
4
- export * from './1_22.js';
5
- export * from './1_23.js';
6
- export * from './1_24.js';
7
- export * from './types.js';
4
+ export * from "./1_22/index.js";
5
+ export * from "./1_23.js";
6
+ export * from "./1_24.js";
7
+ export * from "./1_25/index.js";
8
+ export * from "./types.js";
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/options/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/options/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
@@ -1,8 +1,9 @@
1
1
  export * from './1_16/index.js';
2
2
  export * from './1_18.js';
3
3
  export * from './1_21.js';
4
- export * from './1_22.js';
5
- export * from './1_23.js';
6
- export * from './1_24.js';
7
- export * from './types.js';
4
+ export * from "./1_22/index.js";
5
+ export * from "./1_23.js";
6
+ export * from "./1_24.js";
7
+ export * from "./1_25/index.js";
8
+ export * from "./types.js";
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/options/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/options/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
@@ -1,13 +1,12 @@
1
- import type { TransformStream } from '@yume-chan/stream-extra';
2
- import type { ScrcpyControlMessageType } from '../control/index.js';
3
- import type { ScrcpyBackOrScreenOnControlMessage1_18 } from './1_18.js';
4
- import type { ScrcpyInjectScrollControlMessage1_22 } from './1_22.js';
1
+ import { type TransformStream } from "@yume-chan/stream-extra";
2
+ import { type ScrcpyBackOrScreenOnControlMessage, type ScrcpyControlMessageType, type ScrcpySetClipboardControlMessage } from "../control/index.js";
3
+ import { type ScrcpyScrollController } from "./1_16/scroll.js";
5
4
  export declare const DEFAULT_SERVER_PATH = "/data/local/tmp/scrcpy-server.jar";
6
5
  export interface ScrcpyOptionValue {
7
6
  toOptionValue(): string | undefined;
8
7
  }
9
- export declare function isScrcpyOptionValue(value: any): value is ScrcpyOptionValue;
10
- export declare function toScrcpyOptionValue<T>(value: any, empty: T): string | T;
8
+ export declare function isScrcpyOptionValue(value: unknown): value is ScrcpyOptionValue;
9
+ export declare function toScrcpyOptionValue<T>(value: unknown, empty: T): string | T;
11
10
  export interface H264Configuration {
12
11
  profileIndex: number;
13
12
  constraintSet: number;
@@ -22,24 +21,27 @@ export interface H264Configuration {
22
21
  croppedHeight: number;
23
22
  }
24
23
  export interface ScrcpyVideoStreamConfigurationPacket {
25
- type: 'configuration';
24
+ type: "configuration";
25
+ sequenceParameterSet: Uint8Array;
26
+ pictureParameterSet: Uint8Array;
26
27
  data: H264Configuration;
27
28
  }
28
29
  export interface ScrcpyVideoStreamFramePacket {
29
- type: 'frame';
30
+ type: "frame";
30
31
  keyframe?: boolean | undefined;
31
32
  pts?: bigint | undefined;
32
33
  data: Uint8Array;
33
34
  }
34
- export declare type ScrcpyVideoStreamPacket = ScrcpyVideoStreamConfigurationPacket | ScrcpyVideoStreamFramePacket;
35
- export interface ScrcpyOptions<T> {
35
+ export type ScrcpyVideoStreamPacket = ScrcpyVideoStreamConfigurationPacket | ScrcpyVideoStreamFramePacket;
36
+ export interface ScrcpyOptions<T extends object> {
36
37
  value: Partial<T>;
37
38
  getDefaultValue(): T;
38
39
  formatServerArguments(): string[];
39
40
  getOutputEncoderNameRegex(): RegExp;
40
41
  createVideoStreamTransformer(): TransformStream<Uint8Array, ScrcpyVideoStreamPacket>;
41
42
  getControlMessageTypes(): ScrcpyControlMessageType[];
42
- serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage1_18): Uint8Array | undefined;
43
- serializeInjectScrollControlMessage(message: ScrcpyInjectScrollControlMessage1_22): Uint8Array;
43
+ serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array | undefined;
44
+ serializeSetClipboardControlMessage(message: ScrcpySetClipboardControlMessage): Uint8Array;
45
+ getScrollController(): ScrcpyScrollController;
44
46
  }
45
47
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/options/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,WAAW,CAAC;AAEtE,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAC9B,aAAa,IAAI,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,iBAAiB,CAI1E;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAUvE;AAED,MAAM,WAAW,iBAAiB;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IAEtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oCAAoC;IACjD,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,4BAA4B;IACzC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,UAAU,CAAC;CACpB;AAED,oBAAY,uBAAuB,GAC7B,oCAAoC,GACpC,4BAA4B,CAAC;AAEnC,MAAM,WAAW,aAAa,CAAC,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAElB,eAAe,IAAI,CAAC,CAAC;IAErB,qBAAqB,IAAI,MAAM,EAAE,CAAC;IAElC,yBAAyB,IAAI,MAAM,CAAC;IAEpC,4BAA4B,IAAI,eAAe,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IAErF,sBAAsB,IAAI,wBAAwB,EAAE,CAAC;IAErD,qCAAqC,CACjC,OAAO,EAAE,sCAAsC,GAChD,UAAU,GAAG,SAAS,CAAC;IAE1B,mCAAmC,CAC/B,OAAO,EAAE,oCAAoC,GAC9C,UAAU,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/options/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EACH,KAAK,kCAAkC,EACvC,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACxC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAC9B,aAAa,IAAI,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,OAAO,GACf,KAAK,IAAI,iBAAiB,CAO5B;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAW3E;AAED,MAAM,WAAW,iBAAiB;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IAEtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oCAAoC;IACjD,IAAI,EAAE,eAAe,CAAC;IACtB,oBAAoB,EAAE,UAAU,CAAC;IACjC,mBAAmB,EAAE,UAAU,CAAC;IAChC,IAAI,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,4BAA4B;IACzC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,MAAM,uBAAuB,GAC7B,oCAAoC,GACpC,4BAA4B,CAAC;AAEnC,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM;IAC3C,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAElB,eAAe,IAAI,CAAC,CAAC;IAErB,qBAAqB,IAAI,MAAM,EAAE,CAAC;IAElC,yBAAyB,IAAI,MAAM,CAAC;IAEpC,4BAA4B,IAAI,eAAe,CAC3C,UAAU,EACV,uBAAuB,CAC1B,CAAC;IAEF,sBAAsB,IAAI,wBAAwB,EAAE,CAAC;IAErD,qCAAqC,CACjC,OAAO,EAAE,kCAAkC,GAC5C,UAAU,GAAG,SAAS,CAAC;IAE1B,mCAAmC,CAC/B,OAAO,EAAE,gCAAgC,GAC1C,UAAU,CAAC;IAEd,mBAAmB,IAAI,sBAAsB,CAAC;CACjD"}
@@ -1,16 +1,18 @@
1
- export const DEFAULT_SERVER_PATH = '/data/local/tmp/scrcpy-server.jar';
1
+ export const DEFAULT_SERVER_PATH = "/data/local/tmp/scrcpy-server.jar";
2
2
  export function isScrcpyOptionValue(value) {
3
- return typeof value === 'object' &&
3
+ return (typeof value === "object" &&
4
4
  value !== null &&
5
- typeof value.toOptionValue === 'function';
5
+ "toOptionValue" in value &&
6
+ typeof value.toOptionValue === "function");
6
7
  }
7
8
  export function toScrcpyOptionValue(value, empty) {
8
9
  if (isScrcpyOptionValue(value)) {
9
10
  value = value.toOptionValue();
10
11
  }
12
+ // `value` may become `undefined` after `toOptionValue`
11
13
  if (value === undefined) {
12
14
  return empty;
13
15
  }
14
- return `${value}`;
16
+ return String(value);
15
17
  }
16
18
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/options/types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,mBAAmB,GAAG,mCAAmC,CAAC;AAMvE,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC5B,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,CAAC,aAAa,KAAK,UAAU,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAI,KAAU,EAAE,KAAQ;IACvD,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;QAC5B,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;KACjC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE;QACrB,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,GAAG,KAAK,EAAE,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/options/types.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,mBAAmB,GAAG,mCAAmC,CAAC;AAMvE,MAAM,UAAU,mBAAmB,CAC/B,KAAc;IAEd,OAAO,CACH,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,eAAe,IAAI,KAAK;QACxB,OAAO,KAAK,CAAC,aAAa,KAAK,UAAU,CAC5C,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAI,KAAc,EAAE,KAAQ;IAC3D,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;QAC5B,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;KACjC;IAED,uDAAuD;IACvD,IAAI,KAAK,KAAK,SAAS,EAAE;QACrB,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yume-chan/scrcpy",
3
- "version": "0.0.17",
3
+ "version": "0.0.18",
4
4
  "description": "TypeScript implementation of Scrcpy.",
5
5
  "keywords": [
6
6
  "adb",
@@ -29,26 +29,32 @@
29
29
  "main": "esm/index.js",
30
30
  "types": "esm/index.d.ts",
31
31
  "dependencies": {
32
- "@yume-chan/adb": "^0.0.17",
33
32
  "@yume-chan/async": "^2.2.0",
34
- "@yume-chan/event": "^0.0.17",
35
- "@yume-chan/stream-extra": "^0.0.17",
36
- "@yume-chan/struct": "^0.0.17",
37
- "tslib": "^2.4.0"
33
+ "@yume-chan/event": "^0.0.18",
34
+ "@yume-chan/stream-extra": "^0.0.18",
35
+ "@yume-chan/struct": "^0.0.18",
36
+ "tslib": "^2.4.1"
38
37
  },
39
38
  "devDependencies": {
40
- "@jest/globals": "^28.1.2",
41
- "@yume-chan/ts-package-builder": "^1.0.0",
39
+ "@jest/globals": "^29.3.1",
40
+ "@yume-chan/adb": "^0.0.18",
41
+ "@yume-chan/eslint-config": "^1.0.0",
42
+ "@yume-chan/tsconfig": "^1.0.0",
42
43
  "cross-env": "^7.0.3",
44
+ "eslint": "^8.31.0",
43
45
  "gh-release-fetch": "^3.0.2",
44
- "jest": "^28.1.2",
45
- "ts-jest": "^28.0.5",
46
- "typescript": "^4.7.4"
46
+ "jest": "^29.3.1",
47
+ "ts-jest": "^29.0.4",
48
+ "typescript": "^4.9.4"
47
49
  },
48
50
  "peerDependencies": {
51
+ "@yume-chan/adb": "^0.0.18",
49
52
  "gh-release-fetch": "^3.0.2"
50
53
  },
51
54
  "peerDependenciesMeta": {
55
+ "@yume-chan/adb": {
56
+ "optional": true
57
+ },
52
58
  "gh-release-fetch": {
53
59
  "optional": true
54
60
  }
@@ -56,6 +62,7 @@
56
62
  "scripts": {
57
63
  "build": "tsc -b tsconfig.build.json",
58
64
  "build:watch": "tsc -b tsconfig.build.json",
59
- "test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage"
65
+ "test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage",
66
+ "lint": "eslint src/**/*.ts --fix"
60
67
  }
61
68
  }
@@ -1,17 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const { fetchVersion } = require('gh-release-fetch');
4
- const path = require('path');
5
- const fs = require('fs').promises;
3
+ const { fetchVersion } = require("gh-release-fetch");
4
+ const path = require("path");
5
+ const fs = require("fs").promises;
6
6
 
7
7
  (async () => {
8
8
  const serverVersion = process.argv[2];
9
- console.log(`Downloading Scrcpy server binary version ${serverVersion}...`);
9
+ if (!serverVersion) {
10
+ console.log("Usage: fetch-scrcpy-server <version>");
11
+ process.exit(1);
12
+ }
10
13
 
11
- const binFolder = path.resolve(__dirname, '..', 'bin');
14
+ console.log(`Downloading Scrcpy server binary version ${serverVersion}...`);
15
+ const binFolder = path.resolve(__dirname, "..", "bin");
12
16
 
13
17
  await fetchVersion({
14
- repository: 'Genymobile/scrcpy',
18
+ repository: "Genymobile/scrcpy",
15
19
  version: `v${serverVersion}`,
16
20
  package: `scrcpy-server-v${serverVersion}`,
17
21
  destination: binFolder,
@@ -20,9 +24,15 @@ const fs = require('fs').promises;
20
24
 
21
25
  await fs.rename(
22
26
  path.resolve(binFolder, `scrcpy-server-v${serverVersion}`),
23
- path.resolve(binFolder, 'scrcpy-server')
27
+ path.resolve(binFolder, "scrcpy-server")
24
28
  );
25
29
 
26
- fs.writeFile(path.resolve(binFolder, 'version.js'), `export default '${serverVersion}';`);
27
- fs.writeFile(path.resolve(binFolder, 'version.d.ts'), `export default '${serverVersion}';`);
30
+ fs.writeFile(
31
+ path.resolve(binFolder, "version.js"),
32
+ `export default '${serverVersion}';`
33
+ );
34
+ fs.writeFile(
35
+ path.resolve(binFolder, "version.d.ts"),
36
+ `export default '${serverVersion}';`
37
+ );
28
38
  })();