claude-in-mobile 3.0.0 → 3.3.0

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 (62) hide show
  1. package/README.md +3 -3
  2. package/dist/client-adapter.js +9 -9
  3. package/dist/client-adapter.js.map +1 -1
  4. package/dist/index.js +76 -7
  5. package/dist/index.js.map +1 -1
  6. package/dist/store/google-play.d.ts +18 -0
  7. package/dist/store/google-play.d.ts.map +1 -0
  8. package/dist/store/google-play.js +228 -0
  9. package/dist/store/google-play.js.map +1 -0
  10. package/dist/store/huawei.d.ts +16 -0
  11. package/dist/store/huawei.d.ts.map +1 -0
  12. package/dist/store/huawei.js +205 -0
  13. package/dist/store/huawei.js.map +1 -0
  14. package/dist/store/rustore.d.ts +17 -0
  15. package/dist/store/rustore.d.ts.map +1 -0
  16. package/dist/store/rustore.js +223 -0
  17. package/dist/store/rustore.js.map +1 -0
  18. package/dist/store/store-client.d.ts +13 -0
  19. package/dist/store/store-client.d.ts.map +1 -0
  20. package/dist/store/store-client.js +2 -0
  21. package/dist/store/store-client.js.map +1 -0
  22. package/dist/tools/app-tools.js +4 -4
  23. package/dist/tools/app-tools.js.map +1 -1
  24. package/dist/tools/aurora-tools.js +2 -2
  25. package/dist/tools/clipboard-tools.js +4 -4
  26. package/dist/tools/clipboard-tools.js.map +1 -1
  27. package/dist/tools/context.d.ts +8 -0
  28. package/dist/tools/context.d.ts.map +1 -1
  29. package/dist/tools/context.js +3 -0
  30. package/dist/tools/context.js.map +1 -1
  31. package/dist/tools/desktop-tools.js +9 -9
  32. package/dist/tools/desktop-tools.js.map +1 -1
  33. package/dist/tools/device-tools.js +4 -4
  34. package/dist/tools/device-tools.js.map +1 -1
  35. package/dist/tools/flow-tools.d.ts.map +1 -1
  36. package/dist/tools/flow-tools.js +12 -5
  37. package/dist/tools/flow-tools.js.map +1 -1
  38. package/dist/tools/huawei-tools.d.ts +3 -0
  39. package/dist/tools/huawei-tools.d.ts.map +1 -0
  40. package/dist/tools/huawei-tools.js +94 -0
  41. package/dist/tools/huawei-tools.js.map +1 -0
  42. package/dist/tools/interaction-tools.d.ts.map +1 -1
  43. package/dist/tools/interaction-tools.js +40 -11
  44. package/dist/tools/interaction-tools.js.map +1 -1
  45. package/dist/tools/permission-tools.js +3 -3
  46. package/dist/tools/permission-tools.js.map +1 -1
  47. package/dist/tools/rustore-tools.d.ts +3 -0
  48. package/dist/tools/rustore-tools.d.ts.map +1 -0
  49. package/dist/tools/rustore-tools.js +117 -0
  50. package/dist/tools/rustore-tools.js.map +1 -0
  51. package/dist/tools/screenshot-tools.d.ts.map +1 -1
  52. package/dist/tools/screenshot-tools.js +6 -4
  53. package/dist/tools/screenshot-tools.js.map +1 -1
  54. package/dist/tools/store-tools.d.ts +3 -0
  55. package/dist/tools/store-tools.d.ts.map +1 -0
  56. package/dist/tools/store-tools.js +168 -0
  57. package/dist/tools/store-tools.js.map +1 -0
  58. package/dist/tools/system-tools.js +8 -8
  59. package/dist/tools/system-tools.js.map +1 -1
  60. package/dist/tools/ui-tools.js +9 -9
  61. package/dist/tools/ui-tools.js.map +1 -1
  62. package/package.json +2 -1
package/README.md CHANGED
@@ -38,13 +38,13 @@ npx add-mcp claude-in-mobile -a cursor -y
38
38
  ### Claude Code CLI
