@yume-chan/adb 0.0.12 → 0.0.15

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 (145) hide show
  1. package/CHANGELOG.json +54 -0
  2. package/CHANGELOG.md +28 -1
  3. package/README.md +24 -17
  4. package/esm/adb.d.ts +10 -9
  5. package/esm/adb.d.ts.map +1 -1
  6. package/esm/adb.js +88 -67
  7. package/esm/adb.js.map +1 -1
  8. package/esm/auth.d.ts +6 -6
  9. package/esm/auth.d.ts.map +1 -1
  10. package/esm/auth.js +8 -6
  11. package/esm/auth.js.map +1 -1
  12. package/esm/backend.d.ts +2 -2
  13. package/esm/commands/install.d.ts.map +1 -1
  14. package/esm/commands/install.js +5 -7
  15. package/esm/commands/install.js.map +1 -1
  16. package/esm/commands/reverse.d.ts +9 -12
  17. package/esm/commands/reverse.d.ts.map +1 -1
  18. package/esm/commands/reverse.js +44 -36
  19. package/esm/commands/reverse.js.map +1 -1
  20. package/esm/commands/subprocess/index.d.ts +19 -20
  21. package/esm/commands/subprocess/index.d.ts.map +1 -1
  22. package/esm/commands/subprocess/index.js +36 -31
  23. package/esm/commands/subprocess/index.js.map +1 -1
  24. package/esm/commands/subprocess/legacy.d.ts +14 -7
  25. package/esm/commands/subprocess/legacy.d.ts.map +1 -1
  26. package/esm/commands/subprocess/legacy.js +14 -5
  27. package/esm/commands/subprocess/legacy.js.map +1 -1
  28. package/esm/commands/subprocess/protocol.d.ts +3 -2
  29. package/esm/commands/subprocess/protocol.d.ts.map +1 -1
  30. package/esm/commands/subprocess/protocol.js +6 -4
  31. package/esm/commands/subprocess/protocol.js.map +1 -1
  32. package/esm/commands/subprocess/protocols/index.d.ts +4 -0
  33. package/esm/commands/subprocess/protocols/index.d.ts.map +1 -0
  34. package/esm/commands/subprocess/protocols/index.js +4 -0
  35. package/esm/commands/subprocess/protocols/index.js.map +1 -0
  36. package/esm/commands/subprocess/protocols/none.d.ts +35 -0
  37. package/esm/commands/subprocess/protocols/none.d.ts.map +1 -0
  38. package/esm/commands/subprocess/protocols/none.js +53 -0
  39. package/esm/commands/subprocess/protocols/none.js.map +1 -0
  40. package/esm/commands/subprocess/protocols/shell.d.ts +39 -0
  41. package/esm/commands/subprocess/protocols/shell.d.ts.map +1 -0
  42. package/esm/commands/subprocess/protocols/shell.js +155 -0
  43. package/esm/commands/subprocess/protocols/shell.js.map +1 -0
  44. package/esm/commands/subprocess/protocols/types.d.ts +50 -0
  45. package/esm/commands/subprocess/protocols/types.d.ts.map +1 -0
  46. package/esm/commands/subprocess/protocols/types.js +2 -0
  47. package/esm/commands/subprocess/protocols/types.js.map +1 -0
  48. package/esm/commands/subprocess/types.d.ts +9 -6
  49. package/esm/commands/subprocess/types.d.ts.map +1 -1
  50. package/esm/commands/sync/list.d.ts +25 -1
  51. package/esm/commands/sync/list.d.ts.map +1 -1
  52. package/esm/commands/sync/list.js +40 -5
  53. package/esm/commands/sync/list.js.map +1 -1
  54. package/esm/commands/sync/pull.d.ts.map +1 -1
  55. package/esm/commands/sync/pull.js +6 -3
  56. package/esm/commands/sync/pull.js.map +1 -1
  57. package/esm/commands/sync/request.d.ts +1 -0
  58. package/esm/commands/sync/request.d.ts.map +1 -1
  59. package/esm/commands/sync/request.js +1 -0
  60. package/esm/commands/sync/request.js.map +1 -1
  61. package/esm/commands/sync/response.d.ts +2 -1
  62. package/esm/commands/sync/response.d.ts.map +1 -1
  63. package/esm/commands/sync/response.js +2 -1
  64. package/esm/commands/sync/response.js.map +1 -1
  65. package/esm/commands/sync/stat.d.ts +13 -1
  66. package/esm/commands/sync/stat.d.ts.map +1 -1
  67. package/esm/commands/sync/stat.js +22 -9
  68. package/esm/commands/sync/stat.js.map +1 -1
  69. package/esm/commands/sync/sync.d.ts +13 -35
  70. package/esm/commands/sync/sync.d.ts.map +1 -1
  71. package/esm/commands/sync/sync.js +40 -10
  72. package/esm/commands/sync/sync.js.map +1 -1
  73. package/esm/crypto.d.ts +23 -10
  74. package/esm/crypto.d.ts.map +1 -1
  75. package/esm/crypto.js +64 -46
  76. package/esm/crypto.js.map +1 -1
  77. package/esm/features.d.ts +4 -2
  78. package/esm/features.d.ts.map +1 -1
  79. package/esm/features.js +6 -2
  80. package/esm/features.js.map +1 -1
  81. package/esm/packet.d.ts +21 -2
  82. package/esm/packet.d.ts.map +1 -1
  83. package/esm/packet.js +2 -2
  84. package/esm/packet.js.map +1 -1
  85. package/esm/socket/dispatcher.d.ts +35 -23
  86. package/esm/socket/dispatcher.d.ts.map +1 -1
  87. package/esm/socket/dispatcher.js +97 -72
  88. package/esm/socket/dispatcher.js.map +1 -1
  89. package/esm/socket/socket.d.ts +29 -8
  90. package/esm/socket/socket.d.ts.map +1 -1
  91. package/esm/socket/socket.js +43 -29
  92. package/esm/socket/socket.js.map +1 -1
  93. package/esm/stream/buffered.d.ts +1 -1
  94. package/esm/stream/buffered.d.ts.map +1 -1
  95. package/esm/stream/buffered.js +2 -2
  96. package/esm/stream/buffered.js.map +1 -1
  97. package/esm/stream/detect.d.ts +1 -17
  98. package/esm/stream/detect.d.ts.map +1 -1
  99. package/esm/stream/detect.js +4 -5
  100. package/esm/stream/detect.js.map +1 -1
  101. package/esm/stream/detect.polyfill.d.ts +1 -1
  102. package/esm/stream/detect.polyfill.d.ts.map +1 -1
  103. package/esm/stream/detect.polyfill.js +4 -1
  104. package/esm/stream/detect.polyfill.js.map +1 -1
  105. package/esm/stream/transform.d.ts +39 -33
  106. package/esm/stream/transform.d.ts.map +1 -1
  107. package/esm/stream/transform.js +121 -100
  108. package/esm/stream/transform.js.map +1 -1
  109. package/esm/utils/base64.js +5 -5
  110. package/esm/utils/base64.js.map +1 -1
  111. package/esm/utils/encoding.d.ts.map +1 -1
  112. package/esm/utils/encoding.js.map +1 -1
  113. package/esm/utils/index.d.ts +1 -1
  114. package/esm/utils/index.d.ts.map +1 -1
  115. package/esm/utils/index.js +1 -1
  116. package/esm/utils/index.js.map +1 -1
  117. package/package.json +7 -7
  118. package/src/adb.ts +112 -86
  119. package/src/auth.ts +21 -18
  120. package/src/backend.ts +2 -2
  121. package/src/commands/install.ts +7 -9
  122. package/src/commands/reverse.ts +48 -44
  123. package/src/commands/subprocess/index.ts +57 -42
  124. package/src/commands/subprocess/protocols/index.ts +3 -0
  125. package/src/commands/subprocess/{legacy.ts → protocols/none.ts} +20 -10
  126. package/src/commands/subprocess/{protocol.ts → protocols/shell.ts} +22 -17
  127. package/src/commands/subprocess/{types.ts → protocols/types.ts} +13 -9
  128. package/src/commands/sync/list.ts +51 -5
  129. package/src/commands/sync/pull.ts +6 -3
  130. package/src/commands/sync/request.ts +1 -0
  131. package/src/commands/sync/response.ts +8 -2
  132. package/src/commands/sync/stat.ts +36 -9
  133. package/src/commands/sync/sync.ts +56 -20
  134. package/src/crypto.ts +72 -56
  135. package/src/features.ts +6 -2
  136. package/src/packet.ts +17 -6
  137. package/src/socket/dispatcher.ts +139 -91
  138. package/src/socket/socket.ts +76 -61
  139. package/src/stream/buffered.ts +2 -2
  140. package/src/stream/detect.polyfill.ts +5 -2
  141. package/src/stream/detect.ts +4 -24
  142. package/src/stream/transform.ts +144 -124
  143. package/src/utils/index.ts +1 -1
  144. package/tsconfig.build.tsbuildinfo +1 -1
  145. package/src/utils/encoding.ts +0 -13
