@leonxin/meetgames 0.1.11 → 0.1.13

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 (179) hide show
  1. package/README.md +9 -9
  2. package/dist/cache.d.ts +44 -0
  3. package/dist/cache.d.ts.map +1 -0
  4. package/dist/cache.js +101 -0
  5. package/dist/cache.js.map +1 -0
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +43 -37
  8. package/dist/cli.js.map +1 -1
  9. package/dist/config/meetSdkDefaultConfig.d.ts +1 -1
  10. package/dist/config/meetSdkDefaultConfig.d.ts.map +1 -1
  11. package/dist/config/meetSdkDefaultConfig.js +4 -3
  12. package/dist/config/meetSdkDefaultConfig.js.map +1 -1
  13. package/dist/config/meetSdkIosConfig.d.ts.map +1 -1
  14. package/dist/config/meetSdkIosConfig.js +3 -1
  15. package/dist/config/meetSdkIosConfig.js.map +1 -1
  16. package/dist/config/meetSdkRemoteConfig.d.ts +1 -0
  17. package/dist/config/meetSdkRemoteConfig.d.ts.map +1 -1
  18. package/dist/config/meetSdkRemoteConfig.js +4 -1
  19. package/dist/config/meetSdkRemoteConfig.js.map +1 -1
  20. package/dist/contracts/types.d.ts +11 -0
  21. package/dist/contracts/types.d.ts.map +1 -1
  22. package/dist/core/doctor.js +7 -7
  23. package/dist/core/doctor.js.map +1 -1
  24. package/dist/core/pipeline.d.ts.map +1 -1
  25. package/dist/core/pipeline.js +3 -0
  26. package/dist/core/pipeline.js.map +1 -1
  27. package/dist/core/previewPatches.d.ts +1 -1
  28. package/dist/core/previewPatches.js +2 -2
  29. package/dist/core/previewPatches.js.map +1 -1
  30. package/dist/core/reporter.d.ts.map +1 -1
  31. package/dist/core/reporter.js +4 -0
  32. package/dist/core/reporter.js.map +1 -1
  33. package/dist/core/workspace.d.ts.map +1 -1
  34. package/dist/core/workspace.js +2 -0
  35. package/dist/core/workspace.js.map +1 -1
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +1 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/ios/channelConfig.js +1 -1
  41. package/dist/ios/channelConfig.js.map +1 -1
  42. package/dist/ios/codeUtils.d.ts +1 -0
  43. package/dist/ios/codeUtils.d.ts.map +1 -1
  44. package/dist/ios/codeUtils.js +3 -0
  45. package/dist/ios/codeUtils.js.map +1 -1
  46. package/dist/ios/integrate.d.ts.map +1 -1
  47. package/dist/ios/integrate.js +97 -23
  48. package/dist/ios/integrate.js.map +1 -1
  49. package/dist/ios/pbxprojEditor.d.ts.map +1 -1
  50. package/dist/ios/pbxprojEditor.js +123 -6
  51. package/dist/ios/pbxprojEditor.js.map +1 -1
  52. package/dist/ios/sdkBundle.d.ts +1 -6
  53. package/dist/ios/sdkBundle.d.ts.map +1 -1
  54. package/dist/ios/sdkBundle.js +44 -16
  55. package/dist/ios/sdkBundle.js.map +1 -1
  56. package/dist/mcp/server.d.ts.map +1 -1
  57. package/dist/mcp/server.js +12 -6
  58. package/dist/mcp/server.js.map +1 -1
  59. package/dist/mcp/service.d.ts +3 -0
  60. package/dist/mcp/service.d.ts.map +1 -1
  61. package/dist/mcp/service.js +31 -8
  62. package/dist/mcp/service.js.map +1 -1
  63. package/dist/ops/handlers.d.ts.map +1 -1
  64. package/dist/ops/handlers.js +24 -19
  65. package/dist/ops/handlers.js.map +1 -1
  66. package/dist/remote/sdkHomeDownload.d.ts +1 -1
  67. package/dist/remote/sdkHomeDownload.d.ts.map +1 -1
  68. package/dist/remote/sdkHomeDownload.js +27 -6
  69. package/dist/remote/sdkHomeDownload.js.map +1 -1
  70. package/docs/API.md +16 -16
  71. package/docs/CLI.md +21 -22
  72. package/docs/INTEGRATION.md +30 -11
  73. package/docs/MCP.md +1 -1
  74. package/docs/README.md +0 -1
  75. package/docs/archive/api/downloadSDKConfig.md +2 -2
  76. package/docs/archive/api/getChannelConfig-meetgames.md +1 -1
  77. package/docs/archive/product//351/234/200/346/261/202/346/226/207/346/241/243.md +1 -1
  78. package/package.json +2 -5
  79. package/recipes/android-default.yaml +0 -5
  80. package/recipes/integrate-default.yaml +0 -5
  81. package/src/cache.ts +164 -0
  82. package/src/cli.ts +46 -38
  83. package/src/config/meetSdkDefaultConfig.ts +4 -3
  84. package/src/config/meetSdkIosConfig.ts +3 -1
  85. package/src/config/meetSdkRemoteConfig.ts +5 -1
  86. package/src/contracts/types.ts +11 -0
  87. package/src/core/doctor.ts +7 -7
  88. package/src/core/pipeline.ts +3 -0
  89. package/src/core/previewPatches.ts +2 -2
  90. package/src/core/reporter.ts +3 -0
  91. package/src/core/workspace.ts +2 -0
  92. package/src/index.ts +7 -0
  93. package/src/ios/channelConfig.ts +1 -1
  94. package/src/ios/codeUtils.ts +4 -0
  95. package/src/ios/integrate.ts +110 -27
  96. package/src/ios/pbxprojEditor.ts +121 -4
  97. package/src/ios/sdkBundle.ts +41 -18
  98. package/src/mcp/server.ts +12 -6
  99. package/src/mcp/service.ts +39 -8
  100. package/src/ops/handlers.ts +23 -19
  101. package/src/remote/sdkHomeDownload.ts +28 -7
  102. package/tests/doctor.test.ts +4 -2
  103. package/tests/{test-projects-hosts.test.ts → fixtures-hosts.test.ts} +2 -2
  104. package/tests/ios.sdkBundle.test.ts +10 -5
  105. package/tests/mcp.e2e.ts +2 -5
  106. package/tests/meetSdkRemoteConfig.test.ts +25 -0
  107. package/tests/pipeline.android.test.ts +1 -2
  108. package/tests/pipeline.ios.test.ts +133 -20
  109. package/tests/pipeline.preview.patch.test.ts +2 -2
  110. package/tests/sdkVersionConfig.test.ts +3 -2
  111. package/dist/aab-converter/aab-entry.d.ts +0 -3
  112. package/dist/aab-converter/aab-entry.d.ts.map +0 -1
  113. package/dist/aab-converter/aab-entry.js +0 -49
  114. package/dist/aab-converter/aab-entry.js.map +0 -1
  115. package/dist/aab-converter/apksExtractor.d.ts +0 -2
  116. package/dist/aab-converter/apksExtractor.d.ts.map +0 -1
  117. package/dist/aab-converter/apksExtractor.js +0 -108
  118. package/dist/aab-converter/apksExtractor.js.map +0 -1
  119. package/dist/aab-converter/bundletoolRunner.d.ts +0 -15
  120. package/dist/aab-converter/bundletoolRunner.d.ts.map +0 -1
  121. package/dist/aab-converter/bundletoolRunner.js +0 -46
  122. package/dist/aab-converter/bundletoolRunner.js.map +0 -1
  123. package/dist/aab-converter/cliArgs.d.ts +0 -27
  124. package/dist/aab-converter/cliArgs.d.ts.map +0 -1
  125. package/dist/aab-converter/cliArgs.js +0 -170
  126. package/dist/aab-converter/cliArgs.js.map +0 -1
  127. package/dist/aab-converter/convertAabToApk.d.ts +0 -7
  128. package/dist/aab-converter/convertAabToApk.d.ts.map +0 -1
  129. package/dist/aab-converter/convertAabToApk.js +0 -69
  130. package/dist/aab-converter/convertAabToApk.js.map +0 -1
  131. package/dist/aab-converter/resourcePaths.d.ts +0 -4
  132. package/dist/aab-converter/resourcePaths.d.ts.map +0 -1
  133. package/dist/aab-converter/resourcePaths.js +0 -42
  134. package/dist/aab-converter/resourcePaths.js.map +0 -1
  135. package/dist/aab-converter/signingOptions.d.ts +0 -9
  136. package/dist/aab-converter/signingOptions.d.ts.map +0 -1
  137. package/dist/aab-converter/signingOptions.js +0 -21
  138. package/dist/aab-converter/signingOptions.js.map +0 -1
  139. package/dist/aab-converter/types.d.ts +0 -24
  140. package/dist/aab-converter/types.d.ts.map +0 -1
  141. package/dist/aab-converter/types.js +0 -2
  142. package/dist/aab-converter/types.js.map +0 -1
  143. package/dist/shared/fileUtils.d.ts +0 -5
  144. package/dist/shared/fileUtils.d.ts.map +0 -1
  145. package/dist/shared/fileUtils.js +0 -35
  146. package/dist/shared/fileUtils.js.map +0 -1
  147. package/dist/shared/logger.d.ts +0 -10
  148. package/dist/shared/logger.d.ts.map +0 -1
  149. package/dist/shared/logger.js +0 -37
  150. package/dist/shared/logger.js.map +0 -1
  151. package/dist/shared/pathUtils.d.ts +0 -4
  152. package/dist/shared/pathUtils.d.ts.map +0 -1
  153. package/dist/shared/pathUtils.js +0 -22
  154. package/dist/shared/pathUtils.js.map +0 -1
  155. package/dist/shared/processRunner.d.ts +0 -12
  156. package/dist/shared/processRunner.d.ts.map +0 -1
  157. package/dist/shared/processRunner.js +0 -31
  158. package/dist/shared/processRunner.js.map +0 -1
  159. package/docs/AAB_CONVERTER_CLI_PLAN.md +0 -392
  160. package/logs/convert-20260622-155037.log +0 -5
  161. package/logs/convert-20260622-155226.log +0 -6
  162. package/scripts/package-aab-cli-win.mjs +0 -193
  163. package/src/aab-converter/aab-entry.ts +0 -48
  164. package/src/aab-converter/apksExtractor.ts +0 -119
  165. package/src/aab-converter/bundletoolRunner.ts +0 -63
  166. package/src/aab-converter/cliArgs.ts +0 -194
  167. package/src/aab-converter/convertAabToApk.ts +0 -81
  168. package/src/aab-converter/resourcePaths.ts +0 -43
  169. package/src/aab-converter/signingOptions.ts +0 -29
  170. package/src/aab-converter/types.ts +0 -26
  171. package/src/shared/fileUtils.ts +0 -41
  172. package/src/shared/logger.ts +0 -49
  173. package/src/shared/pathUtils.ts +0 -24
  174. package/src/shared/processRunner.ts +0 -43
  175. package/test-projects/README.md +0 -51
  176. package/test-projects/_preview/pipeline.patch +0 -281
  177. package/tests/aab-converter.test.ts +0 -213
  178. /package/{meetsdk-android.json → config/meetsdk-android.json} +0 -0
  179. /package/{meetsdk-ios.json → config/meetsdk-ios.json} +0 -0
