@leonxin/meetgames 0.1.7 → 0.1.11

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 (293) hide show
  1. package/.agents/skills/meet-sdk-regression/SKILL.md +93 -0
  2. package/.cursor/mcp.example.json +16 -0
  3. package/.cursor/mcp.json +11 -0
  4. package/.cursor/skills/meetgames-mcp/SKILL.md +48 -0
  5. package/.vite/vitest/results.json +1 -0
  6. package/README.md +31 -8
  7. package/dist/aab-converter/aab-entry.d.ts +3 -0
  8. package/dist/aab-converter/aab-entry.d.ts.map +1 -0
  9. package/dist/aab-converter/aab-entry.js +49 -0
  10. package/dist/aab-converter/aab-entry.js.map +1 -0
  11. package/dist/aab-converter/apksExtractor.d.ts +2 -0
  12. package/dist/aab-converter/apksExtractor.d.ts.map +1 -0
  13. package/dist/aab-converter/apksExtractor.js +108 -0
  14. package/dist/aab-converter/apksExtractor.js.map +1 -0
  15. package/dist/aab-converter/bundletoolRunner.d.ts +15 -0
  16. package/dist/aab-converter/bundletoolRunner.d.ts.map +1 -0
  17. package/dist/aab-converter/bundletoolRunner.js +46 -0
  18. package/dist/aab-converter/bundletoolRunner.js.map +1 -0
  19. package/dist/aab-converter/cliArgs.d.ts +27 -0
  20. package/dist/aab-converter/cliArgs.d.ts.map +1 -0
  21. package/dist/aab-converter/cliArgs.js +170 -0
  22. package/dist/aab-converter/cliArgs.js.map +1 -0
  23. package/dist/aab-converter/convertAabToApk.d.ts +7 -0
  24. package/dist/aab-converter/convertAabToApk.d.ts.map +1 -0
  25. package/dist/aab-converter/convertAabToApk.js +69 -0
  26. package/dist/aab-converter/convertAabToApk.js.map +1 -0
  27. package/dist/aab-converter/resourcePaths.d.ts +4 -0
  28. package/dist/aab-converter/resourcePaths.d.ts.map +1 -0
  29. package/dist/aab-converter/resourcePaths.js +42 -0
  30. package/dist/aab-converter/resourcePaths.js.map +1 -0
  31. package/dist/aab-converter/signingOptions.d.ts +9 -0
  32. package/dist/aab-converter/signingOptions.d.ts.map +1 -0
  33. package/dist/aab-converter/signingOptions.js +21 -0
  34. package/dist/aab-converter/signingOptions.js.map +1 -0
  35. package/dist/aab-converter/types.d.ts +24 -0
  36. package/dist/aab-converter/types.d.ts.map +1 -0
  37. package/dist/aab-converter/types.js +2 -0
  38. package/dist/aab-converter/types.js.map +1 -0
  39. package/dist/android/adapter.d.ts.map +1 -1
  40. package/dist/android/adapter.js +2 -2
  41. package/dist/android/adapter.js.map +1 -1
  42. package/dist/android/detect.d.ts +2 -2
  43. package/dist/android/detect.d.ts.map +1 -1
  44. package/dist/android/detect.js +36 -8
  45. package/dist/android/detect.js.map +1 -1
  46. package/dist/android/meetSdkRemoteGradle.d.ts +0 -3
  47. package/dist/android/meetSdkRemoteGradle.d.ts.map +1 -1
  48. package/dist/android/meetSdkRemoteGradle.js +13 -20
  49. package/dist/android/meetSdkRemoteGradle.js.map +1 -1
  50. package/dist/cli.d.ts.map +1 -1
  51. package/dist/cli.js +157 -31
  52. package/dist/cli.js.map +1 -1
  53. package/dist/config/meetSdkDefaultConfig.d.ts +19 -2
  54. package/dist/config/meetSdkDefaultConfig.d.ts.map +1 -1
  55. package/dist/config/meetSdkDefaultConfig.js +67 -5
  56. package/dist/config/meetSdkDefaultConfig.js.map +1 -1
  57. package/dist/config/meetSdkIosConfig.d.ts +21 -0
  58. package/dist/config/meetSdkIosConfig.d.ts.map +1 -0
  59. package/dist/config/meetSdkIosConfig.js +66 -0
  60. package/dist/config/meetSdkIosConfig.js.map +1 -0
  61. package/dist/config/meetSdkRemoteConfig.d.ts +19 -11
  62. package/dist/config/meetSdkRemoteConfig.d.ts.map +1 -1
  63. package/dist/config/meetSdkRemoteConfig.js +89 -69
  64. package/dist/config/meetSdkRemoteConfig.js.map +1 -1
  65. package/dist/config/topsdkFeatureModules.d.ts +5 -0
  66. package/dist/config/topsdkFeatureModules.d.ts.map +1 -1
  67. package/dist/config/topsdkFeatureModules.js +26 -0
  68. package/dist/config/topsdkFeatureModules.js.map +1 -1
  69. package/dist/contracts/types.d.ts +19 -6
  70. package/dist/contracts/types.d.ts.map +1 -1
  71. package/dist/core/doctor.d.ts +17 -0
  72. package/dist/core/doctor.d.ts.map +1 -0
  73. package/dist/core/doctor.js +444 -0
  74. package/dist/core/doctor.js.map +1 -0
  75. package/dist/core/pipeline.d.ts.map +1 -1
  76. package/dist/core/pipeline.js +0 -15
  77. package/dist/core/pipeline.js.map +1 -1
  78. package/dist/core/platform.d.ts +12 -0
  79. package/dist/core/platform.d.ts.map +1 -0
  80. package/dist/core/platform.js +40 -0
  81. package/dist/core/platform.js.map +1 -0
  82. package/dist/core/reporter.js +1 -1
  83. package/dist/core/reporter.js.map +1 -1
  84. package/dist/core/workspace.d.ts +2 -2
  85. package/dist/core/workspace.d.ts.map +1 -1
  86. package/dist/core/workspace.js +4 -5
  87. package/dist/core/workspace.js.map +1 -1
  88. package/dist/index.d.ts +3 -1
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +3 -1
  91. package/dist/index.js.map +1 -1
  92. package/dist/ios/channelConfig.d.ts +1 -0
  93. package/dist/ios/channelConfig.d.ts.map +1 -1
  94. package/dist/ios/channelConfig.js +82 -0
  95. package/dist/ios/channelConfig.js.map +1 -1
  96. package/dist/ios/codeUtils.d.ts +1 -0
  97. package/dist/ios/codeUtils.d.ts.map +1 -1
  98. package/dist/ios/codeUtils.js +11 -2
  99. package/dist/ios/codeUtils.js.map +1 -1
  100. package/dist/ios/detect.d.ts +2 -2
  101. package/dist/ios/detect.d.ts.map +1 -1
  102. package/dist/ios/detect.js +49 -10
  103. package/dist/ios/detect.js.map +1 -1
  104. package/dist/ios/entitlements.d.ts +4 -0
  105. package/dist/ios/entitlements.d.ts.map +1 -0
  106. package/dist/ios/entitlements.js +53 -0
  107. package/dist/ios/entitlements.js.map +1 -0
  108. package/dist/ios/fileManager.d.ts.map +1 -1
  109. package/dist/ios/fileManager.js +3 -2
  110. package/dist/ios/fileManager.js.map +1 -1
  111. package/dist/ios/infoPlist.d.ts +1 -1
  112. package/dist/ios/infoPlist.d.ts.map +1 -1
  113. package/dist/ios/infoPlist.js.map +1 -1
  114. package/dist/ios/integrate.d.ts.map +1 -1
  115. package/dist/ios/integrate.js +211 -36
  116. package/dist/ios/integrate.js.map +1 -1
  117. package/dist/ios/pbxprojEditor.d.ts +2 -0
  118. package/dist/ios/pbxprojEditor.d.ts.map +1 -1
  119. package/dist/ios/pbxprojEditor.js +179 -1
  120. package/dist/ios/pbxprojEditor.js.map +1 -1
  121. package/dist/ios/pluginConfig.d.ts +1 -0
  122. package/dist/ios/pluginConfig.d.ts.map +1 -1
  123. package/dist/ios/pluginConfig.js +36 -4
  124. package/dist/ios/pluginConfig.js.map +1 -1
  125. package/dist/ios/sdkBundle.d.ts +1 -1
  126. package/dist/ios/sdkBundle.d.ts.map +1 -1
  127. package/dist/ios/sdkBundle.js +7 -5
  128. package/dist/ios/sdkBundle.js.map +1 -1
  129. package/dist/ios/template.d.ts +1 -0
  130. package/dist/ios/template.d.ts.map +1 -1
  131. package/dist/ios/template.js +14 -1
  132. package/dist/ios/template.js.map +1 -1
  133. package/dist/ios/types.d.ts +2 -2
  134. package/dist/ios/types.d.ts.map +1 -1
  135. package/dist/mcp/server.d.ts.map +1 -1
  136. package/dist/mcp/server.js +14 -13
  137. package/dist/mcp/server.js.map +1 -1
  138. package/dist/mcp/service.d.ts +8 -6
  139. package/dist/mcp/service.d.ts.map +1 -1
  140. package/dist/mcp/service.js +34 -14
  141. package/dist/mcp/service.js.map +1 -1
  142. package/dist/ops/handlers.d.ts.map +1 -1
  143. package/dist/ops/handlers.js +10 -4
  144. package/dist/ops/handlers.js.map +1 -1
  145. package/dist/remote/sdkHomeDownload.d.ts +65 -0
  146. package/dist/remote/sdkHomeDownload.d.ts.map +1 -0
  147. package/dist/remote/sdkHomeDownload.js +208 -0
  148. package/dist/remote/sdkHomeDownload.js.map +1 -0
  149. package/dist/remote/topsdkDownloadSdkConfig.d.ts.map +1 -1
  150. package/dist/remote/topsdkDownloadSdkConfig.js +11 -1
  151. package/dist/remote/topsdkDownloadSdkConfig.js.map +1 -1
  152. package/dist/shared/errors.d.ts +7 -0
  153. package/dist/shared/errors.d.ts.map +1 -0
  154. package/dist/shared/errors.js +16 -0
  155. package/dist/shared/errors.js.map +1 -0
  156. package/dist/shared/fileUtils.d.ts +5 -0
  157. package/dist/shared/fileUtils.d.ts.map +1 -0
  158. package/dist/shared/fileUtils.js +35 -0
  159. package/dist/shared/fileUtils.js.map +1 -0
  160. package/dist/shared/logger.d.ts +10 -0
  161. package/dist/shared/logger.d.ts.map +1 -0
  162. package/dist/shared/logger.js +37 -0
  163. package/dist/shared/logger.js.map +1 -0
  164. package/dist/shared/pathUtils.d.ts +4 -0
  165. package/dist/shared/pathUtils.d.ts.map +1 -0
  166. package/dist/shared/pathUtils.js +22 -0
  167. package/dist/shared/pathUtils.js.map +1 -0
  168. package/dist/shared/processRunner.d.ts +12 -0
  169. package/dist/shared/processRunner.d.ts.map +1 -0
  170. package/dist/shared/processRunner.js +31 -0
  171. package/dist/shared/processRunner.js.map +1 -0
  172. package/docs/AAB_CONVERTER_CLI_PLAN.md +392 -0
  173. package/docs/API.md +246 -32
  174. package/docs/CLI.md +292 -0
  175. package/docs/INTEGRATION.md +116 -0
  176. package/docs/MCP.md +86 -0
  177. package/docs/README.md +19 -10
  178. package/docs/{api → archive/api}/downloadSDKConfig.md +8 -6
  179. package/docs/{api → archive/api}/getChannelConfig-meetgames.md +1 -1
  180. package/docs/archive/ios-migration.md +2139 -0
  181. package/docs/{ → archive/product/}/346/212/200/346/234/257/346/226/271/346/241/210/350/260/203/347/240/224.md +7 -7
  182. package/docs/{ → archive/product/}/351/234/200/346/261/202/346/226/207/346/241/243.md +15 -14
  183. package/logs/convert-20260622-155037.log +5 -0
  184. package/logs/convert-20260622-155226.log +6 -0
  185. package/meetsdk-android.json +2 -1
  186. package/meetsdk-ios.json +15 -0
  187. package/package.json +10 -35
  188. package/scripts/package-aab-cli-win.mjs +193 -0
  189. package/src/aab-converter/aab-entry.ts +48 -0
  190. package/src/aab-converter/apksExtractor.ts +119 -0
  191. package/src/aab-converter/bundletoolRunner.ts +63 -0
  192. package/src/aab-converter/cliArgs.ts +194 -0
  193. package/src/aab-converter/convertAabToApk.ts +81 -0
  194. package/src/aab-converter/resourcePaths.ts +43 -0
  195. package/src/aab-converter/signingOptions.ts +29 -0
  196. package/src/aab-converter/types.ts +26 -0
  197. package/src/android/adapter.ts +9 -0
  198. package/src/android/assembleIntegrationJson.ts +33 -0
  199. package/src/android/detect.ts +132 -0
  200. package/src/android/downloadGoogleServicesJson.ts +56 -0
  201. package/src/android/gradle.ts +116 -0
  202. package/src/android/manifest.ts +50 -0
  203. package/src/android/meetSdkRemoteGradle.ts +837 -0
  204. package/src/cli.ts +488 -0
  205. package/src/config/fetchConfigWrite.ts +30 -0
  206. package/src/config/loadAndroidIntegration.ts +41 -0
  207. package/src/config/loadManifest.ts +40 -0
  208. package/src/config/meetSdkDefaultConfig.ts +99 -0
  209. package/src/config/meetSdkIosConfig.ts +87 -0
  210. package/src/config/meetSdkRemoteConfig.ts +1211 -0
  211. package/src/config/topsdkFeatureModules.ts +92 -0
  212. package/src/contracts/types.ts +121 -0
  213. package/src/core/doctor.ts +485 -0
  214. package/src/core/patch.ts +64 -0
  215. package/src/core/pipeline.ts +107 -0
  216. package/src/core/platform.ts +47 -0
  217. package/src/core/previewPatches.ts +23 -0
  218. package/src/core/reporter.ts +24 -0
  219. package/src/core/workspace.ts +29 -0
  220. package/src/entry.ts +7 -0
  221. package/src/index.ts +133 -0
  222. package/src/ios/channelConfig.ts +128 -0
  223. package/src/ios/codeUtils.ts +160 -0
  224. package/src/ios/detect.ts +105 -0
  225. package/src/ios/entitlements.ts +61 -0
  226. package/src/ios/fileManager.ts +48 -0
  227. package/src/ios/infoPlist.ts +55 -0
  228. package/src/ios/integrate.ts +516 -0
  229. package/src/ios/pbxprojEditor.ts +383 -0
  230. package/src/ios/pluginConfig.ts +97 -0
  231. package/src/ios/reserved.ts +8 -0
  232. package/src/ios/sdkBundle.ts +36 -0
  233. package/src/ios/template.ts +36 -0
  234. package/src/ios/types.ts +65 -0
  235. package/src/mcp/server.ts +170 -0
  236. package/src/mcp/service.ts +222 -0
  237. package/src/mcp-entry.ts +7 -0
  238. package/src/ops/fileStore.ts +56 -0
  239. package/src/ops/handlers.ts +304 -0
  240. package/src/remote/fetchJson.ts +22 -0
  241. package/src/remote/sdkHomeDownload.ts +274 -0
  242. package/src/remote/topsdkDownloadSdkConfig.ts +93 -0
  243. package/src/remote/topsdkGetSdkConfig.ts +122 -0
  244. package/src/remote/topsdkSign.ts +10 -0
  245. package/src/shared/errors.ts +16 -0
  246. package/src/shared/fileUtils.ts +41 -0
  247. package/src/shared/logger.ts +49 -0
  248. package/src/shared/pathUtils.ts +24 -0
  249. package/src/shared/processRunner.ts +43 -0
  250. package/test-projects/README.md +51 -0
  251. package/test-projects/_preview/pipeline.patch +281 -0
  252. package/tests/aab-converter.test.ts +213 -0
  253. package/tests/assemble.test.ts +12 -0
  254. package/tests/doctor.test.ts +89 -0
  255. package/tests/downloadGoogleServicesJson.test.ts +47 -0
  256. package/tests/fetch-remote.test.ts +23 -0
  257. package/tests/fetchConfigOverrides.test.ts +28 -0
  258. package/tests/fetchConfigWrite.test.ts +54 -0
  259. package/tests/gradle.test.ts +33 -0
  260. package/tests/integration-json.test.ts +29 -0
  261. package/tests/ios.codeUtils.test.ts +23 -0
  262. package/tests/ios.sdkBundle.test.ts +16 -0
  263. package/tests/loadManifest.test.ts +15 -0
  264. package/tests/manifest-xml.test.ts +30 -0
  265. package/tests/mcp.e2e.ts +217 -0
  266. package/tests/mcp.service.test.ts +53 -0
  267. package/tests/meetSdkRemoteConfig.test.ts +456 -0
  268. package/tests/meetSdkRemoteGradle.test.ts +414 -0
  269. package/tests/pipeline.android.test.ts +96 -0
  270. package/tests/pipeline.integration-json.test.ts +58 -0
  271. package/tests/pipeline.ios.test.ts +385 -0
  272. package/tests/pipeline.preview.patch.test.ts +85 -0
  273. package/tests/platformSelection.test.ts +77 -0
  274. package/tests/sdkHomeDownload.test.ts +124 -0
  275. package/tests/sdkVersionConfig.test.ts +130 -0
  276. package/tests/test-projects-hosts.test.ts +78 -0
  277. package/tests/topsdk.test.ts +53 -0
  278. package/tests/topsdkDownloadSdkConfig.test.ts +81 -0
  279. package/tests/topsdkFeatureModules.test.ts +116 -0
  280. package/tsconfig.json +19 -0
  281. package/vitest.config.ts +9 -0
  282. package/vitest.mcp.config.ts +11 -0
  283. package/bundled/android/sample.txt +0 -1
  284. package/docs/ANDROID.md +0 -133
  285. package/docs/CURSOR-MCP-SETUP.md +0 -72
  286. package/docs/MCP-SKILL.md +0 -63
  287. package/fixtures/api-samples/getChannelConfig-meetgames.sample.json +0 -123
  288. package/fixtures/meetsdk-remote-config.download-shape.json +0 -20
  289. package/fixtures/meetsdk-remote-config.mock.json +0 -69
  290. package/fixtures/recipes/android-default.fixture.yaml +0 -15
  291. package/fixtures/recipes/android-integration.fixture.json +0 -29
  292. package/fixtures/topsdk-config-reference.json +0 -39
  293. /package/docs/{api → archive/api}/getSDKConfig.md +0 -0
