@yume-chan/android-bin 2.1.0 → 3.0.0-beta.1

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 (96) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -1
  3. package/esm/am.d.ts +20 -15
  4. package/esm/am.d.ts.map +1 -1
  5. package/esm/am.js +60 -13
  6. package/esm/am.js.map +1 -1
  7. package/esm/bu.d.ts +22 -18
  8. package/esm/bu.d.ts.map +1 -1
  9. package/esm/bu.js +10 -4
  10. package/esm/bu.js.map +1 -1
  11. package/esm/bug-report.d.ts +21 -20
  12. package/esm/bug-report.d.ts.map +1 -1
  13. package/esm/bug-report.js +15 -21
  14. package/esm/bug-report.js.map +1 -1
  15. package/esm/cmd/index.d.ts +2 -0
  16. package/esm/cmd/index.d.ts.map +1 -0
  17. package/esm/cmd/index.js +2 -0
  18. package/esm/cmd/index.js.map +1 -0
  19. package/esm/cmd/none.d.ts +5 -0
  20. package/esm/cmd/none.d.ts.map +1 -0
  21. package/esm/cmd/none.js +39 -0
  22. package/esm/cmd/none.js.map +1 -0
  23. package/esm/cmd/service.d.ts +29 -0
  24. package/esm/cmd/service.d.ts.map +1 -0
  25. package/esm/cmd/service.js +24 -0
  26. package/esm/cmd/service.js.map +1 -0
  27. package/esm/cmd/shell.d.ts +5 -0
  28. package/esm/cmd/shell.d.ts.map +1 -0
  29. package/esm/cmd/shell.js +43 -0
  30. package/esm/cmd/shell.js.map +1 -0
  31. package/esm/cmd/utils.d.ts +5 -0
  32. package/esm/cmd/utils.d.ts.map +1 -0
  33. package/esm/cmd/utils.js +24 -0
  34. package/esm/cmd/utils.js.map +1 -0
  35. package/esm/demo-mode.d.ts +3 -4
  36. package/esm/demo-mode.d.ts.map +1 -1
  37. package/esm/demo-mode.js +13 -21
  38. package/esm/demo-mode.js.map +1 -1
  39. package/esm/dumpsys.d.ts +4 -2
  40. package/esm/dumpsys.d.ts.map +1 -1
  41. package/esm/dumpsys.js +13 -10
  42. package/esm/dumpsys.js.map +1 -1
  43. package/esm/index.d.ts +1 -1
  44. package/esm/index.d.ts.map +1 -1
  45. package/esm/index.js +1 -1
  46. package/esm/index.js.map +1 -1
  47. package/esm/intent.d.ts +37 -9
  48. package/esm/intent.d.ts.map +1 -1
  49. package/esm/intent.js +116 -53
  50. package/esm/intent.js.map +1 -1
  51. package/esm/logcat.d.ts +4 -2
  52. package/esm/logcat.d.ts.map +1 -1
  53. package/esm/logcat.js +9 -6
  54. package/esm/logcat.js.map +1 -1
  55. package/esm/overlay-display.d.ts +17 -14
  56. package/esm/overlay-display.d.ts.map +1 -1
  57. package/esm/overlay-display.js +2 -4
  58. package/esm/overlay-display.js.map +1 -1
  59. package/esm/pm.d.ts +131 -168
  60. package/esm/pm.d.ts.map +1 -1
  61. package/esm/pm.js +229 -112
  62. package/esm/pm.js.map +1 -1
  63. package/esm/settings.d.ts +1 -2
  64. package/esm/settings.d.ts.map +1 -1
  65. package/esm/settings.js +9 -9
  66. package/esm/settings.js.map +1 -1
  67. package/esm/utils.d.ts +4 -1
  68. package/esm/utils.d.ts.map +1 -1
  69. package/esm/utils.js +24 -13
  70. package/esm/utils.js.map +1 -1
  71. package/package.json +9 -9
  72. package/src/am.ts +94 -34
  73. package/src/bu.ts +31 -20
  74. package/src/bug-report.ts +42 -42
  75. package/src/cmd/index.ts +1 -0
  76. package/src/cmd/none.ts +62 -0
  77. package/src/cmd/service.ts +54 -0
  78. package/src/cmd/shell.ts +67 -0
  79. package/src/cmd/utils.ts +35 -0
  80. package/src/demo-mode.ts +13 -24
  81. package/src/dumpsys.ts +16 -10
  82. package/src/index.ts +1 -1
  83. package/src/intent.ts +187 -49
  84. package/src/logcat.ts +12 -6
  85. package/src/overlay-display.ts +21 -19
  86. package/src/pm.ts +374 -301
  87. package/src/settings.ts +11 -10
  88. package/src/utils.ts +30 -13
  89. package/tsconfig.build.json +0 -11
  90. package/CHANGELOG.md +0 -181
  91. package/esm/cmd.d.ts +0 -23
  92. package/esm/cmd.d.ts.map +0 -1
  93. package/esm/cmd.js +0 -104
  94. package/esm/cmd.js.map +0 -1
  95. package/src/cmd.ts +0 -166
  96. package/tsconfig.build.tsbuildinfo +0 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2020-2025 Simon Chan
