kimu-cli 1.0.0 → 1.2.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/bin/kimu.js +55 -50
- package/dist/commands/build.d.ts +3 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +54 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/dev.d.ts +3 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +58 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +255 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +15 -9
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/remove.d.ts +3 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.js +133 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/serve.d.ts +3 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/commands/serve.js +91 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/utils/module-installer.d.ts +1 -1
- package/dist/utils/module-installer.d.ts.map +1 -1
- package/dist/utils/module-installer.js +112 -10
- package/dist/utils/module-installer.js.map +1 -1
- package/package.json +1 -1
package/bin/kimu.js
CHANGED
|
@@ -1,50 +1,55 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* KIMU-CLI - Official command-line interface for the KIMU framework ecosystem
|
|
5
|
-
* Main CLI entry point
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
const { Command } = require('commander');
|
|
9
|
-
const { CLI_NAME, CLI_VERSION } = require('../dist/config/constants');
|
|
10
|
-
|
|
11
|
-
// Import command handlers
|
|
12
|
-
const { setupVersionCommand } = require('../dist/commands/version');
|
|
13
|
-
const { setupInfoCommand } = require('../dist/commands/info');
|
|
14
|
-
const { setupHelpCommand } = require('../dist/commands/help');
|
|
15
|
-
const { setupCreateCommand } = require('../dist/commands/create');
|
|
16
|
-
const { setupNewCommand } = require('../dist/commands/new');
|
|
17
|
-
|
|
18
|
-
const {
|
|
19
|
-
const {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
program
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
.
|
|
30
|
-
.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
program
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* KIMU-CLI - Official command-line interface for the KIMU framework ecosystem
|
|
5
|
+
* Main CLI entry point
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const { Command } = require('commander');
|
|
9
|
+
const { CLI_NAME, CLI_VERSION } = require('../dist/config/constants');
|
|
10
|
+
|
|
11
|
+
// Import command handlers
|
|
12
|
+
const { setupVersionCommand } = require('../dist/commands/version');
|
|
13
|
+
const { setupInfoCommand } = require('../dist/commands/info');
|
|
14
|
+
const { setupHelpCommand } = require('../dist/commands/help');
|
|
15
|
+
const { setupCreateCommand } = require('../dist/commands/create');
|
|
16
|
+
const { setupNewCommand } = require('../dist/commands/new');
|
|
17
|
+
const { setupInstallCommand } = require('../dist/commands/install');
|
|
18
|
+
const { setupListCommand } = require('../dist/commands/list');
|
|
19
|
+
const { setupRemoveCommand } = require('../dist/commands/remove');
|
|
20
|
+
const { setupBuildCommand } = require('../dist/commands/build');
|
|
21
|
+
const { setupDevCommand } = require('../dist/commands/dev');
|
|
22
|
+
const { setupServeCommand } = require('../dist/commands/serve');
|
|
23
|
+
const { setupDoctorCommand } = require('../dist/commands/doctor');
|
|
24
|
+
|
|
25
|
+
const program = new Command();
|
|
26
|
+
|
|
27
|
+
// Configure main program
|
|
28
|
+
program
|
|
29
|
+
.name(CLI_NAME)
|
|
30
|
+
.description('Official command-line interface for the KIMU framework ecosystem')
|
|
31
|
+
.version(CLI_VERSION, '-v, --version', 'display version number')
|
|
32
|
+
.option('--verbose', 'enable verbose output')
|
|
33
|
+
.helpOption('-h, --help', 'display help for command');
|
|
34
|
+
|
|
35
|
+
// Setup commands
|
|
36
|
+
setupVersionCommand(program);
|
|
37
|
+
setupInfoCommand(program);
|
|
38
|
+
setupHelpCommand(program);
|
|
39
|
+
setupCreateCommand(program);
|
|
40
|
+
setupNewCommand(program);
|
|
41
|
+
setupInstallCommand(program);
|
|
42
|
+
setupListCommand(program);
|
|
43
|
+
setupRemoveCommand(program);
|
|
44
|
+
setupBuildCommand(program);
|
|
45
|
+
setupDevCommand(program);
|
|
46
|
+
setupServeCommand(program);
|
|
47
|
+
setupDoctorCommand(program);
|
|
48
|
+
|
|
49
|
+
// Parse command line arguments
|
|
50
|
+
program.parse(process.argv);
|
|
51
|
+
|
|
52
|
+
// Show help if no command provided
|
|
53
|
+
if (!process.argv.slice(2).length) {
|
|
54
|
+
program.outputHelp();
|
|
55
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgDxD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.setupBuildCommand = setupBuildCommand;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const ora_1 = __importDefault(require("ora"));
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
function setupBuildCommand(program) {
|
|
11
|
+
program
|
|
12
|
+
.command('build')
|
|
13
|
+
.description('Build your KIMU project for production')
|
|
14
|
+
.option('--dev', 'build in development mode')
|
|
15
|
+
.option('--local', 'build for local testing')
|
|
16
|
+
.option('--prod', 'build for production (default)')
|
|
17
|
+
.option('--watch', 'watch for changes and rebuild')
|
|
18
|
+
.option('--verbose', 'show detailed build output')
|
|
19
|
+
.action(async (options) => {
|
|
20
|
+
const spinner = (0, ora_1.default)('Building KIMU project...').start();
|
|
21
|
+
try {
|
|
22
|
+
let buildCommand = 'build';
|
|
23
|
+
if (options.dev) {
|
|
24
|
+
buildCommand = 'build:dev';
|
|
25
|
+
}
|
|
26
|
+
else if (options.local) {
|
|
27
|
+
buildCommand = 'build:local';
|
|
28
|
+
}
|
|
29
|
+
else if (options.prod) {
|
|
30
|
+
buildCommand = 'build:prod';
|
|
31
|
+
}
|
|
32
|
+
// Execute npm build script
|
|
33
|
+
const result = (0, child_process_1.spawnSync)('npm', ['run', buildCommand], {
|
|
34
|
+
stdio: options.verbose ? 'inherit' : 'pipe',
|
|
35
|
+
cwd: process.cwd(),
|
|
36
|
+
shell: true,
|
|
37
|
+
});
|
|
38
|
+
if (result.error) {
|
|
39
|
+
throw new Error(`Failed to execute build: ${result.error.message}`);
|
|
40
|
+
}
|
|
41
|
+
if (result.status !== 0) {
|
|
42
|
+
const errorOutput = result.stderr?.toString() || result.stdout?.toString() || '';
|
|
43
|
+
throw new Error(`Build failed with exit code ${result.status}\n${errorOutput}`);
|
|
44
|
+
}
|
|
45
|
+
spinner.succeed(chalk_1.default.green('✅ Build completed successfully!'));
|
|
46
|
+
console.log(chalk_1.default.cyan('\n📦 Build output in: dist/\n'));
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
spinner.fail(chalk_1.default.red(`❌ Build failed: ${error.message}`));
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":";;;;;AAKA,8CAgDC;AApDD,kDAA0B;AAC1B,8CAAsB;AACtB,iDAA0C;AAE1C,SAAgB,iBAAiB,CAAC,OAAgB;IAChD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,OAAO,EAAE,2BAA2B,CAAC;SAC5C,MAAM,CAAC,SAAS,EAAE,yBAAyB,CAAC;SAC5C,MAAM,CAAC,QAAQ,EAAE,gCAAgC,CAAC;SAClD,MAAM,CAAC,SAAS,EAAE,+BAA+B,CAAC;SAClD,MAAM,CAAC,WAAW,EAAE,4BAA4B,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,IAAI,YAAY,GAAG,OAAO,CAAC;YAE3B,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,YAAY,GAAG,WAAW,CAAC;YAC7B,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACzB,YAAY,GAAG,aAAa,CAAC;YAC/B,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,YAAY,GAAG,YAAY,CAAC;YAC9B,CAAC;YAED,2BAA2B;YAC3B,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE;gBACrD,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;gBAC3C,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;gBAClB,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC/D,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAC/D,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwDtD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.setupDevCommand = setupDevCommand;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const ora_1 = __importDefault(require("ora"));
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
function setupDevCommand(program) {
|
|
11
|
+
program
|
|
12
|
+
.command('dev')
|
|
13
|
+
.description('Start development server with hot reload')
|
|
14
|
+
.option('-p, --port <port>', 'port to run the server on', '3000')
|
|
15
|
+
.option('-h, --host <host>', 'host to run the server on', 'localhost')
|
|
16
|
+
.option('--open', 'open browser automatically')
|
|
17
|
+
.option('--verbose', 'show detailed server output')
|
|
18
|
+
.action(async (options) => {
|
|
19
|
+
const spinner = (0, ora_1.default)('Starting development server...').start();
|
|
20
|
+
try {
|
|
21
|
+
// Execute npm dev script (vite dev server)
|
|
22
|
+
const devProcess = (0, child_process_1.spawn)('npm', ['run', 'dev'], {
|
|
23
|
+
stdio: 'inherit',
|
|
24
|
+
cwd: process.cwd(),
|
|
25
|
+
shell: true,
|
|
26
|
+
env: {
|
|
27
|
+
...process.env,
|
|
28
|
+
PORT: options.port,
|
|
29
|
+
HOST: options.host,
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
spinner.succeed(chalk_1.default.green('✅ Development server started!'));
|
|
33
|
+
console.log(chalk_1.default.cyan(`\n🚀 Server running at: http://${options.host}:${options.port}\n`));
|
|
34
|
+
console.log(chalk_1.default.dim('Press Ctrl+C to stop the server\n'));
|
|
35
|
+
devProcess.on('error', error => {
|
|
36
|
+
console.error(chalk_1.default.red(`❌ Server error: ${error.message}`));
|
|
37
|
+
process.exit(1);
|
|
38
|
+
});
|
|
39
|
+
devProcess.on('exit', code => {
|
|
40
|
+
if (code !== 0 && code !== null) {
|
|
41
|
+
console.error(chalk_1.default.red(`❌ Server exited with code ${code}`));
|
|
42
|
+
process.exit(code);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
// Handle Ctrl+C
|
|
46
|
+
process.on('SIGINT', () => {
|
|
47
|
+
console.log(chalk_1.default.yellow('\n\n⚠️ Stopping development server...'));
|
|
48
|
+
devProcess.kill('SIGINT');
|
|
49
|
+
process.exit(0);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
spinner.fail(chalk_1.default.red(`❌ Failed to start dev server: ${error.message}`));
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=dev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":";;;;;AAKA,0CAwDC;AA5DD,kDAA0B;AAC1B,8CAAsB;AACtB,iDAAsC;AAEtC,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,CAAC;SAChE,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,WAAW,CAAC;SACrE,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC;SAC9C,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9D,IAAI,CAAC;YACH,2CAA2C;YAC3C,MAAM,UAAU,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;gBAC9C,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;gBAClB,KAAK,EAAE,IAAI;gBACX,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB;aACF,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,kCAAkC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,CACnE,CACF,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAE5D,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBAC7B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAC3B,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAChC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC9D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,gBAAgB;YAChB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;gBACpE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,GAAG,CAAC,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAC,CAC5D,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8KpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuEzD"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.setupDoctorCommand = setupDoctorCommand;
|
|
40
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
41
|
+
const fs = __importStar(require("fs-extra"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
async function checkProjectStructure() {
|
|
44
|
+
const checks = [];
|
|
45
|
+
// Check package.json
|
|
46
|
+
const packageJsonPath = path.join(process.cwd(), 'package.json');
|
|
47
|
+
if (await fs.pathExists(packageJsonPath)) {
|
|
48
|
+
checks.push({
|
|
49
|
+
name: 'package.json',
|
|
50
|
+
status: 'pass',
|
|
51
|
+
message: 'Found package.json',
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
checks.push({
|
|
56
|
+
name: 'package.json',
|
|
57
|
+
status: 'fail',
|
|
58
|
+
message: 'package.json not found',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
// Check src directory
|
|
62
|
+
const srcPath = path.join(process.cwd(), 'src');
|
|
63
|
+
if (await fs.pathExists(srcPath)) {
|
|
64
|
+
checks.push({
|
|
65
|
+
name: 'src directory',
|
|
66
|
+
status: 'pass',
|
|
67
|
+
message: 'Found src/ directory',
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
checks.push({
|
|
72
|
+
name: 'src directory',
|
|
73
|
+
status: 'fail',
|
|
74
|
+
message: 'src/ directory not found',
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
// Check modules
|
|
78
|
+
const modulesPath = path.join(process.cwd(), 'src', 'modules');
|
|
79
|
+
if (await fs.pathExists(modulesPath)) {
|
|
80
|
+
const modulesManifestPath = path.join(modulesPath, 'modules-manifest.json');
|
|
81
|
+
if (await fs.pathExists(modulesManifestPath)) {
|
|
82
|
+
checks.push({
|
|
83
|
+
name: 'modules manifest',
|
|
84
|
+
status: 'pass',
|
|
85
|
+
message: 'Found modules-manifest.json',
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
checks.push({
|
|
90
|
+
name: 'modules manifest',
|
|
91
|
+
status: 'warn',
|
|
92
|
+
message: 'modules-manifest.json not found',
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
checks.push({
|
|
98
|
+
name: 'modules',
|
|
99
|
+
status: 'warn',
|
|
100
|
+
message: 'src/modules/ directory not found',
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
// Check extensions
|
|
104
|
+
const extensionsPath = path.join(process.cwd(), 'src', 'extensions');
|
|
105
|
+
if (await fs.pathExists(extensionsPath)) {
|
|
106
|
+
const extensionsManifestPath = path.join(extensionsPath, 'extensions-manifest.json');
|
|
107
|
+
if (await fs.pathExists(extensionsManifestPath)) {
|
|
108
|
+
checks.push({
|
|
109
|
+
name: 'extensions manifest',
|
|
110
|
+
status: 'pass',
|
|
111
|
+
message: 'Found extensions-manifest.json',
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
checks.push({
|
|
116
|
+
name: 'extensions manifest',
|
|
117
|
+
status: 'warn',
|
|
118
|
+
message: 'extensions-manifest.json not found',
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
checks.push({
|
|
124
|
+
name: 'extensions',
|
|
125
|
+
status: 'warn',
|
|
126
|
+
message: 'src/extensions/ directory not found',
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
category: 'Project Structure',
|
|
131
|
+
checks,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
async function checkDependencies() {
|
|
135
|
+
const checks = [];
|
|
136
|
+
// Check node_modules
|
|
137
|
+
const nodeModulesPath = path.join(process.cwd(), 'node_modules');
|
|
138
|
+
if (await fs.pathExists(nodeModulesPath)) {
|
|
139
|
+
checks.push({
|
|
140
|
+
name: 'node_modules',
|
|
141
|
+
status: 'pass',
|
|
142
|
+
message: 'Dependencies installed',
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
checks.push({
|
|
147
|
+
name: 'node_modules',
|
|
148
|
+
status: 'fail',
|
|
149
|
+
message: 'Dependencies not installed. Run: npm install',
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
// Check for kimu-core
|
|
153
|
+
const kimuCorePath = path.join(process.cwd(), 'node_modules', 'kimu-core');
|
|
154
|
+
if (await fs.pathExists(kimuCorePath)) {
|
|
155
|
+
checks.push({
|
|
156
|
+
name: 'kimu-core',
|
|
157
|
+
status: 'pass',
|
|
158
|
+
message: 'kimu-core is installed',
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
checks.push({
|
|
163
|
+
name: 'kimu-core',
|
|
164
|
+
status: 'warn',
|
|
165
|
+
message: 'kimu-core not found in dependencies',
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
category: 'Dependencies',
|
|
170
|
+
checks,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
async function checkBuildArtifacts() {
|
|
174
|
+
const checks = [];
|
|
175
|
+
// Check dist directory
|
|
176
|
+
const distPath = path.join(process.cwd(), 'dist');
|
|
177
|
+
if (await fs.pathExists(distPath)) {
|
|
178
|
+
checks.push({
|
|
179
|
+
name: 'dist directory',
|
|
180
|
+
status: 'pass',
|
|
181
|
+
message: 'Build artifacts found',
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
checks.push({
|
|
186
|
+
name: 'dist directory',
|
|
187
|
+
status: 'warn',
|
|
188
|
+
message: 'Build artifacts not found. Run: kimu build',
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
category: 'Build Artifacts',
|
|
193
|
+
checks,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
function setupDoctorCommand(program) {
|
|
197
|
+
program
|
|
198
|
+
.command('doctor')
|
|
199
|
+
.description('Run diagnostics on your KIMU project')
|
|
200
|
+
.option('--verbose', 'show detailed diagnostic information')
|
|
201
|
+
.action(async (_options) => {
|
|
202
|
+
console.log(chalk_1.default.bold.cyan('\n🏥 KIMU Project Diagnostics\n'));
|
|
203
|
+
try {
|
|
204
|
+
const diagnostics = [
|
|
205
|
+
await checkProjectStructure(),
|
|
206
|
+
await checkDependencies(),
|
|
207
|
+
await checkBuildArtifacts(),
|
|
208
|
+
];
|
|
209
|
+
let totalPass = 0;
|
|
210
|
+
let totalFail = 0;
|
|
211
|
+
let totalWarn = 0;
|
|
212
|
+
for (const diagnostic of diagnostics) {
|
|
213
|
+
console.log(chalk_1.default.bold(`\n${diagnostic.category}:`));
|
|
214
|
+
for (const check of diagnostic.checks) {
|
|
215
|
+
const icon = check.status === 'pass'
|
|
216
|
+
? chalk_1.default.green('✓')
|
|
217
|
+
: check.status === 'fail'
|
|
218
|
+
? chalk_1.default.red('✗')
|
|
219
|
+
: chalk_1.default.yellow('⚠');
|
|
220
|
+
const message = check.status === 'pass'
|
|
221
|
+
? chalk_1.default.green(check.message)
|
|
222
|
+
: check.status === 'fail'
|
|
223
|
+
? chalk_1.default.red(check.message)
|
|
224
|
+
: chalk_1.default.yellow(check.message);
|
|
225
|
+
console.log(` ${icon} ${check.name}: ${message}`);
|
|
226
|
+
if (check.status === 'pass')
|
|
227
|
+
totalPass++;
|
|
228
|
+
if (check.status === 'fail')
|
|
229
|
+
totalFail++;
|
|
230
|
+
if (check.status === 'warn')
|
|
231
|
+
totalWarn++;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
console.log(chalk_1.default.bold.cyan('\n📊 Summary:\n'));
|
|
235
|
+
console.log(` ${chalk_1.default.green('✓')} Passed: ${totalPass}`);
|
|
236
|
+
console.log(` ${chalk_1.default.red('✗')} Failed: ${totalFail}`);
|
|
237
|
+
console.log(` ${chalk_1.default.yellow('⚠')} Warnings: ${totalWarn}\n`);
|
|
238
|
+
if (totalFail > 0) {
|
|
239
|
+
console.log(chalk_1.default.red('❌ Your project has some issues. Please fix the failures above.\n'));
|
|
240
|
+
process.exit(1);
|
|
241
|
+
}
|
|
242
|
+
else if (totalWarn > 0) {
|
|
243
|
+
console.log(chalk_1.default.yellow('⚠️ Your project is mostly healthy, but has some warnings.\n'));
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
console.log(chalk_1.default.green('✅ Your project is healthy!\n'));
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
console.error(chalk_1.default.red(`❌ Diagnostics failed: ${error.message}\n`));
|
|
251
|
+
process.exit(1);
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmDpC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuHvD"}
|
package/dist/commands/list.js
CHANGED
|
@@ -43,20 +43,26 @@ const fs = __importStar(require("fs-extra"));
|
|
|
43
43
|
const path = __importStar(require("path"));
|
|
44
44
|
const registry_1 = require("../utils/registry");
|
|
45
45
|
async function getInstalledPackages() {
|
|
46
|
+
const modules = [];
|
|
47
|
+
const extensions = [];
|
|
46
48
|
try {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
// Read modules from modules-manifest.json
|
|
50
|
+
const modulesManifestPath = path.join(process.cwd(), 'src', 'modules', 'modules-manifest.json');
|
|
51
|
+
if (await fs.pathExists(modulesManifestPath)) {
|
|
52
|
+
const modulesManifest = await fs.readJson(modulesManifestPath);
|
|
53
|
+
modules.push(...(modulesManifest.installedModules?.map((mod) => mod.name) || []));
|
|
54
|
+
}
|
|
55
|
+
// Read extensions from extensions-manifest.json
|
|
56
|
+
const extensionsManifestPath = path.join(process.cwd(), 'src', 'extensions', 'extensions-manifest.json');
|
|
57
|
+
if (await fs.pathExists(extensionsManifestPath)) {
|
|
58
|
+
const extensionsManifest = await fs.readJson(extensionsManifestPath);
|
|
59
|
+
extensions.push(...(extensionsManifest.installedExtensions?.map((ext) => ext.tag || ext.name) || []));
|
|
54
60
|
}
|
|
55
61
|
}
|
|
56
62
|
catch (error) {
|
|
57
|
-
// Ignore errors, return empty
|
|
63
|
+
// Ignore errors, return empty arrays
|
|
58
64
|
}
|
|
59
|
-
return { modules
|
|
65
|
+
return { modules, extensions };
|
|
60
66
|
}
|
|
61
67
|
function setupListCommand(program) {
|
|
62
68
|
const list = program
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsCpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2FzD"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.setupRemoveCommand = setupRemoveCommand;
|
|
40
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
41
|
+
const ora_1 = __importDefault(require("ora"));
|
|
42
|
+
const child_process_1 = require("child_process");
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
const fs = __importStar(require("fs-extra"));
|
|
45
|
+
/**
|
|
46
|
+
* Find kimu-core installation path
|
|
47
|
+
*/
|
|
48
|
+
function findKimuCorePath() {
|
|
49
|
+
const cwd = process.cwd();
|
|
50
|
+
// Check in node_modules
|
|
51
|
+
const nodeModulesPath = path.join(cwd, 'node_modules', 'kimu-core');
|
|
52
|
+
if (fs.existsSync(nodeModulesPath)) {
|
|
53
|
+
return nodeModulesPath;
|
|
54
|
+
}
|
|
55
|
+
// Check in current directory
|
|
56
|
+
if (fs.existsSync(path.join(cwd, 'scripts', 'remove-module.js'))) {
|
|
57
|
+
return cwd;
|
|
58
|
+
}
|
|
59
|
+
// Check parent directories
|
|
60
|
+
let currentDir = cwd;
|
|
61
|
+
for (let i = 0; i < 3; i++) {
|
|
62
|
+
const parentDir = path.dirname(currentDir);
|
|
63
|
+
const kimuCorePath = path.join(parentDir, 'kimu-core');
|
|
64
|
+
if (fs.existsSync(path.join(kimuCorePath, 'scripts', 'remove-module.js'))) {
|
|
65
|
+
return kimuCorePath;
|
|
66
|
+
}
|
|
67
|
+
currentDir = parentDir;
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
function setupRemoveCommand(program) {
|
|
72
|
+
const remove = program
|
|
73
|
+
.command('remove')
|
|
74
|
+
.alias('rm')
|
|
75
|
+
.description('Remove installed modules or extensions from your KIMU project');
|
|
76
|
+
// kimu remove module <name>
|
|
77
|
+
remove
|
|
78
|
+
.command('module <name>')
|
|
79
|
+
.alias('m')
|
|
80
|
+
.description('Remove an installed KIMU module')
|
|
81
|
+
.option('--verbose', 'show detailed removal progress')
|
|
82
|
+
.action(async (name, options) => {
|
|
83
|
+
const spinner = (0, ora_1.default)(`Removing module ${name}...`).start();
|
|
84
|
+
try {
|
|
85
|
+
const kimuCorePath = findKimuCorePath();
|
|
86
|
+
if (!kimuCorePath) {
|
|
87
|
+
throw new Error('kimu-core not found. Please ensure kimu-core is installed as a dependency or accessible in your workspace.');
|
|
88
|
+
}
|
|
89
|
+
const scriptPath = path.join(kimuCorePath, 'scripts', 'remove-module.js');
|
|
90
|
+
if (!fs.existsSync(scriptPath)) {
|
|
91
|
+
throw new Error(`remove-module.js script not found in kimu-core at: ${scriptPath}`);
|
|
92
|
+
}
|
|
93
|
+
if (options.verbose) {
|
|
94
|
+
spinner.info(`Using kimu-core at: ${kimuCorePath}`);
|
|
95
|
+
spinner.start(`Removing module ${name}...`);
|
|
96
|
+
}
|
|
97
|
+
// Execute kimu-core's remove script
|
|
98
|
+
const result = (0, child_process_1.spawnSync)('node', [scriptPath, name], {
|
|
99
|
+
stdio: 'inherit',
|
|
100
|
+
cwd: process.cwd(),
|
|
101
|
+
});
|
|
102
|
+
if (result.error) {
|
|
103
|
+
throw new Error(`Failed to execute remove script: ${result.error.message}`);
|
|
104
|
+
}
|
|
105
|
+
if (result.status !== 0) {
|
|
106
|
+
throw new Error(`Module removal failed with exit code ${result.status}`);
|
|
107
|
+
}
|
|
108
|
+
spinner.succeed(chalk_1.default.green(`✅ Module ${name} removed successfully!`));
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
spinner.fail(chalk_1.default.red(`❌ Failed to remove module ${name}: ${error.message}`));
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
// kimu remove extension <name>
|
|
116
|
+
remove
|
|
117
|
+
.command('extension <name>')
|
|
118
|
+
.alias('e')
|
|
119
|
+
.description('Remove an installed KIMU extension')
|
|
120
|
+
.option('--verbose', 'show detailed removal progress')
|
|
121
|
+
.action(async (name) => {
|
|
122
|
+
const spinner = (0, ora_1.default)(`Removing extension ${name}...`).start();
|
|
123
|
+
try {
|
|
124
|
+
// TODO: Implement extension removal when kimu-core provides the script
|
|
125
|
+
spinner.fail(chalk_1.default.yellow(`⚠️ Extension removal is not yet implemented. Please remove extensions manually or wait for future updates.`));
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
spinner.fail(chalk_1.default.red(`❌ Failed to remove extension ${name}: ${error.message}`));
|
|
129
|
+
process.exit(1);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=remove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4DxD"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.setupServeCommand = setupServeCommand;
|
|
40
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
41
|
+
const ora_1 = __importDefault(require("ora"));
|
|
42
|
+
const child_process_1 = require("child_process");
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
const fs = __importStar(require("fs-extra"));
|
|
45
|
+
function setupServeCommand(program) {
|
|
46
|
+
program
|
|
47
|
+
.command('serve')
|
|
48
|
+
.description('Serve the built KIMU project')
|
|
49
|
+
.option('-p, --port <port>', 'port to run the server on', '8080')
|
|
50
|
+
.option('-h, --host <host>', 'host to run the server on', 'localhost')
|
|
51
|
+
.option('--open', 'open browser automatically')
|
|
52
|
+
.action(async (options) => {
|
|
53
|
+
const spinner = (0, ora_1.default)('Starting production server...').start();
|
|
54
|
+
try {
|
|
55
|
+
const distPath = path.join(process.cwd(), 'dist');
|
|
56
|
+
if (!fs.existsSync(distPath)) {
|
|
57
|
+
throw new Error('Build directory not found. Please run "kimu build" first.');
|
|
58
|
+
}
|
|
59
|
+
// Use vite preview or simple http server
|
|
60
|
+
const serveProcess = (0, child_process_1.spawn)('npx', ['vite', 'preview', '--port', options.port, '--host', options.host], {
|
|
61
|
+
stdio: 'inherit',
|
|
62
|
+
cwd: process.cwd(),
|
|
63
|
+
shell: true,
|
|
64
|
+
});
|
|
65
|
+
spinner.succeed(chalk_1.default.green('✅ Production server started!'));
|
|
66
|
+
console.log(chalk_1.default.cyan(`\n🚀 Server running at: http://${options.host}:${options.port}\n`));
|
|
67
|
+
console.log(chalk_1.default.dim('Press Ctrl+C to stop the server\n'));
|
|
68
|
+
serveProcess.on('error', error => {
|
|
69
|
+
console.error(chalk_1.default.red(`❌ Server error: ${error.message}`));
|
|
70
|
+
process.exit(1);
|
|
71
|
+
});
|
|
72
|
+
serveProcess.on('exit', code => {
|
|
73
|
+
if (code !== 0 && code !== null) {
|
|
74
|
+
console.error(chalk_1.default.red(`❌ Server exited with code ${code}`));
|
|
75
|
+
process.exit(code);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
// Handle Ctrl+C
|
|
79
|
+
process.on('SIGINT', () => {
|
|
80
|
+
console.log(chalk_1.default.yellow('\n\n⚠️ Stopping server...'));
|
|
81
|
+
serveProcess.kill('SIGINT');
|
|
82
|
+
process.exit(0);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
spinner.fail(chalk_1.default.red(`❌ Failed to start server: ${error.message}`));
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=serve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,6 @@ interface InstallOptions {
|
|
|
6
6
|
version?: string;
|
|
7
7
|
force?: boolean;
|
|
8
8
|
}
|
|
9
|
-
export declare function installModuleOrExtension(name: string, options: InstallOptions): Promise<
|
|
9
|
+
export declare function installModuleOrExtension(name: string, options: InstallOptions): Promise<void>;
|
|
10
10
|
export {};
|
|
11
11
|
//# sourceMappingURL=module-installer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-installer.d.ts","sourceRoot":"","sources":["../../src/utils/module-installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module-installer.d.ts","sourceRoot":"","sources":["../../src/utils/module-installer.ts"],"names":[],"mappings":"AAMA,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAkGD,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,iBAaxB"}
|
|
@@ -1,21 +1,123 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.installModuleOrExtension = installModuleOrExtension;
|
|
4
37
|
// module-installer.ts: logica di installazione moduli/estensioni KIMU
|
|
5
38
|
const registry_1 = require("./registry");
|
|
6
|
-
|
|
39
|
+
const child_process_1 = require("child_process");
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
const fs = __importStar(require("fs-extra"));
|
|
42
|
+
/**
|
|
43
|
+
* Find kimu-core installation path
|
|
44
|
+
* Checks: node_modules, parent directories, and workspace structure
|
|
45
|
+
*/
|
|
46
|
+
function findKimuCorePath() {
|
|
47
|
+
const cwd = process.cwd();
|
|
48
|
+
// Check in node_modules (if kimu-core is a dependency)
|
|
49
|
+
const nodeModulesPath = path.join(cwd, 'node_modules', 'kimu-core');
|
|
50
|
+
if (fs.existsSync(nodeModulesPath)) {
|
|
51
|
+
return nodeModulesPath;
|
|
52
|
+
}
|
|
53
|
+
// Check in current directory (if we're inside kimu-core)
|
|
54
|
+
if (fs.existsSync(path.join(cwd, 'scripts', 'install-module.js'))) {
|
|
55
|
+
return cwd;
|
|
56
|
+
}
|
|
57
|
+
// Check parent directories (common workspace structure)
|
|
58
|
+
let currentDir = cwd;
|
|
59
|
+
for (let i = 0; i < 3; i++) {
|
|
60
|
+
const parentDir = path.dirname(currentDir);
|
|
61
|
+
const kimuCorePath = path.join(parentDir, 'kimu-core');
|
|
62
|
+
if (fs.existsSync(path.join(kimuCorePath, 'scripts', 'install-module.js'))) {
|
|
63
|
+
return kimuCorePath;
|
|
64
|
+
}
|
|
65
|
+
currentDir = parentDir;
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Install module using kimu-core's install script
|
|
71
|
+
*/
|
|
72
|
+
async function installModuleViaKimuCore(name, options) {
|
|
73
|
+
const kimuCorePath = findKimuCorePath();
|
|
74
|
+
if (!kimuCorePath) {
|
|
75
|
+
throw new Error('kimu-core not found. Please ensure kimu-core is installed as a dependency or accessible in your workspace.');
|
|
76
|
+
}
|
|
77
|
+
const scriptPath = path.join(kimuCorePath, 'scripts', 'install-module.js');
|
|
78
|
+
if (!fs.existsSync(scriptPath)) {
|
|
79
|
+
throw new Error(`install-module.js script not found in kimu-core at: ${scriptPath}`);
|
|
80
|
+
}
|
|
81
|
+
if (options.verbose) {
|
|
82
|
+
console.log(`[DEBUG] Using kimu-core at: ${kimuCorePath}`);
|
|
83
|
+
console.log(`[DEBUG] Running script: ${scriptPath}`);
|
|
84
|
+
}
|
|
85
|
+
// Execute kimu-core's install script
|
|
86
|
+
const result = (0, child_process_1.spawnSync)('node', [scriptPath, name], {
|
|
87
|
+
stdio: 'inherit',
|
|
88
|
+
cwd: process.cwd(),
|
|
89
|
+
});
|
|
90
|
+
if (result.error) {
|
|
91
|
+
throw new Error(`Failed to execute install script: ${result.error.message}`);
|
|
92
|
+
}
|
|
93
|
+
if (result.status !== 0) {
|
|
94
|
+
throw new Error(`Module installation failed with exit code ${result.status}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Install extension (placeholder for future implementation)
|
|
99
|
+
*/
|
|
100
|
+
async function installExtension(name, _options) {
|
|
7
101
|
const registry = registry_1.KimuRegistry.getInstance();
|
|
8
|
-
const info = await registry.getModuleInfo(name,
|
|
102
|
+
const info = await registry.getModuleInfo(name, 'extension');
|
|
9
103
|
if (!info) {
|
|
10
|
-
throw new Error(
|
|
104
|
+
throw new Error(`Extension "${name}" not found in registry.`);
|
|
11
105
|
}
|
|
12
|
-
// TODO:
|
|
13
|
-
//
|
|
14
|
-
|
|
15
|
-
|
|
106
|
+
// TODO: Implement extension installation
|
|
107
|
+
// Extensions might have different installation logic than modules
|
|
108
|
+
throw new Error('Extension installation is not yet implemented. Please install extensions manually or wait for future updates.');
|
|
109
|
+
}
|
|
110
|
+
async function installModuleOrExtension(name, options) {
|
|
111
|
+
if (options.type === 'module') {
|
|
112
|
+
// Delegate to kimu-core's installation script
|
|
113
|
+
await installModuleViaKimuCore(name, options);
|
|
114
|
+
}
|
|
115
|
+
else if (options.type === 'extension') {
|
|
116
|
+
// Use extension installation logic
|
|
117
|
+
await installExtension(name, options);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
throw new Error('Installation type must be specified: "module" or "extension"');
|
|
16
121
|
}
|
|
17
|
-
// Simulate installation
|
|
18
|
-
await new Promise(resolve => setTimeout(resolve, 500));
|
|
19
|
-
return info;
|
|
20
122
|
}
|
|
21
123
|
//# sourceMappingURL=module-installer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-installer.js","sourceRoot":"","sources":["../../src/utils/module-installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module-installer.js","sourceRoot":"","sources":["../../src/utils/module-installer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+GA,4DAeC;AA9HD,sEAAsE;AACtE,yCAA0C;AAC1C,iDAA0C;AAC1C,2CAA6B;AAC7B,6CAA+B;AAW/B;;;GAGG;AACH,SAAS,gBAAgB;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,uDAAuD;IACvD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IACpE,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACnC,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,yDAAyD;IACzD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC;QAClE,OAAO,GAAG,CAAC;IACb,CAAC;IAED,wDAAwD;IACxD,IAAI,UAAU,GAAG,GAAG,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACvD,IACE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,EACtE,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,wBAAwB,CAAC,IAAY,EAAE,OAAuB;IAC3E,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IAExC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,4GAA4G,CAC7G,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAE3E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,uDAAuD,UAAU,EAAE,CACpE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,+BAA+B,YAAY,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,qCAAqC;IACrC,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;QACnD,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;KACnB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,qCAAqC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,6CAA6C,MAAM,CAAC,MAAM,EAAE,CAC7D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAAwB;IACpE,MAAM,QAAQ,GAAG,uBAAY,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAE7D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,0BAA0B,CAAC,CAAC;IAChE,CAAC;IAED,yCAAyC;IACzC,kEAAkE;IAClE,MAAM,IAAI,KAAK,CACb,+GAA+G,CAChH,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,IAAY,EACZ,OAAuB;IAEvB,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,8CAA8C;QAC9C,MAAM,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACxC,mCAAmC;QACnC,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kimu-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Official command-line interface for the KIMU framework ecosystem - Create, build, and manage KIMU applications with extensible template-based generators",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|