@yume-chan/adb 0.0.9 → 0.0.10

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 (205) hide show
  1. package/CHANGELOG.json +23 -0
  2. package/CHANGELOG.md +16 -0
  3. package/LICENSE +21 -21
  4. package/README.md +227 -257
  5. package/dts/adb.d.ts.map +1 -1
  6. package/dts/auth.d.ts +11 -1
  7. package/dts/auth.d.ts.map +1 -1
  8. package/dts/backend.d.ts +3 -5
  9. package/dts/backend.d.ts.map +1 -1
  10. package/dts/commands/demo-mode.d.ts +3 -3
  11. package/dts/commands/demo-mode.d.ts.map +1 -1
  12. package/dts/commands/reverse.d.ts +2 -2
  13. package/dts/commands/reverse.d.ts.map +1 -1
  14. package/dts/commands/shell/index.d.ts +31 -5
  15. package/dts/commands/shell/index.d.ts.map +1 -1
  16. package/dts/commands/shell/legacy.d.ts +13 -2
  17. package/dts/commands/shell/legacy.d.ts.map +1 -1
  18. package/dts/commands/shell/protocol.d.ts +11 -3
  19. package/dts/commands/shell/protocol.d.ts.map +1 -1
  20. package/dts/commands/shell/types.d.ts +35 -3
  21. package/dts/commands/shell/types.d.ts.map +1 -1
  22. package/dts/commands/sync/request.d.ts +1 -1
  23. package/dts/commands/sync/request.d.ts.map +1 -1
  24. package/dts/commands/sync/response.d.ts +2 -2
  25. package/dts/commands/sync/response.d.ts.map +1 -1
  26. package/dts/commands/sync/sync.d.ts.map +1 -1
  27. package/dts/crypto.d.ts +7 -0
  28. package/dts/crypto.d.ts.map +1 -1
  29. package/dts/packet.d.ts.map +1 -1
  30. package/dts/socket/close-event-emitter.d.ts.map +1 -1
  31. package/dts/socket/controller.d.ts.map +1 -1
  32. package/dts/socket/data-event-emitter.d.ts.map +1 -1
  33. package/dts/socket/dispatcher.d.ts.map +1 -1
  34. package/dts/stream/buffered-stream.d.ts +2 -4
  35. package/dts/stream/buffered-stream.d.ts.map +1 -1
  36. package/dts/utils/encoding.d.ts +3 -0
  37. package/dts/utils/encoding.d.ts.map +1 -0
  38. package/dts/utils/index.d.ts +1 -0
  39. package/dts/utils/index.d.ts.map +1 -1
  40. package/esm/adb.js +3 -2
  41. package/esm/adb.js.map +1 -1
  42. package/esm/auth.js +2 -2
  43. package/esm/auth.js.map +1 -1
  44. package/esm/commands/demo-mode.js +9 -9
  45. package/esm/commands/demo-mode.js.map +1 -1
  46. package/esm/commands/reverse.js +3 -2
  47. package/esm/commands/reverse.js.map +1 -1
  48. package/esm/commands/shell/index.js +28 -18
  49. package/esm/commands/shell/index.js.map +1 -1
  50. package/esm/commands/shell/legacy.js +16 -0
  51. package/esm/commands/shell/legacy.js.map +1 -1
  52. package/esm/commands/shell/protocol.js +36 -9
  53. package/esm/commands/shell/protocol.js.map +1 -1
  54. package/esm/commands/sync/request.js +5 -4
  55. package/esm/commands/sync/request.js.map +1 -1
  56. package/esm/commands/sync/response.js +4 -3
  57. package/esm/commands/sync/response.js.map +1 -1
  58. package/esm/commands/sync/sync.js.map +1 -1
  59. package/esm/crypto.js +7 -2
  60. package/esm/crypto.js.map +1 -1
  61. package/esm/packet.js +12 -14
  62. package/esm/packet.js.map +1 -1
  63. package/esm/socket/close-event-emitter.js.map +1 -1
  64. package/esm/socket/controller.js.map +1 -1
  65. package/esm/socket/data-event-emitter.js.map +1 -1
  66. package/esm/socket/dispatcher.js +7 -7
  67. package/esm/socket/dispatcher.js.map +1 -1
  68. package/esm/stream/buffered-stream.js +0 -6
  69. package/esm/stream/buffered-stream.js.map +1 -1
  70. package/esm/utils/encoding.js +11 -0
  71. package/esm/utils/encoding.js.map +1 -0
  72. package/esm/utils/index.js +1 -0
  73. package/esm/utils/index.js.map +1 -1
  74. package/package.json +44 -51
  75. package/src/adb.ts +243 -242
  76. package/src/auth.ts +166 -156
  77. package/src/backend.ts +20 -24
  78. package/src/commands/base.ts +11 -11
  79. package/src/commands/demo-mode.ts +160 -160
  80. package/src/commands/framebuffer.ts +73 -73
  81. package/src/commands/index.ts +8 -8
  82. package/src/commands/install.ts +21 -21
  83. package/src/commands/reverse.ts +134 -133
  84. package/src/commands/shell/index.ts +87 -68
  85. package/src/commands/shell/legacy.ts +59 -42
  86. package/src/commands/shell/protocol.ts +121 -94
  87. package/src/commands/shell/types.ts +55 -21
  88. package/src/commands/shell/utils.ts +20 -20
  89. package/src/commands/sync/index.ts +7 -7
  90. package/src/commands/sync/list.ts +39 -39
  91. package/src/commands/sync/pull.ts +34 -34
  92. package/src/commands/sync/push.ts +46 -46
  93. package/src/commands/sync/request.ts +49 -48
  94. package/src/commands/sync/response.ts +58 -57
  95. package/src/commands/sync/stat.ts +121 -121
  96. package/src/commands/sync/sync.ts +113 -113
  97. package/src/commands/tcpip.ts +21 -21
  98. package/src/crypto.ts +285 -280
  99. package/src/features.ts +5 -5
  100. package/src/index.ts +10 -10
  101. package/src/packet.ts +84 -89
  102. package/src/socket/close-event-emitter.ts +28 -28
  103. package/src/socket/controller.ts +105 -105
  104. package/src/socket/data-event-emitter.ts +27 -27
  105. package/src/socket/dispatcher.ts +269 -269
  106. package/src/socket/index.ts +6 -6
  107. package/src/socket/logger.ts +12 -12
  108. package/src/socket/socket.ts +28 -28
  109. package/src/stream/buffered-stream.ts +92 -100
  110. package/src/stream/index.ts +2 -2
  111. package/src/stream/stream.ts +50 -50
  112. package/src/utils/auto-reset-event.ts +41 -41
  113. package/src/utils/base64.ts +274 -274
  114. package/src/utils/chunk.ts +70 -70
  115. package/src/utils/encoding.ts +13 -0
  116. package/src/utils/event-queue.ts +145 -145
  117. package/src/utils/index.ts +5 -4
  118. package/cjs/adb.js +0 -205
  119. package/cjs/adb.js.map +0 -1
  120. package/cjs/auth.js +0 -141
  121. package/cjs/auth.js.map +0 -1
  122. package/cjs/backend.js +0 -3
  123. package/cjs/backend.js.map +0 -1
  124. package/cjs/commands/base.js +0 -12
  125. package/cjs/commands/base.js.map +0 -1
  126. package/cjs/commands/demo-mode.js +0 -174
  127. package/cjs/commands/demo-mode.js.map +0 -1
  128. package/cjs/commands/framebuffer.js +0 -66
  129. package/cjs/commands/framebuffer.js.map +0 -1
  130. package/cjs/commands/index.js +0 -12
  131. package/cjs/commands/index.js.map +0 -1
  132. package/cjs/commands/install.js +0 -20
  133. package/cjs/commands/install.js.map +0 -1
  134. package/cjs/commands/reverse.js +0 -105
  135. package/cjs/commands/reverse.js.map +0 -1
  136. package/cjs/commands/shell/index.js +0 -56
  137. package/cjs/commands/shell/index.js.map +0 -1
  138. package/cjs/commands/shell/legacy.js +0 -37
  139. package/cjs/commands/shell/legacy.js.map +0 -1
  140. package/cjs/commands/shell/protocol.js +0 -83
  141. package/cjs/commands/shell/protocol.js.map +0 -1
  142. package/cjs/commands/shell/types.js +0 -3
  143. package/cjs/commands/shell/types.js.map +0 -1
  144. package/cjs/commands/shell/utils.js +0 -23
  145. package/cjs/commands/shell/utils.js.map +0 -1
  146. package/cjs/commands/sync/index.js +0 -11
  147. package/cjs/commands/sync/index.js.map +0 -1
  148. package/cjs/commands/sync/list.js +0 -36
  149. package/cjs/commands/sync/list.js.map +0 -1
  150. package/cjs/commands/sync/pull.js +0 -34
  151. package/cjs/commands/sync/pull.js.map +0 -1
  152. package/cjs/commands/sync/push.js +0 -49
  153. package/cjs/commands/sync/push.js.map +0 -1
  154. package/cjs/commands/sync/request.js +0 -48
  155. package/cjs/commands/sync/request.js.map +0 -1
  156. package/cjs/commands/sync/response.js +0 -53
  157. package/cjs/commands/sync/response.js.map +0 -1
  158. package/cjs/commands/sync/stat.js +0 -109
  159. package/cjs/commands/sync/stat.js.map +0 -1
  160. package/cjs/commands/sync/sync.js +0 -118
  161. package/cjs/commands/sync/sync.js.map +0 -1
  162. package/cjs/commands/tcpip.js +0 -28
  163. package/cjs/commands/tcpip.js.map +0 -1
  164. package/cjs/crypto.js +0 -231
  165. package/cjs/crypto.js.map +0 -1
  166. package/cjs/features.js +0 -10
  167. package/cjs/features.js.map +0 -1
  168. package/cjs/index.js +0 -14
  169. package/cjs/index.js.map +0 -1
  170. package/cjs/packet.js +0 -77
  171. package/cjs/packet.js.map +0 -1
  172. package/cjs/socket/close-event-emitter.js +0 -32
  173. package/cjs/socket/close-event-emitter.js.map +0 -1
  174. package/cjs/socket/controller.js +0 -84
  175. package/cjs/socket/controller.js.map +0 -1
  176. package/cjs/socket/data-event-emitter.js +0 -29
  177. package/cjs/socket/data-event-emitter.js.map +0 -1
  178. package/cjs/socket/dispatcher.js +0 -219
  179. package/cjs/socket/dispatcher.js.map +0 -1
  180. package/cjs/socket/index.js +0 -10
  181. package/cjs/socket/index.js.map +0 -1
  182. package/cjs/socket/logger.js +0 -3
  183. package/cjs/socket/logger.js.map +0 -1
  184. package/cjs/socket/socket.js +0 -24
  185. package/cjs/socket/socket.js.map +0 -1
  186. package/cjs/stream/buffered-stream.js +0 -78
  187. package/cjs/stream/buffered-stream.js.map +0 -1
  188. package/cjs/stream/index.js +0 -6
  189. package/cjs/stream/index.js.map +0 -1
  190. package/cjs/stream/stream.js +0 -45
  191. package/cjs/stream/stream.js.map +0 -1
  192. package/cjs/utils/auto-reset-event.js +0 -37
  193. package/cjs/utils/auto-reset-event.js.map +0 -1
  194. package/cjs/utils/base64.js +0 -210
  195. package/cjs/utils/base64.js.map +0 -1
  196. package/cjs/utils/chunk.js +0 -75
  197. package/cjs/utils/chunk.js.map +0 -1
  198. package/cjs/utils/event-queue.js +0 -108
  199. package/cjs/utils/event-queue.js.map +0 -1
  200. package/cjs/utils/index.js +0 -8
  201. package/cjs/utils/index.js.map +0 -1
  202. package/tsconfig.cjs.json +0 -11
  203. package/tsconfig.esm.json +0 -28
  204. package/tsconfig.esm.tsbuildinfo +0 -1305
  205. package/tsconfig.json +0 -18