39
39
 
40
40
  ```bash
41
- claude mcp add --transport stdio mobile -- npx -y claude-in-mobile
41
+ claude mcp add --transport stdio mobile -- npx claude-in-mobile@latest
42
42
  ```
43
43
 
44
44
  To add globally (available in all projects):
45
45
 
46
46
  ```bash
47
- claude mcp add --scope user --transport stdio mobile -- npx -y claude-in-mobile
47
+ claude mcp add --scope user --transport stdio mobile -- npx claude-in-mobile@latest
48
48
  ```
49
49
 
50
50
  ### OpenCode
@@ -157,7 +157,7 @@ Add to your Claude Code settings (`~/.claude.json` or project settings):
157
157
  ### Windows
158
158
 
159
159
  ```bash
160
- claude mcp add --transport stdio mobile -- cmd /c npx -y claude-in-mobile
160
+ claude mcp add --transport stdio mobile -- cmd /c npx claude-in-mobile@latest
161
161
  ```
162
162
 
163
163
  ## Requirements
@@ -4,19 +4,19 @@ const CLIENT_MATCHERS = [
4
4
  { pattern: /cursor/i, type: "cursor" },
5
5
  ];
6
6
  const OPENCODE_ALIASES = {
7
- touch: "tap",
8
- press: "tap",
9
- capture_screen: "screenshot",
7
+ touch: "input_tap",
8
+ press: "input_tap",
9
+ capture_screen: "screen_capture",
10
10
  };
11
11
  const OPENCODE_ALIASES_WITH_DEFAULTS = {
12
- swipe_up: { tool: "swipe", defaults: { direction: "up" } },
13
- swipe_down: { tool: "swipe", defaults: { direction: "down" } },
12
+ swipe_up: { tool: "input_swipe", defaults: { direction: "up" } },
13
+ swipe_down: { tool: "input_swipe", defaults: { direction: "down" } },
14
14
  };
15
15
  const INSTRUCTIONS = {
16
- "claude-code": "Mobile and desktop automation server. Supports Android (ADB), iOS Simulator (simctl+WDA), Desktop (Compose), and Aurora OS (audb). Use 'screenshot' to see the screen, 'tap' to interact with elements, 'get_ui' for the accessibility tree, and 'annotate_screenshot' for visual element discovery.",
17
- opencode: "Mobile and desktop automation server. Use 'screenshot' to see the screen, 'tap' to interact, 'get_ui' for the element tree. Supports Android, iOS Simulator, Desktop, and Aurora OS. Use 'list_devices' to see connected devices and 'set_device' to switch between them.",
18
- cursor: "Mobile and desktop automation server. Supports Android (ADB), iOS Simulator (simctl+WDA), Desktop (Compose), and Aurora OS (audb). Use 'screenshot' to see the screen, 'tap' to interact with elements, 'get_ui' for the accessibility tree.",
19
- unknown: "Mobile and desktop automation server. Use 'screenshot' to see the screen, 'tap' to interact, 'get_ui' for the element tree. Use 'list_devices' to see connected devices.",
16
+ "claude-code": "Mobile and desktop automation server. Supports Android (ADB), iOS Simulator (simctl+WDA), Desktop (Compose), and Aurora OS (audb). Use 'screen_capture' to see the screen, 'input_tap' to interact with elements, 'ui_tree' for the accessibility tree, and 'screen_annotate' for visual element discovery.",
17
+ opencode: "Mobile and desktop automation server. Use 'screen_capture' to see the screen, 'input_tap' to interact, 'ui_tree' for the element tree. Supports Android, iOS Simulator, Desktop, and Aurora OS. Use 'device_list' to see connected devices and 'device_set' to switch between them.",
18
+ cursor: "Mobile and desktop automation server. Supports Android (ADB), iOS Simulator (simctl+WDA), Desktop (Compose), and Aurora OS (audb). Use 'screen_capture' to see the screen, 'input_tap' to interact with elements, 'ui_tree' for the accessibility tree.",
19
+ unknown: "Mobile and desktop automation server. Use 'screen_capture' to see the screen, 'input_tap' to interact, 'ui_tree' for the element tree. Use 'device_list' to see connected devices.",
20
20
  };
