@jetstart/cli 1.1.4 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/cli.js +18 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/android-emulator.d.ts +8 -0
  4. package/dist/commands/android-emulator.d.ts.map +1 -0
  5. package/dist/commands/android-emulator.js +280 -0
  6. package/dist/commands/android-emulator.js.map +1 -0
  7. package/dist/commands/create.d.ts +1 -6
  8. package/dist/commands/create.d.ts.map +1 -1
  9. package/dist/commands/create.js +119 -0
  10. package/dist/commands/create.js.map +1 -1
  11. package/dist/commands/dev.d.ts +1 -7
  12. package/dist/commands/dev.d.ts.map +1 -1
  13. package/dist/commands/dev.js +69 -10
  14. package/dist/commands/dev.js.map +1 -1
  15. package/dist/commands/index.d.ts +2 -0
  16. package/dist/commands/index.d.ts.map +1 -1
  17. package/dist/commands/index.js +5 -1
  18. package/dist/commands/index.js.map +1 -1
  19. package/dist/commands/install-audit.d.ts +9 -0
  20. package/dist/commands/install-audit.d.ts.map +1 -0
  21. package/dist/commands/install-audit.js +185 -0
  22. package/dist/commands/install-audit.js.map +1 -0
  23. package/dist/types/index.d.ts +22 -0
  24. package/dist/types/index.d.ts.map +1 -1
  25. package/dist/types/index.js +8 -0
  26. package/dist/types/index.js.map +1 -1
  27. package/dist/utils/android-sdk.d.ts +81 -0
  28. package/dist/utils/android-sdk.d.ts.map +1 -0
  29. package/dist/utils/android-sdk.js +432 -0
  30. package/dist/utils/android-sdk.js.map +1 -0
  31. package/dist/utils/downloader.d.ts +35 -0
  32. package/dist/utils/downloader.d.ts.map +1 -0
  33. package/dist/utils/downloader.js +214 -0
  34. package/dist/utils/downloader.js.map +1 -0
  35. package/dist/utils/emulator-deployer.d.ts +29 -0
  36. package/dist/utils/emulator-deployer.d.ts.map +1 -0
  37. package/dist/utils/emulator-deployer.js +224 -0
  38. package/dist/utils/emulator-deployer.js.map +1 -0
  39. package/dist/utils/emulator.d.ts +101 -0
  40. package/dist/utils/emulator.d.ts.map +1 -0
  41. package/dist/utils/emulator.js +410 -0
  42. package/dist/utils/emulator.js.map +1 -0
  43. package/dist/utils/java.d.ts +25 -0
  44. package/dist/utils/java.d.ts.map +1 -0
  45. package/dist/utils/java.js +363 -0
  46. package/dist/utils/java.js.map +1 -0
  47. package/dist/utils/system-tools.d.ts +93 -0
  48. package/dist/utils/system-tools.d.ts.map +1 -0
  49. package/dist/utils/system-tools.js +599 -0
  50. package/dist/utils/system-tools.js.map +1 -0
  51. package/dist/utils/template.d.ts.map +1 -1
  52. package/dist/utils/template.js +777 -748
  53. package/dist/utils/template.js.map +1 -1
  54. package/package.json +7 -3
  55. package/src/cli.ts +20 -2
  56. package/src/commands/android-emulator.ts +304 -0
  57. package/src/commands/create.ts +128 -5
  58. package/src/commands/dev.ts +71 -18
  59. package/src/commands/index.ts +3 -1
  60. package/src/commands/install-audit.ts +227 -0
  61. package/src/types/index.ts +30 -0
  62. package/src/utils/android-sdk.ts +478 -0
  63. package/src/utils/downloader.ts +201 -0
  64. package/src/utils/emulator-deployer.ts +210 -0
  65. package/src/utils/emulator.ts +463 -0
  66. package/src/utils/java.ts +369 -0
  67. package/src/utils/system-tools.ts +648 -0
  68. package/src/utils/template.ts +875 -867
package/dist/cli.js CHANGED
@@ -14,12 +14,15 @@ const create_1 = require("./commands/create");
14
14
  const dev_1 = require("./commands/dev");
15
15
  const build_1 = require("./commands/build");
16
16
  const logs_1 = require("./commands/logs");