@@ -1,170 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"cliArgs.js","sourceRoot":"","sources":["../../src/aab-converter/cliArgs.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,69 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"convertAabToApk.js","sourceRoot":"","sources":["../../src/aab-converter/convertAabToApk.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,42 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,9 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,21 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,24 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/aab-converter/types.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- export declare function assertFileExists(filePath: string, code: string, label: string): void;
2
- export declare function ensureDirectory(dirPath: string): void;
3
- export declare function assertWritableDirectory(dirPath: string): void;
4
- export declare function assertCanWriteFile(filePath: string, overwrite: boolean, label: string): void;
5
- //# sourceMappingURL=fileUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fileUtils.d.ts","sourceRoot":"","sources":["../../src/shared/fileUtils.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAOpF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKrD;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAa7D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK5F"}
@@ -1,35 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import { UserFacingError } from "./errors.js";
4
- export function assertFileExists(filePath, code, label) {
5
- if (!fs.existsSync(filePath)) {
6
- throw new UserFacingError(code, `${label} does not exist: ${filePath}`);
7
- }
8
- if (!fs.statSync(filePath).isFile()) {
9
- throw new UserFacingError(code, `${label} is not a file: ${filePath}`);
10
- }
11
- }
12
- export function ensureDirectory(dirPath) {
13
- fs.mkdirSync(dirPath, { recursive: true });
14
- if (!fs.statSync(dirPath).isDirectory()) {
15
- throw new UserFacingError("OUTPUT_DIR_INVALID", `Output path is not a directory: ${dirPath}`);
16
- }
17
- }
18
- export function assertWritableDirectory(dirPath) {
19
- ensureDirectory(dirPath);
20
- try {
21
- const probe = path.join(dirPath, `.write-test-${Date.now()}-${Math.random().toString(16).slice(2)}`);
22
- fs.writeFileSync(probe, "");
23
- fs.unlinkSync(probe);
24
- }
25
- catch (e) {
26
- throw new UserFacingError("OUTPUT_DIR_NOT_WRITABLE", `Output directory is not writable: ${dirPath}`, e instanceof Error ? e.message : String(e));
27
- }
28
- }
29
- export function assertCanWriteFile(filePath, overwrite, label) {
30
- if (!overwrite && fs.existsSync(filePath)) {
31
- throw new UserFacingError("OUTPUT_EXISTS", `${label} already exists: ${filePath}`);
32
- }
33
- ensureDirectory(path.dirname(filePath));
34
- }
35
- //# sourceMappingURL=fileUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fileUtils.js","sourceRoot":"","sources":["../../src/shared/fileUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,IAAY,EAAE,KAAa;IAC5E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,eAAe,CAAC,IAAI,EAAE,GAAG,KAAK,oBAAoB,QAAQ,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,eAAe,CAAC,IAAI,EAAE,GAAG,KAAK,mBAAmB,QAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,eAAe,CAAC,oBAAoB,EAAE,mCAAmC,OAAO,EAAE,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CACvB,yBAAyB,EACzB,qCAAqC,OAAO,EAAE,EAC9C,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAC3C,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,SAAkB,EAAE,KAAa;IACpF,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,eAAe,CAAC,eAAe,EAAE,GAAG,KAAK,oBAAoB,QAAQ,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1C,CAAC"}
@@ -1,10 +0,0 @@
1
- export interface Logger {
2
- readonly logPath?: string;
3
- info(message: string): void;
4
- warn(message: string): void;
5
- error(message: string): void;
6
- close(): void;
7
- }
8
- export declare function createFileLogger(logDir: string): Logger;
9
- export declare function createConsoleLogger(verbose: boolean): Logger;
10
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/shared/logger.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,IAAI,IAAI,CAAC;CACf;AAcD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAcvD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAS5D"}
@@ -1,37 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- function timestamp() {
4
- return new Date().toISOString();
5
- }
6
- function logFileName() {
7
- const d = new Date();
8
- const pad = (n) => String(n).padStart(2, "0");
9
- return `convert-${d.getFullYear()}${pad(d.getMonth() + 1)}${pad(d.getDate())}-${pad(d.getHours())}${pad(d.getMinutes())}${pad(d.getSeconds())}.log`;
10
- }
11
- export function createFileLogger(logDir) {
12
- fs.mkdirSync(logDir, { recursive: true });
13
- const logPath = path.join(logDir, logFileName());
14
- const stream = fs.createWriteStream(logPath, { flags: "a", encoding: "utf8" });
15
- const write = (level, message) => {
16
- stream.write(`[${timestamp()}] [${level}] ${message}\n`);
17
- };
18
- return {
19
- logPath,
20
- info: (message) => write("INFO", message),
21
- warn: (message) => write("WARN", message),
22
- error: (message) => write("ERROR", message),
23
- close: () => stream.end(),
24
- };
25
- }
26
- export function createConsoleLogger(verbose) {
27
- return {
28
- info: (message) => {
29
- if (verbose)
30
- console.log(message);
31
- },
32
- warn: (message) => console.warn(message),
33
- error: (message) => console.error(message),
34
- close: () => undefined,
35
- };
36
- }
37
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/shared/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAU7B,SAAS,SAAS;IAChB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,WAAW,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,CACrG,CAAC,CAAC,UAAU,EAAE,CACf,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,OAAe,EAAE,EAAE;QAC/C,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE,MAAM,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC;IACF,OAAO;QACL,OAAO;QACP,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;QACzC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;QACzC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;QAC3C,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;QACL,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;YAChB,IAAI,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QACxC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QAC1C,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;KACvB,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare function toAbsolutePath(value: string, baseDir?: string): string;
2
- export declare function baseNameWithoutExt(filePath: string, expectedExt: string): string;
3
- export declare function validateOutputFileName(fileName: string): string;
4
- //# sourceMappingURL=pathUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pathUtils.d.ts","sourceRoot":"","sources":["../../src/shared/pathUtils.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,SAAgB,GAAG,MAAM,CAE7E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAMhF;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ/D"}
@@ -1,22 +0,0 @@
1
- import path from "node:path";
2
- import { UserFacingError } from "./errors.js";
3
- export function toAbsolutePath(value, baseDir = process.cwd()) {
4
- return path.resolve(baseDir, value);
5
- }
6
- export function baseNameWithoutExt(filePath, expectedExt) {
7
- const parsed = path.parse(filePath);
8
- if (parsed.ext.toLowerCase() !== expectedExt.toLowerCase()) {
9
- throw new UserFacingError("INVALID_EXTENSION", `Expected ${expectedExt} file: ${filePath}`);
10
- }
11
- return parsed.name;
12
- }
13
- export function validateOutputFileName(fileName) {
14
- if (!fileName.trim()) {
15
- throw new UserFacingError("INVALID_APK_NAME", "--apk-name cannot be empty");
16
- }
17
- if (fileName.includes("/") || fileName.includes("\\") || path.basename(fileName) !== fileName) {
18
- throw new UserFacingError("INVALID_APK_NAME", "--apk-name must be a file name, not a path");
19
- }
20
- return fileName.toLowerCase().endsWith(".apk") ? fileName : `${fileName}.apk`;
21
- }
22
- //# sourceMappingURL=pathUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pathUtils.js","sourceRoot":"","sources":["../../src/shared/pathUtils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;IACnE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,WAAmB;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;QAC3D,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,YAAY,WAAW,UAAU,QAAQ,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC9F,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,4CAA4C,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,MAAM,CAAC;AAChF,CAAC"}
@@ -1,12 +0,0 @@
1
- export interface RunProcessOptions {
2
- cwd?: string;
3
- onStdout?: (chunk: string) => void;
4
- onStderr?: (chunk: string) => void;
5
- }
6
- export interface RunProcessResult {
7
- exitCode: number;
8
- stdout: string;
9
- stderr: string;
10
- }
11
- export declare function runProcess(file: string, args: string[], options?: RunProcessOptions): Promise<RunProcessResult>;
12
- //# sourceMappingURL=processRunner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"processRunner.d.ts","sourceRoot":"","sources":["../../src/shared/processRunner.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4BnH"}
@@ -1,31 +0,0 @@
1
- import { spawn } from "node:child_process";
2
- export function runProcess(file, args, options = {}) {
3
- return new Promise((resolve, reject) => {
4
- const child = spawn(file, args, {
5
- cwd: options.cwd,
6
- windowsHide: true,
7
- shell: false,
8
- });
9
- let stdout = "";
10
- let stderr = "";
11
- child.stdout?.on("data", (buf) => {
12
- const text = buf.toString("utf8");
13
- stdout += text;
14
- options.onStdout?.(text);
15
- });
16
- child.stderr?.on("data", (buf) => {
17
- const text = buf.toString("utf8");
18
- stderr += text;
19
- options.onStderr?.(text);
20
- });
21
- child.on("error", reject);
22
- child.on("close", (exitCode) => {
23
- resolve({
24
- exitCode: exitCode ?? 1,
25
- stdout,
26
- stderr,
27
- });
28
- });
29
- });
30
- }
31
- //# sourceMappingURL=processRunner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"processRunner.js","sourceRoot":"","sources":["../../src/shared/processRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAc3C,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,IAAc,EAAE,UAA6B,EAAE;IACtF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;YAC9B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,IAAI,CAAC;YACf,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,IAAI,CAAC;YACf,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC7B,OAAO,CAAC;gBACN,QAAQ,EAAE,QAAQ,IAAI,CAAC;gBACvB,MAAM;gBACN,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}