@jetstart/cli 2.3.0 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -3
- package/dist/cli.js +2 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/clean.d.ts +1 -1
- package/dist/commands/clean.d.ts.map +1 -1
- package/dist/commands/clean.js +4 -2
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +98 -43
- package/dist/commands/create.js.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/android-sdk.d.ts +15 -1
- package/dist/utils/android-sdk.d.ts.map +1 -1
- package/dist/utils/android-sdk.js +100 -11
- package/dist/utils/android-sdk.js.map +1 -1
- package/dist/utils/java.d.ts +0 -15
- package/dist/utils/java.d.ts.map +1 -1
- package/dist/utils/java.js +211 -201
- package/dist/utils/java.js.map +1 -1
- package/dist/utils/system-tools.d.ts.map +1 -1
- package/dist/utils/system-tools.js +112 -31
- package/dist/utils/system-tools.js.map +1 -1
- package/dist/utils/template.d.ts.map +1 -1
- package/dist/utils/template.js +5 -2
- package/dist/utils/template.js.map +1 -1
- package/maven-repo/com/jetstart/hot-reload/com.jetstart.hot-reload.gradle.plugin/maven-metadata.xml +1 -1
- package/maven-repo/com/jetstart/hot-reload/com.jetstart.hot-reload.gradle.plugin/maven-metadata.xml.md5 +1 -1
- package/maven-repo/com/jetstart/hot-reload/com.jetstart.hot-reload.gradle.plugin/maven-metadata.xml.sha1 +1 -1
- package/maven-repo/com/jetstart/hot-reload/com.jetstart.hot-reload.gradle.plugin/maven-metadata.xml.sha256 +1 -1
- package/maven-repo/com/jetstart/hot-reload/com.jetstart.hot-reload.gradle.plugin/maven-metadata.xml.sha512 +1 -1
- package/maven-repo/com/jetstart/hot-reload-runtime/maven-metadata.xml +1 -1
- package/maven-repo/com/jetstart/hot-reload-runtime/maven-metadata.xml.md5 +1 -1
- package/maven-repo/com/jetstart/hot-reload-runtime/maven-metadata.xml.sha1 +1 -1
- package/maven-repo/com/jetstart/hot-reload-runtime/maven-metadata.xml.sha256 +1 -1
- package/maven-repo/com/jetstart/hot-reload-runtime/maven-metadata.xml.sha512 +1 -1
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/1.0.0/jetstart-gradle-plugin-1.0.0.jar +0 -0
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/1.0.0/jetstart-gradle-plugin-1.0.0.jar.md5 +1 -1
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/1.0.0/jetstart-gradle-plugin-1.0.0.jar.sha1 +1 -1
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/1.0.0/jetstart-gradle-plugin-1.0.0.jar.sha256 +1 -1
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/1.0.0/jetstart-gradle-plugin-1.0.0.jar.sha512 +1 -1
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/1.0.0/jetstart-gradle-plugin-1.0.0.module +8 -8
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/1.0.0/jetstart-gradle-plugin-1.0.0.module.md5 +1 -1
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/1.0.0/jetstart-gradle-plugin-1.0.0.module.sha1 +1 -1
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/1.0.0/jetstart-gradle-plugin-1.0.0.module.sha256 +1 -1
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/1.0.0/jetstart-gradle-plugin-1.0.0.module.sha512 +1 -1
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/maven-metadata.xml +1 -1
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/maven-metadata.xml.md5 +1 -1
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/maven-metadata.xml.sha1 +1 -1
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/maven-metadata.xml.sha256 +1 -1
- package/maven-repo/com/jetstart/jetstart-gradle-plugin/maven-metadata.xml.sha512 +1 -1
- package/package.json +3 -3
- package/scripts/build-java.js +53 -2
- package/template/base/.env.example +12 -0
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
# @jetstart/cli
|
|
2
2
|
|
|
3
3
|
Command-line interface for JetStart — instant hot reload for Android Jetpack Compose.
|
|
4
4
|
|
|
@@ -25,7 +25,6 @@ Scaffolds a new Android/Compose project. Checks for Java 17+ and Android SDK and
|
|
|
25
25
|
```bash
|
|
26
26
|
jetstart create my-app
|
|
27
27
|
jetstart create my-app --package com.example.myapp
|
|
28
|
-
jetstart create my-app --skip-install
|
|
29
28
|
jetstart create my-app --full-install # Non-interactive, installs all deps automatically
|
|
30
29
|
```
|
|
31
30
|
|
|
@@ -35,7 +34,6 @@ jetstart create my-app --full-install # Non-interactive, installs all deps aut
|
|
|
35
34
|
|---|---|
|
|
36
35
|
| `-p, --package <n>` | Android package name (e.g. `com.example.app`) |
|
|
37
36
|
| `-t, --template <n>` | Template to use (default: `default`) |
|
|
38
|
-
| `--skip-install` | Skip dependency check |
|
|
39
37
|
| `--full-install` | Non-interactive: auto-install Java + Android SDK |
|
|
40
38
|
|
|
41
39
|
---
|
package/dist/cli.js
CHANGED
|
@@ -30,7 +30,6 @@ program
|
|
|
30
30
|
.description('Create a new JetStart project')
|
|
31
31
|
.option('-p, --package <name>', 'Package name (e.g., com.example.app)')
|
|
32
32
|
.option('-t, --template <name>', 'Template to use', 'default')
|
|
33
|
-
.option('--skip-install', 'Skip npm install')
|
|
34
33
|
.option('--full-install', 'Automatically install all required Android dependencies')
|
|
35
34
|
.action(create_1.createCommand);
|
|
36
35
|
// Dev command
|
|
@@ -78,11 +77,11 @@ program
|
|
|
78
77
|
.action(android_emulator_1.androidEmulatorCommand);
|
|
79
78
|
// Clean command
|
|
80
79
|
program
|
|
81
|
-
.command('clean')
|
|
80
|
+
.command('clean [path]')
|
|
82
81
|
.description('Stop Gradle daemons and remove build artifacts — fixes "Folder In Use" errors')
|
|
83
82
|
.option('--build', 'Also delete app/build/ to free disk space (next build will be slower)')
|
|
84
83
|
.option('--daemons-only', 'Only stop Gradle daemons, do not touch build output')
|
|
85
|
-
.action(clean_1.cleanCommand);
|
|
84
|
+
.action((projectArg, options) => (0, clean_1.cleanCommand)(options, projectArg));
|
|
86
85
|
// Error handling
|
|
87
86
|
program.on('command:*', (operands) => {
|
|
88
87
|
console.error(chalk_1.default.red(`Error: Unknown command '${operands[0]}'`));
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AAEA;;;GAGG;;;;;AAEH,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAkD;AAClD,wCAA4C;AAC5C,4CAAgD;AAChD,0CAA8C;AAC9C,4DAA+D;AAC/D,kEAAqE;AACrE,6CAAoD;AACpD,kDAAwC;AACxC,4CAAgD;AAChD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,sBAAO,IAAI,yBAAgB,CAAC,CAAC;AAExC,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,sBAAsB,EAAE,sCAAsC,CAAC;KACtE,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,SAAS,CAAC;KAC7D,MAAM,CAAC,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/clean.d.ts
CHANGED
|
@@ -18,6 +18,6 @@ interface CleanOptions {
|
|
|
18
18
|
build?: boolean;
|
|
19
19
|
daemonsOnly?: boolean;
|
|
20
20
|
}
|
|
21
|
-
export declare function cleanCommand(options?: CleanOptions): Promise<void>;
|
|
21
|
+
export declare function cleanCommand(options?: CleanOptions, projectArg?: string): Promise<void>;
|
|
22
22
|
export {};
|
|
23
23
|
//# sourceMappingURL=clean.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAoED,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,
|
|
1
|
+
{"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAoED,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,EAAE,UAAU,CAAC,EAAE,MAAM,iBAqHjF"}
|
package/dist/commands/clean.js
CHANGED
|
@@ -90,8 +90,10 @@ function killProjectNodeProcesses(projectPath) {
|
|
|
90
90
|
}
|
|
91
91
|
return killed;
|
|
92
92
|
}
|
|
93
|
-
async function cleanCommand(options = {}) {
|
|
94
|
-
const projectPath =
|
|
93
|
+
async function cleanCommand(options = {}, projectArg) {
|
|
94
|
+
const projectPath = projectArg
|
|
95
|
+
? path_1.default.resolve(process.cwd(), projectArg)
|
|
96
|
+
: process.cwd();
|
|
95
97
|
const buildGradleExists = await fs_extra_1.default.pathExists(path_1.default.join(projectPath, 'app', 'build.gradle'));
|
|
96
98
|
const settingsExists = await fs_extra_1.default.pathExists(path_1.default.join(projectPath, 'settings.gradle'));
|
|
97
99
|
if (!buildGradleExists && !settingsExists) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;AA+EH,
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAmLzC,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,iBAsGvE"}
|
package/dist/commands/create.js
CHANGED
|
@@ -59,31 +59,77 @@ const system_tools_1 = require("../utils/system-tools");
|
|
|
59
59
|
*/
|
|
60
60
|
async function runFullInstallation() {
|
|
61
61
|
(0, logger_1.info)('Starting full automated installation...');
|
|
62
|
+
(0, logger_1.info)('⏱ This typically takes 10–20 minutes on first run (downloads ~1–2 GB).');
|
|
63
|
+
(0, logger_1.info)(' Keep this terminal open — the spinner will show elapsed time on slow steps.');
|
|
62
64
|
console.log();
|
|
63
65
|
// Check and install Java
|
|
64
66
|
const java = await (0, java_1.detectJava)();
|
|
65
67
|
if (!java || !(await (0, java_1.isJavaCompatible)(java.version))) {
|
|
66
|
-
|
|
68
|
+
try {
|
|
69
|
+
await (0, java_1.installJava)();
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
(0, logger_1.warning)('Automated Java installation failed.');
|
|
73
|
+
(0, logger_1.info)('Please download and install JDK 17 manually from:');
|
|
74
|
+
(0, logger_1.info)('👉 https://adoptium.net/temurin/releases/?version=17');
|
|
75
|
+
(0, logger_1.info)('After installing, you may need to restart your terminal.');
|
|
76
|
+
console.log();
|
|
77
|
+
}
|
|
67
78
|
}
|
|
68
79
|
else {
|
|
69
80
|
(0, logger_1.success)(`Java ${java.version} already installed`);
|
|
81
|
+
// detectJava() doesn't set process.env.JAVA_HOME — only installJava() does.
|
|
82
|
+
// sdkmanager requires JAVA_HOME, so ensure it's set for all child processes.
|
|
83
|
+
if (!process.env.JAVA_HOME) {
|
|
84
|
+
const javaHome = java.path || (0, java_1.getDefaultJDKPath)();
|
|
85
|
+
if (await fs_extra_1.default.pathExists(javaHome)) {
|
|
86
|
+
process.env.JAVA_HOME = javaHome;
|
|
87
|
+
process.env.PATH = `${path_1.default.join(javaHome, 'bin')}${path_1.default.delimiter}${process.env.PATH || ''}`;
|
|
88
|
+
(0, logger_1.info)(`JAVA_HOME set to: ${javaHome}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
70
91
|
}
|
|
71
92
|
// Check and install Android SDK
|
|
72
93
|
const sdkManager = (0, android_sdk_1.createSDKManager)();
|
|
73
94
|
const sdkRoot = await (0, system_tools_1.findAndroidSDK)();
|
|
74
95
|
if (!sdkRoot) {
|
|
75
|
-
(0, logger_1.info)('
|
|
96
|
+
(0, logger_1.info)('Android SDK not found. Installing...');
|
|
76
97
|
await sdkManager.installCmdlineTools();
|
|
77
98
|
}
|
|
78
99
|
else {
|
|
79
100
|
(0, logger_1.success)(`Android SDK found at ${sdkRoot}`);
|
|
101
|
+
// Check if cmdline-tools are installed within this SDK
|
|
102
|
+
if (!(await sdkManager.hasCmdlineTools())) {
|
|
103
|
+
(0, logger_1.info)('Android cmdline-tools missing. Installing...');
|
|
104
|
+
await sdkManager.installCmdlineTools();
|
|
105
|
+
}
|
|
80
106
|
}
|
|
81
|
-
//
|
|
107
|
+
// Accept licenses once before the loop (avoids a JVM cold-start per component)
|
|
108
|
+
await sdkManager.acceptLicenses();
|
|
109
|
+
// Install required SDK components — errors per component are non-fatal so a
|
|
110
|
+
// single large download failure (e.g. system-images on a slow connection)
|
|
111
|
+
// doesn't abort project creation. All critical build components come first.
|
|
112
|
+
const failedComponents = [];
|
|
82
113
|
for (const component of android_sdk_1.REQUIRED_SDK_COMPONENTS) {
|
|
83
|
-
|
|
114
|
+
try {
|
|
115
|
+
await sdkManager.installComponent(component, undefined, { skipLicenses: true });
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
(0, logger_1.warning)(`Failed to install ${component}: ${err.message}`);
|
|
119
|
+
(0, logger_1.warning)(` → Install manually later: sdkmanager "${component}"`);
|
|
120
|
+
failedComponents.push(component);
|
|
121
|
+
}
|
|
84
122
|
}
|
|
85
123
|
console.log();
|
|
86
|
-
(
|
|
124
|
+
if (failedComponents.length === 0) {
|
|
125
|
+
(0, logger_1.success)('All dependencies installed successfully!');
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
(0, logger_1.warning)(`${failedComponents.length} component(s) failed to install (see above).`);
|
|
129
|
+
(0, logger_1.info)('You can install them manually later with:');
|
|
130
|
+
failedComponents.forEach(c => (0, logger_1.info)(` sdkmanager "${c}"`));
|
|
131
|
+
(0, logger_1.info)('Project creation will continue with the components that were installed.');
|
|
132
|
+
}
|
|
87
133
|
console.log();
|
|
88
134
|
}
|
|
89
135
|
/**
|
|
@@ -104,7 +150,16 @@ async function runInteractiveInstallation() {
|
|
|
104
150
|
},
|
|
105
151
|
]);
|
|
106
152
|
if (shouldInstall) {
|
|
107
|
-
|
|
153
|
+
try {
|
|
154
|
+
await (0, java_1.installJava)();
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
(0, logger_1.warning)('Automated Java installation failed.');
|
|
158
|
+
(0, logger_1.info)('Please download and install JDK 17 manually from:');
|
|
159
|
+
(0, logger_1.info)('👉 https://adoptium.net/temurin/releases/?version=17');
|
|
160
|
+
(0, logger_1.info)('After installing, you may need to restart your terminal.');
|
|
161
|
+
console.log();
|
|
162
|
+
}
|
|
108
163
|
}
|
|
109
164
|
else {
|
|
110
165
|
(0, logger_1.warning)('Java installation skipped. You may need to install it manually.');
|
|
@@ -148,6 +203,21 @@ async function runInteractiveInstallation() {
|
|
|
148
203
|
}
|
|
149
204
|
else {
|
|
150
205
|
(0, logger_1.success)(`Android SDK found at ${sdkRoot}`);
|
|
206
|
+
const sdkManager = (0, android_sdk_1.createSDKManager)();
|
|
207
|
+
// Check if cmdline-tools are installed within this SDK
|
|
208
|
+
if (!(await sdkManager.hasCmdlineTools())) {
|
|
209
|
+
const { shouldInstall } = await inquirer_1.default.prompt([
|
|
210
|
+
{
|
|
211
|
+
type: 'confirm',
|
|
212
|
+
name: 'shouldInstall',
|
|
213
|
+
message: 'Android cmdline-tools missing. Would you like to install them?',
|
|
214
|
+
default: true,
|
|
215
|
+
},
|
|
216
|
+
]);
|
|
217
|
+
if (shouldInstall) {
|
|
218
|
+
await sdkManager.installCmdlineTools();
|
|
219
|
+
}
|
|
220
|
+
}
|
|
151
221
|
}
|
|
152
222
|
console.log();
|
|
153
223
|
}
|
|
@@ -172,40 +242,33 @@ async function createCommand(name, options) {
|
|
|
172
242
|
await runFullInstallation();
|
|
173
243
|
}
|
|
174
244
|
else {
|
|
175
|
-
|
|
176
|
-
const { shouldCheckDeps } = await inquirer_1.default.prompt([
|
|
177
|
-
{
|
|
178
|
-
type: 'confirm',
|
|
179
|
-
name: 'shouldCheckDeps',
|
|
180
|
-
message: 'Check and install dependencies?',
|
|
181
|
-
default: true,
|
|
182
|
-
},
|
|
183
|
-
]);
|
|
184
|
-
if (shouldCheckDeps) {
|
|
185
|
-
await runInteractiveInstallation();
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
// If user skips system dependencies, also skip project dependencies to be consistent
|
|
189
|
-
options.skipInstall = true;
|
|
190
|
-
}
|
|
245
|
+
await runInteractiveInstallation();
|
|
191
246
|
}
|
|
192
247
|
// Get package name
|
|
193
248
|
let packageName = options.package;
|
|
194
249
|
if (!packageName) {
|
|
195
250
|
const defaultPackage = `com.jetstart.${name.toLowerCase().replace(/[^a-z0-9]/g, '')}`;
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
default:
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
251
|
+
// In --full-install (automated) mode or when stdin is not a TTY, skip the
|
|
252
|
+
// interactive prompt and use the default. User can override with --package.
|
|
253
|
+
if (options.fullInstall || !process.stdin.isTTY) {
|
|
254
|
+
packageName = defaultPackage;
|
|
255
|
+
(0, logger_1.info)(`Using default package name: ${chalk_1.default.cyan(packageName)}`);
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
const answer = await (0, prompt_1.prompt)({
|
|
259
|
+
type: 'input',
|
|
260
|
+
name: 'packageName',
|
|
261
|
+
message: 'Package name:',
|
|
262
|
+
default: defaultPackage,
|
|
263
|
+
validate: (input) => {
|
|
264
|
+
if (!(0, shared_1.isValidPackageName)(input)) {
|
|
265
|
+
return 'Invalid package name. Use format: com.company.app';
|
|
266
|
+
}
|
|
267
|
+
return true;
|
|
268
|
+
},
|
|
269
|
+
});
|
|
270
|
+
packageName = answer.packageName;
|
|
271
|
+
}
|
|
209
272
|
}
|
|
210
273
|
// Validate package name
|
|
211
274
|
if (!(0, shared_1.isValidPackageName)(packageName)) {
|
|
@@ -230,14 +293,6 @@ async function createCommand(name, options) {
|
|
|
230
293
|
await fs_extra_1.default.copy(bundledRepoPath, m2RepoPath, { overwrite: true });
|
|
231
294
|
}
|
|
232
295
|
(0, spinner_1.stopSpinner)(spinner, true, 'Project structure created');
|
|
233
|
-
// Install dependencies
|
|
234
|
-
if (!options.skipInstall) {
|
|
235
|
-
const installSpinner = (0, spinner_1.startSpinner)('Installing dependencies...');
|
|
236
|
-
// In a real implementation, we'd run npm/gradle here
|
|
237
|
-
// For now, we'll simulate it
|
|
238
|
-
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
239
|
-
(0, spinner_1.stopSpinner)(installSpinner, true, 'Dependencies installed');
|
|
240
|
-
}
|
|
241
296
|
console.log();
|
|
242
297
|
(0, logger_1.success)(`Successfully created project: ${chalk_1.default.cyan(name)}`);
|
|
243
298
|
console.log();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAGD,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAGD,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAGD,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAGD,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAGD,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB"}
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA4CH,sBAAsB;AACtB,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;AACrB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB"}
|
|
@@ -21,6 +21,10 @@ export declare class AndroidSDKManager {
|
|
|
21
21
|
* Initialize SDK root, detecting or creating as needed
|
|
22
22
|
*/
|
|
23
23
|
ensureSDKRoot(): Promise<string>;
|
|
24
|
+
/**
|
|
25
|
+
* Check if Android cmdline-tools are installed
|
|
26
|
+
*/
|
|
27
|
+
hasCmdlineTools(): Promise<boolean>;
|
|
24
28
|
/**
|
|
25
29
|
* Install Android cmdline-tools
|
|
26
30
|
*/
|
|
@@ -41,6 +45,12 @@ export declare class AndroidSDKManager {
|
|
|
41
45
|
* Get path to avdmanager executable
|
|
42
46
|
*/
|
|
43
47
|
private getAVDManagerPath;
|
|
48
|
+
/**
|
|
49
|
+
* Resolve the effective JAVA_HOME for child processes.
|
|
50
|
+
* detectJava() does not set process.env.JAVA_HOME — only installJava() does.
|
|
51
|
+
* When Java was already installed before this session, JAVA_HOME may be absent.
|
|
52
|
+
*/
|
|
53
|
+
private getEffectiveJavaHome;
|
|
44
54
|
/**
|
|
45
55
|
* Run sdkmanager command
|
|
46
56
|
*/
|
|
@@ -51,8 +61,12 @@ export declare class AndroidSDKManager {
|
|
|
51
61
|
acceptLicenses(): Promise<void>;
|
|
52
62
|
/**
|
|
53
63
|
* Install an SDK component
|
|
64
|
+
* @param skipLicenses - Skip accepting licenses (use when licenses were already accepted
|
|
65
|
+
* in the calling context, e.g. installRequiredComponents)
|
|
54
66
|
*/
|
|
55
|
-
installComponent(component: string, progressLabel?: string
|
|
67
|
+
installComponent(component: string, progressLabel?: string, { skipLicenses }?: {
|
|
68
|
+
skipLicenses?: boolean;
|
|
69
|
+
}): Promise<void>;
|
|
56
70
|
/**
|
|
57
71
|
* List installed SDK components
|
|
58
72
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android-sdk.d.ts","sourceRoot":"","sources":["../../src/utils/android-sdk.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"android-sdk.d.ts","sourceRoot":"","sources":["../../src/utils/android-sdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,UAOnC,CAAC;AAWF;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,MAAM;IAI5B;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAqBtC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAKzC;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C1C;;;;;;OAMG;YACW,mBAAmB;IA4BjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;;OAIG;YACW,oBAAoB;IAUlC;;OAEG;YACW,aAAa;IAmG3B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IA2GrC;;;;OAIG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,EACtB,EAAE,YAAoB,EAAE,GAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAO,GACxD,OAAO,CAAC,IAAI,CAAC;IAuBhB;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAS9C;;OAEG;IACH,OAAO,CAAC,YAAY;IAuBpB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAYhC;;OAEG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/D;;OAEG;IACG,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BhD;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAOlD;;OAEG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAOpE"}
|