3
+ Copyright (c) 2020-2026 Simon Chan
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -24,6 +24,9 @@
24
24
  <a href="https://tangoadb.dev/discord">
25
25
  <img alt="Discord" src="https://img.shields.io/discord/1120215514732564502?logo=discord&logoColor=%23ffffff&label=Discord">
26
26
  </a>
27
+ <a href="https://tangoadb.dev/wechat">
28
+ <img alt="WeChat Group" src="https://img.shields.io/badge/WeChat-Group-%2307C160?logo=wechat&logoColor=white">
29
+ </a>
27
30
  </p>
28
31
 
29
32
  This package is part of [Tango ADB](https://github.com/yume-chan/ya-webadb). Generally you need multiple packages to build a complete ADB client that can run on Web browsers and Node.js. Read the documentation for more information.
@@ -34,7 +37,7 @@ Check the latest documentation at https://tango-adb.github.io/docs/
34
37
 
35
38
  ## Sponsors
36
39
 
37
- [Become a backer](https://opencollective.com/ya-webadb) and get your image on our README on Github with a link to your site.
40
+ [Become a backer](https://opencollective.com/ya-webadb) and get your image on our README on GitHub with a link to your site.
38
41
 
39
42
  <a href="https://opencollective.com/ya-webadb/backer/0/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/0/avatar.svg?requireActive=false"></a>
40
43
  <a href="https://opencollective.com/ya-webadb/backer/1/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/1/avatar.svg?requireActive=false"></a>
package/esm/am.d.ts CHANGED
@@ -1,19 +1,24 @@
1
1
  import type { Adb } from "@yume-chan/adb";
2
- import { AdbServiceBase } from "@yume-chan/adb";
3
- import type { IntentBuilder } from "./intent.js";
4
- import type { SingleUser } from "./utils.js";
5
- export interface ActivityManagerStartActivityOptions {
6
- displayId?: number;
7
- windowingMode?: number;
8
- forceStop?: boolean;
9
- user?: SingleUser;
10
- intent: IntentBuilder;
11
- }
12
- export declare class ActivityManager extends AdbServiceBase {
2
+ import type { Intent } from "./intent.js";
3
+ import type { SingleUser, SingleUserOrAll } from "./utils.js";
4
+ export declare class ActivityManager {
13
5
  #private;
14
- static ServiceName: string;
15
- static CommandName: string;
16
- constructor(adb: Adb);
17
- startActivity(options: ActivityManagerStartActivityOptions): Promise<void>;
6
+ static readonly ServiceName = "activity";
7
+ static readonly CommandName = "am";
8
+ constructor(adb: Adb, apiLevel?: number);
9
+ startActivity(options: ActivityManager.StartActivityOptions): Promise<void>;
10
+ broadcast(intent: Intent, options?: {
11
+ user?: SingleUserOrAll;
12
+ receiverPermission?: string;
13
+ }): Promise<void>;
14
+ }
15
+ export declare namespace ActivityManager {
16
+ interface StartActivityOptions {
17
+ displayId?: number;
18
+ windowingMode?: number;
19
+ forceStop?: boolean;
20
+ user?: SingleUser;
21
+ intent: Intent;
22
+ }
18
23
  }
19
24
  //# sourceMappingURL=am.d.ts.map
package/esm/am.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"am.d.ts","sourceRoot":"","sources":["../src/am.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,MAAM,WAAW,mCAAmC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;CACzB;AAWD,qBAAa,eAAgB,SAAQ,cAAc;;IAC/C,MAAM,CAAC,WAAW,SAAc;IAChC,MAAM,CAAC,WAAW,SAAQ;gBAId,GAAG,EAAE,GAAG;IAQd,aAAa,CACf,OAAO,EAAE,mCAAmC,GAC7C,OAAO,CAAC,IAAI,CAAC;CAsBnB"}
1
+ {"version":3,"file":"am.d.ts","sourceRoot":"","sources":["../src/am.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAA0B,MAAM,gBAAgB,CAAC;AAKlE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAY9D,qBAAa,eAAe;;IACxB,MAAM,CAAC,QAAQ,CAAC,WAAW,cAAc;IACzC,MAAM,CAAC,QAAQ,CAAC,WAAW,QAAQ;gBAOvB,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM;IAMjC,aAAa,CACf,OAAO,EAAE,eAAe,CAAC,oBAAoB,GAC9C,OAAO,CAAC,IAAI,CAAC;IA6CV,SAAS,CACX,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,eAAe,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE;CA8BxE;AAED,yBAAiB,eAAe,CAAC;IAC7B,UAAiB,oBAAoB;QACjC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAClB;CACJ"}
package/esm/am.js CHANGED
@@ -1,34 +1,81 @@
1
- import { AdbServiceBase } from "@yume-chan/adb";
2
- import { CmdNoneProtocolService } from "./cmd.js";
3
- import { buildArguments } from "./utils.js";
1
+ import { escapeArg } from "@yume-chan/adb";
2
+ import { SplitStringStream, TextDecoderStream } from "@yume-chan/stream-extra";
3
+ import { Cmd } from "./cmd/index.js";
4
+ import { serializeIntent } from "./intent.js";
5
+ import { buildCommand } from "./utils.js";
4
6
  const START_ACTIVITY_OPTIONS_MAP = {
5
7
  displayId: "--display",
6
8
  windowingMode: "--windowingMode",
7
9
  forceStop: "-S",
8
10
  user: "--user",
9
11
  };
10
- export class ActivityManager extends AdbServiceBase {
12
+ export class ActivityManager {
11
13
  static ServiceName = "activity";
12
14
  static CommandName = "am";
15
+ #adb;
16
+ #apiLevel;
13
17
  #cmd;
14
- constructor(adb) {
15
- super(adb);
16
- this.#cmd = new CmdNoneProtocolService(adb, ActivityManager.CommandName);
18
+ constructor(adb, apiLevel) {
19
+ this.#adb = adb;
20
+ this.#apiLevel = apiLevel;
21
+ this.#cmd = Cmd.createNoneProtocol(adb, ActivityManager.CommandName);
17
22
  }
18
23
  async startActivity(options) {
19
- let args = buildArguments([ActivityManager.ServiceName, "start-activity", "-W"], options, START_ACTIVITY_OPTIONS_MAP);
20
- args = args.concat(options.intent.build());
21
- const output = await this.#cmd
22
- .spawnWaitText(args)
23
- .then((output) => output.trim());
24
- for (const line of output) {
24
+ // Android 8 added "start-activity" alias to "start"
25
+ // but we want to use the most compatible one.
26
+ const command = buildCommand([ActivityManager.ServiceName, "start", "-W"], options, START_ACTIVITY_OPTIONS_MAP);
27
+ for (const arg of serializeIntent(options.intent)) {
28
+ command.push(arg);
29
+ }
30
+ // Android 7 supports `cmd activity` but not `cmd activity start` command
31
+ let process;
32
+ if (this.#apiLevel !== undefined && this.#apiLevel <= 25) {
33
+ command[0] = ActivityManager.CommandName;
34
+ process = await this.#adb.subprocess.noneProtocol.spawn(command.map(escapeArg));
35
+ }
36
+ else {
37
+ process = await this.#cmd.spawn(command);
38
+ }
39
+ const lines = process.output
40
+ .pipeThrough(new TextDecoderStream())
41
+ .pipeThrough(new SplitStringStream("\n", { trim: true }));
42
+ for await (const line of lines) {
25
43
  if (line.startsWith("Error:")) {
44
+ // Exit from the `for await` loop will cancel `lines`,
45
+ // and subsequently, `process`, which is fine, as the work is already done
26
46
  throw new Error(line.substring("Error:".length).trim());
27
47
  }
28
48
  if (line === "Complete") {
49
+ // Same as above
29
50
  return;
30
51
  }
31
52
  }
53
+ // Ensure the subprocess exits before returning
54
+ await process.exited;
55
+ }
56
+ async broadcast(intent, options) {
57
+ const command = [ActivityManager.ServiceName, "broadcast"];
58
+ if (options) {
59
+ if (options.user !== undefined) {
60
+ command.push("--user", options.user.toString());
61
+ }
62
+ if (options.receiverPermission) {
63
+ command.push("--receiver-permission", options.receiverPermission);
64
+ }
65
+ }
66
+ for (const arg of serializeIntent(intent)) {
67
+ command.push(arg);
68
+ }
69
+ // Android 7 supports `cmd activity` but not `cmd activity broadcast` command
70
+ if (this.#apiLevel !== undefined && this.#apiLevel <= 25) {
71
+ command[0] = ActivityManager.CommandName;
72
+ await this.#adb.subprocess.noneProtocol
73
+ .spawn(command.map(escapeArg))
74
+ .wait();
75
+ }
76
+ else {
77
+ await this.#cmd.spawn(command).wait();
78
+ }
32
79
  }
33
80
  }
34
81
  //# sourceMappingURL=am.js.map
package/esm/am.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"am.js","sourceRoot":"","sources":["../src/am.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAU5C,MAAM,0BAA0B,GAE5B;IACA,SAAS,EAAE,WAAW;IACtB,aAAa,EAAE,iBAAiB;IAChC,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,OAAO,eAAgB,SAAQ,cAAc;IAC/C,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;IAE1B,IAAI,CAAyB;IAE7B,YAAY,GAAQ;QAChB,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,IAAI,GAAG,IAAI,sBAAsB,CAClC,GAAG,EACH,eAAe,CAAC,WAAW,CAC9B,CAAC;IACN,CAAC;IAED,KAAK,CAAC,aAAa,CACf,OAA4C;QAE5C,IAAI,IAAI,GAAG,cAAc,CACrB,CAAC,eAAe,CAAC,WAAW,EAAE,gBAAgB,EAAE,IAAI,CAAC,EACrD,OAAO,EACP,0BAA0B,CAC7B,CAAC;QAEF,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI;aACzB,aAAa,CAAC,IAAI,CAAC;aACnB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAErC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACtB,OAAO;YACX,CAAC;QACL,CAAC;IACL,CAAC"}
1
+ {"version":3,"file":"am.js","sourceRoot":"","sources":["../src/am.ts"],"names":[],"mappings":"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"}
package/esm/bu.d.ts CHANGED
@@ -1,28 +1,32 @@
1
- import { AdbServiceBase } from "@yume-chan/adb";
1
+ import type { Adb } from "@yume-chan/adb";
2
2
  import type { MaybeConsumable, ReadableStream } from "@yume-chan/stream-extra";
3
- export interface AdbBackupOptions {
4
- user: number;
5
- saveSharedStorage?: boolean;
6
- saveWidgets?: boolean;
7
- packages: readonly string[] | "user" | "all";
8
- savePackageApk: boolean;
9
- savePackageObb: boolean;
10
- savePackageKeyValue: boolean;
11
- compress: boolean;
12
- }
13
- export interface AdbRestoreOptions {
14
- user: number;
15
- file: ReadableStream<MaybeConsumable<Uint8Array>>;
16
- }
17
- export declare class AdbBackup extends AdbServiceBase {
3
+ export declare class AdbBackup {
4
+ #private;
5
+ constructor(adb: Adb);
18
6
  /**
19
7
  * User must confirm backup on device within 60 seconds.
20
8
  */
21
- backup(options: AdbBackupOptions): Promise<ReadableStream<Uint8Array>>;
9
+ backup(options: AdbBackup.BackupOptions): Promise<ReadableStream<Uint8Array>>;
22
10
  /**
23
11
  * User must enter the password (if any) and
24
12
  * confirm restore on device within 60 seconds.
25
13
  */
26
- restore(options: AdbRestoreOptions): Promise<string>;
14
+ restore(options: AdbBackup.RestoreOptions): Promise<string>;
15
+ }
16
+ export declare namespace AdbBackup {
17
+ interface BackupOptions {
18
+ user?: number | undefined;
19
+ saveSharedStorage?: boolean | undefined;
20
+ saveWidgets?: boolean | undefined;
21
+ packages: readonly string[] | "user" | "all";
22
+ savePackageApk: boolean;
23
+ savePackageObb: boolean;
24
+ savePackageKeyValue: boolean;
25
+ compress: boolean;
26
+ }
27
+ interface RestoreOptions {
28
+ user?: number | undefined;
29
+ file: ReadableStream<MaybeConsumable<Uint8Array>>;
30
+ }
27
31
  }
28
32
  //# sourceMappingURL=bu.d.ts.map
package/esm/bu.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bu.d.ts","sourceRoot":"","sources":["../src/bu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE/E,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC;IAC7C,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;CACrD;AAED,qBAAa,SAAU,SAAQ,cAAc;IACzC;;OAEG;IACG,MAAM,CACR,OAAO,EAAE,gBAAgB,GAC1B,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAmCtC;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;CAOvD"}
1
+ {"version":3,"file":"bu.d.ts","sourceRoot":"","sources":["../src/bu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE/E,qBAAa,SAAS;;gBAGN,GAAG,EAAE,GAAG;IAIpB;;OAEG;IACG,MAAM,CACR,OAAO,EAAE,SAAS,CAAC,aAAa,GACjC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAmCtC;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAU9D;AAED,yBAAiB,SAAS,CAAC;IACvB,UAAiB,aAAa;QAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QACxC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAClC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC;QAC7C,cAAc,EAAE,OAAO,CAAC;QACxB,cAAc,EAAE,OAAO,CAAC;QACxB,mBAAmB,EAAE,OAAO,CAAC;QAC7B,QAAQ,EAAE,OAAO,CAAC;KACrB;IAED,UAAiB,cAAc;QAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,IAAI,EAAE,cAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;KACrD;CACJ"}
package/esm/bu.js CHANGED
@@ -1,5 +1,8 @@
1
- import { AdbServiceBase } from "@yume-chan/adb";
2
- export class AdbBackup extends AdbServiceBase {
1
+ export class AdbBackup {
2
+ #adb;
3
+ constructor(adb) {
4
+ this.#adb = adb;
5
+ }
3
6
  /**
4
7
  * User must confirm backup on device within 60 seconds.
5
8
  */
@@ -27,7 +30,7 @@ export class AdbBackup extends AdbServiceBase {
27
30
  else {
28
31
  args.push(...options.packages);
29
32
  }
30
- const process = await this.adb.subprocess.noneProtocol.spawn(args);
33
+ const process = await this.#adb.subprocess.noneProtocol.spawn(args);
31
34
  return process.output;
32
35
  }
33
36
  /**
@@ -39,7 +42,10 @@ export class AdbBackup extends AdbServiceBase {
39
42
  if (options.user !== undefined) {
40
43
  args.push("--user", options.user.toString());
41
44
  }
42
- return this.adb.subprocess.noneProtocol.spawnWaitText(args);
45
+ return this.#adb.subprocess.noneProtocol
46
+ .spawn(args)
47
+ .wait({ stdin: options.file })
48
+ .toString();
43
49
  }
44
50
  }
45
51
  //# sourceMappingURL=bu.js.map
package/esm/bu.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bu.js","sourceRoot":"","sources":["../src/bu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAmBhD,MAAM,OAAO,SAAU,SAAQ,cAAc;IACzC;;OAEG;IACH,KAAK,CAAC,MAAM,CACR,OAAyB;QAEzB,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE9B,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAE9D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,CACL,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CACjE,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAE7D,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACvC,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACvB,KAAK,MAAM;oBACP,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;oBAClC,MAAM;gBACV,KAAK,KAAK;oBACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;oBAC/B,MAAM;YACd,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnE,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,OAA0B;QAC9B,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;CACJ"}
1
+ {"version":3,"file":"bu.js","sourceRoot":"","sources":["../src/bu.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,SAAS;IACT,IAAI,CAAM;IAEnB,YAAY,GAAQ;QAChB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACR,OAAgC;QAEhC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE9B,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAE9D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,CACL,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CACjE,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAE7D,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACvC,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACvB,KAAK,MAAM;oBACP,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;oBAClC,MAAM;gBACV,KAAK,KAAK;oBACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;oBAC/B,MAAM;YACd,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,OAAiC;QACrC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY;aACnC,KAAK,CAAC,IAAI,CAAC;aACX,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;aAC7B,QAAQ,EAAE,CAAC;IACpB,CAAC;CACJ"}
@@ -1,23 +1,6 @@
1
1
  import type { Adb } from "@yume-chan/adb";
2
- import { AdbServiceBase } from "@yume-chan/adb";
3
2
  import type { AbortSignal, ReadableStream } from "@yume-chan/stream-extra";
4
- export interface BugReportCapabilities {
5
- supportsBugReport: boolean;
6
- bugReportZVersion?: string | undefined;
7
- supportsBugReportZ: boolean;
8
- supportsBugReportZProgress: boolean;
9
- supportsBugReportZStream: boolean;
10
- }
11
- export interface BugReportZOptions {
12
- signal?: AbortSignal;
13
- /**
14
- * A callback that will be called when progress is updated.
15
- *
16
- * Specify `onProgress` when `supportsBugReportZProgress` is `false` will throw an error.
17
- */
18
- onProgress?: ((completed: string, total: string) => void) | undefined;
19
- }
20
- export declare class BugReport extends AdbServiceBase {
3
+ export declare class BugReport {
21
4
  #private;
22
5
  static VERSION_REGEX: RegExp;
23
6
  static BEGIN_REGEX: RegExp;
@@ -58,7 +41,7 @@ export declare class BugReport extends AdbServiceBase {
58
41
  * Should be `true` for Android version >= 12.
59
42
  */
60
43
  get supportsBugReportZStream(): boolean;
61
- constructor(adb: Adb, capabilities: BugReportCapabilities);
44
+ constructor(adb: Adb, capabilities: BugReport.Capabilities);
62
45
  /**
63
46
  * Creates a legacy, non-zipped bugreport file, or throws an error if `supportsBugReport` is `false`.
64
47
  *
@@ -73,7 +56,7 @@ export declare class BugReport extends AdbServiceBase {
73
56
  *
74
57
  * @returns The path to the generated bugreport file on device filesystem.
75
58
  */
76
- bugReportZ(options?: BugReportZOptions): Promise<string>;
59
+ bugReportZ(options?: BugReport.BugReportZOptions): Promise<string>;
77
60
  /**
78
61
  * Creates a zipped bugreport file, or throws an error if `supportsBugReportZStream` is `false`.
79
62
  *
@@ -96,4 +79,22 @@ export declare class BugReport extends AdbServiceBase {
96
79
  stream: ReadableStream<Uint8Array>;
97
80
  };
98
81
  }
82
+ export declare namespace BugReport {
83
+ interface Capabilities {
84
+ supportsBugReport: boolean;
85
+ bugReportZVersion?: string | undefined;
86
+ supportsBugReportZ: boolean;
87
+ supportsBugReportZProgress: boolean;
88
+ supportsBugReportZStream: boolean;
89
+ }
90
+ interface BugReportZOptions {
91
+ signal?: AbortSignal;
92
+ /**
93
+ * A callback that will be called when progress is updated.
94
+ *
95
+ * Specify `onProgress` when `supportsBugReportZProgress` is `false` will throw an error.
96
+ */
97
+ onProgress?: ((completed: string, total: string) => void) | undefined;
98
+ }
99
+ }
99
100
  //# sourceMappingURL=bug-report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bug-report.d.ts","sourceRoot":"","sources":["../src/bug-report.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAW,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAU3E,MAAM,WAAW,qBAAqB;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,0BAA0B,EAAE,OAAO,CAAC;IACpC,wBAAwB,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACzE;AAED,qBAAa,SAAU,SAAQ,cAAc;;IACzC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAkB;IAE9C,MAAM,CAAC,WAAW,EAAE,MAAM,CAAgB;IAE1C,MAAM,CAAC,cAAc,EAAE,MAAM,CAAyB;IAEtD,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAa;IAEpC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAe;IAExC;;OAEG;WACU,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IAmD5D;;;;OAIG;IACH,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAGD;;;;OAIG;IACH,IAAI,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAE1C;IAGD;;;;OAIG;IACH,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAGD;;;;OAIG;IACH,IAAI,0BAA0B,IAAI,OAAO,CAExC;IAGD;;;;OAIG;IACH,IAAI,wBAAwB,IAAI,OAAO,CAEtC;gBAEW,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,qBAAqB;IAWzD;;;;OAIG;IACH,SAAS,IAAI,cAAc,CAAC,UAAU,CAAC;IAevC;;;;;;;OAOG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmE9D;;;;OAIG;IACH,gBAAgB,IAAI,cAAc,CAAC,UAAU,CAAC;IAiC9C;;;;;;;;;;OAUG;IACH,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG;QAChE,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;QACjC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;KACtC;CAsCJ"}
1
+ {"version":3,"file":"bug-report.d.ts","sourceRoot":"","sources":["../src/bug-report.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAU3E,qBAAa,SAAS;;IAClB,MAAM,CAAC,aAAa,EAAE,MAAM,CAAkB;IAE9C,MAAM,CAAC,WAAW,EAAE,MAAM,CAAgB;IAE1C,MAAM,CAAC,cAAc,EAAE,MAAM,CAAyB;IAEtD,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAa;IAEpC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAe;IAExC;;OAEG;WACU,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IAqD5D;;;;OAIG;IACH,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAGD;;;;OAIG;IACH,IAAI,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAE1C;IAGD;;;;OAIG;IACH,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAGD;;;;OAIG;IACH,IAAI,0BAA0B,IAAI,OAAO,CAExC;IAGD;;;;OAIG;IACH,IAAI,wBAAwB,IAAI,OAAO,CAEtC;gBAEW,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY;IAW1D;;;;OAIG;IACH,SAAS,IAAI,cAAc,CAAC,UAAU,CAAC;IAevC;;;;;;;OAOG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmExE;;;;OAIG;IACH,gBAAgB,IAAI,cAAc,CAAC,UAAU,CAAC;IAiC9C;;;;;;;;;;OAUG;IACH,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG;QAChE,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;QACjC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;KACtC;CAmCJ;AAED,yBAAiB,SAAS,CAAC;IACvB,UAAiB,YAAY;QACzB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACvC,kBAAkB,EAAE,OAAO,CAAC;QAC5B,0BAA0B,EAAE,OAAO,CAAC;QACpC,wBAAwB,EAAE,OAAO,CAAC;KACrC;IAED,UAAiB,iBAAiB;QAC9B,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB;;;;WAIG;QACH,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;KACzE;CACJ"}
package/esm/bug-report.js CHANGED
@@ -1,8 +1,7 @@
1
1
  // cspell: ignore bugreport
2
2
  // cspell: ignore bugreportz
3
- import { AdbServiceBase } from "@yume-chan/adb";
4
3
  import { AbortController, PushReadableStream, SplitStringStream, TextDecoderStream, WrapReadableStream, WritableStream, } from "@yume-chan/stream-extra";
5
- export class BugReport extends AdbServiceBase {
4
+ export class BugReport {
6
5
  static VERSION_REGEX = /(\d+)\.(\d+)/;
7
6
  static BEGIN_REGEX = /BEGIN:(.*)/;
8
7
  static PROGRESS_REGEX = /PROGRESS:(.*)\/(.*)/;
@@ -22,10 +21,10 @@ export class BugReport extends AdbServiceBase {
22
21
  supportsBugReportZStream: false,
23
22
  });
24
23
  }
25
- const result = await adb.subprocess.shellProtocol.spawnWaitText([
26
- "bugreportz",
27
- "-v",
28
- ]);
24
+ const result = await adb.subprocess.shellProtocol
25
+ .spawn(["bugreportz", "-v"])
26
+ .wait()
27
+ .toString();
29
28
  if (result.exitCode !== 0 || result.stderr === "") {
30
29
  return new BugReport(adb, {
31
30
  supportsBugReport: true,
@@ -57,6 +56,7 @@ export class BugReport extends AdbServiceBase {
57
56
  supportsBugReportZStream: major > 1 || minor >= 2,
58
57
  });
59
58
  }
59
+ #adb;
60
60
  #supportsBugReport;
61
61
  /**
62
62
  * Gets whether the device supports flat (text file, non-zipped) bugreport.
@@ -103,7 +103,7 @@ export class BugReport extends AdbServiceBase {
103
103
  return this.#supportsBugReportZStream;
104
104
  }
105
105
  constructor(adb, capabilities) {
106
- super(adb);
106
+ this.#adb = adb;
107
107
  this.#supportsBugReport = capabilities.supportsBugReport;
108
108
  this.#bugReportZVersion = capabilities.bugReportZVersion;
109
109
  this.#supportsBugReportZ = capabilities.supportsBugReportZ;
@@ -122,7 +122,7 @@ export class BugReport extends AdbServiceBase {
122
122
  }
123
123
  return new WrapReadableStream(async () => {
124
124
  // https://cs.android.com/android/platform/superproject/+/master:frameworks/native/cmds/bugreport/bugreport.cpp;drc=9b73bf07d73dbab5b792632e1e233edbad77f5fd;bpv=0;bpt=0
125
- const process = await this.adb.subprocess.noneProtocol.spawn("bugreport");
125
+ const process = await this.#adb.subprocess.noneProtocol.spawn("bugreport");
126
126
  return process.output;
127
127
  });
128
128
  }
@@ -149,16 +149,16 @@ export class BugReport extends AdbServiceBase {
149
149
  args.push("-p");
150
150
  }
151
151
  // `subprocess.shellProtocol` must be defined when `this.#supportsBugReportZ` is `true`
152
- const process = await this.adb.subprocess.shellProtocol.spawn(args);
152
+ const process = await this.#adb.subprocess.shellProtocol.spawn(args);
153
153
  options?.signal?.addEventListener("abort", () => {
154
154
  void process.kill();
155
155
  });
156
156
  let filename;
157
157
  let error;
158
- for await (const line of process.stdout
158
+ const lines = process.stdout
159
159
  .pipeThrough(new TextDecoderStream())
160
- // Each chunk should contain one or several full lines
161
- .pipeThrough(new SplitStringStream("\n"))) {
160
+ .pipeThrough(new SplitStringStream("\n", { trim: true }));
161
+ for await (const line of lines) {
162
162
  // `BEGIN:` and `PROGRESS:` only appear when `-p` is specified.
163
163
  let match = line.match(BugReport.PROGRESS_REGEX);
164
164
  if (match) {
@@ -195,10 +195,7 @@ export class BugReport extends AdbServiceBase {
195
195
  */
196
196
  bugReportZStream() {
197
197
  return new PushReadableStream(async (controller) => {
198
- const process = await this.adb.subprocess.shellProtocol.spawn([
199
- "bugreportz",
200
- "-s",
201
- ]);
198
+ const process = await this.#adb.subprocess.shellProtocol.spawn(["bugreportz", "-s"], controller.abortSignal);
202
199
  process.stdout
203
200
  .pipeTo(new WritableStream({
204
201
  async write(chunk) {
@@ -238,13 +235,11 @@ export class BugReport extends AdbServiceBase {
238
235
  }
239
236
  if (this.#supportsBugReportZ) {
240
237
  let path;
241
- let sync;
242
238
  const controller = new AbortController();
243
239
  const cleanup = async () => {
244
240
  controller.abort();
245
- await sync?.dispose();
246
241
  if (path) {
247
- await this.adb.rm(path);
242
+ await this.#adb.rm(path);
248
243
  }
249
244
  };
250
245
  return {
@@ -257,8 +252,7 @@ export class BugReport extends AdbServiceBase {
257
252
  ? onProgress
258
253
  : undefined,
259
254
  });
260
- sync = await this.adb.sync();
261
- return sync.read(path);
255
+ return this.#adb.sync.read(path);
262
256
  },
263
257
  cancel: cleanup,
264
258
  close: cleanup,
@@ -1 +1 @@
1
- {"version":3,"file":"bug-report.js","sourceRoot":"","sources":["../src/bug-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bug-report.js","sourceRoot":"","sources":["../src/bug-report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./service.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./service.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Adb } from "@yume-chan/adb";
2
+ import { Cmd } from "./service.js";
3
+ export declare function createNoneProtocol(adb: Adb, fallback: NonNullable<Cmd.Fallback>): Cmd.NoneProtocolService;
4
+ export declare function createNoneProtocol(adb: Adb, fallback?: Cmd.Fallback): Cmd.NoneProtocolService | undefined;
5
+ //# sourceMappingURL=none.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"none.d.ts","sourceRoot":"","sources":["../../src/cmd/none.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAQ1C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,wBAAgB,kBAAkB,CAC9B,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,GACpC,GAAG,CAAC,mBAAmB,CAAC;AAC3B,wBAAgB,kBAAkB,CAC9B,GAAG,EAAE,GAAG,EACR,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,GACxB,GAAG,CAAC,mBAAmB,GAAG,SAAS,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { AdbFeature, AdbNoneProtocolProcessImpl, adbNoneProtocolSpawner, escapeArg, } from "@yume-chan/adb";
2
+ import { Cmd } from "./service.js";
3
+ import { checkCommand, resolveFallback, serializeAbbService } from "./utils.js";
4
+ export function createNoneProtocol(adb, fallback) {
5
+ if (adb.canUseFeature(AdbFeature.AbbExec)) {
6
+ return {
7
+ mode: Cmd.Mode.Abb,
8
+ spawn: adbNoneProtocolSpawner(async (command, signal) => {
9
+ const service = serializeAbbService("abb_exec", command);
10
+ const socket = await adb.createSocket(service);
11
+ return new AdbNoneProtocolProcessImpl(socket, signal);
12
+ }),
13
+ };
14
+ }
15
+ if (adb.canUseFeature(AdbFeature.Cmd)) {
16
+ return {
17
+ mode: Cmd.Mode.Cmd,
18
+ spawn: adbNoneProtocolSpawner(async (command, signal) => {
19
+ checkCommand(command);
20
+ const newCommand = command.map(escapeArg);
21
+ newCommand.unshift("cmd");
22
+ return adb.subprocess.noneProtocol.spawn(newCommand, signal);
23
+ }),
24
+ };
25
+ }
26
+ if (fallback) {
27
+ return {
28
+ mode: Cmd.Mode.Fallback,
29
+ spawn: adbNoneProtocolSpawner(async (command, signal) => {
30
+ checkCommand(command);
31
+ const newCommand = command.map(escapeArg);
32
+ newCommand[0] = resolveFallback(fallback, command[0]);
33
+ return adb.subprocess.noneProtocol.spawn(newCommand, signal);
34
+ }),
35
+ };
36
+ }
37
+ return undefined;
38
+ }
39
+ //# sourceMappingURL=none.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"none.js","sourceRoot":"","sources":["../../src/cmd/none.ts"],"names":[],"mappings":"AACA,OAAO,EACH,UAAU,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,SAAS,GACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAUhF,MAAM,UAAU,kBAAkB,CAC9B,GAAQ,EACR,QAAuB;IAEvB,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO;YACH,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG;YAClB,KAAK,EAAE,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;gBACpD,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACzD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC/C,OAAO,IAAI,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1D,CAAC,CAAC;SACL,CAAC;IACN,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO;YACH,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG;YAClB,KAAK,EAAE,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;gBACpD,YAAY,CAAC,OAAO,CAAC,CAAC;gBAEtB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC1C,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1B,OAAO,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACjE,CAAC,CAAC;SACL,CAAC;IACN,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO;YACH,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;gBACpD,YAAY,CAAC,OAAO,CAAC,CAAC;gBAEtB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC1C,UAAU,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;gBACvD,OAAO,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACjE,CAAC,CAAC;SACL,CAAC;IACN,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { Adb, AdbNoneProtocolSpawner, AdbShellProtocolSpawner } from "@yume-chan/adb";
2
+ import { createNoneProtocol } from "./none.js";
3
+ import { createShellProtocol } from "./shell.js";
4
+ export declare class Cmd {
5
+ #private;
6
+ static readonly Mode: {
7
+ readonly Abb: 0;
8
+ readonly Cmd: 1;
9
+ readonly Fallback: 2;
10
+ };
11
+ static readonly createNoneProtocol: typeof createNoneProtocol;
12
+ static readonly createShellProtocol: typeof createShellProtocol;
13
+ get noneProtocol(): Cmd.NoneProtocolService | undefined;
14
+ get shellProtocol(): Cmd.ShellProtocolService | undefined;
15
+ constructor(adb: Adb, fallback?: Cmd.Fallback);
16
+ }
17
+ export declare namespace Cmd {
18
+ type Fallback = string | Record<string, string> | ((service: string) => string) | undefined;
19
+ type Mode = (typeof Cmd.Mode)[keyof typeof Cmd.Mode];
20
+ interface NoneProtocolService {
21
+ mode: Mode;
22
+ spawn: AdbNoneProtocolSpawner;
23
+ }
24
+ interface ShellProtocolService {
25
+ mode: Mode;
26
+ spawn: AdbShellProtocolSpawner;
27
+ }
28
+ }
29
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/cmd/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,GAAG,EACH,sBAAsB,EACtB,uBAAuB,EAC1B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,GAAG;;IACZ,MAAM,CAAC,QAAQ,CAAC,IAAI;;;;MAIT;IAEX,MAAM,CAAC,QAAQ,CAAC,kBAAkB,4BAAsB;IACxD,MAAM,CAAC,QAAQ,CAAC,mBAAmB,6BAAuB;IAG1D,IAAI,YAAY,wCAEf;IAGD,IAAI,aAAa,yCAEhB;gBAEW,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ;CAIhD;AAED,yBAAiB,GAAG,CAAC;IACjB,KAAY,QAAQ,GACd,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,GAC7B,SAAS,CAAC;IAEhB,KAAY,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;IAE5D,UAAiB,mBAAmB;QAChC,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,sBAAsB,CAAC;KACjC;IAED,UAAiB,oBAAoB;QACjC,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,uBAAuB,CAAC;KAClC;CACJ"}