@@ -0,0 +1,170 @@
1
+ import path from "node:path";
2
+ import { UserFacingError } from "../shared/errors.js";
3
+ import { toAbsolutePath } from "../shared/pathUtils.js";
4
+ import { resolveSigningOptions } from "./signingOptions.js";
5
+ function valueAfter(args, index, flag) {
6
+ const value = args[index + 1] ?? "";
7
+ if (!value || value.startsWith("--")) {
8
+ throw new UserFacingError("INVALID_ARGS", `${flag} requires a value`);
9
+ }
10
+ return value;
11
+ }
12
+ function passwordFromEnv(envName, flag) {
13
+ const value = process.env[envName];
14
+ if (!value) {
15
+ throw new UserFacingError("ENV_PASSWORD_MISSING", `${flag} points to an empty or missing environment variable: ${envName}`);
16
+ }
17
+ return value;
18
+ }
19
+ export function printAabHelp() {
20
+ console.log(`
21
+ aab2apk — Convert Android App Bundle (.aab) to signed universal APK
22
+
23
+ Usage:
24
+ aab2apk.cmd convert --aab <file.aab> --out-dir <dir> --ks <file.jks> --ks-key-alias <alias> [password options]
25
+
26
+ Required:
27
+ --aab AAB file path
28
+ --out-dir Output directory
29
+ --ks Keystore/JKS file path
30
+ --ks-key-alias Key alias in keystore
31
+
32
+ Password options:
33
+ --ks-pass-env Read keystore password from environment variable (recommended)
34
+ --key-pass-env Read key password from environment variable (recommended)
35
+ --ks-pass Keystore password as command argument (not recommended)
36
+ --key-pass Key password as command argument (not recommended)
37
+
38
+ Other options:
39
+ --apk-name Output APK file name
40
+ --keep-apks Keep intermediate .apks file
41
+ --no-overwrite Fail if output already exists (default is overwrite)
42
+ --verbose Print detailed logs
43
+ --help, -h Show help
44
+ `);
45
+ }
46
+ export function parseAabCliArgv(argv) {
47
+ const rest = argv.slice(2);
48
+ if (!rest.length || rest[0] === "--help" || rest[0] === "-h") {
49
+ return {
50
+ help: true,
51
+ command: "",
52
+ aabPath: "",
53
+ outDir: "",
54
+ keyStorePath: "",
55
+ keyAlias: "",
56
+ keepApks: false,
57
+ overwrite: true,
58
+ verbose: false,
59
+ };
60
+ }
61
+ const parsed = {
62
+ help: false,
63
+ command: rest[0] ?? "",
64
+ aabPath: "",
65
+ outDir: "",
66
+ keyStorePath: "",
67
+ keyAlias: "",
68
+ keepApks: false,
69
+ overwrite: true,
70
+ verbose: false,
71
+ };
72
+ if (parsed.command !== "convert") {
73
+ throw new UserFacingError("INVALID_COMMAND", `Unknown command: ${parsed.command}`);
74
+ }
75
+ for (let i = 1; i < rest.length; i += 1) {
76
+ const flag = rest[i];
77
+ if (flag === "--help" || flag === "-h") {
78
+ parsed.help = true;
79
+ return parsed;
80
+ }
81
+ if (flag === "--keep-apks") {
82
+ parsed.keepApks = true;
83
+ continue;
84
+ }
85
+ if (flag === "--verbose") {
86
+ parsed.verbose = true;
87
+ continue;
88
+ }
89
+ if (flag === "--no-overwrite") {
90
+ parsed.overwrite = false;
91
+ continue;
92
+ }
93
+ if (flag === "--overwrite") {
94
+ parsed.overwrite = true;
95
+ continue;
96
+ }
97
+ if (flag === "--aab") {
98
+ parsed.aabPath = valueAfter(rest, i, flag);
99
+ i += 1;
100
+ continue;
101
+ }
102
+ if (flag === "--out-dir") {
103
+ parsed.outDir = valueAfter(rest, i, flag);
104
+ i += 1;
105
+ continue;
106
+ }
107
+ if (flag === "--ks") {
108
+ parsed.keyStorePath = valueAfter(rest, i, flag);
109
+ i += 1;
110
+ continue;
111
+ }
112
+ if (flag === "--ks-key-alias") {
113
+ parsed.keyAlias = valueAfter(rest, i, flag);
114
+ i += 1;
115
+ continue;
116
+ }
117
+ if (flag === "--ks-pass-env") {
118
+ parsed.keyStorePassword = passwordFromEnv(valueAfter(rest, i, flag), flag);
119
+ i += 1;
120
+ continue;
121
+ }
122
+ if (flag === "--key-pass-env") {
123
+ parsed.keyPassword = passwordFromEnv(valueAfter(rest, i, flag), flag);
124
+ i += 1;
125
+ continue;
126
+ }
127
+ if (flag === "--ks-pass") {
128
+ parsed.keyStorePassword = valueAfter(rest, i, flag);
129
+ i += 1;
130
+ continue;
131
+ }
132
+ if (flag === "--key-pass") {
133
+ parsed.keyPassword = valueAfter(rest, i, flag);
134
+ i += 1;
135
+ continue;
136
+ }
137
+ if (flag === "--apk-name") {
138
+ parsed.apkName = valueAfter(rest, i, flag);
139
+ i += 1;
140
+ continue;
141
+ }
142
+ throw new UserFacingError("INVALID_ARGS", `Unsupported argument: ${flag}`);
143
+ }
144
+ return parsed;
145
+ }
146
+ export function validateConvertArgs(parsed) {
147
+ if (!parsed.aabPath)
148
+ throw new UserFacingError("INVALID_ARGS", "Missing --aab");
149
+ if (!parsed.outDir)
150
+ throw new UserFacingError("INVALID_ARGS", "Missing --out-dir");
151
+ if (!parsed.keyStorePath)
152
+ throw new UserFacingError("INVALID_ARGS", "Missing --ks");
153
+ if (!parsed.keyAlias)
154
+ throw new UserFacingError("INVALID_ARGS", "Missing --ks-key-alias");
155
+ return {
156
+ aabPath: toAbsolutePath(parsed.aabPath),
157
+ outDir: path.resolve(parsed.outDir),
158
+ signing: resolveSigningOptions({
159
+ keyStorePath: parsed.keyStorePath,
160
+ keyAlias: parsed.keyAlias,
161
+ keyStorePassword: parsed.keyStorePassword,
162
+ keyPassword: parsed.keyPassword,
163
+ }),
164
+ apkName: parsed.apkName,
165
+ keepApks: parsed.keepApks,
166
+ overwrite: parsed.overwrite,
167
+ verbose: parsed.verbose,
168
+ };
169
+ }
170
+ //# sourceMappingURL=cliArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliArgs.js","sourceRoot":"","sources":["../../src/aab-converter/cliArgs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ConvertAabToApkOptions, ConvertAabToApkResult } from "./types.js";
2
+ export declare function resolveOutputPaths(options: Pick<ConvertAabToApkOptions, "aabPath" | "outDir" | "apkName">): {
3
+ apksPath: string;
4
+ apkPath: string;
5
+ };
6
+ export declare function convertAabToApk(options: ConvertAabToApkOptions): Promise<ConvertAabToApkResult>;
7
+ //# sourceMappingURL=convertAabToApk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertAabToApk.d.ts","sourceRoot":"","sources":["../../src/aab-converter/convertAabToApk.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEhF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG;IAC3G,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAOA;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA2DrG"}
@@ -0,0 +1,69 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { UserFacingError } from "../shared/errors.js";
4
+ import { assertCanWriteFile, assertFileExists, assertWritableDirectory } from "../shared/fileUtils.js";
5
+ import { baseNameWithoutExt, toAbsolutePath, validateOutputFileName } from "../shared/pathUtils.js";
6
+ import { buildUniversalApks } from "./bundletoolRunner.js";
7
+ import { extractUniversalApk } from "./apksExtractor.js";
8
+ export function resolveOutputPaths(options) {
9
+ const aabBase = baseNameWithoutExt(options.aabPath, ".aab");
10
+ const apkName = options.apkName ? validateOutputFileName(options.apkName) : `${aabBase}_universal.apk`;
11
+ return {
12
+ apksPath: path.join(options.outDir, `${aabBase}.apks`),
13
+ apkPath: path.join(options.outDir, apkName),
14
+ };
15
+ }
16
+ export async function convertAabToApk(options) {
17
+ const aabPath = toAbsolutePath(options.aabPath);
18
+ const outDir = toAbsolutePath(options.outDir);
19
+ const javaPath = options.javaPath;
20
+ const bundletoolPath = toAbsolutePath(options.bundletoolPath);
21
+ const signing = {
22
+ ...options.signing,
23
+ keyStorePath: toAbsolutePath(options.signing.keyStorePath),
24
+ };
25
+ assertFileExists(aabPath, "AAB_NOT_FOUND", "AAB file");
26
+ baseNameWithoutExt(aabPath, ".aab");
27
+ assertFileExists(signing.keyStorePath, "KEYSTORE_NOT_FOUND", "Keystore file");
28
+ assertFileExists(bundletoolPath, "BUNDLETOOL_NOT_FOUND", "bundletool.jar");
29
+ if (javaPath.includes("/") || javaPath.includes("\\")) {
30
+ assertFileExists(javaPath, "JAVA_NOT_FOUND", "Java executable");
31
+ }
32
+ assertWritableDirectory(outDir);
33
+ const { apksPath, apkPath } = resolveOutputPaths({ aabPath, outDir, apkName: options.apkName });
34
+ assertCanWriteFile(apksPath, options.overwrite, "APK set");
35
+ assertCanWriteFile(apkPath, options.overwrite, "Output APK");
36
+ options.logger?.info(`AAB: ${aabPath}`);
37
+ options.logger?.info(`Output directory: ${outDir}`);
38
+ options.logger?.info(`APK set: ${apksPath}`);
39
+ options.logger?.info(`Output APK: ${apkPath}`);
40
+ await buildUniversalApks({
41
+ javaPath,
42
+ bundletoolPath,
43
+ aabPath,
44
+ apksPath,
45
+ signing,
46
+ overwrite: options.overwrite,
47
+ logger: options.logger,
48
+ });
49
+ await extractUniversalApk(apksPath, apkPath, options.overwrite);
50
+ options.logger?.info(`Extracted universal APK: ${apkPath}`);
51
+ if (!options.keepApks) {
52
+ try {
53
+ fs.unlinkSync(apksPath);
54
+ options.logger?.info(`Removed intermediate APK set: ${apksPath}`);
55
+ }
56
+ catch (e) {
57
+ options.logger?.warn(`Failed to remove intermediate APK set: ${e instanceof Error ? e.message : String(e)}`);
58
+ }
59
+ }
60
+ if (!fs.existsSync(apkPath)) {
61
+ throw new UserFacingError("APK_OUTPUT_MISSING", `Output APK was not created: ${apkPath}`);
62
+ }
63
+ return {
64
+ apkPath,
65
+ apksPath: options.keepApks ? apksPath : undefined,
66
+ logPath: options.logger?.logPath,
67
+ };
68
+ }
69
+ //# sourceMappingURL=convertAabToApk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertAabToApk.js","sourceRoot":"","sources":["../../src/aab-converter/convertAabToApk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function resolveToolRoot(metaUrl: string): string;
2
+ export declare function resolveBundletoolPath(toolRoot: string): string;
3
+ export declare function resolveJavaPath(toolRoot: string): string;
4
+ //# sourceMappingURL=resourcePaths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourcePaths.d.ts","sourceRoot":"","sources":["../../src/aab-converter/resourcePaths.ts"],"names":[],"mappings":"AAKA,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGvD;AASD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY9D;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWxD"}
@@ -0,0 +1,42 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { UserFacingError } from "../shared/errors.js";
5
+ export function resolveToolRoot(metaUrl) {
6
+ const here = path.dirname(fileURLToPath(metaUrl));
7
+ return path.resolve(here, "..", "..");
8
+ }
9
+ function firstExisting(candidates) {
10
+ for (const candidate of candidates) {
11
+ if (fs.existsSync(candidate))
12
+ return candidate;
13
+ }
14
+ return null;
15
+ }
16
+ export function resolveBundletoolPath(toolRoot) {
17
+ const envPath = process.env.AAB2APK_BUNDLETOOL_PATH?.trim();
18
+ if (envPath)
19
+ return path.resolve(envPath);
20
+ const found = firstExisting([
21
+ path.join(toolRoot, "tools", "bundletool.jar"),
22
+ path.join(toolRoot, "bundled", "android", "bundletool.jar"),
23
+ ]);
24
+ if (found)
25
+ return found;
26
+ throw new UserFacingError("BUNDLETOOL_NOT_FOUND", `bundletool.jar not found. Expected ${path.join(toolRoot, "tools", "bundletool.jar")}`);
27
+ }
28
+ export function resolveJavaPath(toolRoot) {
29
+ const envPath = process.env.AAB2APK_JAVA_PATH?.trim();
30
+ if (envPath)
31
+ return path.resolve(envPath);
32
+ const exe = process.platform === "win32" ? "java.exe" : "java";
33
+ const candidates = [path.join(toolRoot, "runtime", "jre", "bin", exe)];
34
+ if (process.platform === "win32") {
35
+ candidates.push(path.join(toolRoot, "runtime", "win-x64", "jre", "bin", "java.exe"));
36
+ }
37
+ const found = firstExisting(candidates);
38
+ if (found)
39
+ return found;
40
+ return exe;
41
+ }
42
+ //# sourceMappingURL=resourcePaths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourcePaths.js","sourceRoot":"","sources":["../../src/aab-converter/resourcePaths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,aAAa,CAAC,UAAoB;IACzC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE,CAAC;IAC5D,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC;KAC5D,CAAC,CAAC;IACH,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,IAAI,eAAe,CACvB,sBAAsB,EACtB,sCAAsC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,CACvF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC;IACtD,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/D,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { SigningOptions } from "./types.js";
2
+ export interface SigningInput {
3
+ keyStorePath: string;
4
+ keyAlias: string;
5
+ keyStorePassword?: string;
6
+ keyPassword?: string;
7
+ }
8
+ export declare function resolveSigningOptions(input: SigningInput): SigningOptions;
9
+ //# sourceMappingURL=signingOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signingOptions.d.ts","sourceRoot":"","sources":["../../src/aab-converter/signingOptions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,CAezE"}
@@ -0,0 +1,21 @@
1
+ import path from "node:path";
2
+ import { UserFacingError } from "../shared/errors.js";
3
+ import { assertFileExists } from "../shared/fileUtils.js";
4
+ import { toAbsolutePath } from "../shared/pathUtils.js";
5
+ export function resolveSigningOptions(input) {
6
+ const keyStorePath = toAbsolutePath(input.keyStorePath);
7
+ assertFileExists(keyStorePath, "KEYSTORE_NOT_FOUND", "Keystore file");
8
+ if (!input.keyAlias.trim()) {
9
+ throw new UserFacingError("SIGNING_ALIAS_MISSING", "Missing --ks-key-alias");
10
+ }
11
+ if (!input.keyStorePassword) {
12
+ throw new UserFacingError("SIGNING_PASSWORD_MISSING", "Missing keystore password");
13
+ }
14
+ return {
15
+ keyStorePath: path.resolve(keyStorePath),
16
+ keyAlias: input.keyAlias,
17
+ keyStorePassword: input.keyStorePassword,
18
+ keyPassword: input.keyPassword || undefined,
19
+ };
20
+ }
21
+ //# sourceMappingURL=signingOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signingOptions.js","sourceRoot":"","sources":["../../src/aab-converter/signingOptions.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAUxD,MAAM,UAAU,qBAAqB,CAAC,KAAmB;IACvD,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxD,gBAAgB,CAAC,YAAY,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;IACtE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,eAAe,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CAAC,0BAA0B,EAAE,2BAA2B,CAAC,CAAC;IACrF,CAAC;IACD,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;KAC5C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { Logger } from "../shared/logger.js";
2
+ export interface SigningOptions {
3
+ keyStorePath: string;
4
+ keyAlias: string;
5
+ keyStorePassword: string;
6
+ keyPassword?: string;
7
+ }
8
+ export interface ConvertAabToApkOptions {
9
+ aabPath: string;
10
+ outDir: string;
11
+ signing: SigningOptions;
12
+ javaPath: string;
13
+ bundletoolPath: string;
14
+ apkName?: string;
15
+ keepApks: boolean;
16
+ overwrite: boolean;
17
+ logger?: Logger;
18
+ }
19
+ export interface ConvertAabToApkResult {
20
+ apkPath: string;
21
+ apksPath?: string;
22
+ logPath?: string;
23
+ }
24
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/aab-converter/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/aab-converter/types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/android/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGzF,eAAO,MAAM,sBAAsB,EAAE,sBAKpC,CAAC"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/android/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6C,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAG/G,eAAO,MAAM,sBAAsB,EAAE,sBAKpC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { detectAndroid } from "./detect.js";
2
2
  export const androidPlatformAdapter = {
3
3
  id: "android",
4
- detect(projectRoot) {
5
- return detectAndroid(projectRoot);
4
+ detect(projectRoot, options) {
5
+ return detectAndroid(projectRoot, options);
6
6
  },
7
7
  };
8
8
  //# sourceMappingURL=adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/android/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,sBAAsB,GAA2B;IAC5D,EAAE,EAAE,SAAS;IACb,MAAM,CAAC,WAAmB;QACxB,OAAO,aAAa,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/android/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,sBAAsB,GAA2B;IAC5D,EAAE,EAAE,SAAS;IACb,MAAM,CAAC,WAAmB,EAAE,OAA8B;QACxD,OAAO,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { AndroidDetectResult } from "../contracts/types.js";
2
- export declare function detectAndroid(projectRoot: string): AndroidDetectResult;
1
+ import type { AndroidDetectOptions, AndroidDetectResult } from "../contracts/types.js";
2
+ export declare function detectAndroid(projectRoot: string, options?: AndroidDetectOptions): AndroidDetectResult;
3
3
  /** Relative path from project root to the detected application module directory (e.g. `app`, `launcher`). */
4
4
  export declare function applicationModuleRelPath(projectRoot: string, android: Extract<AndroidDetectResult, {
5
5
  ok: true;
@@ -1 +1 @@
1
- {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/android/detect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAsCjE,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,CA4CtE;AAED,6GAA6G;AAC7G,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,GAClD,MAAM,CAER;AAED,2FAA2F;AAC3F,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,GAClD,MAAM,CAGR"}
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/android/detect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AA0DvF,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,mBAAmB,CAsD1G;AAED,6GAA6G;AAC7G,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,GAClD,MAAM,CAER;AAED,2FAA2F;AAC3F,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,GAClD,MAAM,CAGR"}
@@ -32,7 +32,24 @@ function moduleNameToDir(projectRoot, moduleName) {
32
32
  function defaultManifestPath(moduleDir) {
33
33
  return path.join(moduleDir, "src", "main", "AndroidManifest.xml");
34
34
  }
35
- export function detectAndroid(projectRoot) {
35
+ function normalizeModuleSelector(value) {
36
+ const trimmed = value.trim().replace(/\\/g, "/").replace(/^\/+|\/+$/g, "");
37
+ if (!trimmed)
38
+ return "";
39
+ const asGradlePath = trimmed.replace(/\//g, ":");
40
+ return asGradlePath.startsWith(":") ? asGradlePath : `:${asGradlePath}`;
41
+ }
42
+ function applicationModuleList(modules) {
43
+ return modules.map((x) => x.moduleName).join(", ");
44
+ }
45
+ function successResult(projectRoot, moduleName, moduleDir) {
46
+ const manifestPath = defaultManifestPath(moduleDir);
47
+ if (!fs.existsSync(manifestPath)) {
48
+ return { ok: false, error: `AndroidManifest.xml not found at ${manifestPath}` };
49
+ }
50
+ return { ok: true, moduleName, moduleDir, manifestPath };
51
+ }
52
+ export function detectAndroid(projectRoot, options = {}) {
36
53
  const settingsGradle = path.join(projectRoot, "settings.gradle");
37
54
  const settingsGradleKts = path.join(projectRoot, "settings.gradle.kts");
38
55
  let settingsContent = "";
@@ -61,19 +78,30 @@ export function detectAndroid(projectRoot) {
61
78
  applicationModules.push({ moduleName, moduleDir });
62
79
  }
63
80
  }
81
+ const requestedModule = options.appTarget ? normalizeModuleSelector(options.appTarget) : "";
64
82
  if (applicationModules.length === 0) {
65
83
  return { ok: false, error: "NO_APPLICATION_MODULE_FOUND" };
66
84
  }
85
+ if (requestedModule) {
86
+ const selected = applicationModules.find((x) => normalizeModuleSelector(x.moduleName) === requestedModule);
87
+ if (!selected) {
88
+ const list = applicationModuleList(applicationModules);
89
+ return {
90
+ ok: false,
91
+ error: `ANDROID_APPLICATION_MODULE_NOT_FOUND: ${requestedModule}; available application modules: ${list}`,
92
+ };
93
+ }
94
+ return successResult(projectRoot, selected.moduleName, selected.moduleDir);
95
+ }
67
96
  if (applicationModules.length > 1) {
68
- const list = applicationModules.map((x) => x.moduleName).join(", ");
69
- return { ok: false, error: `MULTIPLE_APPLICATION_MODULES_FOUND: ${list}` };
97
+ const list = applicationModuleList(applicationModules);
98
+ return {
99
+ ok: false,
100
+ error: `MULTIPLE_APPLICATION_MODULES_FOUND: ${list}; pass --app-target <module> to select one`,
101
+ };
70
102
  }
71
103
  const { moduleName, moduleDir } = applicationModules[0];
72
- const manifestPath = defaultManifestPath(moduleDir);
73
- if (!fs.existsSync(manifestPath)) {
74
- return { ok: false, error: `AndroidManifest.xml not found at ${manifestPath}` };
75
- }
76
- return { ok: true, moduleName, moduleDir, manifestPath };
104
+ return successResult(projectRoot, moduleName, moduleDir);
77
105
  }
78
106
  /** Relative path from project root to the detected application module directory (e.g. `app`, `launcher`). */
79
107
  export function applicationModuleRelPath(projectRoot, android) {
@@ -1 +1 @@
1
- {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/android/detect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/android/detect.ts"],"names":[],"mappings":"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"}
@@ -41,9 +41,6 @@ export declare function removeApplyPluginLinesByIds(text: string, pluginIds: Rea
41
41
  export declare function removeClasspathLinesByCoordinates(text: string, coordinates: ReadonlySet<string>): string;
42
42
  /** Remove repository declarations that match keys in `repositories` (google / mavenCentral / URL). */
43
43
  export declare function removeRepositoryLinesByKeys(blockText: string, repositories: readonly string[]): string;
44
- /**
45
- * Upsert repository declarations: drop existing lines for the same repo keys, then write TOPSDK REPO block.
46
- */
47
44
  export declare function mergeRepositoriesInBlock(blockText: string, repositories: readonly string[]): string;
48
45
  /**
49
46
  * Upsert buildscript classpaths: drop existing lines with same coordinate, then write TOPSDK AUTO block.
@@ -1 +1 @@
1
- {"version":3,"file":"meetSdkRemoteGradle.d.ts","sourceRoot":"","sources":["../../src/android/meetSdkRemoteGradle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meetSdkRemoteGradle.d.ts","sourceRoot":"","sources":["../../src/android/meetSdkRemoteGradle.ts"],"names":[],"mappings":"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"}
@@ -201,12 +201,24 @@ export function removeRepositoryLinesByKeys(blockText, repositories) {
201
201
  /**
202
202
  * Upsert repository declarations: drop existing lines for the same repo keys, then write TOPSDK REPO block.
203
203
  */
204
+ function repositoryToGradleLine(repo) {
205
+ if (repo === "google")
206
+ return " google()";
207
+ if (repo === "mavenCentral")
208
+ return " mavenCentral()";
209
+ return ` maven { url '${escapeGradleSingleQuotedString(repo)}' }`;
210
+ }
204
211
  export function mergeRepositoriesInBlock(blockText, repositories) {
205
212
  let cleaned = removeRepositoryLinesByKeys(blockText, repositories);
206
213
  cleaned = stripManagedBlocks(cleaned, TOPSDK_REPO_AUTO_START, TOPSDK_REPO_AUTO_END);
207
214
  if (!repositories.length)
208
215
  return cleaned;
209
- return fullBlockTextMerge(cleaned, TOPSDK_REPO_AUTO_START, TOPSDK_REPO_AUTO_END, buildTopSdkRepoSnippet(repositories));
216
+ const snippet = [
217
+ TOPSDK_REPO_AUTO_START,
218
+ ...repositories.map(repositoryToGradleLine),
219
+ TOPSDK_REPO_AUTO_END,
220
+ ].join("\n");
221
+ return fullBlockTextMerge(cleaned, TOPSDK_REPO_AUTO_START, TOPSDK_REPO_AUTO_END, snippet);
210
222
  }
211
223
  /**
212
224
  * Upsert buildscript classpaths: drop existing lines with same coordinate, then write TOPSDK AUTO block.
@@ -322,25 +334,6 @@ function findNestedBlockRange(content, keywords) {
322
334
  }
323
335
  return current;
324
336
  }
325
- function buildTopSdkRepoSnippet(repositories) {
326
- const lines = [TOPSDK_REPO_AUTO_START];
327
- for (const repo of repositories) {
328
- if (repo === "google") {
329
- lines.push(" //Firebase", " google()");
330
- }
331
- else if (repo === "mavenCentral") {
332
- lines.push(" //Appsflyer", " mavenCentral()");
333
- }
334
- else {
335
- if (repo.includes("storage-sdk-gameplus.meetsocial.com/repository/TopSdk")) {
336
- lines.push(" //TOPSdk 仓库地址");
337
- }
338
- lines.push(` maven { url '${escapeGradleSingleQuotedString(repo)}' }`);
339
- }
340
- }
341
- lines.push(TOPSDK_REPO_AUTO_END);
342
- return lines.join("\n");
343
- }
344
337
  function buildTopSdkBuildscriptClasspathSnippet(classpaths) {
345
338
  const lines = [TOPSDK_AUTO_START];
346
339
  for (const classpath of classpaths) {