@jetstart/cli 1.2.0 → 1.5.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 (67) hide show
  1. package/dist/cli.js +18 -1
  2. package/dist/commands/android-emulator.d.ts +8 -0
  3. package/dist/commands/android-emulator.js +280 -0
  4. package/dist/commands/create.d.ts +1 -6
  5. package/dist/commands/create.js +119 -0
  6. package/dist/commands/dev.d.ts +1 -7
  7. package/dist/commands/dev.js +69 -10
  8. package/dist/commands/index.d.ts +2 -0
  9. package/dist/commands/index.js +5 -1
  10. package/dist/commands/install-audit.d.ts +9 -0
  11. package/dist/commands/install-audit.js +185 -0
  12. package/dist/types/index.d.ts +22 -0
  13. package/dist/types/index.js +8 -0
  14. package/dist/utils/android-sdk.d.ts +81 -0
  15. package/dist/utils/android-sdk.js +432 -0
  16. package/dist/utils/downloader.d.ts +35 -0
  17. package/dist/utils/downloader.js +214 -0
  18. package/dist/utils/emulator-deployer.d.ts +29 -0
  19. package/dist/utils/emulator-deployer.js +224 -0
  20. package/dist/utils/emulator.d.ts +101 -0
  21. package/dist/utils/emulator.js +410 -0
  22. package/dist/utils/java.d.ts +25 -0
  23. package/dist/utils/java.js +363 -0
  24. package/dist/utils/system-tools.d.ts +93 -0
  25. package/dist/utils/system-tools.js +599 -0
  26. package/dist/utils/template.js +777 -748
  27. package/package.json +7 -3
  28. package/src/cli.ts +20 -2
  29. package/src/commands/android-emulator.ts +304 -0
  30. package/src/commands/create.ts +128 -5
  31. package/src/commands/dev.ts +71 -18
  32. package/src/commands/index.ts +3 -1
  33. package/src/commands/install-audit.ts +227 -0
  34. package/src/types/index.ts +30 -0
  35. package/src/utils/android-sdk.ts +478 -0
  36. package/src/utils/downloader.ts +201 -0
  37. package/src/utils/emulator-deployer.ts +210 -0
  38. package/src/utils/emulator.ts +463 -0
  39. package/src/utils/java.ts +369 -0
  40. package/src/utils/system-tools.ts +648 -0
  41. package/src/utils/template.ts +875 -867
  42. package/dist/cli.d.ts.map +0 -1
  43. package/dist/cli.js.map +0 -1
  44. package/dist/commands/build.d.ts.map +0 -1
  45. package/dist/commands/build.js.map +0 -1
  46. package/dist/commands/create.d.ts.map +0 -1
  47. package/dist/commands/create.js.map +0 -1
  48. package/dist/commands/dev.d.ts.map +0 -1
  49. package/dist/commands/dev.js.map +0 -1
  50. package/dist/commands/index.d.ts.map +0 -1
  51. package/dist/commands/index.js.map +0 -1
  52. package/dist/commands/logs.d.ts.map +0 -1
  53. package/dist/commands/logs.js.map +0 -1
  54. package/dist/index.d.ts.map +0 -1
  55. package/dist/index.js.map +0 -1
  56. package/dist/types/index.d.ts.map +0 -1
  57. package/dist/types/index.js.map +0 -1
  58. package/dist/utils/index.d.ts.map +0 -1
  59. package/dist/utils/index.js.map +0 -1
  60. package/dist/utils/logger.d.ts.map +0 -1
  61. package/dist/utils/logger.js.map +0 -1
  62. package/dist/utils/prompt.d.ts.map +0 -1
  63. package/dist/utils/prompt.js.map +0 -1
  64. package/dist/utils/spinner.d.ts.map +0 -1
  65. package/dist/utils/spinner.js.map +0 -1
  66. package/dist/utils/template.d.ts.map +0 -1
  67. package/dist/utils/template.js.map +0 -1
@@ -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
@@ -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
@@ -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
@@ -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