@@ -2,116 +2,88 @@ import { PromiseResolver } from "@yume-chan/async";
2
2
  import { decodeUtf8 } from "../utils/index.js";
3
3
  import { BufferedStream, BufferedStreamEndedError } from "./buffered.js";
4
4
  import { AbortController, ReadableStream, TransformStream, WritableStream } from "./detect.js";
5
+ /**
6
+ * A factory for creating a duplex stream.
7
+ *
8
+ * It can create multiple `ReadableStream`s and `WritableStream`s,
9
+ * when any of them is closed, all other streams will be closed as well.
10
+ */
5
11
  export class DuplexStreamFactory {
6
12
  readableControllers = [];
7
- pushReadableControllers = [];
13
+ writers = [];
14
+ _writableClosed = false;
15
+ get writableClosed() { return this._writableClosed; }
8
16
  _closed = new PromiseResolver();
9
17
  get closed() { return this._closed.promise; }
10
18
  options;
11
- _closeRequestedByReadable = false;
12
- _writableClosed = false;
13
19
  constructor(options) {
14
20
  this.options = options ?? {};
15
21
  }
16
- createPushReadable(source, strategy) {
17
- return new PushReadableStream(controller => {
18
- this.pushReadableControllers.push(controller);
19
- controller.abortSignal.addEventListener('abort', async () => {
20
- this._closeRequestedByReadable = true;
21
- await this.close();
22
- });
23
- source({
24
- abortSignal: controller.abortSignal,
25
- async enqueue(chunk) {
26
- await controller.enqueue(chunk);
27
- },
28
- close: async () => {
29
- controller.close();
30
- this._closeRequestedByReadable = true;
31
- await this.close();
32
- },
33
- error: async (e) => {
34
- controller.error(e);
35
- this._closeRequestedByReadable = true;
36
- await this.close();
37
- },
38
- });
39
- }, strategy);
40
- }
41
- ;
42
- createWrapReadable(readable) {
22
+ wrapReadable(readable) {
43
23
  return new WrapReadableStream({
44
- async start() {
45
- return {
46
- readable,
47
- state: undefined,
48
- };
49
- },
50
- close: async () => {
51
- this._closeRequestedByReadable = true;
52
- await this.close();
53
- },
54
- });
55
- }
56
- createReadable(source, strategy) {
57
- return new ReadableStream({
58
- start: async (controller) => {
24
+ start: (controller) => {
59
25
  this.readableControllers.push(controller);
60
- await source?.start?.(controller);
61
- },
62
- pull: (controller) => {
63
- return source?.pull?.(controller);
26
+ return readable;
64
27
  },
65
- cancel: async (reason) => {
66
- await source?.cancel?.(reason);
67
- this._closeRequestedByReadable = true;
28
+ cancel: async () => {
29
+ // cancel means the local peer closes the connection first.
68
30
  await this.close();
69
31
  },
70
- }, strategy);
32
+ close: async () => {
33
+ // stream end means the remote peer closed the connection first.
34
+ await this.dispose();
35
+ },
36
+ });
71
37
  }
72
- createWritable(sink, strategy) {
38
+ createWritable(stream) {
39
+ const writer = stream.getWriter();
40
+ this.writers.push(writer);
41
+ // `WritableStream` has no way to tell if the remote peer has closed the connection.
42
+ // So it only triggers `close`.
73
43
  return new WritableStream({
74
- start: async (controller) => {
75
- await sink.start?.(controller);
44
+ write: async (chunk) => {
45
+ await writer.ready;
46
+ await writer.write(chunk);
76
47
  },
77
- write: async (chunk, controller) => {
78
- if (this._writableClosed) {
79
- throw new Error("stream is closed");
80
- }
81
- await sink.write?.(chunk, controller);
48
+ abort: async (reason) => {
49
+ await writer.abort(reason);
50
+ await this.close();
82
51
  },
83
52
  close: async () => {
84
- await sink.close?.();
85
- this.close();
86
- },
87
- abort: async (reason) => {
88
- await sink.abort?.(reason);
53
+ try {
54
+ await writer.close();
55
+ }
56
+ catch { }
89
57
  await this.close();
90
58
  },
91
- }, strategy);
59
+ });
92
60
  }
93
- async closeReadableStreams() {
94
- this._closed.resolve();
95
- await this.options.close?.();
96
- for (const controller of this.readableControllers) {
61
+ async close() {
62
+ if (this._writableClosed) {
63
+ return;
64
+ }
65
+ this._writableClosed = true;
66
+ if (await this.options.close?.() !== false) {
67
+ // `close` can return `false` to disable automatic `dispose`.
68
+ await this.dispose();
69
+ }
70
+ for (const writer of this.writers) {
97
71
  try {
98
- controller.close();
72
+ await writer.close();
99
73
  }
100
74
  catch { }
101
75
  }
102
- for (const controller of this.pushReadableControllers) {
76
+ }
77
+ async dispose() {
78
+ this._writableClosed = true;
79
+ this._closed.resolve();
80
+ for (const controller of this.readableControllers) {
103
81
  try {
104
82
  controller.close();
105
83
  }
106
84
  catch { }
107
85
  }
108
- }
109
- async close() {
110
- this._writableClosed = true;
111
- if (this._closeRequestedByReadable ||
112
- !this.options.preventCloseReadableStreams) {
113
- await this.closeReadableStreams();
114
- }
86
+ await this.options.dispose?.();
115
87
  }
116
88
  }
117
89
  export class DecodeUtf8Stream extends TransformStream {
@@ -123,19 +95,19 @@ export class DecodeUtf8Stream extends TransformStream {
123
95
  });
124
96
  }
125
97
  }
126
- export class GatherStringStream extends TransformStream {
98
+ export class GatherStringStream extends WritableStream {
127
99
  // Optimization: rope (concat strings) is faster than `[].join('')`
128
100
  _result = '';
129
101
  get result() { return this._result; }
130
102
  constructor() {
131
103
  super({
132
- transform: (chunk) => {
104
+ write: (chunk) => {
133
105
  this._result += chunk;
134
106
  },
135
107
  });
136
108
  }
137
109
  }
138
- // TODO: Find other ways to implement `StructTransformStream`
110
+ // TODO: StructTransformStream: Looking for better implementation
139
111
  export class StructDeserializeStream {
140
112
  _readable;
141
113
  get readable() { return this._readable; }
@@ -182,17 +154,32 @@ export class StructSerializeStream extends TransformStream {
182
154
  });
183
155
  }
184
156
  }
157
+ async function getWrappedWritableStream(wrapper) {
158
+ if ('start' in wrapper) {
159
+ return await wrapper.start();
160
+ }
161
+ else if (typeof wrapper === 'function') {
162
+ return await wrapper();
163
+ }
164
+ else {
165
+ // Can't use `wrapper instanceof WritableStream`
166
+ // Because we want to be compatible with any WritableStream-like objects
167
+ return wrapper;
168
+ }
169
+ }
185
170
  export class WrapWritableStream extends WritableStream {
186
171
  writable;
187
172
  writer;
188
- state;
189
173
  constructor(wrapper) {
190
174
  super({
191
175
  start: async () => {
192
- const { writable, state } = await wrapper.start();
193
- this.writable = writable;
194
- this.writer = writable.getWriter();
195
- this.state = state;
176
+ // `start` is invoked before `ReadableStream`'s constructor finish,
177
+ // so using `this` synchronously causes
178
+ // "Must call super constructor in derived class before accessing 'this' or returning from derived constructor".
179
+ // Queue a microtask to avoid this.
180
+ await Promise.resolve();
181
+ this.writable = await getWrappedWritableStream(wrapper);
182
+ this.writer = this.writable.getWriter();
196
183
  },
197
184
  write: async (chunk) => {
198
185
  // Maintain back pressure
@@ -201,36 +188,70 @@ export class WrapWritableStream extends WritableStream {
201
188
  },
202
189
  abort: async (reason) => {
203
190
  await this.writer.abort(reason);
204
- wrapper.close?.(this.state);
191
+ if ('close' in wrapper) {
192
+ await wrapper.close?.();
193
+ }
205
194
  },
206
195
  close: async () => {
196
+ // Close the inner stream first.
197
+ // Usually the inner stream is a logical sub-stream over the outer stream,
198
+ // closing the outer stream first will make the inner stream incapable of
199
+ // sending data in its `close` handler.
207
200
  await this.writer.close();
208
- await wrapper.close?.(this.state);
201
+ if ('close' in wrapper) {
202
+ await wrapper.close?.();
203
+ }
209
204
  },
210
205
  });
211
206
  }
212
207
  }
208
+ function getWrappedReadableStream(wrapper, controller) {
209
+ if ('start' in wrapper) {
210
+ return wrapper.start(controller);
211
+ }
212
+ else if (typeof wrapper === 'function') {
213
+ return wrapper(controller);
214
+ }
215
+ else {
216
+ // Can't use `wrapper instanceof ReadableStream`
217
+ // Because we want to be compatible with any ReadableStream-like objects
218
+ return wrapper;
219
+ }
220
+ }
221
+ /**
222
+ * This class has multiple usages:
223
+ *
224
+ * 1. Get notified when the stream is cancelled or closed.
225
+ * 2. Synchronously create a `ReadableStream` by asynchronously return another `ReadableStream`.
226
+ * 3. Convert native `ReadableStream`s to polyfilled ones so they can `pipe` between.
227
+ */
213
228
  export class WrapReadableStream extends ReadableStream {
214
229
  readable;
215
230
  reader;
216
- state;
217
231
  constructor(wrapper) {
218
232
  super({
219
- start: async () => {
220
- const { readable, state } = await wrapper.start();
221
- this.readable = readable;
222
- this.reader = readable.getReader();
223
- this.state = state;
233
+ start: async (controller) => {
234
+ // `start` is invoked before `ReadableStream`'s constructor finish,
235
+ // so using `this` synchronously causes
236
+ // "Must call super constructor in derived class before accessing 'this' or returning from derived constructor".
237
+ // Queue a microtask to avoid this.
238
+ await Promise.resolve();
239
+ this.readable = await getWrappedReadableStream(wrapper, controller);
240
+ this.reader = this.readable.getReader();
224
241
  },
225
242
  cancel: async (reason) => {
226
243
  await this.reader.cancel(reason);
227
- wrapper.close?.(this.state);
244
+ if ('cancel' in wrapper) {
245
+ await wrapper.cancel?.(reason);
246
+ }
228
247
  },
229
248
  pull: async (controller) => {
230
249
  const result = await this.reader.read();
231
250
  if (result.done) {
232
- wrapper.close?.(this.state);
233
251
  controller.close();
252
+ if ('close' in wrapper) {
253
+ await wrapper.close?.();
254
+ }
234
255
  }
235
256
  else {
236
257
  controller.enqueue(result.value);
@@ -319,7 +340,7 @@ export class PushReadableStream extends ReadableStream {
319
340
  source({
320
341
  abortSignal: canceled.signal,
321
342
  async enqueue(chunk) {
322
- // Only when the stream in errored, `desiredSize` will be `null`.
343
+ // Only when the stream is errored, `desiredSize` will be `null`.
323
344
  // But since `null <= 0` is `true`
324
345
  // (`null <= 0` is evaluated as `!(null > 0)` => `!false` => `true`),
325
346
  // not handling it will cause a deadlock.
@@ -343,8 +364,8 @@ export class PushReadableStream extends ReadableStream {
343
364
  waterMarkLow?.resolve();
344
365
  },
345
366
  cancel: async (reason) => {
346
- waterMarkLow?.reject(reason);
347
367
  canceled.abort();
368
+ waterMarkLow?.reject(reason);
348
369
  },
349
370
  }, strategy);
350
371
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/stream/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/stream/transform.ts"],"names":[],"mappings":"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"}
@@ -212,9 +212,9 @@ export function decodeBase64(input) {
212
212
  sIndex += 1;
213
213
  const d = charToIndex[input[sIndex]];
214
214
  sIndex += 1;
215
- result[dIndex] = (a << 2) | ((b & 0b11_0000) >> 4);
215
+ result[dIndex] = (a << 2) | ((b & 48) >> 4);
216
216
  dIndex += 1;
217
- result[dIndex] = ((b & 0b1111) << 4) | ((c & 0b11_1100) >> 2);
217
+ result[dIndex] = ((b & 0b1111) << 4) | ((c & 60) >> 2);
218
218
  dIndex += 1;
219
219
  result[dIndex] = ((c & 0b11) << 6) | d;
220
220
  dIndex += 1;
@@ -225,15 +225,15 @@ export function decodeBase64(input) {
225
225
  const b = charToIndex[input[sIndex]];
226
226
  sIndex += 1;
227
227
  const c = charToIndex[input[sIndex]];
228
- result[dIndex] = (a << 2) | ((b & 0b11_0000) >> 4);
228
+ result[dIndex] = (a << 2) | ((b & 48) >> 4);
229
229
  dIndex += 1;
230
- result[dIndex] = ((b & 0b1111) << 4) | ((c & 0b11_1100) >> 2);
230
+ result[dIndex] = ((b & 0b1111) << 4) | ((c & 60) >> 2);
231
231
  }
232
232
  else if (padding === 2) {
233
233
  const a = charToIndex[input[sIndex]];
234
234
  sIndex += 1;
235
235
  const b = charToIndex[input[sIndex]];
236
- result[dIndex] = (a << 2) | ((b & 0b11_0000) >> 4);
236
+ result[dIndex] = (a << 2) | ((b & 48) >> 4);
237
237
  }
238
238
  return result;
239
239
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/utils/base64.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/utils/base64.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"AAMA,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAEpD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,GAAG,MAAM,CAExE"}
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"AAKA,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAEpD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,GAAG,MAAM,CAExE"}
@@ -1 +1 @@
1
- {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"AACA,qDAAqD;AACrD,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACtC,qDAAqD;AACrD,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,MAAM,UAAU,UAAU,CAAC,KAAa;IACpC,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAqC;IAC5D,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACtC,qDAAqD;AACrD,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,MAAM,UAAU,UAAU,CAAC,KAAa;IACpC,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAqC;IAC5D,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
@@ -1,4 +1,4 @@
1
+ export { decodeUtf8, encodeUtf8 } from '@yume-chan/struct';
1
2
  export * from './auto-reset-event.js';
2
3
  export * from './base64.js';
3
- export * from './encoding.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
+ export { decodeUtf8, encodeUtf8 } from '@yume-chan/struct';
1
2
  export * from './auto-reset-event.js';
2
3
  export * from './base64.js';
3
- export * from './encoding.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yume-chan/adb",
3
- "version": "0.0.12",
3
+ "version": "0.0.15",
4
4
  "description": "TypeScript implementation of Android Debug Bridge (ADB) protocol.",
5
5
  "keywords": [
6
6
  "adb",
@@ -26,11 +26,11 @@
26
26
  "types": "esm/index.d.ts",
27
27
  "dependencies": {
28
28
  "@yume-chan/async": "^2.1.4",
29
- "@yume-chan/dataview-bigint-polyfill": "^0.0.12",
30
- "@yume-chan/event": "^0.0.12",
31
- "@yume-chan/struct": "^0.0.12",
29
+ "@yume-chan/dataview-bigint-polyfill": "^0.0.15",
30
+ "@yume-chan/event": "^0.0.15",
31
+ "@yume-chan/struct": "^0.0.15",
32
32
  "tslib": "^2.3.1",
33
- "web-streams-polyfill": "^3.2.0"
33
+ "web-streams-polyfill": "^4.0.0-beta.2"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/node": "^17.0.17",
@@ -39,12 +39,12 @@
39
39
  "cross-env": "^7.0.3",
40
40
  "jest": "^27.5.1",
41
41
  "ts-jest": "^27.1.3",
42
- "typescript": "next"
42
+ "typescript": "4.7.0-beta"
43
43
  },
44
44
  "scripts": {
45
45
  "build": "tsc -b tsconfig.build.json",
46
46
  "build:watch": "tsc -b tsconfig.build.json",
47
47
  "test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage"
48
48
  },
49
- "readme": "# @yume-chan/adb\r\n\r\nTypeScript implementation of Android Debug Bridge (ADB) protocol.\r\n\r\n**WARNING:** The public API is UNSTABLE. If you have any questions, please open an issue.\r\n\r\n- [Compatibility](#compatibility)\r\n - [Basic usage](#basic-usage)\r\n - [Use without bundlers](#use-without-bundlers)\r\n- [Connection](#connection)\r\n - [Backend](#backend)\r\n - [`connect`](#connect)\r\n- [Authentication](#authentication)\r\n - [AdbCredentialStore](#adbcredentialstore)\r\n - [`generateKey`](#generatekey)\r\n - [`iterateKeys`](#iteratekeys)\r\n - [Implementations](#implementations)\r\n - [AdbAuthenticator](#adbauthenticator)\r\n - [`authenticate`](#authenticate)\r\n- [Stream multiplex](#stream-multiplex)\r\n - [Backend](#backend-1)\r\n- [Commands](#commands)\r\n - [childProcess](#childprocess)\r\n - [usb](#usb)\r\n - [tcpip](#tcpip)\r\n - [sync](#sync)\r\n - [LIST](#list)\r\n - [LIS2](#lis2)\r\n - [STAT](#stat)\r\n - [LST2](#lst2)\r\n - [STA2](#sta2)\r\n - [RECV](#recv)\r\n - [RCV2](#rcv2)\r\n - [SEND](#send)\r\n - [SND2](#snd2)\r\n- [Useful links](#useful-links)\r\n\r\n## Compatibility\r\n\r\nHere is a list of features, their used APIs, and their compatibilities. If an optional feature is not actually used, its requirements can be ignored.\r\n\r\nSome features can be polyfilled to support older runtimes, but this library doesn't ship with any polyfills.\r\n\r\nEach backend may have different requirements.\r\n\r\n### Basic usage\r\n\r\n| | Chrome | Edge | Firefox | Internet Explorer | Safari | Node.js |\r\n| ------------------------------- | ------ | ---- | ------- | ----------------- | ------ | ------------------- |\r\n| `@yume-chan/struct`<sup>1</sup> | 67 | 79 | 68 | No | 14 | 8.3<sup>2</sup>, 11 |\r\n| [Streams][MDN_Streams] | 67 | 79 | No | No | 14.1 | 16.5 |\r\n| *Overall* | 67 | 79 | No | No | 14.1 | 16.5 |\r\n\r\n<sup>1</sup> `uint64` and `string` used.\r\n\r\n<sup>2</sup> `TextEncoder` and `TextDecoder` are only available in `util` module. Need to be assigned to `globalThis`.\r\n\r\n### Use without bundlers\r\n\r\n| | Chrome | Edge | Firefox | Internet Explorer | Safari | Node.js |\r\n| --------------- | ------ | ---- | ------- | ----------------- | ------ | ------- |\r\n| Top-level await | 89 | 89 | 89 | No | 15 | 14.8 |\r\n\r\n[MDN_Streams]: https://developer.mozilla.org/en-US/docs/Web/API/Streams_API\r\n\r\n## Connection\r\n\r\nThis library doesn't tie to a specific transportation method.\r\n\r\nInstead, a `Backend` is responsible for transferring data in its own way (USB, WebSocket, TCP, etc).\r\n\r\n### Backend\r\n\r\n#### `connect`\r\n\r\n```ts\r\nconnect(): ValueOrPromise<ReadableWritablePair<AdbPacketCore, AdbPacketInit>>\r\n```\r\n\r\nConnect to a device and create a pair of `AdbPacket` streams.\r\n\r\nThe backend is responsible for serializing and deserializing the packets, because it's extreme slow for WebUSB backend (`@yume-chan/adb-backend-webusb`) to read packets with unknown size.\r\n\r\n## Authentication\r\n\r\nFor how does ADB authentication work, see https://chensi.moe/blog/2020/09/30/webadb-part2-connection/#auth.\r\n\r\nIn this library, authentication comes in two parts:\r\n\r\n#### AdbCredentialStore\r\n\r\nAn interface to generate, store and iterate ADB private keys on each runtime. (Because Node.js and Browsers have different APIs to do this)\r\n\r\n##### `generateKey`\r\n\r\n```ts\r\ngenerateKey(): ValueOrPromise<Uint8Array>\r\n```\r\n\r\nGenerate and store a RSA private key with modulus length `2048` and public exponent `65537`.\r\n\r\nThe returned `Uint8Array` is the private key in PKCS #8 format.\r\n\r\n##### `iterateKeys`\r\n\r\n```ts\r\niterateKeys(): Iterator<ArrayBuffer> | AsyncIterator<ArrayBuffer>\r\n```\r\n\r\nSynchronously or asynchronously iterate through all stored RSA private keys.\r\n\r\nEach call to `iterateKeys` must return a different iterator that iterate through all stored keys.\r\n\r\n##### Implementations\r\n\r\nThe `@yume-chan/adb-credential-web` package contains a `AdbWebCredentialStore` implementation using Web Crypto API for generating keys and Web Storage API for storing keys.\r\n\r\n#### AdbAuthenticator\r\n\r\nAn `AdbAuthenticator` generates `AUTH` responses for each `AUTH` request from server.\r\n\r\nThis package contains `AdbSignatureAuthenticator` and `AdbPublicKeyAuthenticator`, the two basic modes.\r\n\r\n#### `authenticate`\r\n\r\n```ts\r\nstatic async authenticate(\r\n connection: ReadableWritablePair<AdbPacketCore, AdbPacketCore>,\r\n credentialStore: AdbCredentialStore,\r\n authenticators = AdbDefaultAuthenticators,\r\n): Promise<Adb>\r\n```\r\n\r\nCall this method to authenticate the connection and create an `Adb` instance.\r\n\r\nIt's possible to call `authenticate` multiple times on a single connection, every time the device receives a `CNXN` packet, it resets its internal state, and starts a new authentication process.\r\n\r\n## Stream multiplex\r\n\r\nADB commands are all based on streams. Multiple streams can send and receive at the same time in one connection.\r\n\r\n1. Client sends an `OPEN` packet to create a stream.\r\n2. Server responds with `OKAY` or `FAIL`.\r\n3. Client and server read/write on the stream.\r\n4. Client/server sends a `CLSE` to close the stream.\r\n\r\nThe `Backend` is responsible for reading and writing data from underlying source.\r\n\r\n### Backend\r\n\r\n## Commands\r\n\r\n### childProcess\r\n\r\nSpawns child process on server. ADB has two shell modes:\r\n\r\n| | Legacy mode | Shell Protocol |\r\n| --------------------------- | --------------------------- | ---------------------------- |\r\n| Feature flag | - | `shell_v2` |\r\n| Implementation | `AdbNoneSubprocessProtocol` | `AdbShellSubprocessProtocol` |\r\n| Splitting stdout and stderr | No | Yes |\r\n| Returning exit code | No | Yes |\r\n| Resizing window | No | Yes |\r\n\r\nThe `Adb#childProcess#shell` and `Adb#childProcess#spawn` methods accepts a list of implementations, and will use the first supported one.\r\n\r\nFor simple command invocation, usually the `AdbNoneSubprocessProtocol` is enough.\r\n\r\n### usb\r\n\r\nDisable ADB over WiFi.\r\n\r\n### tcpip\r\n\r\nEnable ADB over WiFi.\r\n\r\n### sync\r\n\r\nClient and server will communicate with another protocol on the opened stream.\r\n\r\n#### LIST\r\n\r\nRequest server to list the content of a folder.\r\n\r\n#### LIS2\r\n\r\nVersion 2 of the LIST command, contains more information.\r\n\r\nSupported on devices with `ls_v2` feature.\r\n\r\n#### STAT\r\n\r\nRequest server to return the information of a file.\r\n\r\nIf path is a symbolic link, the returned information is about the link itself.\r\n\r\nSo it's actually the [`lstat`](https://linux.die.net/man/2/lstat) system call.\r\n\r\n#### LST2\r\n\r\nVersion 2 of the STAT command, contains more information.\r\n\r\nSupported on devices with `stat_v2` feature.\r\n\r\n#### STA2\r\n\r\nBasically identical to LST2, but if path is a symbolic link, the information is about the file it refers to.\r\n\r\nSupported on devices with `stat_v2` feature.\r\n\r\n#### RECV\r\n\r\nRequest server to send the content of a file.\r\n\r\n#### RCV2\r\n\r\n*(Not Implemented)*\r\n\r\nVersion 2 of the RECV command.\r\n\r\nSupported on devices with `sendrecv_v2` feature.\r\n\r\n#### SEND\r\n\r\n*(Not Implemented)*\r\n\r\nSend a file onto server's file system.\r\n\r\n#### SND2\r\n\r\n*(Not Implemented)*\r\n\r\nVersion 2 of the SEND command.\r\n\r\nSupported on devices with `sendrecv_v2` feature.\r\n\r\n## Useful links\r\n\r\n* [ADB protocol overview](https://android.googlesource.com/platform/packages/modules/adb/+/2fd69306184634c6d90db3ed3be5349e71dcc471/OVERVIEW.TXT)\r\n* [ADB commands](https://android.googlesource.com/platform/packages/modules/adb/+/2fd69306184634c6d90db3ed3be5349e71dcc471/SERVICES.TXT#145)\r\n"
49
+ "readme": "# @yume-chan/adb\r\n\r\nTypeScript implementation of Android Debug Bridge (ADB) protocol.\r\n\r\n**WARNING:** The public API is UNSTABLE. If you have any questions, please open an issue.\r\n\r\n- [Compatibility](#compatibility)\r\n - [Basic usage](#basic-usage)\r\n - [Use without bundlers](#use-without-bundlers)\r\n- [Connection](#connection)\r\n - [Backend](#backend)\r\n - [`connect`](#connect)\r\n- [Authentication](#authentication)\r\n - [AdbCredentialStore](#adbcredentialstore)\r\n - [`generateKey`](#generatekey)\r\n - [`iterateKeys`](#iteratekeys)\r\n - [Implementations](#implementations)\r\n - [AdbAuthenticator](#adbauthenticator)\r\n - [`authenticate`](#authenticate)\r\n- [Stream multiplex](#stream-multiplex)\r\n- [Commands](#commands)\r\n - [subprocess](#subprocess)\r\n - [raw mode](#raw-mode)\r\n - [pty mode](#pty-mode)\r\n - [usb](#usb)\r\n - [tcpip](#tcpip)\r\n - [sync](#sync)\r\n - [LIST](#list)\r\n - [LIS2](#lis2)\r\n - [STAT](#stat)\r\n - [LST2](#lst2)\r\n - [STA2](#sta2)\r\n - [RECV](#recv)\r\n - [RCV2](#rcv2)\r\n - [SEND](#send)\r\n - [SND2](#snd2)\r\n- [Useful links](#useful-links)\r\n\r\n## Compatibility\r\n\r\nHere is a list of features, their used APIs, and their compatibilities. If an optional feature is not actually used, its requirements can be ignored.\r\n\r\nSome features can be polyfilled to support older runtimes, but this library doesn't ship with any polyfills.\r\n\r\nEach backend may have different requirements.\r\n\r\n### Basic usage\r\n\r\n| | Chrome | Edge | Firefox | Internet Explorer | Safari | Node.js |\r\n| ------------------------------- | ------ | ---- | ------- | ----------------- | ------ | ------------------- |\r\n| `@yume-chan/struct`<sup>1</sup> | 67 | 79 | 68 | No | 14 | 8.3<sup>2</sup>, 11 |\r\n| *Overall* | 67 | 79 | No | No | 14.1 | 16.5 |\r\n\r\n<sup>1</sup> `uint64` and `string` are used.\r\n\r\n<sup>2</sup> `TextEncoder` and `TextDecoder` are only available in `util` module. Need to be assigned to `globalThis`.\r\n\r\n### Use without bundlers\r\n\r\n| | Chrome | Edge | Firefox | Internet Explorer | Safari | Node.js |\r\n| --------------- | ------ | ---- | ------- | ----------------- | ------ | ------- |\r\n| Top-level await | 89 | 89 | 89 | No | 15 | 14.8 |\r\n\r\n## Connection\r\n\r\nThis library doesn't tie to a specific transportation method.\r\n\r\nInstead, a `Backend` is responsible for transferring data in its own way (USB, WebSocket, TCP, etc).\r\n\r\n### Backend\r\n\r\n#### `connect`\r\n\r\n```ts\r\nconnect(): ValueOrPromise<ReadableWritablePair<AdbPacketCore, AdbPacketInit>>\r\n```\r\n\r\nConnect to a device and create a pair of `AdbPacket` streams.\r\n\r\nThe backend, instead of the core library, is responsible for serializing and deserializing the packets. Because it's extreme slow for WebUSB backend (`@yume-chan/adb-backend-webusb`) to read packets with unknown size.\r\n\r\n## Authentication\r\n\r\nFor how does ADB authentication work, see https://chensi.moe/blog/2020/09/30/webadb-part2-connection/#auth.\r\n\r\nIn this library, authentication comes in two parts:\r\n\r\n#### AdbCredentialStore\r\n\r\nAn interface to generate, store and iterate ADB private keys on each runtime. (Because Node.js and Browsers have different APIs to do this)\r\n\r\n##### `generateKey`\r\n\r\n```ts\r\ngenerateKey(): ValueOrPromise<Uint8Array>\r\n```\r\n\r\nGenerate and store a RSA private key with modulus length `2048` and public exponent `65537`.\r\n\r\nThe returned `Uint8Array` is the private key in PKCS #8 format.\r\n\r\n##### `iterateKeys`\r\n\r\n```ts\r\niterateKeys(): Iterator<ArrayBuffer> | AsyncIterator<ArrayBuffer>\r\n```\r\n\r\nSynchronously or asynchronously iterate through all stored RSA private keys.\r\n\r\nEach call to `iterateKeys` must return a different iterator that iterate through all stored keys.\r\n\r\n##### Implementations\r\n\r\nThe `@yume-chan/adb-credential-web` package contains a `AdbWebCredentialStore` implementation using Web Crypto API for generating keys and Web Storage API for storing keys.\r\n\r\n#### AdbAuthenticator\r\n\r\nAn `AdbAuthenticator` generates `AUTH` responses for each `AUTH` request from server.\r\n\r\nThis package contains `AdbSignatureAuthenticator` and `AdbPublicKeyAuthenticator`, the two basic modes.\r\n\r\n#### `authenticate`\r\n\r\n```ts\r\nstatic async authenticate(\r\n connection: ReadableWritablePair<AdbPacketCore, AdbPacketCore>,\r\n credentialStore: AdbCredentialStore,\r\n authenticators = AdbDefaultAuthenticators,\r\n): Promise<Adb>\r\n```\r\n\r\nCall this method to authenticate the connection and create an `Adb` instance.\r\n\r\nIf an authentication process failed, it's possible to call `authenticate` again on the same connection (`AdbPacket` stream pair). Every time the device receives a `CNXN` packet, it resets all internal state, and starts a new authentication process.\r\n\r\n## Stream multiplex\r\n\r\nADB commands are all based on streams. Multiple streams can send and receive at the same time in one connection.\r\n\r\n1. Client sends an `OPEN` packet to create a stream.\r\n2. Server responds with `OKAY` or `FAIL`.\r\n3. Client and server read/write on the stream.\r\n4. Client/server sends a `CLSE` to close the stream.\r\n\r\n## Commands\r\n\r\n### subprocess\r\n\r\nADB has two subprocess invocation modes and two data protocols (4 combinations).\r\n\r\n#### raw mode\r\n\r\nIn raw mode, Shell protocol transfers `stdout` and `stderr` separately. It also supports returning exit code.\r\n\r\n| | Legacy protocol | Shell Protocol |\r\n| --------------------------- | --------------------------- | ---------------------------- |\r\n| Feature flag | - | `shell_v2` |\r\n| Implementation | `AdbNoneSubprocessProtocol` | `AdbShellSubprocessProtocol` |\r\n| Splitting stdout and stderr | No | Yes |\r\n| Returning exit code | No | Yes |\r\n\r\nUse `spawn` method to create a subprocess in raw mode.\r\n\r\n#### pty mode\r\n\r\nIn PTY mode, the subprocess has a pseudo-terminal, so it can send special control sequences like clear screen and set cursor position. The two protocols both send data in `stdout`, but Shell Protocol also supports resizing the terminal from client.\r\n\r\n| | Legacy protocol | Shell Protocol |\r\n| --------------------------- | --------------------------- | ---------------------------- |\r\n| Feature flag | - | `shell_v2` |\r\n| Implementation | `AdbNoneSubprocessProtocol` | `AdbShellSubprocessProtocol` |\r\n| Resizing window | No | Yes |\r\n\r\nUse `shell` method to create a subprocess in PTY mode.\r\n\r\n### usb\r\n\r\nDisable ADB over WiFi.\r\n\r\n### tcpip\r\n\r\nEnable ADB over WiFi.\r\n\r\n### sync\r\n\r\nClient and server will communicate with another protocol on the opened stream.\r\n\r\n#### LIST\r\n\r\nRequest server to list the content of a folder.\r\n\r\n#### LIS2\r\n\r\nVersion 2 of the LIST command, contains more information.\r\n\r\nSupported on devices with `ls_v2` feature.\r\n\r\n#### STAT\r\n\r\nRequest server to return the information of a file.\r\n\r\nIf path is a symbolic link, the returned information is about the link itself.\r\n\r\nSo it's actually the [`lstat`](https://linux.die.net/man/2/lstat) system call.\r\n\r\n#### LST2\r\n\r\nVersion 2 of the STAT command, contains more information.\r\n\r\nSupported on devices with `stat_v2` feature.\r\n\r\n#### STA2\r\n\r\nBasically identical to LST2, but if path is a symbolic link, the information is about the file it refers to.\r\n\r\nSupported on devices with `stat_v2` feature.\r\n\r\n#### RECV\r\n\r\nRequest server to send the content of a file.\r\n\r\n#### RCV2\r\n\r\n*(Not Implemented)*\r\n\r\nVersion 2 of the RECV command.\r\n\r\nSupported on devices with `sendrecv_v2` feature.\r\n\r\n#### SEND\r\n\r\n*(Not Implemented)*\r\n\r\nSend a file onto server's file system.\r\n\r\n#### SND2\r\n\r\n*(Not Implemented)*\r\n\r\nVersion 2 of the SEND command.\r\n\r\nSupported on devices with `sendrecv_v2` feature.\r\n\r\n## Useful links\r\n\r\n* [ADB protocol overview](https://android.googlesource.com/platform/packages/modules/adb/+/2fd69306184634c6d90db3ed3be5349e71dcc471/OVERVIEW.TXT)\r\n* [ADB commands](https://android.googlesource.com/platform/packages/modules/adb/+/2fd69306184634c6d90db3ed3be5349e71dcc471/SERVICES.TXT#145)\r\n"
50
50
  }