@jetstart/cli 1.2.0 → 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
package/dist/commands/dev.js
CHANGED
|
@@ -43,11 +43,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
43
43
|
exports.devCommand = devCommand;
|
|
44
44
|
const path = __importStar(require("path"));
|
|
45
45
|
const os = __importStar(require("os"));
|
|
46
|
+
const fs = __importStar(require("fs-extra"));
|
|
46
47
|
const chalk_1 = __importDefault(require("chalk"));
|
|
47
48
|
const qrcode_terminal_1 = __importDefault(require("qrcode-terminal"));
|
|
48
49
|
const logger_1 = require("../utils/logger");
|
|
49
50
|
const core_1 = require("@jetstart/core");
|
|
50
51
|
const shared_1 = require("@jetstart/shared");
|
|
52
|
+
const emulator_deployer_1 = require("../utils/emulator-deployer");
|
|
51
53
|
async function devCommand(options) {
|
|
52
54
|
try {
|
|
53
55
|
const port = parseInt(options.port || String(shared_1.DEFAULT_CORE_PORT));
|
|
@@ -59,6 +61,39 @@ async function devCommand(options) {
|
|
|
59
61
|
// Get project path and name
|
|
60
62
|
const projectPath = process.cwd();
|
|
61
63
|
const projectName = path.basename(projectPath);
|
|
64
|
+
// Setup emulator deployment if requested
|
|
65
|
+
let deployer = null;
|
|
66
|
+
let packageName = null;
|
|
67
|
+
if (options.emulator) {
|
|
68
|
+
try {
|
|
69
|
+
deployer = await emulator_deployer_1.EmulatorDeployer.findOrSelectEmulator(options.avd);
|
|
70
|
+
// Try to read package name from build.gradle (modern Android)
|
|
71
|
+
const buildGradlePath = path.join(projectPath, 'app/build.gradle');
|
|
72
|
+
(0, logger_1.info)(`Looking for build.gradle at: ${buildGradlePath}`);
|
|
73
|
+
if (await fs.pathExists(buildGradlePath)) {
|
|
74
|
+
const buildGradleContent = await fs.readFile(buildGradlePath, 'utf8');
|
|
75
|
+
// Match both applicationId "..." and applicationId '...'
|
|
76
|
+
const packageMatch = buildGradleContent.match(/applicationId\s+["']([^"']+)["']/);
|
|
77
|
+
packageName = packageMatch ? packageMatch[1] : null;
|
|
78
|
+
(0, logger_1.info)(`Package name: ${packageName || 'NOT FOUND'}`);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
(0, logger_1.warning)('build.gradle not found - emulator deployment requires package name');
|
|
82
|
+
}
|
|
83
|
+
if (packageName) {
|
|
84
|
+
(0, logger_1.success)('Emulator deployment enabled');
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
(0, logger_1.warning)('Emulator deployment disabled: package name not found');
|
|
88
|
+
}
|
|
89
|
+
console.log();
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
(0, logger_1.error)(`Emulator setup failed: ${err.message}`);
|
|
93
|
+
(0, logger_1.info)('Continuing without emulator deployment...');
|
|
94
|
+
console.log();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
62
97
|
// Create and start Core server
|
|
63
98
|
// Bind to 0.0.0.0 to accept connections on all interfaces,
|
|
64
99
|
// but pass the detected IP for display and client connections
|
|
@@ -71,9 +106,38 @@ async function devCommand(options) {
|
|
|
71
106
|
projectName,
|
|
72
107
|
});
|
|
73
108
|
const session = await server.start();
|
|
109
|
+
// Listen for build completion and deploy to emulator
|
|
110
|
+
if (deployer && packageName) {
|
|
111
|
+
(0, logger_1.info)(`Setting up build:complete listener for package: ${packageName}`);
|
|
112
|
+
let hasDeployed = false; // Track if we've already deployed to prevent reinstall loops
|
|
113
|
+
server.on('build:complete', async (result) => {
|
|
114
|
+
(0, logger_1.info)(`Build complete event received! APK: ${result.apkPath || 'NO APK PATH'}`);
|
|
115
|
+
// Only deploy if this is the first time OR if it's a file-change build (not initial client connection)
|
|
116
|
+
if (!hasDeployed && result.apkPath && deployer) {
|
|
117
|
+
try {
|
|
118
|
+
(0, logger_1.info)('Deploying to emulator (initial deployment)...');
|
|
119
|
+
await deployer.installAPK(result.apkPath, packageName);
|
|
120
|
+
await deployer.launchApp(packageName);
|
|
121
|
+
hasDeployed = true; // Mark as deployed to prevent reinstall loop
|
|
122
|
+
(0, logger_1.success)('Initial deployment complete. Future builds will be sent via hot reload.');
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
(0, logger_1.warning)(`Emulator deployment failed: ${err.message}`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
else if (hasDeployed) {
|
|
129
|
+
(0, logger_1.info)('Skipping deployment (app already installed, using hot reload)');
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
(0, logger_1.warning)(`Skipping deployment: apkPath=${result.apkPath}, deployer=${!!deployer}`);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
(0, logger_1.info)(`Emulator deployment not configured: deployer=${!!deployer}, packageName=${packageName}`);
|
|
138
|
+
}
|
|
74
139
|
// Get URLs
|
|
75
140
|
const serverUrl = `http://${host}:${port}`;
|
|
76
|
-
const wsUrl = `ws://${host}:${wsPort}`;
|
|
77
141
|
const localUrl = `http://localhost:${port}`;
|
|
78
142
|
console.log();
|
|
79
143
|
(0, logger_1.success)('JetStart dev server is running!');
|
|
@@ -84,16 +148,11 @@ async function devCommand(options) {
|
|
|
84
148
|
console.log();
|
|
85
149
|
// Generate QR code for mobile connection
|
|
86
150
|
if (showQR) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
sessionId: session.id,
|
|
91
|
-
token: session.token,
|
|
92
|
-
projectName,
|
|
93
|
-
version: '0.1.0',
|
|
94
|
-
};
|
|
151
|
+
// Ultra-compact format: host|port|wsPort|sessionId|token|projectName
|
|
152
|
+
// Using short alphanumeric IDs for minimal QR code size
|
|
153
|
+
const qrData = `${host}|${port}|${wsPort}|${session.id}|${session.token}|${projectName}`;
|
|
95
154
|
console.log(chalk_1.default.bold('Scan QR or connect manually:'));
|
|
96
|
-
qrcode_terminal_1.default.generate(
|
|
155
|
+
qrcode_terminal_1.default.generate(qrData, { small: true });
|
|
97
156
|
console.log();
|
|
98
157
|
(0, logger_1.info)(`IP: ${chalk_1.default.cyan(host)}`);
|
|
99
158
|
(0, logger_1.info)(`Session: ${chalk_1.default.dim(session.id)}`);
|
package/dist/commands/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -5,4 +5,6 @@ export { createCommand } from './create';
|
|
|
5
5
|
export { devCommand } from './dev';
|
|
6
6
|
export { buildCommand } from './build';
|
|
7
7
|
export { logsCommand } from './logs';
|
|
8
|
+
export { installAuditCommand } from './install-audit';
|
|
9
|
+
export { androidEmulatorCommand } from './android-emulator';
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/commands/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Export all commands
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.logsCommand = exports.buildCommand = exports.devCommand = exports.createCommand = void 0;
|
|
6
|
+
exports.androidEmulatorCommand = exports.installAuditCommand = exports.logsCommand = exports.buildCommand = exports.devCommand = exports.createCommand = void 0;
|
|
7
7
|
var create_1 = require("./create");
|
|
8
8
|
Object.defineProperty(exports, "createCommand", { enumerable: true, get: function () { return create_1.createCommand; } });
|
|
9
9
|
var dev_1 = require("./dev");
|
|
@@ -12,4 +12,8 @@ var build_1 = require("./build");
|
|
|
12
12
|
Object.defineProperty(exports, "buildCommand", { enumerable: true, get: function () { return build_1.buildCommand; } });
|
|
13
13
|
var logs_1 = require("./logs");
|
|
14
14
|
Object.defineProperty(exports, "logsCommand", { enumerable: true, get: function () { return logs_1.logsCommand; } });
|
|
15
|
+
var install_audit_1 = require("./install-audit");
|
|
16
|
+
Object.defineProperty(exports, "installAuditCommand", { enumerable: true, get: function () { return install_audit_1.installAuditCommand; } });
|
|
17
|
+
var android_emulator_1 = require("./android-emulator");
|
|
18
|
+
Object.defineProperty(exports, "androidEmulatorCommand", { enumerable: true, get: function () { return android_emulator_1.androidEmulatorCommand; } });
|
|
15
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,mCAAyC;AAAhC,uGAAA,aAAa,OAAA;AACtB,6BAAmC;AAA1B,iGAAA,UAAU,OAAA;AACnB,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AACrB,+BAAqC;AAA5B,mGAAA,WAAW,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,mCAAyC;AAAhC,uGAAA,aAAa,OAAA;AACtB,6BAAmC;AAA1B,iGAAA,UAAU,OAAA;AACnB,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AACrB,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,iDAAsD;AAA7C,oHAAA,mBAAmB,OAAA;AAC5B,uDAA4D;AAAnD,0HAAA,sBAAsB,OAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Installation audit command - checks all required tools and dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { AuditOptions } from '../types';
|
|
5
|
+
/**
|
|
6
|
+
* Install audit command handler
|
|
7
|
+
*/
|
|
8
|
+
export declare function installAuditCommand(options: AuditOptions): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=install-audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-audit.d.ts","sourceRoot":"","sources":["../../src/commands/install-audit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA+MxC;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAW9E"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Installation audit command - checks all required tools and dependencies
|
|
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.installAuditCommand = installAuditCommand;
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const system_tools_1 = require("../utils/system-tools");
|
|
12
|
+
const logger_1 = require("../utils/logger");
|
|
13
|
+
/**
|
|
14
|
+
* Print tool status in table format
|
|
15
|
+
*/
|
|
16
|
+
function printToolStatus(tool) {
|
|
17
|
+
const icon = tool.status === 'ok'
|
|
18
|
+
? chalk_1.default.green('✓')
|
|
19
|
+
: tool.status === 'warning'
|
|
20
|
+
? chalk_1.default.yellow('⚠')
|
|
21
|
+
: chalk_1.default.red('✗');
|
|
22
|
+
const name = tool.name.padEnd(25);
|
|
23
|
+
const version = (tool.version || (tool.installed ? 'Unknown' : 'Not installed')).padEnd(15);
|
|
24
|
+
let statusText = '';
|
|
25
|
+
if (tool.status === 'ok') {
|
|
26
|
+
statusText = chalk_1.default.green('OK');
|
|
27
|
+
}
|
|
28
|
+
else if (tool.status === 'warning') {
|
|
29
|
+
statusText = chalk_1.default.yellow(tool.message || 'Warning');
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
statusText = chalk_1.default.red(tool.message || 'ERROR');
|
|
33
|
+
}
|
|
34
|
+
console.log(` ${icon} ${name} ${version} ${statusText}`);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Print section header
|
|
38
|
+
*/
|
|
39
|
+
function printSection(title) {
|
|
40
|
+
console.log();
|
|
41
|
+
console.log(chalk_1.default.bold(title + ':'));
|
|
42
|
+
console.log('━'.repeat(70));
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Run audit in table format
|
|
46
|
+
*/
|
|
47
|
+
async function runAuditTable() {
|
|
48
|
+
console.log();
|
|
49
|
+
console.log(chalk_1.default.cyan.bold(' JetStart Installation Audit'));
|
|
50
|
+
console.log();
|
|
51
|
+
const allTools = [];
|
|
52
|
+
// Development Tools
|
|
53
|
+
printSection('Development Tools');
|
|
54
|
+
const node = await (0, system_tools_1.detectNode)();
|
|
55
|
+
printToolStatus(node);
|
|
56
|
+
allTools.push(node);
|
|
57
|
+
const npm = await (0, system_tools_1.detectNpm)();
|
|
58
|
+
printToolStatus(npm);
|
|
59
|
+
allTools.push(npm);
|
|
60
|
+
const java = await (0, system_tools_1.detectJava)();
|
|
61
|
+
printToolStatus(java);
|
|
62
|
+
allTools.push(java);
|
|
63
|
+
const gradle = await (0, system_tools_1.detectGradle)();
|
|
64
|
+
printToolStatus(gradle);
|
|
65
|
+
allTools.push(gradle);
|
|
66
|
+
// Android SDK
|
|
67
|
+
printSection('Android SDK');
|
|
68
|
+
const sdk = await (0, system_tools_1.detectAndroidSDK)();
|
|
69
|
+
printToolStatus(sdk);
|
|
70
|
+
allTools.push(sdk);
|
|
71
|
+
const cmdlineTools = await (0, system_tools_1.detectAndroidCmdlineTools)();
|
|
72
|
+
printToolStatus(cmdlineTools);
|
|
73
|
+
allTools.push(cmdlineTools);
|
|
74
|
+
const buildTools = await (0, system_tools_1.detectAndroidBuildTools)();
|
|
75
|
+
printToolStatus(buildTools);
|
|
76
|
+
allTools.push(buildTools);
|
|
77
|
+
const platformTools = await (0, system_tools_1.detectAndroidPlatformTools)();
|
|
78
|
+
printToolStatus(platformTools);
|
|
79
|
+
allTools.push(platformTools);
|
|
80
|
+
const emulator = await (0, system_tools_1.detectAndroidEmulator)();
|
|
81
|
+
printToolStatus(emulator);
|
|
82
|
+
allTools.push(emulator);
|
|
83
|
+
// Android Platforms
|
|
84
|
+
printSection('Android Platforms');
|
|
85
|
+
const api34 = await (0, system_tools_1.detectAndroidPlatform)(34);
|
|
86
|
+
printToolStatus({ ...api34, name: 'API 34 (Target)' });
|
|
87
|
+
allTools.push(api34);
|
|
88
|
+
const api24 = await (0, system_tools_1.detectAndroidPlatform)(24);
|
|
89
|
+
printToolStatus({ ...api24, name: 'API 24 (Minimum)' });
|
|
90
|
+
allTools.push(api24);
|
|
91
|
+
// Environment Variables
|
|
92
|
+
printSection('Environment Variables');
|
|
93
|
+
const javaHome = await (0, system_tools_1.checkJavaHome)();
|
|
94
|
+
printToolStatus(javaHome);
|
|
95
|
+
allTools.push(javaHome);
|
|
96
|
+
const androidHome = await (0, system_tools_1.checkAndroidHome)();
|
|
97
|
+
printToolStatus(androidHome);
|
|
98
|
+
allTools.push(androidHome);
|
|
99
|
+
// Summary
|
|
100
|
+
const summary = {
|
|
101
|
+
ok: allTools.filter((t) => t.status === 'ok').length,
|
|
102
|
+
warning: allTools.filter((t) => t.status === 'warning').length,
|
|
103
|
+
error: allTools.filter((t) => t.status === 'error').length,
|
|
104
|
+
};
|
|
105
|
+
printSection('Summary');
|
|
106
|
+
console.log(` ${chalk_1.default.green('✓')} ${summary.ok} components OK`);
|
|
107
|
+
if (summary.warning > 0) {
|
|
108
|
+
console.log(` ${chalk_1.default.yellow('⚠')} ${summary.warning} warning${summary.warning > 1 ? 's' : ''}`);
|
|
109
|
+
}
|
|
110
|
+
if (summary.error > 0) {
|
|
111
|
+
console.log(` ${chalk_1.default.red('✗')} ${summary.error} error${summary.error > 1 ? 's' : ''}`);
|
|
112
|
+
}
|
|
113
|
+
// Recommendations
|
|
114
|
+
if (summary.error > 0) {
|
|
115
|
+
console.log();
|
|
116
|
+
(0, logger_1.warning)('Recommendation:');
|
|
117
|
+
console.log(' Run "jetstart create <project-name> --full-install" to install missing dependencies');
|
|
118
|
+
}
|
|
119
|
+
console.log();
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Run audit in JSON format
|
|
123
|
+
*/
|
|
124
|
+
async function runAuditJSON() {
|
|
125
|
+
const tools = {
|
|
126
|
+
node: await (0, system_tools_1.detectNode)(),
|
|
127
|
+
npm: await (0, system_tools_1.detectNpm)(),
|
|
128
|
+
java: await (0, system_tools_1.detectJava)(),
|
|
129
|
+
gradle: await (0, system_tools_1.detectGradle)(),
|
|
130
|
+
};
|
|
131
|
+
const androidComponents = {
|
|
132
|
+
sdk: await (0, system_tools_1.detectAndroidSDK)(),
|
|
133
|
+
cmdlineTools: await (0, system_tools_1.detectAndroidCmdlineTools)(),
|
|
134
|
+
buildTools: await (0, system_tools_1.detectAndroidBuildTools)(),
|
|
135
|
+
platformTools: await (0, system_tools_1.detectAndroidPlatformTools)(),
|
|
136
|
+
emulator: await (0, system_tools_1.detectAndroidEmulator)(),
|
|
137
|
+
platforms: {
|
|
138
|
+
api34: await (0, system_tools_1.detectAndroidPlatform)(34),
|
|
139
|
+
api24: await (0, system_tools_1.detectAndroidPlatform)(24),
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
const environment = {
|
|
143
|
+
javaHome: await (0, system_tools_1.checkJavaHome)(),
|
|
144
|
+
androidHome: await (0, system_tools_1.checkAndroidHome)(),
|
|
145
|
+
};
|
|
146
|
+
const allTools = [
|
|
147
|
+
...Object.values(tools),
|
|
148
|
+
...Object.values(androidComponents).filter((v) => typeof v === 'object' && 'status' in v),
|
|
149
|
+
androidComponents.platforms.api34,
|
|
150
|
+
androidComponents.platforms.api24,
|
|
151
|
+
...Object.values(environment),
|
|
152
|
+
];
|
|
153
|
+
const summary = {
|
|
154
|
+
ok: allTools.filter((t) => t.status === 'ok').length,
|
|
155
|
+
warning: allTools.filter((t) => t.status === 'warning').length,
|
|
156
|
+
error: allTools.filter((t) => t.status === 'error').length,
|
|
157
|
+
};
|
|
158
|
+
const result = {
|
|
159
|
+
timestamp: new Date().toISOString(),
|
|
160
|
+
platform: process.platform,
|
|
161
|
+
tools,
|
|
162
|
+
androidComponents,
|
|
163
|
+
environment,
|
|
164
|
+
summary,
|
|
165
|
+
};
|
|
166
|
+
console.log(JSON.stringify(result, null, 2));
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Install audit command handler
|
|
170
|
+
*/
|
|
171
|
+
async function installAuditCommand(options) {
|
|
172
|
+
try {
|
|
173
|
+
if (options.json) {
|
|
174
|
+
await runAuditJSON();
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
await runAuditTable();
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
181
|
+
console.error(chalk_1.default.red(`\nAudit failed: ${err.message}`));
|
|
182
|
+
process.exit(1);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=install-audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-audit.js","sourceRoot":"","sources":["../../src/commands/install-audit.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -17,4 +17,26 @@ export interface CommandContext {
|
|
|
17
17
|
cwd: string;
|
|
18
18
|
config?: ProjectConfig;
|
|
19
19
|
}
|
|
20
|
+
export interface CreateOptions {
|
|
21
|
+
package?: string;
|
|
22
|
+
template?: string;
|
|
23
|
+
skipInstall?: boolean;
|
|
24
|
+
fullInstall?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface AuditOptions {
|
|
27
|
+
json?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface DevOptions {
|
|
30
|
+
port?: string;
|
|
31
|
+
host?: string;
|
|
32
|
+
qr?: boolean;
|
|
33
|
+
open?: boolean;
|
|
34
|
+
emulator?: boolean;
|
|
35
|
+
avd?: string;
|
|
36
|
+
}
|
|
37
|
+
export declare enum InstallAction {
|
|
38
|
+
SKIP = "skip",
|
|
39
|
+
UPDATE = "update",
|
|
40
|
+
REPLACE = "replace"
|
|
41
|
+
}
|
|
20
42
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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"}
|
|
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;IACtB,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,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
CHANGED
|
@@ -3,4 +3,12 @@
|
|
|
3
3
|
* CLI-specific types
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.InstallAction = void 0;
|
|
7
|
+
// Install action enum
|
|
8
|
+
var InstallAction;
|
|
9
|
+
(function (InstallAction) {
|
|
10
|
+
InstallAction["SKIP"] = "skip";
|
|
11
|
+
InstallAction["UPDATE"] = "update";
|
|
12
|
+
InstallAction["REPLACE"] = "replace";
|
|
13
|
+
})(InstallAction || (exports.InstallAction = InstallAction = {}));
|
|
6
14
|
//# sourceMappingURL=index.js.map
|
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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Android SDK Manager wrapper
|
|
3
|
+
*/
|
|
4
|
+
export interface SDKComponent {
|
|
5
|
+
name: string;
|
|
6
|
+
path: string;
|
|
7
|
+
version?: string;
|
|
8
|
+
installed: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Required SDK components for JetStart
|
|
12
|
+
*/
|
|
13
|
+
export declare const REQUIRED_SDK_COMPONENTS: string[];
|
|
14
|
+
/**
|
|
15
|
+
* Android SDK Manager class
|
|
16
|
+
*/
|
|
17
|
+
export declare class AndroidSDKManager {
|
|
18
|
+
private sdkRoot;
|
|
19
|
+
constructor(sdkRoot?: string);
|
|
20
|
+
/**
|
|
21
|
+
* Initialize SDK root, detecting or creating as needed
|
|
22
|
+
*/
|
|
23
|
+
ensureSDKRoot(): Promise<string>;
|
|
24
|
+
/**
|
|
25
|
+
* Install Android cmdline-tools
|
|
26
|
+
*/
|
|
27
|
+
installCmdlineTools(): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Get path to sdkmanager executable
|
|
30
|
+
*/
|
|
31
|
+
private getSDKManagerPath;
|
|
32
|
+
/**
|
|
33
|
+
* Get path to avdmanager executable
|
|
34
|
+
*/
|
|
35
|
+
private getAVDManagerPath;
|
|
36
|
+
/**
|
|
37
|
+
* Run sdkmanager command
|
|
38
|
+
*/
|
|
39
|
+
private runSDKManager;
|
|
40
|
+
/**
|
|
41
|
+
* Accept all SDK licenses
|
|
42
|
+
*/
|
|
43
|
+
acceptLicenses(): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Install an SDK component
|
|
46
|
+
*/
|
|
47
|
+
installComponent(component: string, progressLabel?: string): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* List installed SDK components
|
|
50
|
+
*/
|
|
51
|
+
listInstalled(): Promise<SDKComponent[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Parse sdkmanager list output
|
|
54
|
+
*/
|
|
55
|
+
private parseSDKList;
|
|
56
|
+
/**
|
|
57
|
+
* Update all installed components
|
|
58
|
+
*/
|
|
59
|
+
updateAll(): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Check if a component is installed
|
|
62
|
+
*/
|
|
63
|
+
isComponentInstalled(component: string): Promise<boolean>;
|
|
64
|
+
/**
|
|
65
|
+
* Install all required components for JetStart
|
|
66
|
+
*/
|
|
67
|
+
installRequiredComponents(): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Detect missing required components
|
|
70
|
+
*/
|
|
71
|
+
detectMissingComponents(): Promise<string[]>;
|
|
72
|
+
/**
|
|
73
|
+
* Create local.properties file with SDK path
|
|
74
|
+
*/
|
|
75
|
+
createLocalProperties(projectPath: string): Promise<void>;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Create an SDK manager instance
|
|
79
|
+
*/
|
|
80
|
+
export declare function createSDKManager(sdkRoot?: string): AndroidSDKManager;
|
|
81
|
+
//# sourceMappingURL=android-sdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"android-sdk.d.ts","sourceRoot":"","sources":["../../src/utils/android-sdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,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,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC1C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;YACW,aAAa;IAwE3B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAuErC;;OAEG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBhF;;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;IAmBhD;;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"}
|