@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.
- package/dist/cli.js +18 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/android-emulator.d.ts +8 -0
- package/dist/commands/android-emulator.d.ts.map +1 -0
- package/dist/commands/android-emulator.js +280 -0
- package/dist/commands/android-emulator.js.map +1 -0
- package/dist/commands/create.d.ts +1 -6
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +119 -0
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/dev.d.ts +1 -7
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +69 -10
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/index.d.ts +2 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +5 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/install-audit.d.ts +9 -0
- package/dist/commands/install-audit.d.ts.map +1 -0
- package/dist/commands/install-audit.js +185 -0
- package/dist/commands/install-audit.js.map +1 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/android-sdk.d.ts +81 -0
- package/dist/utils/android-sdk.d.ts.map +1 -0
- package/dist/utils/android-sdk.js +432 -0
- package/dist/utils/android-sdk.js.map +1 -0
- package/dist/utils/downloader.d.ts +35 -0
- package/dist/utils/downloader.d.ts.map +1 -0
- package/dist/utils/downloader.js +214 -0
- package/dist/utils/downloader.js.map +1 -0
- package/dist/utils/emulator-deployer.d.ts +29 -0
- package/dist/utils/emulator-deployer.d.ts.map +1 -0
- package/dist/utils/emulator-deployer.js +224 -0
- package/dist/utils/emulator-deployer.js.map +1 -0
- package/dist/utils/emulator.d.ts +101 -0
- package/dist/utils/emulator.d.ts.map +1 -0
- package/dist/utils/emulator.js +410 -0
- package/dist/utils/emulator.js.map +1 -0
- package/dist/utils/java.d.ts +25 -0
- package/dist/utils/java.d.ts.map +1 -0
- package/dist/utils/java.js +363 -0
- package/dist/utils/java.js.map +1 -0
- package/dist/utils/system-tools.d.ts +93 -0
- package/dist/utils/system-tools.d.ts.map +1 -0
- package/dist/utils/system-tools.js +599 -0
- package/dist/utils/system-tools.js.map +1 -0
- package/dist/utils/template.d.ts.map +1 -1
- package/dist/utils/template.js +777 -748
- package/dist/utils/template.js.map +1 -1
- package/package.json +7 -3
- package/src/cli.ts +20 -2
- package/src/commands/android-emulator.ts +304 -0
- package/src/commands/create.ts +128 -5
- package/src/commands/dev.ts +71 -18
- package/src/commands/index.ts +3 -1
- package/src/commands/install-audit.ts +227 -0
- package/src/types/index.ts +30 -0
- package/src/utils/android-sdk.ts +478 -0
- package/src/utils/downloader.ts +201 -0
- package/src/utils/emulator-deployer.ts +210 -0
- package/src/utils/emulator.ts +463 -0
- package/src/utils/java.ts +369 -0
- package/src/utils/system-tools.ts +648 -0
- package/src/utils/template.ts +875 -867
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Android AVD and Emulator management utilities
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.AVDManager = void 0;
|
|
40
|
+
exports.createAVDManager = createAVDManager;
|
|
41
|
+
const child_process_1 = require("child_process");
|
|
42
|
+
const util_1 = require("util");
|
|
43
|
+
const fs = __importStar(require("fs-extra"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const os = __importStar(require("os"));
|
|
46
|
+
const system_tools_1 = require("./system-tools");
|
|
47
|
+
const android_sdk_1 = require("./android-sdk");
|
|
48
|
+
const spinner_1 = require("./spinner");
|
|
49
|
+
const logger_1 = require("./logger");
|
|
50
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
51
|
+
/**
|
|
52
|
+
* AVD Manager class
|
|
53
|
+
*/
|
|
54
|
+
class AVDManager {
|
|
55
|
+
sdkRoot;
|
|
56
|
+
constructor(sdkRoot) {
|
|
57
|
+
this.sdkRoot = sdkRoot || '';
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Ensure SDK root is set
|
|
61
|
+
*/
|
|
62
|
+
async ensureSDKRoot() {
|
|
63
|
+
if (this.sdkRoot && await fs.pathExists(this.sdkRoot)) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const existingSDK = await (0, system_tools_1.findAndroidSDK)();
|
|
67
|
+
if (!existingSDK) {
|
|
68
|
+
throw new Error('Android SDK not found. Run "jetstart install-audit" to check installation.');
|
|
69
|
+
}
|
|
70
|
+
this.sdkRoot = existingSDK;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get path to avdmanager executable
|
|
74
|
+
*/
|
|
75
|
+
getAVDManagerPath() {
|
|
76
|
+
const avdmanagerName = os.platform() === 'win32' ? 'avdmanager.bat' : 'avdmanager';
|
|
77
|
+
return path.join(this.sdkRoot, 'cmdline-tools', 'latest', 'bin', avdmanagerName);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get path to emulator executable
|
|
81
|
+
*/
|
|
82
|
+
getEmulatorPath() {
|
|
83
|
+
const emulatorName = os.platform() === 'win32' ? 'emulator.exe' : 'emulator';
|
|
84
|
+
return path.join(this.sdkRoot, 'emulator', emulatorName);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get path to adb executable
|
|
88
|
+
*/
|
|
89
|
+
getADBPath() {
|
|
90
|
+
const adbName = os.platform() === 'win32' ? 'adb.exe' : 'adb';
|
|
91
|
+
return path.join(this.sdkRoot, 'platform-tools', adbName);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Run avdmanager command
|
|
95
|
+
*/
|
|
96
|
+
async runAVDManager(args) {
|
|
97
|
+
await this.ensureSDKRoot();
|
|
98
|
+
const avdmanagerPath = this.getAVDManagerPath();
|
|
99
|
+
if (!await fs.pathExists(avdmanagerPath)) {
|
|
100
|
+
throw new Error('avdmanager not found. Install Android cmdline-tools first.');
|
|
101
|
+
}
|
|
102
|
+
return new Promise((resolve, reject) => {
|
|
103
|
+
const proc = (0, child_process_1.spawn)(avdmanagerPath, args, {
|
|
104
|
+
env: {
|
|
105
|
+
...process.env,
|
|
106
|
+
ANDROID_HOME: this.sdkRoot,
|
|
107
|
+
ANDROID_SDK_ROOT: this.sdkRoot,
|
|
108
|
+
},
|
|
109
|
+
shell: true,
|
|
110
|
+
});
|
|
111
|
+
let output = '';
|
|
112
|
+
let errorOutput = '';
|
|
113
|
+
proc.stdout?.on('data', (data) => {
|
|
114
|
+
output += data.toString();
|
|
115
|
+
});
|
|
116
|
+
proc.stderr?.on('data', (data) => {
|
|
117
|
+
errorOutput += data.toString();
|
|
118
|
+
});
|
|
119
|
+
proc.on('close', (code) => {
|
|
120
|
+
if (code === 0) {
|
|
121
|
+
resolve(output);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
reject(new Error(`avdmanager exited with code ${code}: ${errorOutput || output}`));
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
proc.on('error', (err) => {
|
|
128
|
+
reject(err);
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* List all AVDs
|
|
134
|
+
*/
|
|
135
|
+
async listAVDs() {
|
|
136
|
+
try {
|
|
137
|
+
const output = await this.runAVDManager(['list', 'avd']);
|
|
138
|
+
const avds = this.parseAVDList(output);
|
|
139
|
+
// Check which AVDs are running
|
|
140
|
+
for (const avd of avds) {
|
|
141
|
+
avd.running = await this.isEmulatorRunning(avd.name);
|
|
142
|
+
}
|
|
143
|
+
return avds;
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
return [];
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Parse avdmanager list avd output
|
|
151
|
+
*/
|
|
152
|
+
parseAVDList(output) {
|
|
153
|
+
const avds = [];
|
|
154
|
+
const lines = output.split('\n');
|
|
155
|
+
let currentAVD = {};
|
|
156
|
+
for (const line of lines) {
|
|
157
|
+
const trimmed = line.trim();
|
|
158
|
+
if (trimmed.startsWith('Name:')) {
|
|
159
|
+
if (currentAVD.name) {
|
|
160
|
+
avds.push(currentAVD);
|
|
161
|
+
}
|
|
162
|
+
currentAVD = {
|
|
163
|
+
name: trimmed.split(':')[1]?.trim() || '',
|
|
164
|
+
snapshot: false,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
else if (trimmed.startsWith('Device:')) {
|
|
168
|
+
currentAVD.device = trimmed.split(':')[1]?.trim() || '';
|
|
169
|
+
}
|
|
170
|
+
else if (trimmed.startsWith('Path:')) {
|
|
171
|
+
currentAVD.path = trimmed.split(':')[1]?.trim() || '';
|
|
172
|
+
}
|
|
173
|
+
else if (trimmed.startsWith('Target:')) {
|
|
174
|
+
currentAVD.target = trimmed.split(':')[1]?.trim() || '';
|
|
175
|
+
}
|
|
176
|
+
else if (trimmed.startsWith('Based on:')) {
|
|
177
|
+
currentAVD.basedOn = trimmed.split(':')[1]?.trim() || '';
|
|
178
|
+
}
|
|
179
|
+
else if (trimmed.startsWith('Skin:')) {
|
|
180
|
+
currentAVD.skin = trimmed.split(':')[1]?.trim() || '';
|
|
181
|
+
}
|
|
182
|
+
else if (trimmed.startsWith('Sdcard:')) {
|
|
183
|
+
currentAVD.sdcard = trimmed.split(':')[1]?.trim() || '';
|
|
184
|
+
}
|
|
185
|
+
else if (trimmed.includes('Snapshot')) {
|
|
186
|
+
currentAVD.snapshot = true;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (currentAVD.name) {
|
|
190
|
+
avds.push(currentAVD);
|
|
191
|
+
}
|
|
192
|
+
return avds;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Create a new AVD
|
|
196
|
+
*/
|
|
197
|
+
async createAVD(options) {
|
|
198
|
+
const { name, device = 'pixel_5', apiLevel = 34, abi = os.arch() === 'arm64' ? 'arm64-v8a' : 'x86_64', force = false, } = options;
|
|
199
|
+
const spinner = (0, spinner_1.startSpinner)(`Creating AVD: ${name}...`);
|
|
200
|
+
try {
|
|
201
|
+
// Check if system image is installed
|
|
202
|
+
const systemImagePackage = `system-images;android-${apiLevel};google_apis;${abi}`;
|
|
203
|
+
const sdkManager = new android_sdk_1.AndroidSDKManager(this.sdkRoot);
|
|
204
|
+
const isInstalled = await sdkManager.isComponentInstalled(systemImagePackage);
|
|
205
|
+
if (!isInstalled) {
|
|
206
|
+
(0, spinner_1.stopSpinner)(spinner, false, 'System image not installed');
|
|
207
|
+
(0, logger_1.info)(`Installing system image: ${systemImagePackage}`);
|
|
208
|
+
await sdkManager.installComponent(systemImagePackage);
|
|
209
|
+
}
|
|
210
|
+
// Create AVD
|
|
211
|
+
const args = [
|
|
212
|
+
'create', 'avd',
|
|
213
|
+
'--name', name,
|
|
214
|
+
'--package', systemImagePackage,
|
|
215
|
+
'--device', device,
|
|
216
|
+
];
|
|
217
|
+
if (force) {
|
|
218
|
+
args.push('--force');
|
|
219
|
+
}
|
|
220
|
+
// Use spawn for interactive input
|
|
221
|
+
await new Promise((resolve, reject) => {
|
|
222
|
+
const avdmanagerPath = this.getAVDManagerPath();
|
|
223
|
+
const proc = (0, child_process_1.spawn)(avdmanagerPath, args, {
|
|
224
|
+
env: {
|
|
225
|
+
...process.env,
|
|
226
|
+
ANDROID_HOME: this.sdkRoot,
|
|
227
|
+
ANDROID_SDK_ROOT: this.sdkRoot,
|
|
228
|
+
},
|
|
229
|
+
shell: true,
|
|
230
|
+
});
|
|
231
|
+
// Auto-answer prompts with defaults
|
|
232
|
+
proc.stdin?.write('no\n'); // Hardware profile
|
|
233
|
+
proc.stdin?.end();
|
|
234
|
+
let output = '';
|
|
235
|
+
proc.stdout?.on('data', (data) => {
|
|
236
|
+
output += data.toString();
|
|
237
|
+
});
|
|
238
|
+
proc.stderr?.on('data', (data) => {
|
|
239
|
+
output += data.toString();
|
|
240
|
+
});
|
|
241
|
+
proc.on('close', (code) => {
|
|
242
|
+
if (code === 0) {
|
|
243
|
+
resolve();
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
reject(new Error(`Failed to create AVD: ${output}`));
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
proc.on('error', (err) => {
|
|
250
|
+
reject(err);
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
(0, spinner_1.stopSpinner)(spinner, true, `AVD "${name}" created successfully`);
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
(0, spinner_1.stopSpinner)(spinner, false, `Failed to create AVD: ${error.message}`);
|
|
257
|
+
throw error;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Delete an AVD
|
|
262
|
+
*/
|
|
263
|
+
async deleteAVD(name) {
|
|
264
|
+
const spinner = (0, spinner_1.startSpinner)(`Deleting AVD: ${name}...`);
|
|
265
|
+
try {
|
|
266
|
+
await this.runAVDManager(['delete', 'avd', '--name', name]);
|
|
267
|
+
(0, spinner_1.stopSpinner)(spinner, true, `AVD "${name}" deleted`);
|
|
268
|
+
}
|
|
269
|
+
catch (error) {
|
|
270
|
+
(0, spinner_1.stopSpinner)(spinner, false, `Failed to delete AVD`);
|
|
271
|
+
throw error;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Start an emulator
|
|
276
|
+
*/
|
|
277
|
+
async startEmulator(options) {
|
|
278
|
+
await this.ensureSDKRoot();
|
|
279
|
+
const emulatorPath = this.getEmulatorPath();
|
|
280
|
+
if (!await fs.pathExists(emulatorPath)) {
|
|
281
|
+
throw new Error('Emulator not found. Install Android emulator package first.');
|
|
282
|
+
}
|
|
283
|
+
const { avdName, gpu = 'auto', noSnapshot = true, noBootAnim = true, wipeData = false, } = options;
|
|
284
|
+
const args = ['-avd', avdName];
|
|
285
|
+
if (gpu)
|
|
286
|
+
args.push('-gpu', gpu);
|
|
287
|
+
if (noSnapshot)
|
|
288
|
+
args.push('-no-snapshot-load');
|
|
289
|
+
if (noBootAnim)
|
|
290
|
+
args.push('-no-boot-anim');
|
|
291
|
+
if (wipeData)
|
|
292
|
+
args.push('-wipe-data');
|
|
293
|
+
(0, logger_1.info)(`Starting emulator: ${avdName}...`);
|
|
294
|
+
const proc = (0, child_process_1.spawn)(emulatorPath, args, {
|
|
295
|
+
env: {
|
|
296
|
+
...process.env,
|
|
297
|
+
ANDROID_HOME: this.sdkRoot,
|
|
298
|
+
ANDROID_SDK_ROOT: this.sdkRoot,
|
|
299
|
+
},
|
|
300
|
+
detached: true,
|
|
301
|
+
stdio: 'ignore',
|
|
302
|
+
shell: false,
|
|
303
|
+
});
|
|
304
|
+
proc.unref();
|
|
305
|
+
// Wait a moment for emulator to start
|
|
306
|
+
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
307
|
+
(0, logger_1.success)(`Emulator "${avdName}" started`);
|
|
308
|
+
(0, logger_1.info)('Emulator is booting. This may take a few minutes...');
|
|
309
|
+
return proc;
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Stop an emulator
|
|
313
|
+
*/
|
|
314
|
+
async stopEmulator(avdName) {
|
|
315
|
+
const serial = await this.findEmulatorSerial(avdName);
|
|
316
|
+
if (!serial) {
|
|
317
|
+
throw new Error(`Emulator "${avdName}" is not running`);
|
|
318
|
+
}
|
|
319
|
+
const spinner = (0, spinner_1.startSpinner)(`Stopping emulator: ${avdName}...`);
|
|
320
|
+
try {
|
|
321
|
+
const adbPath = this.getADBPath();
|
|
322
|
+
await execAsync(`"${adbPath}" -s ${serial} emu kill`);
|
|
323
|
+
(0, spinner_1.stopSpinner)(spinner, true, `Emulator "${avdName}" stopped`);
|
|
324
|
+
}
|
|
325
|
+
catch (error) {
|
|
326
|
+
(0, spinner_1.stopSpinner)(spinner, false, 'Failed to stop emulator');
|
|
327
|
+
throw error;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Check if an emulator is running
|
|
332
|
+
*/
|
|
333
|
+
async isEmulatorRunning(avdName) {
|
|
334
|
+
const serial = await this.findEmulatorSerial(avdName);
|
|
335
|
+
return serial !== null;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Find emulator serial number by AVD name
|
|
339
|
+
*/
|
|
340
|
+
async findEmulatorSerial(avdName) {
|
|
341
|
+
try {
|
|
342
|
+
const adbPath = this.getADBPath();
|
|
343
|
+
const { stdout } = await execAsync(`"${adbPath}" devices`);
|
|
344
|
+
const lines = stdout.split('\n');
|
|
345
|
+
for (const line of lines) {
|
|
346
|
+
const match = line.match(/^(emulator-\d+)\s+device$/);
|
|
347
|
+
if (match) {
|
|
348
|
+
const serial = match[1];
|
|
349
|
+
// Check AVD name
|
|
350
|
+
try {
|
|
351
|
+
const { stdout: nameOutput } = await execAsync(`"${adbPath}" -s ${serial} emu avd name`);
|
|
352
|
+
if (nameOutput.trim() === avdName) {
|
|
353
|
+
return serial;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
catch {
|
|
357
|
+
continue;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
return null;
|
|
362
|
+
}
|
|
363
|
+
catch {
|
|
364
|
+
return null;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Get list of available system images for emulator
|
|
369
|
+
*/
|
|
370
|
+
async listSystemImages() {
|
|
371
|
+
try {
|
|
372
|
+
const sdkManager = new android_sdk_1.AndroidSDKManager(this.sdkRoot);
|
|
373
|
+
const output = await sdkManager.listInstalled();
|
|
374
|
+
return output
|
|
375
|
+
.filter(c => c.name.startsWith('system-images;'))
|
|
376
|
+
.map(c => c.name);
|
|
377
|
+
}
|
|
378
|
+
catch {
|
|
379
|
+
return [];
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Create JetStart-optimized AVD
|
|
384
|
+
*/
|
|
385
|
+
async createJetStartAVD() {
|
|
386
|
+
const avdName = 'JetStart-Pixel5-API34';
|
|
387
|
+
// Check if already exists
|
|
388
|
+
const avds = await this.listAVDs();
|
|
389
|
+
if (avds.some(a => a.name === avdName)) {
|
|
390
|
+
(0, logger_1.info)(`AVD "${avdName}" already exists`);
|
|
391
|
+
return;
|
|
392
|
+
}
|
|
393
|
+
await this.createAVD({
|
|
394
|
+
name: avdName,
|
|
395
|
+
device: 'pixel_5',
|
|
396
|
+
apiLevel: 34,
|
|
397
|
+
abi: os.arch() === 'arm64' ? 'arm64-v8a' : 'x86_64',
|
|
398
|
+
force: false,
|
|
399
|
+
});
|
|
400
|
+
(0, logger_1.success)(`JetStart-optimized AVD created: ${avdName}`);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
exports.AVDManager = AVDManager;
|
|
404
|
+
/**
|
|
405
|
+
* Create an AVD manager instance
|
|
406
|
+
*/
|
|
407
|
+
function createAVDManager(sdkRoot) {
|
|
408
|
+
return new AVDManager(sdkRoot);
|
|
409
|
+
}
|
|
410
|
+
//# sourceMappingURL=emulator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emulator.js","sourceRoot":"","sources":["../../src/utils/emulator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Java/JDK detection and installation utilities
|
|
3
|
+
*/
|
|
4
|
+
export interface JavaInfo {
|
|
5
|
+
version: string;
|
|
6
|
+
path: string;
|
|
7
|
+
vendor: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Detect Java/JDK installation
|
|
11
|
+
*/
|
|
12
|
+
export declare function detectJava(): Promise<JavaInfo | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Check if Java version is compatible (>= 17)
|
|
15
|
+
*/
|
|
16
|
+
export declare function isJavaCompatible(version: string): Promise<boolean>;
|
|
17
|
+
/**
|
|
18
|
+
* Install Java/JDK
|
|
19
|
+
*/
|
|
20
|
+
export declare function installJava(): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Verify Java installation
|
|
23
|
+
*/
|
|
24
|
+
export declare function verifyJavaInstallation(): Promise<boolean>;
|
|
25
|
+
//# sourceMappingURL=java.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../src/utils/java.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAuCD;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAmB3D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGxE;AAyED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAwBjD;AAmKD;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAc/D"}
|