21
21
  export function detectClient(clientInfo) {
22
22
  if (!clientInfo) {
@@ -1 +1 @@
1
- {"version":3,"file":"client-adapter.js","sourceRoot":"","sources":["../src/client-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-adapter.js","sourceRoot":"","sources":["../src/client-adapter.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16,6 +16,9 @@ import { auroraTools } from "./tools/aurora-tools.js";
16
16
  import { flowTools } from "./tools/flow-tools.js";
17
17
  import { clipboardTools } from "./tools/clipboard-tools.js";
18
18
  import { browserTools } from "./tools/browser-tools.js";
19
+ import { storeTools } from "./tools/store-tools.js";
20
+ import { huaweiTools } from "./tools/huawei-tools.js";
21
+ import { ruStoreTools } from "./tools/rustore-tools.js";
19
22
  import { detectClient, getConfigSnippet } from "./client-adapter.js";
20
23
  // Dispatch function (needed by batch_commands / run_flow for recursion)
21
24
  async function handleTool(name, args, depth = 0) {
@@ -44,15 +47,81 @@ registerTools([
44
47
  ...flowTools,
45
48
  ...clipboardTools,
46
49
  ...browserTools,
50
+ ...storeTools,
51
+ ...huaweiTools,
52
+ ...ruStoreTools,
47
53
  ]);
48
- // Register hidden aliases for common LLM misnaming
54
+ // Backward compat: v3.0.x names v3.1.x canonical names
49
55
  registerAliases({
50
- "press_button": "press_key",
56
+ // device
57
+ "list_devices": "device_list",
58
+ "set_device": "device_set",
59
+ "set_target": "device_set_target",
60
+ "get_target": "device_get_target",
61
+ // interaction
62
+ "tap": "input_tap",
63
+ "double_tap": "input_double_tap",
64
+ "long_press": "input_long_press",
65
+ "swipe": "input_swipe",
66
+ "press_key": "input_key",
67
+ // ui
68
+ "get_ui": "ui_tree",
69
+ "find_element": "ui_find",
70
+ "find_and_tap": "ui_find_tap",
71
+ "tap_by_text": "ui_tap_text",
72
+ "analyze_screen": "ui_analyze",
73
+ "wait_for_element": "ui_wait",
74
+ "assert_visible": "ui_assert_visible",
75
+ "assert_not_exists": "ui_assert_gone",
76
+ // system
77
+ "get_current_activity": "system_activity",
78
+ "shell": "system_shell",
79
+ "wait": "system_wait",
80
+ "open_url": "system_open_url",
81
+ "get_logs": "system_logs",
82
+ "clear_logs": "system_clear_logs",
83
+ "get_system_info": "system_info",
84
+ "get_webview": "system_webview",
85
+ // app
86
+ "launch_app": "app_launch",
87
+ "stop_app": "app_stop",
88
+ "install_app": "app_install",
89
+ "list_apps": "app_list",
90
+ // screenshot
91
+ "screenshot": "screen_capture",
92
+ "annotate_screenshot": "screen_annotate",
93
+ // desktop
94
+ "launch_desktop_app": "desktop_launch",
95
+ "stop_desktop_app": "desktop_stop",
96
+ "get_window_info": "desktop_windows",
97
+ "focus_window": "desktop_focus",
98
+ "resize_window": "desktop_resize",
99
+ "get_clipboard": "clipboard_get",
100
+ "set_clipboard": "clipboard_set",
101
+ "get_performance_metrics": "desktop_performance",
102
+ "get_monitors": "desktop_monitors",
103
+ // clipboard
104
+ "select_text": "clipboard_select",
105
+ "copy_text": "clipboard_copy",
106
+ "paste_text": "clipboard_paste",
107
+ "get_clipboard_android": "clipboard_get_android",
108
+ // flow
109
+ "batch_commands": "flow_batch",
110
+ "run_flow": "flow_run",
111
+ // permissions
112
+ "grant_permission": "permission_grant",
113
+ "revoke_permission": "permission_revoke",
114
+ "reset_permissions": "permission_reset",
115
+ // file (aurora)
116
+ "push_file": "file_push",
117
+ "pull_file": "file_pull",
118
+ // LLM misnaming helpers
119
+ "press_button": "input_key",
51
120
  "type_text": "input_text",
52
121
  "type": "input_text",
53
- "click": "tap",
54
- "long_tap": "long_press",
55
- "take_screenshot": "screenshot",
122
+ "click": "input_tap",
123
+ "long_tap": "input_long_press",
124
+ "take_screenshot": "screen_capture",
56
125
  });
57
126
  // Handle --init CLI flag (generate config snippet and exit)
58
127
  const initIndex = process.argv.indexOf("--init");
@@ -76,12 +145,12 @@ if (initIndex !== -1) {
76
145
  // Create MCP server
77
146
  const server = new Server({
78
147
  name: "claude-mobile",
79
- version: "3.0.0",
148
+ version: "3.3.0",
80
149
  }, {
81
150
  capabilities: {
82
151
  tools: {},
83
152
  },
84
- instructions: "Mobile, desktop, and browser automation server. Use 'screenshot' to see the screen, 'tap' to interact, 'get_ui' for the element tree, 'browser_open' to automate web pages. Use 'list_devices' to see connected devices.",
153
+ instructions: "Mobile, desktop, browser automation + store management (Google Play, Huawei AppGallery, RuStore). IMPORTANT: Always use 'ui_tree' first to inspect the screen — it is text-based and ~10x cheaper than screenshots. Use 'screen_capture' only as fallback when visual verification is required or ui_tree is insufficient. Use 'input_tap' to interact. For stores: 'store_upload' → 'store_set_notes' → 'store_submit' (Google Play), 'huawei_upload' 'huawei_set_notes' 'huawei_submit' (Huawei), 'rustore_upload' 'rustore_set_notes' 'rustore_submit' (RuStore). Use 'device_list' to see connected devices.",
85
154
  });
86
155
  // Detect client after MCP handshake and apply per-client adaptations
87
156
  server.oninitialized = () => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare class GooglePlayClient {
2
+ private auth;
3
+ private activeEdits;
4
+ private token;
5
+ private api;
6
+ private ensureEdit;
7
+ upload(packageName: string, filePath: string): Promise<{
8
+ versionCode: number;
9
+ }>;
10
+ setReleaseNotes(packageName: string, language: string, text: string): Promise<void>;
11
+ submit(packageName: string, track: string, rollout: number): Promise<void>;
12
+ promote(packageName: string, fromTrack: string, toTrack: string): Promise<void>;
13
+ getReleases(packageName: string, track?: string): Promise<string>;
14
+ haltRollout(packageName: string, track: string): Promise<void>;
15
+ discard(packageName: string): Promise<void>;
16
+ private formatTrack;
17
+ }
18
+ //# sourceMappingURL=google-play.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-play.d.ts","sourceRoot":"","sources":["../../src/store/google-play.ts"],"names":[],"mappings":"AAwCA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,WAAW,CAAgC;YAErC,KAAK;YAWL,GAAG;YAkBH,UAAU;IAiBlB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAwD/E,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAanF,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B1E,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B/E,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BjE,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B9D,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjD,OAAO,CAAC,WAAW;CAOpB"}
@@ -0,0 +1,228 @@
1
+ import { GoogleAuth } from "google-auth-library";
2
+ import { existsSync, createReadStream } from "fs";
3
+ import { stat } from "fs/promises";
4
+ import { Readable } from "stream";
5
+ const BASE = "https://androidpublisher.googleapis.com/androidpublisher/v3";
6
+ const UPLOAD_BASE = "https://androidpublisher.googleapis.com/upload/androidpublisher/v3";
7
+ const SCOPES = ["https://www.googleapis.com/auth/androidpublisher"];
8
+ function buildAuth() {
9
+ const keyFile = process.env.GOOGLE_PLAY_KEY_FILE;
10
+ const keyContent = process.env.GOOGLE_PLAY_SERVICE_ACCOUNT_JSON;
11
+ if (keyFile && existsSync(keyFile)) {
12
+ return new GoogleAuth({ keyFile, scopes: SCOPES });
13
+ }
14
+ if (keyContent) {
15
+ return new GoogleAuth({ credentials: JSON.parse(keyContent), scopes: SCOPES });
16
+ }
17
+ // Will fail on first use with a clear message
18
+ return new GoogleAuth({ scopes: SCOPES });
19
+ }
20
+ export class GooglePlayClient {
21
+ auth = buildAuth();
22
+ activeEdits = new Map();
23
+ async token() {
24
+ const client = await this.auth.getClient();
25
+ const res = await client.getAccessToken();
26
+ if (!res.token) {
27
+ throw new Error("Google Play: failed to get access token. Set GOOGLE_PLAY_KEY_FILE or GOOGLE_PLAY_SERVICE_ACCOUNT_JSON.");
28
+ }
29
+ return res.token;
30
+ }
31
+ async api(method, url, token, body) {
32
+ const res = await fetch(url, {
33
+ method,
34
+ headers: {
35
+ Authorization: `Bearer ${token}`,
36
+ "Content-Type": "application/json",
37
+ },
38
+ body: body !== undefined ? JSON.stringify(body) : undefined,
39
+ });
40
+ if (!res.ok) {
41
+ const text = await res.text();
42
+ throw new Error(`Google Play API ${res.status} ${method} ${url.split("/edits")[0]}: ${text}`);
43
+ }
44
+ if (res.status === 204 || res.headers.get("content-length") === "0")
45
+ return {};
46
+ return res.json();
47
+ }
48
+ async ensureEdit(packageName) {
49
+ const existing = this.activeEdits.get(packageName);
50
+ if (existing)
51
+ return existing;
52
+ const token = await this.token();
53
+ const data = await this.api("POST", `${BASE}/applications/${packageName}/edits`, token);
54
+ const state = { editId: data.id, releaseNotes: [] };
55
+ this.activeEdits.set(packageName, state);
56
+ return state;
57
+ }
58
+ // ── Public API ──────────────────────────────────────────────────────────────
59
+ async upload(packageName, filePath) {
60
+ if (!existsSync(filePath)) {
61
+ throw new Error(`File not found: ${filePath}`);
62
+ }
63
+ const token = await this.token();
64
+ const state = await this.ensureEdit(packageName);
65
+ const type = filePath.endsWith(".aab") ? "bundles" : "apks";
66
+ const { size: fileSize } = await stat(filePath);
67
+ // Step 1: initiate resumable upload — get upload URL from Location header
68
+ const initiateRes = await fetch(`${UPLOAD_BASE}/applications/${packageName}/edits/${state.editId}/${type}?uploadType=resumable`, {
69
+ method: "POST",
70
+ headers: {
71
+ Authorization: `Bearer ${token}`,
72
+ "X-Upload-Content-Type": "application/octet-stream",
73
+ "X-Upload-Content-Length": String(fileSize),
74
+ "Content-Type": "application/json",
75
+ "Content-Length": "0",
76
+ },
77
+ });
78
+ if (!initiateRes.ok) {
79
+ const text = await initiateRes.text();
80
+ throw new Error(`Upload initiation failed ${initiateRes.status}: ${text}`);
81
+ }
82
+ const uploadUrl = initiateRes.headers.get("location");
83
+ if (!uploadUrl) {
84
+ throw new Error("Upload initiation response missing Location header");
85
+ }
86
+ // Step 2: stream file to upload URL — no full file in memory
87
+ const uploadRes = await fetch(uploadUrl, {
88
+ method: "PUT",
89
+ headers: {
90
+ "Content-Type": "application/octet-stream",
91
+ "Content-Length": String(fileSize),
92
+ },
93
+ // @ts-ignore — duplex required for streaming body in Node.js fetch
94
+ duplex: "half",
95
+ body: Readable.toWeb(createReadStream(filePath)),
96
+ });
97
+ if (!uploadRes.ok) {
98
+ const text = await uploadRes.text();
99
+ throw new Error(`Upload failed ${uploadRes.status}: ${text}`);
100
+ }
101
+ const data = await uploadRes.json();
102
+ state.versionCode = data.versionCode;
103
+ return { versionCode: data.versionCode };
104
+ }
105
+ async setReleaseNotes(packageName, language, text) {
106
+ const state = this.activeEdits.get(packageName);
107
+ if (!state) {
108
+ throw new Error(`No active release for "${packageName}". Call store_upload first.`);
109
+ }
110
+ const idx = state.releaseNotes.findIndex(n => n.language === language);
111
+ if (idx >= 0) {
112
+ state.releaseNotes[idx].text = text;
113
+ }
114
+ else {
115
+ state.releaseNotes.push({ language, text });
116
+ }
117
+ }
118
+ async submit(packageName, track, rollout) {
119
+ const state = this.activeEdits.get(packageName);
120
+ if (!state) {
121
+ throw new Error(`No active release for "${packageName}". Call store_upload first.`);
122
+ }
123
+ if (!state.versionCode) {
124
+ throw new Error(`No version code for "${packageName}". Call store_upload first.`);
125
+ }
126
+ const token = await this.token();
127
+ const isPartial = rollout < 1.0;
128
+ await this.api("PUT", `${BASE}/applications/${packageName}/edits/${state.editId}/tracks/${track}`, token, {
129
+ track,
130
+ releases: [{
131
+ versionCodes: [String(state.versionCode)],
132
+ status: isPartial ? "inProgress" : "completed",
133
+ ...(isPartial && { userFraction: rollout }),
134
+ releaseNotes: state.releaseNotes.map(n => ({ language: n.language, text: n.text })),
135
+ }],
136
+ });
137
+ await this.api("POST", `${BASE}/applications/${packageName}/edits/${state.editId}:commit`, token);
138
+ this.activeEdits.delete(packageName);
139
+ }
140
+ async promote(packageName, fromTrack, toTrack) {
141
+ const token = await this.token();
142
+ const { id: editId } = await this.api("POST", `${BASE}/applications/${packageName}/edits`, token);
143
+ try {
144
+ const trackData = await this.api("GET", `${BASE}/applications/${packageName}/edits/${editId}/tracks/${fromTrack}`, token);
145
+ const release = trackData.releases?.[0];
146
+ if (!release?.versionCodes?.length) {
147
+ throw new Error(`No releases found on track "${fromTrack}"`);
148
+ }
149
+ await this.api("PUT", `${BASE}/applications/${packageName}/edits/${editId}/tracks/${toTrack}`, token, {
150
+ track: toTrack,
151
+ releases: [{
152
+ versionCodes: release.versionCodes,
153
+ status: "completed",
154
+ releaseNotes: release.releaseNotes ?? [],
155
+ }],
156
+ });
157
+ await this.api("POST", `${BASE}/applications/${packageName}/edits/${editId}:commit`, token);
158
+ }
159
+ catch (err) {
160
+ await this.api("DELETE", `${BASE}/applications/${packageName}/edits/${editId}`, token).catch(() => { });
161
+ throw err;
162
+ }
163
+ }
164
+ async getReleases(packageName, track) {
165
+ const token = await this.token();
166
+ const { id: editId } = await this.api("POST", `${BASE}/applications/${packageName}/edits`, token);
167
+ try {
168
+ const tracks = track ? [track] : ["internal", "alpha", "beta", "production"];
169
+ const lines = [];
170
+ for (const t of tracks) {
171
+ try {
172
+ const data = await this.api("GET", `${BASE}/applications/${packageName}/edits/${editId}/tracks/${t}`, token);
173
+ lines.push(this.formatTrack(t, data.releases ?? []));
174
+ }
175
+ catch (err) {
176
+ if (track)
177
+ throw err; // Re-throw if specific track was requested
178
+ // Otherwise silently skip empty tracks
179
+ }
180
+ }
181
+ return lines.join("\n").trim() || "No releases found";
182
+ }
183
+ finally {
184
+ await this.api("DELETE", `${BASE}/applications/${packageName}/edits/${editId}`, token).catch(() => { });
185
+ }
186
+ }
187
+ async haltRollout(packageName, track) {
188
+ const token = await this.token();
189
+ const { id: editId } = await this.api("POST", `${BASE}/applications/${packageName}/edits`, token);
190
+ try {
191
+ const data = await this.api("GET", `${BASE}/applications/${packageName}/edits/${editId}/tracks/${track}`, token);
192
+ const release = data.releases?.[0];
193
+ if (!release)
194
+ throw new Error(`No active release on track "${track}"`);
195
+ if (release.status !== "inProgress") {
196
+ throw new Error(`Track "${track}" is not in staged rollout (status: ${release.status})`);
197
+ }
198
+ await this.api("PUT", `${BASE}/applications/${packageName}/edits/${editId}/tracks/${track}`, token, {
199
+ track,
200
+ releases: [{ versionCodes: release.versionCodes, status: "halted" }],
201
+ });
202
+ await this.api("POST", `${BASE}/applications/${packageName}/edits/${editId}:commit`, token);
203
+ }
204
+ catch (err) {
205
+ await this.api("DELETE", `${BASE}/applications/${packageName}/edits/${editId}`, token).catch(() => { });
206
+ throw err;
207
+ }
208
+ }
209
+ async discard(packageName) {
210
+ const state = this.activeEdits.get(packageName);
211
+ if (!state) {
212
+ throw new Error(`No active release draft for "${packageName}"`);
213
+ }
214
+ const token = await this.token();
215
+ await this.api("DELETE", `${BASE}/applications/${packageName}/edits/${state.editId}`, token).catch(() => { });
216
+ this.activeEdits.delete(packageName);
217
+ }
218
+ // ── Formatting ──────────────────────────────────────────────────────────────
219
+ formatTrack(track, releases) {
220
+ if (releases.length === 0)
221
+ return `${track}: (empty)`;
222
+ const r = releases[0];
223
+ const versions = r.versionCodes?.join(", ") ?? "?";
224
+ const fraction = r.userFraction !== undefined ? ` (${(r.userFraction * 100).toFixed(0)}% rollout)` : "";
225
+ return `${track}: v${versions} — ${r.status}${fraction}`;
226
+ }
227
+ }
228
+ //# sourceMappingURL=google-play.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-play.js","sourceRoot":"","sources":["../../src/store/google-play.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { StoreClient, UploadResult } from "./store-client.js";
2
+ export declare class HuaweiAppGalleryClient implements StoreClient {
3
+ private tokenCache;
4
+ private appIdCache;
5
+ private drafts;
6
+ private getToken;
7
+ private api;
8
+ private getAppId;
9
+ upload(packageName: string, filePath: string): Promise<UploadResult>;
10
+ setReleaseNotes(packageName: string, language: string, text: string): Promise<void>;
11
+ submit(packageName: string, _options?: {
12
+ rollout?: number;
13
+ }): Promise<void>;
14
+ getReleases(packageName: string): Promise<string>;
15
+ }
16
+ //# sourceMappingURL=huawei.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"huawei.d.ts","sourceRoot":"","sources":["../../src/store/huawei.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA4DnE,qBAAa,sBAAuB,YAAW,WAAW;IACxD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,MAAM,CAAiC;YAIjC,QAAQ;YAsCR,GAAG;YAkBH,QAAQ;IAyBhB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAiFpE,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAanF,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3E,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAsBxD"}