17
+ const install_audit_1 = require("./commands/install-audit");
18
+ const android_emulator_1 = require("./commands/android-emulator");
17
19
  const shared_1 = require("@jetstart/shared");
20
+ const package_json_1 = require("../package.json");
18
21
  const program = new commander_1.Command();
19
22
  program
20
23
  .name('jetstart')
21
24
  .description('Fast, wireless Android development with Kotlin and Jetpack Compose')
22
- .version(shared_1.JETSTART_VERSION);
25
+ .version(package_json_1.version || shared_1.JETSTART_VERSION);
23
26
  // Create command
24
27
  program
25
28
  .command('create <name>')
@@ -27,6 +30,7 @@ program
27
30
  .option('-p, --package <name>', 'Package name (e.g., com.example.app)')
28
31
  .option('-t, --template <name>', 'Template to use', 'default')
29
32
  .option('--skip-install', 'Skip npm install')
33
+ .option('--full-install', 'Automatically install all required Android dependencies')
30
34
  .action(create_1.createCommand);
31
35
  // Dev command
32
36
  program
@@ -36,6 +40,8 @@ program
36
40
  .option('-H, --host <host>', 'Host address (defaults to auto-detected network IP)')
37
41
  .option('--no-qr', 'Do not show QR code')
38
42
  .option('--no-open', 'Do not open browser')
43
+ .option('--emulator', 'Deploy to running Android emulator')
44
+ .option('--avd <name>', 'Target specific emulator by name')
39
45
  .action(dev_1.devCommand);
40
46
  // Build command
41
47
  program
@@ -54,6 +60,17 @@ program
54
60
  .option('-s, --source <source>', 'Filter by log source')
55
61
  .option('-n, --lines <number>', 'Number of lines to show', '100')
56
62
  .action(logs_1.logsCommand);
63
+ // Install audit command
64
+ program
65
+ .command('install-audit')
66
+ .description('Audit installation of required tools and dependencies')
67
+ .option('--json', 'Output results in JSON format')
68
+ .action(install_audit_1.installAuditCommand);
69
+ // Android emulator command
70
+ program
71
+ .command('android-emulator')
72
+ .description('Manage Android emulators (AVDs)')
73
+ .action(android_emulator_1.androidEmulatorCommand);
57
74
  // Error handling
