@yume-chan/android-bin 0.0.22 → 0.0.24

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.
package/esm/pm.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { Adb } from "@yume-chan/adb";
2
2
  import { AdbCommandBase } from "@yume-chan/adb";
3
- import type { Consumable, ReadableStream } from "@yume-chan/stream-extra";
3
+ import type { MaybeConsumable, ReadableStream } from "@yume-chan/stream-extra";
4
4
  import type { IntentBuilder } from "./intent.js";
5
5
  import type { SingleUserOrAll } from "./utils.js";
6
6
  export declare enum PackageManagerInstallLocation {
@@ -156,6 +156,11 @@ export interface PackageManagerUninstallOptions {
156
156
  keepData: boolean;
157
157
  user: SingleUserOrAll;
158
158
  versionCode: number;
159
+ /**
160
+ * Only remove the specified splits, not the entire app
161
+ *
162
+ * On Android 10 and lower, only one split name can be specified.
163
+ */
159
164
  splitNames: string[];
160
165
  }
161
166
  export interface PackageManagerResolveActivityOptions {
@@ -165,12 +170,42 @@ export interface PackageManagerResolveActivityOptions {
165
170
  export declare class PackageManager extends AdbCommandBase {
166
171
  #private;
167
172
  constructor(adb: Adb);
173
+ /**
174
+ * Install the apk file.
175
+ *
176
+ * @param apks Path to the apk file. It must exist on the device. On Android 10 and lower, only one apk can be specified.
177
+ */
168
178
  install(apks: string[], options?: Partial<PackageManagerInstallOptions>): Promise<string>;
169
- pushAndInstallStream(stream: ReadableStream<Consumable<Uint8Array>>, options?: Partial<PackageManagerInstallOptions>): Promise<void>;
170
- installStream(size: number, stream: ReadableStream<Consumable<Uint8Array>>, options?: Partial<PackageManagerInstallOptions>): Promise<void>;
179
+ pushAndInstallStream(stream: ReadableStream<MaybeConsumable<Uint8Array>>, options?: Partial<PackageManagerInstallOptions>): Promise<void>;
180
+ installStream(size: number, stream: ReadableStream<MaybeConsumable<Uint8Array>>, options?: Partial<PackageManagerInstallOptions>): Promise<void>;
171
181
  static parsePackageListItem(line: string): PackageManagerListPackagesResult;
172
182
  listPackages(options?: Partial<PackageManagerListPackagesOptions>): AsyncGenerator<PackageManagerListPackagesResult, void, void>;
173
183
  uninstall(packageName: string, options?: Partial<PackageManagerUninstallOptions>): Promise<void>;
174
184
  resolveActivity(options: PackageManagerResolveActivityOptions): Promise<string | undefined>;
185
+ /**
186
+ * Creates a new install session.
187
+ *
188
+ * Install sessions are used to install apps with multiple splits, but it can also be used to install a single apk.
189
+ *
190
+ * Install sessions was added in Android 5.0 (API level 21).
191
+ *
192
+ * @param options Options for the install session
193
+ * @returns ID of the new install session
194
+ */
195
+ sessionCreate(options?: Partial<PackageManagerInstallOptions>): Promise<number>;
196
+ sessionAddSplit(sessionId: number, splitName: string, path: string): Promise<void>;
197
+ sessionAddSplitStream(sessionId: number, splitName: string, size: number, stream: ReadableStream<MaybeConsumable<Uint8Array>>): Promise<void>;
198
+ sessionCommit(sessionId: number): Promise<void>;
199
+ sessionAbandon(sessionId: number): Promise<void>;
200
+ }
201
+ export declare class PackageManagerInstallSession {
202
+ #private;
203
+ static create(packageManager: PackageManager, options?: Partial<PackageManagerInstallOptions>): Promise<PackageManagerInstallSession>;
204
+ get id(): number;
205
+ constructor(packageManager: PackageManager, id: number);
206
+ addSplit(splitName: string, path: string): Promise<void>;
207
+ addSplitStream(splitName: string, size: number, stream: ReadableStream<MaybeConsumable<Uint8Array>>): Promise<void>;
208
+ commit(): Promise<void>;
209
+ abandon(): Promise<void>;
175
210
  }
176
211
  //# sourceMappingURL=pm.d.ts.map
package/esm/pm.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pm.d.ts","sourceRoot":"","sources":["../src/pm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pm.d.ts","sourceRoot":"","sources":["../src/pm.ts"],"names":[],"mappings":"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"}
package/esm/pm.js CHANGED
@@ -2,8 +2,8 @@
2
2
  // cspell:ignore instantapp
3
3
  // cspell:ignore apks
4
4
  // cspell:ignore versioncode
5
- import { AdbCommandBase, AdbSubprocessNoneProtocol, escapeArg, } from "@yume-chan/adb";
6
- import { ConcatStringStream, DecodeUtf8Stream, SplitStringStream, } from "@yume-chan/stream-extra";
5
+ import { AdbCommandBase, escapeArg } from "@yume-chan/adb";
6
+ import { ConcatStringStream, SplitStringStream, TextDecoderStream, } from "@yume-chan/stream-extra";
7
7
  import { Cmd } from "./cmd.js";
8
8
  import { buildArguments } from "./utils.js";
9
9
  export var PackageManagerInstallLocation;
@@ -79,11 +79,31 @@ export class PackageManager extends AdbCommandBase {
79
79
  super(adb);
80
80
  this.#cmd = new Cmd(adb);
81
81
  }
82
- #buildInstallArguments(options) {
83
- return buildArguments(["pm", "install"], options, PACKAGE_MANAGER_INSTALL_OPTIONS_MAP);
82
+ #buildInstallArguments(command, options) {
83
+ const args = buildArguments(["pm", command], options, PACKAGE_MANAGER_INSTALL_OPTIONS_MAP);
84
+ if (!options?.skipExisting) {
85
+ /*
86
+ * | behavior | previous version | modern version |
87
+ * | -------------------- | -------------------- | -------------------- |
88
+ * | replace existing app | requires `-r` | default behavior [1] |
89
+ * | skip existing app | default behavior [2] | requires `-R` |
90
+ *
91
+ * [1]: `-r` recognized but ignored)
92
+ * [2]: `-R` not recognized but ignored
93
+ *
94
+ * So add `-r` when `skipExisting` is `false` for compatibility.
95
+ */
96
+ args.push("-r");
97
+ }
98
+ return args;
84
99
  }
100
+ /**
101
+ * Install the apk file.
102
+ *
103
+ * @param apks Path to the apk file. It must exist on the device. On Android 10 and lower, only one apk can be specified.
104
+ */
85
105
  async install(apks, options) {
86
- const args = this.#buildInstallArguments(options);
106
+ const args = this.#buildInstallArguments("install", options);
87
107
  // WIP: old version of pm doesn't support multiple apks
88
108
  args.push(...apks);
89
109
  return await this.adb.subprocess.spawnAndWaitLegacy(args);
@@ -101,39 +121,47 @@ export class PackageManager extends AdbCommandBase {
101
121
  finally {
102
122
  await sync.dispose();
103
123
  }
104
- // Starting from Android 7, `pm` is only a wrapper for `cmd package`,
105
- // and `cmd package` launches faster than `pm`.
106
- // But `cmd package` can't read `/data/local/tmp` folder due to SELinux policy,
107
- // so installing a file must use `pm`.
108
- const args = this.#buildInstallArguments(options);
124
+ // Starting from Android 7, `pm` becomes a wrapper to `cmd package`.
125
+ // The benefit of `cmd package` is it starts faster than the old `pm`,
126
+ // because it connects to the already running `system` process,
127
+ // instead of initializing all system components from scratch.
128
+ //
129
+ // But launching `cmd package` directly causes it to not be able to
130
+ // read files in `/data/local/tmp` (and many other places) due to SELinux policies,
131
+ // so installing files must still use `pm`.
132
+ // (the starting executable file decides which SELinux policies to apply)
133
+ const args = this.#buildInstallArguments("install", options);
109
134
  args.push(filePath);
110
- const process = await this.adb.subprocess.spawn(args.map(escapeArg), {
111
- protocols: [AdbSubprocessNoneProtocol],
112
- });
113
- const output = await process.stdout
114
- .pipeThrough(new DecodeUtf8Stream())
115
- .pipeThrough(new ConcatStringStream())
116
- .then((output) => output.trim());
117
- await this.adb.rm(filePath);
118
- if (output !== "Success") {
119
- throw new Error(output);
135
+ try {
136
+ const output = await this.adb.subprocess
137
+ .spawnAndWaitLegacy(args.map(escapeArg))
138
+ .then((output) => output.trim());
139
+ if (output !== "Success") {
140
+ throw new Error(output);
141
+ }
142
+ }
143
+ finally {
144
+ await this.adb.rm(filePath);
120
145
  }
121
146
  }
122
147
  async installStream(size, stream, options) {
123
148
  // Android 7 added both `cmd` command and streaming install support,
124
- // we can't detect whether `pm` supports streaming install,
125
- // so we detect `cmd` command support instead.
149
+ // It's hard to detect whether `pm` supports streaming install (unless actually trying),
150
+ // so check for whether `cmd` is supported,
151
+ // and assume `pm` streaming install support status is same as that.
126
152
  if (!this.#cmd.supportsCmd) {
153
+ // Fall back to push file then install
127
154
  await this.pushAndInstallStream(stream, options);
128
155
  return;
129
156
  }
130
- const args = this.#buildInstallArguments(options);
131
- // Remove `pm` from args, final command will starts with `cmd package install`
157
+ const args = this.#buildInstallArguments("install", options);
158
+ // Remove `pm` from args, `Cmd#spawn` will prepend `cmd <command>` so the final args
159
+ // will be `cmd package install <args>`
132
160
  args.shift();
133
161
  args.push("-S", size.toString());
134
162
  const process = await this.#cmd.spawn(false, "package", ...args);
135
163
  const output = process.stdout
136
- .pipeThrough(new DecodeUtf8Stream())
164
+ .pipeThrough(new TextDecoderStream())
137
165
  .pipeThrough(new ConcatStringStream())
138
166
  .then((output) => output.trim());
139
167
  await Promise.all([
@@ -145,7 +173,6 @@ export class PackageManager extends AdbCommandBase {
145
173
  }),
146
174
  ]);
147
175
  }
148
- // TODO: install: support split apk formats (`adb install-multiple`)
149
176
  static parsePackageListItem(line) {
150
177
  line = line.substring("package:".length);
151
178
  let packageName;
@@ -153,7 +180,7 @@ export class PackageManager extends AdbCommandBase {
153
180
  let versionCode;
154
181
  let installer;
155
182
  let uid;
156
- // Parse backwards
183
+ // The output format is easier to parse in backwards
157
184
  let index = line.indexOf(" uid:");
158
185
  if (index !== -1) {
159
186
  uid = Number.parseInt(line.substring(index + " uid:".length), 10);
@@ -169,7 +196,9 @@ export class PackageManager extends AdbCommandBase {
169
196
  versionCode = Number.parseInt(line.substring(index + " versionCode:".length), 10);
170
197
  line = line.substring(0, index);
171
198
  }
172
- // `sourceDir` may contain `=` so use `lastIndexOf`
199
+ // `sourceDir` may contain `=` characters
200
+ // (because in newer Android versions it's a base64 string of encrypted package name),
201
+ // so use `lastIndexOf`
173
202
  index = line.lastIndexOf("=");
174
203
  if (index !== -1) {
175
204
  sourceDir = line.substring(0, index);
@@ -200,7 +229,10 @@ export class PackageManager extends AdbCommandBase {
200
229
  }
201
230
  const process = await this.#cmdOrSubprocess(args);
202
231
  const reader = process.stdout
203
- .pipeThrough(new DecodeUtf8Stream())
232
+ .pipeThrough(new TextDecoderStream())
233
+ // FIXME: `SplitStringStream` will throw away some data
234
+ // if it doesn't end with a separator. So each chunk of data
235
+ // must contain several complete lines.
204
236
  .pipeThrough(new SplitStringStream("\n"))
205
237
  .getReader();
206
238
  while (true) {
@@ -219,7 +251,7 @@ export class PackageManager extends AdbCommandBase {
219
251
  }
220
252
  const process = await this.#cmdOrSubprocess(args);
221
253
  const output = await process.stdout
222
- .pipeThrough(new DecodeUtf8Stream())
254
+ .pipeThrough(new TextDecoderStream())
223
255
  .pipeThrough(new ConcatStringStream())
224
256
  .then((output) => output.trim());
225
257
  if (output !== "Success") {
@@ -231,7 +263,7 @@ export class PackageManager extends AdbCommandBase {
231
263
  args = args.concat(options.intent.build());
232
264
  const process = await this.#cmdOrSubprocess(args);
233
265
  const output = await process.stdout
234
- .pipeThrough(new DecodeUtf8Stream())
266
+ .pipeThrough(new TextDecoderStream())
235
267
  .pipeThrough(new ConcatStringStream())
236
268
  .then((output) => output.trim());
237
269
  if (output === "No activity found") {
@@ -239,5 +271,112 @@ export class PackageManager extends AdbCommandBase {
239
271
  }
240
272
  return output;
241
273
  }
274
+ /**
275
+ * Creates a new install session.
276
+ *
277
+ * Install sessions are used to install apps with multiple splits, but it can also be used to install a single apk.
278
+ *
279
+ * Install sessions was added in Android 5.0 (API level 21).
280
+ *
281
+ * @param options Options for the install session
282
+ * @returns ID of the new install session
283
+ */
284
+ async sessionCreate(options) {
285
+ const args = this.#buildInstallArguments("install-create", options);
286
+ const process = await this.#cmdOrSubprocess(args);
287
+ const output = await process.stdout
288
+ .pipeThrough(new TextDecoderStream())
289
+ .pipeThrough(new ConcatStringStream())
290
+ .then((output) => output.trim());
291
+ const sessionIdString = output.match(/.*\[(\d+)\].*/);
292
+ if (!sessionIdString) {
293
+ throw new Error("Failed to create install session");
294
+ }
295
+ return Number.parseInt(sessionIdString[1], 10);
296
+ }
297
+ async sessionAddSplit(sessionId, splitName, path) {
298
+ const args = [
299
+ "pm",
300
+ "install-write",
301
+ sessionId.toString(),
302
+ splitName,
303
+ path,
304
+ ];
305
+ const output = await this.adb.subprocess
306
+ .spawnAndWaitLegacy(args)
307
+ .then((output) => output.trim());
308
+ if (!output.startsWith("Success")) {
309
+ throw new Error(output);
310
+ }
311
+ }
312
+ async sessionAddSplitStream(sessionId, splitName, size, stream) {
313
+ const args = [
314
+ "pm",
315
+ "install-write",
316
+ "-S",
317
+ size.toString(),
318
+ sessionId.toString(),
319
+ splitName,
320
+ "-",
321
+ ];
322
+ const process = await this.#cmdOrSubprocess(args);
323
+ const output = process.stdout
324
+ .pipeThrough(new TextDecoderStream())
325
+ .pipeThrough(new ConcatStringStream())
326
+ .then((output) => output.trim());
327
+ await Promise.all([
328
+ stream.pipeTo(process.stdin),
329
+ output.then((output) => {
330
+ if (!output.startsWith("Success")) {
331
+ throw new Error(output);
332
+ }
333
+ }),
334
+ ]);
335
+ }
336
+ async sessionCommit(sessionId) {
337
+ const args = ["pm", "install-commit", sessionId.toString()];
338
+ const output = await this.adb.subprocess
339
+ .spawnAndWaitLegacy(args)
340
+ .then((output) => output.trim());
341
+ if (output !== "Success") {
342
+ throw new Error(output);
343
+ }
344
+ }
345
+ async sessionAbandon(sessionId) {
346
+ const args = ["pm", "install-abandon", sessionId.toString()];
347
+ const output = await this.adb.subprocess
348
+ .spawnAndWaitLegacy(args)
349
+ .then((output) => output.trim());
350
+ if (output !== "Success") {
351
+ throw new Error(output);
352
+ }
353
+ }
354
+ }
355
+ export class PackageManagerInstallSession {
356
+ static async create(packageManager, options) {
357
+ const id = await packageManager.sessionCreate(options);
358
+ return new PackageManagerInstallSession(packageManager, id);
359
+ }
360
+ #packageManager;
361
+ #id;
362
+ get id() {
363
+ return this.#id;
364
+ }
365
+ constructor(packageManager, id) {
366
+ this.#packageManager = packageManager;
367
+ this.#id = id;
368
+ }
369
+ addSplit(splitName, path) {
370
+ return this.#packageManager.sessionAddSplit(this.#id, splitName, path);
371
+ }
372
+ addSplitStream(splitName, size, stream) {
373
+ return this.#packageManager.sessionAddSplitStream(this.#id, splitName, size, stream);
374
+ }
375
+ commit() {
376
+ return this.#packageManager.sessionCommit(this.#id);
377
+ }
378
+ abandon() {
379
+ return this.#packageManager.sessionAbandon(this.#id);
380
+ }
242
381
  }
243
382
  //# sourceMappingURL=pm.js.map
package/esm/pm.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pm.js","sourceRoot":"","sources":["../src/pm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pm.js","sourceRoot":"","sources":["../src/pm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"string-format.d.ts","sourceRoot":"","sources":["../src/string-format.ts"],"names":[],"mappings":"AACA,qBAAa,UAAW,SAAQ,KAAK;;IAGjC,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;gBAEW,QAAQ,EAAE,MAAM,EAAE;CAIjC;AAED,MAAM,WAAW,MAAM;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,MAAM,CAAC,CAAC;IACrB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;IACzB,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;CAC/B;AAED,KAAK,WAAW,CAAC,CAAC,SAAS,SAAS,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,CAC5D;KACK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC3D,CAAC,MAAM,CAAC,EACT,SAAS,CACZ,CAAC;AAEF,KAAK,cAAc,CACf,CAAC,SAAS,SAAS,CACb,MAAM,CAAC,OAAO,CAAC,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;CAAE,CAC9C,EAAE,IACH;KACC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,GAChC,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;KAAE,GACzC,CAAC,GACD,KAAK,GACT,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,KAAK;CACrE,SAAS,MAAM,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,CAAC,GACD,KAAK,CAAC;AAEZ,eAAO,MAAM,CAAC;;kBAaE,OAAO,MAAM,CAAC;;gCA6CX,MAAM;;;cAsDH,MAAM;gBAAU,OAAO,OAAO,CAAC;;;CAwCU,CAAC"}
1
+ {"version":3,"file":"string-format.d.ts","sourceRoot":"","sources":["../src/string-format.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;;IAGjC,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;gBAEW,QAAQ,EAAE,MAAM,EAAE;CAIjC;AAED,MAAM,WAAW,MAAM;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,MAAM,CAAC,CAAC;IACrB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;IACzB,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;CAC/B;AAED,KAAK,WAAW,CAAC,CAAC,SAAS,SAAS,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,CAC5D;KACK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC3D,CAAC,MAAM,CAAC,EACT,SAAS,CACZ,CAAC;AAEF,KAAK,cAAc,CACf,CAAC,SAAS,SAAS,CACb,MAAM,CAAC,OAAO,CAAC,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;CAAE,CAC9C,EAAE,IACH;KACC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,GAChC,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;KAAE,GACzC,CAAC,GACD,KAAK,GACT,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,KAAK;CACrE,SAAS,MAAM,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,CAAC,GACD,KAAK,CAAC;AAEZ,eAAO,MAAM,CAAC;uCACyB,CAAC,KAAG,OAAO,CAAC,CAAC;kBAYpC,OAAO,MAAM,CAAC;;gCA6CX,MAAM;;;cAsDH,MAAM;gBAAU,OAAO,OAAO,CAAC;;4DA8B1B,CAAC,mBACH,CAAC,aACnB,OAAO,CAAC,CAAC;CAQ+C,CAAC"}
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-unsafe-argument */
2
1
  export class ParseError extends Error {
3
2
  #expected;
4
3
  get expected() {
@@ -1 +1 @@
1
- {"version":3,"file":"string-format.js","sourceRoot":"","sources":["../src/string-format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"string-format.js","sourceRoot":"","sources":["../src/string-format.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yume-chan/android-bin",
3
- "version": "0.0.22",
3
+ "version": "0.0.24",
4
4
  "description": "Wrappers for Android built-in executables.",
5
5
  "keywords": [
6
6
  "adb",
@@ -25,26 +25,24 @@
25
25
  "main": "esm/index.js",
26
26
  "types": "esm/index.d.ts",
27
27
  "dependencies": {
28
- "@yume-chan/adb": "^0.0.22",
29
- "@yume-chan/stream-extra": "^0.0.22",
30
- "@yume-chan/struct": "^0.0.22",
31
- "tslib": "^2.6.2"
28
+ "@yume-chan/adb": "^0.0.24",
29
+ "@yume-chan/stream-extra": "^0.0.24",
30
+ "@yume-chan/struct": "^0.0.24"
32
31
  },
33
32
  "devDependencies": {
34
- "@jest/globals": "^29.7.0",
33
+ "@jest/globals": "^30.0.0-alpha.4",
35
34
  "@yume-chan/eslint-config": "^1.0.0",
36
35
  "@yume-chan/tsconfig": "^1.0.0",
37
36
  "cross-env": "^7.0.3",
38
- "eslint": "^8.55.0",
39
- "jest": "^29.7.0",
40
- "prettier": "^3.1.0",
41
- "ts-jest": "^29.1.1",
42
- "typescript": "^5.3.2"
37
+ "jest": "^30.0.0-alpha.4",
38
+ "prettier": "^3.3.2",
39
+ "ts-jest": "^29.1.4",
40
+ "typescript": "^5.4.5"
43
41
  },
44
42
  "scripts": {
45
43
  "build": "tsc -b tsconfig.build.json",
46
44
  "build:watch": "tsc -b tsconfig.build.json",
47
- "test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage",
48
- "lint": "eslint src/**/*.ts --fix && prettier src/**/*.ts --write --tab-width 4"
45
+ "test": "cross-env NODE_OPTIONS=\"--experimental-vm-modules --no-warnings\" TS_JEST_DISABLE_VER_CHECKER=true jest --coverage",
46
+ "lint": "run-eslint && prettier src/**/*.ts --write --tab-width 4"
49
47
  }
50
48
  }
package/src/am.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { Adb } from "@yume-chan/adb";
2
2
  import { AdbCommandBase } from "@yume-chan/adb";
3
- import { ConcatStringStream, DecodeUtf8Stream } from "@yume-chan/stream-extra";
3
+ import { ConcatStringStream, TextDecoderStream } from "@yume-chan/stream-extra";
4
4
 
5
5
  import { Cmd } from "./cmd.js";
6
6
  import type { IntentBuilder } from "./intent.js";
@@ -53,7 +53,7 @@ export class ActivityManager extends AdbCommandBase {
53
53
  const process = await this.#cmdOrSubprocess(args);
54
54
 
55
55
  const output = await process.stdout
56
- .pipeThrough(new DecodeUtf8Stream())
56
+ .pipeThrough(new TextDecoderStream())
57
57
  .pipeThrough(new ConcatStringStream())
58
58
  .then((output) => output.trim());
59
59
 
package/src/bu.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { AdbCommandBase } from "@yume-chan/adb";
2
- import type { Consumable, ReadableStream } from "@yume-chan/stream-extra";
3
- import { ConcatStringStream, DecodeUtf8Stream } from "@yume-chan/stream-extra";
2
+ import type { MaybeConsumable, ReadableStream } from "@yume-chan/stream-extra";
3
+ import { ConcatStringStream, TextDecoderStream } from "@yume-chan/stream-extra";
4
4
 
5
5
  export interface AdbBackupOptions {
6
6
  user: number;
@@ -15,7 +15,7 @@ export interface AdbBackupOptions {
15
15
 
16
16
  export interface AdbRestoreOptions {
17
17
  user: number;
18
- file: ReadableStream<Consumable<Uint8Array>>;
18
+ file: ReadableStream<MaybeConsumable<Uint8Array>>;
19
19
  }
20
20
 
21
21
  export class AdbBackup extends AdbCommandBase {
@@ -71,7 +71,7 @@ export class AdbBackup extends AdbCommandBase {
71
71
  const process = await this.adb.subprocess.spawn(args);
72
72
  const [output] = await Promise.all([
73
73
  process.stdout
74
- .pipeThrough(new DecodeUtf8Stream())
74
+ .pipeThrough(new TextDecoderStream())
75
75
  .pipeThrough(new ConcatStringStream()),
76
76
  options.file.pipeTo(process.stdin),
77
77
  ]);
package/src/bug-report.ts CHANGED
@@ -6,9 +6,9 @@ import { AdbCommandBase, AdbSubprocessShellProtocol } from "@yume-chan/adb";
6
6
  import type { AbortSignal, ReadableStream } from "@yume-chan/stream-extra";
7
7
  import {
8
8
  AbortController,
9
- DecodeUtf8Stream,
10
9
  PushReadableStream,
11
10
  SplitStringStream,
11
+ TextDecoderStream,
12
12
  WrapReadableStream,
13
13
  WritableStream,
14
14
  } from "@yume-chan/stream-extra";
@@ -212,7 +212,7 @@ export class BugReport extends AdbCommandBase {
212
212
  let error: string | undefined;
213
213
 
214
214
  await process.stdout
215
- .pipeThrough(new DecodeUtf8Stream())
215
+ .pipeThrough(new TextDecoderStream())
216
216
  .pipeThrough(new SplitStringStream("\n"))
217
217
  .pipeTo(
218
218
  new WritableStream<string>({
@@ -278,7 +278,7 @@ export class BugReport extends AdbCommandBase {
278
278
  controller.error(e);
279
279
  });
280
280
  process.stderr
281
- .pipeThrough(new DecodeUtf8Stream())
281
+ .pipeThrough(new TextDecoderStream())
282
282
  .pipeTo(
283
283
  new WritableStream({
284
284
  write(chunk) {
package/src/cmd.ts CHANGED
@@ -10,7 +10,7 @@ import {
10
10
  AdbSubprocessNoneProtocol,
11
11
  AdbSubprocessShellProtocol,
12
12
  } from "@yume-chan/adb";
13
- import { ConcatStringStream, DecodeUtf8Stream } from "@yume-chan/stream-extra";
13
+ import { ConcatStringStream, TextDecoderStream } from "@yume-chan/stream-extra";
14
14
 
15
15
  export class Cmd extends AdbCommandBase {
16
16
  #supportsShellV2: boolean;
@@ -35,12 +35,24 @@ export class Cmd extends AdbCommandBase {
35
35
 
36
36
  constructor(adb: Adb) {
37
37
  super(adb);
38
- this.#supportsShellV2 = adb.supportsFeature(AdbFeature.ShellV2);
39
- this.#supportsCmd = adb.supportsFeature(AdbFeature.Cmd);
40
- this.#supportsAbb = adb.supportsFeature(AdbFeature.Abb);
41
- this.#supportsAbbExec = adb.supportsFeature(AdbFeature.AbbExec);
38
+ this.#supportsShellV2 = adb.canUseFeature(AdbFeature.ShellV2);
39
+ this.#supportsCmd = adb.canUseFeature(AdbFeature.Cmd);
40
+ this.#supportsAbb = adb.canUseFeature(AdbFeature.Abb);
41
+ this.#supportsAbbExec = adb.canUseFeature(AdbFeature.AbbExec);
42
42
  }
43
43
 
44
+ /**
45
+ * Spawn a new `cmd` command. It will use ADB's `abb` command if available.
46
+ *
47
+ * @param shellProtocol
48
+ * Whether to use shell protocol. If `true`, `stdout` and `stderr` will be separated.
49
+ *
50
+ * `cmd` doesn't use PTY, so even when shell protocol is used,
51
+ * resizing terminal size and closing `stdin` are not supported.
52
+ * @param command The command to run.
53
+ * @param args The arguments to pass to the command.
54
+ * @returns An `AdbSubprocessProtocol` that provides output streams.
55
+ */
44
56
  async spawn(
45
57
  shellProtocol: boolean,
46
58
  command: string,
@@ -84,10 +96,10 @@ export class Cmd extends AdbCommandBase {
84
96
 
85
97
  const [stdout, stderr, exitCode] = await Promise.all([
86
98
  process.stdout
87
- .pipeThrough(new DecodeUtf8Stream())
99
+ .pipeThrough(new TextDecoderStream())
88
100
  .pipeThrough(new ConcatStringStream()),
89
101
  process.stderr
90
- .pipeThrough(new DecodeUtf8Stream())
102
+ .pipeThrough(new TextDecoderStream())
91
103
  .pipeThrough(new ConcatStringStream()),
92
104
  process.exit,
93
105
  ]);