@@ -1,113 +1,113 @@
1
- import { AutoDisposable } from '@yume-chan/event';
2
- import { Adb } from '../../adb';
3
- import { AdbFeatures } from '../../features';
4
- import { AdbSocket } from '../../socket';
5
- import { AdbBufferedStream } from '../../stream';
6
- import { AutoResetEvent } from '../../utils';
7
- import { AdbSyncEntryResponse, adbSyncOpenDir } from './list';
8
- import { adbSyncPull } from './pull';
9
- import { adbSyncPush } from './push';
10
- import { adbSyncLstat, adbSyncStat } from './stat';
11
-
12
- export class AdbSync extends AutoDisposable {
13
- protected adb: Adb;
14
-
15
- protected stream: AdbBufferedStream;
16
-
17
- protected sendLock = this.addDisposable(new AutoResetEvent());
18
-
19
- public get supportsStat(): boolean {
20
- return this.adb.features!.includes(AdbFeatures.StatV2);
21
- }
22
-
23
- public constructor(adb: Adb, socket: AdbSocket) {
24
- super();
25
-
26
- this.adb = adb;
27
- this.stream = new AdbBufferedStream(socket);
28
- }
29
-
30
- public async lstat(path: string) {
31
- await this.sendLock.wait();
32
-
33
- try {
34
- return adbSyncLstat(this.stream, path, this.supportsStat);
35
- } finally {
36
- this.sendLock.notify();
37
- }
38
- }
39
-
40
- public async stat(path: string) {
41
- if (!this.supportsStat) {
42
- throw new Error('Not supported');
43
- }
44
-
45
- await this.sendLock.wait();
46
-
47
- try {
48
- return adbSyncStat(this.stream, path);
49
- } finally {
50
- this.sendLock.notify();
51
- }
52
- }
53
-
54
- public async isDirectory(path: string): Promise<boolean> {
55
- try {
56
- await this.lstat(path + '/');
57
- return true;
58
- } catch (e) {
59
- return false;
60
- }
61
- }
62
-
63
- public async *opendir(
64
- path: string
65
- ): AsyncGenerator<AdbSyncEntryResponse, void, void> {
66
- await this.sendLock.wait();
67
-
68
- try {
69
- yield* adbSyncOpenDir(this.stream, path);
70
- } finally {
71
- this.sendLock.notify();
72
- }
73
- }
74
-
75
- public async readdir(path: string) {
76
- const results: AdbSyncEntryResponse[] = [];
77
- for await (const entry of this.opendir(path)) {
78
- results.push(entry);
79
- }
80
- return results;
81
- }
82
-
83
- public async *read(filename: string): AsyncGenerator<ArrayBuffer, void, void> {
84
- await this.sendLock.wait();
85
-
86
- try {
87
- yield* adbSyncPull(this.stream, filename);
88
- } finally {
89
- this.sendLock.notify();
90
- }
91
- }
92
-
93
- public async write(
94
- filename: string,
95
- content: ArrayLike<number> | ArrayBufferLike | AsyncIterable<ArrayBuffer>,
96
- mode?: number,
97
- mtime?: number,
98
- onProgress?: (uploaded: number) => void,
99
- ): Promise<void> {
100
- await this.sendLock.wait();
101
-
102
- try {
103
- await adbSyncPush(this.stream, filename, content, mode, mtime, undefined, onProgress);
104
- } finally {
105
- this.sendLock.notify();
106
- }
107
- }
108
-
109
- public dispose() {
110
- super.dispose();
111
- this.stream.close();
112
- }
113
- }
1
+ import { AutoDisposable } from '@yume-chan/event';
2
+ import { Adb } from '../../adb';
3
+ import { AdbFeatures } from '../../features';
4
+ import { AdbSocket } from '../../socket';
5
+ import { AdbBufferedStream } from '../../stream';
6
+ import { AutoResetEvent } from '../../utils';
7
+ import { AdbSyncEntryResponse, adbSyncOpenDir } from './list';
8
+ import { adbSyncPull } from './pull';
9
+ import { adbSyncPush } from './push';
10
+ import { adbSyncLstat, adbSyncStat } from './stat';
11
+
12
+ export class AdbSync extends AutoDisposable {
13
+ protected adb: Adb;
14
+
15
+ protected stream: AdbBufferedStream;
16
+
17
+ protected sendLock = this.addDisposable(new AutoResetEvent());
18
+
19
+ public get supportsStat(): boolean {
20
+ return this.adb.features!.includes(AdbFeatures.StatV2);
21
+ }
22
+
23
+ public constructor(adb: Adb, socket: AdbSocket) {
24
+ super();
25
+
26
+ this.adb = adb;
27
+ this.stream = new AdbBufferedStream(socket);
28
+ }
29
+
30
+ public async lstat(path: string) {
31
+ await this.sendLock.wait();
32
+
33
+ try {
34
+ return adbSyncLstat(this.stream, path, this.supportsStat);
35
+ } finally {
36
+ this.sendLock.notify();
37
+ }
38
+ }
39
+
40
+ public async stat(path: string) {
41
+ if (!this.supportsStat) {
42
+ throw new Error('Not supported');
43
+ }
44
+
45
+ await this.sendLock.wait();
46
+
47
+ try {
48
+ return adbSyncStat(this.stream, path);
49
+ } finally {
50
+ this.sendLock.notify();
51
+ }
52
+ }
53
+
54
+ public async isDirectory(path: string): Promise<boolean> {
55
+ try {
56
+ await this.lstat(path + '/');
57
+ return true;
58
+ } catch (e) {
59
+ return false;
60
+ }
61
+ }
62
+
63
+ public async *opendir(
64
+ path: string
65
+ ): AsyncGenerator<AdbSyncEntryResponse, void, void> {
66
+ await this.sendLock.wait();
67
+
68
+ try {
69
+ yield* adbSyncOpenDir(this.stream, path);
70
+ } finally {
71
+ this.sendLock.notify();
72
+ }
73
+ }
74
+
75
+ public async readdir(path: string) {
76
+ const results: AdbSyncEntryResponse[] = [];
77
+ for await (const entry of this.opendir(path)) {
78
+ results.push(entry);
79
+ }
80
+ return results;
81
+ }
82
+
83
+ public async *read(filename: string): AsyncGenerator<ArrayBuffer, void, void> {
84
+ await this.sendLock.wait();
85
+
86
+ try {
87
+ yield* adbSyncPull(this.stream, filename);
88
+ } finally {
89
+ this.sendLock.notify();
90
+ }
91
+ }
92
+
93
+ public async write(
94
+ filename: string,
95
+ content: ArrayLike<number> | ArrayBufferLike | AsyncIterable<ArrayBuffer>,
96
+ mode?: number,
97
+ mtime?: number,
98
+ onProgress?: (uploaded: number) => void,
99
+ ): Promise<void> {
100
+ await this.sendLock.wait();
101
+
102
+ try {
103
+ await adbSyncPush(this.stream, filename, content, mode, mtime, undefined, onProgress);
104
+ } finally {
105
+ this.sendLock.notify();
106
+ }
107
+ }
108
+
109
+ public override dispose() {
110
+ super.dispose();
111
+ this.stream.close();
112
+ }
113
+ }
@@ -1,21 +1,21 @@
1
- import { AdbCommandBase } from './base';
2
-
3
- export class AdbTcpIpCommand extends AdbCommandBase {
4
- public async setPort(port: number): Promise<void> {
5
- if (port <= 0) {
6
- throw new Error(`Invalid port ${port}`);
7
- }
8
-
9
- const output = await this.adb.createSocketAndReadAll(`tcpip:${port}`);
10
- if (output !== `restarting in TCP mode port: ${port}\n`) {
11
- throw new Error('Invalid response');
12
- }
13
- }
14
-
15
- public async disable(): Promise<void> {
16
- const output = await this.adb.createSocketAndReadAll('usb:');
17
- if (output !== 'restarting in USB mode\n') {
18
- throw new Error('Invalid response');
19
- }
20
- }
21
- }
1
+ import { AdbCommandBase } from './base';
2
+
3
+ export class AdbTcpIpCommand extends AdbCommandBase {
4
+ public async setPort(port: number): Promise<void> {
5
+ if (port <= 0) {
6
+ throw new Error(`Invalid port ${port}`);
7
+ }
8
+
9
+ const output = await this.adb.createSocketAndReadAll(`tcpip:${port}`);
10
+ if (output !== `restarting in TCP mode port: ${port}\n`) {
11
+ throw new Error('Invalid response');
12
+ }
13
+ }
14
+
15
+ public async disable(): Promise<void> {
16
+ const output = await this.adb.createSocketAndReadAll('usb:');
17
+ if (output !== 'restarting in USB mode\n') {
18
+ throw new Error('Invalid response');
19
+ }
20
+ }
21
+ }