58
75
  program.on('command:*', (operands) => {
59
76
  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,6CAAoD;AAEpD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,yBAAgB,CAAC,CAAC;AAE7B,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,kBAAkB,CAAC;KAC5C,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,cAAc;AACd,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,CAAC;KAC1D,MAAM,CAAC,mBAAmB,EAAE,qDAAqD,CAAC;KAClF,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC;KACxC,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC;KAC1C,MAAM,CAAC,gBAAU,CAAC,CAAC;AAEtB,gBAAgB;AAChB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,SAAS,CAAC;KAC5D,MAAM,CAAC,eAAe,EAAE,uBAAuB,EAAE,KAAK,CAAC;KACvD,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC;KAChC,MAAM,CAAC,oBAAY,CAAC,CAAC;AAExB,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,cAAc,EAAE,mBAAmB,EAAE,IAAI,CAAC;KACjD,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;KACpD,MAAM,CAAC,uBAAuB,EAAE,sBAAsB,CAAC;KACvD,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,EAAE,KAAK,CAAC;KAChE,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,iBAAiB;AACjB,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE;IACnC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,2BAA2B,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,2BAA2B;AAC3B,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAU,EAAE,EAAE;IAC9C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,kBAAkB;AAClB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,mCAAmC;AACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Android emulator management command
3
+ */
4
+ /**
5
+ * Android emulator command handler
6
+ */
7
+ export declare function androidEmulatorCommand(): Promise<void>;
8
+ //# sourceMappingURL=android-emulator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"android-emulator.d.ts","sourceRoot":"","sources":["../../src/commands/android-emulator.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0OH;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgE5D"}
@@ -0,0 +1,280 @@
1
+ "use strict";
2
+ /**
3
+ * Android emulator management command
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.androidEmulatorCommand = androidEmulatorCommand;
10
+ const inquirer_1 = __importDefault(require("inquirer"));
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ const emulator_1 = require("../utils/emulator");
13
+ const logger_1 = require("../utils/logger");
14
+ /**
15
+ * Display list of AVDs
16
+ */
17
+ async function handleListAVDs() {
18
+ const avdManager = (0, emulator_1.createAVDManager)();
19
+ const avds = await avdManager.listAVDs();
20
+ if (avds.length === 0) {
21
+ console.log();
22
+ (0, logger_1.warning)('No Android emulators found.');
23
+ console.log();
24
+ const { shouldCreate } = await inquirer_1.default.prompt([
25
+ {
26
+ type: 'confirm',
27
+ name: 'shouldCreate',
28
+ message: 'Would you like to create a JetStart-optimized emulator?',
29
+ default: true,
30
+ },
31
+ ]);
32
+ if (shouldCreate) {
33
+ await handleCreateJetStartAVD();
34
+ }
35
+ return;
36
+ }
37
+ console.log();
38
+ console.log(chalk_1.default.bold('Available Android Virtual Devices:'));
39
+ console.log('━'.repeat(70));
40
+ console.log();
41
+ for (const avd of avds) {
42
+ const statusIcon = avd.running ? chalk_1.default.green('✓') : chalk_1.default.gray('○');
43
+ const statusText = avd.running ? chalk_1.default.green('(Running)') : '';
44
+ console.log(` ${statusIcon} ${chalk_1.default.bold(avd.name)} ${statusText}`);
45
+ console.log(` - Device: ${avd.device || 'Unknown'}`);
46
+ console.log(` - Target: ${avd.target || 'Unknown'}`);
47
+ if (avd.basedOn) {
48
+ console.log(` - Based on: ${avd.basedOn}`);
49
+ }
50
+ console.log();
51
+ }
52
+ }
53
+ /**
54
+ * Start an emulator
55
+ */
56
+ async function handleStartEmulator() {
57
+ const avdManager = (0, emulator_1.createAVDManager)();
58
+ const avds = await avdManager.listAVDs();
59
+ if (avds.length === 0) {
60
+ (0, logger_1.warning)('No emulators available. Create one first.');
61
+ return;
62
+ }
63
+ // Filter out running emulators
64
+ const availableAVDs = avds.filter((avd) => !avd.running);
65
+ if (availableAVDs.length === 0) {
66
+ (0, logger_1.info)('All emulators are already running.');
67
+ return;
68
+ }
69
+ const { avdName } = await inquirer_1.default.prompt([
70
+ {
71
+ type: 'list',
72
+ name: 'avdName',
73
+ message: 'Select emulator to start:',
74
+ choices: availableAVDs.map((avd) => ({ name: `${avd.name} (${avd.target})`, value: avd.name })),
75
+ },
76
+ ]);
77
+ await avdManager.startEmulator({ avdName });
78
+ }
79
+ /**
80
+ * Stop an emulator
81
+ */
82
+ async function handleStopEmulator() {
83
+ const avdManager = (0, emulator_1.createAVDManager)();
84
+ const avds = await avdManager.listAVDs();
85
+ // Filter running emulators
86
+ const runningAVDs = avds.filter((avd) => avd.running);
87
+ if (runningAVDs.length === 0) {
88
+ (0, logger_1.warning)('No emulators are currently running.');
89
+ return;
90
+ }
91
+ const { avdName } = await inquirer_1.default.prompt([
92
+ {
93
+ type: 'list',
94
+ name: 'avdName',
95
+ message: 'Select emulator to stop:',
96
+ choices: runningAVDs.map((avd) => ({ name: `${avd.name} (${avd.target})`, value: avd.name })),
97
+ },
98
+ ]);
99
+ await avdManager.stopEmulator(avdName);
100
+ }
101
+ /**
102
+ * Create JetStart-optimized AVD
103
+ */
104
+ async function handleCreateJetStartAVD() {
105
+ const avdManager = (0, emulator_1.createAVDManager)();
106
+ try {
107
+ await avdManager.createJetStartAVD();
108
+ }
109
+ catch (err) {
110
+ (0, logger_1.error)(`Failed to create AVD: ${err.message}`);
111
+ }
112
+ }
113
+ /**
114
+ * Create custom AVD
115
+ */
116
+ async function handleCreateCustomAVD() {
117
+ const avdManager = (0, emulator_1.createAVDManager)();
118
+ const answers = await inquirer_1.default.prompt([
119
+ {
120
+ type: 'input',
121
+ name: 'name',
122
+ message: 'Enter AVD name:',
123
+ default: 'my-android-emulator',
124
+ validate: (input) => {
125
+ if (!input || input.trim().length === 0) {
126
+ return 'Name cannot be empty';
127
+ }
128
+ if (!/^[a-zA-Z0-9_-]+$/.test(input)) {
129
+ return 'Name can only contain letters, numbers, hyphens, and underscores';
130
+ }
131
+ return true;
132
+ },
133
+ },
134
+ {
135
+ type: 'list',
136
+ name: 'device',
137
+ message: 'Select device profile:',
138
+ choices: [
139
+ { name: 'Pixel 5', value: 'pixel_5' },
140
+ { name: 'Pixel 6', value: 'pixel_6' },
141
+ { name: 'Pixel 8', value: 'pixel_8' },
142
+ { name: 'Nexus 5', value: 'Nexus 5' },
143
+ ],
144
+ default: 'pixel_5',
145
+ },
146
+ {
147
+ type: 'list',
148
+ name: 'apiLevel',
149
+ message: 'Select API level:',
150
+ choices: [
151
+ { name: 'API 34 (Android 14) - Recommended', value: 34 },
152
+ { name: 'API 33 (Android 13)', value: 33 },
153
+ { name: 'API 31 (Android 12)', value: 31 },
154
+ { name: 'API 29 (Android 10)', value: 29 },
155
+ { name: 'API 24 (Android 7.0) - Minimum', value: 24 },
156
+ ],
157
+ default: 34,
158
+ },
159
+ {
160
+ type: 'list',
161
+ name: 'abi',
162
+ message: 'Select ABI (architecture):',
163
+ choices: [
164
+ { name: 'x86_64 (Intel/AMD 64-bit)', value: 'x86_64' },
165
+ { name: 'arm64-v8a (ARM 64-bit)', value: 'arm64-v8a' },
166
+ ],
167
+ default: process.arch === 'arm64' ? 'arm64-v8a' : 'x86_64',
168
+ },
169
+ ]);
170
+ try {
171
+ await avdManager.createAVD({
172
+ name: answers.name,
173
+ device: answers.device,
174
+ apiLevel: answers.apiLevel,
175
+ abi: answers.abi,
176
+ });
177
+ }
178
+ catch (err) {
179
+ (0, logger_1.error)(`Failed to create AVD: ${err.message}`);
180
+ }
181
+ }
182
+ /**
183
+ * Delete an AVD
184
+ */
185
+ async function handleDeleteAVD() {
186
+ const avdManager = (0, emulator_1.createAVDManager)();
187
+ const avds = await avdManager.listAVDs();
188
+ if (avds.length === 0) {
189
+ (0, logger_1.warning)('No emulators available to delete.');
190
+ return;
191
+ }
192
+ const { avdName } = await inquirer_1.default.prompt([
193
+ {
194
+ type: 'list',
195
+ name: 'avdName',
196
+ message: 'Select emulator to delete:',
197
+ choices: avds.map((avd) => ({ name: `${avd.name} (${avd.target})`, value: avd.name })),
198
+ },
199
+ ]);
200
+ const { confirm } = await inquirer_1.default.prompt([
201
+ {
202
+ type: 'confirm',
203
+ name: 'confirm',
204
+ message: `Are you sure you want to delete "${avdName}"?`,
205
+ default: false,
206
+ },
207
+ ]);
208
+ if (confirm) {
209
+ await avdManager.deleteAVD(avdName);
210
+ }
211
+ else {
212
+ (0, logger_1.info)('Deletion cancelled');
213
+ }
214
+ }
215
+ /**
216
+ * Android emulator command handler
217
+ */
218
+ async function androidEmulatorCommand() {
219
+ try {
220
+ console.log();
221
+ console.log(chalk_1.default.cyan.bold(' JetStart Android Emulator Manager'));
222
+ console.log();
223
+ let running = true;
224
+ while (running) {
225
+ const { action } = await inquirer_1.default.prompt([
226
+ {
227
+ type: 'list',
228
+ name: 'action',
229
+ message: 'What would you like to do?',
230
+ choices: [
231
+ { name: 'List existing emulators', value: 'list' },
232
+ { name: 'Start emulator', value: 'start' },
233
+ { name: 'Stop emulator', value: 'stop' },
234
+ new inquirer_1.default.Separator(),
235
+ { name: 'Create JetStart-optimized emulator', value: 'create-jetstart' },
236
+ { name: 'Create custom emulator', value: 'create-custom' },
237
+ { name: 'Delete emulator', value: 'delete' },
238
+ new inquirer_1.default.Separator(),
239
+ { name: 'Exit', value: 'exit' },
240
+ ],
241
+ },
242
+ ]);
243
+ switch (action) {
244
+ case 'list':
245
+ await handleListAVDs();
246
+ break;
247
+ case 'start':
248
+ await handleStartEmulator();
249
+ break;
250
+ case 'stop':
251
+ await handleStopEmulator();
252
+ break;
253
+ case 'create-jetstart':
254
+ await handleCreateJetStartAVD();
255
+ break;
256
+ case 'create-custom':
257
+ await handleCreateCustomAVD();
258
+ break;
259
+ case 'delete':
260
+ await handleDeleteAVD();
261
+ break;
262
+ case 'exit':
263
+ running = false;
264
+ console.log();
265
+ (0, logger_1.success)('Goodbye!');
266
+ console.log();
267
+ break;
268
+ }
269
+ if (running && action !== 'list') {
270
+ console.log();
271
+ }
272
+ }
273
+ }
274
+ catch (err) {
275
+ console.log();
276
+ (0, logger_1.error)(`Emulator management failed: ${err.message}`);
277
+ process.exit(1);
278
+ }
279
+ }
280
+ //# sourceMappingURL=android-emulator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"android-emulator.js","sourceRoot":"","sources":["../../src/commands/android-emulator.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,6 @@
2
2
  * Create Command
3
3
  * Scaffolds a new JetStart project
4
4
  */
5
- interface CreateOptions {
6
- package?: string;
7
- template?: string;
8
- skipInstall?: boolean;
9
- }
5
+ import { CreateOptions } from '../types';
10
6
  export declare function createCommand(name: string, options: CreateOptions): Promise<void>;
11
- export {};
12
7
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,iBAwFvE"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA8GzC,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,iBA2GvE"}
@@ -11,11 +11,112 @@ exports.createCommand = createCommand;
11
11
  const path_1 = __importDefault(require("path"));
12
12
  const fs_extra_1 = __importDefault(require("fs-extra"));
13
13
  const chalk_1 = __importDefault(require("chalk"));
14
+ const inquirer_1 = __importDefault(require("inquirer"));
14
15
  const logger_1 = require("../utils/logger");
15
16
  const spinner_1 = require("../utils/spinner");
16
17
  const prompt_1 = require("../utils/prompt");
17
18
  const template_1 = require("../utils/template");
18
19
  const shared_1 = require("@jetstart/shared");
20
+ const java_1 = require("../utils/java");
21
+ const android_sdk_1 = require("../utils/android-sdk");
22
+ const system_tools_1 = require("../utils/system-tools");
23
+ /**
24
+ * Run full installation (automated mode)
25
+ */
26
+ async function runFullInstallation() {
27
+ (0, logger_1.info)('Starting full automated installation...');
28
+ console.log();
29
+ // 1. Check and install Java
30
+ const java = await (0, java_1.detectJava)();
31
+ if (!java || !(await (0, java_1.isJavaCompatible)(java.version))) {
32
+ await (0, java_1.installJava)();
33
+ }
34
+ else {
35
+ (0, logger_1.success)(`Java ${java.version} already installed`);
36
+ }
37
+ // 2. Check and install Android SDK
38
+ const sdkManager = (0, android_sdk_1.createSDKManager)();
39
+ const sdkRoot = await (0, system_tools_1.findAndroidSDK)();
40
+ if (!sdkRoot) {
41
+ (0, logger_1.info)('Installing Android SDK components...');
42
+ await sdkManager.installCmdlineTools();
43
+ }
44
+ else {
45
+ (0, logger_1.success)(`Android SDK found at ${sdkRoot}`);
46
+ }
47
+ // 3. Install required SDK components
48
+ for (const component of android_sdk_1.REQUIRED_SDK_COMPONENTS) {
49
+ await sdkManager.installComponent(component);
50
+ }
51
+ console.log();
52
+ (0, logger_1.success)('All dependencies installed successfully!');
53
+ console.log();
54
+ }
55
+ /**
56
+ * Run interactive installation
57
+ */
58
+ async function runInteractiveInstallation() {
59
+ (0, logger_1.info)('Checking dependencies...');
60
+ console.log();
61
+ // Check Java
62
+ const java = await (0, java_1.detectJava)();
63
+ if (!java || !(await (0, java_1.isJavaCompatible)(java.version))) {
64
+ const { shouldInstall } = await inquirer_1.default.prompt([
65
+ {
66
+ type: 'confirm',
67
+ name: 'shouldInstall',
68
+ message: 'Java 17+ not found. Would you like to install it?',
69
+ default: true,
70
+ },
71
+ ]);
72
+ if (shouldInstall) {
73
+ await (0, java_1.installJava)();
74
+ }
75
+ else {
76
+ (0, logger_1.warning)('Java installation skipped. You may need to install it manually.');
77
+ }
78
+ }
79
+ else {
80
+ (0, logger_1.success)(`Java ${java.version} detected`);
81
+ }
82
+ // Check Android SDK
83
+ const sdkRoot = await (0, system_tools_1.findAndroidSDK)();
84
+ if (!sdkRoot) {
85
+ const { shouldInstall } = await inquirer_1.default.prompt([
86
+ {
87
+ type: 'confirm',
88
+ name: 'shouldInstall',
89
+ message: 'Android SDK not found. Would you like to install it?',
90
+ default: true,
91
+ },
92
+ ]);
93
+ if (shouldInstall) {
94
+ const sdkManager = (0, android_sdk_1.createSDKManager)();
95
+ await sdkManager.installCmdlineTools();
96
+ // Ask about components
97
+ const { installComponents } = await inquirer_1.default.prompt([
98
+ {
99
+ type: 'confirm',
100
+ name: 'installComponents',
101
+ message: 'Install required SDK components?',
102
+ default: true,
103
+ },
104
+ ]);
105
+ if (installComponents) {
106
+ for (const component of android_sdk_1.REQUIRED_SDK_COMPONENTS) {
107
+ await sdkManager.installComponent(component);
108
+ }
109
+ }
110
+ }
111
+ else {
112
+ (0, logger_1.warning)('Android SDK installation skipped. Project creation may fail without SDK.');
113
+ }
114
+ }
115
+ else {
116
+ (0, logger_1.success)(`Android SDK found at ${sdkRoot}`);
117
+ }
118
+ console.log();
119
+ }
19
120
  async function createCommand(name, options) {
20
121
  try {
21
122
  // Validate project name
@@ -32,6 +133,24 @@ async function createCommand(name, options) {
32
133
  }
33
134
  (0, logger_1.log)(`Creating JetStart project: ${chalk_1.default.cyan(name)}`);
34
135
  console.log();
136
+ // Run installation if requested
137
+ if (options.fullInstall) {
138
+ await runFullInstallation();
139
+ }
140
+ else {
141
+ // Interactive mode: ask user
142
+ const { shouldCheckDeps } = await inquirer_1.default.prompt([
143
+ {
144
+ type: 'confirm',
145
+ name: 'shouldCheckDeps',
146
+ message: 'Check and install dependencies?',
147
+ default: true,
148
+ },
149
+ ]);
150
+ if (shouldCheckDeps) {
151
+ await runInteractiveInstallation();
152
+ }
153
+ }
35
154
  // Get package name
36
155
  let packageName = options.package;
37
156
  if (!packageName) {
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,6 @@
2
2
  * Dev Command
3
3
  * Starts the development server
4
4
  */
5
- interface DevOptions {
6
- port?: string;
7
- host?: string;
8
- qr?: boolean;
9
- open?: boolean;
10
- }
5
+ import { DevOptions } from '../types';
11
6
  export declare function devCommand(options: DevOptions): Promise<void>;
12
- export {};
13
7
  //# sourceMappingURL=dev.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,iBAuFnD"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,iBAgJnD"}